diff --git a/.gitignore b/.gitignore index 7247a95..3224d28 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ **/obj/ Pulumi.*.yaml **/node_modules/ +**/package-lock.json .DS_Store **/command-output/ diff --git a/provider/cmd/pulumi-resource-cockroach/schema.json b/provider/cmd/pulumi-resource-cockroach/schema.json index 3efc025..7ad4683 100644 --- a/provider/cmd/pulumi-resource-cockroach/schema.json +++ b/provider/cmd/pulumi-resource-cockroach/schema.json @@ -159,7 +159,7 @@ }, "primary": { "type": "boolean", - "description": "Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region.\n" + "description": "Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region.\n" }, "sqlDns": { "type": "string", @@ -195,7 +195,12 @@ }, "spendLimit": { "type": "integer", - "description": "Spend limit in US cents.\n" + "description": "Spend limit in US cents.\n", + "deprecationMessage": "The `spend_limit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead." + }, + "upgradeType": { + "type": "string", + "description": "Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: \n * MANUAL\n * AUTOMATIC\n" }, "usageLimits": { "$ref": "#/types/cockroach:index/ClusterServerlessUsageLimits:ClusterServerlessUsageLimits" @@ -205,13 +210,18 @@ "language": { "nodejs": { "requiredOutputs": [ - "routingId" + "routingId", + "upgradeType" ] } } }, "cockroach:index/ClusterServerlessUsageLimits:ClusterServerlessUsageLimits": { "properties": { + "provisionedVirtualCpus": { + "type": "integer", + "description": "Maximum number of vCPUs that the cluster can use.\n" + }, "requestUnitLimit": { "type": "integer", "description": "Maximum number of Request Units that the cluster can consume during the month.\n" @@ -221,11 +231,7 @@ "description": "Maximum amount of storage (in MiB) that the cluster can have at any time during the month.\n" } }, - "type": "object", - "required": [ - "requestUnitLimit", - "storageMibLimit" - ] + "type": "object" }, "cockroach:index/CmekAdditionalRegion:CmekAdditionalRegion": { "properties": { @@ -243,7 +249,7 @@ }, "primary": { "type": "boolean", - "description": "Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region.\n" + "description": "Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region.\n" }, "sqlDns": { "type": "string", @@ -457,6 +463,84 @@ } } }, + "cockroach:index/PrivateEndpointServicesServicesMap:PrivateEndpointServicesServicesMap": { + "properties": { + "availabilityZoneIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider.\n" + }, + "aws": { + "$ref": "#/types/cockroach:index/PrivateEndpointServicesServicesMapAws:PrivateEndpointServicesServicesMapAws", + "deprecationMessage": "nested aws fields have been moved one level up. These fields will be removed in a future version" + }, + "cloudProvider": { + "type": "string", + "description": "Cloud provider associated with this service.\n" + }, + "endpointServiceId": { + "type": "string", + "description": "Server side ID of the private endpoint connection.\n" + }, + "name": { + "type": "string", + "description": "Name of the endpoint service.\n" + }, + "regionName": { + "type": "string", + "description": "Cloud provider region code associated with this service.\n" + }, + "status": { + "type": "string", + "description": "Operation status of the service.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "availabilityZoneIds", + "aws", + "cloudProvider", + "endpointServiceId", + "name", + "regionName", + "status" + ] + } + } + }, + "cockroach:index/PrivateEndpointServicesServicesMapAws:PrivateEndpointServicesServicesMapAws": { + "properties": { + "availabilityZoneIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "AZ IDs users should create their VPCs in to minimize their cost.\n" + }, + "serviceId": { + "type": "string", + "description": "Server side ID of the PrivateLink connection.\n" + }, + "serviceName": { + "type": "string", + "description": "AWS service name used to create endpoints.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "availabilityZoneIds", + "serviceId", + "serviceName" + ] + } + } + }, "cockroach:index/UserRoleGrantRole:UserRoleGrantRole": { "properties": { "resourceId": { @@ -591,7 +675,12 @@ }, "spendLimit": { "type": "integer", - "description": "Spend limit in US cents.\n" + "description": "Spend limit in US cents.\n", + "deprecationMessage": "The `spend_limit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead." + }, + "upgradeType": { + "type": "string", + "description": "Dictates the behavior of cockroach major version upgrades.\n" }, "usageLimits": { "$ref": "#/types/cockroach:index/getCockroachClusterServerlessUsageLimits:getCockroachClusterServerlessUsageLimits" @@ -601,6 +690,7 @@ "required": [ "routingId", "spendLimit", + "upgradeType", "usageLimits" ], "language": { @@ -611,6 +701,10 @@ }, "cockroach:index/getCockroachClusterServerlessUsageLimits:getCockroachClusterServerlessUsageLimits": { "properties": { + "provisionedVirtualCpus": { + "type": "integer", + "description": "Maximum number of vCPUs that the cluster can use.\n" + }, "requestUnitLimit": { "type": "integer", "description": "Maximum number of Request Units that the cluster can consume during the month.\n" @@ -622,6 +716,7 @@ }, "type": "object", "required": [ + "provisionedVirtualCpus", "requestUnitLimit", "storageMibLimit" ], @@ -697,14 +792,14 @@ }, "cidrMask": { "type": "integer", - "description": "Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry.\n" + "description": "The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address.\n" }, "clusterId": { "type": "string" }, "name": { "type": "string", - "description": "Name of this allowlist entry.\n" + "description": "Name of this allowlist entry. If not set explicitly, this value does not sync with the server.\n" }, "sql": { "type": "boolean", @@ -719,6 +814,7 @@ "cidrIp", "cidrMask", "clusterId", + "name", "sql", "ui" ], @@ -729,14 +825,14 @@ }, "cidrMask": { "type": "integer", - "description": "Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry.\n" + "description": "The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address.\n" }, "clusterId": { "type": "string" }, "name": { "type": "string", - "description": "Name of this allowlist entry.\n" + "description": "Name of this allowlist entry. If not set explicitly, this value does not sync with the server.\n" }, "sql": { "type": "boolean", @@ -763,14 +859,14 @@ }, "cidrMask": { "type": "integer", - "description": "Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry.\n" + "description": "The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address.\n" }, "clusterId": { "type": "string" }, "name": { "type": "string", - "description": "Name of this allowlist entry.\n" + "description": "Name of this allowlist entry. If not set explicitly, this value does not sync with the server.\n" }, "sql": { "type": "boolean", @@ -993,7 +1089,7 @@ } }, "cockroach:index/cluster:Cluster": { - "description": "CockroachDB Cloud cluster. Can be Dedicated or Serverless.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.cockroach.Cluster;\nimport com.pulumi.cockroach.ClusterArgs;\nimport com.pulumi.cockroach.inputs.ClusterDedicatedArgs;\nimport com.pulumi.cockroach.inputs.ClusterRegionArgs;\nimport com.pulumi.cockroach.inputs.ClusterServerlessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var dedicated = new Cluster(\"dedicated\", ClusterArgs.builder()\n .name(\"cockroach-dedicated\")\n .cloudProvider(\"GCP\")\n .dedicated(ClusterDedicatedArgs.builder()\n .storage_gib(15)\n .machine_type(\"n1-standard-4\")\n .build())\n .regions(ClusterRegionArgs.builder()\n .name(\"us-central1\")\n .node_count(1)\n .build())\n .deleteProtection(true)\n .build());\n\n var serverless = new Cluster(\"serverless\", ClusterArgs.builder()\n .name(\"cockroach-serverless\")\n .cloudProvider(\"GCP\")\n .serverless(ClusterServerlessArgs.builder()\n .spend_limit(1)\n .build())\n .regions(ClusterRegionArgs.builder()\n .name(\"us-east1\")\n .build())\n .deleteProtection(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n dedicated:\n type: cockroach:Cluster\n properties:\n name: cockroach-dedicated\n cloudProvider: GCP\n dedicated:\n storage_gib: 15\n machine_type: n1-standard-4\n regions:\n - name: us-central1\n node_count: 1\n deleteProtection: true\n serverless:\n type: cockroach:Cluster\n properties:\n name: cockroach-serverless\n cloudProvider: GCP\n serverless:\n spend_limit: 1\n regions:\n - name: us-east1\n deleteProtection: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "CockroachDB Cloud cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.cockroach.Cluster;\nimport com.pulumi.cockroach.ClusterArgs;\nimport com.pulumi.cockroach.inputs.ClusterDedicatedArgs;\nimport com.pulumi.cockroach.inputs.ClusterRegionArgs;\nimport com.pulumi.cockroach.inputs.ClusterServerlessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var advanced = new Cluster(\"advanced\", ClusterArgs.builder()\n .name(\"cockroach-advanced\")\n .cloudProvider(\"GCP\")\n .plan(\"ADVANCED\")\n .dedicated(ClusterDedicatedArgs.builder()\n .storage_gib(15)\n .machine_type(\"n2-standard-4\")\n .build())\n .regions(ClusterRegionArgs.builder()\n .name(\"us-central1\")\n .node_count(1)\n .build())\n .deleteProtection(true)\n .build());\n\n var standard = new Cluster(\"standard\", ClusterArgs.builder()\n .name(\"cockroach-standard\")\n .cloudProvider(\"GCP\")\n .plan(\"STANDARD\")\n .serverless(ClusterServerlessArgs.builder()\n .usage_limits(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .upgrade_type(\"AUTOMATIC\")\n .build())\n .regions(ClusterRegionArgs.builder()\n .name(\"us-east1\")\n .build())\n .deleteProtection(false)\n .build());\n\n var basic = new Cluster(\"basic\", ClusterArgs.builder()\n .name(\"cockroach-basic\")\n .cloudProvider(\"GCP\")\n .plan(\"BASIC\")\n .serverless()\n .regions(ClusterRegionArgs.builder()\n .name(\"us-east1\")\n .build())\n .deleteProtection(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n advanced:\n type: cockroach:Cluster\n properties:\n name: cockroach-advanced\n cloudProvider: GCP\n plan: ADVANCED\n dedicated:\n storage_gib: 15\n machine_type: n2-standard-4\n regions:\n - name: us-central1\n node_count: 1\n deleteProtection: true\n standard:\n type: cockroach:Cluster\n properties:\n name: cockroach-standard\n cloudProvider: GCP\n plan: STANDARD\n serverless:\n usage_limits:\n provisionedVirtualCpus: 2\n upgrade_type: AUTOMATIC\n regions:\n - name: us-east1\n deleteProtection: false\n basic:\n type: cockroach:Cluster\n properties:\n name: cockroach-basic\n cloudProvider: GCP\n plan: BASIC\n serverless: {}\n regions:\n - name: us-east1\n deleteProtection: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "accountId": { "type": "string", @@ -1003,9 +1099,6 @@ "type": "string", "description": "Cloud provider used to host the cluster. Allowed values are: * GCP * AWS * AZURE\n" }, - "clusterId": { - "type": "string" - }, "cockroachVersion": { "type": "string", "description": "Major version of CockroachDB running on the cluster.\n" @@ -1035,7 +1128,7 @@ }, "plan": { "type": "string", - "description": "Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'.\n" + "description": "Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'.\n" }, "regions": { "type": "array", @@ -1061,7 +1154,6 @@ "cockroachVersion", "creatorId", "deleteProtection", - "clusterId", "name", "operationStatus", "parentId", @@ -1094,6 +1186,10 @@ "type": "string", "description": "The ID of the cluster's parent folder. 'root' is used for a cluster at the root level.\n" }, + "plan": { + "type": "string", + "description": "Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'.\n" + }, "regions": { "type": "array", "items": { @@ -1120,9 +1216,6 @@ "type": "string", "description": "Cloud provider used to host the cluster. Allowed values are: * GCP * AWS * AZURE\n" }, - "clusterId": { - "type": "string" - }, "cockroachVersion": { "type": "string", "description": "Major version of CockroachDB running on the cluster.\n" @@ -1152,7 +1245,7 @@ }, "plan": { "type": "string", - "description": "Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'.\n" + "description": "Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'.\n" }, "regions": { "type": "array", @@ -1450,7 +1543,7 @@ }, "type": { "type": "string", - "description": "The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH *\nGCP_CLOUD_LOGGING\n" + "description": "The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH *\nGCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS\n" }, "updatedAt": { "type": "string", @@ -1508,7 +1601,7 @@ }, "type": { "type": "string", - "description": "The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH *\nGCP_CLOUD_LOGGING\n" + "description": "The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH *\nGCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS\n" } }, "requiredInputs": [ @@ -1563,7 +1656,7 @@ }, "type": { "type": "string", - "description": "The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH *\nGCP_CLOUD_LOGGING\n" + "description": "The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH *\nGCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS\n" }, "updatedAt": { "type": "string", @@ -1928,7 +2021,7 @@ } }, "cockroach:index/privateEndpointServices:PrivateEndpointServices": { - "description": "PrivateEndpointServices contains services that allow for private connectivity to the CockroachDB Cloud cluster.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cockroach from \"@pulumiverse/cockroach\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.require(\"clusterId\");\nconst cockroach = new cockroach.PrivateEndpointServices(\"cockroach\", {clusterId: clusterId});\n```\n```python\nimport pulumi\nimport pulumiverse_cockroach as cockroach\n\nconfig = pulumi.Config()\ncluster_id = config.require(\"clusterId\")\ncockroach = cockroach.PrivateEndpointServices(\"cockroach\", cluster_id=cluster_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Cockroach = Pulumiverse.Cockroach;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var clusterId = config.Require(\"clusterId\");\n var cockroach = new Cockroach.PrivateEndpointServices(\"cockroach\", new()\n {\n ClusterId = clusterId,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-cockroach/sdk/go/cockroach\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.Require(\"clusterId\")\n\t\t_, err := cockroach.NewPrivateEndpointServices(ctx, \"cockroach\", \u0026cockroach.PrivateEndpointServicesArgs{\n\t\t\tClusterId: pulumi.String(clusterId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.cockroach.PrivateEndpointServices;\nimport com.pulumi.cockroach.PrivateEndpointServicesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var clusterId = config.get(\"clusterId\");\n var cockroach = new PrivateEndpointServices(\"cockroach\", PrivateEndpointServicesArgs.builder()\n .clusterId(clusterId)\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n clusterId:\n type: string\nresources:\n cockroach:\n type: cockroach:PrivateEndpointServices\n properties:\n clusterId: ${clusterId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nformat: \u003ccluster id\u003e\n\n```sh\n$ pulumi import cockroach:index/privateEndpointServices:PrivateEndpointServices resource_name 1f69fdd2-600a-4cfc-a9ba-16995df0d77d\n```\n\n", + "description": "PrivateEndpointServices contains services that allow for private connectivity to the CockroachDB Cloud cluster.\n\t\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as cockroach from \"@pulumiverse/cockroach\";\n\nconst config = new pulumi.Config();\nconst clusterId = config.require(\"clusterId\");\nconst cockroach = new cockroach.PrivateEndpointServices(\"cockroach\", {clusterId: clusterId});\n```\n```python\nimport pulumi\nimport pulumiverse_cockroach as cockroach\n\nconfig = pulumi.Config()\ncluster_id = config.require(\"clusterId\")\ncockroach = cockroach.PrivateEndpointServices(\"cockroach\", cluster_id=cluster_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Cockroach = Pulumiverse.Cockroach;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var clusterId = config.Require(\"clusterId\");\n var cockroach = new Cockroach.PrivateEndpointServices(\"cockroach\", new()\n {\n ClusterId = clusterId,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-cockroach/sdk/go/cockroach\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tclusterId := cfg.Require(\"clusterId\")\n\t\t_, err := cockroach.NewPrivateEndpointServices(ctx, \"cockroach\", \u0026cockroach.PrivateEndpointServicesArgs{\n\t\t\tClusterId: pulumi.String(clusterId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.cockroach.PrivateEndpointServices;\nimport com.pulumi.cockroach.PrivateEndpointServicesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var clusterId = config.get(\"clusterId\");\n var cockroach = new PrivateEndpointServices(\"cockroach\", PrivateEndpointServicesArgs.builder()\n .clusterId(clusterId)\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n clusterId:\n type: string\nresources:\n cockroach:\n type: cockroach:PrivateEndpointServices\n properties:\n clusterId: ${clusterId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nformat: \u003ccluster id\u003e\n\n```sh\n$ pulumi import cockroach:index/privateEndpointServices:PrivateEndpointServices resource_name 1f69fdd2-600a-4cfc-a9ba-16995df0d77d\n```\n\n", "properties": { "clusterId": { "type": "string" @@ -1938,11 +2031,19 @@ "items": { "$ref": "#/types/cockroach:index/PrivateEndpointServicesService:PrivateEndpointServicesService" } + }, + "servicesMap": { + "type": "object", + "additionalProperties": { + "$ref": "#/types/cockroach:index/PrivateEndpointServicesServicesMap:PrivateEndpointServicesServicesMap" + }, + "description": "a map of services keyed by the region name\n" } }, "required": [ "clusterId", - "services" + "services", + "servicesMap" ], "inputProperties": { "clusterId": { @@ -1963,6 +2064,13 @@ "items": { "$ref": "#/types/cockroach:index/PrivateEndpointServicesService:PrivateEndpointServicesService" } + }, + "servicesMap": { + "type": "object", + "additionalProperties": { + "$ref": "#/types/cockroach:index/PrivateEndpointServicesServicesMap:PrivateEndpointServicesServicesMap" + }, + "description": "a map of services keyed by the region name\n" } }, "type": "object" @@ -2195,13 +2303,14 @@ } }, "cockroach:index/userRoleGrants:UserRoleGrants": { - "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.cockroach.UserRoleGrants;\nimport com.pulumi.cockroach.UserRoleGrantsArgs;\nimport com.pulumi.cockroach.inputs.UserRoleGrantsRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var userId = config.get(\"userId\");\n var cockroach = new UserRoleGrants(\"cockroach\", UserRoleGrantsArgs.builder()\n .userId(userId)\n .roles( \n UserRoleGrantsRoleArgs.builder()\n .role_name(\"ORG_ADMIN\")\n .resource_type(\"ORGANIZATION\")\n .resource_id(\"\")\n .build(),\n UserRoleGrantsRoleArgs.builder()\n .role_name(\"CLUSTER_ADMIN\")\n .resource_type(\"CLUSTER\")\n .resource_id(prod.id())\n .build(),\n UserRoleGrantsRoleArgs.builder()\n .role_name(\"FOLDER_ADMIN\")\n .resource_type(\"FOLDER\")\n .resource_id(dev.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n userId:\n type: string\nresources:\n cockroach:\n type: cockroach:UserRoleGrants\n properties:\n userId: ${userId}\n roles:\n - role_name: ORG_ADMIN\n resource_type: ORGANIZATION\n resource_id:\n - role_name: CLUSTER_ADMIN\n resource_type: CLUSTER\n resource_id: ${prod.id}\n - role_name: FOLDER_ADMIN\n resource_type: FOLDER\n resource_id: ${dev.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nformat: \u003cuser id\u003e\n\n```sh\n$ pulumi import cockroach:index/userRoleGrants:UserRoleGrants service_account 1f69fdd2-600a-4cfc-a9ba-16995df0d77d\n```\n\n", + "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.cockroach.UserRoleGrants;\nimport com.pulumi.cockroach.UserRoleGrantsArgs;\nimport com.pulumi.cockroach.inputs.UserRoleGrantsRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var userId = config.get(\"userId\");\n var cockroach = new UserRoleGrants(\"cockroach\", UserRoleGrantsArgs.builder()\n .userId(userId)\n .roles( \n UserRoleGrantsRoleArgs.builder()\n .role_name(\"ORG_MEMBER\")\n .resource_type(\"ORGANIZATION\")\n .resource_id(\"\")\n .build(),\n UserRoleGrantsRoleArgs.builder()\n .role_name(\"ORG_ADMIN\")\n .resource_type(\"ORGANIZATION\")\n .resource_id(\"\")\n .build(),\n UserRoleGrantsRoleArgs.builder()\n .role_name(\"CLUSTER_ADMIN\")\n .resource_type(\"CLUSTER\")\n .resource_id(prod.id())\n .build(),\n UserRoleGrantsRoleArgs.builder()\n .role_name(\"FOLDER_ADMIN\")\n .resource_type(\"FOLDER\")\n .resource_id(dev.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n userId:\n type: string\nresources:\n cockroach:\n type: cockroach:UserRoleGrants\n properties:\n userId: ${userId}\n roles:\n - role_name: ORG_MEMBER\n resource_type: ORGANIZATION\n resource_id:\n - role_name: ORG_ADMIN\n resource_type: ORGANIZATION\n resource_id:\n - role_name: CLUSTER_ADMIN\n resource_type: CLUSTER\n resource_id: ${prod.id}\n - role_name: FOLDER_ADMIN\n resource_type: FOLDER\n resource_id: ${dev.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nformat: \u003cuser id\u003e\n\n```sh\n$ pulumi import cockroach:index/userRoleGrants:UserRoleGrants service_account 1f69fdd2-600a-4cfc-a9ba-16995df0d77d\n```\n\n", "properties": { "roles": { "type": "array", "items": { "$ref": "#/types/cockroach:index/UserRoleGrantsRole:UserRoleGrantsRole" - } + }, + "description": "The list of roles to include. ORG_MEMBER must be included.\n" }, "userId": { "type": "string", @@ -2217,7 +2326,8 @@ "type": "array", "items": { "$ref": "#/types/cockroach:index/UserRoleGrantsRole:UserRoleGrantsRole" - } + }, + "description": "The list of roles to include. ORG_MEMBER must be included.\n" }, "userId": { "type": "string", @@ -2235,7 +2345,8 @@ "type": "array", "items": { "$ref": "#/types/cockroach:index/UserRoleGrantsRole:UserRoleGrantsRole" - } + }, + "description": "The list of roles to include. ORG_MEMBER must be included.\n" }, "userId": { "type": "string", diff --git a/provider/go.mod b/provider/go.mod index bde6cd3..5b4d84a 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -45,8 +45,8 @@ require ( github.com/charmbracelet/lipgloss v0.7.1 // indirect github.com/cheggaaa/pb v1.0.29 // indirect github.com/cloudflare/circl v1.3.7 // indirect - github.com/cockroachdb/cockroach-cloud-sdk-go v1.11.0 // indirect - github.com/cockroachdb/terraform-provider-cockroach v1.7.0 // indirect + github.com/cockroachdb/cockroach-cloud-sdk-go/v3 v3.0.0 // indirect + github.com/cockroachdb/terraform-provider-cockroach v1.8.0 // indirect github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/provider/go.sum b/provider/go.sum index 2d12442..2a8b2f8 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -319,10 +319,10 @@ github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cockroachdb/cockroach-cloud-sdk-go v1.11.0 h1:xqQ2/m+tCIbvoL9u61TAQ5qnu+KDrIH74A7Ym2gdzG4= -github.com/cockroachdb/cockroach-cloud-sdk-go v1.11.0/go.mod h1:oG9ylbcVGOF7IbVAW2nx5F6ry9a2dZD1H9rd+qd4P60= -github.com/cockroachdb/terraform-provider-cockroach v1.7.0 h1:Vllu5/7Ku99EdwW0WZwp6UjaNqyf+De5kQU8iAj2T2g= -github.com/cockroachdb/terraform-provider-cockroach v1.7.0/go.mod h1:BmMUYvr61ABIuseEuaxXzG+GEArTHNDA6IoSdAPH4n4= +github.com/cockroachdb/cockroach-cloud-sdk-go/v3 v3.0.0 h1:jbHNiRzBlJK0bJktxFwu753wq3OpMCQlR3GWqSTpJlQ= +github.com/cockroachdb/cockroach-cloud-sdk-go/v3 v3.0.0/go.mod h1:RBE/ZEYOGeIqnmUYgysc8hTXLLkgW05fkHWdsMeEu6Q= +github.com/cockroachdb/terraform-provider-cockroach v1.8.0 h1:ACf+FYoelFf4rFmQgm+Tn5cfPPkWDIjOlmqQcfNiqho= +github.com/cockroachdb/terraform-provider-cockroach v1.8.0/go.mod h1:+OygEPSLegOQgLNKW2C4HKimAlP7VQzIpRepX9UY6Q4= github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2wIvVRd/hEHD7lacgqrCPS+k8g1MndzfWY= github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= diff --git a/provider/resources.go b/provider/resources.go index a07f5c9..d8e23bf 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -88,16 +88,7 @@ func Provider() tfbridge.ProviderInfo { }, ComputeID: computeIDField("id"), }, - "cockroach_cluster": { - Tok: cockroachResource(cockroachMod, "Cluster"), - Fields: map[string]*tfbridge.SchemaInfo{ - "id": { - Name: "clusterId", - Type: "string", - }, - }, - ComputeID: computeIDField("id"), - }, + "cockroach_cluster": {Tok: cockroachResource(cockroachMod, "Cluster")}, "cockroach_cmek": { Tok: cockroachResource(cockroachMod, "Cmek"), Fields: map[string]*tfbridge.SchemaInfo{ diff --git a/provider/shim/go.mod b/provider/shim/go.mod index 7172fbe..e80eff7 100644 --- a/provider/shim/go.mod +++ b/provider/shim/go.mod @@ -3,13 +3,13 @@ module github.com/cockroachdb/terraform-provider-cockroach/shim go 1.22 require ( - github.com/cockroachdb/terraform-provider-cockroach v1.7.0 + github.com/cockroachdb/terraform-provider-cockroach v1.8.0 github.com/hashicorp/terraform-plugin-framework v1.6.1 ) require ( github.com/agext/levenshtein v1.2.3 // indirect - github.com/cockroachdb/cockroach-cloud-sdk-go v1.11.0 // indirect + github.com/cockroachdb/cockroach-cloud-sdk-go/v3 v3.0.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/fatih/color v1.16.0 // indirect github.com/google/uuid v1.4.0 // indirect diff --git a/provider/shim/go.sum b/provider/shim/go.sum index beb170a..2cdd4b4 100644 --- a/provider/shim/go.sum +++ b/provider/shim/go.sum @@ -6,10 +6,10 @@ github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= -github.com/cockroachdb/cockroach-cloud-sdk-go v1.11.0 h1:xqQ2/m+tCIbvoL9u61TAQ5qnu+KDrIH74A7Ym2gdzG4= -github.com/cockroachdb/cockroach-cloud-sdk-go v1.11.0/go.mod h1:oG9ylbcVGOF7IbVAW2nx5F6ry9a2dZD1H9rd+qd4P60= -github.com/cockroachdb/terraform-provider-cockroach v1.7.0 h1:Vllu5/7Ku99EdwW0WZwp6UjaNqyf+De5kQU8iAj2T2g= -github.com/cockroachdb/terraform-provider-cockroach v1.7.0/go.mod h1:BmMUYvr61ABIuseEuaxXzG+GEArTHNDA6IoSdAPH4n4= +github.com/cockroachdb/cockroach-cloud-sdk-go/v3 v3.0.0 h1:jbHNiRzBlJK0bJktxFwu753wq3OpMCQlR3GWqSTpJlQ= +github.com/cockroachdb/cockroach-cloud-sdk-go/v3 v3.0.0/go.mod h1:RBE/ZEYOGeIqnmUYgysc8hTXLLkgW05fkHWdsMeEu6Q= +github.com/cockroachdb/terraform-provider-cockroach v1.8.0 h1:ACf+FYoelFf4rFmQgm+Tn5cfPPkWDIjOlmqQcfNiqho= +github.com/cockroachdb/terraform-provider-cockroach v1.8.0/go.mod h1:+OygEPSLegOQgLNKW2C4HKimAlP7VQzIpRepX9UY6Q4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/sdk/dotnet/AllowList.cs b/sdk/dotnet/AllowList.cs index 9bab7f8..f2d50f5 100644 --- a/sdk/dotnet/AllowList.cs +++ b/sdk/dotnet/AllowList.cs @@ -54,7 +54,7 @@ public partial class AllowList : global::Pulumi.CustomResource public Output CidrIp { get; private set; } = null!; /// - /// Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + /// The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. /// [Output("cidrMask")] public Output CidrMask { get; private set; } = null!; @@ -63,10 +63,10 @@ public partial class AllowList : global::Pulumi.CustomResource public Output ClusterId { get; private set; } = null!; /// - /// Name of this allowlist entry. + /// Name of this allowlist entry. If not set explicitly, this value does not sync with the server. /// [Output("name")] - public Output Name { get; private set; } = null!; + public Output Name { get; private set; } = null!; /// /// Set to 'true' to allow SQL connections from this CIDR range. @@ -134,7 +134,7 @@ public sealed class AllowListArgs : global::Pulumi.ResourceArgs public Input CidrIp { get; set; } = null!; /// - /// Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + /// The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. /// [Input("cidrMask", required: true)] public Input CidrMask { get; set; } = null!; @@ -143,7 +143,7 @@ public sealed class AllowListArgs : global::Pulumi.ResourceArgs public Input ClusterId { get; set; } = null!; /// - /// Name of this allowlist entry. + /// Name of this allowlist entry. If not set explicitly, this value does not sync with the server. /// [Input("name")] public Input? Name { get; set; } @@ -175,7 +175,7 @@ public sealed class AllowListState : global::Pulumi.ResourceArgs public Input? CidrIp { get; set; } /// - /// Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + /// The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. /// [Input("cidrMask")] public Input? CidrMask { get; set; } @@ -184,7 +184,7 @@ public sealed class AllowListState : global::Pulumi.ResourceArgs public Input? ClusterId { get; set; } /// - /// Name of this allowlist entry. + /// Name of this allowlist entry. If not set explicitly, this value does not sync with the server. /// [Input("name")] public Input? Name { get; set; } diff --git a/sdk/dotnet/Cluster.cs b/sdk/dotnet/Cluster.cs index 3b515eb..9f33157 100644 --- a/sdk/dotnet/Cluster.cs +++ b/sdk/dotnet/Cluster.cs @@ -11,7 +11,7 @@ namespace Pulumiverse.Cockroach { /// - /// CockroachDB Cloud cluster. Can be Dedicated or Serverless. + /// CockroachDB Cloud cluster. /// [CockroachResourceType("cockroach:index/cluster:Cluster")] public partial class Cluster : global::Pulumi.CustomResource @@ -28,9 +28,6 @@ public partial class Cluster : global::Pulumi.CustomResource [Output("cloudProvider")] public Output CloudProvider { get; private set; } = null!; - [Output("clusterId")] - public Output ClusterId { get; private set; } = null!; - /// /// Major version of CockroachDB running on the cluster. /// @@ -72,7 +69,7 @@ public partial class Cluster : global::Pulumi.CustomResource public Output ParentId { get; private set; } = null!; /// - /// Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. + /// Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. /// [Output("plan")] public Output Plan { get; private set; } = null!; @@ -176,6 +173,12 @@ public sealed class ClusterArgs : global::Pulumi.ResourceArgs [Input("parentId")] public Input? ParentId { get; set; } + /// + /// Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. + /// + [Input("plan")] + public Input? Plan { get; set; } + [Input("regions", required: true)] private InputList? _regions; public InputList Regions @@ -207,9 +210,6 @@ public sealed class ClusterState : global::Pulumi.ResourceArgs [Input("cloudProvider")] public Input? CloudProvider { get; set; } - [Input("clusterId")] - public Input? ClusterId { get; set; } - /// /// Major version of CockroachDB running on the cluster. /// @@ -251,7 +251,7 @@ public sealed class ClusterState : global::Pulumi.ResourceArgs public Input? ParentId { get; set; } /// - /// Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. + /// Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. /// [Input("plan")] public Input? Plan { get; set; } diff --git a/sdk/dotnet/Inputs/ClusterRegionArgs.cs b/sdk/dotnet/Inputs/ClusterRegionArgs.cs index 7950425..a1d6ea7 100644 --- a/sdk/dotnet/Inputs/ClusterRegionArgs.cs +++ b/sdk/dotnet/Inputs/ClusterRegionArgs.cs @@ -32,7 +32,7 @@ public sealed class ClusterRegionArgs : global::Pulumi.ResourceArgs public Input? NodeCount { get; set; } /// - /// Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + /// Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. /// [Input("primary")] public Input? Primary { get; set; } diff --git a/sdk/dotnet/Inputs/ClusterRegionGetArgs.cs b/sdk/dotnet/Inputs/ClusterRegionGetArgs.cs index 2070289..e165cbe 100644 --- a/sdk/dotnet/Inputs/ClusterRegionGetArgs.cs +++ b/sdk/dotnet/Inputs/ClusterRegionGetArgs.cs @@ -32,7 +32,7 @@ public sealed class ClusterRegionGetArgs : global::Pulumi.ResourceArgs public Input? NodeCount { get; set; } /// - /// Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + /// Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. /// [Input("primary")] public Input? Primary { get; set; } diff --git a/sdk/dotnet/Inputs/ClusterServerlessArgs.cs b/sdk/dotnet/Inputs/ClusterServerlessArgs.cs index f05ac9b..b714e80 100644 --- a/sdk/dotnet/Inputs/ClusterServerlessArgs.cs +++ b/sdk/dotnet/Inputs/ClusterServerlessArgs.cs @@ -25,6 +25,14 @@ public sealed class ClusterServerlessArgs : global::Pulumi.ResourceArgs [Input("spendLimit")] public Input? SpendLimit { get; set; } + /// + /// Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + /// * MANUAL + /// * AUTOMATIC + /// + [Input("upgradeType")] + public Input? UpgradeType { get; set; } + [Input("usageLimits")] public Input? UsageLimits { get; set; } diff --git a/sdk/dotnet/Inputs/ClusterServerlessGetArgs.cs b/sdk/dotnet/Inputs/ClusterServerlessGetArgs.cs index 094f74a..529af25 100644 --- a/sdk/dotnet/Inputs/ClusterServerlessGetArgs.cs +++ b/sdk/dotnet/Inputs/ClusterServerlessGetArgs.cs @@ -25,6 +25,14 @@ public sealed class ClusterServerlessGetArgs : global::Pulumi.ResourceArgs [Input("spendLimit")] public Input? SpendLimit { get; set; } + /// + /// Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + /// * MANUAL + /// * AUTOMATIC + /// + [Input("upgradeType")] + public Input? UpgradeType { get; set; } + [Input("usageLimits")] public Input? UsageLimits { get; set; } diff --git a/sdk/dotnet/Inputs/ClusterServerlessUsageLimitsArgs.cs b/sdk/dotnet/Inputs/ClusterServerlessUsageLimitsArgs.cs index 9650c96..9858c4c 100644 --- a/sdk/dotnet/Inputs/ClusterServerlessUsageLimitsArgs.cs +++ b/sdk/dotnet/Inputs/ClusterServerlessUsageLimitsArgs.cs @@ -13,17 +13,23 @@ namespace Pulumiverse.Cockroach.Inputs public sealed class ClusterServerlessUsageLimitsArgs : global::Pulumi.ResourceArgs { + /// + /// Maximum number of vCPUs that the cluster can use. + /// + [Input("provisionedVirtualCpus")] + public Input? ProvisionedVirtualCpus { get; set; } + /// /// Maximum number of Request Units that the cluster can consume during the month. /// - [Input("requestUnitLimit", required: true)] - public Input RequestUnitLimit { get; set; } = null!; + [Input("requestUnitLimit")] + public Input? RequestUnitLimit { get; set; } /// /// Maximum amount of storage (in MiB) that the cluster can have at any time during the month. /// - [Input("storageMibLimit", required: true)] - public Input StorageMibLimit { get; set; } = null!; + [Input("storageMibLimit")] + public Input? StorageMibLimit { get; set; } public ClusterServerlessUsageLimitsArgs() { diff --git a/sdk/dotnet/Inputs/ClusterServerlessUsageLimitsGetArgs.cs b/sdk/dotnet/Inputs/ClusterServerlessUsageLimitsGetArgs.cs index 8a92e67..70d2c77 100644 --- a/sdk/dotnet/Inputs/ClusterServerlessUsageLimitsGetArgs.cs +++ b/sdk/dotnet/Inputs/ClusterServerlessUsageLimitsGetArgs.cs @@ -13,17 +13,23 @@ namespace Pulumiverse.Cockroach.Inputs public sealed class ClusterServerlessUsageLimitsGetArgs : global::Pulumi.ResourceArgs { + /// + /// Maximum number of vCPUs that the cluster can use. + /// + [Input("provisionedVirtualCpus")] + public Input? ProvisionedVirtualCpus { get; set; } + /// /// Maximum number of Request Units that the cluster can consume during the month. /// - [Input("requestUnitLimit", required: true)] - public Input RequestUnitLimit { get; set; } = null!; + [Input("requestUnitLimit")] + public Input? RequestUnitLimit { get; set; } /// /// Maximum amount of storage (in MiB) that the cluster can have at any time during the month. /// - [Input("storageMibLimit", required: true)] - public Input StorageMibLimit { get; set; } = null!; + [Input("storageMibLimit")] + public Input? StorageMibLimit { get; set; } public ClusterServerlessUsageLimitsGetArgs() { diff --git a/sdk/dotnet/Inputs/CmekAdditionalRegionArgs.cs b/sdk/dotnet/Inputs/CmekAdditionalRegionArgs.cs index 6912905..d814473 100644 --- a/sdk/dotnet/Inputs/CmekAdditionalRegionArgs.cs +++ b/sdk/dotnet/Inputs/CmekAdditionalRegionArgs.cs @@ -32,7 +32,7 @@ public sealed class CmekAdditionalRegionArgs : global::Pulumi.ResourceArgs public Input? NodeCount { get; set; } /// - /// Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + /// Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. /// [Input("primary")] public Input? Primary { get; set; } diff --git a/sdk/dotnet/Inputs/CmekAdditionalRegionGetArgs.cs b/sdk/dotnet/Inputs/CmekAdditionalRegionGetArgs.cs index 56acda4..e7ae511 100644 --- a/sdk/dotnet/Inputs/CmekAdditionalRegionGetArgs.cs +++ b/sdk/dotnet/Inputs/CmekAdditionalRegionGetArgs.cs @@ -32,7 +32,7 @@ public sealed class CmekAdditionalRegionGetArgs : global::Pulumi.ResourceArgs public Input? NodeCount { get; set; } /// - /// Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + /// Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. /// [Input("primary")] public Input? Primary { get; set; } diff --git a/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapArgs.cs b/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapArgs.cs new file mode 100644 index 0000000..3b38d39 --- /dev/null +++ b/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapArgs.cs @@ -0,0 +1,66 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Cockroach.Inputs +{ + + public sealed class PrivateEndpointServicesServicesMapArgs : global::Pulumi.ResourceArgs + { + [Input("availabilityZoneIds")] + private InputList? _availabilityZoneIds; + + /// + /// Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + /// + public InputList AvailabilityZoneIds + { + get => _availabilityZoneIds ?? (_availabilityZoneIds = new InputList()); + set => _availabilityZoneIds = value; + } + + [Input("aws")] + public Input? Aws { get; set; } + + /// + /// Cloud provider associated with this service. + /// + [Input("cloudProvider")] + public Input? CloudProvider { get; set; } + + /// + /// Server side ID of the private endpoint connection. + /// + [Input("endpointServiceId")] + public Input? EndpointServiceId { get; set; } + + /// + /// Name of the endpoint service. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Cloud provider region code associated with this service. + /// + [Input("regionName")] + public Input? RegionName { get; set; } + + /// + /// Operation status of the service. + /// + [Input("status")] + public Input? Status { get; set; } + + public PrivateEndpointServicesServicesMapArgs() + { + } + public static new PrivateEndpointServicesServicesMapArgs Empty => new PrivateEndpointServicesServicesMapArgs(); + } +} diff --git a/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapAwsArgs.cs b/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapAwsArgs.cs new file mode 100644 index 0000000..71e3e26 --- /dev/null +++ b/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapAwsArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Cockroach.Inputs +{ + + public sealed class PrivateEndpointServicesServicesMapAwsArgs : global::Pulumi.ResourceArgs + { + [Input("availabilityZoneIds")] + private InputList? _availabilityZoneIds; + + /// + /// AZ IDs users should create their VPCs in to minimize their cost. + /// + public InputList AvailabilityZoneIds + { + get => _availabilityZoneIds ?? (_availabilityZoneIds = new InputList()); + set => _availabilityZoneIds = value; + } + + /// + /// Server side ID of the PrivateLink connection. + /// + [Input("serviceId")] + public Input? ServiceId { get; set; } + + /// + /// AWS service name used to create endpoints. + /// + [Input("serviceName")] + public Input? ServiceName { get; set; } + + public PrivateEndpointServicesServicesMapAwsArgs() + { + } + public static new PrivateEndpointServicesServicesMapAwsArgs Empty => new PrivateEndpointServicesServicesMapAwsArgs(); + } +} diff --git a/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapAwsGetArgs.cs b/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapAwsGetArgs.cs new file mode 100644 index 0000000..71871d6 --- /dev/null +++ b/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapAwsGetArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Cockroach.Inputs +{ + + public sealed class PrivateEndpointServicesServicesMapAwsGetArgs : global::Pulumi.ResourceArgs + { + [Input("availabilityZoneIds")] + private InputList? _availabilityZoneIds; + + /// + /// AZ IDs users should create their VPCs in to minimize their cost. + /// + public InputList AvailabilityZoneIds + { + get => _availabilityZoneIds ?? (_availabilityZoneIds = new InputList()); + set => _availabilityZoneIds = value; + } + + /// + /// Server side ID of the PrivateLink connection. + /// + [Input("serviceId")] + public Input? ServiceId { get; set; } + + /// + /// AWS service name used to create endpoints. + /// + [Input("serviceName")] + public Input? ServiceName { get; set; } + + public PrivateEndpointServicesServicesMapAwsGetArgs() + { + } + public static new PrivateEndpointServicesServicesMapAwsGetArgs Empty => new PrivateEndpointServicesServicesMapAwsGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapGetArgs.cs b/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapGetArgs.cs new file mode 100644 index 0000000..adc7ccb --- /dev/null +++ b/sdk/dotnet/Inputs/PrivateEndpointServicesServicesMapGetArgs.cs @@ -0,0 +1,66 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Cockroach.Inputs +{ + + public sealed class PrivateEndpointServicesServicesMapGetArgs : global::Pulumi.ResourceArgs + { + [Input("availabilityZoneIds")] + private InputList? _availabilityZoneIds; + + /// + /// Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + /// + public InputList AvailabilityZoneIds + { + get => _availabilityZoneIds ?? (_availabilityZoneIds = new InputList()); + set => _availabilityZoneIds = value; + } + + [Input("aws")] + public Input? Aws { get; set; } + + /// + /// Cloud provider associated with this service. + /// + [Input("cloudProvider")] + public Input? CloudProvider { get; set; } + + /// + /// Server side ID of the private endpoint connection. + /// + [Input("endpointServiceId")] + public Input? EndpointServiceId { get; set; } + + /// + /// Name of the endpoint service. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Cloud provider region code associated with this service. + /// + [Input("regionName")] + public Input? RegionName { get; set; } + + /// + /// Operation status of the service. + /// + [Input("status")] + public Input? Status { get; set; } + + public PrivateEndpointServicesServicesMapGetArgs() + { + } + public static new PrivateEndpointServicesServicesMapGetArgs Empty => new PrivateEndpointServicesServicesMapGetArgs(); + } +} diff --git a/sdk/dotnet/LogExportConfig.cs b/sdk/dotnet/LogExportConfig.cs index 0e29524..f2e99b6 100644 --- a/sdk/dotnet/LogExportConfig.cs +++ b/sdk/dotnet/LogExportConfig.cs @@ -70,7 +70,7 @@ public partial class LogExportConfig : global::Pulumi.CustomResource /// /// The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - /// GCP_CLOUD_LOGGING + /// GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS /// [Output("type")] public Output Type { get; private set; } = null!; @@ -188,7 +188,7 @@ public InputList OmittedChannels /// /// The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - /// GCP_CLOUD_LOGGING + /// GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS /// [Input("type", required: true)] public Input Type { get; set; } = null!; @@ -266,7 +266,7 @@ public InputList OmittedChannels /// /// The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - /// GCP_CLOUD_LOGGING + /// GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS /// [Input("type")] public Input? Type { get; set; } diff --git a/sdk/dotnet/Outputs/ClusterRegion.cs b/sdk/dotnet/Outputs/ClusterRegion.cs index 2084437..297f012 100644 --- a/sdk/dotnet/Outputs/ClusterRegion.cs +++ b/sdk/dotnet/Outputs/ClusterRegion.cs @@ -27,7 +27,7 @@ public sealed class ClusterRegion /// public readonly int? NodeCount; /// - /// Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + /// Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. /// public readonly bool? Primary; /// diff --git a/sdk/dotnet/Outputs/ClusterServerless.cs b/sdk/dotnet/Outputs/ClusterServerless.cs index cb060f7..62e02c6 100644 --- a/sdk/dotnet/Outputs/ClusterServerless.cs +++ b/sdk/dotnet/Outputs/ClusterServerless.cs @@ -22,6 +22,12 @@ public sealed class ClusterServerless /// Spend limit in US cents. /// public readonly int? SpendLimit; + /// + /// Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + /// * MANUAL + /// * AUTOMATIC + /// + public readonly string? UpgradeType; public readonly Outputs.ClusterServerlessUsageLimits? UsageLimits; [OutputConstructor] @@ -30,10 +36,13 @@ private ClusterServerless( int? spendLimit, + string? upgradeType, + Outputs.ClusterServerlessUsageLimits? usageLimits) { RoutingId = routingId; SpendLimit = spendLimit; + UpgradeType = upgradeType; UsageLimits = usageLimits; } } diff --git a/sdk/dotnet/Outputs/ClusterServerlessUsageLimits.cs b/sdk/dotnet/Outputs/ClusterServerlessUsageLimits.cs index f6f6f7c..927e61a 100644 --- a/sdk/dotnet/Outputs/ClusterServerlessUsageLimits.cs +++ b/sdk/dotnet/Outputs/ClusterServerlessUsageLimits.cs @@ -14,21 +14,28 @@ namespace Pulumiverse.Cockroach.Outputs [OutputType] public sealed class ClusterServerlessUsageLimits { + /// + /// Maximum number of vCPUs that the cluster can use. + /// + public readonly int? ProvisionedVirtualCpus; /// /// Maximum number of Request Units that the cluster can consume during the month. /// - public readonly int RequestUnitLimit; + public readonly int? RequestUnitLimit; /// /// Maximum amount of storage (in MiB) that the cluster can have at any time during the month. /// - public readonly int StorageMibLimit; + public readonly int? StorageMibLimit; [OutputConstructor] private ClusterServerlessUsageLimits( - int requestUnitLimit, + int? provisionedVirtualCpus, + + int? requestUnitLimit, - int storageMibLimit) + int? storageMibLimit) { + ProvisionedVirtualCpus = provisionedVirtualCpus; RequestUnitLimit = requestUnitLimit; StorageMibLimit = storageMibLimit; } diff --git a/sdk/dotnet/Outputs/CmekAdditionalRegion.cs b/sdk/dotnet/Outputs/CmekAdditionalRegion.cs index 93b5605..ad983d7 100644 --- a/sdk/dotnet/Outputs/CmekAdditionalRegion.cs +++ b/sdk/dotnet/Outputs/CmekAdditionalRegion.cs @@ -27,7 +27,7 @@ public sealed class CmekAdditionalRegion /// public readonly int? NodeCount; /// - /// Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + /// Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. /// public readonly bool? Primary; /// diff --git a/sdk/dotnet/Outputs/GetCockroachClusterServerlessResult.cs b/sdk/dotnet/Outputs/GetCockroachClusterServerlessResult.cs index c3ff824..1da780b 100644 --- a/sdk/dotnet/Outputs/GetCockroachClusterServerlessResult.cs +++ b/sdk/dotnet/Outputs/GetCockroachClusterServerlessResult.cs @@ -22,6 +22,10 @@ public sealed class GetCockroachClusterServerlessResult /// Spend limit in US cents. /// public readonly int SpendLimit; + /// + /// Dictates the behavior of cockroach major version upgrades. + /// + public readonly string UpgradeType; public readonly Outputs.GetCockroachClusterServerlessUsageLimitsResult UsageLimits; [OutputConstructor] @@ -30,10 +34,13 @@ private GetCockroachClusterServerlessResult( int spendLimit, + string upgradeType, + Outputs.GetCockroachClusterServerlessUsageLimitsResult usageLimits) { RoutingId = routingId; SpendLimit = spendLimit; + UpgradeType = upgradeType; UsageLimits = usageLimits; } } diff --git a/sdk/dotnet/Outputs/GetCockroachClusterServerlessUsageLimitsResult.cs b/sdk/dotnet/Outputs/GetCockroachClusterServerlessUsageLimitsResult.cs index d1e2210..222bb1a 100644 --- a/sdk/dotnet/Outputs/GetCockroachClusterServerlessUsageLimitsResult.cs +++ b/sdk/dotnet/Outputs/GetCockroachClusterServerlessUsageLimitsResult.cs @@ -14,6 +14,10 @@ namespace Pulumiverse.Cockroach.Outputs [OutputType] public sealed class GetCockroachClusterServerlessUsageLimitsResult { + /// + /// Maximum number of vCPUs that the cluster can use. + /// + public readonly int ProvisionedVirtualCpus; /// /// Maximum number of Request Units that the cluster can consume during the month. /// @@ -25,10 +29,13 @@ public sealed class GetCockroachClusterServerlessUsageLimitsResult [OutputConstructor] private GetCockroachClusterServerlessUsageLimitsResult( + int provisionedVirtualCpus, + int requestUnitLimit, int storageMibLimit) { + ProvisionedVirtualCpus = provisionedVirtualCpus; RequestUnitLimit = requestUnitLimit; StorageMibLimit = storageMibLimit; } diff --git a/sdk/dotnet/Outputs/PrivateEndpointServicesServicesMap.cs b/sdk/dotnet/Outputs/PrivateEndpointServicesServicesMap.cs new file mode 100644 index 0000000..82084de --- /dev/null +++ b/sdk/dotnet/Outputs/PrivateEndpointServicesServicesMap.cs @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Cockroach.Outputs +{ + + [OutputType] + public sealed class PrivateEndpointServicesServicesMap + { + /// + /// Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + /// + public readonly ImmutableArray AvailabilityZoneIds; + public readonly Outputs.PrivateEndpointServicesServicesMapAws? Aws; + /// + /// Cloud provider associated with this service. + /// + public readonly string? CloudProvider; + /// + /// Server side ID of the private endpoint connection. + /// + public readonly string? EndpointServiceId; + /// + /// Name of the endpoint service. + /// + public readonly string? Name; + /// + /// Cloud provider region code associated with this service. + /// + public readonly string? RegionName; + /// + /// Operation status of the service. + /// + public readonly string? Status; + + [OutputConstructor] + private PrivateEndpointServicesServicesMap( + ImmutableArray availabilityZoneIds, + + Outputs.PrivateEndpointServicesServicesMapAws? aws, + + string? cloudProvider, + + string? endpointServiceId, + + string? name, + + string? regionName, + + string? status) + { + AvailabilityZoneIds = availabilityZoneIds; + Aws = aws; + CloudProvider = cloudProvider; + EndpointServiceId = endpointServiceId; + Name = name; + RegionName = regionName; + Status = status; + } + } +} diff --git a/sdk/dotnet/Outputs/PrivateEndpointServicesServicesMapAws.cs b/sdk/dotnet/Outputs/PrivateEndpointServicesServicesMapAws.cs new file mode 100644 index 0000000..48ad9f3 --- /dev/null +++ b/sdk/dotnet/Outputs/PrivateEndpointServicesServicesMapAws.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Cockroach.Outputs +{ + + [OutputType] + public sealed class PrivateEndpointServicesServicesMapAws + { + /// + /// AZ IDs users should create their VPCs in to minimize their cost. + /// + public readonly ImmutableArray AvailabilityZoneIds; + /// + /// Server side ID of the PrivateLink connection. + /// + public readonly string? ServiceId; + /// + /// AWS service name used to create endpoints. + /// + public readonly string? ServiceName; + + [OutputConstructor] + private PrivateEndpointServicesServicesMapAws( + ImmutableArray availabilityZoneIds, + + string? serviceId, + + string? serviceName) + { + AvailabilityZoneIds = availabilityZoneIds; + ServiceId = serviceId; + ServiceName = serviceName; + } + } +} diff --git a/sdk/dotnet/PrivateEndpointServices.cs b/sdk/dotnet/PrivateEndpointServices.cs index 4c616c9..2869e6a 100644 --- a/sdk/dotnet/PrivateEndpointServices.cs +++ b/sdk/dotnet/PrivateEndpointServices.cs @@ -50,6 +50,12 @@ public partial class PrivateEndpointServices : global::Pulumi.CustomResource [Output("services")] public Output> Services { get; private set; } = null!; + /// + /// a map of services keyed by the region name + /// + [Output("servicesMap")] + public Output> ServicesMap { get; private set; } = null!; + /// /// Create a PrivateEndpointServices resource with the given unique name, arguments, and options. @@ -119,6 +125,18 @@ public InputList Services set => _services = value; } + [Input("servicesMap")] + private InputMap? _servicesMap; + + /// + /// a map of services keyed by the region name + /// + public InputMap ServicesMap + { + get => _servicesMap ?? (_servicesMap = new InputMap()); + set => _servicesMap = value; + } + public PrivateEndpointServicesState() { } diff --git a/sdk/dotnet/UserRoleGrants.cs b/sdk/dotnet/UserRoleGrants.cs index c2b9ee1..0690c7a 100644 --- a/sdk/dotnet/UserRoleGrants.cs +++ b/sdk/dotnet/UserRoleGrants.cs @@ -24,6 +24,9 @@ namespace Pulumiverse.Cockroach [CockroachResourceType("cockroach:index/userRoleGrants:UserRoleGrants")] public partial class UserRoleGrants : global::Pulumi.CustomResource { + /// + /// The list of roles to include. ORG_MEMBER must be included. + /// [Output("roles")] public Output> Roles { get; private set; } = null!; @@ -82,6 +85,10 @@ public sealed class UserRoleGrantsArgs : global::Pulumi.ResourceArgs { [Input("roles", required: true)] private InputList? _roles; + + /// + /// The list of roles to include. ORG_MEMBER must be included. + /// public InputList Roles { get => _roles ?? (_roles = new InputList()); @@ -104,6 +111,10 @@ public sealed class UserRoleGrantsState : global::Pulumi.ResourceArgs { [Input("roles")] private InputList? _roles; + + /// + /// The list of roles to include. ORG_MEMBER must be included. + /// public InputList Roles { get => _roles ?? (_roles = new InputList()); diff --git a/sdk/go/cockroach/allowList.go b/sdk/go/cockroach/allowList.go index aa387fb..8f2e19a 100644 --- a/sdk/go/cockroach/allowList.go +++ b/sdk/go/cockroach/allowList.go @@ -57,11 +57,11 @@ type AllowList struct { // IP address component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. CidrIp pulumi.StringOutput `pulumi:"cidrIp"` - // Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + // The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. CidrMask pulumi.IntOutput `pulumi:"cidrMask"` ClusterId pulumi.StringOutput `pulumi:"clusterId"` - // Name of this allowlist entry. - Name pulumi.StringPtrOutput `pulumi:"name"` + // Name of this allowlist entry. If not set explicitly, this value does not sync with the server. + Name pulumi.StringOutput `pulumi:"name"` // Set to 'true' to allow SQL connections from this CIDR range. Sql pulumi.BoolOutput `pulumi:"sql"` // Set to 'true' to allow access to the management console from this CIDR range. @@ -115,10 +115,10 @@ func GetAllowList(ctx *pulumi.Context, type allowListState struct { // IP address component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. CidrIp *string `pulumi:"cidrIp"` - // Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + // The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. CidrMask *int `pulumi:"cidrMask"` ClusterId *string `pulumi:"clusterId"` - // Name of this allowlist entry. + // Name of this allowlist entry. If not set explicitly, this value does not sync with the server. Name *string `pulumi:"name"` // Set to 'true' to allow SQL connections from this CIDR range. Sql *bool `pulumi:"sql"` @@ -129,10 +129,10 @@ type allowListState struct { type AllowListState struct { // IP address component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. CidrIp pulumi.StringPtrInput - // Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + // The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. CidrMask pulumi.IntPtrInput ClusterId pulumi.StringPtrInput - // Name of this allowlist entry. + // Name of this allowlist entry. If not set explicitly, this value does not sync with the server. Name pulumi.StringPtrInput // Set to 'true' to allow SQL connections from this CIDR range. Sql pulumi.BoolPtrInput @@ -147,10 +147,10 @@ func (AllowListState) ElementType() reflect.Type { type allowListArgs struct { // IP address component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. CidrIp string `pulumi:"cidrIp"` - // Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + // The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. CidrMask int `pulumi:"cidrMask"` ClusterId string `pulumi:"clusterId"` - // Name of this allowlist entry. + // Name of this allowlist entry. If not set explicitly, this value does not sync with the server. Name *string `pulumi:"name"` // Set to 'true' to allow SQL connections from this CIDR range. Sql bool `pulumi:"sql"` @@ -162,10 +162,10 @@ type allowListArgs struct { type AllowListArgs struct { // IP address component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. CidrIp pulumi.StringInput - // Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + // The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. CidrMask pulumi.IntInput ClusterId pulumi.StringInput - // Name of this allowlist entry. + // Name of this allowlist entry. If not set explicitly, this value does not sync with the server. Name pulumi.StringPtrInput // Set to 'true' to allow SQL connections from this CIDR range. Sql pulumi.BoolInput @@ -265,7 +265,7 @@ func (o AllowListOutput) CidrIp() pulumi.StringOutput { return o.ApplyT(func(v *AllowList) pulumi.StringOutput { return v.CidrIp }).(pulumi.StringOutput) } -// Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. +// The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. func (o AllowListOutput) CidrMask() pulumi.IntOutput { return o.ApplyT(func(v *AllowList) pulumi.IntOutput { return v.CidrMask }).(pulumi.IntOutput) } @@ -274,9 +274,9 @@ func (o AllowListOutput) ClusterId() pulumi.StringOutput { return o.ApplyT(func(v *AllowList) pulumi.StringOutput { return v.ClusterId }).(pulumi.StringOutput) } -// Name of this allowlist entry. -func (o AllowListOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *AllowList) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput) +// Name of this allowlist entry. If not set explicitly, this value does not sync with the server. +func (o AllowListOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *AllowList) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } // Set to 'true' to allow SQL connections from this CIDR range. diff --git a/sdk/go/cockroach/cluster.go b/sdk/go/cockroach/cluster.go index 71a48a8..df32b0e 100644 --- a/sdk/go/cockroach/cluster.go +++ b/sdk/go/cockroach/cluster.go @@ -12,7 +12,7 @@ import ( "github.com/pulumiverse/pulumi-cockroach/sdk/go/cockroach/internal" ) -// CockroachDB Cloud cluster. Can be Dedicated or Serverless. +// CockroachDB Cloud cluster. type Cluster struct { pulumi.CustomResourceState @@ -20,7 +20,6 @@ type Cluster struct { AccountId pulumi.StringOutput `pulumi:"accountId"` // Cloud provider used to host the cluster. Allowed values are: * GCP * AWS * AZURE CloudProvider pulumi.StringOutput `pulumi:"cloudProvider"` - ClusterId pulumi.StringOutput `pulumi:"clusterId"` // Major version of CockroachDB running on the cluster. CockroachVersion pulumi.StringOutput `pulumi:"cockroachVersion"` // ID of the user who created the cluster. @@ -35,7 +34,7 @@ type Cluster struct { OperationStatus pulumi.StringOutput `pulumi:"operationStatus"` // The ID of the cluster's parent folder. 'root' is used for a cluster at the root level. ParentId pulumi.StringOutput `pulumi:"parentId"` - // Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. + // Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. Plan pulumi.StringOutput `pulumi:"plan"` Regions ClusterRegionArrayOutput `pulumi:"regions"` Serverless ClusterServerlessPtrOutput `pulumi:"serverless"` @@ -88,7 +87,6 @@ type clusterState struct { AccountId *string `pulumi:"accountId"` // Cloud provider used to host the cluster. Allowed values are: * GCP * AWS * AZURE CloudProvider *string `pulumi:"cloudProvider"` - ClusterId *string `pulumi:"clusterId"` // Major version of CockroachDB running on the cluster. CockroachVersion *string `pulumi:"cockroachVersion"` // ID of the user who created the cluster. @@ -103,7 +101,7 @@ type clusterState struct { OperationStatus *string `pulumi:"operationStatus"` // The ID of the cluster's parent folder. 'root' is used for a cluster at the root level. ParentId *string `pulumi:"parentId"` - // Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. + // Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. Plan *string `pulumi:"plan"` Regions []ClusterRegion `pulumi:"regions"` Serverless *ClusterServerless `pulumi:"serverless"` @@ -118,7 +116,6 @@ type ClusterState struct { AccountId pulumi.StringPtrInput // Cloud provider used to host the cluster. Allowed values are: * GCP * AWS * AZURE CloudProvider pulumi.StringPtrInput - ClusterId pulumi.StringPtrInput // Major version of CockroachDB running on the cluster. CockroachVersion pulumi.StringPtrInput // ID of the user who created the cluster. @@ -133,7 +130,7 @@ type ClusterState struct { OperationStatus pulumi.StringPtrInput // The ID of the cluster's parent folder. 'root' is used for a cluster at the root level. ParentId pulumi.StringPtrInput - // Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. + // Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. Plan pulumi.StringPtrInput Regions ClusterRegionArrayInput Serverless ClusterServerlessPtrInput @@ -159,7 +156,9 @@ type clusterArgs struct { // Name of the cluster. Name string `pulumi:"name"` // The ID of the cluster's parent folder. 'root' is used for a cluster at the root level. - ParentId *string `pulumi:"parentId"` + ParentId *string `pulumi:"parentId"` + // Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. + Plan *string `pulumi:"plan"` Regions []ClusterRegion `pulumi:"regions"` Serverless *ClusterServerless `pulumi:"serverless"` } @@ -177,7 +176,9 @@ type ClusterArgs struct { // Name of the cluster. Name pulumi.StringInput // The ID of the cluster's parent folder. 'root' is used for a cluster at the root level. - ParentId pulumi.StringPtrInput + ParentId pulumi.StringPtrInput + // Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. + Plan pulumi.StringPtrInput Regions ClusterRegionArrayInput Serverless ClusterServerlessPtrInput } @@ -279,10 +280,6 @@ func (o ClusterOutput) CloudProvider() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.CloudProvider }).(pulumi.StringOutput) } -func (o ClusterOutput) ClusterId() pulumi.StringOutput { - return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ClusterId }).(pulumi.StringOutput) -} - // Major version of CockroachDB running on the cluster. func (o ClusterOutput) CockroachVersion() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.CockroachVersion }).(pulumi.StringOutput) @@ -318,7 +315,7 @@ func (o ClusterOutput) ParentId() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.ParentId }).(pulumi.StringOutput) } -// Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. +// Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. func (o ClusterOutput) Plan() pulumi.StringOutput { return o.ApplyT(func(v *Cluster) pulumi.StringOutput { return v.Plan }).(pulumi.StringOutput) } diff --git a/sdk/go/cockroach/logExportConfig.go b/sdk/go/cockroach/logExportConfig.go index 2a1424c..219ea5f 100644 --- a/sdk/go/cockroach/logExportConfig.go +++ b/sdk/go/cockroach/logExportConfig.go @@ -35,7 +35,7 @@ type LogExportConfig struct { // Encodes the possible states that a log export configuration can be in as it is created, deployed, and disabled. Status pulumi.StringOutput `pulumi:"status"` // The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - // GCP_CLOUD_LOGGING + // GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS Type pulumi.StringOutput `pulumi:"type"` // Indicates when the log export configuration was last updated. UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` @@ -105,7 +105,7 @@ type logExportConfigState struct { // Encodes the possible states that a log export configuration can be in as it is created, deployed, and disabled. Status *string `pulumi:"status"` // The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - // GCP_CLOUD_LOGGING + // GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS Type *string `pulumi:"type"` // Indicates when the log export configuration was last updated. UpdatedAt *string `pulumi:"updatedAt"` @@ -134,7 +134,7 @@ type LogExportConfigState struct { // Encodes the possible states that a log export configuration can be in as it is created, deployed, and disabled. Status pulumi.StringPtrInput // The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - // GCP_CLOUD_LOGGING + // GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS Type pulumi.StringPtrInput // Indicates when the log export configuration was last updated. UpdatedAt pulumi.StringPtrInput @@ -163,7 +163,7 @@ type logExportConfigArgs struct { // Controls whether all logs are sent to a specific region in the customer sink. Region *string `pulumi:"region"` // The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - // GCP_CLOUD_LOGGING + // GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS Type string `pulumi:"type"` } @@ -184,7 +184,7 @@ type LogExportConfigArgs struct { // Controls whether all logs are sent to a specific region in the customer sink. Region pulumi.StringPtrInput // The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - // GCP_CLOUD_LOGGING + // GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS Type pulumi.StringInput } @@ -321,7 +321,7 @@ func (o LogExportConfigOutput) Status() pulumi.StringOutput { } // The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * -// GCP_CLOUD_LOGGING +// GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS func (o LogExportConfigOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v *LogExportConfig) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) } diff --git a/sdk/go/cockroach/privateEndpointServices.go b/sdk/go/cockroach/privateEndpointServices.go index a859d0e..0f05a34 100644 --- a/sdk/go/cockroach/privateEndpointServices.go +++ b/sdk/go/cockroach/privateEndpointServices.go @@ -55,6 +55,8 @@ type PrivateEndpointServices struct { ClusterId pulumi.StringOutput `pulumi:"clusterId"` Services PrivateEndpointServicesServiceArrayOutput `pulumi:"services"` + // a map of services keyed by the region name + ServicesMap PrivateEndpointServicesServicesMapMapOutput `pulumi:"servicesMap"` } // NewPrivateEndpointServices registers a new resource with the given unique name, arguments, and options. @@ -92,11 +94,15 @@ func GetPrivateEndpointServices(ctx *pulumi.Context, type privateEndpointServicesState struct { ClusterId *string `pulumi:"clusterId"` Services []PrivateEndpointServicesService `pulumi:"services"` + // a map of services keyed by the region name + ServicesMap map[string]PrivateEndpointServicesServicesMap `pulumi:"servicesMap"` } type PrivateEndpointServicesState struct { ClusterId pulumi.StringPtrInput Services PrivateEndpointServicesServiceArrayInput + // a map of services keyed by the region name + ServicesMap PrivateEndpointServicesServicesMapMapInput } func (PrivateEndpointServicesState) ElementType() reflect.Type { @@ -207,6 +213,11 @@ func (o PrivateEndpointServicesOutput) Services() PrivateEndpointServicesService return o.ApplyT(func(v *PrivateEndpointServices) PrivateEndpointServicesServiceArrayOutput { return v.Services }).(PrivateEndpointServicesServiceArrayOutput) } +// a map of services keyed by the region name +func (o PrivateEndpointServicesOutput) ServicesMap() PrivateEndpointServicesServicesMapMapOutput { + return o.ApplyT(func(v *PrivateEndpointServices) PrivateEndpointServicesServicesMapMapOutput { return v.ServicesMap }).(PrivateEndpointServicesServicesMapMapOutput) +} + type PrivateEndpointServicesArrayOutput struct{ *pulumi.OutputState } func (PrivateEndpointServicesArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/cockroach/pulumiTypes.go b/sdk/go/cockroach/pulumiTypes.go index bf1b8ed..c5af96c 100644 --- a/sdk/go/cockroach/pulumiTypes.go +++ b/sdk/go/cockroach/pulumiTypes.go @@ -367,7 +367,7 @@ type ClusterRegion struct { Name string `pulumi:"name"` // Number of nodes in the region. Will always be 0 for serverless clusters. NodeCount *int `pulumi:"nodeCount"` - // Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + // Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. Primary *bool `pulumi:"primary"` // DNS name of the cluster's SQL interface. Used to connect to the cluster with IP allowlisting. SqlDns *string `pulumi:"sqlDns"` @@ -393,7 +393,7 @@ type ClusterRegionArgs struct { Name pulumi.StringInput `pulumi:"name"` // Number of nodes in the region. Will always be 0 for serverless clusters. NodeCount pulumi.IntPtrInput `pulumi:"nodeCount"` - // Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + // Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. Primary pulumi.BoolPtrInput `pulumi:"primary"` // DNS name of the cluster's SQL interface. Used to connect to the cluster with IP allowlisting. SqlDns pulumi.StringPtrInput `pulumi:"sqlDns"` @@ -467,7 +467,7 @@ func (o ClusterRegionOutput) NodeCount() pulumi.IntPtrOutput { return o.ApplyT(func(v ClusterRegion) *int { return v.NodeCount }).(pulumi.IntPtrOutput) } -// Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. +// Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. func (o ClusterRegionOutput) Primary() pulumi.BoolPtrOutput { return o.ApplyT(func(v ClusterRegion) *bool { return v.Primary }).(pulumi.BoolPtrOutput) } @@ -506,7 +506,13 @@ type ClusterServerless struct { // Cluster identifier in a connection string. RoutingId *string `pulumi:"routingId"` // Spend limit in US cents. - SpendLimit *int `pulumi:"spendLimit"` + // + // Deprecated: The `spendLimit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead. + SpendLimit *int `pulumi:"spendLimit"` + // Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + // * MANUAL + // * AUTOMATIC + UpgradeType *string `pulumi:"upgradeType"` UsageLimits *ClusterServerlessUsageLimits `pulumi:"usageLimits"` } @@ -525,7 +531,13 @@ type ClusterServerlessArgs struct { // Cluster identifier in a connection string. RoutingId pulumi.StringPtrInput `pulumi:"routingId"` // Spend limit in US cents. - SpendLimit pulumi.IntPtrInput `pulumi:"spendLimit"` + // + // Deprecated: The `spendLimit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead. + SpendLimit pulumi.IntPtrInput `pulumi:"spendLimit"` + // Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + // * MANUAL + // * AUTOMATIC + UpgradeType pulumi.StringPtrInput `pulumi:"upgradeType"` UsageLimits ClusterServerlessUsageLimitsPtrInput `pulumi:"usageLimits"` } @@ -612,10 +624,19 @@ func (o ClusterServerlessOutput) RoutingId() pulumi.StringPtrOutput { } // Spend limit in US cents. +// +// Deprecated: The `spendLimit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead. func (o ClusterServerlessOutput) SpendLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v ClusterServerless) *int { return v.SpendLimit }).(pulumi.IntPtrOutput) } +// Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: +// - MANUAL +// - AUTOMATIC +func (o ClusterServerlessOutput) UpgradeType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ClusterServerless) *string { return v.UpgradeType }).(pulumi.StringPtrOutput) +} + func (o ClusterServerlessOutput) UsageLimits() ClusterServerlessUsageLimitsPtrOutput { return o.ApplyT(func(v ClusterServerless) *ClusterServerlessUsageLimits { return v.UsageLimits }).(ClusterServerlessUsageLimitsPtrOutput) } @@ -655,6 +676,8 @@ func (o ClusterServerlessPtrOutput) RoutingId() pulumi.StringPtrOutput { } // Spend limit in US cents. +// +// Deprecated: The `spendLimit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead. func (o ClusterServerlessPtrOutput) SpendLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v *ClusterServerless) *int { if v == nil { @@ -664,6 +687,18 @@ func (o ClusterServerlessPtrOutput) SpendLimit() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: +// - MANUAL +// - AUTOMATIC +func (o ClusterServerlessPtrOutput) UpgradeType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ClusterServerless) *string { + if v == nil { + return nil + } + return v.UpgradeType + }).(pulumi.StringPtrOutput) +} + func (o ClusterServerlessPtrOutput) UsageLimits() ClusterServerlessUsageLimitsPtrOutput { return o.ApplyT(func(v *ClusterServerless) *ClusterServerlessUsageLimits { if v == nil { @@ -674,10 +709,12 @@ func (o ClusterServerlessPtrOutput) UsageLimits() ClusterServerlessUsageLimitsPt } type ClusterServerlessUsageLimits struct { + // Maximum number of vCPUs that the cluster can use. + ProvisionedVirtualCpus *int `pulumi:"provisionedVirtualCpus"` // Maximum number of Request Units that the cluster can consume during the month. - RequestUnitLimit int `pulumi:"requestUnitLimit"` + RequestUnitLimit *int `pulumi:"requestUnitLimit"` // Maximum amount of storage (in MiB) that the cluster can have at any time during the month. - StorageMibLimit int `pulumi:"storageMibLimit"` + StorageMibLimit *int `pulumi:"storageMibLimit"` } // ClusterServerlessUsageLimitsInput is an input type that accepts ClusterServerlessUsageLimitsArgs and ClusterServerlessUsageLimitsOutput values. @@ -692,10 +729,12 @@ type ClusterServerlessUsageLimitsInput interface { } type ClusterServerlessUsageLimitsArgs struct { + // Maximum number of vCPUs that the cluster can use. + ProvisionedVirtualCpus pulumi.IntPtrInput `pulumi:"provisionedVirtualCpus"` // Maximum number of Request Units that the cluster can consume during the month. - RequestUnitLimit pulumi.IntInput `pulumi:"requestUnitLimit"` + RequestUnitLimit pulumi.IntPtrInput `pulumi:"requestUnitLimit"` // Maximum amount of storage (in MiB) that the cluster can have at any time during the month. - StorageMibLimit pulumi.IntInput `pulumi:"storageMibLimit"` + StorageMibLimit pulumi.IntPtrInput `pulumi:"storageMibLimit"` } func (ClusterServerlessUsageLimitsArgs) ElementType() reflect.Type { @@ -775,14 +814,19 @@ func (o ClusterServerlessUsageLimitsOutput) ToClusterServerlessUsageLimitsPtrOut }).(ClusterServerlessUsageLimitsPtrOutput) } +// Maximum number of vCPUs that the cluster can use. +func (o ClusterServerlessUsageLimitsOutput) ProvisionedVirtualCpus() pulumi.IntPtrOutput { + return o.ApplyT(func(v ClusterServerlessUsageLimits) *int { return v.ProvisionedVirtualCpus }).(pulumi.IntPtrOutput) +} + // Maximum number of Request Units that the cluster can consume during the month. -func (o ClusterServerlessUsageLimitsOutput) RequestUnitLimit() pulumi.IntOutput { - return o.ApplyT(func(v ClusterServerlessUsageLimits) int { return v.RequestUnitLimit }).(pulumi.IntOutput) +func (o ClusterServerlessUsageLimitsOutput) RequestUnitLimit() pulumi.IntPtrOutput { + return o.ApplyT(func(v ClusterServerlessUsageLimits) *int { return v.RequestUnitLimit }).(pulumi.IntPtrOutput) } // Maximum amount of storage (in MiB) that the cluster can have at any time during the month. -func (o ClusterServerlessUsageLimitsOutput) StorageMibLimit() pulumi.IntOutput { - return o.ApplyT(func(v ClusterServerlessUsageLimits) int { return v.StorageMibLimit }).(pulumi.IntOutput) +func (o ClusterServerlessUsageLimitsOutput) StorageMibLimit() pulumi.IntPtrOutput { + return o.ApplyT(func(v ClusterServerlessUsageLimits) *int { return v.StorageMibLimit }).(pulumi.IntPtrOutput) } type ClusterServerlessUsageLimitsPtrOutput struct{ *pulumi.OutputState } @@ -809,13 +853,23 @@ func (o ClusterServerlessUsageLimitsPtrOutput) Elem() ClusterServerlessUsageLimi }).(ClusterServerlessUsageLimitsOutput) } +// Maximum number of vCPUs that the cluster can use. +func (o ClusterServerlessUsageLimitsPtrOutput) ProvisionedVirtualCpus() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ClusterServerlessUsageLimits) *int { + if v == nil { + return nil + } + return v.ProvisionedVirtualCpus + }).(pulumi.IntPtrOutput) +} + // Maximum number of Request Units that the cluster can consume during the month. func (o ClusterServerlessUsageLimitsPtrOutput) RequestUnitLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v *ClusterServerlessUsageLimits) *int { if v == nil { return nil } - return &v.RequestUnitLimit + return v.RequestUnitLimit }).(pulumi.IntPtrOutput) } @@ -825,7 +879,7 @@ func (o ClusterServerlessUsageLimitsPtrOutput) StorageMibLimit() pulumi.IntPtrOu if v == nil { return nil } - return &v.StorageMibLimit + return v.StorageMibLimit }).(pulumi.IntPtrOutput) } @@ -836,7 +890,7 @@ type CmekAdditionalRegion struct { Name string `pulumi:"name"` // Number of nodes in the region. Will always be 0 for serverless clusters. NodeCount *int `pulumi:"nodeCount"` - // Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + // Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. Primary *bool `pulumi:"primary"` // DNS name of the cluster's SQL interface. Used to connect to the cluster with IP allowlisting. SqlDns *string `pulumi:"sqlDns"` @@ -862,7 +916,7 @@ type CmekAdditionalRegionArgs struct { Name pulumi.StringInput `pulumi:"name"` // Number of nodes in the region. Will always be 0 for serverless clusters. NodeCount pulumi.IntPtrInput `pulumi:"nodeCount"` - // Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + // Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. Primary pulumi.BoolPtrInput `pulumi:"primary"` // DNS name of the cluster's SQL interface. Used to connect to the cluster with IP allowlisting. SqlDns pulumi.StringPtrInput `pulumi:"sqlDns"` @@ -936,7 +990,7 @@ func (o CmekAdditionalRegionOutput) NodeCount() pulumi.IntPtrOutput { return o.ApplyT(func(v CmekAdditionalRegion) *int { return v.NodeCount }).(pulumi.IntPtrOutput) } -// Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. +// Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. func (o CmekAdditionalRegionOutput) Primary() pulumi.BoolPtrOutput { return o.ApplyT(func(v CmekAdditionalRegion) *bool { return v.Primary }).(pulumi.BoolPtrOutput) } @@ -1648,6 +1702,332 @@ func (o PrivateEndpointServicesServiceAwsPtrOutput) ServiceName() pulumi.StringP }).(pulumi.StringPtrOutput) } +type PrivateEndpointServicesServicesMap struct { + // Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + AvailabilityZoneIds []string `pulumi:"availabilityZoneIds"` + // Deprecated: nested aws fields have been moved one level up. These fields will be removed in a future version + Aws *PrivateEndpointServicesServicesMapAws `pulumi:"aws"` + // Cloud provider associated with this service. + CloudProvider *string `pulumi:"cloudProvider"` + // Server side ID of the private endpoint connection. + EndpointServiceId *string `pulumi:"endpointServiceId"` + // Name of the endpoint service. + Name *string `pulumi:"name"` + // Cloud provider region code associated with this service. + RegionName *string `pulumi:"regionName"` + // Operation status of the service. + Status *string `pulumi:"status"` +} + +// PrivateEndpointServicesServicesMapInput is an input type that accepts PrivateEndpointServicesServicesMap and PrivateEndpointServicesServicesMapOutput values. +// You can construct a concrete instance of `PrivateEndpointServicesServicesMapInput` via: +// +// PrivateEndpointServicesServicesMap{ "key": PrivateEndpointServicesServicesArgs{...} } +type PrivateEndpointServicesServicesMapInput interface { + pulumi.Input + + ToPrivateEndpointServicesServicesMapOutput() PrivateEndpointServicesServicesMapOutput + ToPrivateEndpointServicesServicesMapOutputWithContext(context.Context) PrivateEndpointServicesServicesMapOutput +} + +type PrivateEndpointServicesServicesMapArgs struct { + // Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + AvailabilityZoneIds pulumi.StringArrayInput `pulumi:"availabilityZoneIds"` + // Deprecated: nested aws fields have been moved one level up. These fields will be removed in a future version + Aws PrivateEndpointServicesServicesMapAwsPtrInput `pulumi:"aws"` + // Cloud provider associated with this service. + CloudProvider pulumi.StringPtrInput `pulumi:"cloudProvider"` + // Server side ID of the private endpoint connection. + EndpointServiceId pulumi.StringPtrInput `pulumi:"endpointServiceId"` + // Name of the endpoint service. + Name pulumi.StringPtrInput `pulumi:"name"` + // Cloud provider region code associated with this service. + RegionName pulumi.StringPtrInput `pulumi:"regionName"` + // Operation status of the service. + Status pulumi.StringPtrInput `pulumi:"status"` +} + +func (PrivateEndpointServicesServicesMapArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateEndpointServicesServicesMap)(nil)).Elem() +} + +func (i PrivateEndpointServicesServicesMapArgs) ToPrivateEndpointServicesServicesMapOutput() PrivateEndpointServicesServicesMapOutput { + return i.ToPrivateEndpointServicesServicesMapOutputWithContext(context.Background()) +} + +func (i PrivateEndpointServicesServicesMapArgs) ToPrivateEndpointServicesServicesMapOutputWithContext(ctx context.Context) PrivateEndpointServicesServicesMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateEndpointServicesServicesMapOutput) +} + +// PrivateEndpointServicesServicesMapMapInput is an input type that accepts PrivateEndpointServicesServicesMapMap and PrivateEndpointServicesServicesMapMapOutput values. +// You can construct a concrete instance of `PrivateEndpointServicesServicesMapMapInput` via: +// +// PrivateEndpointServicesServicesMapMap{ "key": PrivateEndpointServicesServicesMapArgs{...} } +type PrivateEndpointServicesServicesMapMapInput interface { + pulumi.Input + + ToPrivateEndpointServicesServicesMapMapOutput() PrivateEndpointServicesServicesMapMapOutput + ToPrivateEndpointServicesServicesMapMapOutputWithContext(context.Context) PrivateEndpointServicesServicesMapMapOutput +} + +type PrivateEndpointServicesServicesMapMap map[string]PrivateEndpointServicesServicesMapInput + +func (PrivateEndpointServicesServicesMapMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]PrivateEndpointServicesServicesMap)(nil)).Elem() +} + +func (i PrivateEndpointServicesServicesMapMap) ToPrivateEndpointServicesServicesMapMapOutput() PrivateEndpointServicesServicesMapMapOutput { + return i.ToPrivateEndpointServicesServicesMapMapOutputWithContext(context.Background()) +} + +func (i PrivateEndpointServicesServicesMapMap) ToPrivateEndpointServicesServicesMapMapOutputWithContext(ctx context.Context) PrivateEndpointServicesServicesMapMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateEndpointServicesServicesMapMapOutput) +} + +type PrivateEndpointServicesServicesMapOutput struct{ *pulumi.OutputState } + +func (PrivateEndpointServicesServicesMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateEndpointServicesServicesMap)(nil)).Elem() +} + +func (o PrivateEndpointServicesServicesMapOutput) ToPrivateEndpointServicesServicesMapOutput() PrivateEndpointServicesServicesMapOutput { + return o +} + +func (o PrivateEndpointServicesServicesMapOutput) ToPrivateEndpointServicesServicesMapOutputWithContext(ctx context.Context) PrivateEndpointServicesServicesMapOutput { + return o +} + +// Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. +func (o PrivateEndpointServicesServicesMapOutput) AvailabilityZoneIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v PrivateEndpointServicesServicesMap) []string { return v.AvailabilityZoneIds }).(pulumi.StringArrayOutput) +} + +// Deprecated: nested aws fields have been moved one level up. These fields will be removed in a future version +func (o PrivateEndpointServicesServicesMapOutput) Aws() PrivateEndpointServicesServicesMapAwsPtrOutput { + return o.ApplyT(func(v PrivateEndpointServicesServicesMap) *PrivateEndpointServicesServicesMapAws { return v.Aws }).(PrivateEndpointServicesServicesMapAwsPtrOutput) +} + +// Cloud provider associated with this service. +func (o PrivateEndpointServicesServicesMapOutput) CloudProvider() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointServicesServicesMap) *string { return v.CloudProvider }).(pulumi.StringPtrOutput) +} + +// Server side ID of the private endpoint connection. +func (o PrivateEndpointServicesServicesMapOutput) EndpointServiceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointServicesServicesMap) *string { return v.EndpointServiceId }).(pulumi.StringPtrOutput) +} + +// Name of the endpoint service. +func (o PrivateEndpointServicesServicesMapOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointServicesServicesMap) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Cloud provider region code associated with this service. +func (o PrivateEndpointServicesServicesMapOutput) RegionName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointServicesServicesMap) *string { return v.RegionName }).(pulumi.StringPtrOutput) +} + +// Operation status of the service. +func (o PrivateEndpointServicesServicesMapOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointServicesServicesMap) *string { return v.Status }).(pulumi.StringPtrOutput) +} + +type PrivateEndpointServicesServicesMapMapOutput struct{ *pulumi.OutputState } + +func (PrivateEndpointServicesServicesMapMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]PrivateEndpointServicesServicesMap)(nil)).Elem() +} + +func (o PrivateEndpointServicesServicesMapMapOutput) ToPrivateEndpointServicesServicesMapMapOutput() PrivateEndpointServicesServicesMapMapOutput { + return o +} + +func (o PrivateEndpointServicesServicesMapMapOutput) ToPrivateEndpointServicesServicesMapMapOutputWithContext(ctx context.Context) PrivateEndpointServicesServicesMapMapOutput { + return o +} + +func (o PrivateEndpointServicesServicesMapMapOutput) MapIndex(k pulumi.StringInput) PrivateEndpointServicesServicesMapOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) PrivateEndpointServicesServicesMap { + return vs[0].(map[string]PrivateEndpointServicesServicesMap)[vs[1].(string)] + }).(PrivateEndpointServicesServicesMapOutput) +} + +type PrivateEndpointServicesServicesMapAws struct { + // AZ IDs users should create their VPCs in to minimize their cost. + AvailabilityZoneIds []string `pulumi:"availabilityZoneIds"` + // Server side ID of the PrivateLink connection. + ServiceId *string `pulumi:"serviceId"` + // AWS service name used to create endpoints. + ServiceName *string `pulumi:"serviceName"` +} + +// PrivateEndpointServicesServicesMapAwsInput is an input type that accepts PrivateEndpointServicesServicesMapAwsArgs and PrivateEndpointServicesServicesMapAwsOutput values. +// You can construct a concrete instance of `PrivateEndpointServicesServicesMapAwsInput` via: +// +// PrivateEndpointServicesServicesMapAwsArgs{...} +type PrivateEndpointServicesServicesMapAwsInput interface { + pulumi.Input + + ToPrivateEndpointServicesServicesMapAwsOutput() PrivateEndpointServicesServicesMapAwsOutput + ToPrivateEndpointServicesServicesMapAwsOutputWithContext(context.Context) PrivateEndpointServicesServicesMapAwsOutput +} + +type PrivateEndpointServicesServicesMapAwsArgs struct { + // AZ IDs users should create their VPCs in to minimize their cost. + AvailabilityZoneIds pulumi.StringArrayInput `pulumi:"availabilityZoneIds"` + // Server side ID of the PrivateLink connection. + ServiceId pulumi.StringPtrInput `pulumi:"serviceId"` + // AWS service name used to create endpoints. + ServiceName pulumi.StringPtrInput `pulumi:"serviceName"` +} + +func (PrivateEndpointServicesServicesMapAwsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateEndpointServicesServicesMapAws)(nil)).Elem() +} + +func (i PrivateEndpointServicesServicesMapAwsArgs) ToPrivateEndpointServicesServicesMapAwsOutput() PrivateEndpointServicesServicesMapAwsOutput { + return i.ToPrivateEndpointServicesServicesMapAwsOutputWithContext(context.Background()) +} + +func (i PrivateEndpointServicesServicesMapAwsArgs) ToPrivateEndpointServicesServicesMapAwsOutputWithContext(ctx context.Context) PrivateEndpointServicesServicesMapAwsOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateEndpointServicesServicesMapAwsOutput) +} + +func (i PrivateEndpointServicesServicesMapAwsArgs) ToPrivateEndpointServicesServicesMapAwsPtrOutput() PrivateEndpointServicesServicesMapAwsPtrOutput { + return i.ToPrivateEndpointServicesServicesMapAwsPtrOutputWithContext(context.Background()) +} + +func (i PrivateEndpointServicesServicesMapAwsArgs) ToPrivateEndpointServicesServicesMapAwsPtrOutputWithContext(ctx context.Context) PrivateEndpointServicesServicesMapAwsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateEndpointServicesServicesMapAwsOutput).ToPrivateEndpointServicesServicesMapAwsPtrOutputWithContext(ctx) +} + +// PrivateEndpointServicesServicesMapAwsPtrInput is an input type that accepts PrivateEndpointServicesServicesMapAwsArgs, PrivateEndpointServicesServicesMapAwsPtr and PrivateEndpointServicesServicesMapAwsPtrOutput values. +// You can construct a concrete instance of `PrivateEndpointServicesServicesMapAwsPtrInput` via: +// +// PrivateEndpointServicesServicesMapAwsArgs{...} +// +// or: +// +// nil +type PrivateEndpointServicesServicesMapAwsPtrInput interface { + pulumi.Input + + ToPrivateEndpointServicesServicesMapAwsPtrOutput() PrivateEndpointServicesServicesMapAwsPtrOutput + ToPrivateEndpointServicesServicesMapAwsPtrOutputWithContext(context.Context) PrivateEndpointServicesServicesMapAwsPtrOutput +} + +type privateEndpointServicesServicesMapAwsPtrType PrivateEndpointServicesServicesMapAwsArgs + +func PrivateEndpointServicesServicesMapAwsPtr(v *PrivateEndpointServicesServicesMapAwsArgs) PrivateEndpointServicesServicesMapAwsPtrInput { + return (*privateEndpointServicesServicesMapAwsPtrType)(v) +} + +func (*privateEndpointServicesServicesMapAwsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateEndpointServicesServicesMapAws)(nil)).Elem() +} + +func (i *privateEndpointServicesServicesMapAwsPtrType) ToPrivateEndpointServicesServicesMapAwsPtrOutput() PrivateEndpointServicesServicesMapAwsPtrOutput { + return i.ToPrivateEndpointServicesServicesMapAwsPtrOutputWithContext(context.Background()) +} + +func (i *privateEndpointServicesServicesMapAwsPtrType) ToPrivateEndpointServicesServicesMapAwsPtrOutputWithContext(ctx context.Context) PrivateEndpointServicesServicesMapAwsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PrivateEndpointServicesServicesMapAwsPtrOutput) +} + +type PrivateEndpointServicesServicesMapAwsOutput struct{ *pulumi.OutputState } + +func (PrivateEndpointServicesServicesMapAwsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PrivateEndpointServicesServicesMapAws)(nil)).Elem() +} + +func (o PrivateEndpointServicesServicesMapAwsOutput) ToPrivateEndpointServicesServicesMapAwsOutput() PrivateEndpointServicesServicesMapAwsOutput { + return o +} + +func (o PrivateEndpointServicesServicesMapAwsOutput) ToPrivateEndpointServicesServicesMapAwsOutputWithContext(ctx context.Context) PrivateEndpointServicesServicesMapAwsOutput { + return o +} + +func (o PrivateEndpointServicesServicesMapAwsOutput) ToPrivateEndpointServicesServicesMapAwsPtrOutput() PrivateEndpointServicesServicesMapAwsPtrOutput { + return o.ToPrivateEndpointServicesServicesMapAwsPtrOutputWithContext(context.Background()) +} + +func (o PrivateEndpointServicesServicesMapAwsOutput) ToPrivateEndpointServicesServicesMapAwsPtrOutputWithContext(ctx context.Context) PrivateEndpointServicesServicesMapAwsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PrivateEndpointServicesServicesMapAws) *PrivateEndpointServicesServicesMapAws { + return &v + }).(PrivateEndpointServicesServicesMapAwsPtrOutput) +} + +// AZ IDs users should create their VPCs in to minimize their cost. +func (o PrivateEndpointServicesServicesMapAwsOutput) AvailabilityZoneIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v PrivateEndpointServicesServicesMapAws) []string { return v.AvailabilityZoneIds }).(pulumi.StringArrayOutput) +} + +// Server side ID of the PrivateLink connection. +func (o PrivateEndpointServicesServicesMapAwsOutput) ServiceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointServicesServicesMapAws) *string { return v.ServiceId }).(pulumi.StringPtrOutput) +} + +// AWS service name used to create endpoints. +func (o PrivateEndpointServicesServicesMapAwsOutput) ServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PrivateEndpointServicesServicesMapAws) *string { return v.ServiceName }).(pulumi.StringPtrOutput) +} + +type PrivateEndpointServicesServicesMapAwsPtrOutput struct{ *pulumi.OutputState } + +func (PrivateEndpointServicesServicesMapAwsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PrivateEndpointServicesServicesMapAws)(nil)).Elem() +} + +func (o PrivateEndpointServicesServicesMapAwsPtrOutput) ToPrivateEndpointServicesServicesMapAwsPtrOutput() PrivateEndpointServicesServicesMapAwsPtrOutput { + return o +} + +func (o PrivateEndpointServicesServicesMapAwsPtrOutput) ToPrivateEndpointServicesServicesMapAwsPtrOutputWithContext(ctx context.Context) PrivateEndpointServicesServicesMapAwsPtrOutput { + return o +} + +func (o PrivateEndpointServicesServicesMapAwsPtrOutput) Elem() PrivateEndpointServicesServicesMapAwsOutput { + return o.ApplyT(func(v *PrivateEndpointServicesServicesMapAws) PrivateEndpointServicesServicesMapAws { + if v != nil { + return *v + } + var ret PrivateEndpointServicesServicesMapAws + return ret + }).(PrivateEndpointServicesServicesMapAwsOutput) +} + +// AZ IDs users should create their VPCs in to minimize their cost. +func (o PrivateEndpointServicesServicesMapAwsPtrOutput) AvailabilityZoneIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PrivateEndpointServicesServicesMapAws) []string { + if v == nil { + return nil + } + return v.AvailabilityZoneIds + }).(pulumi.StringArrayOutput) +} + +// Server side ID of the PrivateLink connection. +func (o PrivateEndpointServicesServicesMapAwsPtrOutput) ServiceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateEndpointServicesServicesMapAws) *string { + if v == nil { + return nil + } + return v.ServiceId + }).(pulumi.StringPtrOutput) +} + +// AWS service name used to create endpoints. +func (o PrivateEndpointServicesServicesMapAwsPtrOutput) ServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PrivateEndpointServicesServicesMapAws) *string { + if v == nil { + return nil + } + return v.ServiceName + }).(pulumi.StringPtrOutput) +} + type UserRoleGrantRole struct { // ID of the resource. Required if the resourceType is 'FOLDER' or 'CLUSTER'. It should be omitted otherwise. ResourceId *string `pulumi:"resourceId"` @@ -2265,7 +2645,11 @@ type GetCockroachClusterServerless struct { // Cluster identifier in a connection string. RoutingId string `pulumi:"routingId"` // Spend limit in US cents. - SpendLimit int `pulumi:"spendLimit"` + // + // Deprecated: The `spendLimit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead. + SpendLimit int `pulumi:"spendLimit"` + // Dictates the behavior of cockroach major version upgrades. + UpgradeType string `pulumi:"upgradeType"` UsageLimits GetCockroachClusterServerlessUsageLimits `pulumi:"usageLimits"` } @@ -2284,7 +2668,11 @@ type GetCockroachClusterServerlessArgs struct { // Cluster identifier in a connection string. RoutingId pulumi.StringInput `pulumi:"routingId"` // Spend limit in US cents. - SpendLimit pulumi.IntInput `pulumi:"spendLimit"` + // + // Deprecated: The `spendLimit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead. + SpendLimit pulumi.IntInput `pulumi:"spendLimit"` + // Dictates the behavior of cockroach major version upgrades. + UpgradeType pulumi.StringInput `pulumi:"upgradeType"` UsageLimits GetCockroachClusterServerlessUsageLimitsInput `pulumi:"usageLimits"` } @@ -2320,15 +2708,24 @@ func (o GetCockroachClusterServerlessOutput) RoutingId() pulumi.StringOutput { } // Spend limit in US cents. +// +// Deprecated: The `spendLimit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead. func (o GetCockroachClusterServerlessOutput) SpendLimit() pulumi.IntOutput { return o.ApplyT(func(v GetCockroachClusterServerless) int { return v.SpendLimit }).(pulumi.IntOutput) } +// Dictates the behavior of cockroach major version upgrades. +func (o GetCockroachClusterServerlessOutput) UpgradeType() pulumi.StringOutput { + return o.ApplyT(func(v GetCockroachClusterServerless) string { return v.UpgradeType }).(pulumi.StringOutput) +} + func (o GetCockroachClusterServerlessOutput) UsageLimits() GetCockroachClusterServerlessUsageLimitsOutput { return o.ApplyT(func(v GetCockroachClusterServerless) GetCockroachClusterServerlessUsageLimits { return v.UsageLimits }).(GetCockroachClusterServerlessUsageLimitsOutput) } type GetCockroachClusterServerlessUsageLimits struct { + // Maximum number of vCPUs that the cluster can use. + ProvisionedVirtualCpus int `pulumi:"provisionedVirtualCpus"` // Maximum number of Request Units that the cluster can consume during the month. RequestUnitLimit int `pulumi:"requestUnitLimit"` // Maximum amount of storage (in MiB) that the cluster can have at any time during the month. @@ -2347,6 +2744,8 @@ type GetCockroachClusterServerlessUsageLimitsInput interface { } type GetCockroachClusterServerlessUsageLimitsArgs struct { + // Maximum number of vCPUs that the cluster can use. + ProvisionedVirtualCpus pulumi.IntInput `pulumi:"provisionedVirtualCpus"` // Maximum number of Request Units that the cluster can consume during the month. RequestUnitLimit pulumi.IntInput `pulumi:"requestUnitLimit"` // Maximum amount of storage (in MiB) that the cluster can have at any time during the month. @@ -2379,6 +2778,11 @@ func (o GetCockroachClusterServerlessUsageLimitsOutput) ToGetCockroachClusterSer return o } +// Maximum number of vCPUs that the cluster can use. +func (o GetCockroachClusterServerlessUsageLimitsOutput) ProvisionedVirtualCpus() pulumi.IntOutput { + return o.ApplyT(func(v GetCockroachClusterServerlessUsageLimits) int { return v.ProvisionedVirtualCpus }).(pulumi.IntOutput) +} + // Maximum number of Request Units that the cluster can consume during the month. func (o GetCockroachClusterServerlessUsageLimitsOutput) RequestUnitLimit() pulumi.IntOutput { return o.ApplyT(func(v GetCockroachClusterServerlessUsageLimits) int { return v.RequestUnitLimit }).(pulumi.IntOutput) @@ -2499,6 +2903,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*PrivateEndpointServicesServiceArrayInput)(nil)).Elem(), PrivateEndpointServicesServiceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*PrivateEndpointServicesServiceAwsInput)(nil)).Elem(), PrivateEndpointServicesServiceAwsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PrivateEndpointServicesServiceAwsPtrInput)(nil)).Elem(), PrivateEndpointServicesServiceAwsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PrivateEndpointServicesServicesMapInput)(nil)).Elem(), PrivateEndpointServicesServicesMapArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PrivateEndpointServicesServicesMapMapInput)(nil)).Elem(), PrivateEndpointServicesServicesMapMap{}) + pulumi.RegisterInputType(reflect.TypeOf((*PrivateEndpointServicesServicesMapAwsInput)(nil)).Elem(), PrivateEndpointServicesServicesMapAwsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PrivateEndpointServicesServicesMapAwsPtrInput)(nil)).Elem(), PrivateEndpointServicesServicesMapAwsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserRoleGrantRoleInput)(nil)).Elem(), UserRoleGrantRoleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserRoleGrantRolePtrInput)(nil)).Elem(), UserRoleGrantRoleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*UserRoleGrantsRoleInput)(nil)).Elem(), UserRoleGrantsRoleArgs{}) @@ -2530,6 +2938,10 @@ func init() { pulumi.RegisterOutputType(PrivateEndpointServicesServiceArrayOutput{}) pulumi.RegisterOutputType(PrivateEndpointServicesServiceAwsOutput{}) pulumi.RegisterOutputType(PrivateEndpointServicesServiceAwsPtrOutput{}) + pulumi.RegisterOutputType(PrivateEndpointServicesServicesMapOutput{}) + pulumi.RegisterOutputType(PrivateEndpointServicesServicesMapMapOutput{}) + pulumi.RegisterOutputType(PrivateEndpointServicesServicesMapAwsOutput{}) + pulumi.RegisterOutputType(PrivateEndpointServicesServicesMapAwsPtrOutput{}) pulumi.RegisterOutputType(UserRoleGrantRoleOutput{}) pulumi.RegisterOutputType(UserRoleGrantRolePtrOutput{}) pulumi.RegisterOutputType(UserRoleGrantsRoleOutput{}) diff --git a/sdk/go/cockroach/userRoleGrants.go b/sdk/go/cockroach/userRoleGrants.go index f8d26f7..8fe48e8 100644 --- a/sdk/go/cockroach/userRoleGrants.go +++ b/sdk/go/cockroach/userRoleGrants.go @@ -24,6 +24,7 @@ import ( type UserRoleGrants struct { pulumi.CustomResourceState + // The list of roles to include. ORG_MEMBER must be included. Roles UserRoleGrantsRoleArrayOutput `pulumi:"roles"` // ID of the user to grant these roles to. UserId pulumi.StringOutput `pulumi:"userId"` @@ -65,12 +66,14 @@ func GetUserRoleGrants(ctx *pulumi.Context, // Input properties used for looking up and filtering UserRoleGrants resources. type userRoleGrantsState struct { + // The list of roles to include. ORG_MEMBER must be included. Roles []UserRoleGrantsRole `pulumi:"roles"` // ID of the user to grant these roles to. UserId *string `pulumi:"userId"` } type UserRoleGrantsState struct { + // The list of roles to include. ORG_MEMBER must be included. Roles UserRoleGrantsRoleArrayInput // ID of the user to grant these roles to. UserId pulumi.StringPtrInput @@ -81,6 +84,7 @@ func (UserRoleGrantsState) ElementType() reflect.Type { } type userRoleGrantsArgs struct { + // The list of roles to include. ORG_MEMBER must be included. Roles []UserRoleGrantsRole `pulumi:"roles"` // ID of the user to grant these roles to. UserId string `pulumi:"userId"` @@ -88,6 +92,7 @@ type userRoleGrantsArgs struct { // The set of arguments for constructing a UserRoleGrants resource. type UserRoleGrantsArgs struct { + // The list of roles to include. ORG_MEMBER must be included. Roles UserRoleGrantsRoleArrayInput // ID of the user to grant these roles to. UserId pulumi.StringInput @@ -180,6 +185,7 @@ func (o UserRoleGrantsOutput) ToUserRoleGrantsOutputWithContext(ctx context.Cont return o } +// The list of roles to include. ORG_MEMBER must be included. func (o UserRoleGrantsOutput) Roles() UserRoleGrantsRoleArrayOutput { return o.ApplyT(func(v *UserRoleGrants) UserRoleGrantsRoleArrayOutput { return v.Roles }).(UserRoleGrantsRoleArrayOutput) } diff --git a/sdk/nodejs/allowList.ts b/sdk/nodejs/allowList.ts index 909b608..3dfabda 100644 --- a/sdk/nodejs/allowList.ts +++ b/sdk/nodejs/allowList.ts @@ -64,14 +64,14 @@ export class AllowList extends pulumi.CustomResource { */ public readonly cidrIp!: pulumi.Output; /** - * Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + * The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. */ public readonly cidrMask!: pulumi.Output; public readonly clusterId!: pulumi.Output; /** - * Name of this allowlist entry. + * Name of this allowlist entry. If not set explicitly, this value does not sync with the server. */ - public readonly name!: pulumi.Output; + public readonly name!: pulumi.Output; /** * Set to 'true' to allow SQL connections from this CIDR range. */ @@ -138,12 +138,12 @@ export interface AllowListState { */ cidrIp?: pulumi.Input; /** - * Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + * The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. */ cidrMask?: pulumi.Input; clusterId?: pulumi.Input; /** - * Name of this allowlist entry. + * Name of this allowlist entry. If not set explicitly, this value does not sync with the server. */ name?: pulumi.Input; /** @@ -165,12 +165,12 @@ export interface AllowListArgs { */ cidrIp: pulumi.Input; /** - * Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + * The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. */ cidrMask: pulumi.Input; clusterId: pulumi.Input; /** - * Name of this allowlist entry. + * Name of this allowlist entry. If not set explicitly, this value does not sync with the server. */ name?: pulumi.Input; /** diff --git a/sdk/nodejs/cluster.ts b/sdk/nodejs/cluster.ts index 30ec692..6021fd4 100644 --- a/sdk/nodejs/cluster.ts +++ b/sdk/nodejs/cluster.ts @@ -7,7 +7,7 @@ import * as outputs from "./types/output"; import * as utilities from "./utilities"; /** - * CockroachDB Cloud cluster. Can be Dedicated or Serverless. + * CockroachDB Cloud cluster. */ export class Cluster extends pulumi.CustomResource { /** @@ -45,7 +45,6 @@ export class Cluster extends pulumi.CustomResource { * Cloud provider used to host the cluster. Allowed values are: * GCP * AWS * AZURE */ public readonly cloudProvider!: pulumi.Output; - public /*out*/ readonly clusterId!: pulumi.Output; /** * Major version of CockroachDB running on the cluster. */ @@ -73,9 +72,9 @@ export class Cluster extends pulumi.CustomResource { */ public readonly parentId!: pulumi.Output; /** - * Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. + * Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. */ - public /*out*/ readonly plan!: pulumi.Output; + public readonly plan!: pulumi.Output; public readonly regions!: pulumi.Output; public readonly serverless!: pulumi.Output; /** @@ -102,7 +101,6 @@ export class Cluster extends pulumi.CustomResource { const state = argsOrState as ClusterState | undefined; resourceInputs["accountId"] = state ? state.accountId : undefined; resourceInputs["cloudProvider"] = state ? state.cloudProvider : undefined; - resourceInputs["clusterId"] = state ? state.clusterId : undefined; resourceInputs["cockroachVersion"] = state ? state.cockroachVersion : undefined; resourceInputs["creatorId"] = state ? state.creatorId : undefined; resourceInputs["dedicated"] = state ? state.dedicated : undefined; @@ -132,13 +130,12 @@ export class Cluster extends pulumi.CustomResource { resourceInputs["deleteProtection"] = args ? args.deleteProtection : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["parentId"] = args ? args.parentId : undefined; + resourceInputs["plan"] = args ? args.plan : undefined; resourceInputs["regions"] = args ? args.regions : undefined; resourceInputs["serverless"] = args ? args.serverless : undefined; resourceInputs["accountId"] = undefined /*out*/; - resourceInputs["clusterId"] = undefined /*out*/; resourceInputs["creatorId"] = undefined /*out*/; resourceInputs["operationStatus"] = undefined /*out*/; - resourceInputs["plan"] = undefined /*out*/; resourceInputs["state"] = undefined /*out*/; resourceInputs["upgradeStatus"] = undefined /*out*/; } @@ -159,7 +156,6 @@ export interface ClusterState { * Cloud provider used to host the cluster. Allowed values are: * GCP * AWS * AZURE */ cloudProvider?: pulumi.Input; - clusterId?: pulumi.Input; /** * Major version of CockroachDB running on the cluster. */ @@ -187,7 +183,7 @@ export interface ClusterState { */ parentId?: pulumi.Input; /** - * Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. + * Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. */ plan?: pulumi.Input; regions?: pulumi.Input[]>; @@ -228,6 +224,10 @@ export interface ClusterArgs { * The ID of the cluster's parent folder. 'root' is used for a cluster at the root level. */ parentId?: pulumi.Input; + /** + * Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. + */ + plan?: pulumi.Input; regions: pulumi.Input[]>; serverless?: pulumi.Input; } diff --git a/sdk/nodejs/logExportConfig.ts b/sdk/nodejs/logExportConfig.ts index 701d76c..ccb7ab5 100644 --- a/sdk/nodejs/logExportConfig.ts +++ b/sdk/nodejs/logExportConfig.ts @@ -73,7 +73,7 @@ export class LogExportConfig extends pulumi.CustomResource { public /*out*/ readonly status!: pulumi.Output; /** * The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - * GCP_CLOUD_LOGGING + * GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS */ public readonly type!: pulumi.Output; /** @@ -183,7 +183,7 @@ export interface LogExportConfigState { status?: pulumi.Input; /** * The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - * GCP_CLOUD_LOGGING + * GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS */ type?: pulumi.Input; /** @@ -229,7 +229,7 @@ export interface LogExportConfigArgs { region?: pulumi.Input; /** * The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - * GCP_CLOUD_LOGGING + * GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS */ type: pulumi.Input; } diff --git a/sdk/nodejs/privateEndpointServices.ts b/sdk/nodejs/privateEndpointServices.ts index dbd4aa2..e05946a 100644 --- a/sdk/nodejs/privateEndpointServices.ts +++ b/sdk/nodejs/privateEndpointServices.ts @@ -58,6 +58,10 @@ export class PrivateEndpointServices extends pulumi.CustomResource { public readonly clusterId!: pulumi.Output; public /*out*/ readonly services!: pulumi.Output; + /** + * a map of services keyed by the region name + */ + public /*out*/ readonly servicesMap!: pulumi.Output<{[key: string]: outputs.PrivateEndpointServicesServicesMap}>; /** * Create a PrivateEndpointServices resource with the given unique name, arguments, and options. @@ -74,6 +78,7 @@ export class PrivateEndpointServices extends pulumi.CustomResource { const state = argsOrState as PrivateEndpointServicesState | undefined; resourceInputs["clusterId"] = state ? state.clusterId : undefined; resourceInputs["services"] = state ? state.services : undefined; + resourceInputs["servicesMap"] = state ? state.servicesMap : undefined; } else { const args = argsOrState as PrivateEndpointServicesArgs | undefined; if ((!args || args.clusterId === undefined) && !opts.urn) { @@ -81,6 +86,7 @@ export class PrivateEndpointServices extends pulumi.CustomResource { } resourceInputs["clusterId"] = args ? args.clusterId : undefined; resourceInputs["services"] = undefined /*out*/; + resourceInputs["servicesMap"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(PrivateEndpointServices.__pulumiType, name, resourceInputs, opts); @@ -93,6 +99,10 @@ export class PrivateEndpointServices extends pulumi.CustomResource { export interface PrivateEndpointServicesState { clusterId?: pulumi.Input; services?: pulumi.Input[]>; + /** + * a map of services keyed by the region name + */ + servicesMap?: pulumi.Input<{[key: string]: pulumi.Input}>; } /** diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 8d3f59d..4008451 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -61,7 +61,7 @@ export interface ClusterRegion { */ nodeCount?: pulumi.Input; /** - * Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + * Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. */ primary?: pulumi.Input; /** @@ -81,20 +81,32 @@ export interface ClusterServerless { routingId?: pulumi.Input; /** * Spend limit in US cents. + * + * @deprecated The `spendLimit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead. */ spendLimit?: pulumi.Input; + /** + * Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + * * MANUAL + * * AUTOMATIC + */ + upgradeType?: pulumi.Input; usageLimits?: pulumi.Input; } export interface ClusterServerlessUsageLimits { + /** + * Maximum number of vCPUs that the cluster can use. + */ + provisionedVirtualCpus?: pulumi.Input; /** * Maximum number of Request Units that the cluster can consume during the month. */ - requestUnitLimit: pulumi.Input; + requestUnitLimit?: pulumi.Input; /** * Maximum amount of storage (in MiB) that the cluster can have at any time during the month. */ - storageMibLimit: pulumi.Input; + storageMibLimit?: pulumi.Input; } export interface CmekAdditionalRegion { @@ -111,7 +123,7 @@ export interface CmekAdditionalRegion { */ nodeCount?: pulumi.Input; /** - * Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + * Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. */ primary?: pulumi.Input; /** @@ -235,6 +247,52 @@ export interface PrivateEndpointServicesServiceAws { serviceName?: pulumi.Input; } +export interface PrivateEndpointServicesServicesMap { + /** + * Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + */ + availabilityZoneIds?: pulumi.Input[]>; + /** + * @deprecated nested aws fields have been moved one level up. These fields will be removed in a future version + */ + aws?: pulumi.Input; + /** + * Cloud provider associated with this service. + */ + cloudProvider?: pulumi.Input; + /** + * Server side ID of the private endpoint connection. + */ + endpointServiceId?: pulumi.Input; + /** + * Name of the endpoint service. + */ + name?: pulumi.Input; + /** + * Cloud provider region code associated with this service. + */ + regionName?: pulumi.Input; + /** + * Operation status of the service. + */ + status?: pulumi.Input; +} + +export interface PrivateEndpointServicesServicesMapAws { + /** + * AZ IDs users should create their VPCs in to minimize their cost. + */ + availabilityZoneIds?: pulumi.Input[]>; + /** + * Server side ID of the PrivateLink connection. + */ + serviceId?: pulumi.Input; + /** + * AWS service name used to create endpoints. + */ + serviceName?: pulumi.Input; +} + export interface UserRoleGrantRole { /** * ID of the resource. Required if the resourceType is 'FOLDER' or 'CLUSTER'. It should be omitted otherwise. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 3117c95..8bab731 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -61,7 +61,7 @@ export interface ClusterRegion { */ nodeCount: number; /** - * Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + * Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. */ primary: boolean; /** @@ -81,20 +81,32 @@ export interface ClusterServerless { routingId: string; /** * Spend limit in US cents. + * + * @deprecated The `spendLimit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead. */ spendLimit?: number; + /** + * Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + * * MANUAL + * * AUTOMATIC + */ + upgradeType: string; usageLimits?: outputs.ClusterServerlessUsageLimits; } export interface ClusterServerlessUsageLimits { + /** + * Maximum number of vCPUs that the cluster can use. + */ + provisionedVirtualCpus?: number; /** * Maximum number of Request Units that the cluster can consume during the month. */ - requestUnitLimit: number; + requestUnitLimit?: number; /** * Maximum amount of storage (in MiB) that the cluster can have at any time during the month. */ - storageMibLimit: number; + storageMibLimit?: number; } export interface CmekAdditionalRegion { @@ -111,7 +123,7 @@ export interface CmekAdditionalRegion { */ nodeCount: number; /** - * Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + * Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. */ primary: boolean; /** @@ -231,12 +243,22 @@ export interface GetCockroachClusterServerless { routingId: string; /** * Spend limit in US cents. + * + * @deprecated The `spendLimit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead. */ spendLimit: number; + /** + * Dictates the behavior of cockroach major version upgrades. + */ + upgradeType: string; usageLimits: outputs.GetCockroachClusterServerlessUsageLimits; } export interface GetCockroachClusterServerlessUsageLimits { + /** + * Maximum number of vCPUs that the cluster can use. + */ + provisionedVirtualCpus: number; /** * Maximum number of Request Units that the cluster can consume during the month. */ @@ -335,6 +357,52 @@ export interface PrivateEndpointServicesServiceAws { serviceName: string; } +export interface PrivateEndpointServicesServicesMap { + /** + * Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + */ + availabilityZoneIds: string[]; + /** + * @deprecated nested aws fields have been moved one level up. These fields will be removed in a future version + */ + aws: outputs.PrivateEndpointServicesServicesMapAws; + /** + * Cloud provider associated with this service. + */ + cloudProvider: string; + /** + * Server side ID of the private endpoint connection. + */ + endpointServiceId: string; + /** + * Name of the endpoint service. + */ + name: string; + /** + * Cloud provider region code associated with this service. + */ + regionName: string; + /** + * Operation status of the service. + */ + status: string; +} + +export interface PrivateEndpointServicesServicesMapAws { + /** + * AZ IDs users should create their VPCs in to minimize their cost. + */ + availabilityZoneIds: string[]; + /** + * Server side ID of the PrivateLink connection. + */ + serviceId: string; + /** + * AWS service name used to create endpoints. + */ + serviceName: string; +} + export interface UserRoleGrantRole { /** * ID of the resource. Required if the resourceType is 'FOLDER' or 'CLUSTER'. It should be omitted otherwise. diff --git a/sdk/nodejs/userRoleGrants.ts b/sdk/nodejs/userRoleGrants.ts index 36f3a0b..46e5cec 100644 --- a/sdk/nodejs/userRoleGrants.ts +++ b/sdk/nodejs/userRoleGrants.ts @@ -45,6 +45,9 @@ export class UserRoleGrants extends pulumi.CustomResource { return obj['__pulumiType'] === UserRoleGrants.__pulumiType; } + /** + * The list of roles to include. ORG_MEMBER must be included. + */ public readonly roles!: pulumi.Output; /** * ID of the user to grant these roles to. @@ -86,6 +89,9 @@ export class UserRoleGrants extends pulumi.CustomResource { * Input properties used for looking up and filtering UserRoleGrants resources. */ export interface UserRoleGrantsState { + /** + * The list of roles to include. ORG_MEMBER must be included. + */ roles?: pulumi.Input[]>; /** * ID of the user to grant these roles to. @@ -97,6 +103,9 @@ export interface UserRoleGrantsState { * The set of arguments for constructing a UserRoleGrants resource. */ export interface UserRoleGrantsArgs { + /** + * The list of roles to include. ORG_MEMBER must be included. + */ roles: pulumi.Input[]>; /** * ID of the user to grant these roles to. diff --git a/sdk/python/pulumiverse_cockroach/_inputs.py b/sdk/python/pulumiverse_cockroach/_inputs.py index 29dbe6f..152a240 100644 --- a/sdk/python/pulumiverse_cockroach/_inputs.py +++ b/sdk/python/pulumiverse_cockroach/_inputs.py @@ -37,6 +37,10 @@ 'PrivateEndpointServicesServiceArgsDict', 'PrivateEndpointServicesServiceAwsArgs', 'PrivateEndpointServicesServiceAwsArgsDict', + 'PrivateEndpointServicesServicesMapArgs', + 'PrivateEndpointServicesServicesMapArgsDict', + 'PrivateEndpointServicesServicesMapAwsArgs', + 'PrivateEndpointServicesServicesMapAwsArgsDict', 'UserRoleGrantRoleArgs', 'UserRoleGrantRoleArgsDict', 'UserRoleGrantsRoleArgs', @@ -263,7 +267,7 @@ class ClusterRegionArgsDict(TypedDict): """ primary: NotRequired[pulumi.Input[bool]] """ - Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. """ sql_dns: NotRequired[pulumi.Input[str]] """ @@ -289,7 +293,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the region. Should match the region code used by the cluster's cloud provider. :param pulumi.Input[str] internal_dns: Internal DNS name of the cluster within the cloud provider's network. Used to connect to the cluster with PrivateLink or VPC peering. :param pulumi.Input[int] node_count: Number of nodes in the region. Will always be 0 for serverless clusters. - :param pulumi.Input[bool] primary: Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + :param pulumi.Input[bool] primary: Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. :param pulumi.Input[str] sql_dns: DNS name of the cluster's SQL interface. Used to connect to the cluster with IP allowlisting. :param pulumi.Input[str] ui_dns: DNS name used when connecting to the DB Console for the cluster. """ @@ -345,7 +349,7 @@ def node_count(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def primary(self) -> Optional[pulumi.Input[bool]]: """ - Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. """ return pulumi.get(self, "primary") @@ -388,6 +392,12 @@ class ClusterServerlessArgsDict(TypedDict): """ Spend limit in US cents. """ + upgrade_type: NotRequired[pulumi.Input[str]] + """ + Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + * MANUAL + * AUTOMATIC + """ usage_limits: NotRequired[pulumi.Input['ClusterServerlessUsageLimitsArgsDict']] elif False: ClusterServerlessArgsDict: TypeAlias = Mapping[str, Any] @@ -397,15 +407,24 @@ class ClusterServerlessArgs: def __init__(__self__, *, routing_id: Optional[pulumi.Input[str]] = None, spend_limit: Optional[pulumi.Input[int]] = None, + upgrade_type: Optional[pulumi.Input[str]] = None, usage_limits: Optional[pulumi.Input['ClusterServerlessUsageLimitsArgs']] = None): """ :param pulumi.Input[str] routing_id: Cluster identifier in a connection string. :param pulumi.Input[int] spend_limit: Spend limit in US cents. + :param pulumi.Input[str] upgrade_type: Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + * MANUAL + * AUTOMATIC """ if routing_id is not None: pulumi.set(__self__, "routing_id", routing_id) + if spend_limit is not None: + warnings.warn("""The `spend_limit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead.""", DeprecationWarning) + pulumi.log.warn("""spend_limit is deprecated: The `spend_limit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead.""") if spend_limit is not None: pulumi.set(__self__, "spend_limit", spend_limit) + if upgrade_type is not None: + pulumi.set(__self__, "upgrade_type", upgrade_type) if usage_limits is not None: pulumi.set(__self__, "usage_limits", usage_limits) @@ -423,6 +442,7 @@ def routing_id(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="spendLimit") + @_utilities.deprecated("""The `spend_limit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead.""") def spend_limit(self) -> Optional[pulumi.Input[int]]: """ Spend limit in US cents. @@ -433,6 +453,20 @@ def spend_limit(self) -> Optional[pulumi.Input[int]]: def spend_limit(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "spend_limit", value) + @property + @pulumi.getter(name="upgradeType") + def upgrade_type(self) -> Optional[pulumi.Input[str]]: + """ + Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + * MANUAL + * AUTOMATIC + """ + return pulumi.get(self, "upgrade_type") + + @upgrade_type.setter + def upgrade_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "upgrade_type", value) + @property @pulumi.getter(name="usageLimits") def usage_limits(self) -> Optional[pulumi.Input['ClusterServerlessUsageLimitsArgs']]: @@ -445,11 +479,15 @@ def usage_limits(self, value: Optional[pulumi.Input['ClusterServerlessUsageLimit if not MYPY: class ClusterServerlessUsageLimitsArgsDict(TypedDict): - request_unit_limit: pulumi.Input[int] + provisioned_virtual_cpus: NotRequired[pulumi.Input[int]] + """ + Maximum number of vCPUs that the cluster can use. + """ + request_unit_limit: NotRequired[pulumi.Input[int]] """ Maximum number of Request Units that the cluster can consume during the month. """ - storage_mib_limit: pulumi.Input[int] + storage_mib_limit: NotRequired[pulumi.Input[int]] """ Maximum amount of storage (in MiB) that the cluster can have at any time during the month. """ @@ -459,37 +497,55 @@ class ClusterServerlessUsageLimitsArgsDict(TypedDict): @pulumi.input_type class ClusterServerlessUsageLimitsArgs: def __init__(__self__, *, - request_unit_limit: pulumi.Input[int], - storage_mib_limit: pulumi.Input[int]): + provisioned_virtual_cpus: Optional[pulumi.Input[int]] = None, + request_unit_limit: Optional[pulumi.Input[int]] = None, + storage_mib_limit: Optional[pulumi.Input[int]] = None): """ + :param pulumi.Input[int] provisioned_virtual_cpus: Maximum number of vCPUs that the cluster can use. :param pulumi.Input[int] request_unit_limit: Maximum number of Request Units that the cluster can consume during the month. :param pulumi.Input[int] storage_mib_limit: Maximum amount of storage (in MiB) that the cluster can have at any time during the month. """ - pulumi.set(__self__, "request_unit_limit", request_unit_limit) - pulumi.set(__self__, "storage_mib_limit", storage_mib_limit) + if provisioned_virtual_cpus is not None: + pulumi.set(__self__, "provisioned_virtual_cpus", provisioned_virtual_cpus) + if request_unit_limit is not None: + pulumi.set(__self__, "request_unit_limit", request_unit_limit) + if storage_mib_limit is not None: + pulumi.set(__self__, "storage_mib_limit", storage_mib_limit) + + @property + @pulumi.getter(name="provisionedVirtualCpus") + def provisioned_virtual_cpus(self) -> Optional[pulumi.Input[int]]: + """ + Maximum number of vCPUs that the cluster can use. + """ + return pulumi.get(self, "provisioned_virtual_cpus") + + @provisioned_virtual_cpus.setter + def provisioned_virtual_cpus(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "provisioned_virtual_cpus", value) @property @pulumi.getter(name="requestUnitLimit") - def request_unit_limit(self) -> pulumi.Input[int]: + def request_unit_limit(self) -> Optional[pulumi.Input[int]]: """ Maximum number of Request Units that the cluster can consume during the month. """ return pulumi.get(self, "request_unit_limit") @request_unit_limit.setter - def request_unit_limit(self, value: pulumi.Input[int]): + def request_unit_limit(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "request_unit_limit", value) @property @pulumi.getter(name="storageMibLimit") - def storage_mib_limit(self) -> pulumi.Input[int]: + def storage_mib_limit(self) -> Optional[pulumi.Input[int]]: """ Maximum amount of storage (in MiB) that the cluster can have at any time during the month. """ return pulumi.get(self, "storage_mib_limit") @storage_mib_limit.setter - def storage_mib_limit(self, value: pulumi.Input[int]): + def storage_mib_limit(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "storage_mib_limit", value) @@ -509,7 +565,7 @@ class CmekAdditionalRegionArgsDict(TypedDict): """ primary: NotRequired[pulumi.Input[bool]] """ - Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. """ sql_dns: NotRequired[pulumi.Input[str]] """ @@ -535,7 +591,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the region. Should match the region code used by the cluster's cloud provider. :param pulumi.Input[str] internal_dns: Internal DNS name of the cluster within the cloud provider's network. Used to connect to the cluster with PrivateLink or VPC peering. :param pulumi.Input[int] node_count: Number of nodes in the region. Will always be 0 for serverless clusters. - :param pulumi.Input[bool] primary: Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + :param pulumi.Input[bool] primary: Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. :param pulumi.Input[str] sql_dns: DNS name of the cluster's SQL interface. Used to connect to the cluster with IP allowlisting. :param pulumi.Input[str] ui_dns: DNS name used when connecting to the DB Console for the cluster. """ @@ -591,7 +647,7 @@ def node_count(self, value: Optional[pulumi.Input[int]]): @pulumi.getter def primary(self) -> Optional[pulumi.Input[bool]]: """ - Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. """ return pulumi.get(self, "primary") @@ -1156,6 +1212,227 @@ def service_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "service_name", value) +if not MYPY: + class PrivateEndpointServicesServicesMapArgsDict(TypedDict): + availability_zone_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + """ + aws: NotRequired[pulumi.Input['PrivateEndpointServicesServicesMapAwsArgsDict']] + cloud_provider: NotRequired[pulumi.Input[str]] + """ + Cloud provider associated with this service. + """ + endpoint_service_id: NotRequired[pulumi.Input[str]] + """ + Server side ID of the private endpoint connection. + """ + name: NotRequired[pulumi.Input[str]] + """ + Name of the endpoint service. + """ + region_name: NotRequired[pulumi.Input[str]] + """ + Cloud provider region code associated with this service. + """ + status: NotRequired[pulumi.Input[str]] + """ + Operation status of the service. + """ +elif False: + PrivateEndpointServicesServicesMapArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PrivateEndpointServicesServicesMapArgs: + def __init__(__self__, *, + availability_zone_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + aws: Optional[pulumi.Input['PrivateEndpointServicesServicesMapAwsArgs']] = None, + cloud_provider: Optional[pulumi.Input[str]] = None, + endpoint_service_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + region_name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zone_ids: Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + :param pulumi.Input[str] cloud_provider: Cloud provider associated with this service. + :param pulumi.Input[str] endpoint_service_id: Server side ID of the private endpoint connection. + :param pulumi.Input[str] name: Name of the endpoint service. + :param pulumi.Input[str] region_name: Cloud provider region code associated with this service. + :param pulumi.Input[str] status: Operation status of the service. + """ + if availability_zone_ids is not None: + pulumi.set(__self__, "availability_zone_ids", availability_zone_ids) + if aws is not None: + warnings.warn("""nested aws fields have been moved one level up. These fields will be removed in a future version""", DeprecationWarning) + pulumi.log.warn("""aws is deprecated: nested aws fields have been moved one level up. These fields will be removed in a future version""") + if aws is not None: + pulumi.set(__self__, "aws", aws) + if cloud_provider is not None: + pulumi.set(__self__, "cloud_provider", cloud_provider) + if endpoint_service_id is not None: + pulumi.set(__self__, "endpoint_service_id", endpoint_service_id) + if name is not None: + pulumi.set(__self__, "name", name) + if region_name is not None: + pulumi.set(__self__, "region_name", region_name) + if status is not None: + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="availabilityZoneIds") + def availability_zone_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + """ + return pulumi.get(self, "availability_zone_ids") + + @availability_zone_ids.setter + def availability_zone_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "availability_zone_ids", value) + + @property + @pulumi.getter + @_utilities.deprecated("""nested aws fields have been moved one level up. These fields will be removed in a future version""") + def aws(self) -> Optional[pulumi.Input['PrivateEndpointServicesServicesMapAwsArgs']]: + return pulumi.get(self, "aws") + + @aws.setter + def aws(self, value: Optional[pulumi.Input['PrivateEndpointServicesServicesMapAwsArgs']]): + pulumi.set(self, "aws", value) + + @property + @pulumi.getter(name="cloudProvider") + def cloud_provider(self) -> Optional[pulumi.Input[str]]: + """ + Cloud provider associated with this service. + """ + return pulumi.get(self, "cloud_provider") + + @cloud_provider.setter + def cloud_provider(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cloud_provider", value) + + @property + @pulumi.getter(name="endpointServiceId") + def endpoint_service_id(self) -> Optional[pulumi.Input[str]]: + """ + Server side ID of the private endpoint connection. + """ + return pulumi.get(self, "endpoint_service_id") + + @endpoint_service_id.setter + def endpoint_service_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "endpoint_service_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the endpoint service. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="regionName") + def region_name(self) -> Optional[pulumi.Input[str]]: + """ + Cloud provider region code associated with this service. + """ + return pulumi.get(self, "region_name") + + @region_name.setter + def region_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region_name", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + Operation status of the service. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + +if not MYPY: + class PrivateEndpointServicesServicesMapAwsArgsDict(TypedDict): + availability_zone_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + AZ IDs users should create their VPCs in to minimize their cost. + """ + service_id: NotRequired[pulumi.Input[str]] + """ + Server side ID of the PrivateLink connection. + """ + service_name: NotRequired[pulumi.Input[str]] + """ + AWS service name used to create endpoints. + """ +elif False: + PrivateEndpointServicesServicesMapAwsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PrivateEndpointServicesServicesMapAwsArgs: + def __init__(__self__, *, + availability_zone_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + service_id: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zone_ids: AZ IDs users should create their VPCs in to minimize their cost. + :param pulumi.Input[str] service_id: Server side ID of the PrivateLink connection. + :param pulumi.Input[str] service_name: AWS service name used to create endpoints. + """ + if availability_zone_ids is not None: + pulumi.set(__self__, "availability_zone_ids", availability_zone_ids) + if service_id is not None: + pulumi.set(__self__, "service_id", service_id) + if service_name is not None: + pulumi.set(__self__, "service_name", service_name) + + @property + @pulumi.getter(name="availabilityZoneIds") + def availability_zone_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + AZ IDs users should create their VPCs in to minimize their cost. + """ + return pulumi.get(self, "availability_zone_ids") + + @availability_zone_ids.setter + def availability_zone_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "availability_zone_ids", value) + + @property + @pulumi.getter(name="serviceId") + def service_id(self) -> Optional[pulumi.Input[str]]: + """ + Server side ID of the PrivateLink connection. + """ + return pulumi.get(self, "service_id") + + @service_id.setter + def service_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_id", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> Optional[pulumi.Input[str]]: + """ + AWS service name used to create endpoints. + """ + return pulumi.get(self, "service_name") + + @service_name.setter + def service_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_name", value) + + if not MYPY: class UserRoleGrantRoleArgsDict(TypedDict): resource_type: pulumi.Input[str] diff --git a/sdk/python/pulumiverse_cockroach/allow_list.py b/sdk/python/pulumiverse_cockroach/allow_list.py index 048980f..c13c577 100644 --- a/sdk/python/pulumiverse_cockroach/allow_list.py +++ b/sdk/python/pulumiverse_cockroach/allow_list.py @@ -28,10 +28,10 @@ def __init__(__self__, *, """ The set of arguments for constructing a AllowList resource. :param pulumi.Input[str] cidr_ip: IP address component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. - :param pulumi.Input[int] cidr_mask: Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + :param pulumi.Input[int] cidr_mask: The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. :param pulumi.Input[bool] sql: Set to 'true' to allow SQL connections from this CIDR range. :param pulumi.Input[bool] ui: Set to 'true' to allow access to the management console from this CIDR range. - :param pulumi.Input[str] name: Name of this allowlist entry. + :param pulumi.Input[str] name: Name of this allowlist entry. If not set explicitly, this value does not sync with the server. """ pulumi.set(__self__, "cidr_ip", cidr_ip) pulumi.set(__self__, "cidr_mask", cidr_mask) @@ -57,7 +57,7 @@ def cidr_ip(self, value: pulumi.Input[str]): @pulumi.getter(name="cidrMask") def cidr_mask(self) -> pulumi.Input[int]: """ - Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. """ return pulumi.get(self, "cidr_mask") @@ -102,7 +102,7 @@ def ui(self, value: pulumi.Input[bool]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of this allowlist entry. + Name of this allowlist entry. If not set explicitly, this value does not sync with the server. """ return pulumi.get(self, "name") @@ -123,8 +123,8 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering AllowList resources. :param pulumi.Input[str] cidr_ip: IP address component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. - :param pulumi.Input[int] cidr_mask: Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. - :param pulumi.Input[str] name: Name of this allowlist entry. + :param pulumi.Input[int] cidr_mask: The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. + :param pulumi.Input[str] name: Name of this allowlist entry. If not set explicitly, this value does not sync with the server. :param pulumi.Input[bool] sql: Set to 'true' to allow SQL connections from this CIDR range. :param pulumi.Input[bool] ui: Set to 'true' to allow access to the management console from this CIDR range. """ @@ -157,7 +157,7 @@ def cidr_ip(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="cidrMask") def cidr_mask(self) -> Optional[pulumi.Input[int]]: """ - Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. """ return pulumi.get(self, "cidr_mask") @@ -178,7 +178,7 @@ def cluster_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Name of this allowlist entry. + Name of this allowlist entry. If not set explicitly, this value does not sync with the server. """ return pulumi.get(self, "name") @@ -252,8 +252,8 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] cidr_ip: IP address component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. - :param pulumi.Input[int] cidr_mask: Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. - :param pulumi.Input[str] name: Name of this allowlist entry. + :param pulumi.Input[int] cidr_mask: The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. + :param pulumi.Input[str] name: Name of this allowlist entry. If not set explicitly, this value does not sync with the server. :param pulumi.Input[bool] sql: Set to 'true' to allow SQL connections from this CIDR range. :param pulumi.Input[bool] ui: Set to 'true' to allow access to the management console from this CIDR range. """ @@ -359,8 +359,8 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] cidr_ip: IP address component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. - :param pulumi.Input[int] cidr_mask: Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. - :param pulumi.Input[str] name: Name of this allowlist entry. + :param pulumi.Input[int] cidr_mask: The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. + :param pulumi.Input[str] name: Name of this allowlist entry. If not set explicitly, this value does not sync with the server. :param pulumi.Input[bool] sql: Set to 'true' to allow SQL connections from this CIDR range. :param pulumi.Input[bool] ui: Set to 'true' to allow access to the management console from this CIDR range. """ @@ -388,7 +388,7 @@ def cidr_ip(self) -> pulumi.Output[str]: @pulumi.getter(name="cidrMask") def cidr_mask(self) -> pulumi.Output[int]: """ - Map component of the [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) range for this entry. + The [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) notation prefix length. A number ranging from 0 to 32 indicating the size of the network. Use 32 to allow a single IP address. """ return pulumi.get(self, "cidr_mask") @@ -399,9 +399,9 @@ def cluster_id(self) -> pulumi.Output[str]: @property @pulumi.getter - def name(self) -> pulumi.Output[Optional[str]]: + def name(self) -> pulumi.Output[str]: """ - Name of this allowlist entry. + Name of this allowlist entry. If not set explicitly, this value does not sync with the server. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumiverse_cockroach/cluster.py b/sdk/python/pulumiverse_cockroach/cluster.py index 08acd87..8cb611e 100644 --- a/sdk/python/pulumiverse_cockroach/cluster.py +++ b/sdk/python/pulumiverse_cockroach/cluster.py @@ -28,6 +28,7 @@ def __init__(__self__, *, dedicated: Optional[pulumi.Input['ClusterDedicatedArgs']] = None, delete_protection: Optional[pulumi.Input[bool]] = None, parent_id: Optional[pulumi.Input[str]] = None, + plan: Optional[pulumi.Input[str]] = None, serverless: Optional[pulumi.Input['ClusterServerlessArgs']] = None): """ The set of arguments for constructing a Cluster resource. @@ -37,6 +38,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] delete_protection: Set to true to enable delete protection on the cluster. If unset, the server chooses the value on cluster creation, and preserves the value on cluster update. :param pulumi.Input[str] parent_id: The ID of the cluster's parent folder. 'root' is used for a cluster at the root level. + :param pulumi.Input[str] plan: Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. """ pulumi.set(__self__, "cloud_provider", cloud_provider) pulumi.set(__self__, "name", name) @@ -49,6 +51,8 @@ def __init__(__self__, *, pulumi.set(__self__, "delete_protection", delete_protection) if parent_id is not None: pulumi.set(__self__, "parent_id", parent_id) + if plan is not None: + pulumi.set(__self__, "plan", plan) if serverless is not None: pulumi.set(__self__, "serverless", serverless) @@ -131,6 +135,18 @@ def parent_id(self) -> Optional[pulumi.Input[str]]: def parent_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "parent_id", value) + @property + @pulumi.getter + def plan(self) -> Optional[pulumi.Input[str]]: + """ + Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. + """ + return pulumi.get(self, "plan") + + @plan.setter + def plan(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "plan", value) + @property @pulumi.getter def serverless(self) -> Optional[pulumi.Input['ClusterServerlessArgs']]: @@ -146,7 +162,6 @@ class _ClusterState: def __init__(__self__, *, account_id: Optional[pulumi.Input[str]] = None, cloud_provider: Optional[pulumi.Input[str]] = None, - cluster_id: Optional[pulumi.Input[str]] = None, cockroach_version: Optional[pulumi.Input[str]] = None, creator_id: Optional[pulumi.Input[str]] = None, dedicated: Optional[pulumi.Input['ClusterDedicatedArgs']] = None, @@ -170,7 +185,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the cluster. :param pulumi.Input[str] operation_status: Describes the current long-running operation, if any. :param pulumi.Input[str] parent_id: The ID of the cluster's parent folder. 'root' is used for a cluster at the root level. - :param pulumi.Input[str] plan: Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. + :param pulumi.Input[str] plan: Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. :param pulumi.Input[str] state: Describes whether the cluster is being created, updated, deleted, etc. :param pulumi.Input[str] upgrade_status: Describes the status of any in-progress CockroachDB upgrade or rollback. """ @@ -178,8 +193,6 @@ def __init__(__self__, *, pulumi.set(__self__, "account_id", account_id) if cloud_provider is not None: pulumi.set(__self__, "cloud_provider", cloud_provider) - if cluster_id is not None: - pulumi.set(__self__, "cluster_id", cluster_id) if cockroach_version is not None: pulumi.set(__self__, "cockroach_version", cockroach_version) if creator_id is not None: @@ -229,15 +242,6 @@ def cloud_provider(self) -> Optional[pulumi.Input[str]]: def cloud_provider(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "cloud_provider", value) - @property - @pulumi.getter(name="clusterId") - def cluster_id(self) -> Optional[pulumi.Input[str]]: - return pulumi.get(self, "cluster_id") - - @cluster_id.setter - def cluster_id(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "cluster_id", value) - @property @pulumi.getter(name="cockroachVersion") def cockroach_version(self) -> Optional[pulumi.Input[str]]: @@ -324,7 +328,7 @@ def parent_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def plan(self) -> Optional[pulumi.Input[str]]: """ - Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. + Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. """ return pulumi.get(self, "plan") @@ -386,11 +390,12 @@ def __init__(__self__, delete_protection: Optional[pulumi.Input[bool]] = None, name: Optional[pulumi.Input[str]] = None, parent_id: Optional[pulumi.Input[str]] = None, + plan: Optional[pulumi.Input[str]] = None, regions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterRegionArgs', 'ClusterRegionArgsDict']]]]] = None, serverless: Optional[pulumi.Input[Union['ClusterServerlessArgs', 'ClusterServerlessArgsDict']]] = None, __props__=None): """ - CockroachDB Cloud cluster. Can be Dedicated or Serverless. + CockroachDB Cloud cluster. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. @@ -400,6 +405,7 @@ def __init__(__self__, preserves the value on cluster update. :param pulumi.Input[str] name: Name of the cluster. :param pulumi.Input[str] parent_id: The ID of the cluster's parent folder. 'root' is used for a cluster at the root level. + :param pulumi.Input[str] plan: Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. """ ... @overload @@ -408,7 +414,7 @@ def __init__(__self__, args: ClusterArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - CockroachDB Cloud cluster. Can be Dedicated or Serverless. + CockroachDB Cloud cluster. :param str resource_name: The name of the resource. :param ClusterArgs args: The arguments to use to populate this resource's properties. @@ -431,6 +437,7 @@ def _internal_init(__self__, delete_protection: Optional[pulumi.Input[bool]] = None, name: Optional[pulumi.Input[str]] = None, parent_id: Optional[pulumi.Input[str]] = None, + plan: Optional[pulumi.Input[str]] = None, regions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClusterRegionArgs', 'ClusterRegionArgsDict']]]]] = None, serverless: Optional[pulumi.Input[Union['ClusterServerlessArgs', 'ClusterServerlessArgsDict']]] = None, __props__=None): @@ -452,15 +459,14 @@ def _internal_init(__self__, raise TypeError("Missing required property 'name'") __props__.__dict__["name"] = name __props__.__dict__["parent_id"] = parent_id + __props__.__dict__["plan"] = plan if regions is None and not opts.urn: raise TypeError("Missing required property 'regions'") __props__.__dict__["regions"] = regions __props__.__dict__["serverless"] = serverless __props__.__dict__["account_id"] = None - __props__.__dict__["cluster_id"] = None __props__.__dict__["creator_id"] = None __props__.__dict__["operation_status"] = None - __props__.__dict__["plan"] = None __props__.__dict__["state"] = None __props__.__dict__["upgrade_status"] = None super(Cluster, __self__).__init__( @@ -475,7 +481,6 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, account_id: Optional[pulumi.Input[str]] = None, cloud_provider: Optional[pulumi.Input[str]] = None, - cluster_id: Optional[pulumi.Input[str]] = None, cockroach_version: Optional[pulumi.Input[str]] = None, creator_id: Optional[pulumi.Input[str]] = None, dedicated: Optional[pulumi.Input[Union['ClusterDedicatedArgs', 'ClusterDedicatedArgsDict']]] = None, @@ -504,7 +509,7 @@ def get(resource_name: str, :param pulumi.Input[str] name: Name of the cluster. :param pulumi.Input[str] operation_status: Describes the current long-running operation, if any. :param pulumi.Input[str] parent_id: The ID of the cluster's parent folder. 'root' is used for a cluster at the root level. - :param pulumi.Input[str] plan: Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. + :param pulumi.Input[str] plan: Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. :param pulumi.Input[str] state: Describes whether the cluster is being created, updated, deleted, etc. :param pulumi.Input[str] upgrade_status: Describes the status of any in-progress CockroachDB upgrade or rollback. """ @@ -514,7 +519,6 @@ def get(resource_name: str, __props__.__dict__["account_id"] = account_id __props__.__dict__["cloud_provider"] = cloud_provider - __props__.__dict__["cluster_id"] = cluster_id __props__.__dict__["cockroach_version"] = cockroach_version __props__.__dict__["creator_id"] = creator_id __props__.__dict__["dedicated"] = dedicated @@ -545,11 +549,6 @@ def cloud_provider(self) -> pulumi.Output[str]: """ return pulumi.get(self, "cloud_provider") - @property - @pulumi.getter(name="clusterId") - def cluster_id(self) -> pulumi.Output[str]: - return pulumi.get(self, "cluster_id") - @property @pulumi.getter(name="cockroachVersion") def cockroach_version(self) -> pulumi.Output[str]: @@ -608,7 +607,7 @@ def parent_id(self) -> pulumi.Output[str]: @pulumi.getter def plan(self) -> pulumi.Output[str]: """ - Denotes cluster deployment type: 'DEDICATED' or 'SERVERLESS'. + Denotes cluster plan type: 'BASIC' or 'STANDARD' or 'ADVANCED'. """ return pulumi.get(self, "plan") diff --git a/sdk/python/pulumiverse_cockroach/log_export_config.py b/sdk/python/pulumiverse_cockroach/log_export_config.py index 0e2b6ad..d207614 100644 --- a/sdk/python/pulumiverse_cockroach/log_export_config.py +++ b/sdk/python/pulumiverse_cockroach/log_export_config.py @@ -36,7 +36,7 @@ def __init__(__self__, *, :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] log_name: An identifier for the logs in the customer's log sink. :param pulumi.Input[str] type: The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - GCP_CLOUD_LOGGING + GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS :param pulumi.Input[Sequence[pulumi.Input[str]]] omitted_channels: Controls what CRDB channels do not get exported. :param pulumi.Input[bool] redact: Controls whether logs are redacted before forwarding to customer sinks. :param pulumi.Input[str] region: Controls whether all logs are sent to a specific region in the customer sink. @@ -96,7 +96,7 @@ def log_name(self, value: pulumi.Input[str]): def type(self) -> pulumi.Input[str]: """ The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - GCP_CLOUD_LOGGING + GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS """ return pulumi.get(self, "type") @@ -177,7 +177,7 @@ def __init__(__self__, *, :param pulumi.Input[str] region: Controls whether all logs are sent to a specific region in the customer sink. :param pulumi.Input[str] status: Encodes the possible states that a log export configuration can be in as it is created, deployed, and disabled. :param pulumi.Input[str] type: The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - GCP_CLOUD_LOGGING + GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS :param pulumi.Input[str] updated_at: Indicates when the log export configuration was last updated. :param pulumi.Input[str] user_message: Elaborates on the log export status and hints at how to fix issues that may have occurred during asynchronous operations. @@ -318,7 +318,7 @@ def status(self, value: Optional[pulumi.Input[str]]): def type(self) -> Optional[pulumi.Input[str]]: """ The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - GCP_CLOUD_LOGGING + GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS """ return pulumi.get(self, "type") @@ -379,7 +379,7 @@ def __init__(__self__, :param pulumi.Input[bool] redact: Controls whether logs are redacted before forwarding to customer sinks. :param pulumi.Input[str] region: Controls whether all logs are sent to a specific region in the customer sink. :param pulumi.Input[str] type: The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - GCP_CLOUD_LOGGING + GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS """ ... @overload @@ -481,7 +481,7 @@ def get(resource_name: str, :param pulumi.Input[str] region: Controls whether all logs are sent to a specific region in the customer sink. :param pulumi.Input[str] status: Encodes the possible states that a log export configuration can be in as it is created, deployed, and disabled. :param pulumi.Input[str] type: The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - GCP_CLOUD_LOGGING + GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS :param pulumi.Input[str] updated_at: Indicates when the log export configuration was last updated. :param pulumi.Input[str] user_message: Elaborates on the log export status and hints at how to fix issues that may have occurred during asynchronous operations. @@ -579,7 +579,7 @@ def status(self) -> pulumi.Output[str]: def type(self) -> pulumi.Output[str]: """ The cloud selection being exported to along with the cloud logging platform. Possible values are: * AWS_CLOUDWATCH * - GCP_CLOUD_LOGGING + GCP_CLOUD_LOGGING * AZURE_LOG_ANALYTICS """ return pulumi.get(self, "type") diff --git a/sdk/python/pulumiverse_cockroach/outputs.py b/sdk/python/pulumiverse_cockroach/outputs.py index 6694369..4ce44dc 100644 --- a/sdk/python/pulumiverse_cockroach/outputs.py +++ b/sdk/python/pulumiverse_cockroach/outputs.py @@ -27,6 +27,8 @@ 'LogExportConfigGroup', 'PrivateEndpointServicesService', 'PrivateEndpointServicesServiceAws', + 'PrivateEndpointServicesServicesMap', + 'PrivateEndpointServicesServicesMapAws', 'UserRoleGrantRole', 'UserRoleGrantsRole', 'GetCockroachClusterDedicatedResult', @@ -240,7 +242,7 @@ def __init__(__self__, *, :param str name: Name of the region. Should match the region code used by the cluster's cloud provider. :param str internal_dns: Internal DNS name of the cluster within the cloud provider's network. Used to connect to the cluster with PrivateLink or VPC peering. :param int node_count: Number of nodes in the region. Will always be 0 for serverless clusters. - :param bool primary: Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + :param bool primary: Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. :param str sql_dns: DNS name of the cluster's SQL interface. Used to connect to the cluster with IP allowlisting. :param str ui_dns: DNS name used when connecting to the DB Console for the cluster. """ @@ -284,7 +286,7 @@ def node_count(self) -> Optional[int]: @pulumi.getter def primary(self) -> Optional[bool]: """ - Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. """ return pulumi.get(self, "primary") @@ -314,6 +316,8 @@ def __key_warning(key: str): suggest = "routing_id" elif key == "spendLimit": suggest = "spend_limit" + elif key == "upgradeType": + suggest = "upgrade_type" elif key == "usageLimits": suggest = "usage_limits" @@ -331,15 +335,21 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, routing_id: Optional[str] = None, spend_limit: Optional[int] = None, + upgrade_type: Optional[str] = None, usage_limits: Optional['outputs.ClusterServerlessUsageLimits'] = None): """ :param str routing_id: Cluster identifier in a connection string. :param int spend_limit: Spend limit in US cents. + :param str upgrade_type: Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + * MANUAL + * AUTOMATIC """ if routing_id is not None: pulumi.set(__self__, "routing_id", routing_id) if spend_limit is not None: pulumi.set(__self__, "spend_limit", spend_limit) + if upgrade_type is not None: + pulumi.set(__self__, "upgrade_type", upgrade_type) if usage_limits is not None: pulumi.set(__self__, "usage_limits", usage_limits) @@ -353,12 +363,23 @@ def routing_id(self) -> Optional[str]: @property @pulumi.getter(name="spendLimit") + @_utilities.deprecated("""The `spend_limit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead.""") def spend_limit(self) -> Optional[int]: """ Spend limit in US cents. """ return pulumi.get(self, "spend_limit") + @property + @pulumi.getter(name="upgradeType") + def upgrade_type(self) -> Optional[str]: + """ + Dictates the behavior of cockroach major version upgrades. If plan type is 'BASIC', this attribute must be left empty or set to 'AUTOMATIC'. Allowed values are: + * MANUAL + * AUTOMATIC + """ + return pulumi.get(self, "upgrade_type") + @property @pulumi.getter(name="usageLimits") def usage_limits(self) -> Optional['outputs.ClusterServerlessUsageLimits']: @@ -370,7 +391,9 @@ class ClusterServerlessUsageLimits(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "requestUnitLimit": + if key == "provisionedVirtualCpus": + suggest = "provisioned_virtual_cpus" + elif key == "requestUnitLimit": suggest = "request_unit_limit" elif key == "storageMibLimit": suggest = "storage_mib_limit" @@ -387,18 +410,32 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - request_unit_limit: int, - storage_mib_limit: int): + provisioned_virtual_cpus: Optional[int] = None, + request_unit_limit: Optional[int] = None, + storage_mib_limit: Optional[int] = None): """ + :param int provisioned_virtual_cpus: Maximum number of vCPUs that the cluster can use. :param int request_unit_limit: Maximum number of Request Units that the cluster can consume during the month. :param int storage_mib_limit: Maximum amount of storage (in MiB) that the cluster can have at any time during the month. """ - pulumi.set(__self__, "request_unit_limit", request_unit_limit) - pulumi.set(__self__, "storage_mib_limit", storage_mib_limit) + if provisioned_virtual_cpus is not None: + pulumi.set(__self__, "provisioned_virtual_cpus", provisioned_virtual_cpus) + if request_unit_limit is not None: + pulumi.set(__self__, "request_unit_limit", request_unit_limit) + if storage_mib_limit is not None: + pulumi.set(__self__, "storage_mib_limit", storage_mib_limit) + + @property + @pulumi.getter(name="provisionedVirtualCpus") + def provisioned_virtual_cpus(self) -> Optional[int]: + """ + Maximum number of vCPUs that the cluster can use. + """ + return pulumi.get(self, "provisioned_virtual_cpus") @property @pulumi.getter(name="requestUnitLimit") - def request_unit_limit(self) -> int: + def request_unit_limit(self) -> Optional[int]: """ Maximum number of Request Units that the cluster can consume during the month. """ @@ -406,7 +443,7 @@ def request_unit_limit(self) -> int: @property @pulumi.getter(name="storageMibLimit") - def storage_mib_limit(self) -> int: + def storage_mib_limit(self) -> Optional[int]: """ Maximum amount of storage (in MiB) that the cluster can have at any time during the month. """ @@ -449,7 +486,7 @@ def __init__(__self__, *, :param str name: Name of the region. Should match the region code used by the cluster's cloud provider. :param str internal_dns: Internal DNS name of the cluster within the cloud provider's network. Used to connect to the cluster with PrivateLink or VPC peering. :param int node_count: Number of nodes in the region. Will always be 0 for serverless clusters. - :param bool primary: Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + :param bool primary: Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. :param str sql_dns: DNS name of the cluster's SQL interface. Used to connect to the cluster with IP allowlisting. :param str ui_dns: DNS name used when connecting to the DB Console for the cluster. """ @@ -493,7 +530,7 @@ def node_count(self) -> Optional[int]: @pulumi.getter def primary(self) -> Optional[bool]: """ - Set to true to mark this region as the primary for a Serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. + Set to true to mark this region as the primary for a serverless cluster. Exactly one region must be primary. Dedicated clusters expect to have no primary region. """ return pulumi.get(self, "primary") @@ -915,6 +952,181 @@ def service_name(self) -> Optional[str]: return pulumi.get(self, "service_name") +@pulumi.output_type +class PrivateEndpointServicesServicesMap(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "availabilityZoneIds": + suggest = "availability_zone_ids" + elif key == "cloudProvider": + suggest = "cloud_provider" + elif key == "endpointServiceId": + suggest = "endpoint_service_id" + elif key == "regionName": + suggest = "region_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PrivateEndpointServicesServicesMap. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PrivateEndpointServicesServicesMap.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PrivateEndpointServicesServicesMap.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + availability_zone_ids: Optional[Sequence[str]] = None, + aws: Optional['outputs.PrivateEndpointServicesServicesMapAws'] = None, + cloud_provider: Optional[str] = None, + endpoint_service_id: Optional[str] = None, + name: Optional[str] = None, + region_name: Optional[str] = None, + status: Optional[str] = None): + """ + :param Sequence[str] availability_zone_ids: Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + :param str cloud_provider: Cloud provider associated with this service. + :param str endpoint_service_id: Server side ID of the private endpoint connection. + :param str name: Name of the endpoint service. + :param str region_name: Cloud provider region code associated with this service. + :param str status: Operation status of the service. + """ + if availability_zone_ids is not None: + pulumi.set(__self__, "availability_zone_ids", availability_zone_ids) + if aws is not None: + pulumi.set(__self__, "aws", aws) + if cloud_provider is not None: + pulumi.set(__self__, "cloud_provider", cloud_provider) + if endpoint_service_id is not None: + pulumi.set(__self__, "endpoint_service_id", endpoint_service_id) + if name is not None: + pulumi.set(__self__, "name", name) + if region_name is not None: + pulumi.set(__self__, "region_name", region_name) + if status is not None: + pulumi.set(__self__, "status", status) + + @property + @pulumi.getter(name="availabilityZoneIds") + def availability_zone_ids(self) -> Optional[Sequence[str]]: + """ + Availability Zone IDs of the private endpoint service. It is recommended, for cost optimization purposes, to create the private endpoint spanning these same availability zones. For more information, see data transfer cost information for your cloud provider. + """ + return pulumi.get(self, "availability_zone_ids") + + @property + @pulumi.getter + @_utilities.deprecated("""nested aws fields have been moved one level up. These fields will be removed in a future version""") + def aws(self) -> Optional['outputs.PrivateEndpointServicesServicesMapAws']: + return pulumi.get(self, "aws") + + @property + @pulumi.getter(name="cloudProvider") + def cloud_provider(self) -> Optional[str]: + """ + Cloud provider associated with this service. + """ + return pulumi.get(self, "cloud_provider") + + @property + @pulumi.getter(name="endpointServiceId") + def endpoint_service_id(self) -> Optional[str]: + """ + Server side ID of the private endpoint connection. + """ + return pulumi.get(self, "endpoint_service_id") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + Name of the endpoint service. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="regionName") + def region_name(self) -> Optional[str]: + """ + Cloud provider region code associated with this service. + """ + return pulumi.get(self, "region_name") + + @property + @pulumi.getter + def status(self) -> Optional[str]: + """ + Operation status of the service. + """ + return pulumi.get(self, "status") + + +@pulumi.output_type +class PrivateEndpointServicesServicesMapAws(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "availabilityZoneIds": + suggest = "availability_zone_ids" + elif key == "serviceId": + suggest = "service_id" + elif key == "serviceName": + suggest = "service_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PrivateEndpointServicesServicesMapAws. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PrivateEndpointServicesServicesMapAws.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PrivateEndpointServicesServicesMapAws.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + availability_zone_ids: Optional[Sequence[str]] = None, + service_id: Optional[str] = None, + service_name: Optional[str] = None): + """ + :param Sequence[str] availability_zone_ids: AZ IDs users should create their VPCs in to minimize their cost. + :param str service_id: Server side ID of the PrivateLink connection. + :param str service_name: AWS service name used to create endpoints. + """ + if availability_zone_ids is not None: + pulumi.set(__self__, "availability_zone_ids", availability_zone_ids) + if service_id is not None: + pulumi.set(__self__, "service_id", service_id) + if service_name is not None: + pulumi.set(__self__, "service_name", service_name) + + @property + @pulumi.getter(name="availabilityZoneIds") + def availability_zone_ids(self) -> Optional[Sequence[str]]: + """ + AZ IDs users should create their VPCs in to minimize their cost. + """ + return pulumi.get(self, "availability_zone_ids") + + @property + @pulumi.getter(name="serviceId") + def service_id(self) -> Optional[str]: + """ + Server side ID of the PrivateLink connection. + """ + return pulumi.get(self, "service_id") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> Optional[str]: + """ + AWS service name used to create endpoints. + """ + return pulumi.get(self, "service_name") + + @pulumi.output_type class UserRoleGrantRole(dict): @staticmethod @@ -1238,13 +1450,16 @@ class GetCockroachClusterServerlessResult(dict): def __init__(__self__, *, routing_id: str, spend_limit: int, + upgrade_type: str, usage_limits: 'outputs.GetCockroachClusterServerlessUsageLimitsResult'): """ :param str routing_id: Cluster identifier in a connection string. :param int spend_limit: Spend limit in US cents. + :param str upgrade_type: Dictates the behavior of cockroach major version upgrades. """ pulumi.set(__self__, "routing_id", routing_id) pulumi.set(__self__, "spend_limit", spend_limit) + pulumi.set(__self__, "upgrade_type", upgrade_type) pulumi.set(__self__, "usage_limits", usage_limits) @property @@ -1257,12 +1472,21 @@ def routing_id(self) -> str: @property @pulumi.getter(name="spendLimit") + @_utilities.deprecated("""The `spend_limit` attribute is deprecated and will be removed in a future release of the provider. Configure 'usage_limits' instead.""") def spend_limit(self) -> int: """ Spend limit in US cents. """ return pulumi.get(self, "spend_limit") + @property + @pulumi.getter(name="upgradeType") + def upgrade_type(self) -> str: + """ + Dictates the behavior of cockroach major version upgrades. + """ + return pulumi.get(self, "upgrade_type") + @property @pulumi.getter(name="usageLimits") def usage_limits(self) -> 'outputs.GetCockroachClusterServerlessUsageLimitsResult': @@ -1272,15 +1496,26 @@ def usage_limits(self) -> 'outputs.GetCockroachClusterServerlessUsageLimitsResul @pulumi.output_type class GetCockroachClusterServerlessUsageLimitsResult(dict): def __init__(__self__, *, + provisioned_virtual_cpus: int, request_unit_limit: int, storage_mib_limit: int): """ + :param int provisioned_virtual_cpus: Maximum number of vCPUs that the cluster can use. :param int request_unit_limit: Maximum number of Request Units that the cluster can consume during the month. :param int storage_mib_limit: Maximum amount of storage (in MiB) that the cluster can have at any time during the month. """ + pulumi.set(__self__, "provisioned_virtual_cpus", provisioned_virtual_cpus) pulumi.set(__self__, "request_unit_limit", request_unit_limit) pulumi.set(__self__, "storage_mib_limit", storage_mib_limit) + @property + @pulumi.getter(name="provisionedVirtualCpus") + def provisioned_virtual_cpus(self) -> int: + """ + Maximum number of vCPUs that the cluster can use. + """ + return pulumi.get(self, "provisioned_virtual_cpus") + @property @pulumi.getter(name="requestUnitLimit") def request_unit_limit(self) -> int: diff --git a/sdk/python/pulumiverse_cockroach/private_endpoint_services.py b/sdk/python/pulumiverse_cockroach/private_endpoint_services.py index ec2fe31..b7feeed 100644 --- a/sdk/python/pulumiverse_cockroach/private_endpoint_services.py +++ b/sdk/python/pulumiverse_cockroach/private_endpoint_services.py @@ -41,14 +41,18 @@ def cluster_id(self, value: pulumi.Input[str]): class _PrivateEndpointServicesState: def __init__(__self__, *, cluster_id: Optional[pulumi.Input[str]] = None, - services: Optional[pulumi.Input[Sequence[pulumi.Input['PrivateEndpointServicesServiceArgs']]]] = None): + services: Optional[pulumi.Input[Sequence[pulumi.Input['PrivateEndpointServicesServiceArgs']]]] = None, + services_map: Optional[pulumi.Input[Mapping[str, pulumi.Input['PrivateEndpointServicesServicesMapArgs']]]] = None): """ Input properties used for looking up and filtering PrivateEndpointServices resources. + :param pulumi.Input[Mapping[str, pulumi.Input['PrivateEndpointServicesServicesMapArgs']]] services_map: a map of services keyed by the region name """ if cluster_id is not None: pulumi.set(__self__, "cluster_id", cluster_id) if services is not None: pulumi.set(__self__, "services", services) + if services_map is not None: + pulumi.set(__self__, "services_map", services_map) @property @pulumi.getter(name="clusterId") @@ -68,6 +72,18 @@ def services(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PrivateEndpoi def services(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PrivateEndpointServicesServiceArgs']]]]): pulumi.set(self, "services", value) + @property + @pulumi.getter(name="servicesMap") + def services_map(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input['PrivateEndpointServicesServicesMapArgs']]]]: + """ + a map of services keyed by the region name + """ + return pulumi.get(self, "services_map") + + @services_map.setter + def services_map(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input['PrivateEndpointServicesServicesMapArgs']]]]): + pulumi.set(self, "services_map", value) + class PrivateEndpointServices(pulumi.CustomResource): @overload @@ -158,6 +174,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'cluster_id'") __props__.__dict__["cluster_id"] = cluster_id __props__.__dict__["services"] = None + __props__.__dict__["services_map"] = None super(PrivateEndpointServices, __self__).__init__( 'cockroach:index/privateEndpointServices:PrivateEndpointServices', resource_name, @@ -169,7 +186,8 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, cluster_id: Optional[pulumi.Input[str]] = None, - services: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PrivateEndpointServicesServiceArgs', 'PrivateEndpointServicesServiceArgsDict']]]]] = None) -> 'PrivateEndpointServices': + services: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PrivateEndpointServicesServiceArgs', 'PrivateEndpointServicesServiceArgsDict']]]]] = None, + services_map: Optional[pulumi.Input[Mapping[str, pulumi.Input[Union['PrivateEndpointServicesServicesMapArgs', 'PrivateEndpointServicesServicesMapArgsDict']]]]] = None) -> 'PrivateEndpointServices': """ Get an existing PrivateEndpointServices resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -177,6 +195,7 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Mapping[str, pulumi.Input[Union['PrivateEndpointServicesServicesMapArgs', 'PrivateEndpointServicesServicesMapArgsDict']]]] services_map: a map of services keyed by the region name """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -184,6 +203,7 @@ def get(resource_name: str, __props__.__dict__["cluster_id"] = cluster_id __props__.__dict__["services"] = services + __props__.__dict__["services_map"] = services_map return PrivateEndpointServices(resource_name, opts=opts, __props__=__props__) @property @@ -196,3 +216,11 @@ def cluster_id(self) -> pulumi.Output[str]: def services(self) -> pulumi.Output[Sequence['outputs.PrivateEndpointServicesService']]: return pulumi.get(self, "services") + @property + @pulumi.getter(name="servicesMap") + def services_map(self) -> pulumi.Output[Mapping[str, 'outputs.PrivateEndpointServicesServicesMap']]: + """ + a map of services keyed by the region name + """ + return pulumi.get(self, "services_map") + diff --git a/sdk/python/pulumiverse_cockroach/user_role_grants.py b/sdk/python/pulumiverse_cockroach/user_role_grants.py index b9e902c..522a0b0 100644 --- a/sdk/python/pulumiverse_cockroach/user_role_grants.py +++ b/sdk/python/pulumiverse_cockroach/user_role_grants.py @@ -25,6 +25,7 @@ def __init__(__self__, *, user_id: pulumi.Input[str]): """ The set of arguments for constructing a UserRoleGrants resource. + :param pulumi.Input[Sequence[pulumi.Input['UserRoleGrantsRoleArgs']]] roles: The list of roles to include. ORG_MEMBER must be included. :param pulumi.Input[str] user_id: ID of the user to grant these roles to. """ pulumi.set(__self__, "roles", roles) @@ -33,6 +34,9 @@ def __init__(__self__, *, @property @pulumi.getter def roles(self) -> pulumi.Input[Sequence[pulumi.Input['UserRoleGrantsRoleArgs']]]: + """ + The list of roles to include. ORG_MEMBER must be included. + """ return pulumi.get(self, "roles") @roles.setter @@ -59,6 +63,7 @@ def __init__(__self__, *, user_id: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering UserRoleGrants resources. + :param pulumi.Input[Sequence[pulumi.Input['UserRoleGrantsRoleArgs']]] roles: The list of roles to include. ORG_MEMBER must be included. :param pulumi.Input[str] user_id: ID of the user to grant these roles to. """ if roles is not None: @@ -69,6 +74,9 @@ def __init__(__self__, *, @property @pulumi.getter def roles(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['UserRoleGrantsRoleArgs']]]]: + """ + The list of roles to include. ORG_MEMBER must be included. + """ return pulumi.get(self, "roles") @roles.setter @@ -109,6 +117,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Union['UserRoleGrantsRoleArgs', 'UserRoleGrantsRoleArgsDict']]]] roles: The list of roles to include. ORG_MEMBER must be included. :param pulumi.Input[str] user_id: ID of the user to grant these roles to. """ ... @@ -179,6 +188,7 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Union['UserRoleGrantsRoleArgs', 'UserRoleGrantsRoleArgsDict']]]] roles: The list of roles to include. ORG_MEMBER must be included. :param pulumi.Input[str] user_id: ID of the user to grant these roles to. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -192,6 +202,9 @@ def get(resource_name: str, @property @pulumi.getter def roles(self) -> pulumi.Output[Sequence['outputs.UserRoleGrantsRole']]: + """ + The list of roles to include. ORG_MEMBER must be included. + """ return pulumi.get(self, "roles") @property