{"attribution":"This Pulumi package is based on the [`timescale` Terraform Provider](https://github.com/timescale/terraform-provider-timescale).","config":{"defaults":["projectId"],"variables":{"accessKey":{"description":"Access Key","type":"string"},"accessToken":{"description":"Access Token","secret":true,"type":"string"},"projectId":{"description":"Project ID","type":"string"},"secretKey":{"description":"Secret Key","secret":true,"type":"string"}}},"description":"A Pulumi provider dynamically bridged from timescale.","functions":{"pulumi:providers:timescale/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:timescale"}},"required":["__self__"],"type":"object"},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}},"timescale:index/getProducts:getProducts":{"description":"## Example Usage\n\n","outputs":{"description":"A collection of values returned by getProducts.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"products":{"items":{"$ref":"#/types/timescale:index%2FgetProductsProduct:getProductsProduct"},"type":"array"}},"required":["id","products"],"type":"object"}},"timescale:index/getService:getService":{"description":"Service data source\n","inputs":{"description":"A collection of arguments for invoking getService.\n","properties":{"environmentTag":{"description":"Environment tag for this service.\n","type":"string"},"id":{"description":"Service ID is the unique identifier for this service\n","type":"string"},"vpcId":{"description":"VPC ID this service is linked to.\n","type":"number"}},"required":["id"],"type":"object"},"outputs":{"description":"A collection of values returned by getService.\n","properties":{"created":{"description":"Created is the time this service was created.\n","type":"string"},"environmentTag":{"description":"Environment tag for this service.\n","type":"string"},"id":{"description":"Service ID is the unique identifier for this service\n","type":"string"},"name":{"description":"Service Name is the configurable name assigned to this resource. If none is provided, a default will be generated by the provider.\n","type":"string"},"regionCode":{"description":"Region Code is the physical data center where this service is located.\n","type":"string"},"resources":{"items":{"$ref":"#/types/timescale:index%2FgetServiceResource:getServiceResource"},"type":"array"},"spec":{"$ref":"#/types/timescale:index%2FgetServiceSpec:getServiceSpec"},"vpcId":{"description":"VPC ID this service is linked to.\n","type":"number"}},"required":["created","environmentTag","id","name","regionCode","resources","spec","vpcId"],"type":"object"}},"timescale:index/getVpcs:getVpcs":{"description":"## Example Usage\n\n","outputs":{"description":"A collection of values returned by getVpcs.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"vpcs":{"items":{"$ref":"#/types/timescale:index%2FgetVpcsVpc:getVpcsVpc"},"type":"array"}},"required":["id","vpcs"],"type":"object"}}},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/timescale/v2/timescale","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"timescale"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from timescale.","readme":"> This provider is a derived work of the [Terraform Provider](https://github.com/timescale/terraform-provider-timescale)\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-timescale` repo](https://github.com/timescale/terraform-provider-timescale/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"> This provider is a derived work of the [Terraform Provider](https://github.com/timescale/terraform-provider-timescale)\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-timescale` repo](https://github.com/timescale/terraform-provider-timescale/issues).","respectSchemaVersion":true}},"meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"name":"timescale","parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL3RpbWVzY2FsZS90aW1lc2NhbGUiLCJ2ZXJzaW9uIjoiMi45LjAifX0="},"provider":{"description":"The provider type for the timescale 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":"Access Key","type":"string"},"accessToken":{"description":"Access Token","secret":true,"type":"string"},"projectId":{"description":"Project ID","type":"string"},"secretKey":{"description":"Secret Key","secret":true,"type":"string"}},"methods":{"terraformConfig":"pulumi:providers:timescale/terraformConfig"},"properties":{"accessKey":{"description":"Access Key","type":"string"},"accessToken":{"description":"Access Token","secret":true,"type":"string"},"projectId":{"description":"Project ID","type":"string"},"secretKey":{"description":"Secret Key","secret":true,"type":"string"}},"required":["projectId"],"requiredInputs":["projectId"],"type":"object"},"publisher":"timescale","repository":"https://github.com/timescale/terraform-provider-timescale","resources":{"timescale:index/connectorS3:ConnectorS3":{"description":"Manages an S3 connector for continuous data import from S3 buckets.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as timescale from \"@pulumi/timescale\";\n\nconst config = new pulumi.Config();\nconst tsProjectId = config.require(\"tsProjectId\");\nconst tsAccessKey = config.require(\"tsAccessKey\");\nconst tsSecretKey = config.require(\"tsSecretKey\");\n// Create a service to attach the S3 connector to\nconst example = new timescale.Service(\"example\", {\n    name: \"s3-connector-service\",\n    milliCpu: 1000,\n    memoryGb: 4,\n    regionCode: \"us-east-1\",\n});\nconst exampleConnectorS3 = new timescale.ConnectorS3(\"example\", {\n    serviceId: example.id,\n    name: \"my-s3-connector\",\n    bucket: \"my-data-bucket\",\n    pattern: \"data/*.csv\",\n    credentials: {\n        type: \"Public\",\n    },\n    definition: {\n        type: \"CSV\",\n        csv: {\n            skipHeader: true,\n            autoColumnMapping: true,\n        },\n    },\n    tableIdentifier: {\n        schemaName: \"public\",\n        tableName: \"sensor_data\",\n    },\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_timescale as timescale\n\nconfig = pulumi.Config()\nts_project_id = config.require(\"tsProjectId\")\nts_access_key = config.require(\"tsAccessKey\")\nts_secret_key = config.require(\"tsSecretKey\")\n# Create a service to attach the S3 connector to\nexample = timescale.Service(\"example\",\n    name=\"s3-connector-service\",\n    milli_cpu=1000,\n    memory_gb=4,\n    region_code=\"us-east-1\")\nexample_connector_s3 = timescale.ConnectorS3(\"example\",\n    service_id=example.id,\n    name=\"my-s3-connector\",\n    bucket=\"my-data-bucket\",\n    pattern=\"data/*.csv\",\n    credentials={\n        \"type\": \"Public\",\n    },\n    definition={\n        \"type\": \"CSV\",\n        \"csv\": {\n            \"skip_header\": True,\n            \"auto_column_mapping\": True,\n        },\n    },\n    table_identifier={\n        \"schema_name\": \"public\",\n        \"table_name\": \"sensor_data\",\n    },\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Timescale = Pulumi.Timescale;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var tsProjectId = config.Require(\"tsProjectId\");\n    var tsAccessKey = config.Require(\"tsAccessKey\");\n    var tsSecretKey = config.Require(\"tsSecretKey\");\n    // Create a service to attach the S3 connector to\n    var example = new Timescale.Service(\"example\", new()\n    {\n        Name = \"s3-connector-service\",\n        MilliCpu = 1000,\n        MemoryGb = 4,\n        RegionCode = \"us-east-1\",\n    });\n\n    var exampleConnectorS3 = new Timescale.ConnectorS3(\"example\", new()\n    {\n        ServiceId = example.Id,\n        Name = \"my-s3-connector\",\n        Bucket = \"my-data-bucket\",\n        Pattern = \"data/*.csv\",\n        Credentials = new Timescale.Inputs.ConnectorS3CredentialsArgs\n        {\n            Type = \"Public\",\n        },\n        Definition = new Timescale.Inputs.ConnectorS3DefinitionArgs\n        {\n            Type = \"CSV\",\n            Csv = new Timescale.Inputs.ConnectorS3DefinitionCsvArgs\n            {\n                SkipHeader = true,\n                AutoColumnMapping = true,\n            },\n        },\n        TableIdentifier = new Timescale.Inputs.ConnectorS3TableIdentifierArgs\n        {\n            SchemaName = \"public\",\n            TableName = \"sensor_data\",\n        },\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/timescale/v2/timescale\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttsProjectId := cfg.Require(\"tsProjectId\")\n\t\ttsAccessKey := cfg.Require(\"tsAccessKey\")\n\t\ttsSecretKey := cfg.Require(\"tsSecretKey\")\n\t\t// Create a service to attach the S3 connector to\n\t\texample, err := timescale.NewService(ctx, \"example\", &timescale.ServiceArgs{\n\t\t\tName:       pulumi.String(\"s3-connector-service\"),\n\t\t\tMilliCpu:   pulumi.Float64(1000),\n\t\t\tMemoryGb:   pulumi.Float64(4),\n\t\t\tRegionCode: pulumi.String(\"us-east-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = timescale.NewConnectorS3(ctx, \"example\", &timescale.ConnectorS3Args{\n\t\t\tServiceId: example.ID(),\n\t\t\tName:      pulumi.String(\"my-s3-connector\"),\n\t\t\tBucket:    pulumi.String(\"my-data-bucket\"),\n\t\t\tPattern:   pulumi.String(\"data/*.csv\"),\n\t\t\tCredentials: &timescale.ConnectorS3CredentialsArgs{\n\t\t\t\tType: pulumi.String(\"Public\"),\n\t\t\t},\n\t\t\tDefinition: &timescale.ConnectorS3DefinitionArgs{\n\t\t\t\tType: pulumi.String(\"CSV\"),\n\t\t\t\tCsv: &timescale.ConnectorS3DefinitionCsvArgs{\n\t\t\t\t\tSkipHeader:        pulumi.Bool(true),\n\t\t\t\t\tAutoColumnMapping: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTableIdentifier: &timescale.ConnectorS3TableIdentifierArgs{\n\t\t\t\tSchemaName: pulumi.String(\"public\"),\n\t\t\t\tTableName:  pulumi.String(\"sensor_data\"),\n\t\t\t},\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.timescale.Service;\nimport com.pulumi.timescale.ServiceArgs;\nimport com.pulumi.timescale.ConnectorS3;\nimport com.pulumi.timescale.ConnectorS3Args;\nimport com.pulumi.timescale.inputs.ConnectorS3CredentialsArgs;\nimport com.pulumi.timescale.inputs.ConnectorS3DefinitionArgs;\nimport com.pulumi.timescale.inputs.ConnectorS3DefinitionCsvArgs;\nimport com.pulumi.timescale.inputs.ConnectorS3TableIdentifierArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var tsProjectId = config.get(\"tsProjectId\");\n        final var tsAccessKey = config.get(\"tsAccessKey\");\n        final var tsSecretKey = config.get(\"tsSecretKey\");\n        // Create a service to attach the S3 connector to\n        var example = new Service(\"example\", ServiceArgs.builder()\n            .name(\"s3-connector-service\")\n            .milliCpu(1000.0)\n            .memoryGb(4.0)\n            .regionCode(\"us-east-1\")\n            .build());\n\n        var exampleConnectorS3 = new ConnectorS3(\"exampleConnectorS3\", ConnectorS3Args.builder()\n            .serviceId(example.id())\n            .name(\"my-s3-connector\")\n            .bucket(\"my-data-bucket\")\n            .pattern(\"data/*.csv\")\n            .credentials(ConnectorS3CredentialsArgs.builder()\n                .type(\"Public\")\n                .build())\n            .definition(ConnectorS3DefinitionArgs.builder()\n                .type(\"CSV\")\n                .csv(ConnectorS3DefinitionCsvArgs.builder()\n                    .skipHeader(true)\n                    .autoColumnMapping(true)\n                    .build())\n                .build())\n            .tableIdentifier(ConnectorS3TableIdentifierArgs.builder()\n                .schemaName(\"public\")\n                .tableName(\"sensor_data\")\n                .build())\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  tsProjectId:\n    type: string\n  tsAccessKey:\n    type: string\n  tsSecretKey:\n    type: string\nresources:\n  # Create a service to attach the S3 connector to\n  example:\n    type: timescale:Service\n    properties:\n      name: s3-connector-service\n      milliCpu: 1000\n      memoryGb: 4\n      regionCode: us-east-1\n  exampleConnectorS3:\n    type: timescale:ConnectorS3\n    name: example\n    properties:\n      serviceId: ${example.id}\n      name: my-s3-connector\n      bucket: my-data-bucket\n      pattern: data/*.csv\n      credentials:\n        type: Public\n      definition:\n        type: CSV\n        csv:\n          skipHeader: true\n          autoColumnMapping: true\n      tableIdentifier:\n        schemaName: public\n        tableName: sensor_data\n      enabled: true\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"bucket":{"description":"S3 bucket name.\n","type":"string"},"credentials":{"$ref":"#/types/timescale:index%2FConnectorS3Credentials:ConnectorS3Credentials","description":"S3 authentication credentials.\n"},"definition":{"$ref":"#/types/timescale:index%2FConnectorS3Definition:ConnectorS3Definition","description":"File format definition (CSV or PARQUET).\n"},"enabled":{"description":"Whether the connector is enabled (default: true) .\n","type":"boolean"},"frequency":{"description":"Cron expression for sync frequency: @always, @5minutes, @10minutes, @15minutes, @30minutes, @hourly, @daily, @weekly, @monthly, @annually, @yearly\n","type":"string"},"name":{"description":"Human-readable name for the connector.\n","type":"string"},"onConflictDoNothing":{"description":"Handle conflicts by doing nothing (ignore conflicting rows). Defaults to false.\n","type":"boolean"},"pattern":{"description":"Pattern to match S3 object keys (supports wildcards).\n","type":"string"},"serviceId":{"description":"The service ID to attach the connector to.\n","type":"string"},"tableIdentifier":{"$ref":"#/types/timescale:index%2FConnectorS3TableIdentifier:ConnectorS3TableIdentifier","description":"Target table identifier.\n"}},"properties":{"bucket":{"description":"S3 bucket name.\n","type":"string"},"createdAt":{"description":"Timestamp when the connector was created.\n","type":"string"},"credentials":{"$ref":"#/types/timescale:index%2FConnectorS3Credentials:ConnectorS3Credentials","description":"S3 authentication credentials.\n"},"definition":{"$ref":"#/types/timescale:index%2FConnectorS3Definition:ConnectorS3Definition","description":"File format definition (CSV or PARQUET).\n"},"enabled":{"description":"Whether the connector is enabled (default: true) .\n","type":"boolean"},"frequency":{"description":"Cron expression for sync frequency: @always, @5minutes, @10minutes, @15minutes, @30minutes, @hourly, @daily, @weekly, @monthly, @annually, @yearly\n","type":"string"},"name":{"description":"Human-readable name for the connector.\n","type":"string"},"onConflictDoNothing":{"description":"Handle conflicts by doing nothing (ignore conflicting rows). Defaults to false.\n","type":"boolean"},"pattern":{"description":"Pattern to match S3 object keys (supports wildcards).\n","type":"string"},"serviceId":{"description":"The service ID to attach the connector to.\n","type":"string"},"tableIdentifier":{"$ref":"#/types/timescale:index%2FConnectorS3TableIdentifier:ConnectorS3TableIdentifier","description":"Target table identifier.\n"},"updatedAt":{"description":"Timestamp when the connector was last updated.\n","type":"string"}},"required":["bucket","createdAt","credentials","definition","enabled","frequency","name","onConflictDoNothing","pattern","serviceId","tableIdentifier","updatedAt"],"requiredInputs":["bucket","credentials","definition","pattern","serviceId","tableIdentifier"],"stateInputs":{"description":"Input properties used for looking up and filtering ConnectorS3 resources.\n","properties":{"bucket":{"description":"S3 bucket name.\n","type":"string"},"createdAt":{"description":"Timestamp when the connector was created.\n","type":"string"},"credentials":{"$ref":"#/types/timescale:index%2FConnectorS3Credentials:ConnectorS3Credentials","description":"S3 authentication credentials.\n"},"definition":{"$ref":"#/types/timescale:index%2FConnectorS3Definition:ConnectorS3Definition","description":"File format definition (CSV or PARQUET).\n"},"enabled":{"description":"Whether the connector is enabled (default: true) .\n","type":"boolean"},"frequency":{"description":"Cron expression for sync frequency: @always, @5minutes, @10minutes, @15minutes, @30minutes, @hourly, @daily, @weekly, @monthly, @annually, @yearly\n","type":"string"},"name":{"description":"Human-readable name for the connector.\n","type":"string"},"onConflictDoNothing":{"description":"Handle conflicts by doing nothing (ignore conflicting rows). Defaults to false.\n","type":"boolean"},"pattern":{"description":"Pattern to match S3 object keys (supports wildcards).\n","type":"string"},"serviceId":{"description":"The service ID to attach the connector to.\n","type":"string"},"tableIdentifier":{"$ref":"#/types/timescale:index%2FConnectorS3TableIdentifier:ConnectorS3TableIdentifier","description":"Target table identifier.\n"},"updatedAt":{"description":"Timestamp when the connector was last updated.\n","type":"string"}},"type":"object"},"type":"object"},"timescale:index/logExporter:LogExporter":{"description":"Schema for a log exporter.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as timescale from \"@pulumi/timescale\";\n\nconst config = new pulumi.Config();\nconst tsProjectId = config.require(\"tsProjectId\");\nconst tsAccessKey = config.require(\"tsAccessKey\");\nconst tsSecretKey = config.require(\"tsSecretKey\");\nconst myCloudwatchExporterWithRole = new timescale.LogExporter(\"my_cloudwatch_exporter_with_role\", {\n    name: \"CloudWatch Log Exporter via IAM Role from TF\",\n    region: \"us-east-1\",\n    cloudwatch: {\n        region: \"us-east-1\",\n        roleArn: \"arn:aws:iam::123456789012:role/MyLogsExporterRole\",\n        logGroupName: \"/myapplication/logs\",\n        logStreamName: \"exporter-stream-role\",\n    },\n});\nconst myCloudwatchExporterWithKeys = new timescale.LogExporter(\"my_cloudwatch_exporter_with_keys\", {\n    name: \"CloudWatch Log Exporter via Static Keys\",\n    region: \"us-east-1\",\n    cloudwatch: {\n        region: \"us-east-1\",\n        accessKey: \"your_access_key_\",\n        secretKey: \"your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        logGroupName: \"/anotherapplication/logs\",\n        logStreamName: \"exporter-stream-keys\",\n    },\n});\n// Create a service and attach one of the exporters (only 1 log exporter can be attached at the same time)\nconst logExporterTest = new timescale.Service(\"log_exporter_test\", {\n    name: \"log_exporter_test\",\n    milliCpu: 1000,\n    memoryGb: 4,\n    regionCode: \"us-east-1\",\n    logExporterId: myCloudwatchExporterWithKeys.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_timescale as timescale\n\nconfig = pulumi.Config()\nts_project_id = config.require(\"tsProjectId\")\nts_access_key = config.require(\"tsAccessKey\")\nts_secret_key = config.require(\"tsSecretKey\")\nmy_cloudwatch_exporter_with_role = timescale.LogExporter(\"my_cloudwatch_exporter_with_role\",\n    name=\"CloudWatch Log Exporter via IAM Role from TF\",\n    region=\"us-east-1\",\n    cloudwatch={\n        \"region\": \"us-east-1\",\n        \"role_arn\": \"arn:aws:iam::123456789012:role/MyLogsExporterRole\",\n        \"log_group_name\": \"/myapplication/logs\",\n        \"log_stream_name\": \"exporter-stream-role\",\n    })\nmy_cloudwatch_exporter_with_keys = timescale.LogExporter(\"my_cloudwatch_exporter_with_keys\",\n    name=\"CloudWatch Log Exporter via Static Keys\",\n    region=\"us-east-1\",\n    cloudwatch={\n        \"region\": \"us-east-1\",\n        \"access_key\": \"your_access_key_\",\n        \"secret_key\": \"your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        \"log_group_name\": \"/anotherapplication/logs\",\n        \"log_stream_name\": \"exporter-stream-keys\",\n    })\n# Create a service and attach one of the exporters (only 1 log exporter can be attached at the same time)\nlog_exporter_test = timescale.Service(\"log_exporter_test\",\n    name=\"log_exporter_test\",\n    milli_cpu=1000,\n    memory_gb=4,\n    region_code=\"us-east-1\",\n    log_exporter_id=my_cloudwatch_exporter_with_keys.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Timescale = Pulumi.Timescale;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var tsProjectId = config.Require(\"tsProjectId\");\n    var tsAccessKey = config.Require(\"tsAccessKey\");\n    var tsSecretKey = config.Require(\"tsSecretKey\");\n    var myCloudwatchExporterWithRole = new Timescale.LogExporter(\"my_cloudwatch_exporter_with_role\", new()\n    {\n        Name = \"CloudWatch Log Exporter via IAM Role from TF\",\n        Region = \"us-east-1\",\n        Cloudwatch = new Timescale.Inputs.LogExporterCloudwatchArgs\n        {\n            Region = \"us-east-1\",\n            RoleArn = \"arn:aws:iam::123456789012:role/MyLogsExporterRole\",\n            LogGroupName = \"/myapplication/logs\",\n            LogStreamName = \"exporter-stream-role\",\n        },\n    });\n\n    var myCloudwatchExporterWithKeys = new Timescale.LogExporter(\"my_cloudwatch_exporter_with_keys\", new()\n    {\n        Name = \"CloudWatch Log Exporter via Static Keys\",\n        Region = \"us-east-1\",\n        Cloudwatch = new Timescale.Inputs.LogExporterCloudwatchArgs\n        {\n            Region = \"us-east-1\",\n            AccessKey = \"your_access_key_\",\n            SecretKey = \"your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\",\n            LogGroupName = \"/anotherapplication/logs\",\n            LogStreamName = \"exporter-stream-keys\",\n        },\n    });\n\n    // Create a service and attach one of the exporters (only 1 log exporter can be attached at the same time)\n    var logExporterTest = new Timescale.Service(\"log_exporter_test\", new()\n    {\n        Name = \"log_exporter_test\",\n        MilliCpu = 1000,\n        MemoryGb = 4,\n        RegionCode = \"us-east-1\",\n        LogExporterId = myCloudwatchExporterWithKeys.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/timescale/v2/timescale\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttsProjectId := cfg.Require(\"tsProjectId\")\n\t\ttsAccessKey := cfg.Require(\"tsAccessKey\")\n\t\ttsSecretKey := cfg.Require(\"tsSecretKey\")\n\t\t_, err := timescale.NewLogExporter(ctx, \"my_cloudwatch_exporter_with_role\", &timescale.LogExporterArgs{\n\t\t\tName:   pulumi.String(\"CloudWatch Log Exporter via IAM Role from TF\"),\n\t\t\tRegion: pulumi.String(\"us-east-1\"),\n\t\t\tCloudwatch: &timescale.LogExporterCloudwatchArgs{\n\t\t\t\tRegion:        pulumi.String(\"us-east-1\"),\n\t\t\t\tRoleArn:       pulumi.String(\"arn:aws:iam::123456789012:role/MyLogsExporterRole\"),\n\t\t\t\tLogGroupName:  pulumi.String(\"/myapplication/logs\"),\n\t\t\t\tLogStreamName: pulumi.String(\"exporter-stream-role\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyCloudwatchExporterWithKeys, err := timescale.NewLogExporter(ctx, \"my_cloudwatch_exporter_with_keys\", &timescale.LogExporterArgs{\n\t\t\tName:   pulumi.String(\"CloudWatch Log Exporter via Static Keys\"),\n\t\t\tRegion: pulumi.String(\"us-east-1\"),\n\t\t\tCloudwatch: &timescale.LogExporterCloudwatchArgs{\n\t\t\t\tRegion:        pulumi.String(\"us-east-1\"),\n\t\t\t\tAccessKey:     pulumi.String(\"your_access_key_\"),\n\t\t\t\tSecretKey:     pulumi.String(\"your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\t\tLogGroupName:  pulumi.String(\"/anotherapplication/logs\"),\n\t\t\t\tLogStreamName: pulumi.String(\"exporter-stream-keys\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a service and attach one of the exporters (only 1 log exporter can be attached at the same time)\n\t\t_, err = timescale.NewService(ctx, \"log_exporter_test\", &timescale.ServiceArgs{\n\t\t\tName:          pulumi.String(\"log_exporter_test\"),\n\t\t\tMilliCpu:      pulumi.Float64(1000),\n\t\t\tMemoryGb:      pulumi.Float64(4),\n\t\t\tRegionCode:    pulumi.String(\"us-east-1\"),\n\t\t\tLogExporterId: myCloudwatchExporterWithKeys.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.timescale.LogExporter;\nimport com.pulumi.timescale.LogExporterArgs;\nimport com.pulumi.timescale.inputs.LogExporterCloudwatchArgs;\nimport com.pulumi.timescale.Service;\nimport com.pulumi.timescale.ServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var tsProjectId = config.get(\"tsProjectId\");\n        final var tsAccessKey = config.get(\"tsAccessKey\");\n        final var tsSecretKey = config.get(\"tsSecretKey\");\n        var myCloudwatchExporterWithRole = new LogExporter(\"myCloudwatchExporterWithRole\", LogExporterArgs.builder()\n            .name(\"CloudWatch Log Exporter via IAM Role from TF\")\n            .region(\"us-east-1\")\n            .cloudwatch(LogExporterCloudwatchArgs.builder()\n                .region(\"us-east-1\")\n                .roleArn(\"arn:aws:iam::123456789012:role/MyLogsExporterRole\")\n                .logGroupName(\"/myapplication/logs\")\n                .logStreamName(\"exporter-stream-role\")\n                .build())\n            .build());\n\n        var myCloudwatchExporterWithKeys = new LogExporter(\"myCloudwatchExporterWithKeys\", LogExporterArgs.builder()\n            .name(\"CloudWatch Log Exporter via Static Keys\")\n            .region(\"us-east-1\")\n            .cloudwatch(LogExporterCloudwatchArgs.builder()\n                .region(\"us-east-1\")\n                .accessKey(\"your_access_key_\")\n                .secretKey(\"your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\")\n                .logGroupName(\"/anotherapplication/logs\")\n                .logStreamName(\"exporter-stream-keys\")\n                .build())\n            .build());\n\n        // Create a service and attach one of the exporters (only 1 log exporter can be attached at the same time)\n        var logExporterTest = new Service(\"logExporterTest\", ServiceArgs.builder()\n            .name(\"log_exporter_test\")\n            .milliCpu(1000.0)\n            .memoryGb(4.0)\n            .regionCode(\"us-east-1\")\n            .logExporterId(myCloudwatchExporterWithKeys.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  tsProjectId:\n    type: string\n  tsAccessKey:\n    type: string\n  tsSecretKey:\n    type: string\nresources:\n  myCloudwatchExporterWithRole:\n    type: timescale:LogExporter\n    name: my_cloudwatch_exporter_with_role\n    properties:\n      name: CloudWatch Log Exporter via IAM Role from TF\n      region: us-east-1\n      cloudwatch:\n        region: us-east-1\n        roleArn: arn:aws:iam::123456789012:role/MyLogsExporterRole\n        logGroupName: /myapplication/logs\n        logStreamName: exporter-stream-role\n  myCloudwatchExporterWithKeys:\n    type: timescale:LogExporter\n    name: my_cloudwatch_exporter_with_keys\n    properties:\n      name: CloudWatch Log Exporter via Static Keys\n      region: us-east-1\n      cloudwatch:\n        region: us-east-1\n        accessKey: your_access_key_\n        secretKey: your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\n        logGroupName: /anotherapplication/logs\n        logStreamName: exporter-stream-keys\n  # Create a service and attach one of the exporters (only 1 log exporter can be attached at the same time)\n  logExporterTest:\n    type: timescale:Service\n    name: log_exporter_test\n    properties:\n      name: log_exporter_test\n      milliCpu: 1000\n      memoryGb: 4\n      regionCode: us-east-1\n      logExporterId: ${myCloudwatchExporterWithKeys.id}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"cloudwatch":{"$ref":"#/types/timescale:index%2FLogExporterCloudwatch:LogExporterCloudwatch","description":"Configuration for AWS CloudWatch exporter. Configure authentication using either <span pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\">`role_arn`</span> or <span pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\">`access_key`</span> with <span pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\">`secret_key`</span>.\n"},"name":{"description":"Log exporter name.\n","type":"string"},"region":{"description":"Region where the exporter will be deployed. Only services running in the same region can be attached.\n","type":"string"}},"properties":{"cloudwatch":{"$ref":"#/types/timescale:index%2FLogExporterCloudwatch:LogExporterCloudwatch","description":"Configuration for AWS CloudWatch exporter. Configure authentication using either <span pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\">`role_arn`</span> or <span pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\">`access_key`</span> with <span pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\">`secret_key`</span>.\n"},"created":{"description":"Timestamp of when the log exporter was created (RFC3339 format).\n","type":"string"},"name":{"description":"Log exporter name.\n","type":"string"},"region":{"description":"Region where the exporter will be deployed. Only services running in the same region can be attached.\n","type":"string"},"type":{"description":"Type of the log exporter. Possible values: cloudwatch.\n","type":"string"}},"required":["created","name","region","type"],"requiredInputs":["region"],"stateInputs":{"description":"Input properties used for looking up and filtering LogExporter resources.\n","properties":{"cloudwatch":{"$ref":"#/types/timescale:index%2FLogExporterCloudwatch:LogExporterCloudwatch","description":"Configuration for AWS CloudWatch exporter. Configure authentication using either <span pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\">`role_arn`</span> or <span pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\">`access_key`</span> with <span pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\">`secret_key`</span>.\n"},"created":{"description":"Timestamp of when the log exporter was created (RFC3339 format).\n","type":"string"},"name":{"description":"Log exporter name.\n","type":"string"},"region":{"description":"Region where the exporter will be deployed. Only services running in the same region can be attached.\n","type":"string"},"type":{"description":"Type of the log exporter. Possible values: cloudwatch.\n","type":"string"}},"type":"object"},"type":"object"},"timescale:index/metricExporter:MetricExporter":{"description":"Schema for a metric exporter.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as timescale from \"@pulumi/timescale\";\n\nconst config = new pulumi.Config();\nconst tsProjectId = config.require(\"tsProjectId\");\nconst tsAccessKey = config.require(\"tsAccessKey\");\nconst tsSecretKey = config.require(\"tsSecretKey\");\nconst myDatadogExporter = new timescale.MetricExporter(\"my_datadog_exporter\", {\n    name: \"Datadog Exporter from TF\",\n    region: \"us-east-1\",\n    datadog: {\n        apiKey: \"your_datadog_api_key_here\",\n        site: \"datadoghq.com\",\n    },\n});\nconst myPrometheusExporter = new timescale.MetricExporter(\"my_prometheus_exporter\", {\n    name: \"Prometheus Exporter from TF\",\n    region: \"us-east-1\",\n    prometheus: {\n        username: \"prom_user\",\n        password: \"a_very_secure_password\",\n    },\n});\nconst myCloudwatchExporterWithRole = new timescale.MetricExporter(\"my_cloudwatch_exporter_with_role\", {\n    name: \"CloudWatch Exporter via IAM Role from TF\",\n    region: \"us-east-1\",\n    cloudwatch: {\n        region: \"us-east-1\",\n        roleArn: \"arn:aws:iam::123456789012:role/MyMetricsExporterRole\",\n        logGroupName: \"/myapplication/metrics\",\n        logStreamName: \"exporter-stream-role\",\n        namespace: \"MyApplication/CustomMetrics\",\n    },\n});\nconst myCloudwatchExporterWithKeys = new timescale.MetricExporter(\"my_cloudwatch_exporter_with_keys\", {\n    name: \"CloudWatch Exporter via Static Keys\",\n    region: \"us-east-1\",\n    cloudwatch: {\n        region: \"us-east-1\",\n        accessKey: \"your_access_key_\",\n        secretKey: \"your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        logGroupName: \"/anotherapplication/metrics\",\n        logStreamName: \"exporter-stream-keys\",\n        namespace: \"AnotherApplication/CustomMetrics\",\n    },\n});\n// Create a service and attach one of the exporters (only 1 metric exporter can be attached at the same time)\nconst metricExporterTest = new timescale.Service(\"metric_exporter_test\", {\n    name: \"metric_exporter_test\",\n    milliCpu: 1000,\n    memoryGb: 4,\n    regionCode: \"us-east-1\",\n    metricExporterId: myCloudwatchExporterWithKeys.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_timescale as timescale\n\nconfig = pulumi.Config()\nts_project_id = config.require(\"tsProjectId\")\nts_access_key = config.require(\"tsAccessKey\")\nts_secret_key = config.require(\"tsSecretKey\")\nmy_datadog_exporter = timescale.MetricExporter(\"my_datadog_exporter\",\n    name=\"Datadog Exporter from TF\",\n    region=\"us-east-1\",\n    datadog={\n        \"api_key\": \"your_datadog_api_key_here\",\n        \"site\": \"datadoghq.com\",\n    })\nmy_prometheus_exporter = timescale.MetricExporter(\"my_prometheus_exporter\",\n    name=\"Prometheus Exporter from TF\",\n    region=\"us-east-1\",\n    prometheus={\n        \"username\": \"prom_user\",\n        \"password\": \"a_very_secure_password\",\n    })\nmy_cloudwatch_exporter_with_role = timescale.MetricExporter(\"my_cloudwatch_exporter_with_role\",\n    name=\"CloudWatch Exporter via IAM Role from TF\",\n    region=\"us-east-1\",\n    cloudwatch={\n        \"region\": \"us-east-1\",\n        \"role_arn\": \"arn:aws:iam::123456789012:role/MyMetricsExporterRole\",\n        \"log_group_name\": \"/myapplication/metrics\",\n        \"log_stream_name\": \"exporter-stream-role\",\n        \"namespace\": \"MyApplication/CustomMetrics\",\n    })\nmy_cloudwatch_exporter_with_keys = timescale.MetricExporter(\"my_cloudwatch_exporter_with_keys\",\n    name=\"CloudWatch Exporter via Static Keys\",\n    region=\"us-east-1\",\n    cloudwatch={\n        \"region\": \"us-east-1\",\n        \"access_key\": \"your_access_key_\",\n        \"secret_key\": \"your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        \"log_group_name\": \"/anotherapplication/metrics\",\n        \"log_stream_name\": \"exporter-stream-keys\",\n        \"namespace\": \"AnotherApplication/CustomMetrics\",\n    })\n# Create a service and attach one of the exporters (only 1 metric exporter can be attached at the same time)\nmetric_exporter_test = timescale.Service(\"metric_exporter_test\",\n    name=\"metric_exporter_test\",\n    milli_cpu=1000,\n    memory_gb=4,\n    region_code=\"us-east-1\",\n    metric_exporter_id=my_cloudwatch_exporter_with_keys.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Timescale = Pulumi.Timescale;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var tsProjectId = config.Require(\"tsProjectId\");\n    var tsAccessKey = config.Require(\"tsAccessKey\");\n    var tsSecretKey = config.Require(\"tsSecretKey\");\n    var myDatadogExporter = new Timescale.MetricExporter(\"my_datadog_exporter\", new()\n    {\n        Name = \"Datadog Exporter from TF\",\n        Region = \"us-east-1\",\n        Datadog = new Timescale.Inputs.MetricExporterDatadogArgs\n        {\n            ApiKey = \"your_datadog_api_key_here\",\n            Site = \"datadoghq.com\",\n        },\n    });\n\n    var myPrometheusExporter = new Timescale.MetricExporter(\"my_prometheus_exporter\", new()\n    {\n        Name = \"Prometheus Exporter from TF\",\n        Region = \"us-east-1\",\n        Prometheus = new Timescale.Inputs.MetricExporterPrometheusArgs\n        {\n            Username = \"prom_user\",\n            Password = \"a_very_secure_password\",\n        },\n    });\n\n    var myCloudwatchExporterWithRole = new Timescale.MetricExporter(\"my_cloudwatch_exporter_with_role\", new()\n    {\n        Name = \"CloudWatch Exporter via IAM Role from TF\",\n        Region = \"us-east-1\",\n        Cloudwatch = new Timescale.Inputs.MetricExporterCloudwatchArgs\n        {\n            Region = \"us-east-1\",\n            RoleArn = \"arn:aws:iam::123456789012:role/MyMetricsExporterRole\",\n            LogGroupName = \"/myapplication/metrics\",\n            LogStreamName = \"exporter-stream-role\",\n            Namespace = \"MyApplication/CustomMetrics\",\n        },\n    });\n\n    var myCloudwatchExporterWithKeys = new Timescale.MetricExporter(\"my_cloudwatch_exporter_with_keys\", new()\n    {\n        Name = \"CloudWatch Exporter via Static Keys\",\n        Region = \"us-east-1\",\n        Cloudwatch = new Timescale.Inputs.MetricExporterCloudwatchArgs\n        {\n            Region = \"us-east-1\",\n            AccessKey = \"your_access_key_\",\n            SecretKey = \"your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\",\n            LogGroupName = \"/anotherapplication/metrics\",\n            LogStreamName = \"exporter-stream-keys\",\n            Namespace = \"AnotherApplication/CustomMetrics\",\n        },\n    });\n\n    // Create a service and attach one of the exporters (only 1 metric exporter can be attached at the same time)\n    var metricExporterTest = new Timescale.Service(\"metric_exporter_test\", new()\n    {\n        Name = \"metric_exporter_test\",\n        MilliCpu = 1000,\n        MemoryGb = 4,\n        RegionCode = \"us-east-1\",\n        MetricExporterId = myCloudwatchExporterWithKeys.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/timescale/v2/timescale\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttsProjectId := cfg.Require(\"tsProjectId\")\n\t\ttsAccessKey := cfg.Require(\"tsAccessKey\")\n\t\ttsSecretKey := cfg.Require(\"tsSecretKey\")\n\t\t_, err := timescale.NewMetricExporter(ctx, \"my_datadog_exporter\", &timescale.MetricExporterArgs{\n\t\t\tName:   pulumi.String(\"Datadog Exporter from TF\"),\n\t\t\tRegion: pulumi.String(\"us-east-1\"),\n\t\t\tDatadog: &timescale.MetricExporterDatadogArgs{\n\t\t\t\tApiKey: pulumi.String(\"your_datadog_api_key_here\"),\n\t\t\t\tSite:   pulumi.String(\"datadoghq.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = timescale.NewMetricExporter(ctx, \"my_prometheus_exporter\", &timescale.MetricExporterArgs{\n\t\t\tName:   pulumi.String(\"Prometheus Exporter from TF\"),\n\t\t\tRegion: pulumi.String(\"us-east-1\"),\n\t\t\tPrometheus: &timescale.MetricExporterPrometheusArgs{\n\t\t\t\tUsername: pulumi.String(\"prom_user\"),\n\t\t\t\tPassword: pulumi.String(\"a_very_secure_password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = timescale.NewMetricExporter(ctx, \"my_cloudwatch_exporter_with_role\", &timescale.MetricExporterArgs{\n\t\t\tName:   pulumi.String(\"CloudWatch Exporter via IAM Role from TF\"),\n\t\t\tRegion: pulumi.String(\"us-east-1\"),\n\t\t\tCloudwatch: &timescale.MetricExporterCloudwatchArgs{\n\t\t\t\tRegion:        pulumi.String(\"us-east-1\"),\n\t\t\t\tRoleArn:       pulumi.String(\"arn:aws:iam::123456789012:role/MyMetricsExporterRole\"),\n\t\t\t\tLogGroupName:  pulumi.String(\"/myapplication/metrics\"),\n\t\t\t\tLogStreamName: pulumi.String(\"exporter-stream-role\"),\n\t\t\t\tNamespace:     pulumi.String(\"MyApplication/CustomMetrics\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyCloudwatchExporterWithKeys, err := timescale.NewMetricExporter(ctx, \"my_cloudwatch_exporter_with_keys\", &timescale.MetricExporterArgs{\n\t\t\tName:   pulumi.String(\"CloudWatch Exporter via Static Keys\"),\n\t\t\tRegion: pulumi.String(\"us-east-1\"),\n\t\t\tCloudwatch: &timescale.MetricExporterCloudwatchArgs{\n\t\t\t\tRegion:        pulumi.String(\"us-east-1\"),\n\t\t\t\tAccessKey:     pulumi.String(\"your_access_key_\"),\n\t\t\t\tSecretKey:     pulumi.String(\"your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\t\tLogGroupName:  pulumi.String(\"/anotherapplication/metrics\"),\n\t\t\t\tLogStreamName: pulumi.String(\"exporter-stream-keys\"),\n\t\t\t\tNamespace:     pulumi.String(\"AnotherApplication/CustomMetrics\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a service and attach one of the exporters (only 1 metric exporter can be attached at the same time)\n\t\t_, err = timescale.NewService(ctx, \"metric_exporter_test\", &timescale.ServiceArgs{\n\t\t\tName:             pulumi.String(\"metric_exporter_test\"),\n\t\t\tMilliCpu:         pulumi.Float64(1000),\n\t\t\tMemoryGb:         pulumi.Float64(4),\n\t\t\tRegionCode:       pulumi.String(\"us-east-1\"),\n\t\t\tMetricExporterId: myCloudwatchExporterWithKeys.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.timescale.MetricExporter;\nimport com.pulumi.timescale.MetricExporterArgs;\nimport com.pulumi.timescale.inputs.MetricExporterDatadogArgs;\nimport com.pulumi.timescale.inputs.MetricExporterPrometheusArgs;\nimport com.pulumi.timescale.inputs.MetricExporterCloudwatchArgs;\nimport com.pulumi.timescale.Service;\nimport com.pulumi.timescale.ServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var tsProjectId = config.get(\"tsProjectId\");\n        final var tsAccessKey = config.get(\"tsAccessKey\");\n        final var tsSecretKey = config.get(\"tsSecretKey\");\n        var myDatadogExporter = new MetricExporter(\"myDatadogExporter\", MetricExporterArgs.builder()\n            .name(\"Datadog Exporter from TF\")\n            .region(\"us-east-1\")\n            .datadog(MetricExporterDatadogArgs.builder()\n                .apiKey(\"your_datadog_api_key_here\")\n                .site(\"datadoghq.com\")\n                .build())\n            .build());\n\n        var myPrometheusExporter = new MetricExporter(\"myPrometheusExporter\", MetricExporterArgs.builder()\n            .name(\"Prometheus Exporter from TF\")\n            .region(\"us-east-1\")\n            .prometheus(MetricExporterPrometheusArgs.builder()\n                .username(\"prom_user\")\n                .password(\"a_very_secure_password\")\n                .build())\n            .build());\n\n        var myCloudwatchExporterWithRole = new MetricExporter(\"myCloudwatchExporterWithRole\", MetricExporterArgs.builder()\n            .name(\"CloudWatch Exporter via IAM Role from TF\")\n            .region(\"us-east-1\")\n            .cloudwatch(MetricExporterCloudwatchArgs.builder()\n                .region(\"us-east-1\")\n                .roleArn(\"arn:aws:iam::123456789012:role/MyMetricsExporterRole\")\n                .logGroupName(\"/myapplication/metrics\")\n                .logStreamName(\"exporter-stream-role\")\n                .namespace(\"MyApplication/CustomMetrics\")\n                .build())\n            .build());\n\n        var myCloudwatchExporterWithKeys = new MetricExporter(\"myCloudwatchExporterWithKeys\", MetricExporterArgs.builder()\n            .name(\"CloudWatch Exporter via Static Keys\")\n            .region(\"us-east-1\")\n            .cloudwatch(MetricExporterCloudwatchArgs.builder()\n                .region(\"us-east-1\")\n                .accessKey(\"your_access_key_\")\n                .secretKey(\"your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\")\n                .logGroupName(\"/anotherapplication/metrics\")\n                .logStreamName(\"exporter-stream-keys\")\n                .namespace(\"AnotherApplication/CustomMetrics\")\n                .build())\n            .build());\n\n        // Create a service and attach one of the exporters (only 1 metric exporter can be attached at the same time)\n        var metricExporterTest = new Service(\"metricExporterTest\", ServiceArgs.builder()\n            .name(\"metric_exporter_test\")\n            .milliCpu(1000.0)\n            .memoryGb(4.0)\n            .regionCode(\"us-east-1\")\n            .metricExporterId(myCloudwatchExporterWithKeys.id())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  tsProjectId:\n    type: string\n  tsAccessKey:\n    type: string\n  tsSecretKey:\n    type: string\nresources:\n  myDatadogExporter:\n    type: timescale:MetricExporter\n    name: my_datadog_exporter\n    properties:\n      name: Datadog Exporter from TF\n      region: us-east-1\n      datadog:\n        apiKey: your_datadog_api_key_here\n        site: datadoghq.com\n  myPrometheusExporter:\n    type: timescale:MetricExporter\n    name: my_prometheus_exporter\n    properties:\n      name: Prometheus Exporter from TF\n      region: us-east-1\n      prometheus:\n        username: prom_user\n        password: a_very_secure_password\n  myCloudwatchExporterWithRole:\n    type: timescale:MetricExporter\n    name: my_cloudwatch_exporter_with_role\n    properties:\n      name: CloudWatch Exporter via IAM Role from TF\n      region: us-east-1\n      cloudwatch:\n        region: us-east-1\n        roleArn: arn:aws:iam::123456789012:role/MyMetricsExporterRole\n        logGroupName: /myapplication/metrics\n        logStreamName: exporter-stream-role\n        namespace: MyApplication/CustomMetrics\n  myCloudwatchExporterWithKeys:\n    type: timescale:MetricExporter\n    name: my_cloudwatch_exporter_with_keys\n    properties:\n      name: CloudWatch Exporter via Static Keys\n      region: us-east-1\n      cloudwatch:\n        region: us-east-1\n        accessKey: your_access_key_\n        secretKey: your_secret_keyxxxxxxxxxxxxxxxxxxxxxxxxx\n        logGroupName: /anotherapplication/metrics\n        logStreamName: exporter-stream-keys\n        namespace: AnotherApplication/CustomMetrics\n  # Create a service and attach one of the exporters (only 1 metric exporter can be attached at the same time)\n  metricExporterTest:\n    type: timescale:Service\n    name: metric_exporter_test\n    properties:\n      name: metric_exporter_test\n      milliCpu: 1000\n      memoryGb: 4\n      regionCode: us-east-1\n      metricExporterId: ${myCloudwatchExporterWithKeys.id}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"cloudwatch":{"$ref":"#/types/timescale:index%2FMetricExporterCloudwatch:MetricExporterCloudwatch","description":"Configuration for AWS CloudWatch exporter. Configure authentication using either <span pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\">`role_arn`</span> or <span pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\">`access_key`</span> with <span pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\">`secret_key`</span>. Cannot be used with <span pulumi-lang-nodejs=\"`datadog`\" pulumi-lang-dotnet=\"`Datadog`\" pulumi-lang-go=\"`datadog`\" pulumi-lang-python=\"`datadog`\" pulumi-lang-yaml=\"`datadog`\" pulumi-lang-java=\"`datadog`\">`datadog`</span> or <span pulumi-lang-nodejs=\"`prometheus`\" pulumi-lang-dotnet=\"`Prometheus`\" pulumi-lang-go=\"`prometheus`\" pulumi-lang-python=\"`prometheus`\" pulumi-lang-yaml=\"`prometheus`\" pulumi-lang-java=\"`prometheus`\">`prometheus`</span>.\n"},"datadog":{"$ref":"#/types/timescale:index%2FMetricExporterDatadog:MetricExporterDatadog","description":"Configuration for Datadog exporter. Cannot be used with <span pulumi-lang-nodejs=\"`prometheus`\" pulumi-lang-dotnet=\"`Prometheus`\" pulumi-lang-go=\"`prometheus`\" pulumi-lang-python=\"`prometheus`\" pulumi-lang-yaml=\"`prometheus`\" pulumi-lang-java=\"`prometheus`\">`prometheus`</span> or <span pulumi-lang-nodejs=\"`cloudwatch`\" pulumi-lang-dotnet=\"`Cloudwatch`\" pulumi-lang-go=\"`cloudwatch`\" pulumi-lang-python=\"`cloudwatch`\" pulumi-lang-yaml=\"`cloudwatch`\" pulumi-lang-java=\"`cloudwatch`\">`cloudwatch`</span>.\n"},"name":{"description":"Metric exporter name.\n","type":"string"},"prometheus":{"$ref":"#/types/timescale:index%2FMetricExporterPrometheus:MetricExporterPrometheus","description":"Configuration for Prometheus exporter. Cannot be used with <span pulumi-lang-nodejs=\"`datadog`\" pulumi-lang-dotnet=\"`Datadog`\" pulumi-lang-go=\"`datadog`\" pulumi-lang-python=\"`datadog`\" pulumi-lang-yaml=\"`datadog`\" pulumi-lang-java=\"`datadog`\">`datadog`</span> or <span pulumi-lang-nodejs=\"`cloudwatch`\" pulumi-lang-dotnet=\"`Cloudwatch`\" pulumi-lang-go=\"`cloudwatch`\" pulumi-lang-python=\"`cloudwatch`\" pulumi-lang-yaml=\"`cloudwatch`\" pulumi-lang-java=\"`cloudwatch`\">`cloudwatch`</span>.\n"},"region":{"description":"Region where the exporter will be deployed. Only services running in the same region can be attached.\n","type":"string"}},"properties":{"cloudwatch":{"$ref":"#/types/timescale:index%2FMetricExporterCloudwatch:MetricExporterCloudwatch","description":"Configuration for AWS CloudWatch exporter. Configure authentication using either <span pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\">`role_arn`</span> or <span pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\">`access_key`</span> with <span pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\">`secret_key`</span>. Cannot be used with <span pulumi-lang-nodejs=\"`datadog`\" pulumi-lang-dotnet=\"`Datadog`\" pulumi-lang-go=\"`datadog`\" pulumi-lang-python=\"`datadog`\" pulumi-lang-yaml=\"`datadog`\" pulumi-lang-java=\"`datadog`\">`datadog`</span> or <span pulumi-lang-nodejs=\"`prometheus`\" pulumi-lang-dotnet=\"`Prometheus`\" pulumi-lang-go=\"`prometheus`\" pulumi-lang-python=\"`prometheus`\" pulumi-lang-yaml=\"`prometheus`\" pulumi-lang-java=\"`prometheus`\">`prometheus`</span>.\n"},"created":{"description":"Timestamp of when the metric exporter was created (RFC3339 format).\n","type":"string"},"datadog":{"$ref":"#/types/timescale:index%2FMetricExporterDatadog:MetricExporterDatadog","description":"Configuration for Datadog exporter. Cannot be used with <span pulumi-lang-nodejs=\"`prometheus`\" pulumi-lang-dotnet=\"`Prometheus`\" pulumi-lang-go=\"`prometheus`\" pulumi-lang-python=\"`prometheus`\" pulumi-lang-yaml=\"`prometheus`\" pulumi-lang-java=\"`prometheus`\">`prometheus`</span> or <span pulumi-lang-nodejs=\"`cloudwatch`\" pulumi-lang-dotnet=\"`Cloudwatch`\" pulumi-lang-go=\"`cloudwatch`\" pulumi-lang-python=\"`cloudwatch`\" pulumi-lang-yaml=\"`cloudwatch`\" pulumi-lang-java=\"`cloudwatch`\">`cloudwatch`</span>.\n"},"name":{"description":"Metric exporter name.\n","type":"string"},"prometheus":{"$ref":"#/types/timescale:index%2FMetricExporterPrometheus:MetricExporterPrometheus","description":"Configuration for Prometheus exporter. Cannot be used with <span pulumi-lang-nodejs=\"`datadog`\" pulumi-lang-dotnet=\"`Datadog`\" pulumi-lang-go=\"`datadog`\" pulumi-lang-python=\"`datadog`\" pulumi-lang-yaml=\"`datadog`\" pulumi-lang-java=\"`datadog`\">`datadog`</span> or <span pulumi-lang-nodejs=\"`cloudwatch`\" pulumi-lang-dotnet=\"`Cloudwatch`\" pulumi-lang-go=\"`cloudwatch`\" pulumi-lang-python=\"`cloudwatch`\" pulumi-lang-yaml=\"`cloudwatch`\" pulumi-lang-java=\"`cloudwatch`\">`cloudwatch`</span>.\n"},"region":{"description":"Region where the exporter will be deployed. Only services running in the same region can be attached.\n","type":"string"},"type":{"description":"Type of the metric exporter. Possible values: datadog, prometheus, cloudwatch.\n","type":"string"}},"required":["created","name","region","type"],"requiredInputs":["region"],"stateInputs":{"description":"Input properties used for looking up and filtering MetricExporter resources.\n","properties":{"cloudwatch":{"$ref":"#/types/timescale:index%2FMetricExporterCloudwatch:MetricExporterCloudwatch","description":"Configuration for AWS CloudWatch exporter. Configure authentication using either <span pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\">`role_arn`</span> or <span pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\">`access_key`</span> with <span pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\">`secret_key`</span>. Cannot be used with <span pulumi-lang-nodejs=\"`datadog`\" pulumi-lang-dotnet=\"`Datadog`\" pulumi-lang-go=\"`datadog`\" pulumi-lang-python=\"`datadog`\" pulumi-lang-yaml=\"`datadog`\" pulumi-lang-java=\"`datadog`\">`datadog`</span> or <span pulumi-lang-nodejs=\"`prometheus`\" pulumi-lang-dotnet=\"`Prometheus`\" pulumi-lang-go=\"`prometheus`\" pulumi-lang-python=\"`prometheus`\" pulumi-lang-yaml=\"`prometheus`\" pulumi-lang-java=\"`prometheus`\">`prometheus`</span>.\n"},"created":{"description":"Timestamp of when the metric exporter was created (RFC3339 format).\n","type":"string"},"datadog":{"$ref":"#/types/timescale:index%2FMetricExporterDatadog:MetricExporterDatadog","description":"Configuration for Datadog exporter. Cannot be used with <span pulumi-lang-nodejs=\"`prometheus`\" pulumi-lang-dotnet=\"`Prometheus`\" pulumi-lang-go=\"`prometheus`\" pulumi-lang-python=\"`prometheus`\" pulumi-lang-yaml=\"`prometheus`\" pulumi-lang-java=\"`prometheus`\">`prometheus`</span> or <span pulumi-lang-nodejs=\"`cloudwatch`\" pulumi-lang-dotnet=\"`Cloudwatch`\" pulumi-lang-go=\"`cloudwatch`\" pulumi-lang-python=\"`cloudwatch`\" pulumi-lang-yaml=\"`cloudwatch`\" pulumi-lang-java=\"`cloudwatch`\">`cloudwatch`</span>.\n"},"name":{"description":"Metric exporter name.\n","type":"string"},"prometheus":{"$ref":"#/types/timescale:index%2FMetricExporterPrometheus:MetricExporterPrometheus","description":"Configuration for Prometheus exporter. Cannot be used with <span pulumi-lang-nodejs=\"`datadog`\" pulumi-lang-dotnet=\"`Datadog`\" pulumi-lang-go=\"`datadog`\" pulumi-lang-python=\"`datadog`\" pulumi-lang-yaml=\"`datadog`\" pulumi-lang-java=\"`datadog`\">`datadog`</span> or <span pulumi-lang-nodejs=\"`cloudwatch`\" pulumi-lang-dotnet=\"`Cloudwatch`\" pulumi-lang-go=\"`cloudwatch`\" pulumi-lang-python=\"`cloudwatch`\" pulumi-lang-yaml=\"`cloudwatch`\" pulumi-lang-java=\"`cloudwatch`\">`cloudwatch`</span>.\n"},"region":{"description":"Region where the exporter will be deployed. Only services running in the same region can be attached.\n","type":"string"},"type":{"description":"Type of the metric exporter. Possible values: datadog, prometheus, cloudwatch.\n","type":"string"}},"type":"object"},"type":"object"},"timescale:index/peeringConnection:PeeringConnection":{"description":"Schema for a peering connection (VPC or Transit Gateway). Import can be done with `peering_connection_id,timescale_vpc_id` format. Both internal IDs can be retrieved using the<span pulumi-lang-nodejs=\" timescale.Vpcs \" pulumi-lang-dotnet=\" timescale.Vpcs \" pulumi-lang-go=\" Vpcs \" pulumi-lang-python=\" Vpcs \" pulumi-lang-yaml=\" timescale.Vpcs \" pulumi-lang-java=\" timescale.Vpcs \"> timescale.Vpcs </span>datasource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as time from \"@pulumi/time\";\nimport * as timescale from \"@pulumi/timescale\";\n\nconst config = new pulumi.Config();\nconst tsProjectId = config.require(\"tsProjectId\");\nconst tsAccessKey = config.require(\"tsAccessKey\");\nconst tsSecretKey = config.require(\"tsSecretKey\");\n// Create a Timescale VPC\nconst ts_test = new timescale.Vpcs(\"ts-test\", {\n    cidr: \"10.0.0.0/24\",\n    name: \"tf-test\",\n    regionCode: \"us-east-1\",\n});\n// ========================================\n// VPC Peering Example (Cross-Region)\n// ========================================\n// Creating a test VPC in eu-central-1\nconst main = new aws.index.Vpc(\"main\", {\n    cidrBlock: \"11.0.0.0/24\",\n    tags: {\n        name: \"tf-test-vpc-peering\",\n    },\n});\n// Requester's side of the VPC peering connection (Timescale).\nconst vpcPeer = new timescale.PeeringConnection(\"vpc_peer\", {\n    peerAccountId: \"000000000000\",\n    peerRegionCode: \"eu-central-1\",\n    peerVpcId: main.id,\n    peerCidrBlocks: [\n        \"12.0.0.0/24\",\n        \"12.1.0.0/24\",\n    ],\n    timescaleVpcId: ts_test.vpcsId,\n});\n// Acceptor's side of the VPC peering connection (AWS).\nconst vpcPeerVpcPeeringConnectionAccepter = new aws.index.VpcPeeringConnectionAccepter(\"vpc_peer\", {\n    vpcPeeringConnectionId: vpcPeer.accepterProvisionedId,\n    autoAccept: true,\n});\n// ========================================\n// Transit Gateway Peering Example\n// ========================================\n// Wait for VPC peering to be fully established before creating TGW peering\nconst waitForVpcPeering = new time.index.Sleep(\"wait_for_vpc_peering\", {createDuration: \"120s\"}, {\n    dependsOn: [vpcPeerVpcPeeringConnectionAccepter],\n});\n// Create a test Transit Gateway in eu-central-1\nconst tgw = new aws.index.Ec2TransitGateway(\"tgw\", {\n    description: \"TGW for Timescale peering\",\n    tags: {\n        name: \"tf-test-tgw\",\n    },\n});\n// Create Transit Gateway peering with Timescale\nconst tgwPeer = new timescale.PeeringConnection(\"tgw_peer\", {\n    peerAccountId: \"000000000000\",\n    peerRegionCode: \"eu-central-1\",\n    peerTgwId: tgw.id,\n    peerCidrBlocks: [\n        \"16.0.0.0/24\",\n        \"16.1.0.0/24\",\n    ],\n    timescaleVpcId: ts_test.vpcsId,\n}, {\n    dependsOn: [waitForVpcPeering],\n});\n// Wait for TGW peering attachment to propagate to AWS\nconst waitForTgwAttachment = new time.index.Sleep(\"wait_for_tgw_attachment\", {createDuration: \"120s\"}, {\n    dependsOn: [tgwPeer],\n});\n// Accept the Transit Gateway attachment\nconst tgwPeerEc2TransitGatewayPeeringAttachmentAccepter = new aws.index.Ec2TransitGatewayPeeringAttachmentAccepter(\"tgw_peer\", {transitGatewayAttachmentId: tgwPeer.accepterProvisionedId}, {\n    dependsOn: [waitForTgwAttachment],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_time as time\nimport pulumi_timescale as timescale\n\nconfig = pulumi.Config()\nts_project_id = config.require(\"tsProjectId\")\nts_access_key = config.require(\"tsAccessKey\")\nts_secret_key = config.require(\"tsSecretKey\")\n# Create a Timescale VPC\nts_test = timescale.Vpcs(\"ts-test\",\n    cidr=\"10.0.0.0/24\",\n    name=\"tf-test\",\n    region_code=\"us-east-1\")\n# ========================================\n# VPC Peering Example (Cross-Region)\n# ========================================\n# Creating a test VPC in eu-central-1\nmain = aws.index.Vpc(\"main\",\n    cidr_block=11.0.0.0/24,\n    tags={\n        name: tf-test-vpc-peering,\n    })\n# Requester's side of the VPC peering connection (Timescale).\nvpc_peer = timescale.PeeringConnection(\"vpc_peer\",\n    peer_account_id=\"000000000000\",\n    peer_region_code=\"eu-central-1\",\n    peer_vpc_id=main[\"id\"],\n    peer_cidr_blocks=[\n        \"12.0.0.0/24\",\n        \"12.1.0.0/24\",\n    ],\n    timescale_vpc_id=ts_test.vpcs_id)\n# Acceptor's side of the VPC peering connection (AWS).\nvpc_peer_vpc_peering_connection_accepter = aws.index.VpcPeeringConnectionAccepter(\"vpc_peer\",\n    vpc_peering_connection_id=vpc_peer.accepter_provisioned_id,\n    auto_accept=True)\n# ========================================\n# Transit Gateway Peering Example\n# ========================================\n# Wait for VPC peering to be fully established before creating TGW peering\nwait_for_vpc_peering = time.index.Sleep(\"wait_for_vpc_peering\", create_duration=120s,\nopts = pulumi.ResourceOptions(depends_on=[vpc_peer_vpc_peering_connection_accepter]))\n# Create a test Transit Gateway in eu-central-1\ntgw = aws.index.Ec2TransitGateway(\"tgw\",\n    description=TGW for Timescale peering,\n    tags={\n        name: tf-test-tgw,\n    })\n# Create Transit Gateway peering with Timescale\ntgw_peer = timescale.PeeringConnection(\"tgw_peer\",\n    peer_account_id=\"000000000000\",\n    peer_region_code=\"eu-central-1\",\n    peer_tgw_id=tgw[\"id\"],\n    peer_cidr_blocks=[\n        \"16.0.0.0/24\",\n        \"16.1.0.0/24\",\n    ],\n    timescale_vpc_id=ts_test.vpcs_id,\n    opts = pulumi.ResourceOptions(depends_on=[wait_for_vpc_peering]))\n# Wait for TGW peering attachment to propagate to AWS\nwait_for_tgw_attachment = time.index.Sleep(\"wait_for_tgw_attachment\", create_duration=120s,\nopts = pulumi.ResourceOptions(depends_on=[tgw_peer]))\n# Accept the Transit Gateway attachment\ntgw_peer_ec2_transit_gateway_peering_attachment_accepter = aws.index.Ec2TransitGatewayPeeringAttachmentAccepter(\"tgw_peer\", transit_gateway_attachment_id=tgw_peer.accepter_provisioned_id,\nopts = pulumi.ResourceOptions(depends_on=[wait_for_tgw_attachment]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Time = Pulumi.Time;\nusing Timescale = Pulumi.Timescale;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var tsProjectId = config.Require(\"tsProjectId\");\n    var tsAccessKey = config.Require(\"tsAccessKey\");\n    var tsSecretKey = config.Require(\"tsSecretKey\");\n    // Create a Timescale VPC\n    var ts_test = new Timescale.Vpcs(\"ts-test\", new()\n    {\n        Cidr = \"10.0.0.0/24\",\n        Name = \"tf-test\",\n        RegionCode = \"us-east-1\",\n    });\n\n    // ========================================\n    // VPC Peering Example (Cross-Region)\n    // ========================================\n    // Creating a test VPC in eu-central-1\n    var main = new Aws.Index.Vpc(\"main\", new()\n    {\n        CidrBlock = \"11.0.0.0/24\",\n        Tags = \n        {\n            { \"name\", \"tf-test-vpc-peering\" },\n        },\n    });\n\n    // Requester's side of the VPC peering connection (Timescale).\n    var vpcPeer = new Timescale.PeeringConnection(\"vpc_peer\", new()\n    {\n        PeerAccountId = \"000000000000\",\n        PeerRegionCode = \"eu-central-1\",\n        PeerVpcId = main.Id,\n        PeerCidrBlocks = new[]\n        {\n            \"12.0.0.0/24\",\n            \"12.1.0.0/24\",\n        },\n        TimescaleVpcId = ts_test.VpcsId,\n    });\n\n    // Acceptor's side of the VPC peering connection (AWS).\n    var vpcPeerVpcPeeringConnectionAccepter = new Aws.Index.VpcPeeringConnectionAccepter(\"vpc_peer\", new()\n    {\n        VpcPeeringConnectionId = vpcPeer.AccepterProvisionedId,\n        AutoAccept = true,\n    });\n\n    // ========================================\n    // Transit Gateway Peering Example\n    // ========================================\n    // Wait for VPC peering to be fully established before creating TGW peering\n    var waitForVpcPeering = new Time.Index.Sleep(\"wait_for_vpc_peering\", new()\n    {\n        CreateDuration = \"120s\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            vpcPeerVpcPeeringConnectionAccepter,\n        },\n    });\n\n    // Create a test Transit Gateway in eu-central-1\n    var tgw = new Aws.Index.Ec2TransitGateway(\"tgw\", new()\n    {\n        Description = \"TGW for Timescale peering\",\n        Tags = \n        {\n            { \"name\", \"tf-test-tgw\" },\n        },\n    });\n\n    // Create Transit Gateway peering with Timescale\n    var tgwPeer = new Timescale.PeeringConnection(\"tgw_peer\", new()\n    {\n        PeerAccountId = \"000000000000\",\n        PeerRegionCode = \"eu-central-1\",\n        PeerTgwId = tgw.Id,\n        PeerCidrBlocks = new[]\n        {\n            \"16.0.0.0/24\",\n            \"16.1.0.0/24\",\n        },\n        TimescaleVpcId = ts_test.VpcsId,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            waitForVpcPeering,\n        },\n    });\n\n    // Wait for TGW peering attachment to propagate to AWS\n    var waitForTgwAttachment = new Time.Index.Sleep(\"wait_for_tgw_attachment\", new()\n    {\n        CreateDuration = \"120s\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            tgwPeer,\n        },\n    });\n\n    // Accept the Transit Gateway attachment\n    var tgwPeerEc2TransitGatewayPeeringAttachmentAccepter = new Aws.Index.Ec2TransitGatewayPeeringAttachmentAccepter(\"tgw_peer\", new()\n    {\n        TransitGatewayAttachmentId = tgwPeer.AccepterProvisionedId,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            waitForTgwAttachment,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/go/aws\"\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/timescale/v2/timescale\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttsProjectId := cfg.Require(\"tsProjectId\")\n\t\ttsAccessKey := cfg.Require(\"tsAccessKey\")\n\t\ttsSecretKey := cfg.Require(\"tsSecretKey\")\n\t\t// Create a Timescale VPC\n\t\tts_test, err := timescale.NewVpcs(ctx, \"ts-test\", &timescale.VpcsArgs{\n\t\t\tCidr:       pulumi.String(\"10.0.0.0/24\"),\n\t\t\tName:       pulumi.String(\"tf-test\"),\n\t\t\tRegionCode: pulumi.String(\"us-east-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Creating a test VPC in eu-central-1\n\t\tmain, err := aws.NewVpc(ctx, \"main\", &aws.VpcArgs{\n\t\t\tCidrBlock: \"11.0.0.0/24\",\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"name\": \"tf-test-vpc-peering\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Requester's side of the VPC peering connection (Timescale).\n\t\tvpcPeer, err := timescale.NewPeeringConnection(ctx, \"vpc_peer\", &timescale.PeeringConnectionArgs{\n\t\t\tPeerAccountId:  pulumi.String(\"000000000000\"),\n\t\t\tPeerRegionCode: pulumi.String(\"eu-central-1\"),\n\t\t\tPeerVpcId:      main.Id,\n\t\t\tPeerCidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"12.0.0.0/24\"),\n\t\t\t\tpulumi.String(\"12.1.0.0/24\"),\n\t\t\t},\n\t\t\tTimescaleVpcId: ts_test.VpcsId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Acceptor's side of the VPC peering connection (AWS).\n\t\tvpcPeerVpcPeeringConnectionAccepter, err := aws.NewVpcPeeringConnectionAccepter(ctx, \"vpc_peer\", &aws.VpcPeeringConnectionAccepterArgs{\n\t\t\tVpcPeeringConnectionId: vpcPeer.AccepterProvisionedId,\n\t\t\tAutoAccept:             true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Wait for VPC peering to be fully established before creating TGW peering\n\t\twaitForVpcPeering, err := time.NewSleep(ctx, \"wait_for_vpc_peering\", &time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvpcPeerVpcPeeringConnectionAccepter,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a test Transit Gateway in eu-central-1\n\t\ttgw, err := aws.NewEc2TransitGateway(ctx, \"tgw\", &aws.Ec2TransitGatewayArgs{\n\t\t\tDescription: \"TGW for Timescale peering\",\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"name\": \"tf-test-tgw\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create Transit Gateway peering with Timescale\n\t\ttgwPeer, err := timescale.NewPeeringConnection(ctx, \"tgw_peer\", &timescale.PeeringConnectionArgs{\n\t\t\tPeerAccountId:  pulumi.String(\"000000000000\"),\n\t\t\tPeerRegionCode: pulumi.String(\"eu-central-1\"),\n\t\t\tPeerTgwId:      tgw.Id,\n\t\t\tPeerCidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"16.0.0.0/24\"),\n\t\t\t\tpulumi.String(\"16.1.0.0/24\"),\n\t\t\t},\n\t\t\tTimescaleVpcId: ts_test.VpcsId,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\twaitForVpcPeering,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Wait for TGW peering attachment to propagate to AWS\n\t\twaitForTgwAttachment, err := time.NewSleep(ctx, \"wait_for_tgw_attachment\", &time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttgwPeer,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Accept the Transit Gateway attachment\n\t\t_, err = aws.NewEc2TransitGatewayPeeringAttachmentAccepter(ctx, \"tgw_peer\", &aws.Ec2TransitGatewayPeeringAttachmentAccepterArgs{\n\t\t\tTransitGatewayAttachmentId: tgwPeer.AccepterProvisionedId,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\twaitForTgwAttachment,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.timescale.Vpcs;\nimport com.pulumi.timescale.VpcsArgs;\nimport com.pulumi.aws.Vpc;\nimport com.pulumi.aws.VpcArgs;\nimport com.pulumi.timescale.PeeringConnection;\nimport com.pulumi.timescale.PeeringConnectionArgs;\nimport com.pulumi.aws.VpcPeeringConnectionAccepter;\nimport com.pulumi.aws.VpcPeeringConnectionAccepterArgs;\nimport com.pulumi.time.Sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.aws.Ec2TransitGateway;\nimport com.pulumi.aws.Ec2TransitGatewayArgs;\nimport com.pulumi.aws.Ec2TransitGatewayPeeringAttachmentAccepter;\nimport com.pulumi.aws.Ec2TransitGatewayPeeringAttachmentAccepterArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var tsProjectId = config.get(\"tsProjectId\");\n        final var tsAccessKey = config.get(\"tsAccessKey\");\n        final var tsSecretKey = config.get(\"tsSecretKey\");\n        // Create a Timescale VPC\n        var ts_test = new Vpcs(\"ts-test\", VpcsArgs.builder()\n            .cidr(\"10.0.0.0/24\")\n            .name(\"tf-test\")\n            .regionCode(\"us-east-1\")\n            .build());\n\n        // ========================================\n        // VPC Peering Example (Cross-Region)\n        // ========================================\n        // Creating a test VPC in eu-central-1\n        var main = new Vpc(\"main\", VpcArgs.builder()\n            .cidrBlock(\"11.0.0.0/24\")\n            .tags(Map.of(\"name\", \"tf-test-vpc-peering\"))\n            .build());\n\n        // Requester's side of the VPC peering connection (Timescale).\n        var vpcPeer = new PeeringConnection(\"vpcPeer\", PeeringConnectionArgs.builder()\n            .peerAccountId(\"000000000000\")\n            .peerRegionCode(\"eu-central-1\")\n            .peerVpcId(main.id())\n            .peerCidrBlocks(            \n                \"12.0.0.0/24\",\n                \"12.1.0.0/24\")\n            .timescaleVpcId(ts_test.vpcsId())\n            .build());\n\n        // Acceptor's side of the VPC peering connection (AWS).\n        var vpcPeerVpcPeeringConnectionAccepter = new VpcPeeringConnectionAccepter(\"vpcPeerVpcPeeringConnectionAccepter\", VpcPeeringConnectionAccepterArgs.builder()\n            .vpcPeeringConnectionId(vpcPeer.accepterProvisionedId())\n            .autoAccept(true)\n            .build());\n\n        // ========================================\n        // Transit Gateway Peering Example\n        // ========================================\n        // Wait for VPC peering to be fully established before creating TGW peering\n        var waitForVpcPeering = new Sleep(\"waitForVpcPeering\", SleepArgs.builder()\n            .createDuration(\"120s\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(List.of(vpcPeerVpcPeeringConnectionAccepter))\n                .build());\n\n        // Create a test Transit Gateway in eu-central-1\n        var tgw = new Ec2TransitGateway(\"tgw\", Ec2TransitGatewayArgs.builder()\n            .description(\"TGW for Timescale peering\")\n            .tags(Map.of(\"name\", \"tf-test-tgw\"))\n            .build());\n\n        // Create Transit Gateway peering with Timescale\n        var tgwPeer = new PeeringConnection(\"tgwPeer\", PeeringConnectionArgs.builder()\n            .peerAccountId(\"000000000000\")\n            .peerRegionCode(\"eu-central-1\")\n            .peerTgwId(tgw.id())\n            .peerCidrBlocks(            \n                \"16.0.0.0/24\",\n                \"16.1.0.0/24\")\n            .timescaleVpcId(ts_test.vpcsId())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(waitForVpcPeering)\n                .build());\n\n        // Wait for TGW peering attachment to propagate to AWS\n        var waitForTgwAttachment = new Sleep(\"waitForTgwAttachment\", SleepArgs.builder()\n            .createDuration(\"120s\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(List.of(tgwPeer))\n                .build());\n\n        // Accept the Transit Gateway attachment\n        var tgwPeerEc2TransitGatewayPeeringAttachmentAccepter = new Ec2TransitGatewayPeeringAttachmentAccepter(\"tgwPeerEc2TransitGatewayPeeringAttachmentAccepter\", Ec2TransitGatewayPeeringAttachmentAccepterArgs.builder()\n            .transitGatewayAttachmentId(tgwPeer.accepterProvisionedId())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(List.of(waitForTgwAttachment))\n                .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  tsProjectId:\n    type: string\n  tsAccessKey:\n    type: string\n  tsSecretKey:\n    type: string\nresources:\n  # Create a Timescale VPC\n  ts-test: # ========================================\n  # VPC Peering Example (Cross-Region)\n  # ========================================\n    type: timescale:Vpcs\n    properties:\n      cidr: 10.0.0.0/24\n      name: tf-test\n      regionCode: us-east-1\n  # Creating a test VPC in eu-central-1\n  main:\n    type: aws:Vpc\n    properties:\n      cidrBlock: 11.0.0.0/24\n      tags:\n        name: tf-test-vpc-peering\n  # Requester's side of the VPC peering connection (Timescale).\n  vpcPeer:\n    type: timescale:PeeringConnection\n    name: vpc_peer\n    properties:\n      peerAccountId: '000000000000'\n      peerRegionCode: eu-central-1\n      peerVpcId: ${main.id}\n      peerCidrBlocks: # Optional for VPC peering\n        - 12.0.0.0/24\n        - 12.1.0.0/24\n      timescaleVpcId: ${[\"ts-test\"].vpcsId}\n  # Acceptor's side of the VPC peering connection (AWS).\n  vpcPeerVpcPeeringConnectionAccepter: # ========================================\n  # Transit Gateway Peering Example\n  # ========================================\n    type: aws:VpcPeeringConnectionAccepter\n    name: vpc_peer\n    properties:\n      vpcPeeringConnectionId: ${vpcPeer.accepterProvisionedId}\n      autoAccept: true\n  # Wait for VPC peering to be fully established before creating TGW peering\n  waitForVpcPeering:\n    type: time:Sleep\n    name: wait_for_vpc_peering\n    properties:\n      createDuration: 120s\n    options:\n      dependsOn:\n        - ${vpcPeerVpcPeeringConnectionAccepter}\n  # Create a test Transit Gateway in eu-central-1\n  tgw:\n    type: aws:Ec2TransitGateway\n    properties:\n      description: TGW for Timescale peering\n      tags:\n        name: tf-test-tgw\n  # Create Transit Gateway peering with Timescale\n  tgwPeer:\n    type: timescale:PeeringConnection\n    name: tgw_peer\n    properties:\n      peerAccountId: '000000000000'\n      peerRegionCode: eu-central-1\n      peerTgwId: ${tgw.id}\n      peerCidrBlocks: # Required for TGW peering.\n        - 16.0.0.0/24\n        - 16.1.0.0/24\n      timescaleVpcId: ${[\"ts-test\"].vpcsId}\n    options:\n      dependsOn:\n        - ${waitForVpcPeering}\n  # Wait for TGW peering attachment to propagate to AWS\n  waitForTgwAttachment:\n    type: time:Sleep\n    name: wait_for_tgw_attachment\n    properties:\n      createDuration: 120s\n    options:\n      dependsOn:\n        - ${tgwPeer}\n  # Accept the Transit Gateway attachment\n  tgwPeerEc2TransitGatewayPeeringAttachmentAccepter:\n    type: aws:Ec2TransitGatewayPeeringAttachmentAccepter\n    name: tgw_peer\n    properties:\n      transitGatewayAttachmentId: ${tgwPeer.accepterProvisionedId}\n    options:\n      dependsOn:\n        - ${waitForTgwAttachment}\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"peerAccountId":{"description":"AWS account ID where the VPC or Transit Gateway to be paired is located\n","type":"string"},"peerCidrBlocks":{"description":"List of CIDR blocks for the peering connection. Required for Transit Gateway peering, optional for VPC peering\n","items":{"type":"string"},"type":"array"},"peerRegionCode":{"description":"Region code for the VPC or Transit Gateway to be paired\n","type":"string"},"peerTgwId":{"description":"AWS ID for the Transit Gateway to be paired. Mutually exclusive with peer*vpc*id\n","type":"string"},"peerVpcId":{"description":"AWS ID for the VPC to be paired. Mutually exclusive with peer*tgw*id\n","type":"string"},"timescaleVpcId":{"description":"Timescale internal ID for a vpc\n","type":"number"}},"properties":{"accepterProvisionedId":{"description":"AWS ID of the peering connection accepter (starts with pcx-... for VPC peering or tgw-attach-... for TGW.)\n","type":"string"},"errorMessage":{"type":"string"},"peerAccountId":{"description":"AWS account ID where the VPC or Transit Gateway to be paired is located\n","type":"string"},"peerCidr":{"deprecationMessage":"Deprecated","description":"CIDR for the VPC to be paired\n","type":"string"},"peerCidrBlocks":{"description":"List of CIDR blocks for the peering connection. Required for Transit Gateway peering, optional for VPC peering\n","items":{"type":"string"},"type":"array"},"peerRegionCode":{"description":"Region code for the VPC or Transit Gateway to be paired\n","type":"string"},"peerTgwId":{"description":"AWS ID for the Transit Gateway to be paired. Mutually exclusive with peer*vpc*id\n","type":"string"},"peerVpcId":{"description":"AWS ID for the VPC to be paired. Mutually exclusive with peer*tgw*id\n","type":"string"},"peeringConnectionId":{"description":"Timescale internal ID for a peering connection\n","type":"number"},"peeringType":{"description":"Type of peering connection (vpc or tgw)\n","type":"string"},"provisionedId":{"description":"AWS ID of the peering connection requester (starts with pcx-... for VPC peering or tgw-... for TGW.)\n","type":"string"},"status":{"description":"Peering connection status\n","type":"string"},"timescaleVpcId":{"description":"Timescale internal ID for a vpc\n","type":"number"},"vpcId":{"description":"AWS VPC ID of the timescale instance VPC\n","type":"string"}},"required":["accepterProvisionedId","errorMessage","peerAccountId","peerCidr","peerCidrBlocks","peerRegionCode","peeringConnectionId","peeringType","provisionedId","status","timescaleVpcId","vpcId"],"requiredInputs":["peerAccountId","peerRegionCode","timescaleVpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering PeeringConnection resources.\n","properties":{"accepterProvisionedId":{"description":"AWS ID of the peering connection accepter (starts with pcx-... for VPC peering or tgw-attach-... for TGW.)\n","type":"string"},"errorMessage":{"type":"string"},"peerAccountId":{"description":"AWS account ID where the VPC or Transit Gateway to be paired is located\n","type":"string"},"peerCidr":{"deprecationMessage":"Deprecated","description":"CIDR for the VPC to be paired\n","type":"string"},"peerCidrBlocks":{"description":"List of CIDR blocks for the peering connection. Required for Transit Gateway peering, optional for VPC peering\n","items":{"type":"string"},"type":"array"},"peerRegionCode":{"description":"Region code for the VPC or Transit Gateway to be paired\n","type":"string"},"peerTgwId":{"description":"AWS ID for the Transit Gateway to be paired. Mutually exclusive with peer*vpc*id\n","type":"string"},"peerVpcId":{"description":"AWS ID for the VPC to be paired. Mutually exclusive with peer*tgw*id\n","type":"string"},"peeringConnectionId":{"description":"Timescale internal ID for a peering connection\n","type":"number"},"peeringType":{"description":"Type of peering connection (vpc or tgw)\n","type":"string"},"provisionedId":{"description":"AWS ID of the peering connection requester (starts with pcx-... for VPC peering or tgw-... for TGW.)\n","type":"string"},"status":{"description":"Peering connection status\n","type":"string"},"timescaleVpcId":{"description":"Timescale internal ID for a vpc\n","type":"number"},"vpcId":{"description":"AWS VPC ID of the timescale instance VPC\n","type":"string"}},"type":"object"},"type":"object"},"timescale:index/service:Service":{"description":"## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as timescale from \"@pulumi/timescale\";\n\nconst config = new pulumi.Config();\nconst tsAccessKey = config.require(\"tsAccessKey\");\nconst tsSecretKey = config.require(\"tsSecretKey\");\nconst tsProjectId = config.require(\"tsProjectId\");\nconst test = new timescale.Service(\"test\", {\n    name: \"test\",\n    milliCpu: 1000,\n    memoryGb: 4,\n    regionCode: \"us-east-1\",\n});\n// Read replica\nconst readReplica = new timescale.Service(\"read_replica\", {readReplicaSource: test.id});\nconst dbPassword = config.require(\"dbPassword\");\nconst secure = new timescale.Service(\"secure\", {\n    name: \"secure-service\",\n    milliCpu: 1000,\n    memoryGb: 4,\n    regionCode: \"us-east-1\",\n    passwordWo: dbPassword,\n    passwordWoVersion: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_timescale as timescale\n\nconfig = pulumi.Config()\nts_access_key = config.require(\"tsAccessKey\")\nts_secret_key = config.require(\"tsSecretKey\")\nts_project_id = config.require(\"tsProjectId\")\ntest = timescale.Service(\"test\",\n    name=\"test\",\n    milli_cpu=1000,\n    memory_gb=4,\n    region_code=\"us-east-1\")\n# Read replica\nread_replica = timescale.Service(\"read_replica\", read_replica_source=test.id)\ndb_password = config.require(\"dbPassword\")\nsecure = timescale.Service(\"secure\",\n    name=\"secure-service\",\n    milli_cpu=1000,\n    memory_gb=4,\n    region_code=\"us-east-1\",\n    password_wo=db_password,\n    password_wo_version=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Timescale = Pulumi.Timescale;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var tsAccessKey = config.Require(\"tsAccessKey\");\n    var tsSecretKey = config.Require(\"tsSecretKey\");\n    var tsProjectId = config.Require(\"tsProjectId\");\n    var test = new Timescale.Service(\"test\", new()\n    {\n        Name = \"test\",\n        MilliCpu = 1000,\n        MemoryGb = 4,\n        RegionCode = \"us-east-1\",\n    });\n\n    // Read replica\n    var readReplica = new Timescale.Service(\"read_replica\", new()\n    {\n        ReadReplicaSource = test.Id,\n    });\n\n    var dbPassword = config.Require(\"dbPassword\");\n    var secure = new Timescale.Service(\"secure\", new()\n    {\n        Name = \"secure-service\",\n        MilliCpu = 1000,\n        MemoryGb = 4,\n        RegionCode = \"us-east-1\",\n        PasswordWo = dbPassword,\n        PasswordWoVersion = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/timescale/v2/timescale\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttsAccessKey := cfg.Require(\"tsAccessKey\")\n\t\ttsSecretKey := cfg.Require(\"tsSecretKey\")\n\t\ttsProjectId := cfg.Require(\"tsProjectId\")\n\t\ttest, err := timescale.NewService(ctx, \"test\", &timescale.ServiceArgs{\n\t\t\tName:       pulumi.String(\"test\"),\n\t\t\tMilliCpu:   pulumi.Float64(1000),\n\t\t\tMemoryGb:   pulumi.Float64(4),\n\t\t\tRegionCode: pulumi.String(\"us-east-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Read replica\n\t\t_, err = timescale.NewService(ctx, \"read_replica\", &timescale.ServiceArgs{\n\t\t\tReadReplicaSource: test.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdbPassword := cfg.Require(\"dbPassword\")\n\t\t_, err = timescale.NewService(ctx, \"secure\", &timescale.ServiceArgs{\n\t\t\tName:              pulumi.String(\"secure-service\"),\n\t\t\tMilliCpu:          pulumi.Float64(1000),\n\t\t\tMemoryGb:          pulumi.Float64(4),\n\t\t\tRegionCode:        pulumi.String(\"us-east-1\"),\n\t\t\tPasswordWo:        pulumi.String(dbPassword),\n\t\t\tPasswordWoVersion: 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.timescale.Service;\nimport com.pulumi.timescale.ServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var tsAccessKey = config.get(\"tsAccessKey\");\n        final var tsSecretKey = config.get(\"tsSecretKey\");\n        final var tsProjectId = config.get(\"tsProjectId\");\n        var test = new Service(\"test\", ServiceArgs.builder()\n            .name(\"test\")\n            .milliCpu(1000.0)\n            .memoryGb(4.0)\n            .regionCode(\"us-east-1\")\n            .build());\n\n        // Read replica\n        var readReplica = new Service(\"readReplica\", ServiceArgs.builder()\n            .readReplicaSource(test.id())\n            .build());\n\n        final var dbPassword = config.get(\"dbPassword\");\n        var secure = new Service(\"secure\", ServiceArgs.builder()\n            .name(\"secure-service\")\n            .milliCpu(1000.0)\n            .memoryGb(4.0)\n            .regionCode(\"us-east-1\")\n            .passwordWo(dbPassword)\n            .passwordWoVersion(1.0)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  tsAccessKey:\n    type: string\n  tsSecretKey:\n    type: string\n  tsProjectId:\n    type: string\n  # Service with write-only password (Terraform 1.11+)\n  # The password is sent to the API but never stored in Terraform state.\n  # Increment password_wo_version to trigger a password change.\n  dbPassword:\n    type: string\nresources:\n  test:\n    type: timescale:Service\n    properties:\n      name: test\n      milliCpu: 1000\n      memoryGb: 4\n      regionCode: us-east-1\n  # Read replica\n  readReplica:\n    type: timescale:Service\n    name: read_replica\n    properties:\n      readReplicaSource: ${test.id}\n  secure:\n    type: timescale:Service\n    properties:\n      name: secure-service\n      milliCpu: 1000\n      memoryGb: 4\n      regionCode: us-east-1\n      passwordWo: ${dbPassword}\n      passwordWoVersion: 1\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"connectionPoolerEnabled":{"description":"Set connection pooler status for this service.","type":"boolean"},"enableHaReplica":{"deprecationMessage":"Deprecated","description":"Enable HA Replica (deprecated - use<span pulumi-lang-nodejs=\" haReplicas \" pulumi-lang-dotnet=\" HaReplicas \" pulumi-lang-go=\" haReplicas \" pulumi-lang-python=\" ha_replicas \" pulumi-lang-yaml=\" haReplicas \" pulumi-lang-java=\" haReplicas \"> ha_replicas </span>and<span pulumi-lang-nodejs=\" syncReplicas \" pulumi-lang-dotnet=\" SyncReplicas \" pulumi-lang-go=\" syncReplicas \" pulumi-lang-python=\" sync_replicas \" pulumi-lang-yaml=\" syncReplicas \" pulumi-lang-java=\" syncReplicas \"> sync_replicas </span>instead)","type":"boolean"},"environmentTag":{"description":"Set environment tag for this service.","type":"string"},"haReplicas":{"description":"Number of HA replicas (0, 1 or 2). Modes: 1 for 'High availability'; 2 'Highest availability'. Async replicas (i.e. 'High performance' mode) will be created by default if<span pulumi-lang-nodejs=\" syncReplicas \" pulumi-lang-dotnet=\" SyncReplicas \" pulumi-lang-go=\" syncReplicas \" pulumi-lang-python=\" sync_replicas \" pulumi-lang-yaml=\" syncReplicas \" pulumi-lang-java=\" syncReplicas \"> sync_replicas </span>is not set.","type":"number"},"logExporterId":{"description":"The Log Exporter ID attached to this service, only supported in AWS for now.\n\t\t\t\tWARNING: To complete the logs exporter attachment, a service restart is required.","type":"string"},"memoryGb":{"description":"Memory GB","type":"number"},"metricExporterId":{"description":"The Exporter ID attached to this service, only supported in AWS for now","type":"string"},"milliCpu":{"description":"Milli CPU","type":"number"},"name":{"description":"Service Name is the configurable name assigned to this resource. If none is provided, a default will be generated by the provider.","type":"string"},"password":{"secret":true,"type":"string"},"passwordWo":{"type":"string"},"passwordWoVersion":{"description":"A version number for <span pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\">`password_wo`</span>. Incrementing this value will trigger a password update on the next apply.","type":"number"},"paused":{"description":"Paused status of the service.","type":"boolean"},"readReplicaSource":{"description":"If set, this database will be a read replica of the provided source database. The region must be the same as the source, or if omitted will be handled by the provider","type":"string"},"regionCode":{"description":"The region for this service.","type":"string"},"storageGb":{"deprecationMessage":"Deprecated","description":"Deprecated: Storage GB","type":"number"},"syncReplicas":{"description":"Number of synchronous replicas (0 or 1). Set to 1 to enable 'High data integrity mode' (1 Sync and 1 Async replicas). To set<span pulumi-lang-nodejs=\" syncReplicas \" pulumi-lang-dotnet=\" SyncReplicas \" pulumi-lang-go=\" syncReplicas \" pulumi-lang-python=\" sync_replicas \" pulumi-lang-yaml=\" syncReplicas \" pulumi-lang-java=\" syncReplicas \"> sync_replicas </span>to 1, you must also set<span pulumi-lang-nodejs=\" haReplicas \" pulumi-lang-dotnet=\" HaReplicas \" pulumi-lang-go=\" haReplicas \" pulumi-lang-python=\" ha_replicas \" pulumi-lang-yaml=\" haReplicas \" pulumi-lang-java=\" haReplicas \"> ha_replicas </span>to 2.","type":"number"},"timeouts":{"$ref":"#/types/timescale:index%2FServiceTimeouts:ServiceTimeouts"},"vpcId":{"description":"The VpcID this service is tied to, only supported in AWS for now.","type":"number"}},"properties":{"connectionPoolerEnabled":{"description":"Set connection pooler status for this service.","type":"boolean"},"enableHaReplica":{"deprecationMessage":"Deprecated","description":"Enable HA Replica (deprecated - use<span pulumi-lang-nodejs=\" haReplicas \" pulumi-lang-dotnet=\" HaReplicas \" pulumi-lang-go=\" haReplicas \" pulumi-lang-python=\" ha_replicas \" pulumi-lang-yaml=\" haReplicas \" pulumi-lang-java=\" haReplicas \"> ha_replicas </span>and<span pulumi-lang-nodejs=\" syncReplicas \" pulumi-lang-dotnet=\" SyncReplicas \" pulumi-lang-go=\" syncReplicas \" pulumi-lang-python=\" sync_replicas \" pulumi-lang-yaml=\" syncReplicas \" pulumi-lang-java=\" syncReplicas \"> sync_replicas </span>instead)","type":"boolean"},"environmentTag":{"description":"Set environment tag for this service.","type":"string"},"haReplicas":{"description":"Number of HA replicas (0, 1 or 2). Modes: 1 for 'High availability'; 2 'Highest availability'. Async replicas (i.e. 'High performance' mode) will be created by default if<span pulumi-lang-nodejs=\" syncReplicas \" pulumi-lang-dotnet=\" SyncReplicas \" pulumi-lang-go=\" syncReplicas \" pulumi-lang-python=\" sync_replicas \" pulumi-lang-yaml=\" syncReplicas \" pulumi-lang-java=\" syncReplicas \"> sync_replicas </span>is not set.","type":"number"},"hostname":{"description":"The hostname for this service","type":"string"},"logExporterId":{"description":"The Log Exporter ID attached to this service, only supported in AWS for now.\n\t\t\t\tWARNING: To complete the logs exporter attachment, a service restart is required.","type":"string"},"memoryGb":{"description":"Memory GB","type":"number"},"metricExporterId":{"description":"The Exporter ID attached to this service, only supported in AWS for now","type":"string"},"milliCpu":{"description":"Milli CPU","type":"number"},"name":{"description":"Service Name is the configurable name assigned to this resource. If none is provided, a default will be generated by the provider.","type":"string"},"password":{"secret":true,"type":"string"},"passwordWo":{"type":"string"},"passwordWoVersion":{"description":"A version number for <span pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\">`password_wo`</span>. Incrementing this value will trigger a password update on the next apply.","type":"number"},"paused":{"description":"Paused status of the service.","type":"boolean"},"poolerHostname":{"description":"Hostname of the pooler of this service.","type":"string"},"poolerPort":{"description":"Port of the pooler of this service.","type":"number"},"port":{"description":"The port for this service","type":"number"},"readReplicaSource":{"description":"If set, this database will be a read replica of the provided source database. The region must be the same as the source, or if omitted will be handled by the provider","type":"string"},"regionCode":{"description":"The region for this service.","type":"string"},"replicaHostname":{"description":"Hostname of the HA-Replica of this service.","type":"string"},"replicaPort":{"description":"Port of the HA-Replica of this service.","type":"number"},"storageGb":{"deprecationMessage":"Deprecated","description":"Deprecated: Storage GB","type":"number"},"syncReplicas":{"description":"Number of synchronous replicas (0 or 1). Set to 1 to enable 'High data integrity mode' (1 Sync and 1 Async replicas). To set<span pulumi-lang-nodejs=\" syncReplicas \" pulumi-lang-dotnet=\" SyncReplicas \" pulumi-lang-go=\" syncReplicas \" pulumi-lang-python=\" sync_replicas \" pulumi-lang-yaml=\" syncReplicas \" pulumi-lang-java=\" syncReplicas \"> sync_replicas </span>to 1, you must also set<span pulumi-lang-nodejs=\" haReplicas \" pulumi-lang-dotnet=\" HaReplicas \" pulumi-lang-go=\" haReplicas \" pulumi-lang-python=\" ha_replicas \" pulumi-lang-yaml=\" haReplicas \" pulumi-lang-java=\" haReplicas \"> ha_replicas </span>to 2.","type":"number"},"timeouts":{"$ref":"#/types/timescale:index%2FServiceTimeouts:ServiceTimeouts"},"username":{"description":"The Postgres user for this service","type":"string"},"vpcId":{"description":"The VpcID this service is tied to, only supported in AWS for now.","type":"number"}},"required":["connectionPoolerEnabled","environmentTag","haReplicas","hostname","memoryGb","milliCpu","name","password","paused","poolerHostname","poolerPort","port","regionCode","replicaHostname","replicaPort","syncReplicas","username"],"stateInputs":{"description":"Input properties used for looking up and filtering Service resources.\n","properties":{"connectionPoolerEnabled":{"description":"Set connection pooler status for this service.","type":"boolean"},"enableHaReplica":{"deprecationMessage":"Deprecated","description":"Enable HA Replica (deprecated - use<span pulumi-lang-nodejs=\" haReplicas \" pulumi-lang-dotnet=\" HaReplicas \" pulumi-lang-go=\" haReplicas \" pulumi-lang-python=\" ha_replicas \" pulumi-lang-yaml=\" haReplicas \" pulumi-lang-java=\" haReplicas \"> ha_replicas </span>and<span pulumi-lang-nodejs=\" syncReplicas \" pulumi-lang-dotnet=\" SyncReplicas \" pulumi-lang-go=\" syncReplicas \" pulumi-lang-python=\" sync_replicas \" pulumi-lang-yaml=\" syncReplicas \" pulumi-lang-java=\" syncReplicas \"> sync_replicas </span>instead)","type":"boolean"},"environmentTag":{"description":"Set environment tag for this service.","type":"string"},"haReplicas":{"description":"Number of HA replicas (0, 1 or 2). Modes: 1 for 'High availability'; 2 'Highest availability'. Async replicas (i.e. 'High performance' mode) will be created by default if<span pulumi-lang-nodejs=\" syncReplicas \" pulumi-lang-dotnet=\" SyncReplicas \" pulumi-lang-go=\" syncReplicas \" pulumi-lang-python=\" sync_replicas \" pulumi-lang-yaml=\" syncReplicas \" pulumi-lang-java=\" syncReplicas \"> sync_replicas </span>is not set.","type":"number"},"hostname":{"description":"The hostname for this service","type":"string"},"logExporterId":{"description":"The Log Exporter ID attached to this service, only supported in AWS for now.\n\t\t\t\tWARNING: To complete the logs exporter attachment, a service restart is required.","type":"string"},"memoryGb":{"description":"Memory GB","type":"number"},"metricExporterId":{"description":"The Exporter ID attached to this service, only supported in AWS for now","type":"string"},"milliCpu":{"description":"Milli CPU","type":"number"},"name":{"description":"Service Name is the configurable name assigned to this resource. If none is provided, a default will be generated by the provider.","type":"string"},"password":{"secret":true,"type":"string"},"passwordWo":{"type":"string"},"passwordWoVersion":{"description":"A version number for <span pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\">`password_wo`</span>. Incrementing this value will trigger a password update on the next apply.","type":"number"},"paused":{"description":"Paused status of the service.","type":"boolean"},"poolerHostname":{"description":"Hostname of the pooler of this service.","type":"string"},"poolerPort":{"description":"Port of the pooler of this service.","type":"number"},"port":{"description":"The port for this service","type":"number"},"readReplicaSource":{"description":"If set, this database will be a read replica of the provided source database. The region must be the same as the source, or if omitted will be handled by the provider","type":"string"},"regionCode":{"description":"The region for this service.","type":"string"},"replicaHostname":{"description":"Hostname of the HA-Replica of this service.","type":"string"},"replicaPort":{"description":"Port of the HA-Replica of this service.","type":"number"},"storageGb":{"deprecationMessage":"Deprecated","description":"Deprecated: Storage GB","type":"number"},"syncReplicas":{"description":"Number of synchronous replicas (0 or 1). Set to 1 to enable 'High data integrity mode' (1 Sync and 1 Async replicas). To set<span pulumi-lang-nodejs=\" syncReplicas \" pulumi-lang-dotnet=\" SyncReplicas \" pulumi-lang-go=\" syncReplicas \" pulumi-lang-python=\" sync_replicas \" pulumi-lang-yaml=\" syncReplicas \" pulumi-lang-java=\" syncReplicas \"> sync_replicas </span>to 1, you must also set<span pulumi-lang-nodejs=\" haReplicas \" pulumi-lang-dotnet=\" HaReplicas \" pulumi-lang-go=\" haReplicas \" pulumi-lang-python=\" ha_replicas \" pulumi-lang-yaml=\" haReplicas \" pulumi-lang-java=\" haReplicas \"> ha_replicas </span>to 2.","type":"number"},"timeouts":{"$ref":"#/types/timescale:index%2FServiceTimeouts:ServiceTimeouts"},"username":{"description":"The Postgres user for this service","type":"string"},"vpcId":{"description":"The VpcID this service is tied to, only supported in AWS for now.","type":"number"}},"type":"object"},"type":"object"},"timescale:index/vpcs:Vpcs":{"description":"Schema for a VPC. Import can be done using your VPCs name\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as timescale from \"@pulumi/timescale\";\n\nconst config = new pulumi.Config();\nconst tsProjectId = config.require(\"tsProjectId\");\nconst tsAccessKey = config.require(\"tsAccessKey\");\nconst tsSecretKey = config.require(\"tsSecretKey\");\nconst ts_test = new timescale.Vpcs(\"ts-test\", {\n    cidr: \"10.0.0.0/24\",\n    name: \"tf-test\",\n    regionCode: \"us-east-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_timescale as timescale\n\nconfig = pulumi.Config()\nts_project_id = config.require(\"tsProjectId\")\nts_access_key = config.require(\"tsAccessKey\")\nts_secret_key = config.require(\"tsSecretKey\")\nts_test = timescale.Vpcs(\"ts-test\",\n    cidr=\"10.0.0.0/24\",\n    name=\"tf-test\",\n    region_code=\"us-east-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Timescale = Pulumi.Timescale;\n\nreturn await Deployment.RunAsync(() => \n{\n    var config = new Config();\n    var tsProjectId = config.Require(\"tsProjectId\");\n    var tsAccessKey = config.Require(\"tsAccessKey\");\n    var tsSecretKey = config.Require(\"tsSecretKey\");\n    var ts_test = new Timescale.Vpcs(\"ts-test\", new()\n    {\n        Cidr = \"10.0.0.0/24\",\n        Name = \"tf-test\",\n        RegionCode = \"us-east-1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/timescale/v2/timescale\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\ttsProjectId := cfg.Require(\"tsProjectId\")\n\t\ttsAccessKey := cfg.Require(\"tsAccessKey\")\n\t\ttsSecretKey := cfg.Require(\"tsSecretKey\")\n\t\t_, err := timescale.NewVpcs(ctx, \"ts-test\", &timescale.VpcsArgs{\n\t\t\tCidr:       pulumi.String(\"10.0.0.0/24\"),\n\t\t\tName:       pulumi.String(\"tf-test\"),\n\t\t\tRegionCode: pulumi.String(\"us-east-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.timescale.Vpcs;\nimport com.pulumi.timescale.VpcsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var tsProjectId = config.get(\"tsProjectId\");\n        final var tsAccessKey = config.get(\"tsAccessKey\");\n        final var tsSecretKey = config.get(\"tsSecretKey\");\n        var ts_test = new Vpcs(\"ts-test\", VpcsArgs.builder()\n            .cidr(\"10.0.0.0/24\")\n            .name(\"tf-test\")\n            .regionCode(\"us-east-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  tsProjectId:\n    type: string\n  tsAccessKey:\n    type: string\n  tsSecretKey:\n    type: string\nresources:\n  ts-test:\n    type: timescale:Vpcs\n    properties:\n      cidr: 10.0.0.0/24\n      name: tf-test\n      regionCode: us-east-1\n```\n<!--End PulumiCodeChooser -->\n","inputProperties":{"cidr":{"description":"The IPv4 CIDR block\n","type":"string"},"name":{"description":"VPC Name is the configurable name assigned to this vpc. If none is provided, a default will be generated by the provider.\n","type":"string"},"regionCode":{"description":"The region for this VPC.\n","type":"string"},"timeouts":{"$ref":"#/types/timescale:index%2FVpcsTimeouts:VpcsTimeouts"}},"properties":{"cidr":{"description":"The IPv4 CIDR block\n","type":"string"},"created":{"type":"string"},"errorMessage":{"type":"string"},"name":{"description":"VPC Name is the configurable name assigned to this vpc. If none is provided, a default will be generated by the provider.\n","type":"string"},"projectId":{"type":"string"},"provisionedId":{"type":"string"},"regionCode":{"description":"The region for this VPC.\n","type":"string"},"status":{"type":"string"},"timeouts":{"$ref":"#/types/timescale:index%2FVpcsTimeouts:VpcsTimeouts"},"updated":{"type":"string"},"vpcsId":{"description":"The ID of this resource.\n","type":"number"}},"required":["cidr","created","errorMessage","name","projectId","provisionedId","regionCode","status","timeouts","updated","vpcsId"],"requiredInputs":["cidr","regionCode"],"stateInputs":{"description":"Input properties used for looking up and filtering Vpcs resources.\n","properties":{"cidr":{"description":"The IPv4 CIDR block\n","type":"string"},"created":{"type":"string"},"errorMessage":{"type":"string"},"name":{"description":"VPC Name is the configurable name assigned to this vpc. If none is provided, a default will be generated by the provider.\n","type":"string"},"projectId":{"type":"string"},"provisionedId":{"type":"string"},"regionCode":{"description":"The region for this VPC.\n","type":"string"},"status":{"type":"string"},"timeouts":{"$ref":"#/types/timescale:index%2FVpcsTimeouts:VpcsTimeouts"},"updated":{"type":"string"},"vpcsId":{"description":"The ID of this resource.\n","type":"number"}},"type":"object"},"type":"object"}},"types":{"timescale:index/ConnectorS3Credentials:ConnectorS3Credentials":{"properties":{"roleArn":{"description":"IAM role ARN (required if type is 'RoleARN').\n","type":"string"},"type":{"description":"Credential type: 'Public' or 'RoleARN'.\n","type":"string"}},"required":["type"],"type":"object"},"timescale:index/ConnectorS3Definition:ConnectorS3Definition":{"properties":{"csv":{"$ref":"#/types/timescale:index%2FConnectorS3DefinitionCsv:ConnectorS3DefinitionCsv","description":"CSV file configuration.\n"},"parquet":{"$ref":"#/types/timescale:index%2FConnectorS3DefinitionParquet:ConnectorS3DefinitionParquet","description":"Parquet file configuration.\n"},"type":{"description":"File type: 'CSV' or 'PARQUET'.\n","type":"string"}},"required":["type"],"type":"object"},"timescale:index/ConnectorS3DefinitionCsv:ConnectorS3DefinitionCsv":{"language":{"nodejs":{"requiredOutputs":["autoColumnMapping","delimiter","skipHeader"]}},"properties":{"autoColumnMapping":{"description":"Automatically map columns by name (mutually exclusive with column*names and column*mappings).\n","type":"boolean"},"columnMappings":{"description":"Column mappings from source to destination (mutually exclusive with column*names and auto*column*mapping).\n","items":{"$ref":"#/types/timescale:index%2FConnectorS3DefinitionCsvColumnMapping:ConnectorS3DefinitionCsvColumnMapping"},"type":"array"},"columnNames":{"description":"Column names (mutually exclusive with column*mappings and auto*column_mapping).\n","items":{"type":"string"},"type":"array"},"delimiter":{"description":"CSV delimiter (default: ',').\n","type":"string"},"skipHeader":{"description":"Whether to skip the first row as header (default: false).\n","type":"boolean"}},"type":"object"},"timescale:index/ConnectorS3DefinitionCsvColumnMapping:ConnectorS3DefinitionCsvColumnMapping":{"properties":{"destination":{"description":"Destination column name.\n","type":"string"},"source":{"description":"Source column name.\n","type":"string"}},"required":["destination","source"],"type":"object"},"timescale:index/ConnectorS3DefinitionParquet:ConnectorS3DefinitionParquet":{"language":{"nodejs":{"requiredOutputs":["autoColumnMapping"]}},"properties":{"autoColumnMapping":{"description":"Automatically map columns by name (mutually exclusive with column_mappings).\n","type":"boolean"},"columnMappings":{"description":"Column mappings from source to destination (mutually exclusive with auto*column*mapping).\n","items":{"$ref":"#/types/timescale:index%2FConnectorS3DefinitionParquetColumnMapping:ConnectorS3DefinitionParquetColumnMapping"},"type":"array"}},"type":"object"},"timescale:index/ConnectorS3DefinitionParquetColumnMapping:ConnectorS3DefinitionParquetColumnMapping":{"properties":{"destination":{"description":"Destination column name.\n","type":"string"},"source":{"description":"Source column name.\n","type":"string"}},"required":["destination","source"],"type":"object"},"timescale:index/ConnectorS3TableIdentifier:ConnectorS3TableIdentifier":{"properties":{"schemaName":{"description":"Schema name (defaults to 'public').\n","type":"string"},"tableName":{"description":"Table name.\n","type":"string"}},"required":["tableName"],"type":"object"},"timescale:index/LogExporterCloudwatch:LogExporterCloudwatch":{"properties":{"accessKey":{"description":"AWS access key ID. If provided, <span pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\">`secret_key`</span> must also be set, and <span pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\">`role_arn`</span> must not be set.\n","type":"string"},"logGroupName":{"description":"Name of the CloudWatch Log Group.\n","type":"string"},"logStreamName":{"description":"Name of the CloudWatch Log Stream.\n","type":"string"},"region":{"description":"AWS region for CloudWatch.\n","type":"string"},"roleArn":{"description":"ARN of the IAM role to assume for CloudWatch access. If provided, <span pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\">`access_key`</span> and <span pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\">`secret_key`</span> must not be set.\n","type":"string"},"secretKey":{"description":"AWS secret access key. If provided, <span pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\">`access_key`</span> must also be set, and <span pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\">`role_arn`</span> must not be set.\n","secret":true,"type":"string"}},"required":["logGroupName","logStreamName","region"],"type":"object"},"timescale:index/MetricExporterCloudwatch:MetricExporterCloudwatch":{"properties":{"accessKey":{"description":"AWS access key ID. If provided, <span pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\">`secret_key`</span> must also be set, and <span pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\">`role_arn`</span> must not be set.\n","type":"string"},"logGroupName":{"description":"Name of the CloudWatch Log Group.\n","type":"string"},"logStreamName":{"description":"Name of the CloudWatch Log Stream.\n","type":"string"},"namespace":{"description":"CloudWatch Metric Namespace.\n","type":"string"},"region":{"description":"AWS region for CloudWatch.\n","type":"string"},"roleArn":{"description":"ARN of the IAM role to assume for CloudWatch access. If provided, <span pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\">`access_key`</span> and <span pulumi-lang-nodejs=\"`secretKey`\" pulumi-lang-dotnet=\"`SecretKey`\" pulumi-lang-go=\"`secretKey`\" pulumi-lang-python=\"`secret_key`\" pulumi-lang-yaml=\"`secretKey`\" pulumi-lang-java=\"`secretKey`\">`secret_key`</span> must not be set.\n","type":"string"},"secretKey":{"description":"AWS secret access key. If provided, <span pulumi-lang-nodejs=\"`accessKey`\" pulumi-lang-dotnet=\"`AccessKey`\" pulumi-lang-go=\"`accessKey`\" pulumi-lang-python=\"`access_key`\" pulumi-lang-yaml=\"`accessKey`\" pulumi-lang-java=\"`accessKey`\">`access_key`</span> must also be set, and <span pulumi-lang-nodejs=\"`roleArn`\" pulumi-lang-dotnet=\"`RoleArn`\" pulumi-lang-go=\"`roleArn`\" pulumi-lang-python=\"`role_arn`\" pulumi-lang-yaml=\"`roleArn`\" pulumi-lang-java=\"`roleArn`\">`role_arn`</span> must not be set.\n","secret":true,"type":"string"}},"required":["logGroupName","logStreamName","namespace","region"],"type":"object"},"timescale:index/MetricExporterDatadog:MetricExporterDatadog":{"properties":{"apiKey":{"description":"Datadog API key.\n","secret":true,"type":"string"},"site":{"description":"Datadog site (e.g., 'datadoghq.com', 'datadoghq.eu').\n","type":"string"}},"required":["apiKey","site"],"type":"object"},"timescale:index/MetricExporterPrometheus:MetricExporterPrometheus":{"properties":{"password":{"description":"Password for Prometheus basic authentication.\n","secret":true,"type":"string"},"username":{"description":"Username for Prometheus basic authentication.\n","type":"string"}},"required":["password","username"],"type":"object"},"timescale:index/ServiceTimeouts:ServiceTimeouts":{"properties":{"create":{"description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n","type":"string"}},"type":"object"},"timescale:index/VpcsTimeouts:VpcsTimeouts":{"properties":{"create":{"description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours).\n","type":"string"}},"type":"object"},"timescale:index/getProductsProduct:getProductsProduct":{"language":{"nodejs":{"requiredInputs":[]}},"properties":{"description":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"plans":{"items":{"$ref":"#/types/timescale:index%2FgetProductsProductPlan:getProductsProductPlan"},"type":"array"}},"required":["description","id","name","plans"],"type":"object"},"timescale:index/getProductsProductPlan:getProductsProductPlan":{"language":{"nodejs":{"requiredInputs":[]}},"properties":{"memoryGb":{"type":"number"},"milliCpu":{"type":"number"},"price":{"type":"number"},"productId":{"type":"string"},"regionCode":{"type":"string"}},"required":["memoryGb","milliCpu","price","productId","regionCode"],"type":"object"},"timescale:index/getServiceResource:getServiceResource":{"language":{"nodejs":{"requiredInputs":[]}},"properties":{"id":{"type":"string"},"spec":{"$ref":"#/types/timescale:index%2FgetServiceResourceSpec:getServiceResourceSpec"}},"required":["id","spec"],"type":"object"},"timescale:index/getServiceResourceSpec:getServiceResourceSpec":{"language":{"nodejs":{"requiredInputs":[]}},"properties":{"enableHaReplica":{"description":"EnableHAReplica defines if a replica will be provisioned for this service (deprecated).\n","type":"boolean"},"haReplicas":{"description":"Number of HA replicas (0, 1 or 2). Includes sync and async replicas.\n","type":"number"},"memoryGb":{"description":"MemoryGB is the memory allocated for this service.\n","type":"number"},"milliCpu":{"description":"MilliCPU is the cpu allocated for this service.\n","type":"number"},"syncReplicas":{"description":"Number of synchronous replicas (0-1).\n","type":"number"}},"required":["enableHaReplica","haReplicas","memoryGb","milliCpu","syncReplicas"],"type":"object"},"timescale:index/getServiceSpec:getServiceSpec":{"language":{"nodejs":{"requiredInputs":[]}},"properties":{"hostname":{"description":"Hostname is the hostname of this service.\n","type":"string"},"poolerHostname":{"description":"Hostname of the pooler of this service.\n","type":"string"},"poolerPort":{"description":"Port of the pooler of this service.\n","type":"number"},"port":{"description":"Port is the port assigned to this service.\n","type":"number"},"replicaHostname":{"description":"Hostname of the HA-Replica of this service.\n","type":"string"},"replicaPort":{"description":"Port of the HA-Replica of this service.\n","type":"number"},"username":{"description":"Username is the Postgres username.\n","type":"string"}},"required":["hostname","poolerHostname","poolerPort","port","replicaHostname","replicaPort","username"],"type":"object"},"timescale:index/getVpcsVpc:getVpcsVpc":{"language":{"nodejs":{"requiredInputs":[]}},"properties":{"cidr":{"type":"string"},"created":{"type":"string"},"errorMessage":{"type":"string"},"id":{"type":"number"},"name":{"type":"string"},"peeringConnections":{"items":{"$ref":"#/types/timescale:index%2FgetVpcsVpcPeeringConnection:getVpcsVpcPeeringConnection"},"type":"array"},"projectId":{"type":"string"},"provisionedId":{"type":"string"},"regionCode":{"type":"string"},"status":{"type":"string"},"updated":{"type":"string"}},"required":["cidr","created","errorMessage","id","name","peeringConnections","projectId","provisionedId","regionCode","status","updated"],"type":"object"},"timescale:index/getVpcsVpcPeeringConnection:getVpcsVpcPeeringConnection":{"language":{"nodejs":{"requiredInputs":[]}},"properties":{"accepterProvisionedId":{"type":"string"},"errorMessage":{"type":"string"},"id":{"type":"number"},"peerAccountId":{"type":"string"},"peerCidr":{"type":"string"},"peerCidrBlocks":{"items":{"type":"string"},"type":"array"},"peerRegionCode":{"type":"string"},"peerTgwId":{"type":"string"},"peerVpcId":{"type":"string"},"peeringType":{"type":"string"},"provisionedId":{"type":"string"},"status":{"type":"string"},"timescaleVpcId":{"type":"number"},"vpcId":{"type":"string"}},"required":["accepterProvisionedId","errorMessage","id","peerAccountId","peerCidr","peerCidrBlocks","peerRegionCode","peerTgwId","peerVpcId","peeringType","provisionedId","status","timescaleVpcId","vpcId"],"type":"object"}},"version":"2.9.0"}
