diff --git a/.pulumi-java-gen.version b/.pulumi-java-gen.version index 47d04a52..a881cf79 100644 --- a/.pulumi-java-gen.version +++ b/.pulumi-java-gen.version @@ -1 +1 @@ -0.18.0 \ No newline at end of file +0.20.0 \ No newline at end of file diff --git a/provider/cmd/pulumi-resource-digitalocean/bridge-metadata.json b/provider/cmd/pulumi-resource-digitalocean/bridge-metadata.json index c7de8c88..85484471 100644 --- a/provider/cmd/pulumi-resource-digitalocean/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-digitalocean/bridge-metadata.json @@ -585,6 +585,31 @@ } } }, + "digitalocean_droplet_autoscale": { + "current": "digitalocean:index/dropletAutoscale:DropletAutoscale", + "majorVersion": 4, + "fields": { + "config": { + "maxItemsOne": true + }, + "current_utilization": { + "maxItemsOne": false + }, + "droplet_template": { + "maxItemsOne": true, + "elem": { + "fields": { + "ssh_keys": { + "maxItemsOne": false + }, + "tags": { + "maxItemsOne": false + } + } + } + } + } + }, "digitalocean_droplet_snapshot": { "current": "digitalocean:index/dropletSnapshot:DropletSnapshot", "majorVersion": 4, @@ -819,6 +844,14 @@ "current": "digitalocean:index/reservedIpAssignment:ReservedIpAssignment", "majorVersion": 4 }, + "digitalocean_reserved_ipv6": { + "current": "digitalocean:index/reservedIpv6:ReservedIpv6", + "majorVersion": 4 + }, + "digitalocean_reserved_ipv6_assignment": { + "current": "digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment", + "majorVersion": 4 + }, "digitalocean_spaces_bucket": { "current": "digitalocean:index/spacesBucket:SpacesBucket", "majorVersion": 4, @@ -1485,6 +1518,31 @@ } } }, + "digitalocean_droplet_autoscale": { + "current": "digitalocean:index/getDropletAutoscale:getDropletAutoscale", + "majorVersion": 4, + "fields": { + "config": { + "maxItemsOne": false + }, + "current_utilization": { + "maxItemsOne": false + }, + "droplet_template": { + "maxItemsOne": false, + "elem": { + "fields": { + "ssh_keys": { + "maxItemsOne": false + }, + "tags": { + "maxItemsOne": false + } + } + } + } + } + }, "digitalocean_droplet_snapshot": { "current": "digitalocean:index/getDropletSnapshot:getDropletSnapshot", "majorVersion": 4, @@ -1842,6 +1900,10 @@ "current": "digitalocean:index/getReservedIp:getReservedIp", "majorVersion": 4 }, + "digitalocean_reserved_ipv6": { + "current": "digitalocean:index/getReservedIpv6:getReservedIpv6", + "majorVersion": 4 + }, "digitalocean_sizes": { "current": "digitalocean:index/getSizes:getSizes", "majorVersion": 4, diff --git a/provider/cmd/pulumi-resource-digitalocean/schema.json b/provider/cmd/pulumi-resource-digitalocean/schema.json index a73b1161..a06798c1 100644 --- a/provider/cmd/pulumi-resource-digitalocean/schema.json +++ b/provider/cmd/pulumi-resource-digitalocean/schema.json @@ -2666,6 +2666,113 @@ "permission" ] }, + "digitalocean:index/DropletAutoscaleConfig:DropletAutoscaleConfig": { + "properties": { + "cooldownMinutes": { + "type": "integer", + "description": "The cooldown duration between scaling events for the Droplet Autoscale pool.\n" + }, + "maxInstances": { + "type": "integer", + "description": "The maximum number of instances to maintain in the Droplet Autoscale pool.\n" + }, + "minInstances": { + "type": "integer", + "description": "The minimum number of instances to maintain in the Droplet Autoscale pool.\n" + }, + "targetCpuUtilization": { + "type": "number", + "description": "The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool.\n" + }, + "targetMemoryUtilization": { + "type": "number", + "description": "The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale \npool.\n" + }, + "targetNumberInstances": { + "type": "integer", + "description": "The static number of instances to maintain in the pool Droplet Autoscale pool. This\nargument cannot be used with any other config options.\n" + } + }, + "type": "object" + }, + "digitalocean:index/DropletAutoscaleCurrentUtilization:DropletAutoscaleCurrentUtilization": { + "properties": { + "cpu": { + "type": "number", + "description": "Average CPU utilization\n" + }, + "memory": { + "type": "number", + "description": "Average Memory utilization\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "cpu", + "memory" + ] + } + } + }, + "digitalocean:index/DropletAutoscaleDropletTemplate:DropletAutoscaleDropletTemplate": { + "properties": { + "image": { + "type": "string", + "description": "Image slug of the Droplet Autoscale pool underlying resource(s).\n" + }, + "ipv6": { + "type": "boolean", + "description": "Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s).\n" + }, + "projectId": { + "type": "string", + "description": "Project UUID to create the Droplet Autoscale pool underlying resource(s).\n" + }, + "region": { + "type": "string", + "description": "Region slug of the Droplet Autoscale pool underlying resource(s).\n" + }, + "size": { + "type": "string", + "description": "Size slug of the Droplet Autoscale pool underlying resource(s).\n" + }, + "sshKeys": { + "type": "array", + "items": { + "type": "string" + }, + "description": "SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s).\n" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of tags to add to the Droplet Autoscale pool underlying resource(s).\n" + }, + "userData": { + "type": "string", + "description": "Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a \ncloud init script that user may configure to setup their application workload.\n" + }, + "vpcUuid": { + "type": "string", + "description": "VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred\nfrom the specified `region` (default VPC).\n" + }, + "withDropletAgent": { + "type": "boolean", + "description": "Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The\nmetric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions.\n" + } + }, + "type": "object", + "required": [ + "image", + "region", + "size", + "sshKeys" + ] + }, "digitalocean:index/DropletBackupPolicy:DropletBackupPolicy": { "properties": { "hour": { @@ -6007,6 +6114,138 @@ "key" ] }, + "digitalocean:index/getDropletAutoscaleConfig:getDropletAutoscaleConfig": { + "properties": { + "cooldownMinutes": { + "type": "integer", + "description": "Cooldown duration\n" + }, + "maxInstances": { + "type": "integer", + "description": "Max number of members\n" + }, + "minInstances": { + "type": "integer", + "description": "Min number of members\n" + }, + "targetCpuUtilization": { + "type": "number", + "description": "CPU target threshold\n" + }, + "targetMemoryUtilization": { + "type": "number", + "description": "Memory target threshold\n" + }, + "targetNumberInstances": { + "type": "integer", + "description": "Target number of members\n" + } + }, + "type": "object", + "required": [ + "cooldownMinutes", + "maxInstances", + "minInstances", + "targetCpuUtilization", + "targetMemoryUtilization", + "targetNumberInstances" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "digitalocean:index/getDropletAutoscaleCurrentUtilization:getDropletAutoscaleCurrentUtilization": { + "properties": { + "cpu": { + "type": "number", + "description": "Average CPU utilization\n" + }, + "memory": { + "type": "number", + "description": "Average Memory utilization\n" + } + }, + "type": "object", + "required": [ + "cpu", + "memory" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "digitalocean:index/getDropletAutoscaleDropletTemplate:getDropletAutoscaleDropletTemplate": { + "properties": { + "image": { + "type": "string", + "description": "Droplet image\n" + }, + "ipv6": { + "type": "boolean", + "description": "Enable droplet IPv6\n" + }, + "projectId": { + "type": "string", + "description": "Droplet project ID\n" + }, + "region": { + "type": "string", + "description": "Droplet region\n" + }, + "size": { + "type": "string", + "description": "Droplet size\n" + }, + "sshKeys": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Droplet SSH keys\n" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Droplet tags\n" + }, + "userData": { + "type": "string", + "description": "Droplet user data\n" + }, + "vpcUuid": { + "type": "string", + "description": "Droplet VPC UUID\n" + }, + "withDropletAgent": { + "type": "boolean", + "description": "Enable droplet agent\n" + } + }, + "type": "object", + "required": [ + "image", + "ipv6", + "projectId", + "region", + "size", + "sshKeys", + "tags", + "userData", + "vpcUuid", + "withDropletAgent" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "digitalocean:index/getDropletsDroplet:getDropletsDroplet": { "properties": { "backups": { @@ -13273,6 +13512,106 @@ "type": "object" } }, + "digitalocean:index/dropletAutoscale:DropletAutoscale": { + "description": "Provides a DigitalOcean Droplet Autoscale resource. This can be used to create, modify, \nread and delete Droplet Autoscale pools.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as digitalocean from \"@pulumi/digitalocean\";\nimport * as std from \"@pulumi/std\";\n\nconst my_ssh_key = new digitalocean.SshKey(\"my-ssh-key\", {\n name: \"terraform-example\",\n publicKey: std.file({\n input: \"/Users/terraform/.ssh/id_rsa.pub\",\n }).then(invoke =\u003e invoke.result),\n});\nconst my_tag = new digitalocean.Tag(\"my-tag\", {name: \"terraform-example\"});\nconst my_autoscale_pool = new digitalocean.DropletAutoscale(\"my-autoscale-pool\", {\n name: \"terraform-example\",\n config: {\n minInstances: 10,\n maxInstances: 50,\n targetCpuUtilization: 0.5,\n targetMemoryUtilization: 0.5,\n cooldownMinutes: 5,\n },\n dropletTemplate: {\n size: \"c-2\",\n region: \"nyc3\",\n image: \"ubuntu-24-04-x64\",\n tags: [my_tag.id],\n sshKeys: [my_ssh_key.id],\n withDropletAgent: true,\n ipv6: true,\n userData: `\n#cloud-config\nruncmd:\n- apt-get update\n- apt-get install -y stress-ng\n`,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_digitalocean as digitalocean\nimport pulumi_std as std\n\nmy_ssh_key = digitalocean.SshKey(\"my-ssh-key\",\n name=\"terraform-example\",\n public_key=std.file(input=\"/Users/terraform/.ssh/id_rsa.pub\").result)\nmy_tag = digitalocean.Tag(\"my-tag\", name=\"terraform-example\")\nmy_autoscale_pool = digitalocean.DropletAutoscale(\"my-autoscale-pool\",\n name=\"terraform-example\",\n config={\n \"min_instances\": 10,\n \"max_instances\": 50,\n \"target_cpu_utilization\": 0.5,\n \"target_memory_utilization\": 0.5,\n \"cooldown_minutes\": 5,\n },\n droplet_template={\n \"size\": \"c-2\",\n \"region\": \"nyc3\",\n \"image\": \"ubuntu-24-04-x64\",\n \"tags\": [my_tag.id],\n \"ssh_keys\": [my_ssh_key.id],\n \"with_droplet_agent\": True,\n \"ipv6\": True,\n \"user_data\": \"\"\"\n#cloud-config\nruncmd:\n- apt-get update\n- apt-get install -y stress-ng\n\"\"\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DigitalOcean = Pulumi.DigitalOcean;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var my_ssh_key = new DigitalOcean.SshKey(\"my-ssh-key\", new()\n {\n Name = \"terraform-example\",\n PublicKey = Std.File.Invoke(new()\n {\n Input = \"/Users/terraform/.ssh/id_rsa.pub\",\n }).Apply(invoke =\u003e invoke.Result),\n });\n\n var my_tag = new DigitalOcean.Tag(\"my-tag\", new()\n {\n Name = \"terraform-example\",\n });\n\n var my_autoscale_pool = new DigitalOcean.DropletAutoscale(\"my-autoscale-pool\", new()\n {\n Name = \"terraform-example\",\n Config = new DigitalOcean.Inputs.DropletAutoscaleConfigArgs\n {\n MinInstances = 10,\n MaxInstances = 50,\n TargetCpuUtilization = 0.5,\n TargetMemoryUtilization = 0.5,\n CooldownMinutes = 5,\n },\n DropletTemplate = new DigitalOcean.Inputs.DropletAutoscaleDropletTemplateArgs\n {\n Size = \"c-2\",\n Region = \"nyc3\",\n Image = \"ubuntu-24-04-x64\",\n Tags = new[]\n {\n my_tag.Id,\n },\n SshKeys = new[]\n {\n my_ssh_key.Id,\n },\n WithDropletAgent = true,\n Ipv6 = true,\n UserData = @\"\n#cloud-config\nruncmd:\n- apt-get update\n- apt-get install -y stress-ng\n\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinvokeFile, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"/Users/terraform/.ssh/id_rsa.pub\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = digitalocean.NewSshKey(ctx, \"my-ssh-key\", \u0026digitalocean.SshKeyArgs{\n\t\t\tName: pulumi.String(\"terraform-example\"),\n\t\t\tPublicKey: pulumi.String(invokeFile.Result),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = digitalocean.NewTag(ctx, \"my-tag\", \u0026digitalocean.TagArgs{\n\t\t\tName: pulumi.String(\"terraform-example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = digitalocean.NewDropletAutoscale(ctx, \"my-autoscale-pool\", \u0026digitalocean.DropletAutoscaleArgs{\n\t\t\tName: pulumi.String(\"terraform-example\"),\n\t\t\tConfig: \u0026digitalocean.DropletAutoscaleConfigArgs{\n\t\t\t\tMinInstances: pulumi.Int(10),\n\t\t\t\tMaxInstances: pulumi.Int(50),\n\t\t\t\tTargetCpuUtilization: pulumi.Float64(0.5),\n\t\t\t\tTargetMemoryUtilization: pulumi.Float64(0.5),\n\t\t\t\tCooldownMinutes: pulumi.Int(5),\n\t\t\t},\n\t\t\tDropletTemplate: \u0026digitalocean.DropletAutoscaleDropletTemplateArgs{\n\t\t\t\tSize: pulumi.String(\"c-2\"),\n\t\t\t\tRegion: pulumi.String(\"nyc3\"),\n\t\t\t\tImage: pulumi.String(\"ubuntu-24-04-x64\"),\n\t\t\t\tTags: pulumi.StringArray{\n\t\t\t\t\tmy_tag.ID(),\n\t\t\t\t},\n\t\t\t\tSshKeys: pulumi.StringArray{\n\t\t\t\t\tmy_ssh_key.ID(),\n\t\t\t\t},\n\t\t\t\tWithDropletAgent: pulumi.Bool(true),\n\t\t\t\tIpv6: pulumi.Bool(true),\n\t\t\t\tUserData: pulumi.String(`\n#cloud-config\nruncmd:\n- apt-get update\n- apt-get install -y stress-ng\n`),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.digitalocean.SshKey;\nimport com.pulumi.digitalocean.SshKeyArgs;\nimport com.pulumi.digitalocean.Tag;\nimport com.pulumi.digitalocean.TagArgs;\nimport com.pulumi.digitalocean.DropletAutoscale;\nimport com.pulumi.digitalocean.DropletAutoscaleArgs;\nimport com.pulumi.digitalocean.inputs.DropletAutoscaleConfigArgs;\nimport com.pulumi.digitalocean.inputs.DropletAutoscaleDropletTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var my_ssh_key = new SshKey(\"my-ssh-key\", SshKeyArgs.builder()\n .name(\"terraform-example\")\n .publicKey(StdFunctions.file(FileArgs.builder()\n .input(\"/Users/terraform/.ssh/id_rsa.pub\")\n .build()).result())\n .build());\n\n var my_tag = new Tag(\"my-tag\", TagArgs.builder()\n .name(\"terraform-example\")\n .build());\n\n var my_autoscale_pool = new DropletAutoscale(\"my-autoscale-pool\", DropletAutoscaleArgs.builder()\n .name(\"terraform-example\")\n .config(DropletAutoscaleConfigArgs.builder()\n .minInstances(10)\n .maxInstances(50)\n .targetCpuUtilization(0.5)\n .targetMemoryUtilization(0.5)\n .cooldownMinutes(5)\n .build())\n .dropletTemplate(DropletAutoscaleDropletTemplateArgs.builder()\n .size(\"c-2\")\n .region(\"nyc3\")\n .image(\"ubuntu-24-04-x64\")\n .tags(my_tag.id())\n .sshKeys(my_ssh_key.id())\n .withDropletAgent(true)\n .ipv6(true)\n .userData(\"\"\"\n\n#cloud-config\nruncmd:\n- apt-get update\n- apt-get install -y stress-ng\n \"\"\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-ssh-key:\n type: digitalocean:SshKey\n properties:\n name: terraform-example\n publicKey:\n fn::invoke:\n function: std:file\n arguments:\n input: /Users/terraform/.ssh/id_rsa.pub\n return: result\n my-tag:\n type: digitalocean:Tag\n properties:\n name: terraform-example\n my-autoscale-pool:\n type: digitalocean:DropletAutoscale\n properties:\n name: terraform-example\n config:\n minInstances: 10\n maxInstances: 50\n targetCpuUtilization: 0.5\n targetMemoryUtilization: 0.5\n cooldownMinutes: 5\n dropletTemplate:\n size: c-2\n region: nyc3\n image: ubuntu-24-04-x64\n tags:\n - ${[\"my-tag\"].id}\n sshKeys:\n - ${[\"my-ssh-key\"].id}\n withDropletAgent: true\n ipv6: true\n userData: |2\n #cloud-config\n runcmd:\n - apt-get update\n - apt-get install -y stress-ng\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDroplet Autoscale pools can be imported using their `id`, e.g.\n\n```sh\n$ pulumi import digitalocean:index/dropletAutoscale:DropletAutoscale my-autoscale-pool 38e66834-d741-47ec-88e7-c70cbdcz0445\n```\n\n", + "properties": { + "config": { + "$ref": "#/types/digitalocean:index/DropletAutoscaleConfig:DropletAutoscaleConfig", + "description": "The configuration parameters for Droplet Autoscale pool, the supported arguments are \ndocumented below.\n" + }, + "createdAt": { + "type": "string", + "description": "Created at timestamp for the Droplet Autoscale pool.\n" + }, + "currentUtilizations": { + "type": "array", + "items": { + "$ref": "#/types/digitalocean:index/DropletAutoscaleCurrentUtilization:DropletAutoscaleCurrentUtilization" + }, + "description": "The current average resource utilization of the Droplet Autoscale pool, this attribute further\nembeds `memory` and `cpu` attributes to respectively report utilization data.\n" + }, + "dropletTemplate": { + "$ref": "#/types/digitalocean:index/DropletAutoscaleDropletTemplate:DropletAutoscaleDropletTemplate", + "description": "The droplet template parameters for Droplet Autoscale pool, the supported arguments \nare documented below.\n" + }, + "name": { + "type": "string", + "description": "The name of the Droplet Autoscale pool.\n" + }, + "status": { + "type": "string", + "description": "Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept\ntraffic, or in an error state and needs user intervention.\n" + }, + "updatedAt": { + "type": "string", + "description": "Updated at timestamp for the Droplet Autoscale pool.\n" + } + }, + "required": [ + "config", + "createdAt", + "currentUtilizations", + "dropletTemplate", + "name", + "status", + "updatedAt" + ], + "inputProperties": { + "config": { + "$ref": "#/types/digitalocean:index/DropletAutoscaleConfig:DropletAutoscaleConfig", + "description": "The configuration parameters for Droplet Autoscale pool, the supported arguments are \ndocumented below.\n" + }, + "dropletTemplate": { + "$ref": "#/types/digitalocean:index/DropletAutoscaleDropletTemplate:DropletAutoscaleDropletTemplate", + "description": "The droplet template parameters for Droplet Autoscale pool, the supported arguments \nare documented below.\n" + }, + "name": { + "type": "string", + "description": "The name of the Droplet Autoscale pool.\n" + } + }, + "requiredInputs": [ + "config", + "dropletTemplate" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering DropletAutoscale resources.\n", + "properties": { + "config": { + "$ref": "#/types/digitalocean:index/DropletAutoscaleConfig:DropletAutoscaleConfig", + "description": "The configuration parameters for Droplet Autoscale pool, the supported arguments are \ndocumented below.\n" + }, + "createdAt": { + "type": "string", + "description": "Created at timestamp for the Droplet Autoscale pool.\n" + }, + "currentUtilizations": { + "type": "array", + "items": { + "$ref": "#/types/digitalocean:index/DropletAutoscaleCurrentUtilization:DropletAutoscaleCurrentUtilization" + }, + "description": "The current average resource utilization of the Droplet Autoscale pool, this attribute further\nembeds `memory` and `cpu` attributes to respectively report utilization data.\n" + }, + "dropletTemplate": { + "$ref": "#/types/digitalocean:index/DropletAutoscaleDropletTemplate:DropletAutoscaleDropletTemplate", + "description": "The droplet template parameters for Droplet Autoscale pool, the supported arguments \nare documented below.\n" + }, + "name": { + "type": "string", + "description": "The name of the Droplet Autoscale pool.\n" + }, + "status": { + "type": "string", + "description": "Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept\ntraffic, or in an error state and needs user intervention.\n" + }, + "updatedAt": { + "type": "string", + "description": "Updated at timestamp for the Droplet Autoscale pool.\n" + } + }, + "type": "object" + } + }, "digitalocean:index/dropletSnapshot:DropletSnapshot": { "description": "Provides a resource which can be used to create a snapshot from an existing DigitalOcean Droplet.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as digitalocean from \"@pulumi/digitalocean\";\n\nconst web = new digitalocean.Droplet(\"web\", {\n name: \"web-01\",\n size: digitalocean.DropletSlug.DropletS1VCPU1GB,\n image: \"ubuntu-22-04-x64\",\n region: digitalocean.Region.NYC3,\n});\nconst web_snapshot = new digitalocean.DropletSnapshot(\"web-snapshot\", {\n dropletId: web.id,\n name: \"web-snapshot-01\",\n});\nconst from_snapshot = new digitalocean.Droplet(\"from-snapshot\", {\n image: web_snapshot.id,\n name: \"web-02\",\n region: digitalocean.Region.NYC3,\n size: digitalocean.DropletSlug.DropletS2VCPU4GB,\n});\n```\n```python\nimport pulumi\nimport pulumi_digitalocean as digitalocean\n\nweb = digitalocean.Droplet(\"web\",\n name=\"web-01\",\n size=digitalocean.DropletSlug.DROPLET_S1_VCPU1_GB,\n image=\"ubuntu-22-04-x64\",\n region=digitalocean.Region.NYC3)\nweb_snapshot = digitalocean.DropletSnapshot(\"web-snapshot\",\n droplet_id=web.id,\n name=\"web-snapshot-01\")\nfrom_snapshot = digitalocean.Droplet(\"from-snapshot\",\n image=web_snapshot.id,\n name=\"web-02\",\n region=digitalocean.Region.NYC3,\n size=digitalocean.DropletSlug.DROPLET_S2_VCPU4_GB)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DigitalOcean = Pulumi.DigitalOcean;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var web = new DigitalOcean.Droplet(\"web\", new()\n {\n Name = \"web-01\",\n Size = DigitalOcean.DropletSlug.DropletS1VCPU1GB,\n Image = \"ubuntu-22-04-x64\",\n Region = DigitalOcean.Region.NYC3,\n });\n\n var web_snapshot = new DigitalOcean.DropletSnapshot(\"web-snapshot\", new()\n {\n DropletId = web.Id,\n Name = \"web-snapshot-01\",\n });\n\n var from_snapshot = new DigitalOcean.Droplet(\"from-snapshot\", new()\n {\n Image = web_snapshot.Id,\n Name = \"web-02\",\n Region = DigitalOcean.Region.NYC3,\n Size = DigitalOcean.DropletSlug.DropletS2VCPU4GB,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tweb, err := digitalocean.NewDroplet(ctx, \"web\", \u0026digitalocean.DropletArgs{\n\t\t\tName: pulumi.String(\"web-01\"),\n\t\t\tSize: pulumi.String(digitalocean.DropletSlugDropletS1VCPU1GB),\n\t\t\tImage: pulumi.String(\"ubuntu-22-04-x64\"),\n\t\t\tRegion: pulumi.String(digitalocean.RegionNYC3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = digitalocean.NewDropletSnapshot(ctx, \"web-snapshot\", \u0026digitalocean.DropletSnapshotArgs{\n\t\t\tDropletId: web.ID(),\n\t\t\tName: pulumi.String(\"web-snapshot-01\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = digitalocean.NewDroplet(ctx, \"from-snapshot\", \u0026digitalocean.DropletArgs{\n\t\t\tImage: web_snapshot.ID(),\n\t\t\tName: pulumi.String(\"web-02\"),\n\t\t\tRegion: pulumi.String(digitalocean.RegionNYC3),\n\t\t\tSize: pulumi.String(digitalocean.DropletSlugDropletS2VCPU4GB),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.digitalocean.Droplet;\nimport com.pulumi.digitalocean.DropletArgs;\nimport com.pulumi.digitalocean.DropletSnapshot;\nimport com.pulumi.digitalocean.DropletSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var web = new Droplet(\"web\", DropletArgs.builder()\n .name(\"web-01\")\n .size(\"s-1vcpu-1gb\")\n .image(\"ubuntu-22-04-x64\")\n .region(\"nyc3\")\n .build());\n\n var web_snapshot = new DropletSnapshot(\"web-snapshot\", DropletSnapshotArgs.builder()\n .dropletId(web.id())\n .name(\"web-snapshot-01\")\n .build());\n\n var from_snapshot = new Droplet(\"from-snapshot\", DropletArgs.builder()\n .image(web_snapshot.id())\n .name(\"web-02\")\n .region(\"nyc3\")\n .size(\"s-2vcpu-4gb\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n web:\n type: digitalocean:Droplet\n properties:\n name: web-01\n size: s-1vcpu-1gb\n image: ubuntu-22-04-x64\n region: nyc3\n web-snapshot:\n type: digitalocean:DropletSnapshot\n properties:\n dropletId: ${web.id}\n name: web-snapshot-01\n from-snapshot:\n type: digitalocean:Droplet\n properties:\n image: ${[\"web-snapshot\"].id}\n name: web-02\n region: nyc3\n size: s-2vcpu-4gb\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDroplet Snapshots can be imported using the `snapshot id`, e.g.\n\n```sh\n$ pulumi import digitalocean:index/dropletSnapshot:DropletSnapshot mysnapshot 123456\n```\n\n", "properties": { @@ -14219,7 +14558,7 @@ }, "network": { "type": "string", - "description": "The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.\n**NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use.\n" + "description": "The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.\n" }, "projectId": { "type": "string", @@ -14239,7 +14578,7 @@ }, "sizeUnit": { "type": "integer", - "description": "The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided.\n" + "description": "The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided.\n" }, "status": { "type": "string" @@ -14257,7 +14596,7 @@ }, "type": { "type": "string", - "description": "The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`.\n**NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.\n" + "description": "The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`.\n**NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.\n" }, "vpcUuid": { "type": "string", @@ -14356,7 +14695,7 @@ }, "network": { "type": "string", - "description": "The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.\n**NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use.\n", + "description": "The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.\n", "willReplaceOnChanges": true }, "projectId": { @@ -14387,7 +14726,7 @@ }, "sizeUnit": { "type": "integer", - "description": "The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided.\n" + "description": "The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided.\n" }, "stickySessions": { "$ref": "#/types/digitalocean:index/LoadBalancerStickySessions:LoadBalancerStickySessions", @@ -14402,7 +14741,7 @@ }, "type": { "type": "string", - "description": "The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`.\n**NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.\n", + "description": "The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`.\n**NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.\n", "willReplaceOnChanges": true }, "vpcUuid": { @@ -14498,7 +14837,7 @@ }, "network": { "type": "string", - "description": "The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.\n**NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use.\n", + "description": "The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`.\n", "willReplaceOnChanges": true }, "projectId": { @@ -14529,7 +14868,7 @@ }, "sizeUnit": { "type": "integer", - "description": "The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided.\n" + "description": "The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided.\n" }, "status": { "type": "string" @@ -14547,7 +14886,7 @@ }, "type": { "type": "string", - "description": "The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`.\n**NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.\n", + "description": "The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`.\n**NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use.\n", "willReplaceOnChanges": true }, "vpcUuid": { @@ -15029,6 +15368,106 @@ "type": "object" } }, + "digitalocean:index/reservedIpv6:ReservedIpv6": { + "properties": { + "dropletId": { + "type": "integer" + }, + "ip": { + "type": "string" + }, + "regionSlug": { + "type": "string" + }, + "urn": { + "type": "string", + "description": "the uniform resource name for the reserved ipv6\n" + } + }, + "required": [ + "dropletId", + "ip", + "regionSlug", + "urn" + ], + "inputProperties": { + "dropletId": { + "type": "integer" + }, + "ip": { + "type": "string" + }, + "regionSlug": { + "type": "string", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "regionSlug" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ReservedIpv6 resources.\n", + "properties": { + "dropletId": { + "type": "integer" + }, + "ip": { + "type": "string" + }, + "regionSlug": { + "type": "string", + "willReplaceOnChanges": true + }, + "urn": { + "type": "string", + "description": "the uniform resource name for the reserved ipv6\n" + } + }, + "type": "object" + } + }, + "digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment": { + "properties": { + "dropletId": { + "type": "integer" + }, + "ip": { + "type": "string" + } + }, + "required": [ + "dropletId", + "ip" + ], + "inputProperties": { + "dropletId": { + "type": "integer", + "willReplaceOnChanges": true + }, + "ip": { + "type": "string", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "dropletId", + "ip" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ReservedIpv6Assignment resources.\n", + "properties": { + "dropletId": { + "type": "integer", + "willReplaceOnChanges": true + }, + "ip": { + "type": "string", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, "digitalocean:index/spacesBucket:SpacesBucket": { "description": "Provides a bucket resource for Spaces, DigitalOcean's object storage product.\n\nThe [Spaces API](https://docs.digitalocean.com/reference/api/spaces-api/) was\ndesigned to be interoperable with Amazon's AWS S3 API. This allows users to\ninteract with the service while using the tools they already know. Spaces\nmirrors S3's authentication framework and requests to Spaces require a key pair\nsimilar to Amazon's Access ID and Secret Key.\n\nThe authentication requirement can be met by either setting the\n`SPACES_ACCESS_KEY_ID` and `SPACES_SECRET_ACCESS_KEY` environment variables or\nthe provider's `spaces_access_id` and `spaces_secret_key` arguments to the\naccess ID and secret you generate via the DigitalOcean control panel. For\nexample:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as digitalocean from \"@pulumi/digitalocean\";\n\nconst static_assets = new digitalocean.SpacesBucket(\"static-assets\", {});\n```\n```python\nimport pulumi\nimport pulumi_digitalocean as digitalocean\n\nstatic_assets = digitalocean.SpacesBucket(\"static-assets\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DigitalOcean = Pulumi.DigitalOcean;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var static_assets = new DigitalOcean.SpacesBucket(\"static-assets\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := digitalocean.NewSpacesBucket(ctx, \"static-assets\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.digitalocean.SpacesBucket;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var static_assets = new SpacesBucket(\"static-assets\");\n\n }\n}\n```\n```yaml\nresources:\n static-assets:\n type: digitalocean:SpacesBucket\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nFor more information, See [An Introduction to DigitalOcean Spaces](https://www.digitalocean.com/community/tutorials/an-introduction-to-digitalocean-spaces)\n\n## Example Usage\n\n### Create a New Bucket\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as digitalocean from \"@pulumi/digitalocean\";\n\nconst foobar = new digitalocean.SpacesBucket(\"foobar\", {\n name: \"foobar\",\n region: digitalocean.Region.NYC3,\n});\n```\n```python\nimport pulumi\nimport pulumi_digitalocean as digitalocean\n\nfoobar = digitalocean.SpacesBucket(\"foobar\",\n name=\"foobar\",\n region=digitalocean.Region.NYC3)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DigitalOcean = Pulumi.DigitalOcean;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foobar = new DigitalOcean.SpacesBucket(\"foobar\", new()\n {\n Name = \"foobar\",\n Region = DigitalOcean.Region.NYC3,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := digitalocean.NewSpacesBucket(ctx, \"foobar\", \u0026digitalocean.SpacesBucketArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tRegion: pulumi.String(digitalocean.RegionNYC3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.digitalocean.SpacesBucket;\nimport com.pulumi.digitalocean.SpacesBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foobar = new SpacesBucket(\"foobar\", SpacesBucketArgs.builder()\n .name(\"foobar\")\n .region(\"nyc3\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foobar:\n type: digitalocean:SpacesBucket\n properties:\n name: foobar\n region: nyc3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a New Bucket With CORS Rules\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as digitalocean from \"@pulumi/digitalocean\";\n\nconst foobar = new digitalocean.SpacesBucket(\"foobar\", {\n name: \"foobar\",\n region: digitalocean.Region.NYC3,\n corsRules: [\n {\n allowedHeaders: [\"*\"],\n allowedMethods: [\"GET\"],\n allowedOrigins: [\"*\"],\n maxAgeSeconds: 3000,\n },\n {\n allowedHeaders: [\"*\"],\n allowedMethods: [\n \"PUT\",\n \"POST\",\n \"DELETE\",\n ],\n allowedOrigins: [\"https://www.example.com\"],\n maxAgeSeconds: 3000,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_digitalocean as digitalocean\n\nfoobar = digitalocean.SpacesBucket(\"foobar\",\n name=\"foobar\",\n region=digitalocean.Region.NYC3,\n cors_rules=[\n {\n \"allowed_headers\": [\"*\"],\n \"allowed_methods\": [\"GET\"],\n \"allowed_origins\": [\"*\"],\n \"max_age_seconds\": 3000,\n },\n {\n \"allowed_headers\": [\"*\"],\n \"allowed_methods\": [\n \"PUT\",\n \"POST\",\n \"DELETE\",\n ],\n \"allowed_origins\": [\"https://www.example.com\"],\n \"max_age_seconds\": 3000,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DigitalOcean = Pulumi.DigitalOcean;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foobar = new DigitalOcean.SpacesBucket(\"foobar\", new()\n {\n Name = \"foobar\",\n Region = DigitalOcean.Region.NYC3,\n CorsRules = new[]\n {\n new DigitalOcean.Inputs.SpacesBucketCorsRuleArgs\n {\n AllowedHeaders = new[]\n {\n \"*\",\n },\n AllowedMethods = new[]\n {\n \"GET\",\n },\n AllowedOrigins = new[]\n {\n \"*\",\n },\n MaxAgeSeconds = 3000,\n },\n new DigitalOcean.Inputs.SpacesBucketCorsRuleArgs\n {\n AllowedHeaders = new[]\n {\n \"*\",\n },\n AllowedMethods = new[]\n {\n \"PUT\",\n \"POST\",\n \"DELETE\",\n },\n AllowedOrigins = new[]\n {\n \"https://www.example.com\",\n },\n MaxAgeSeconds = 3000,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := digitalocean.NewSpacesBucket(ctx, \"foobar\", \u0026digitalocean.SpacesBucketArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tRegion: pulumi.String(digitalocean.RegionNYC3),\n\t\t\tCorsRules: digitalocean.SpacesBucketCorsRuleArray{\n\t\t\t\t\u0026digitalocean.SpacesBucketCorsRuleArgs{\n\t\t\t\t\tAllowedHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedOrigins: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tMaxAgeSeconds: pulumi.Int(3000),\n\t\t\t\t},\n\t\t\t\t\u0026digitalocean.SpacesBucketCorsRuleArgs{\n\t\t\t\t\tAllowedHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"*\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"PUT\"),\n\t\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\t\tpulumi.String(\"DELETE\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedOrigins: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"https://www.example.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tMaxAgeSeconds: pulumi.Int(3000),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.digitalocean.SpacesBucket;\nimport com.pulumi.digitalocean.SpacesBucketArgs;\nimport com.pulumi.digitalocean.inputs.SpacesBucketCorsRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foobar = new SpacesBucket(\"foobar\", SpacesBucketArgs.builder()\n .name(\"foobar\")\n .region(\"nyc3\")\n .corsRules( \n SpacesBucketCorsRuleArgs.builder()\n .allowedHeaders(\"*\")\n .allowedMethods(\"GET\")\n .allowedOrigins(\"*\")\n .maxAgeSeconds(3000)\n .build(),\n SpacesBucketCorsRuleArgs.builder()\n .allowedHeaders(\"*\")\n .allowedMethods( \n \"PUT\",\n \"POST\",\n \"DELETE\")\n .allowedOrigins(\"https://www.example.com\")\n .maxAgeSeconds(3000)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foobar:\n type: digitalocean:SpacesBucket\n properties:\n name: foobar\n region: nyc3\n corsRules:\n - allowedHeaders:\n - '*'\n allowedMethods:\n - GET\n allowedOrigins:\n - '*'\n maxAgeSeconds: 3000\n - allowedHeaders:\n - '*'\n allowedMethods:\n - PUT\n - POST\n - DELETE\n allowedOrigins:\n - https://www.example.com\n maxAgeSeconds: 3000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBuckets can be imported using the `region` and `name` attributes (delimited by a comma):\n\n```sh\n$ pulumi import digitalocean:index/spacesBucket:SpacesBucket foobar `region`,`name`\n```\n\n", "properties": { @@ -17525,6 +17964,70 @@ "type": "object" } }, + "digitalocean:index/getDropletAutoscale:getDropletAutoscale": { + "description": "## Example Usage\n\nGet the Droplet Autoscale pool by name:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as digitalocean from \"@pulumi/digitalocean\";\n\nconst my-imported-autoscale-pool = digitalocean.getDropletAutoscale({\n name: my_existing_autoscale_pool.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_digitalocean as digitalocean\n\nmy_imported_autoscale_pool = digitalocean.get_droplet_autoscale(name=my_existing_autoscale_pool[\"name\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DigitalOcean = Pulumi.DigitalOcean;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var my_imported_autoscale_pool = DigitalOcean.GetDropletAutoscale.Invoke(new()\n {\n Name = my_existing_autoscale_pool.Name,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := digitalocean.LookupDropletAutoscale(ctx, \u0026digitalocean.LookupDropletAutoscaleArgs{\n\t\t\tName: pulumi.StringRef(my_existing_autoscale_pool.Name),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.digitalocean.DigitaloceanFunctions;\nimport com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()\n .name(my_existing_autoscale_pool.name())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n my-imported-autoscale-pool:\n fn::invoke:\n function: digitalocean:getDropletAutoscale\n arguments:\n name: ${[\"my-existing-autoscale-pool\"].name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nGet the Droplet Autoscale pool by ID:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as digitalocean from \"@pulumi/digitalocean\";\n\nconst my-imported-autoscale-pool = digitalocean.getDropletAutoscale({\n id: my_existing_autoscale_pool.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_digitalocean as digitalocean\n\nmy_imported_autoscale_pool = digitalocean.get_droplet_autoscale(id=my_existing_autoscale_pool[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DigitalOcean = Pulumi.DigitalOcean;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var my_imported_autoscale_pool = DigitalOcean.GetDropletAutoscale.Invoke(new()\n {\n Id = my_existing_autoscale_pool.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := digitalocean.LookupDropletAutoscale(ctx, \u0026digitalocean.LookupDropletAutoscaleArgs{\n\t\t\tId: pulumi.StringRef(my_existing_autoscale_pool.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.digitalocean.DigitaloceanFunctions;\nimport com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()\n .id(my_existing_autoscale_pool.id())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n my-imported-autoscale-pool:\n fn::invoke:\n function: digitalocean:getDropletAutoscale\n arguments:\n id: ${[\"my-existing-autoscale-pool\"].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getDropletAutoscale.\n", + "properties": { + "id": { + "type": "string", + "description": "The ID of Droplet Autoscale pool.\n" + }, + "name": { + "type": "string", + "description": "The name of Droplet Autoscale pool.\n" + } + }, + "type": "object" + }, + "outputs": { + "description": "A collection of values returned by getDropletAutoscale.\n", + "properties": { + "configs": { + "items": { + "$ref": "#/types/digitalocean:index/getDropletAutoscaleConfig:getDropletAutoscaleConfig" + }, + "type": "array" + }, + "createdAt": { + "type": "string" + }, + "currentUtilizations": { + "items": { + "$ref": "#/types/digitalocean:index/getDropletAutoscaleCurrentUtilization:getDropletAutoscaleCurrentUtilization" + }, + "type": "array" + }, + "dropletTemplates": { + "items": { + "$ref": "#/types/digitalocean:index/getDropletAutoscaleDropletTemplate:getDropletAutoscaleDropletTemplate" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "updatedAt": { + "type": "string" + } + }, + "required": [ + "configs", + "createdAt", + "currentUtilizations", + "dropletTemplates", + "status", + "updatedAt" + ], + "type": "object" + } + }, "digitalocean:index/getDropletSnapshot:getDropletSnapshot": { "description": "Droplet snapshots are saved instances of a Droplet. Use this data\nsource to retrieve the ID of a DigitalOcean Droplet snapshot for use in other\nresources.\n\n## Example Usage\n\nGet the Droplet snapshot:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as digitalocean from \"@pulumi/digitalocean\";\n\nconst web-snapshot = digitalocean.getDropletSnapshot({\n nameRegex: \"^web\",\n region: \"nyc3\",\n mostRecent: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_digitalocean as digitalocean\n\nweb_snapshot = digitalocean.get_droplet_snapshot(name_regex=\"^web\",\n region=\"nyc3\",\n most_recent=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DigitalOcean = Pulumi.DigitalOcean;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var web_snapshot = DigitalOcean.GetDropletSnapshot.Invoke(new()\n {\n NameRegex = \"^web\",\n Region = \"nyc3\",\n MostRecent = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := digitalocean.LookupDropletSnapshot(ctx, \u0026digitalocean.LookupDropletSnapshotArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^web\"),\n\t\t\tRegion: pulumi.StringRef(\"nyc3\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.digitalocean.DigitaloceanFunctions;\nimport com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()\n .nameRegex(\"^web\")\n .region(\"nyc3\")\n .mostRecent(true)\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n web-snapshot:\n fn::invoke:\n function: digitalocean:getDropletSnapshot\n arguments:\n nameRegex: ^web\n region: nyc3\n mostRecent: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreate image from snapshot:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as digitalocean from \"@pulumi/digitalocean\";\n\nconst web-snapshot = digitalocean.getDropletSnapshot({\n nameRegex: \"^web\",\n region: \"nyc3\",\n mostRecent: true,\n});\nconst from_snapshot = new digitalocean.Droplet(\"from-snapshot\", {\n image: web_snapshot.then(web_snapshot =\u003e web_snapshot.id),\n name: \"web-02\",\n region: digitalocean.Region.NYC3,\n size: digitalocean.DropletSlug.DropletS2VCPU4GB,\n});\n```\n```python\nimport pulumi\nimport pulumi_digitalocean as digitalocean\n\nweb_snapshot = digitalocean.get_droplet_snapshot(name_regex=\"^web\",\n region=\"nyc3\",\n most_recent=True)\nfrom_snapshot = digitalocean.Droplet(\"from-snapshot\",\n image=web_snapshot.id,\n name=\"web-02\",\n region=digitalocean.Region.NYC3,\n size=digitalocean.DropletSlug.DROPLET_S2_VCPU4_GB)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing DigitalOcean = Pulumi.DigitalOcean;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var web_snapshot = DigitalOcean.GetDropletSnapshot.Invoke(new()\n {\n NameRegex = \"^web\",\n Region = \"nyc3\",\n MostRecent = true,\n });\n\n var from_snapshot = new DigitalOcean.Droplet(\"from-snapshot\", new()\n {\n Image = web_snapshot.Apply(web_snapshot =\u003e web_snapshot.Apply(getDropletSnapshotResult =\u003e getDropletSnapshotResult.Id)),\n Name = \"web-02\",\n Region = DigitalOcean.Region.NYC3,\n Size = DigitalOcean.DropletSlug.DropletS2VCPU4GB,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tweb_snapshot, err := digitalocean.LookupDropletSnapshot(ctx, \u0026digitalocean.LookupDropletSnapshotArgs{\n\t\t\tNameRegex: pulumi.StringRef(\"^web\"),\n\t\t\tRegion: pulumi.StringRef(\"nyc3\"),\n\t\t\tMostRecent: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = digitalocean.NewDroplet(ctx, \"from-snapshot\", \u0026digitalocean.DropletArgs{\n\t\t\tImage: pulumi.String(web_snapshot.Id),\n\t\t\tName: pulumi.String(\"web-02\"),\n\t\t\tRegion: pulumi.String(digitalocean.RegionNYC3),\n\t\t\tSize: pulumi.String(digitalocean.DropletSlugDropletS2VCPU4GB),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.digitalocean.DigitaloceanFunctions;\nimport com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;\nimport com.pulumi.digitalocean.Droplet;\nimport com.pulumi.digitalocean.DropletArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()\n .nameRegex(\"^web\")\n .region(\"nyc3\")\n .mostRecent(true)\n .build());\n\n var from_snapshot = new Droplet(\"from-snapshot\", DropletArgs.builder()\n .image(web_snapshot.id())\n .name(\"web-02\")\n .region(\"nyc3\")\n .size(\"s-2vcpu-4gb\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n from-snapshot:\n type: digitalocean:Droplet\n properties:\n image: ${[\"web-snapshot\"].id}\n name: web-02\n region: nyc3\n size: s-2vcpu-4gb\nvariables:\n web-snapshot:\n fn::invoke:\n function: digitalocean:getDropletSnapshot\n arguments:\n nameRegex: ^web\n region: nyc3\n mostRecent: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { @@ -18786,6 +19289,49 @@ "type": "object" } }, + "digitalocean:index/getReservedIpv6:getReservedIpv6": { + "inputs": { + "description": "A collection of arguments for invoking getReservedIpv6.\n", + "properties": { + "ip": { + "type": "string" + } + }, + "type": "object", + "required": [ + "ip" + ] + }, + "outputs": { + "description": "A collection of values returned by getReservedIpv6.\n", + "properties": { + "dropletId": { + "type": "integer" + }, + "id": { + "description": "The provider-assigned unique ID for this managed resource.\n", + "type": "string" + }, + "ip": { + "type": "string" + }, + "regionSlug": { + "type": "string" + }, + "urn": { + "type": "string" + } + }, + "required": [ + "dropletId", + "ip", + "regionSlug", + "urn", + "id" + ], + "type": "object" + } + }, "digitalocean:index/getSizes:getSizes": { "description": "Retrieves information about the Droplet sizes that DigitalOcean supports, with\nthe ability to filter and sort the results. If no filters are specified, all sizes\nwill be returned.\n\n", "inputs": { diff --git a/provider/go.mod b/provider/go.mod index 5959e1d0..1fcf10b8 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -77,7 +77,7 @@ require ( github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/deckarep/golang-set/v2 v2.5.0 // indirect - github.com/digitalocean/godo v1.131.0 // indirect + github.com/digitalocean/godo v1.131.1 // indirect github.com/djherbis/times v1.5.0 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect @@ -232,12 +232,12 @@ require ( golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/mod v0.18.0 // indirect golang.org/x/net v0.28.0 // indirect - golang.org/x/oauth2 v0.23.0 // indirect + golang.org/x/oauth2 v0.24.0 // indirect golang.org/x/sync v0.8.0 // indirect golang.org/x/sys v0.25.0 // indirect golang.org/x/term v0.23.0 // indirect golang.org/x/text v0.17.0 // indirect - golang.org/x/time v0.6.0 // indirect + golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.22.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/api v0.169.0 // indirect diff --git a/provider/go.sum b/provider/go.sum index e30ec871..b2606fb6 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1334,8 +1334,8 @@ 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= github.com/deckarep/golang-set/v2 v2.5.0 h1:hn6cEZtQ0h3J8kFrHR/NrzyOoTnjgW1+FmNJzQ7y/sA= github.com/deckarep/golang-set/v2 v2.5.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= -github.com/digitalocean/godo v1.131.0 h1:0WHymufAV5avpodT0h5/pucUVfO4v7biquOIqhLeROY= -github.com/digitalocean/godo v1.131.0/go.mod h1:PU8JB6I1XYkQIdHFop8lLAY9ojp6M0XcU0TWaQSxbrc= +github.com/digitalocean/godo v1.131.1 h1:2QsRwjNukKgOQbflMxOsTDoC05o5UKBpqQMFKXegYKE= +github.com/digitalocean/godo v1.131.1/go.mod h1:PU8JB6I1XYkQIdHFop8lLAY9ojp6M0XcU0TWaQSxbrc= github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU= github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= @@ -2328,8 +2328,8 @@ golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQ golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0= golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= -golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= -golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= +golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -2516,8 +2516,8 @@ golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/provider/resources.go b/provider/resources.go index ad0ff651..c5e004dc 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -297,12 +297,13 @@ func Provider() tfbridge.ProviderInfo { "digitalocean_reserved_ip": { Tok: makeResource(digitalOceanMod, "ReservedIp"), Fields: map[string]*tfbridge.SchemaInfo{ - "urn": { - Name: "reservedIpUrn", - }, + "urn": {Name: "reservedIpUrn"}, }, }, "digitalocean_reserved_ip_assignment": {Tok: makeResource(digitalOceanMod, "ReservedIpAssignment")}, + + "digitalocean_reserved_ipv6": {Docs: &info.Doc{AllowMissing: true}}, + "digitalocean_reserved_ipv6_assignment": {Docs: &info.Doc{AllowMissing: true}}, }, ExtraTypes: map[string]schema.ComplexTypeSpec{ "digitalocean:index:Region": { @@ -579,9 +580,7 @@ func Provider() tfbridge.ProviderInfo { "digitalocean_domain": { Tok: makeDataSource(digitalOceanMod, "getDomain"), Fields: map[string]*tfbridge.SchemaInfo{ - "urn": { - Name: "domainUrn", - }, + "urn": {Name: "domainUrn"}, }, }, "digitalocean_droplet": {Tok: makeDataSource(digitalOceanMod, "getDroplet")}, @@ -589,9 +588,7 @@ func Provider() tfbridge.ProviderInfo { "digitalocean_floating_ip": { Tok: makeDataSource(digitalOceanMod, "getFloatingIp"), Fields: map[string]*tfbridge.SchemaInfo{ - "urn": { - Name: "floatingIpUrn", - }, + "urn": {Name: "floatingIpUrn"}, }, }, "digitalocean_image": {Tok: makeDataSource(digitalOceanMod, "getImage")}, @@ -600,9 +597,7 @@ func Provider() tfbridge.ProviderInfo { "digitalocean_loadbalancer": { Tok: makeDataSource(digitalOceanMod, "getLoadBalancer"), Fields: map[string]*tfbridge.SchemaInfo{ - "urn": { - Name: "loadBalancerUrn", - }, + "urn": {Name: "loadBalancerUrn"}, }, }, "digitalocean_record": {Tok: makeDataSource(digitalOceanMod, "getRecord")}, @@ -632,6 +627,7 @@ func Provider() tfbridge.ProviderInfo { "digitalocean_firewall": {Tok: makeDataSource(digitalOceanMod, "getFirewall")}, "digitalocean_database_ca": {Tok: makeDataSource(digitalOceanMod, "getDatabaseCa")}, "digitalocean_reserved_ip": {Tok: makeDataSource(digitalOceanMod, "getReservedIp")}, + "digitalocean_reserved_ipv6": {Docs: &info.Doc{AllowMissing: true}}, }, JavaScript: &tfbridge.JavaScriptInfo{ Dependencies: map[string]string{ diff --git a/sdk/dotnet/DropletAutoscale.cs b/sdk/dotnet/DropletAutoscale.cs new file mode 100644 index 00000000..c5bc55f2 --- /dev/null +++ b/sdk/dotnet/DropletAutoscale.cs @@ -0,0 +1,267 @@ +// *** 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; + +namespace Pulumi.DigitalOcean +{ + /// + /// Provides a DigitalOcean Droplet Autoscale resource. This can be used to create, modify, + /// read and delete Droplet Autoscale pools. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using DigitalOcean = Pulumi.DigitalOcean; + /// using Std = Pulumi.Std; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var my_ssh_key = new DigitalOcean.SshKey("my-ssh-key", new() + /// { + /// Name = "terraform-example", + /// PublicKey = Std.File.Invoke(new() + /// { + /// Input = "/Users/terraform/.ssh/id_rsa.pub", + /// }).Apply(invoke => invoke.Result), + /// }); + /// + /// var my_tag = new DigitalOcean.Tag("my-tag", new() + /// { + /// Name = "terraform-example", + /// }); + /// + /// var my_autoscale_pool = new DigitalOcean.DropletAutoscale("my-autoscale-pool", new() + /// { + /// Name = "terraform-example", + /// Config = new DigitalOcean.Inputs.DropletAutoscaleConfigArgs + /// { + /// MinInstances = 10, + /// MaxInstances = 50, + /// TargetCpuUtilization = 0.5, + /// TargetMemoryUtilization = 0.5, + /// CooldownMinutes = 5, + /// }, + /// DropletTemplate = new DigitalOcean.Inputs.DropletAutoscaleDropletTemplateArgs + /// { + /// Size = "c-2", + /// Region = "nyc3", + /// Image = "ubuntu-24-04-x64", + /// Tags = new[] + /// { + /// my_tag.Id, + /// }, + /// SshKeys = new[] + /// { + /// my_ssh_key.Id, + /// }, + /// WithDropletAgent = true, + /// Ipv6 = true, + /// UserData = @" + /// #cloud-config + /// runcmd: + /// - apt-get update + /// - apt-get install -y stress-ng + /// ", + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Droplet Autoscale pools can be imported using their `id`, e.g. + /// + /// ```sh + /// $ pulumi import digitalocean:index/dropletAutoscale:DropletAutoscale my-autoscale-pool 38e66834-d741-47ec-88e7-c70cbdcz0445 + /// ``` + /// + [DigitalOceanResourceType("digitalocean:index/dropletAutoscale:DropletAutoscale")] + public partial class DropletAutoscale : global::Pulumi.CustomResource + { + /// + /// The configuration parameters for Droplet Autoscale pool, the supported arguments are + /// documented below. + /// + [Output("config")] + public Output Config { get; private set; } = null!; + + /// + /// Created at timestamp for the Droplet Autoscale pool. + /// + [Output("createdAt")] + public Output CreatedAt { get; private set; } = null!; + + /// + /// The current average resource utilization of the Droplet Autoscale pool, this attribute further + /// embeds `memory` and `cpu` attributes to respectively report utilization data. + /// + [Output("currentUtilizations")] + public Output> CurrentUtilizations { get; private set; } = null!; + + /// + /// The droplet template parameters for Droplet Autoscale pool, the supported arguments + /// are documented below. + /// + [Output("dropletTemplate")] + public Output DropletTemplate { get; private set; } = null!; + + /// + /// The name of the Droplet Autoscale pool. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + /// traffic, or in an error state and needs user intervention. + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + /// + /// Updated at timestamp for the Droplet Autoscale pool. + /// + [Output("updatedAt")] + public Output UpdatedAt { get; private set; } = null!; + + + /// + /// Create a DropletAutoscale resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public DropletAutoscale(string name, DropletAutoscaleArgs args, CustomResourceOptions? options = null) + : base("digitalocean:index/dropletAutoscale:DropletAutoscale", name, args ?? new DropletAutoscaleArgs(), MakeResourceOptions(options, "")) + { + } + + private DropletAutoscale(string name, Input id, DropletAutoscaleState? state = null, CustomResourceOptions? options = null) + : base("digitalocean:index/dropletAutoscale:DropletAutoscale", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing DropletAutoscale resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static DropletAutoscale Get(string name, Input id, DropletAutoscaleState? state = null, CustomResourceOptions? options = null) + { + return new DropletAutoscale(name, id, state, options); + } + } + + public sealed class DropletAutoscaleArgs : global::Pulumi.ResourceArgs + { + /// + /// The configuration parameters for Droplet Autoscale pool, the supported arguments are + /// documented below. + /// + [Input("config", required: true)] + public Input Config { get; set; } = null!; + + /// + /// The droplet template parameters for Droplet Autoscale pool, the supported arguments + /// are documented below. + /// + [Input("dropletTemplate", required: true)] + public Input DropletTemplate { get; set; } = null!; + + /// + /// The name of the Droplet Autoscale pool. + /// + [Input("name")] + public Input? Name { get; set; } + + public DropletAutoscaleArgs() + { + } + public static new DropletAutoscaleArgs Empty => new DropletAutoscaleArgs(); + } + + public sealed class DropletAutoscaleState : global::Pulumi.ResourceArgs + { + /// + /// The configuration parameters for Droplet Autoscale pool, the supported arguments are + /// documented below. + /// + [Input("config")] + public Input? Config { get; set; } + + /// + /// Created at timestamp for the Droplet Autoscale pool. + /// + [Input("createdAt")] + public Input? CreatedAt { get; set; } + + [Input("currentUtilizations")] + private InputList? _currentUtilizations; + + /// + /// The current average resource utilization of the Droplet Autoscale pool, this attribute further + /// embeds `memory` and `cpu` attributes to respectively report utilization data. + /// + public InputList CurrentUtilizations + { + get => _currentUtilizations ?? (_currentUtilizations = new InputList()); + set => _currentUtilizations = value; + } + + /// + /// The droplet template parameters for Droplet Autoscale pool, the supported arguments + /// are documented below. + /// + [Input("dropletTemplate")] + public Input? DropletTemplate { get; set; } + + /// + /// The name of the Droplet Autoscale pool. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + /// traffic, or in an error state and needs user intervention. + /// + [Input("status")] + public Input? Status { get; set; } + + /// + /// Updated at timestamp for the Droplet Autoscale pool. + /// + [Input("updatedAt")] + public Input? UpdatedAt { get; set; } + + public DropletAutoscaleState() + { + } + public static new DropletAutoscaleState Empty => new DropletAutoscaleState(); + } +} diff --git a/sdk/dotnet/GetDropletAutoscale.cs b/sdk/dotnet/GetDropletAutoscale.cs new file mode 100644 index 00000000..fd1e5143 --- /dev/null +++ b/sdk/dotnet/GetDropletAutoscale.cs @@ -0,0 +1,181 @@ +// *** 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; + +namespace Pulumi.DigitalOcean +{ + public static class GetDropletAutoscale + { + /// + /// ## Example Usage + /// + /// Get the Droplet Autoscale pool by name: + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using DigitalOcean = Pulumi.DigitalOcean; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var my_imported_autoscale_pool = DigitalOcean.GetDropletAutoscale.Invoke(new() + /// { + /// Name = my_existing_autoscale_pool.Name, + /// }); + /// + /// }); + /// ``` + /// + /// Get the Droplet Autoscale pool by ID: + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using DigitalOcean = Pulumi.DigitalOcean; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var my_imported_autoscale_pool = DigitalOcean.GetDropletAutoscale.Invoke(new() + /// { + /// Id = my_existing_autoscale_pool.Id, + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetDropletAutoscaleArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("digitalocean:index/getDropletAutoscale:getDropletAutoscale", args ?? new GetDropletAutoscaleArgs(), options.WithDefaults()); + + /// + /// ## Example Usage + /// + /// Get the Droplet Autoscale pool by name: + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using DigitalOcean = Pulumi.DigitalOcean; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var my_imported_autoscale_pool = DigitalOcean.GetDropletAutoscale.Invoke(new() + /// { + /// Name = my_existing_autoscale_pool.Name, + /// }); + /// + /// }); + /// ``` + /// + /// Get the Droplet Autoscale pool by ID: + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using DigitalOcean = Pulumi.DigitalOcean; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var my_imported_autoscale_pool = DigitalOcean.GetDropletAutoscale.Invoke(new() + /// { + /// Id = my_existing_autoscale_pool.Id, + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetDropletAutoscaleInvokeArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("digitalocean:index/getDropletAutoscale:getDropletAutoscale", args ?? new GetDropletAutoscaleInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetDropletAutoscaleArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of Droplet Autoscale pool. + /// + [Input("id")] + public string? Id { get; set; } + + /// + /// The name of Droplet Autoscale pool. + /// + [Input("name")] + public string? Name { get; set; } + + public GetDropletAutoscaleArgs() + { + } + public static new GetDropletAutoscaleArgs Empty => new GetDropletAutoscaleArgs(); + } + + public sealed class GetDropletAutoscaleInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The ID of Droplet Autoscale pool. + /// + [Input("id")] + public Input? Id { get; set; } + + /// + /// The name of Droplet Autoscale pool. + /// + [Input("name")] + public Input? Name { get; set; } + + public GetDropletAutoscaleInvokeArgs() + { + } + public static new GetDropletAutoscaleInvokeArgs Empty => new GetDropletAutoscaleInvokeArgs(); + } + + + [OutputType] + public sealed class GetDropletAutoscaleResult + { + public readonly ImmutableArray Configs; + public readonly string CreatedAt; + public readonly ImmutableArray CurrentUtilizations; + public readonly ImmutableArray DropletTemplates; + public readonly string? Id; + public readonly string? Name; + public readonly string Status; + public readonly string UpdatedAt; + + [OutputConstructor] + private GetDropletAutoscaleResult( + ImmutableArray configs, + + string createdAt, + + ImmutableArray currentUtilizations, + + ImmutableArray dropletTemplates, + + string? id, + + string? name, + + string status, + + string updatedAt) + { + Configs = configs; + CreatedAt = createdAt; + CurrentUtilizations = currentUtilizations; + DropletTemplates = dropletTemplates; + Id = id; + Name = name; + Status = status; + UpdatedAt = updatedAt; + } + } +} diff --git a/sdk/dotnet/GetReservedIpv6.cs b/sdk/dotnet/GetReservedIpv6.cs new file mode 100644 index 00000000..a0906ce7 --- /dev/null +++ b/sdk/dotnet/GetReservedIpv6.cs @@ -0,0 +1,76 @@ +// *** 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; + +namespace Pulumi.DigitalOcean +{ + public static class GetReservedIpv6 + { + public static Task InvokeAsync(GetReservedIpv6Args args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("digitalocean:index/getReservedIpv6:getReservedIpv6", args ?? new GetReservedIpv6Args(), options.WithDefaults()); + + public static Output Invoke(GetReservedIpv6InvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("digitalocean:index/getReservedIpv6:getReservedIpv6", args ?? new GetReservedIpv6InvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetReservedIpv6Args : global::Pulumi.InvokeArgs + { + [Input("ip", required: true)] + public string Ip { get; set; } = null!; + + public GetReservedIpv6Args() + { + } + public static new GetReservedIpv6Args Empty => new GetReservedIpv6Args(); + } + + public sealed class GetReservedIpv6InvokeArgs : global::Pulumi.InvokeArgs + { + [Input("ip", required: true)] + public Input Ip { get; set; } = null!; + + public GetReservedIpv6InvokeArgs() + { + } + public static new GetReservedIpv6InvokeArgs Empty => new GetReservedIpv6InvokeArgs(); + } + + + [OutputType] + public sealed class GetReservedIpv6Result + { + public readonly int DropletId; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly string Ip; + public readonly string RegionSlug; + public readonly string Urn; + + [OutputConstructor] + private GetReservedIpv6Result( + int dropletId, + + string id, + + string ip, + + string regionSlug, + + string urn) + { + DropletId = dropletId; + Id = id; + Ip = ip; + RegionSlug = regionSlug; + Urn = urn; + } + } +} diff --git a/sdk/dotnet/Inputs/DropletAutoscaleConfigArgs.cs b/sdk/dotnet/Inputs/DropletAutoscaleConfigArgs.cs new file mode 100644 index 00000000..395d11b5 --- /dev/null +++ b/sdk/dotnet/Inputs/DropletAutoscaleConfigArgs.cs @@ -0,0 +1,58 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Inputs +{ + + public sealed class DropletAutoscaleConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// The cooldown duration between scaling events for the Droplet Autoscale pool. + /// + [Input("cooldownMinutes")] + public Input? CooldownMinutes { get; set; } + + /// + /// The maximum number of instances to maintain in the Droplet Autoscale pool. + /// + [Input("maxInstances")] + public Input? MaxInstances { get; set; } + + /// + /// The minimum number of instances to maintain in the Droplet Autoscale pool. + /// + [Input("minInstances")] + public Input? MinInstances { get; set; } + + /// + /// The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + /// + [Input("targetCpuUtilization")] + public Input? TargetCpuUtilization { get; set; } + + /// + /// The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + /// pool. + /// + [Input("targetMemoryUtilization")] + public Input? TargetMemoryUtilization { get; set; } + + /// + /// The static number of instances to maintain in the pool Droplet Autoscale pool. This + /// argument cannot be used with any other config options. + /// + [Input("targetNumberInstances")] + public Input? TargetNumberInstances { get; set; } + + public DropletAutoscaleConfigArgs() + { + } + public static new DropletAutoscaleConfigArgs Empty => new DropletAutoscaleConfigArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DropletAutoscaleConfigGetArgs.cs b/sdk/dotnet/Inputs/DropletAutoscaleConfigGetArgs.cs new file mode 100644 index 00000000..a89ac635 --- /dev/null +++ b/sdk/dotnet/Inputs/DropletAutoscaleConfigGetArgs.cs @@ -0,0 +1,58 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Inputs +{ + + public sealed class DropletAutoscaleConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The cooldown duration between scaling events for the Droplet Autoscale pool. + /// + [Input("cooldownMinutes")] + public Input? CooldownMinutes { get; set; } + + /// + /// The maximum number of instances to maintain in the Droplet Autoscale pool. + /// + [Input("maxInstances")] + public Input? MaxInstances { get; set; } + + /// + /// The minimum number of instances to maintain in the Droplet Autoscale pool. + /// + [Input("minInstances")] + public Input? MinInstances { get; set; } + + /// + /// The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + /// + [Input("targetCpuUtilization")] + public Input? TargetCpuUtilization { get; set; } + + /// + /// The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + /// pool. + /// + [Input("targetMemoryUtilization")] + public Input? TargetMemoryUtilization { get; set; } + + /// + /// The static number of instances to maintain in the pool Droplet Autoscale pool. This + /// argument cannot be used with any other config options. + /// + [Input("targetNumberInstances")] + public Input? TargetNumberInstances { get; set; } + + public DropletAutoscaleConfigGetArgs() + { + } + public static new DropletAutoscaleConfigGetArgs Empty => new DropletAutoscaleConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DropletAutoscaleCurrentUtilizationArgs.cs b/sdk/dotnet/Inputs/DropletAutoscaleCurrentUtilizationArgs.cs new file mode 100644 index 00000000..5ab20e30 --- /dev/null +++ b/sdk/dotnet/Inputs/DropletAutoscaleCurrentUtilizationArgs.cs @@ -0,0 +1,32 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Inputs +{ + + public sealed class DropletAutoscaleCurrentUtilizationArgs : global::Pulumi.ResourceArgs + { + /// + /// Average CPU utilization + /// + [Input("cpu")] + public Input? Cpu { get; set; } + + /// + /// Average Memory utilization + /// + [Input("memory")] + public Input? Memory { get; set; } + + public DropletAutoscaleCurrentUtilizationArgs() + { + } + public static new DropletAutoscaleCurrentUtilizationArgs Empty => new DropletAutoscaleCurrentUtilizationArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DropletAutoscaleCurrentUtilizationGetArgs.cs b/sdk/dotnet/Inputs/DropletAutoscaleCurrentUtilizationGetArgs.cs new file mode 100644 index 00000000..e44b69f2 --- /dev/null +++ b/sdk/dotnet/Inputs/DropletAutoscaleCurrentUtilizationGetArgs.cs @@ -0,0 +1,32 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Inputs +{ + + public sealed class DropletAutoscaleCurrentUtilizationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Average CPU utilization + /// + [Input("cpu")] + public Input? Cpu { get; set; } + + /// + /// Average Memory utilization + /// + [Input("memory")] + public Input? Memory { get; set; } + + public DropletAutoscaleCurrentUtilizationGetArgs() + { + } + public static new DropletAutoscaleCurrentUtilizationGetArgs Empty => new DropletAutoscaleCurrentUtilizationGetArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DropletAutoscaleDropletTemplateArgs.cs b/sdk/dotnet/Inputs/DropletAutoscaleDropletTemplateArgs.cs new file mode 100644 index 00000000..c0fc4eb9 --- /dev/null +++ b/sdk/dotnet/Inputs/DropletAutoscaleDropletTemplateArgs.cs @@ -0,0 +1,95 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Inputs +{ + + public sealed class DropletAutoscaleDropletTemplateArgs : global::Pulumi.ResourceArgs + { + /// + /// Image slug of the Droplet Autoscale pool underlying resource(s). + /// + [Input("image", required: true)] + public Input Image { get; set; } = null!; + + /// + /// Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + /// + [Input("ipv6")] + public Input? Ipv6 { get; set; } + + /// + /// Project UUID to create the Droplet Autoscale pool underlying resource(s). + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + /// + /// Region slug of the Droplet Autoscale pool underlying resource(s). + /// + [Input("region", required: true)] + public Input Region { get; set; } = null!; + + /// + /// Size slug of the Droplet Autoscale pool underlying resource(s). + /// + [Input("size", required: true)] + public Input Size { get; set; } = null!; + + [Input("sshKeys", required: true)] + private InputList? _sshKeys; + + /// + /// SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + /// + public InputList SshKeys + { + get => _sshKeys ?? (_sshKeys = new InputList()); + set => _sshKeys = value; + } + + [Input("tags")] + private InputList? _tags; + + /// + /// List of tags to add to the Droplet Autoscale pool underlying resource(s). + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + /// + /// Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + /// cloud init script that user may configure to setup their application workload. + /// + [Input("userData")] + public Input? UserData { get; set; } + + /// + /// VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + /// from the specified `region` (default VPC). + /// + [Input("vpcUuid")] + public Input? VpcUuid { get; set; } + + /// + /// Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + /// metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + /// + [Input("withDropletAgent")] + public Input? WithDropletAgent { get; set; } + + public DropletAutoscaleDropletTemplateArgs() + { + } + public static new DropletAutoscaleDropletTemplateArgs Empty => new DropletAutoscaleDropletTemplateArgs(); + } +} diff --git a/sdk/dotnet/Inputs/DropletAutoscaleDropletTemplateGetArgs.cs b/sdk/dotnet/Inputs/DropletAutoscaleDropletTemplateGetArgs.cs new file mode 100644 index 00000000..0585ade4 --- /dev/null +++ b/sdk/dotnet/Inputs/DropletAutoscaleDropletTemplateGetArgs.cs @@ -0,0 +1,95 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Inputs +{ + + public sealed class DropletAutoscaleDropletTemplateGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Image slug of the Droplet Autoscale pool underlying resource(s). + /// + [Input("image", required: true)] + public Input Image { get; set; } = null!; + + /// + /// Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + /// + [Input("ipv6")] + public Input? Ipv6 { get; set; } + + /// + /// Project UUID to create the Droplet Autoscale pool underlying resource(s). + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + /// + /// Region slug of the Droplet Autoscale pool underlying resource(s). + /// + [Input("region", required: true)] + public Input Region { get; set; } = null!; + + /// + /// Size slug of the Droplet Autoscale pool underlying resource(s). + /// + [Input("size", required: true)] + public Input Size { get; set; } = null!; + + [Input("sshKeys", required: true)] + private InputList? _sshKeys; + + /// + /// SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + /// + public InputList SshKeys + { + get => _sshKeys ?? (_sshKeys = new InputList()); + set => _sshKeys = value; + } + + [Input("tags")] + private InputList? _tags; + + /// + /// List of tags to add to the Droplet Autoscale pool underlying resource(s). + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + /// + /// Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + /// cloud init script that user may configure to setup their application workload. + /// + [Input("userData")] + public Input? UserData { get; set; } + + /// + /// VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + /// from the specified `region` (default VPC). + /// + [Input("vpcUuid")] + public Input? VpcUuid { get; set; } + + /// + /// Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + /// metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + /// + [Input("withDropletAgent")] + public Input? WithDropletAgent { get; set; } + + public DropletAutoscaleDropletTemplateGetArgs() + { + } + public static new DropletAutoscaleDropletTemplateGetArgs Empty => new DropletAutoscaleDropletTemplateGetArgs(); + } +} diff --git a/sdk/dotnet/LoadBalancer.cs b/sdk/dotnet/LoadBalancer.cs index 6824ccaa..a50a76be 100644 --- a/sdk/dotnet/LoadBalancer.cs +++ b/sdk/dotnet/LoadBalancer.cs @@ -176,7 +176,6 @@ public partial class LoadBalancer : global::Pulumi.CustomResource /// /// The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - /// **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. /// [Output("network")] public Output Network { get; private set; } = null!; @@ -208,7 +207,7 @@ public partial class LoadBalancer : global::Pulumi.CustomResource public Output Size { get; private set; } = null!; /// - /// The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + /// The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. /// [Output("sizeUnit")] public Output SizeUnit { get; private set; } = null!; @@ -230,7 +229,7 @@ public partial class LoadBalancer : global::Pulumi.CustomResource public Output> TargetLoadBalancerIds { get; private set; } = null!; /// - /// The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + /// The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. /// **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. /// [Output("type")] @@ -391,7 +390,6 @@ public InputList ForwardingRules /// /// The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - /// **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. /// [Input("network")] public Input? Network { get; set; } @@ -423,7 +421,7 @@ public InputList ForwardingRules public Input? Size { get; set; } /// - /// The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + /// The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. /// [Input("sizeUnit")] public Input? SizeUnit { get; set; } @@ -448,7 +446,7 @@ public InputList TargetLoadBalancerIds } /// - /// The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + /// The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. /// **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. /// [Input("type")] @@ -586,7 +584,6 @@ public InputList ForwardingRules /// /// The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - /// **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. /// [Input("network")] public Input? Network { get; set; } @@ -618,7 +615,7 @@ public InputList ForwardingRules public Input? Size { get; set; } /// - /// The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + /// The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. /// [Input("sizeUnit")] public Input? SizeUnit { get; set; } @@ -646,7 +643,7 @@ public InputList TargetLoadBalancerIds } /// - /// The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + /// The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. /// **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. /// [Input("type")] diff --git a/sdk/dotnet/Outputs/DropletAutoscaleConfig.cs b/sdk/dotnet/Outputs/DropletAutoscaleConfig.cs new file mode 100644 index 00000000..aa31a1f5 --- /dev/null +++ b/sdk/dotnet/Outputs/DropletAutoscaleConfig.cs @@ -0,0 +1,65 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Outputs +{ + + [OutputType] + public sealed class DropletAutoscaleConfig + { + /// + /// The cooldown duration between scaling events for the Droplet Autoscale pool. + /// + public readonly int? CooldownMinutes; + /// + /// The maximum number of instances to maintain in the Droplet Autoscale pool. + /// + public readonly int? MaxInstances; + /// + /// The minimum number of instances to maintain in the Droplet Autoscale pool. + /// + public readonly int? MinInstances; + /// + /// The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + /// + public readonly double? TargetCpuUtilization; + /// + /// The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + /// pool. + /// + public readonly double? TargetMemoryUtilization; + /// + /// The static number of instances to maintain in the pool Droplet Autoscale pool. This + /// argument cannot be used with any other config options. + /// + public readonly int? TargetNumberInstances; + + [OutputConstructor] + private DropletAutoscaleConfig( + int? cooldownMinutes, + + int? maxInstances, + + int? minInstances, + + double? targetCpuUtilization, + + double? targetMemoryUtilization, + + int? targetNumberInstances) + { + CooldownMinutes = cooldownMinutes; + MaxInstances = maxInstances; + MinInstances = minInstances; + TargetCpuUtilization = targetCpuUtilization; + TargetMemoryUtilization = targetMemoryUtilization; + TargetNumberInstances = targetNumberInstances; + } + } +} diff --git a/sdk/dotnet/Outputs/DropletAutoscaleCurrentUtilization.cs b/sdk/dotnet/Outputs/DropletAutoscaleCurrentUtilization.cs new file mode 100644 index 00000000..2e21e610 --- /dev/null +++ b/sdk/dotnet/Outputs/DropletAutoscaleCurrentUtilization.cs @@ -0,0 +1,35 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Outputs +{ + + [OutputType] + public sealed class DropletAutoscaleCurrentUtilization + { + /// + /// Average CPU utilization + /// + public readonly double? Cpu; + /// + /// Average Memory utilization + /// + public readonly double? Memory; + + [OutputConstructor] + private DropletAutoscaleCurrentUtilization( + double? cpu, + + double? memory) + { + Cpu = cpu; + Memory = memory; + } + } +} diff --git a/sdk/dotnet/Outputs/DropletAutoscaleDropletTemplate.cs b/sdk/dotnet/Outputs/DropletAutoscaleDropletTemplate.cs new file mode 100644 index 00000000..fef615a9 --- /dev/null +++ b/sdk/dotnet/Outputs/DropletAutoscaleDropletTemplate.cs @@ -0,0 +1,94 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Outputs +{ + + [OutputType] + public sealed class DropletAutoscaleDropletTemplate + { + /// + /// Image slug of the Droplet Autoscale pool underlying resource(s). + /// + public readonly string Image; + /// + /// Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + /// + public readonly bool? Ipv6; + /// + /// Project UUID to create the Droplet Autoscale pool underlying resource(s). + /// + public readonly string? ProjectId; + /// + /// Region slug of the Droplet Autoscale pool underlying resource(s). + /// + public readonly string Region; + /// + /// Size slug of the Droplet Autoscale pool underlying resource(s). + /// + public readonly string Size; + /// + /// SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + /// + public readonly ImmutableArray SshKeys; + /// + /// List of tags to add to the Droplet Autoscale pool underlying resource(s). + /// + public readonly ImmutableArray Tags; + /// + /// Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + /// cloud init script that user may configure to setup their application workload. + /// + public readonly string? UserData; + /// + /// VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + /// from the specified `region` (default VPC). + /// + public readonly string? VpcUuid; + /// + /// Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + /// metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + /// + public readonly bool? WithDropletAgent; + + [OutputConstructor] + private DropletAutoscaleDropletTemplate( + string image, + + bool? ipv6, + + string? projectId, + + string region, + + string size, + + ImmutableArray sshKeys, + + ImmutableArray tags, + + string? userData, + + string? vpcUuid, + + bool? withDropletAgent) + { + Image = image; + Ipv6 = ipv6; + ProjectId = projectId; + Region = region; + Size = size; + SshKeys = sshKeys; + Tags = tags; + UserData = userData; + VpcUuid = vpcUuid; + WithDropletAgent = withDropletAgent; + } + } +} diff --git a/sdk/dotnet/Outputs/GetDropletAutoscaleConfigResult.cs b/sdk/dotnet/Outputs/GetDropletAutoscaleConfigResult.cs new file mode 100644 index 00000000..f2247c58 --- /dev/null +++ b/sdk/dotnet/Outputs/GetDropletAutoscaleConfigResult.cs @@ -0,0 +1,63 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Outputs +{ + + [OutputType] + public sealed class GetDropletAutoscaleConfigResult + { + /// + /// Cooldown duration + /// + public readonly int CooldownMinutes; + /// + /// Max number of members + /// + public readonly int MaxInstances; + /// + /// Min number of members + /// + public readonly int MinInstances; + /// + /// CPU target threshold + /// + public readonly double TargetCpuUtilization; + /// + /// Memory target threshold + /// + public readonly double TargetMemoryUtilization; + /// + /// Target number of members + /// + public readonly int TargetNumberInstances; + + [OutputConstructor] + private GetDropletAutoscaleConfigResult( + int cooldownMinutes, + + int maxInstances, + + int minInstances, + + double targetCpuUtilization, + + double targetMemoryUtilization, + + int targetNumberInstances) + { + CooldownMinutes = cooldownMinutes; + MaxInstances = maxInstances; + MinInstances = minInstances; + TargetCpuUtilization = targetCpuUtilization; + TargetMemoryUtilization = targetMemoryUtilization; + TargetNumberInstances = targetNumberInstances; + } + } +} diff --git a/sdk/dotnet/Outputs/GetDropletAutoscaleCurrentUtilizationResult.cs b/sdk/dotnet/Outputs/GetDropletAutoscaleCurrentUtilizationResult.cs new file mode 100644 index 00000000..27049d9c --- /dev/null +++ b/sdk/dotnet/Outputs/GetDropletAutoscaleCurrentUtilizationResult.cs @@ -0,0 +1,35 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Outputs +{ + + [OutputType] + public sealed class GetDropletAutoscaleCurrentUtilizationResult + { + /// + /// Average CPU utilization + /// + public readonly double Cpu; + /// + /// Average Memory utilization + /// + public readonly double Memory; + + [OutputConstructor] + private GetDropletAutoscaleCurrentUtilizationResult( + double cpu, + + double memory) + { + Cpu = cpu; + Memory = memory; + } + } +} diff --git a/sdk/dotnet/Outputs/GetDropletAutoscaleDropletTemplateResult.cs b/sdk/dotnet/Outputs/GetDropletAutoscaleDropletTemplateResult.cs new file mode 100644 index 00000000..8d9e3715 --- /dev/null +++ b/sdk/dotnet/Outputs/GetDropletAutoscaleDropletTemplateResult.cs @@ -0,0 +1,91 @@ +// *** 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; + +namespace Pulumi.DigitalOcean.Outputs +{ + + [OutputType] + public sealed class GetDropletAutoscaleDropletTemplateResult + { + /// + /// Droplet image + /// + public readonly string Image; + /// + /// Enable droplet IPv6 + /// + public readonly bool Ipv6; + /// + /// Droplet project ID + /// + public readonly string ProjectId; + /// + /// Droplet region + /// + public readonly string Region; + /// + /// Droplet size + /// + public readonly string Size; + /// + /// Droplet SSH keys + /// + public readonly ImmutableArray SshKeys; + /// + /// Droplet tags + /// + public readonly ImmutableArray Tags; + /// + /// Droplet user data + /// + public readonly string UserData; + /// + /// Droplet VPC UUID + /// + public readonly string VpcUuid; + /// + /// Enable droplet agent + /// + public readonly bool WithDropletAgent; + + [OutputConstructor] + private GetDropletAutoscaleDropletTemplateResult( + string image, + + bool ipv6, + + string projectId, + + string region, + + string size, + + ImmutableArray sshKeys, + + ImmutableArray tags, + + string userData, + + string vpcUuid, + + bool withDropletAgent) + { + Image = image; + Ipv6 = ipv6; + ProjectId = projectId; + Region = region; + Size = size; + SshKeys = sshKeys; + Tags = tags; + UserData = userData; + VpcUuid = vpcUuid; + WithDropletAgent = withDropletAgent; + } + } +} diff --git a/sdk/dotnet/ReservedIpv6.cs b/sdk/dotnet/ReservedIpv6.cs new file mode 100644 index 00000000..df8ceea0 --- /dev/null +++ b/sdk/dotnet/ReservedIpv6.cs @@ -0,0 +1,113 @@ +// *** 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; + +namespace Pulumi.DigitalOcean +{ + [DigitalOceanResourceType("digitalocean:index/reservedIpv6:ReservedIpv6")] + public partial class ReservedIpv6 : global::Pulumi.CustomResource + { + [Output("dropletId")] + public Output DropletId { get; private set; } = null!; + + [Output("ip")] + public Output Ip { get; private set; } = null!; + + [Output("regionSlug")] + public Output RegionSlug { get; private set; } = null!; + + /// + /// the uniform resource name for the reserved ipv6 + /// + [Output("urn")] + public Output Urn { get; private set; } = null!; + + + /// + /// Create a ReservedIpv6 resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ReservedIpv6(string name, ReservedIpv6Args args, CustomResourceOptions? options = null) + : base("digitalocean:index/reservedIpv6:ReservedIpv6", name, args ?? new ReservedIpv6Args(), MakeResourceOptions(options, "")) + { + } + + private ReservedIpv6(string name, Input id, ReservedIpv6State? state = null, CustomResourceOptions? options = null) + : base("digitalocean:index/reservedIpv6:ReservedIpv6", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ReservedIpv6 resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ReservedIpv6 Get(string name, Input id, ReservedIpv6State? state = null, CustomResourceOptions? options = null) + { + return new ReservedIpv6(name, id, state, options); + } + } + + public sealed class ReservedIpv6Args : global::Pulumi.ResourceArgs + { + [Input("dropletId")] + public Input? DropletId { get; set; } + + [Input("ip")] + public Input? Ip { get; set; } + + [Input("regionSlug", required: true)] + public Input RegionSlug { get; set; } = null!; + + public ReservedIpv6Args() + { + } + public static new ReservedIpv6Args Empty => new ReservedIpv6Args(); + } + + public sealed class ReservedIpv6State : global::Pulumi.ResourceArgs + { + [Input("dropletId")] + public Input? DropletId { get; set; } + + [Input("ip")] + public Input? Ip { get; set; } + + [Input("regionSlug")] + public Input? RegionSlug { get; set; } + + /// + /// the uniform resource name for the reserved ipv6 + /// + [Input("urn")] + public Input? Urn { get; set; } + + public ReservedIpv6State() + { + } + public static new ReservedIpv6State Empty => new ReservedIpv6State(); + } +} diff --git a/sdk/dotnet/ReservedIpv6Assignment.cs b/sdk/dotnet/ReservedIpv6Assignment.cs new file mode 100644 index 00000000..61d343a7 --- /dev/null +++ b/sdk/dotnet/ReservedIpv6Assignment.cs @@ -0,0 +1,92 @@ +// *** 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; + +namespace Pulumi.DigitalOcean +{ + [DigitalOceanResourceType("digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment")] + public partial class ReservedIpv6Assignment : global::Pulumi.CustomResource + { + [Output("dropletId")] + public Output DropletId { get; private set; } = null!; + + [Output("ip")] + public Output Ip { get; private set; } = null!; + + + /// + /// Create a ReservedIpv6Assignment resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ReservedIpv6Assignment(string name, ReservedIpv6AssignmentArgs args, CustomResourceOptions? options = null) + : base("digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment", name, args ?? new ReservedIpv6AssignmentArgs(), MakeResourceOptions(options, "")) + { + } + + private ReservedIpv6Assignment(string name, Input id, ReservedIpv6AssignmentState? state = null, CustomResourceOptions? options = null) + : base("digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ReservedIpv6Assignment resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ReservedIpv6Assignment Get(string name, Input id, ReservedIpv6AssignmentState? state = null, CustomResourceOptions? options = null) + { + return new ReservedIpv6Assignment(name, id, state, options); + } + } + + public sealed class ReservedIpv6AssignmentArgs : global::Pulumi.ResourceArgs + { + [Input("dropletId", required: true)] + public Input DropletId { get; set; } = null!; + + [Input("ip", required: true)] + public Input Ip { get; set; } = null!; + + public ReservedIpv6AssignmentArgs() + { + } + public static new ReservedIpv6AssignmentArgs Empty => new ReservedIpv6AssignmentArgs(); + } + + public sealed class ReservedIpv6AssignmentState : global::Pulumi.ResourceArgs + { + [Input("dropletId")] + public Input? DropletId { get; set; } + + [Input("ip")] + public Input? Ip { get; set; } + + public ReservedIpv6AssignmentState() + { + } + public static new ReservedIpv6AssignmentState Empty => new ReservedIpv6AssignmentState(); + } +} diff --git a/sdk/go/digitalocean/dropletAutoscale.go b/sdk/go/digitalocean/dropletAutoscale.go new file mode 100644 index 00000000..f2d399f3 --- /dev/null +++ b/sdk/go/digitalocean/dropletAutoscale.go @@ -0,0 +1,399 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package digitalocean + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides a DigitalOcean Droplet Autoscale resource. This can be used to create, modify, +// read and delete Droplet Autoscale pools. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean" +// "github.com/pulumi/pulumi-std/sdk/go/std" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// invokeFile, err := std.File(ctx, &std.FileArgs{ +// Input: "/Users/terraform/.ssh/id_rsa.pub", +// }, nil) +// if err != nil { +// return err +// } +// _, err = digitalocean.NewSshKey(ctx, "my-ssh-key", &digitalocean.SshKeyArgs{ +// Name: pulumi.String("terraform-example"), +// PublicKey: pulumi.String(invokeFile.Result), +// }) +// if err != nil { +// return err +// } +// _, err = digitalocean.NewTag(ctx, "my-tag", &digitalocean.TagArgs{ +// Name: pulumi.String("terraform-example"), +// }) +// if err != nil { +// return err +// } +// _, err = digitalocean.NewDropletAutoscale(ctx, "my-autoscale-pool", &digitalocean.DropletAutoscaleArgs{ +// Name: pulumi.String("terraform-example"), +// Config: &digitalocean.DropletAutoscaleConfigArgs{ +// MinInstances: pulumi.Int(10), +// MaxInstances: pulumi.Int(50), +// TargetCpuUtilization: pulumi.Float64(0.5), +// TargetMemoryUtilization: pulumi.Float64(0.5), +// CooldownMinutes: pulumi.Int(5), +// }, +// DropletTemplate: &digitalocean.DropletAutoscaleDropletTemplateArgs{ +// Size: pulumi.String("c-2"), +// Region: pulumi.String("nyc3"), +// Image: pulumi.String("ubuntu-24-04-x64"), +// Tags: pulumi.StringArray{ +// my_tag.ID(), +// }, +// SshKeys: pulumi.StringArray{ +// my_ssh_key.ID(), +// }, +// WithDropletAgent: pulumi.Bool(true), +// Ipv6: pulumi.Bool(true), +// UserData: pulumi.String(` +// +// #cloud-config +// runcmd: +// - apt-get update +// - apt-get install -y stress-ng +// `), +// +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Droplet Autoscale pools can be imported using their `id`, e.g. +// +// ```sh +// $ pulumi import digitalocean:index/dropletAutoscale:DropletAutoscale my-autoscale-pool 38e66834-d741-47ec-88e7-c70cbdcz0445 +// ``` +type DropletAutoscale struct { + pulumi.CustomResourceState + + // The configuration parameters for Droplet Autoscale pool, the supported arguments are + // documented below. + Config DropletAutoscaleConfigOutput `pulumi:"config"` + // Created at timestamp for the Droplet Autoscale pool. + CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // The current average resource utilization of the Droplet Autoscale pool, this attribute further + // embeds `memory` and `cpu` attributes to respectively report utilization data. + CurrentUtilizations DropletAutoscaleCurrentUtilizationArrayOutput `pulumi:"currentUtilizations"` + // The droplet template parameters for Droplet Autoscale pool, the supported arguments + // are documented below. + DropletTemplate DropletAutoscaleDropletTemplateOutput `pulumi:"dropletTemplate"` + // The name of the Droplet Autoscale pool. + Name pulumi.StringOutput `pulumi:"name"` + // Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + // traffic, or in an error state and needs user intervention. + Status pulumi.StringOutput `pulumi:"status"` + // Updated at timestamp for the Droplet Autoscale pool. + UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"` +} + +// NewDropletAutoscale registers a new resource with the given unique name, arguments, and options. +func NewDropletAutoscale(ctx *pulumi.Context, + name string, args *DropletAutoscaleArgs, opts ...pulumi.ResourceOption) (*DropletAutoscale, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Config == nil { + return nil, errors.New("invalid value for required argument 'Config'") + } + if args.DropletTemplate == nil { + return nil, errors.New("invalid value for required argument 'DropletTemplate'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource DropletAutoscale + err := ctx.RegisterResource("digitalocean:index/dropletAutoscale:DropletAutoscale", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDropletAutoscale gets an existing DropletAutoscale resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDropletAutoscale(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DropletAutoscaleState, opts ...pulumi.ResourceOption) (*DropletAutoscale, error) { + var resource DropletAutoscale + err := ctx.ReadResource("digitalocean:index/dropletAutoscale:DropletAutoscale", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DropletAutoscale resources. +type dropletAutoscaleState struct { + // The configuration parameters for Droplet Autoscale pool, the supported arguments are + // documented below. + Config *DropletAutoscaleConfig `pulumi:"config"` + // Created at timestamp for the Droplet Autoscale pool. + CreatedAt *string `pulumi:"createdAt"` + // The current average resource utilization of the Droplet Autoscale pool, this attribute further + // embeds `memory` and `cpu` attributes to respectively report utilization data. + CurrentUtilizations []DropletAutoscaleCurrentUtilization `pulumi:"currentUtilizations"` + // The droplet template parameters for Droplet Autoscale pool, the supported arguments + // are documented below. + DropletTemplate *DropletAutoscaleDropletTemplate `pulumi:"dropletTemplate"` + // The name of the Droplet Autoscale pool. + Name *string `pulumi:"name"` + // Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + // traffic, or in an error state and needs user intervention. + Status *string `pulumi:"status"` + // Updated at timestamp for the Droplet Autoscale pool. + UpdatedAt *string `pulumi:"updatedAt"` +} + +type DropletAutoscaleState struct { + // The configuration parameters for Droplet Autoscale pool, the supported arguments are + // documented below. + Config DropletAutoscaleConfigPtrInput + // Created at timestamp for the Droplet Autoscale pool. + CreatedAt pulumi.StringPtrInput + // The current average resource utilization of the Droplet Autoscale pool, this attribute further + // embeds `memory` and `cpu` attributes to respectively report utilization data. + CurrentUtilizations DropletAutoscaleCurrentUtilizationArrayInput + // The droplet template parameters for Droplet Autoscale pool, the supported arguments + // are documented below. + DropletTemplate DropletAutoscaleDropletTemplatePtrInput + // The name of the Droplet Autoscale pool. + Name pulumi.StringPtrInput + // Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + // traffic, or in an error state and needs user intervention. + Status pulumi.StringPtrInput + // Updated at timestamp for the Droplet Autoscale pool. + UpdatedAt pulumi.StringPtrInput +} + +func (DropletAutoscaleState) ElementType() reflect.Type { + return reflect.TypeOf((*dropletAutoscaleState)(nil)).Elem() +} + +type dropletAutoscaleArgs struct { + // The configuration parameters for Droplet Autoscale pool, the supported arguments are + // documented below. + Config DropletAutoscaleConfig `pulumi:"config"` + // The droplet template parameters for Droplet Autoscale pool, the supported arguments + // are documented below. + DropletTemplate DropletAutoscaleDropletTemplate `pulumi:"dropletTemplate"` + // The name of the Droplet Autoscale pool. + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a DropletAutoscale resource. +type DropletAutoscaleArgs struct { + // The configuration parameters for Droplet Autoscale pool, the supported arguments are + // documented below. + Config DropletAutoscaleConfigInput + // The droplet template parameters for Droplet Autoscale pool, the supported arguments + // are documented below. + DropletTemplate DropletAutoscaleDropletTemplateInput + // The name of the Droplet Autoscale pool. + Name pulumi.StringPtrInput +} + +func (DropletAutoscaleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*dropletAutoscaleArgs)(nil)).Elem() +} + +type DropletAutoscaleInput interface { + pulumi.Input + + ToDropletAutoscaleOutput() DropletAutoscaleOutput + ToDropletAutoscaleOutputWithContext(ctx context.Context) DropletAutoscaleOutput +} + +func (*DropletAutoscale) ElementType() reflect.Type { + return reflect.TypeOf((**DropletAutoscale)(nil)).Elem() +} + +func (i *DropletAutoscale) ToDropletAutoscaleOutput() DropletAutoscaleOutput { + return i.ToDropletAutoscaleOutputWithContext(context.Background()) +} + +func (i *DropletAutoscale) ToDropletAutoscaleOutputWithContext(ctx context.Context) DropletAutoscaleOutput { + return pulumi.ToOutputWithContext(ctx, i).(DropletAutoscaleOutput) +} + +// DropletAutoscaleArrayInput is an input type that accepts DropletAutoscaleArray and DropletAutoscaleArrayOutput values. +// You can construct a concrete instance of `DropletAutoscaleArrayInput` via: +// +// DropletAutoscaleArray{ DropletAutoscaleArgs{...} } +type DropletAutoscaleArrayInput interface { + pulumi.Input + + ToDropletAutoscaleArrayOutput() DropletAutoscaleArrayOutput + ToDropletAutoscaleArrayOutputWithContext(context.Context) DropletAutoscaleArrayOutput +} + +type DropletAutoscaleArray []DropletAutoscaleInput + +func (DropletAutoscaleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DropletAutoscale)(nil)).Elem() +} + +func (i DropletAutoscaleArray) ToDropletAutoscaleArrayOutput() DropletAutoscaleArrayOutput { + return i.ToDropletAutoscaleArrayOutputWithContext(context.Background()) +} + +func (i DropletAutoscaleArray) ToDropletAutoscaleArrayOutputWithContext(ctx context.Context) DropletAutoscaleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DropletAutoscaleArrayOutput) +} + +// DropletAutoscaleMapInput is an input type that accepts DropletAutoscaleMap and DropletAutoscaleMapOutput values. +// You can construct a concrete instance of `DropletAutoscaleMapInput` via: +// +// DropletAutoscaleMap{ "key": DropletAutoscaleArgs{...} } +type DropletAutoscaleMapInput interface { + pulumi.Input + + ToDropletAutoscaleMapOutput() DropletAutoscaleMapOutput + ToDropletAutoscaleMapOutputWithContext(context.Context) DropletAutoscaleMapOutput +} + +type DropletAutoscaleMap map[string]DropletAutoscaleInput + +func (DropletAutoscaleMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DropletAutoscale)(nil)).Elem() +} + +func (i DropletAutoscaleMap) ToDropletAutoscaleMapOutput() DropletAutoscaleMapOutput { + return i.ToDropletAutoscaleMapOutputWithContext(context.Background()) +} + +func (i DropletAutoscaleMap) ToDropletAutoscaleMapOutputWithContext(ctx context.Context) DropletAutoscaleMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DropletAutoscaleMapOutput) +} + +type DropletAutoscaleOutput struct{ *pulumi.OutputState } + +func (DropletAutoscaleOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DropletAutoscale)(nil)).Elem() +} + +func (o DropletAutoscaleOutput) ToDropletAutoscaleOutput() DropletAutoscaleOutput { + return o +} + +func (o DropletAutoscaleOutput) ToDropletAutoscaleOutputWithContext(ctx context.Context) DropletAutoscaleOutput { + return o +} + +// The configuration parameters for Droplet Autoscale pool, the supported arguments are +// documented below. +func (o DropletAutoscaleOutput) Config() DropletAutoscaleConfigOutput { + return o.ApplyT(func(v *DropletAutoscale) DropletAutoscaleConfigOutput { return v.Config }).(DropletAutoscaleConfigOutput) +} + +// Created at timestamp for the Droplet Autoscale pool. +func (o DropletAutoscaleOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *DropletAutoscale) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) +} + +// The current average resource utilization of the Droplet Autoscale pool, this attribute further +// embeds `memory` and `cpu` attributes to respectively report utilization data. +func (o DropletAutoscaleOutput) CurrentUtilizations() DropletAutoscaleCurrentUtilizationArrayOutput { + return o.ApplyT(func(v *DropletAutoscale) DropletAutoscaleCurrentUtilizationArrayOutput { return v.CurrentUtilizations }).(DropletAutoscaleCurrentUtilizationArrayOutput) +} + +// The droplet template parameters for Droplet Autoscale pool, the supported arguments +// are documented below. +func (o DropletAutoscaleOutput) DropletTemplate() DropletAutoscaleDropletTemplateOutput { + return o.ApplyT(func(v *DropletAutoscale) DropletAutoscaleDropletTemplateOutput { return v.DropletTemplate }).(DropletAutoscaleDropletTemplateOutput) +} + +// The name of the Droplet Autoscale pool. +func (o DropletAutoscaleOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *DropletAutoscale) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept +// traffic, or in an error state and needs user intervention. +func (o DropletAutoscaleOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v *DropletAutoscale) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) +} + +// Updated at timestamp for the Droplet Autoscale pool. +func (o DropletAutoscaleOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v *DropletAutoscale) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput) +} + +type DropletAutoscaleArrayOutput struct{ *pulumi.OutputState } + +func (DropletAutoscaleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DropletAutoscale)(nil)).Elem() +} + +func (o DropletAutoscaleArrayOutput) ToDropletAutoscaleArrayOutput() DropletAutoscaleArrayOutput { + return o +} + +func (o DropletAutoscaleArrayOutput) ToDropletAutoscaleArrayOutputWithContext(ctx context.Context) DropletAutoscaleArrayOutput { + return o +} + +func (o DropletAutoscaleArrayOutput) Index(i pulumi.IntInput) DropletAutoscaleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DropletAutoscale { + return vs[0].([]*DropletAutoscale)[vs[1].(int)] + }).(DropletAutoscaleOutput) +} + +type DropletAutoscaleMapOutput struct{ *pulumi.OutputState } + +func (DropletAutoscaleMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DropletAutoscale)(nil)).Elem() +} + +func (o DropletAutoscaleMapOutput) ToDropletAutoscaleMapOutput() DropletAutoscaleMapOutput { + return o +} + +func (o DropletAutoscaleMapOutput) ToDropletAutoscaleMapOutputWithContext(ctx context.Context) DropletAutoscaleMapOutput { + return o +} + +func (o DropletAutoscaleMapOutput) MapIndex(k pulumi.StringInput) DropletAutoscaleOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DropletAutoscale { + return vs[0].(map[string]*DropletAutoscale)[vs[1].(string)] + }).(DropletAutoscaleOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DropletAutoscaleInput)(nil)).Elem(), &DropletAutoscale{}) + pulumi.RegisterInputType(reflect.TypeOf((*DropletAutoscaleArrayInput)(nil)).Elem(), DropletAutoscaleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DropletAutoscaleMapInput)(nil)).Elem(), DropletAutoscaleMap{}) + pulumi.RegisterOutputType(DropletAutoscaleOutput{}) + pulumi.RegisterOutputType(DropletAutoscaleArrayOutput{}) + pulumi.RegisterOutputType(DropletAutoscaleMapOutput{}) +} diff --git a/sdk/go/digitalocean/getDropletAutoscale.go b/sdk/go/digitalocean/getDropletAutoscale.go new file mode 100644 index 00000000..7f155484 --- /dev/null +++ b/sdk/go/digitalocean/getDropletAutoscale.go @@ -0,0 +1,179 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package digitalocean + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// Get the Droplet Autoscale pool by name: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := digitalocean.LookupDropletAutoscale(ctx, &digitalocean.LookupDropletAutoscaleArgs{ +// Name: pulumi.StringRef(my_existing_autoscale_pool.Name), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// Get the Droplet Autoscale pool by ID: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := digitalocean.LookupDropletAutoscale(ctx, &digitalocean.LookupDropletAutoscaleArgs{ +// Id: pulumi.StringRef(my_existing_autoscale_pool.Id), +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupDropletAutoscale(ctx *pulumi.Context, args *LookupDropletAutoscaleArgs, opts ...pulumi.InvokeOption) (*LookupDropletAutoscaleResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupDropletAutoscaleResult + err := ctx.Invoke("digitalocean:index/getDropletAutoscale:getDropletAutoscale", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getDropletAutoscale. +type LookupDropletAutoscaleArgs struct { + // The ID of Droplet Autoscale pool. + Id *string `pulumi:"id"` + // The name of Droplet Autoscale pool. + Name *string `pulumi:"name"` +} + +// A collection of values returned by getDropletAutoscale. +type LookupDropletAutoscaleResult struct { + Configs []GetDropletAutoscaleConfig `pulumi:"configs"` + CreatedAt string `pulumi:"createdAt"` + CurrentUtilizations []GetDropletAutoscaleCurrentUtilization `pulumi:"currentUtilizations"` + DropletTemplates []GetDropletAutoscaleDropletTemplate `pulumi:"dropletTemplates"` + Id *string `pulumi:"id"` + Name *string `pulumi:"name"` + Status string `pulumi:"status"` + UpdatedAt string `pulumi:"updatedAt"` +} + +func LookupDropletAutoscaleOutput(ctx *pulumi.Context, args LookupDropletAutoscaleOutputArgs, opts ...pulumi.InvokeOption) LookupDropletAutoscaleResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupDropletAutoscaleResultOutput, error) { + args := v.(LookupDropletAutoscaleArgs) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupDropletAutoscaleResult + secret, err := ctx.InvokePackageRaw("digitalocean:index/getDropletAutoscale:getDropletAutoscale", args, &rv, "", opts...) + if err != nil { + return LookupDropletAutoscaleResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupDropletAutoscaleResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupDropletAutoscaleResultOutput), nil + } + return output, nil + }).(LookupDropletAutoscaleResultOutput) +} + +// A collection of arguments for invoking getDropletAutoscale. +type LookupDropletAutoscaleOutputArgs struct { + // The ID of Droplet Autoscale pool. + Id pulumi.StringPtrInput `pulumi:"id"` + // The name of Droplet Autoscale pool. + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (LookupDropletAutoscaleOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDropletAutoscaleArgs)(nil)).Elem() +} + +// A collection of values returned by getDropletAutoscale. +type LookupDropletAutoscaleResultOutput struct{ *pulumi.OutputState } + +func (LookupDropletAutoscaleResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupDropletAutoscaleResult)(nil)).Elem() +} + +func (o LookupDropletAutoscaleResultOutput) ToLookupDropletAutoscaleResultOutput() LookupDropletAutoscaleResultOutput { + return o +} + +func (o LookupDropletAutoscaleResultOutput) ToLookupDropletAutoscaleResultOutputWithContext(ctx context.Context) LookupDropletAutoscaleResultOutput { + return o +} + +func (o LookupDropletAutoscaleResultOutput) Configs() GetDropletAutoscaleConfigArrayOutput { + return o.ApplyT(func(v LookupDropletAutoscaleResult) []GetDropletAutoscaleConfig { return v.Configs }).(GetDropletAutoscaleConfigArrayOutput) +} + +func (o LookupDropletAutoscaleResultOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v LookupDropletAutoscaleResult) string { return v.CreatedAt }).(pulumi.StringOutput) +} + +func (o LookupDropletAutoscaleResultOutput) CurrentUtilizations() GetDropletAutoscaleCurrentUtilizationArrayOutput { + return o.ApplyT(func(v LookupDropletAutoscaleResult) []GetDropletAutoscaleCurrentUtilization { + return v.CurrentUtilizations + }).(GetDropletAutoscaleCurrentUtilizationArrayOutput) +} + +func (o LookupDropletAutoscaleResultOutput) DropletTemplates() GetDropletAutoscaleDropletTemplateArrayOutput { + return o.ApplyT(func(v LookupDropletAutoscaleResult) []GetDropletAutoscaleDropletTemplate { return v.DropletTemplates }).(GetDropletAutoscaleDropletTemplateArrayOutput) +} + +func (o LookupDropletAutoscaleResultOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDropletAutoscaleResult) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +func (o LookupDropletAutoscaleResultOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupDropletAutoscaleResult) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +func (o LookupDropletAutoscaleResultOutput) Status() pulumi.StringOutput { + return o.ApplyT(func(v LookupDropletAutoscaleResult) string { return v.Status }).(pulumi.StringOutput) +} + +func (o LookupDropletAutoscaleResultOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v LookupDropletAutoscaleResult) string { return v.UpdatedAt }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupDropletAutoscaleResultOutput{}) +} diff --git a/sdk/go/digitalocean/getReservedIpv6.go b/sdk/go/digitalocean/getReservedIpv6.go new file mode 100644 index 00000000..de6119d5 --- /dev/null +++ b/sdk/go/digitalocean/getReservedIpv6.go @@ -0,0 +1,105 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package digitalocean + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +func LookupReservedIpv6(ctx *pulumi.Context, args *LookupReservedIpv6Args, opts ...pulumi.InvokeOption) (*LookupReservedIpv6Result, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupReservedIpv6Result + err := ctx.Invoke("digitalocean:index/getReservedIpv6:getReservedIpv6", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getReservedIpv6. +type LookupReservedIpv6Args struct { + Ip string `pulumi:"ip"` +} + +// A collection of values returned by getReservedIpv6. +type LookupReservedIpv6Result struct { + DropletId int `pulumi:"dropletId"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Ip string `pulumi:"ip"` + RegionSlug string `pulumi:"regionSlug"` + Urn string `pulumi:"urn"` +} + +func LookupReservedIpv6Output(ctx *pulumi.Context, args LookupReservedIpv6OutputArgs, opts ...pulumi.InvokeOption) LookupReservedIpv6ResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupReservedIpv6ResultOutput, error) { + args := v.(LookupReservedIpv6Args) + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupReservedIpv6Result + secret, err := ctx.InvokePackageRaw("digitalocean:index/getReservedIpv6:getReservedIpv6", args, &rv, "", opts...) + if err != nil { + return LookupReservedIpv6ResultOutput{}, err + } + + output := pulumi.ToOutput(rv).(LookupReservedIpv6ResultOutput) + if secret { + return pulumi.ToSecret(output).(LookupReservedIpv6ResultOutput), nil + } + return output, nil + }).(LookupReservedIpv6ResultOutput) +} + +// A collection of arguments for invoking getReservedIpv6. +type LookupReservedIpv6OutputArgs struct { + Ip pulumi.StringInput `pulumi:"ip"` +} + +func (LookupReservedIpv6OutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupReservedIpv6Args)(nil)).Elem() +} + +// A collection of values returned by getReservedIpv6. +type LookupReservedIpv6ResultOutput struct{ *pulumi.OutputState } + +func (LookupReservedIpv6ResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupReservedIpv6Result)(nil)).Elem() +} + +func (o LookupReservedIpv6ResultOutput) ToLookupReservedIpv6ResultOutput() LookupReservedIpv6ResultOutput { + return o +} + +func (o LookupReservedIpv6ResultOutput) ToLookupReservedIpv6ResultOutputWithContext(ctx context.Context) LookupReservedIpv6ResultOutput { + return o +} + +func (o LookupReservedIpv6ResultOutput) DropletId() pulumi.IntOutput { + return o.ApplyT(func(v LookupReservedIpv6Result) int { return v.DropletId }).(pulumi.IntOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupReservedIpv6ResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupReservedIpv6Result) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupReservedIpv6ResultOutput) Ip() pulumi.StringOutput { + return o.ApplyT(func(v LookupReservedIpv6Result) string { return v.Ip }).(pulumi.StringOutput) +} + +func (o LookupReservedIpv6ResultOutput) RegionSlug() pulumi.StringOutput { + return o.ApplyT(func(v LookupReservedIpv6Result) string { return v.RegionSlug }).(pulumi.StringOutput) +} + +func (o LookupReservedIpv6ResultOutput) Urn() pulumi.StringOutput { + return o.ApplyT(func(v LookupReservedIpv6Result) string { return v.Urn }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupReservedIpv6ResultOutput{}) +} diff --git a/sdk/go/digitalocean/init.go b/sdk/go/digitalocean/init.go index 57448266..9c41f991 100644 --- a/sdk/go/digitalocean/init.go +++ b/sdk/go/digitalocean/init.go @@ -65,6 +65,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Domain{} case "digitalocean:index/droplet:Droplet": r = &Droplet{} + case "digitalocean:index/dropletAutoscale:DropletAutoscale": + r = &DropletAutoscale{} case "digitalocean:index/dropletSnapshot:DropletSnapshot": r = &DropletSnapshot{} case "digitalocean:index/firewall:Firewall": @@ -89,6 +91,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &ReservedIp{} case "digitalocean:index/reservedIpAssignment:ReservedIpAssignment": r = &ReservedIpAssignment{} + case "digitalocean:index/reservedIpv6:ReservedIpv6": + r = &ReservedIpv6{} + case "digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment": + r = &ReservedIpv6Assignment{} case "digitalocean:index/spacesBucket:SpacesBucket": r = &SpacesBucket{} case "digitalocean:index/spacesBucketCorsConfiguration:SpacesBucketCorsConfiguration": @@ -256,6 +262,11 @@ func init() { "index/droplet", &module{version}, ) + pulumi.RegisterResourceModule( + "digitalocean", + "index/dropletAutoscale", + &module{version}, + ) pulumi.RegisterResourceModule( "digitalocean", "index/dropletSnapshot", @@ -316,6 +327,16 @@ func init() { "index/reservedIpAssignment", &module{version}, ) + pulumi.RegisterResourceModule( + "digitalocean", + "index/reservedIpv6", + &module{version}, + ) + pulumi.RegisterResourceModule( + "digitalocean", + "index/reservedIpv6Assignment", + &module{version}, + ) pulumi.RegisterResourceModule( "digitalocean", "index/spacesBucket", diff --git a/sdk/go/digitalocean/loadBalancer.go b/sdk/go/digitalocean/loadBalancer.go index 9761452f..b25840d6 100644 --- a/sdk/go/digitalocean/loadBalancer.go +++ b/sdk/go/digitalocean/loadBalancer.go @@ -120,7 +120,6 @@ type LoadBalancer struct { // The Load Balancer name Name pulumi.StringOutput `pulumi:"name"` // The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - // **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. Network pulumi.StringPtrOutput `pulumi:"network"` // The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project. ProjectId pulumi.StringOutput `pulumi:"projectId"` @@ -132,7 +131,7 @@ type LoadBalancer struct { Region pulumi.StringPtrOutput `pulumi:"region"` // The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `sizeUnit` may be provided. Size pulumi.StringPtrOutput `pulumi:"size"` - // The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. + // The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. SizeUnit pulumi.IntOutput `pulumi:"sizeUnit"` Status pulumi.StringOutput `pulumi:"status"` // A `stickySessions` block to be assigned to the @@ -140,7 +139,7 @@ type LoadBalancer struct { StickySessions LoadBalancerStickySessionsOutput `pulumi:"stickySessions"` // A list of Load Balancer IDs to be attached behind a Global Load Balancer. TargetLoadBalancerIds pulumi.StringArrayOutput `pulumi:"targetLoadBalancerIds"` - // The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + // The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. // **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. Type pulumi.StringPtrOutput `pulumi:"type"` // The ID of the VPC where the load balancer will be located. @@ -216,7 +215,6 @@ type loadBalancerState struct { // The Load Balancer name Name *string `pulumi:"name"` // The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - // **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. Network *string `pulumi:"network"` // The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project. ProjectId *string `pulumi:"projectId"` @@ -228,7 +226,7 @@ type loadBalancerState struct { Region *string `pulumi:"region"` // The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `sizeUnit` may be provided. Size *string `pulumi:"size"` - // The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. + // The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. SizeUnit *int `pulumi:"sizeUnit"` Status *string `pulumi:"status"` // A `stickySessions` block to be assigned to the @@ -236,7 +234,7 @@ type loadBalancerState struct { StickySessions *LoadBalancerStickySessions `pulumi:"stickySessions"` // A list of Load Balancer IDs to be attached behind a Global Load Balancer. TargetLoadBalancerIds []string `pulumi:"targetLoadBalancerIds"` - // The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + // The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. // **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. Type *string `pulumi:"type"` // The ID of the VPC where the load balancer will be located. @@ -283,7 +281,6 @@ type LoadBalancerState struct { // The Load Balancer name Name pulumi.StringPtrInput // The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - // **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. Network pulumi.StringPtrInput // The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project. ProjectId pulumi.StringPtrInput @@ -295,7 +292,7 @@ type LoadBalancerState struct { Region pulumi.StringPtrInput // The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `sizeUnit` may be provided. Size pulumi.StringPtrInput - // The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. + // The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. SizeUnit pulumi.IntPtrInput Status pulumi.StringPtrInput // A `stickySessions` block to be assigned to the @@ -303,7 +300,7 @@ type LoadBalancerState struct { StickySessions LoadBalancerStickySessionsPtrInput // A list of Load Balancer IDs to be attached behind a Global Load Balancer. TargetLoadBalancerIds pulumi.StringArrayInput - // The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + // The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. // **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. Type pulumi.StringPtrInput // The ID of the VPC where the load balancer will be located. @@ -349,7 +346,6 @@ type loadBalancerArgs struct { // The Load Balancer name Name *string `pulumi:"name"` // The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - // **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. Network *string `pulumi:"network"` // The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project. ProjectId *string `pulumi:"projectId"` @@ -361,14 +357,14 @@ type loadBalancerArgs struct { Region *string `pulumi:"region"` // The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `sizeUnit` may be provided. Size *string `pulumi:"size"` - // The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. + // The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. SizeUnit *int `pulumi:"sizeUnit"` // A `stickySessions` block to be assigned to the // Load Balancer. The `stickySessions` block is documented below. Only 1 stickySessions block is allowed. StickySessions *LoadBalancerStickySessions `pulumi:"stickySessions"` // A list of Load Balancer IDs to be attached behind a Global Load Balancer. TargetLoadBalancerIds []string `pulumi:"targetLoadBalancerIds"` - // The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + // The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. // **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. Type *string `pulumi:"type"` // The ID of the VPC where the load balancer will be located. @@ -411,7 +407,6 @@ type LoadBalancerArgs struct { // The Load Balancer name Name pulumi.StringPtrInput // The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - // **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. Network pulumi.StringPtrInput // The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project. ProjectId pulumi.StringPtrInput @@ -423,14 +418,14 @@ type LoadBalancerArgs struct { Region pulumi.StringPtrInput // The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `sizeUnit` may be provided. Size pulumi.StringPtrInput - // The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. + // The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. SizeUnit pulumi.IntPtrInput // A `stickySessions` block to be assigned to the // Load Balancer. The `stickySessions` block is documented below. Only 1 stickySessions block is allowed. StickySessions LoadBalancerStickySessionsPtrInput // A list of Load Balancer IDs to be attached behind a Global Load Balancer. TargetLoadBalancerIds pulumi.StringArrayInput - // The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + // The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. // **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. Type pulumi.StringPtrInput // The ID of the VPC where the load balancer will be located. @@ -611,7 +606,6 @@ func (o LoadBalancerOutput) Name() pulumi.StringOutput { } // The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. -// **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. func (o LoadBalancerOutput) Network() pulumi.StringPtrOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringPtrOutput { return v.Network }).(pulumi.StringPtrOutput) } @@ -638,7 +632,7 @@ func (o LoadBalancerOutput) Size() pulumi.StringPtrOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringPtrOutput { return v.Size }).(pulumi.StringPtrOutput) } -// The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. +// The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. func (o LoadBalancerOutput) SizeUnit() pulumi.IntOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.IntOutput { return v.SizeUnit }).(pulumi.IntOutput) } @@ -658,7 +652,7 @@ func (o LoadBalancerOutput) TargetLoadBalancerIds() pulumi.StringArrayOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringArrayOutput { return v.TargetLoadBalancerIds }).(pulumi.StringArrayOutput) } -// The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. +// The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. // **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. func (o LoadBalancerOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *LoadBalancer) pulumi.StringPtrOutput { return v.Type }).(pulumi.StringPtrOutput) diff --git a/sdk/go/digitalocean/pulumiTypes.go b/sdk/go/digitalocean/pulumiTypes.go index e54c24b9..df2fe173 100644 --- a/sdk/go/digitalocean/pulumiTypes.go +++ b/sdk/go/digitalocean/pulumiTypes.go @@ -15498,6 +15498,672 @@ func (o DatabaseUserSettingOpensearchAclArrayOutput) Index(i pulumi.IntInput) Da }).(DatabaseUserSettingOpensearchAclOutput) } +type DropletAutoscaleConfig struct { + // The cooldown duration between scaling events for the Droplet Autoscale pool. + CooldownMinutes *int `pulumi:"cooldownMinutes"` + // The maximum number of instances to maintain in the Droplet Autoscale pool. + MaxInstances *int `pulumi:"maxInstances"` + // The minimum number of instances to maintain in the Droplet Autoscale pool. + MinInstances *int `pulumi:"minInstances"` + // The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + TargetCpuUtilization *float64 `pulumi:"targetCpuUtilization"` + // The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + // pool. + TargetMemoryUtilization *float64 `pulumi:"targetMemoryUtilization"` + // The static number of instances to maintain in the pool Droplet Autoscale pool. This + // argument cannot be used with any other config options. + TargetNumberInstances *int `pulumi:"targetNumberInstances"` +} + +// DropletAutoscaleConfigInput is an input type that accepts DropletAutoscaleConfigArgs and DropletAutoscaleConfigOutput values. +// You can construct a concrete instance of `DropletAutoscaleConfigInput` via: +// +// DropletAutoscaleConfigArgs{...} +type DropletAutoscaleConfigInput interface { + pulumi.Input + + ToDropletAutoscaleConfigOutput() DropletAutoscaleConfigOutput + ToDropletAutoscaleConfigOutputWithContext(context.Context) DropletAutoscaleConfigOutput +} + +type DropletAutoscaleConfigArgs struct { + // The cooldown duration between scaling events for the Droplet Autoscale pool. + CooldownMinutes pulumi.IntPtrInput `pulumi:"cooldownMinutes"` + // The maximum number of instances to maintain in the Droplet Autoscale pool. + MaxInstances pulumi.IntPtrInput `pulumi:"maxInstances"` + // The minimum number of instances to maintain in the Droplet Autoscale pool. + MinInstances pulumi.IntPtrInput `pulumi:"minInstances"` + // The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + TargetCpuUtilization pulumi.Float64PtrInput `pulumi:"targetCpuUtilization"` + // The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + // pool. + TargetMemoryUtilization pulumi.Float64PtrInput `pulumi:"targetMemoryUtilization"` + // The static number of instances to maintain in the pool Droplet Autoscale pool. This + // argument cannot be used with any other config options. + TargetNumberInstances pulumi.IntPtrInput `pulumi:"targetNumberInstances"` +} + +func (DropletAutoscaleConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DropletAutoscaleConfig)(nil)).Elem() +} + +func (i DropletAutoscaleConfigArgs) ToDropletAutoscaleConfigOutput() DropletAutoscaleConfigOutput { + return i.ToDropletAutoscaleConfigOutputWithContext(context.Background()) +} + +func (i DropletAutoscaleConfigArgs) ToDropletAutoscaleConfigOutputWithContext(ctx context.Context) DropletAutoscaleConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(DropletAutoscaleConfigOutput) +} + +func (i DropletAutoscaleConfigArgs) ToDropletAutoscaleConfigPtrOutput() DropletAutoscaleConfigPtrOutput { + return i.ToDropletAutoscaleConfigPtrOutputWithContext(context.Background()) +} + +func (i DropletAutoscaleConfigArgs) ToDropletAutoscaleConfigPtrOutputWithContext(ctx context.Context) DropletAutoscaleConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DropletAutoscaleConfigOutput).ToDropletAutoscaleConfigPtrOutputWithContext(ctx) +} + +// DropletAutoscaleConfigPtrInput is an input type that accepts DropletAutoscaleConfigArgs, DropletAutoscaleConfigPtr and DropletAutoscaleConfigPtrOutput values. +// You can construct a concrete instance of `DropletAutoscaleConfigPtrInput` via: +// +// DropletAutoscaleConfigArgs{...} +// +// or: +// +// nil +type DropletAutoscaleConfigPtrInput interface { + pulumi.Input + + ToDropletAutoscaleConfigPtrOutput() DropletAutoscaleConfigPtrOutput + ToDropletAutoscaleConfigPtrOutputWithContext(context.Context) DropletAutoscaleConfigPtrOutput +} + +type dropletAutoscaleConfigPtrType DropletAutoscaleConfigArgs + +func DropletAutoscaleConfigPtr(v *DropletAutoscaleConfigArgs) DropletAutoscaleConfigPtrInput { + return (*dropletAutoscaleConfigPtrType)(v) +} + +func (*dropletAutoscaleConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DropletAutoscaleConfig)(nil)).Elem() +} + +func (i *dropletAutoscaleConfigPtrType) ToDropletAutoscaleConfigPtrOutput() DropletAutoscaleConfigPtrOutput { + return i.ToDropletAutoscaleConfigPtrOutputWithContext(context.Background()) +} + +func (i *dropletAutoscaleConfigPtrType) ToDropletAutoscaleConfigPtrOutputWithContext(ctx context.Context) DropletAutoscaleConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DropletAutoscaleConfigPtrOutput) +} + +type DropletAutoscaleConfigOutput struct{ *pulumi.OutputState } + +func (DropletAutoscaleConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DropletAutoscaleConfig)(nil)).Elem() +} + +func (o DropletAutoscaleConfigOutput) ToDropletAutoscaleConfigOutput() DropletAutoscaleConfigOutput { + return o +} + +func (o DropletAutoscaleConfigOutput) ToDropletAutoscaleConfigOutputWithContext(ctx context.Context) DropletAutoscaleConfigOutput { + return o +} + +func (o DropletAutoscaleConfigOutput) ToDropletAutoscaleConfigPtrOutput() DropletAutoscaleConfigPtrOutput { + return o.ToDropletAutoscaleConfigPtrOutputWithContext(context.Background()) +} + +func (o DropletAutoscaleConfigOutput) ToDropletAutoscaleConfigPtrOutputWithContext(ctx context.Context) DropletAutoscaleConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DropletAutoscaleConfig) *DropletAutoscaleConfig { + return &v + }).(DropletAutoscaleConfigPtrOutput) +} + +// The cooldown duration between scaling events for the Droplet Autoscale pool. +func (o DropletAutoscaleConfigOutput) CooldownMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v DropletAutoscaleConfig) *int { return v.CooldownMinutes }).(pulumi.IntPtrOutput) +} + +// The maximum number of instances to maintain in the Droplet Autoscale pool. +func (o DropletAutoscaleConfigOutput) MaxInstances() pulumi.IntPtrOutput { + return o.ApplyT(func(v DropletAutoscaleConfig) *int { return v.MaxInstances }).(pulumi.IntPtrOutput) +} + +// The minimum number of instances to maintain in the Droplet Autoscale pool. +func (o DropletAutoscaleConfigOutput) MinInstances() pulumi.IntPtrOutput { + return o.ApplyT(func(v DropletAutoscaleConfig) *int { return v.MinInstances }).(pulumi.IntPtrOutput) +} + +// The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. +func (o DropletAutoscaleConfigOutput) TargetCpuUtilization() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DropletAutoscaleConfig) *float64 { return v.TargetCpuUtilization }).(pulumi.Float64PtrOutput) +} + +// The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale +// pool. +func (o DropletAutoscaleConfigOutput) TargetMemoryUtilization() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DropletAutoscaleConfig) *float64 { return v.TargetMemoryUtilization }).(pulumi.Float64PtrOutput) +} + +// The static number of instances to maintain in the pool Droplet Autoscale pool. This +// argument cannot be used with any other config options. +func (o DropletAutoscaleConfigOutput) TargetNumberInstances() pulumi.IntPtrOutput { + return o.ApplyT(func(v DropletAutoscaleConfig) *int { return v.TargetNumberInstances }).(pulumi.IntPtrOutput) +} + +type DropletAutoscaleConfigPtrOutput struct{ *pulumi.OutputState } + +func (DropletAutoscaleConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DropletAutoscaleConfig)(nil)).Elem() +} + +func (o DropletAutoscaleConfigPtrOutput) ToDropletAutoscaleConfigPtrOutput() DropletAutoscaleConfigPtrOutput { + return o +} + +func (o DropletAutoscaleConfigPtrOutput) ToDropletAutoscaleConfigPtrOutputWithContext(ctx context.Context) DropletAutoscaleConfigPtrOutput { + return o +} + +func (o DropletAutoscaleConfigPtrOutput) Elem() DropletAutoscaleConfigOutput { + return o.ApplyT(func(v *DropletAutoscaleConfig) DropletAutoscaleConfig { + if v != nil { + return *v + } + var ret DropletAutoscaleConfig + return ret + }).(DropletAutoscaleConfigOutput) +} + +// The cooldown duration between scaling events for the Droplet Autoscale pool. +func (o DropletAutoscaleConfigPtrOutput) CooldownMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleConfig) *int { + if v == nil { + return nil + } + return v.CooldownMinutes + }).(pulumi.IntPtrOutput) +} + +// The maximum number of instances to maintain in the Droplet Autoscale pool. +func (o DropletAutoscaleConfigPtrOutput) MaxInstances() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleConfig) *int { + if v == nil { + return nil + } + return v.MaxInstances + }).(pulumi.IntPtrOutput) +} + +// The minimum number of instances to maintain in the Droplet Autoscale pool. +func (o DropletAutoscaleConfigPtrOutput) MinInstances() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleConfig) *int { + if v == nil { + return nil + } + return v.MinInstances + }).(pulumi.IntPtrOutput) +} + +// The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. +func (o DropletAutoscaleConfigPtrOutput) TargetCpuUtilization() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DropletAutoscaleConfig) *float64 { + if v == nil { + return nil + } + return v.TargetCpuUtilization + }).(pulumi.Float64PtrOutput) +} + +// The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale +// pool. +func (o DropletAutoscaleConfigPtrOutput) TargetMemoryUtilization() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *DropletAutoscaleConfig) *float64 { + if v == nil { + return nil + } + return v.TargetMemoryUtilization + }).(pulumi.Float64PtrOutput) +} + +// The static number of instances to maintain in the pool Droplet Autoscale pool. This +// argument cannot be used with any other config options. +func (o DropletAutoscaleConfigPtrOutput) TargetNumberInstances() pulumi.IntPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleConfig) *int { + if v == nil { + return nil + } + return v.TargetNumberInstances + }).(pulumi.IntPtrOutput) +} + +type DropletAutoscaleCurrentUtilization struct { + // Average CPU utilization + Cpu *float64 `pulumi:"cpu"` + // Average Memory utilization + Memory *float64 `pulumi:"memory"` +} + +// DropletAutoscaleCurrentUtilizationInput is an input type that accepts DropletAutoscaleCurrentUtilizationArgs and DropletAutoscaleCurrentUtilizationOutput values. +// You can construct a concrete instance of `DropletAutoscaleCurrentUtilizationInput` via: +// +// DropletAutoscaleCurrentUtilizationArgs{...} +type DropletAutoscaleCurrentUtilizationInput interface { + pulumi.Input + + ToDropletAutoscaleCurrentUtilizationOutput() DropletAutoscaleCurrentUtilizationOutput + ToDropletAutoscaleCurrentUtilizationOutputWithContext(context.Context) DropletAutoscaleCurrentUtilizationOutput +} + +type DropletAutoscaleCurrentUtilizationArgs struct { + // Average CPU utilization + Cpu pulumi.Float64PtrInput `pulumi:"cpu"` + // Average Memory utilization + Memory pulumi.Float64PtrInput `pulumi:"memory"` +} + +func (DropletAutoscaleCurrentUtilizationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DropletAutoscaleCurrentUtilization)(nil)).Elem() +} + +func (i DropletAutoscaleCurrentUtilizationArgs) ToDropletAutoscaleCurrentUtilizationOutput() DropletAutoscaleCurrentUtilizationOutput { + return i.ToDropletAutoscaleCurrentUtilizationOutputWithContext(context.Background()) +} + +func (i DropletAutoscaleCurrentUtilizationArgs) ToDropletAutoscaleCurrentUtilizationOutputWithContext(ctx context.Context) DropletAutoscaleCurrentUtilizationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DropletAutoscaleCurrentUtilizationOutput) +} + +// DropletAutoscaleCurrentUtilizationArrayInput is an input type that accepts DropletAutoscaleCurrentUtilizationArray and DropletAutoscaleCurrentUtilizationArrayOutput values. +// You can construct a concrete instance of `DropletAutoscaleCurrentUtilizationArrayInput` via: +// +// DropletAutoscaleCurrentUtilizationArray{ DropletAutoscaleCurrentUtilizationArgs{...} } +type DropletAutoscaleCurrentUtilizationArrayInput interface { + pulumi.Input + + ToDropletAutoscaleCurrentUtilizationArrayOutput() DropletAutoscaleCurrentUtilizationArrayOutput + ToDropletAutoscaleCurrentUtilizationArrayOutputWithContext(context.Context) DropletAutoscaleCurrentUtilizationArrayOutput +} + +type DropletAutoscaleCurrentUtilizationArray []DropletAutoscaleCurrentUtilizationInput + +func (DropletAutoscaleCurrentUtilizationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DropletAutoscaleCurrentUtilization)(nil)).Elem() +} + +func (i DropletAutoscaleCurrentUtilizationArray) ToDropletAutoscaleCurrentUtilizationArrayOutput() DropletAutoscaleCurrentUtilizationArrayOutput { + return i.ToDropletAutoscaleCurrentUtilizationArrayOutputWithContext(context.Background()) +} + +func (i DropletAutoscaleCurrentUtilizationArray) ToDropletAutoscaleCurrentUtilizationArrayOutputWithContext(ctx context.Context) DropletAutoscaleCurrentUtilizationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DropletAutoscaleCurrentUtilizationArrayOutput) +} + +type DropletAutoscaleCurrentUtilizationOutput struct{ *pulumi.OutputState } + +func (DropletAutoscaleCurrentUtilizationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DropletAutoscaleCurrentUtilization)(nil)).Elem() +} + +func (o DropletAutoscaleCurrentUtilizationOutput) ToDropletAutoscaleCurrentUtilizationOutput() DropletAutoscaleCurrentUtilizationOutput { + return o +} + +func (o DropletAutoscaleCurrentUtilizationOutput) ToDropletAutoscaleCurrentUtilizationOutputWithContext(ctx context.Context) DropletAutoscaleCurrentUtilizationOutput { + return o +} + +// Average CPU utilization +func (o DropletAutoscaleCurrentUtilizationOutput) Cpu() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DropletAutoscaleCurrentUtilization) *float64 { return v.Cpu }).(pulumi.Float64PtrOutput) +} + +// Average Memory utilization +func (o DropletAutoscaleCurrentUtilizationOutput) Memory() pulumi.Float64PtrOutput { + return o.ApplyT(func(v DropletAutoscaleCurrentUtilization) *float64 { return v.Memory }).(pulumi.Float64PtrOutput) +} + +type DropletAutoscaleCurrentUtilizationArrayOutput struct{ *pulumi.OutputState } + +func (DropletAutoscaleCurrentUtilizationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DropletAutoscaleCurrentUtilization)(nil)).Elem() +} + +func (o DropletAutoscaleCurrentUtilizationArrayOutput) ToDropletAutoscaleCurrentUtilizationArrayOutput() DropletAutoscaleCurrentUtilizationArrayOutput { + return o +} + +func (o DropletAutoscaleCurrentUtilizationArrayOutput) ToDropletAutoscaleCurrentUtilizationArrayOutputWithContext(ctx context.Context) DropletAutoscaleCurrentUtilizationArrayOutput { + return o +} + +func (o DropletAutoscaleCurrentUtilizationArrayOutput) Index(i pulumi.IntInput) DropletAutoscaleCurrentUtilizationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DropletAutoscaleCurrentUtilization { + return vs[0].([]DropletAutoscaleCurrentUtilization)[vs[1].(int)] + }).(DropletAutoscaleCurrentUtilizationOutput) +} + +type DropletAutoscaleDropletTemplate struct { + // Image slug of the Droplet Autoscale pool underlying resource(s). + Image string `pulumi:"image"` + // Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + Ipv6 *bool `pulumi:"ipv6"` + // Project UUID to create the Droplet Autoscale pool underlying resource(s). + ProjectId *string `pulumi:"projectId"` + // Region slug of the Droplet Autoscale pool underlying resource(s). + Region string `pulumi:"region"` + // Size slug of the Droplet Autoscale pool underlying resource(s). + Size string `pulumi:"size"` + // SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + SshKeys []string `pulumi:"sshKeys"` + // List of tags to add to the Droplet Autoscale pool underlying resource(s). + Tags []string `pulumi:"tags"` + // Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + // cloud init script that user may configure to setup their application workload. + UserData *string `pulumi:"userData"` + // VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + // from the specified `region` (default VPC). + VpcUuid *string `pulumi:"vpcUuid"` + // Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + // metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + WithDropletAgent *bool `pulumi:"withDropletAgent"` +} + +// DropletAutoscaleDropletTemplateInput is an input type that accepts DropletAutoscaleDropletTemplateArgs and DropletAutoscaleDropletTemplateOutput values. +// You can construct a concrete instance of `DropletAutoscaleDropletTemplateInput` via: +// +// DropletAutoscaleDropletTemplateArgs{...} +type DropletAutoscaleDropletTemplateInput interface { + pulumi.Input + + ToDropletAutoscaleDropletTemplateOutput() DropletAutoscaleDropletTemplateOutput + ToDropletAutoscaleDropletTemplateOutputWithContext(context.Context) DropletAutoscaleDropletTemplateOutput +} + +type DropletAutoscaleDropletTemplateArgs struct { + // Image slug of the Droplet Autoscale pool underlying resource(s). + Image pulumi.StringInput `pulumi:"image"` + // Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + Ipv6 pulumi.BoolPtrInput `pulumi:"ipv6"` + // Project UUID to create the Droplet Autoscale pool underlying resource(s). + ProjectId pulumi.StringPtrInput `pulumi:"projectId"` + // Region slug of the Droplet Autoscale pool underlying resource(s). + Region pulumi.StringInput `pulumi:"region"` + // Size slug of the Droplet Autoscale pool underlying resource(s). + Size pulumi.StringInput `pulumi:"size"` + // SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + SshKeys pulumi.StringArrayInput `pulumi:"sshKeys"` + // List of tags to add to the Droplet Autoscale pool underlying resource(s). + Tags pulumi.StringArrayInput `pulumi:"tags"` + // Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + // cloud init script that user may configure to setup their application workload. + UserData pulumi.StringPtrInput `pulumi:"userData"` + // VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + // from the specified `region` (default VPC). + VpcUuid pulumi.StringPtrInput `pulumi:"vpcUuid"` + // Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + // metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + WithDropletAgent pulumi.BoolPtrInput `pulumi:"withDropletAgent"` +} + +func (DropletAutoscaleDropletTemplateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DropletAutoscaleDropletTemplate)(nil)).Elem() +} + +func (i DropletAutoscaleDropletTemplateArgs) ToDropletAutoscaleDropletTemplateOutput() DropletAutoscaleDropletTemplateOutput { + return i.ToDropletAutoscaleDropletTemplateOutputWithContext(context.Background()) +} + +func (i DropletAutoscaleDropletTemplateArgs) ToDropletAutoscaleDropletTemplateOutputWithContext(ctx context.Context) DropletAutoscaleDropletTemplateOutput { + return pulumi.ToOutputWithContext(ctx, i).(DropletAutoscaleDropletTemplateOutput) +} + +func (i DropletAutoscaleDropletTemplateArgs) ToDropletAutoscaleDropletTemplatePtrOutput() DropletAutoscaleDropletTemplatePtrOutput { + return i.ToDropletAutoscaleDropletTemplatePtrOutputWithContext(context.Background()) +} + +func (i DropletAutoscaleDropletTemplateArgs) ToDropletAutoscaleDropletTemplatePtrOutputWithContext(ctx context.Context) DropletAutoscaleDropletTemplatePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DropletAutoscaleDropletTemplateOutput).ToDropletAutoscaleDropletTemplatePtrOutputWithContext(ctx) +} + +// DropletAutoscaleDropletTemplatePtrInput is an input type that accepts DropletAutoscaleDropletTemplateArgs, DropletAutoscaleDropletTemplatePtr and DropletAutoscaleDropletTemplatePtrOutput values. +// You can construct a concrete instance of `DropletAutoscaleDropletTemplatePtrInput` via: +// +// DropletAutoscaleDropletTemplateArgs{...} +// +// or: +// +// nil +type DropletAutoscaleDropletTemplatePtrInput interface { + pulumi.Input + + ToDropletAutoscaleDropletTemplatePtrOutput() DropletAutoscaleDropletTemplatePtrOutput + ToDropletAutoscaleDropletTemplatePtrOutputWithContext(context.Context) DropletAutoscaleDropletTemplatePtrOutput +} + +type dropletAutoscaleDropletTemplatePtrType DropletAutoscaleDropletTemplateArgs + +func DropletAutoscaleDropletTemplatePtr(v *DropletAutoscaleDropletTemplateArgs) DropletAutoscaleDropletTemplatePtrInput { + return (*dropletAutoscaleDropletTemplatePtrType)(v) +} + +func (*dropletAutoscaleDropletTemplatePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DropletAutoscaleDropletTemplate)(nil)).Elem() +} + +func (i *dropletAutoscaleDropletTemplatePtrType) ToDropletAutoscaleDropletTemplatePtrOutput() DropletAutoscaleDropletTemplatePtrOutput { + return i.ToDropletAutoscaleDropletTemplatePtrOutputWithContext(context.Background()) +} + +func (i *dropletAutoscaleDropletTemplatePtrType) ToDropletAutoscaleDropletTemplatePtrOutputWithContext(ctx context.Context) DropletAutoscaleDropletTemplatePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DropletAutoscaleDropletTemplatePtrOutput) +} + +type DropletAutoscaleDropletTemplateOutput struct{ *pulumi.OutputState } + +func (DropletAutoscaleDropletTemplateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DropletAutoscaleDropletTemplate)(nil)).Elem() +} + +func (o DropletAutoscaleDropletTemplateOutput) ToDropletAutoscaleDropletTemplateOutput() DropletAutoscaleDropletTemplateOutput { + return o +} + +func (o DropletAutoscaleDropletTemplateOutput) ToDropletAutoscaleDropletTemplateOutputWithContext(ctx context.Context) DropletAutoscaleDropletTemplateOutput { + return o +} + +func (o DropletAutoscaleDropletTemplateOutput) ToDropletAutoscaleDropletTemplatePtrOutput() DropletAutoscaleDropletTemplatePtrOutput { + return o.ToDropletAutoscaleDropletTemplatePtrOutputWithContext(context.Background()) +} + +func (o DropletAutoscaleDropletTemplateOutput) ToDropletAutoscaleDropletTemplatePtrOutputWithContext(ctx context.Context) DropletAutoscaleDropletTemplatePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DropletAutoscaleDropletTemplate) *DropletAutoscaleDropletTemplate { + return &v + }).(DropletAutoscaleDropletTemplatePtrOutput) +} + +// Image slug of the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplateOutput) Image() pulumi.StringOutput { + return o.ApplyT(func(v DropletAutoscaleDropletTemplate) string { return v.Image }).(pulumi.StringOutput) +} + +// Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplateOutput) Ipv6() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DropletAutoscaleDropletTemplate) *bool { return v.Ipv6 }).(pulumi.BoolPtrOutput) +} + +// Project UUID to create the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplateOutput) ProjectId() pulumi.StringPtrOutput { + return o.ApplyT(func(v DropletAutoscaleDropletTemplate) *string { return v.ProjectId }).(pulumi.StringPtrOutput) +} + +// Region slug of the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplateOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v DropletAutoscaleDropletTemplate) string { return v.Region }).(pulumi.StringOutput) +} + +// Size slug of the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplateOutput) Size() pulumi.StringOutput { + return o.ApplyT(func(v DropletAutoscaleDropletTemplate) string { return v.Size }).(pulumi.StringOutput) +} + +// SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplateOutput) SshKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v DropletAutoscaleDropletTemplate) []string { return v.SshKeys }).(pulumi.StringArrayOutput) +} + +// List of tags to add to the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplateOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v DropletAutoscaleDropletTemplate) []string { return v.Tags }).(pulumi.StringArrayOutput) +} + +// Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a +// cloud init script that user may configure to setup their application workload. +func (o DropletAutoscaleDropletTemplateOutput) UserData() pulumi.StringPtrOutput { + return o.ApplyT(func(v DropletAutoscaleDropletTemplate) *string { return v.UserData }).(pulumi.StringPtrOutput) +} + +// VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred +// from the specified `region` (default VPC). +func (o DropletAutoscaleDropletTemplateOutput) VpcUuid() pulumi.StringPtrOutput { + return o.ApplyT(func(v DropletAutoscaleDropletTemplate) *string { return v.VpcUuid }).(pulumi.StringPtrOutput) +} + +// Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The +// metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. +func (o DropletAutoscaleDropletTemplateOutput) WithDropletAgent() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DropletAutoscaleDropletTemplate) *bool { return v.WithDropletAgent }).(pulumi.BoolPtrOutput) +} + +type DropletAutoscaleDropletTemplatePtrOutput struct{ *pulumi.OutputState } + +func (DropletAutoscaleDropletTemplatePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DropletAutoscaleDropletTemplate)(nil)).Elem() +} + +func (o DropletAutoscaleDropletTemplatePtrOutput) ToDropletAutoscaleDropletTemplatePtrOutput() DropletAutoscaleDropletTemplatePtrOutput { + return o +} + +func (o DropletAutoscaleDropletTemplatePtrOutput) ToDropletAutoscaleDropletTemplatePtrOutputWithContext(ctx context.Context) DropletAutoscaleDropletTemplatePtrOutput { + return o +} + +func (o DropletAutoscaleDropletTemplatePtrOutput) Elem() DropletAutoscaleDropletTemplateOutput { + return o.ApplyT(func(v *DropletAutoscaleDropletTemplate) DropletAutoscaleDropletTemplate { + if v != nil { + return *v + } + var ret DropletAutoscaleDropletTemplate + return ret + }).(DropletAutoscaleDropletTemplateOutput) +} + +// Image slug of the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplatePtrOutput) Image() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleDropletTemplate) *string { + if v == nil { + return nil + } + return &v.Image + }).(pulumi.StringPtrOutput) +} + +// Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplatePtrOutput) Ipv6() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleDropletTemplate) *bool { + if v == nil { + return nil + } + return v.Ipv6 + }).(pulumi.BoolPtrOutput) +} + +// Project UUID to create the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplatePtrOutput) ProjectId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleDropletTemplate) *string { + if v == nil { + return nil + } + return v.ProjectId + }).(pulumi.StringPtrOutput) +} + +// Region slug of the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplatePtrOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleDropletTemplate) *string { + if v == nil { + return nil + } + return &v.Region + }).(pulumi.StringPtrOutput) +} + +// Size slug of the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplatePtrOutput) Size() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleDropletTemplate) *string { + if v == nil { + return nil + } + return &v.Size + }).(pulumi.StringPtrOutput) +} + +// SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplatePtrOutput) SshKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DropletAutoscaleDropletTemplate) []string { + if v == nil { + return nil + } + return v.SshKeys + }).(pulumi.StringArrayOutput) +} + +// List of tags to add to the Droplet Autoscale pool underlying resource(s). +func (o DropletAutoscaleDropletTemplatePtrOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DropletAutoscaleDropletTemplate) []string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringArrayOutput) +} + +// Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a +// cloud init script that user may configure to setup their application workload. +func (o DropletAutoscaleDropletTemplatePtrOutput) UserData() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleDropletTemplate) *string { + if v == nil { + return nil + } + return v.UserData + }).(pulumi.StringPtrOutput) +} + +// VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred +// from the specified `region` (default VPC). +func (o DropletAutoscaleDropletTemplatePtrOutput) VpcUuid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleDropletTemplate) *string { + if v == nil { + return nil + } + return v.VpcUuid + }).(pulumi.StringPtrOutput) +} + +// Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The +// metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. +func (o DropletAutoscaleDropletTemplatePtrOutput) WithDropletAgent() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DropletAutoscaleDropletTemplate) *bool { + if v == nil { + return nil + } + return v.WithDropletAgent + }).(pulumi.BoolPtrOutput) +} + type DropletBackupPolicy struct { // The hour of the day that the backup window will start (`0`, `4`, `8`, `12`, `16`, `20`). Hour *int `pulumi:"hour"` @@ -34065,6 +34731,432 @@ func (o GetDomainsSortArrayOutput) Index(i pulumi.IntInput) GetDomainsSortOutput }).(GetDomainsSortOutput) } +type GetDropletAutoscaleConfig struct { + // Cooldown duration + CooldownMinutes int `pulumi:"cooldownMinutes"` + // Max number of members + MaxInstances int `pulumi:"maxInstances"` + // Min number of members + MinInstances int `pulumi:"minInstances"` + // CPU target threshold + TargetCpuUtilization float64 `pulumi:"targetCpuUtilization"` + // Memory target threshold + TargetMemoryUtilization float64 `pulumi:"targetMemoryUtilization"` + // Target number of members + TargetNumberInstances int `pulumi:"targetNumberInstances"` +} + +// GetDropletAutoscaleConfigInput is an input type that accepts GetDropletAutoscaleConfigArgs and GetDropletAutoscaleConfigOutput values. +// You can construct a concrete instance of `GetDropletAutoscaleConfigInput` via: +// +// GetDropletAutoscaleConfigArgs{...} +type GetDropletAutoscaleConfigInput interface { + pulumi.Input + + ToGetDropletAutoscaleConfigOutput() GetDropletAutoscaleConfigOutput + ToGetDropletAutoscaleConfigOutputWithContext(context.Context) GetDropletAutoscaleConfigOutput +} + +type GetDropletAutoscaleConfigArgs struct { + // Cooldown duration + CooldownMinutes pulumi.IntInput `pulumi:"cooldownMinutes"` + // Max number of members + MaxInstances pulumi.IntInput `pulumi:"maxInstances"` + // Min number of members + MinInstances pulumi.IntInput `pulumi:"minInstances"` + // CPU target threshold + TargetCpuUtilization pulumi.Float64Input `pulumi:"targetCpuUtilization"` + // Memory target threshold + TargetMemoryUtilization pulumi.Float64Input `pulumi:"targetMemoryUtilization"` + // Target number of members + TargetNumberInstances pulumi.IntInput `pulumi:"targetNumberInstances"` +} + +func (GetDropletAutoscaleConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDropletAutoscaleConfig)(nil)).Elem() +} + +func (i GetDropletAutoscaleConfigArgs) ToGetDropletAutoscaleConfigOutput() GetDropletAutoscaleConfigOutput { + return i.ToGetDropletAutoscaleConfigOutputWithContext(context.Background()) +} + +func (i GetDropletAutoscaleConfigArgs) ToGetDropletAutoscaleConfigOutputWithContext(ctx context.Context) GetDropletAutoscaleConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDropletAutoscaleConfigOutput) +} + +// GetDropletAutoscaleConfigArrayInput is an input type that accepts GetDropletAutoscaleConfigArray and GetDropletAutoscaleConfigArrayOutput values. +// You can construct a concrete instance of `GetDropletAutoscaleConfigArrayInput` via: +// +// GetDropletAutoscaleConfigArray{ GetDropletAutoscaleConfigArgs{...} } +type GetDropletAutoscaleConfigArrayInput interface { + pulumi.Input + + ToGetDropletAutoscaleConfigArrayOutput() GetDropletAutoscaleConfigArrayOutput + ToGetDropletAutoscaleConfigArrayOutputWithContext(context.Context) GetDropletAutoscaleConfigArrayOutput +} + +type GetDropletAutoscaleConfigArray []GetDropletAutoscaleConfigInput + +func (GetDropletAutoscaleConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDropletAutoscaleConfig)(nil)).Elem() +} + +func (i GetDropletAutoscaleConfigArray) ToGetDropletAutoscaleConfigArrayOutput() GetDropletAutoscaleConfigArrayOutput { + return i.ToGetDropletAutoscaleConfigArrayOutputWithContext(context.Background()) +} + +func (i GetDropletAutoscaleConfigArray) ToGetDropletAutoscaleConfigArrayOutputWithContext(ctx context.Context) GetDropletAutoscaleConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDropletAutoscaleConfigArrayOutput) +} + +type GetDropletAutoscaleConfigOutput struct{ *pulumi.OutputState } + +func (GetDropletAutoscaleConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDropletAutoscaleConfig)(nil)).Elem() +} + +func (o GetDropletAutoscaleConfigOutput) ToGetDropletAutoscaleConfigOutput() GetDropletAutoscaleConfigOutput { + return o +} + +func (o GetDropletAutoscaleConfigOutput) ToGetDropletAutoscaleConfigOutputWithContext(ctx context.Context) GetDropletAutoscaleConfigOutput { + return o +} + +// Cooldown duration +func (o GetDropletAutoscaleConfigOutput) CooldownMinutes() pulumi.IntOutput { + return o.ApplyT(func(v GetDropletAutoscaleConfig) int { return v.CooldownMinutes }).(pulumi.IntOutput) +} + +// Max number of members +func (o GetDropletAutoscaleConfigOutput) MaxInstances() pulumi.IntOutput { + return o.ApplyT(func(v GetDropletAutoscaleConfig) int { return v.MaxInstances }).(pulumi.IntOutput) +} + +// Min number of members +func (o GetDropletAutoscaleConfigOutput) MinInstances() pulumi.IntOutput { + return o.ApplyT(func(v GetDropletAutoscaleConfig) int { return v.MinInstances }).(pulumi.IntOutput) +} + +// CPU target threshold +func (o GetDropletAutoscaleConfigOutput) TargetCpuUtilization() pulumi.Float64Output { + return o.ApplyT(func(v GetDropletAutoscaleConfig) float64 { return v.TargetCpuUtilization }).(pulumi.Float64Output) +} + +// Memory target threshold +func (o GetDropletAutoscaleConfigOutput) TargetMemoryUtilization() pulumi.Float64Output { + return o.ApplyT(func(v GetDropletAutoscaleConfig) float64 { return v.TargetMemoryUtilization }).(pulumi.Float64Output) +} + +// Target number of members +func (o GetDropletAutoscaleConfigOutput) TargetNumberInstances() pulumi.IntOutput { + return o.ApplyT(func(v GetDropletAutoscaleConfig) int { return v.TargetNumberInstances }).(pulumi.IntOutput) +} + +type GetDropletAutoscaleConfigArrayOutput struct{ *pulumi.OutputState } + +func (GetDropletAutoscaleConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDropletAutoscaleConfig)(nil)).Elem() +} + +func (o GetDropletAutoscaleConfigArrayOutput) ToGetDropletAutoscaleConfigArrayOutput() GetDropletAutoscaleConfigArrayOutput { + return o +} + +func (o GetDropletAutoscaleConfigArrayOutput) ToGetDropletAutoscaleConfigArrayOutputWithContext(ctx context.Context) GetDropletAutoscaleConfigArrayOutput { + return o +} + +func (o GetDropletAutoscaleConfigArrayOutput) Index(i pulumi.IntInput) GetDropletAutoscaleConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDropletAutoscaleConfig { + return vs[0].([]GetDropletAutoscaleConfig)[vs[1].(int)] + }).(GetDropletAutoscaleConfigOutput) +} + +type GetDropletAutoscaleCurrentUtilization struct { + // Average CPU utilization + Cpu float64 `pulumi:"cpu"` + // Average Memory utilization + Memory float64 `pulumi:"memory"` +} + +// GetDropletAutoscaleCurrentUtilizationInput is an input type that accepts GetDropletAutoscaleCurrentUtilizationArgs and GetDropletAutoscaleCurrentUtilizationOutput values. +// You can construct a concrete instance of `GetDropletAutoscaleCurrentUtilizationInput` via: +// +// GetDropletAutoscaleCurrentUtilizationArgs{...} +type GetDropletAutoscaleCurrentUtilizationInput interface { + pulumi.Input + + ToGetDropletAutoscaleCurrentUtilizationOutput() GetDropletAutoscaleCurrentUtilizationOutput + ToGetDropletAutoscaleCurrentUtilizationOutputWithContext(context.Context) GetDropletAutoscaleCurrentUtilizationOutput +} + +type GetDropletAutoscaleCurrentUtilizationArgs struct { + // Average CPU utilization + Cpu pulumi.Float64Input `pulumi:"cpu"` + // Average Memory utilization + Memory pulumi.Float64Input `pulumi:"memory"` +} + +func (GetDropletAutoscaleCurrentUtilizationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDropletAutoscaleCurrentUtilization)(nil)).Elem() +} + +func (i GetDropletAutoscaleCurrentUtilizationArgs) ToGetDropletAutoscaleCurrentUtilizationOutput() GetDropletAutoscaleCurrentUtilizationOutput { + return i.ToGetDropletAutoscaleCurrentUtilizationOutputWithContext(context.Background()) +} + +func (i GetDropletAutoscaleCurrentUtilizationArgs) ToGetDropletAutoscaleCurrentUtilizationOutputWithContext(ctx context.Context) GetDropletAutoscaleCurrentUtilizationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDropletAutoscaleCurrentUtilizationOutput) +} + +// GetDropletAutoscaleCurrentUtilizationArrayInput is an input type that accepts GetDropletAutoscaleCurrentUtilizationArray and GetDropletAutoscaleCurrentUtilizationArrayOutput values. +// You can construct a concrete instance of `GetDropletAutoscaleCurrentUtilizationArrayInput` via: +// +// GetDropletAutoscaleCurrentUtilizationArray{ GetDropletAutoscaleCurrentUtilizationArgs{...} } +type GetDropletAutoscaleCurrentUtilizationArrayInput interface { + pulumi.Input + + ToGetDropletAutoscaleCurrentUtilizationArrayOutput() GetDropletAutoscaleCurrentUtilizationArrayOutput + ToGetDropletAutoscaleCurrentUtilizationArrayOutputWithContext(context.Context) GetDropletAutoscaleCurrentUtilizationArrayOutput +} + +type GetDropletAutoscaleCurrentUtilizationArray []GetDropletAutoscaleCurrentUtilizationInput + +func (GetDropletAutoscaleCurrentUtilizationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDropletAutoscaleCurrentUtilization)(nil)).Elem() +} + +func (i GetDropletAutoscaleCurrentUtilizationArray) ToGetDropletAutoscaleCurrentUtilizationArrayOutput() GetDropletAutoscaleCurrentUtilizationArrayOutput { + return i.ToGetDropletAutoscaleCurrentUtilizationArrayOutputWithContext(context.Background()) +} + +func (i GetDropletAutoscaleCurrentUtilizationArray) ToGetDropletAutoscaleCurrentUtilizationArrayOutputWithContext(ctx context.Context) GetDropletAutoscaleCurrentUtilizationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDropletAutoscaleCurrentUtilizationArrayOutput) +} + +type GetDropletAutoscaleCurrentUtilizationOutput struct{ *pulumi.OutputState } + +func (GetDropletAutoscaleCurrentUtilizationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDropletAutoscaleCurrentUtilization)(nil)).Elem() +} + +func (o GetDropletAutoscaleCurrentUtilizationOutput) ToGetDropletAutoscaleCurrentUtilizationOutput() GetDropletAutoscaleCurrentUtilizationOutput { + return o +} + +func (o GetDropletAutoscaleCurrentUtilizationOutput) ToGetDropletAutoscaleCurrentUtilizationOutputWithContext(ctx context.Context) GetDropletAutoscaleCurrentUtilizationOutput { + return o +} + +// Average CPU utilization +func (o GetDropletAutoscaleCurrentUtilizationOutput) Cpu() pulumi.Float64Output { + return o.ApplyT(func(v GetDropletAutoscaleCurrentUtilization) float64 { return v.Cpu }).(pulumi.Float64Output) +} + +// Average Memory utilization +func (o GetDropletAutoscaleCurrentUtilizationOutput) Memory() pulumi.Float64Output { + return o.ApplyT(func(v GetDropletAutoscaleCurrentUtilization) float64 { return v.Memory }).(pulumi.Float64Output) +} + +type GetDropletAutoscaleCurrentUtilizationArrayOutput struct{ *pulumi.OutputState } + +func (GetDropletAutoscaleCurrentUtilizationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDropletAutoscaleCurrentUtilization)(nil)).Elem() +} + +func (o GetDropletAutoscaleCurrentUtilizationArrayOutput) ToGetDropletAutoscaleCurrentUtilizationArrayOutput() GetDropletAutoscaleCurrentUtilizationArrayOutput { + return o +} + +func (o GetDropletAutoscaleCurrentUtilizationArrayOutput) ToGetDropletAutoscaleCurrentUtilizationArrayOutputWithContext(ctx context.Context) GetDropletAutoscaleCurrentUtilizationArrayOutput { + return o +} + +func (o GetDropletAutoscaleCurrentUtilizationArrayOutput) Index(i pulumi.IntInput) GetDropletAutoscaleCurrentUtilizationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDropletAutoscaleCurrentUtilization { + return vs[0].([]GetDropletAutoscaleCurrentUtilization)[vs[1].(int)] + }).(GetDropletAutoscaleCurrentUtilizationOutput) +} + +type GetDropletAutoscaleDropletTemplate struct { + // Droplet image + Image string `pulumi:"image"` + // Enable droplet IPv6 + Ipv6 bool `pulumi:"ipv6"` + // Droplet project ID + ProjectId string `pulumi:"projectId"` + // Droplet region + Region string `pulumi:"region"` + // Droplet size + Size string `pulumi:"size"` + // Droplet SSH keys + SshKeys []string `pulumi:"sshKeys"` + // Droplet tags + Tags []string `pulumi:"tags"` + // Droplet user data + UserData string `pulumi:"userData"` + // Droplet VPC UUID + VpcUuid string `pulumi:"vpcUuid"` + // Enable droplet agent + WithDropletAgent bool `pulumi:"withDropletAgent"` +} + +// GetDropletAutoscaleDropletTemplateInput is an input type that accepts GetDropletAutoscaleDropletTemplateArgs and GetDropletAutoscaleDropletTemplateOutput values. +// You can construct a concrete instance of `GetDropletAutoscaleDropletTemplateInput` via: +// +// GetDropletAutoscaleDropletTemplateArgs{...} +type GetDropletAutoscaleDropletTemplateInput interface { + pulumi.Input + + ToGetDropletAutoscaleDropletTemplateOutput() GetDropletAutoscaleDropletTemplateOutput + ToGetDropletAutoscaleDropletTemplateOutputWithContext(context.Context) GetDropletAutoscaleDropletTemplateOutput +} + +type GetDropletAutoscaleDropletTemplateArgs struct { + // Droplet image + Image pulumi.StringInput `pulumi:"image"` + // Enable droplet IPv6 + Ipv6 pulumi.BoolInput `pulumi:"ipv6"` + // Droplet project ID + ProjectId pulumi.StringInput `pulumi:"projectId"` + // Droplet region + Region pulumi.StringInput `pulumi:"region"` + // Droplet size + Size pulumi.StringInput `pulumi:"size"` + // Droplet SSH keys + SshKeys pulumi.StringArrayInput `pulumi:"sshKeys"` + // Droplet tags + Tags pulumi.StringArrayInput `pulumi:"tags"` + // Droplet user data + UserData pulumi.StringInput `pulumi:"userData"` + // Droplet VPC UUID + VpcUuid pulumi.StringInput `pulumi:"vpcUuid"` + // Enable droplet agent + WithDropletAgent pulumi.BoolInput `pulumi:"withDropletAgent"` +} + +func (GetDropletAutoscaleDropletTemplateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDropletAutoscaleDropletTemplate)(nil)).Elem() +} + +func (i GetDropletAutoscaleDropletTemplateArgs) ToGetDropletAutoscaleDropletTemplateOutput() GetDropletAutoscaleDropletTemplateOutput { + return i.ToGetDropletAutoscaleDropletTemplateOutputWithContext(context.Background()) +} + +func (i GetDropletAutoscaleDropletTemplateArgs) ToGetDropletAutoscaleDropletTemplateOutputWithContext(ctx context.Context) GetDropletAutoscaleDropletTemplateOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDropletAutoscaleDropletTemplateOutput) +} + +// GetDropletAutoscaleDropletTemplateArrayInput is an input type that accepts GetDropletAutoscaleDropletTemplateArray and GetDropletAutoscaleDropletTemplateArrayOutput values. +// You can construct a concrete instance of `GetDropletAutoscaleDropletTemplateArrayInput` via: +// +// GetDropletAutoscaleDropletTemplateArray{ GetDropletAutoscaleDropletTemplateArgs{...} } +type GetDropletAutoscaleDropletTemplateArrayInput interface { + pulumi.Input + + ToGetDropletAutoscaleDropletTemplateArrayOutput() GetDropletAutoscaleDropletTemplateArrayOutput + ToGetDropletAutoscaleDropletTemplateArrayOutputWithContext(context.Context) GetDropletAutoscaleDropletTemplateArrayOutput +} + +type GetDropletAutoscaleDropletTemplateArray []GetDropletAutoscaleDropletTemplateInput + +func (GetDropletAutoscaleDropletTemplateArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDropletAutoscaleDropletTemplate)(nil)).Elem() +} + +func (i GetDropletAutoscaleDropletTemplateArray) ToGetDropletAutoscaleDropletTemplateArrayOutput() GetDropletAutoscaleDropletTemplateArrayOutput { + return i.ToGetDropletAutoscaleDropletTemplateArrayOutputWithContext(context.Background()) +} + +func (i GetDropletAutoscaleDropletTemplateArray) ToGetDropletAutoscaleDropletTemplateArrayOutputWithContext(ctx context.Context) GetDropletAutoscaleDropletTemplateArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDropletAutoscaleDropletTemplateArrayOutput) +} + +type GetDropletAutoscaleDropletTemplateOutput struct{ *pulumi.OutputState } + +func (GetDropletAutoscaleDropletTemplateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDropletAutoscaleDropletTemplate)(nil)).Elem() +} + +func (o GetDropletAutoscaleDropletTemplateOutput) ToGetDropletAutoscaleDropletTemplateOutput() GetDropletAutoscaleDropletTemplateOutput { + return o +} + +func (o GetDropletAutoscaleDropletTemplateOutput) ToGetDropletAutoscaleDropletTemplateOutputWithContext(ctx context.Context) GetDropletAutoscaleDropletTemplateOutput { + return o +} + +// Droplet image +func (o GetDropletAutoscaleDropletTemplateOutput) Image() pulumi.StringOutput { + return o.ApplyT(func(v GetDropletAutoscaleDropletTemplate) string { return v.Image }).(pulumi.StringOutput) +} + +// Enable droplet IPv6 +func (o GetDropletAutoscaleDropletTemplateOutput) Ipv6() pulumi.BoolOutput { + return o.ApplyT(func(v GetDropletAutoscaleDropletTemplate) bool { return v.Ipv6 }).(pulumi.BoolOutput) +} + +// Droplet project ID +func (o GetDropletAutoscaleDropletTemplateOutput) ProjectId() pulumi.StringOutput { + return o.ApplyT(func(v GetDropletAutoscaleDropletTemplate) string { return v.ProjectId }).(pulumi.StringOutput) +} + +// Droplet region +func (o GetDropletAutoscaleDropletTemplateOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v GetDropletAutoscaleDropletTemplate) string { return v.Region }).(pulumi.StringOutput) +} + +// Droplet size +func (o GetDropletAutoscaleDropletTemplateOutput) Size() pulumi.StringOutput { + return o.ApplyT(func(v GetDropletAutoscaleDropletTemplate) string { return v.Size }).(pulumi.StringOutput) +} + +// Droplet SSH keys +func (o GetDropletAutoscaleDropletTemplateOutput) SshKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDropletAutoscaleDropletTemplate) []string { return v.SshKeys }).(pulumi.StringArrayOutput) +} + +// Droplet tags +func (o GetDropletAutoscaleDropletTemplateOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDropletAutoscaleDropletTemplate) []string { return v.Tags }).(pulumi.StringArrayOutput) +} + +// Droplet user data +func (o GetDropletAutoscaleDropletTemplateOutput) UserData() pulumi.StringOutput { + return o.ApplyT(func(v GetDropletAutoscaleDropletTemplate) string { return v.UserData }).(pulumi.StringOutput) +} + +// Droplet VPC UUID +func (o GetDropletAutoscaleDropletTemplateOutput) VpcUuid() pulumi.StringOutput { + return o.ApplyT(func(v GetDropletAutoscaleDropletTemplate) string { return v.VpcUuid }).(pulumi.StringOutput) +} + +// Enable droplet agent +func (o GetDropletAutoscaleDropletTemplateOutput) WithDropletAgent() pulumi.BoolOutput { + return o.ApplyT(func(v GetDropletAutoscaleDropletTemplate) bool { return v.WithDropletAgent }).(pulumi.BoolOutput) +} + +type GetDropletAutoscaleDropletTemplateArrayOutput struct{ *pulumi.OutputState } + +func (GetDropletAutoscaleDropletTemplateArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDropletAutoscaleDropletTemplate)(nil)).Elem() +} + +func (o GetDropletAutoscaleDropletTemplateArrayOutput) ToGetDropletAutoscaleDropletTemplateArrayOutput() GetDropletAutoscaleDropletTemplateArrayOutput { + return o +} + +func (o GetDropletAutoscaleDropletTemplateArrayOutput) ToGetDropletAutoscaleDropletTemplateArrayOutputWithContext(ctx context.Context) GetDropletAutoscaleDropletTemplateArrayOutput { + return o +} + +func (o GetDropletAutoscaleDropletTemplateArrayOutput) Index(i pulumi.IntInput) GetDropletAutoscaleDropletTemplateOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDropletAutoscaleDropletTemplate { + return vs[0].([]GetDropletAutoscaleDropletTemplate)[vs[1].(int)] + }).(GetDropletAutoscaleDropletTemplateOutput) +} + type GetDropletsDroplet struct { // Whether backups are enabled. Backups bool `pulumi:"backups"` @@ -40198,6 +41290,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*DatabaseUserSettingAclArrayInput)(nil)).Elem(), DatabaseUserSettingAclArray{}) pulumi.RegisterInputType(reflect.TypeOf((*DatabaseUserSettingOpensearchAclInput)(nil)).Elem(), DatabaseUserSettingOpensearchAclArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DatabaseUserSettingOpensearchAclArrayInput)(nil)).Elem(), DatabaseUserSettingOpensearchAclArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DropletAutoscaleConfigInput)(nil)).Elem(), DropletAutoscaleConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DropletAutoscaleConfigPtrInput)(nil)).Elem(), DropletAutoscaleConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DropletAutoscaleCurrentUtilizationInput)(nil)).Elem(), DropletAutoscaleCurrentUtilizationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DropletAutoscaleCurrentUtilizationArrayInput)(nil)).Elem(), DropletAutoscaleCurrentUtilizationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DropletAutoscaleDropletTemplateInput)(nil)).Elem(), DropletAutoscaleDropletTemplateArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DropletAutoscaleDropletTemplatePtrInput)(nil)).Elem(), DropletAutoscaleDropletTemplateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DropletBackupPolicyInput)(nil)).Elem(), DropletBackupPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DropletBackupPolicyPtrInput)(nil)).Elem(), DropletBackupPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FirewallInboundRuleInput)(nil)).Elem(), FirewallInboundRuleArgs{}) @@ -40435,6 +41533,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetDomainsFilterArrayInput)(nil)).Elem(), GetDomainsFilterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDomainsSortInput)(nil)).Elem(), GetDomainsSortArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDomainsSortArrayInput)(nil)).Elem(), GetDomainsSortArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDropletAutoscaleConfigInput)(nil)).Elem(), GetDropletAutoscaleConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDropletAutoscaleConfigArrayInput)(nil)).Elem(), GetDropletAutoscaleConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDropletAutoscaleCurrentUtilizationInput)(nil)).Elem(), GetDropletAutoscaleCurrentUtilizationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDropletAutoscaleCurrentUtilizationArrayInput)(nil)).Elem(), GetDropletAutoscaleCurrentUtilizationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDropletAutoscaleDropletTemplateInput)(nil)).Elem(), GetDropletAutoscaleDropletTemplateArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetDropletAutoscaleDropletTemplateArrayInput)(nil)).Elem(), GetDropletAutoscaleDropletTemplateArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDropletsDropletInput)(nil)).Elem(), GetDropletsDropletArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDropletsDropletArrayInput)(nil)).Elem(), GetDropletsDropletArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDropletsFilterInput)(nil)).Elem(), GetDropletsFilterArgs{}) @@ -40711,6 +41815,12 @@ func init() { pulumi.RegisterOutputType(DatabaseUserSettingAclArrayOutput{}) pulumi.RegisterOutputType(DatabaseUserSettingOpensearchAclOutput{}) pulumi.RegisterOutputType(DatabaseUserSettingOpensearchAclArrayOutput{}) + pulumi.RegisterOutputType(DropletAutoscaleConfigOutput{}) + pulumi.RegisterOutputType(DropletAutoscaleConfigPtrOutput{}) + pulumi.RegisterOutputType(DropletAutoscaleCurrentUtilizationOutput{}) + pulumi.RegisterOutputType(DropletAutoscaleCurrentUtilizationArrayOutput{}) + pulumi.RegisterOutputType(DropletAutoscaleDropletTemplateOutput{}) + pulumi.RegisterOutputType(DropletAutoscaleDropletTemplatePtrOutput{}) pulumi.RegisterOutputType(DropletBackupPolicyOutput{}) pulumi.RegisterOutputType(DropletBackupPolicyPtrOutput{}) pulumi.RegisterOutputType(FirewallInboundRuleOutput{}) @@ -40948,6 +42058,12 @@ func init() { pulumi.RegisterOutputType(GetDomainsFilterArrayOutput{}) pulumi.RegisterOutputType(GetDomainsSortOutput{}) pulumi.RegisterOutputType(GetDomainsSortArrayOutput{}) + pulumi.RegisterOutputType(GetDropletAutoscaleConfigOutput{}) + pulumi.RegisterOutputType(GetDropletAutoscaleConfigArrayOutput{}) + pulumi.RegisterOutputType(GetDropletAutoscaleCurrentUtilizationOutput{}) + pulumi.RegisterOutputType(GetDropletAutoscaleCurrentUtilizationArrayOutput{}) + pulumi.RegisterOutputType(GetDropletAutoscaleDropletTemplateOutput{}) + pulumi.RegisterOutputType(GetDropletAutoscaleDropletTemplateArrayOutput{}) pulumi.RegisterOutputType(GetDropletsDropletOutput{}) pulumi.RegisterOutputType(GetDropletsDropletArrayOutput{}) pulumi.RegisterOutputType(GetDropletsFilterOutput{}) diff --git a/sdk/go/digitalocean/reservedIpv6.go b/sdk/go/digitalocean/reservedIpv6.go new file mode 100644 index 00000000..5e5f1485 --- /dev/null +++ b/sdk/go/digitalocean/reservedIpv6.go @@ -0,0 +1,241 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package digitalocean + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type ReservedIpv6 struct { + pulumi.CustomResourceState + + DropletId pulumi.IntOutput `pulumi:"dropletId"` + Ip pulumi.StringOutput `pulumi:"ip"` + RegionSlug pulumi.StringOutput `pulumi:"regionSlug"` + // the uniform resource name for the reserved ipv6 + Urn pulumi.StringOutput `pulumi:"urn"` +} + +// NewReservedIpv6 registers a new resource with the given unique name, arguments, and options. +func NewReservedIpv6(ctx *pulumi.Context, + name string, args *ReservedIpv6Args, opts ...pulumi.ResourceOption) (*ReservedIpv6, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.RegionSlug == nil { + return nil, errors.New("invalid value for required argument 'RegionSlug'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ReservedIpv6 + err := ctx.RegisterResource("digitalocean:index/reservedIpv6:ReservedIpv6", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetReservedIpv6 gets an existing ReservedIpv6 resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetReservedIpv6(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ReservedIpv6State, opts ...pulumi.ResourceOption) (*ReservedIpv6, error) { + var resource ReservedIpv6 + err := ctx.ReadResource("digitalocean:index/reservedIpv6:ReservedIpv6", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ReservedIpv6 resources. +type reservedIpv6State struct { + DropletId *int `pulumi:"dropletId"` + Ip *string `pulumi:"ip"` + RegionSlug *string `pulumi:"regionSlug"` + // the uniform resource name for the reserved ipv6 + Urn *string `pulumi:"urn"` +} + +type ReservedIpv6State struct { + DropletId pulumi.IntPtrInput + Ip pulumi.StringPtrInput + RegionSlug pulumi.StringPtrInput + // the uniform resource name for the reserved ipv6 + Urn pulumi.StringPtrInput +} + +func (ReservedIpv6State) ElementType() reflect.Type { + return reflect.TypeOf((*reservedIpv6State)(nil)).Elem() +} + +type reservedIpv6Args struct { + DropletId *int `pulumi:"dropletId"` + Ip *string `pulumi:"ip"` + RegionSlug string `pulumi:"regionSlug"` +} + +// The set of arguments for constructing a ReservedIpv6 resource. +type ReservedIpv6Args struct { + DropletId pulumi.IntPtrInput + Ip pulumi.StringPtrInput + RegionSlug pulumi.StringInput +} + +func (ReservedIpv6Args) ElementType() reflect.Type { + return reflect.TypeOf((*reservedIpv6Args)(nil)).Elem() +} + +type ReservedIpv6Input interface { + pulumi.Input + + ToReservedIpv6Output() ReservedIpv6Output + ToReservedIpv6OutputWithContext(ctx context.Context) ReservedIpv6Output +} + +func (*ReservedIpv6) ElementType() reflect.Type { + return reflect.TypeOf((**ReservedIpv6)(nil)).Elem() +} + +func (i *ReservedIpv6) ToReservedIpv6Output() ReservedIpv6Output { + return i.ToReservedIpv6OutputWithContext(context.Background()) +} + +func (i *ReservedIpv6) ToReservedIpv6OutputWithContext(ctx context.Context) ReservedIpv6Output { + return pulumi.ToOutputWithContext(ctx, i).(ReservedIpv6Output) +} + +// ReservedIpv6ArrayInput is an input type that accepts ReservedIpv6Array and ReservedIpv6ArrayOutput values. +// You can construct a concrete instance of `ReservedIpv6ArrayInput` via: +// +// ReservedIpv6Array{ ReservedIpv6Args{...} } +type ReservedIpv6ArrayInput interface { + pulumi.Input + + ToReservedIpv6ArrayOutput() ReservedIpv6ArrayOutput + ToReservedIpv6ArrayOutputWithContext(context.Context) ReservedIpv6ArrayOutput +} + +type ReservedIpv6Array []ReservedIpv6Input + +func (ReservedIpv6Array) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ReservedIpv6)(nil)).Elem() +} + +func (i ReservedIpv6Array) ToReservedIpv6ArrayOutput() ReservedIpv6ArrayOutput { + return i.ToReservedIpv6ArrayOutputWithContext(context.Background()) +} + +func (i ReservedIpv6Array) ToReservedIpv6ArrayOutputWithContext(ctx context.Context) ReservedIpv6ArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservedIpv6ArrayOutput) +} + +// ReservedIpv6MapInput is an input type that accepts ReservedIpv6Map and ReservedIpv6MapOutput values. +// You can construct a concrete instance of `ReservedIpv6MapInput` via: +// +// ReservedIpv6Map{ "key": ReservedIpv6Args{...} } +type ReservedIpv6MapInput interface { + pulumi.Input + + ToReservedIpv6MapOutput() ReservedIpv6MapOutput + ToReservedIpv6MapOutputWithContext(context.Context) ReservedIpv6MapOutput +} + +type ReservedIpv6Map map[string]ReservedIpv6Input + +func (ReservedIpv6Map) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ReservedIpv6)(nil)).Elem() +} + +func (i ReservedIpv6Map) ToReservedIpv6MapOutput() ReservedIpv6MapOutput { + return i.ToReservedIpv6MapOutputWithContext(context.Background()) +} + +func (i ReservedIpv6Map) ToReservedIpv6MapOutputWithContext(ctx context.Context) ReservedIpv6MapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservedIpv6MapOutput) +} + +type ReservedIpv6Output struct{ *pulumi.OutputState } + +func (ReservedIpv6Output) ElementType() reflect.Type { + return reflect.TypeOf((**ReservedIpv6)(nil)).Elem() +} + +func (o ReservedIpv6Output) ToReservedIpv6Output() ReservedIpv6Output { + return o +} + +func (o ReservedIpv6Output) ToReservedIpv6OutputWithContext(ctx context.Context) ReservedIpv6Output { + return o +} + +func (o ReservedIpv6Output) DropletId() pulumi.IntOutput { + return o.ApplyT(func(v *ReservedIpv6) pulumi.IntOutput { return v.DropletId }).(pulumi.IntOutput) +} + +func (o ReservedIpv6Output) Ip() pulumi.StringOutput { + return o.ApplyT(func(v *ReservedIpv6) pulumi.StringOutput { return v.Ip }).(pulumi.StringOutput) +} + +func (o ReservedIpv6Output) RegionSlug() pulumi.StringOutput { + return o.ApplyT(func(v *ReservedIpv6) pulumi.StringOutput { return v.RegionSlug }).(pulumi.StringOutput) +} + +// the uniform resource name for the reserved ipv6 +func (o ReservedIpv6Output) Urn() pulumi.StringOutput { + return o.ApplyT(func(v *ReservedIpv6) pulumi.StringOutput { return v.Urn }).(pulumi.StringOutput) +} + +type ReservedIpv6ArrayOutput struct{ *pulumi.OutputState } + +func (ReservedIpv6ArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ReservedIpv6)(nil)).Elem() +} + +func (o ReservedIpv6ArrayOutput) ToReservedIpv6ArrayOutput() ReservedIpv6ArrayOutput { + return o +} + +func (o ReservedIpv6ArrayOutput) ToReservedIpv6ArrayOutputWithContext(ctx context.Context) ReservedIpv6ArrayOutput { + return o +} + +func (o ReservedIpv6ArrayOutput) Index(i pulumi.IntInput) ReservedIpv6Output { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ReservedIpv6 { + return vs[0].([]*ReservedIpv6)[vs[1].(int)] + }).(ReservedIpv6Output) +} + +type ReservedIpv6MapOutput struct{ *pulumi.OutputState } + +func (ReservedIpv6MapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ReservedIpv6)(nil)).Elem() +} + +func (o ReservedIpv6MapOutput) ToReservedIpv6MapOutput() ReservedIpv6MapOutput { + return o +} + +func (o ReservedIpv6MapOutput) ToReservedIpv6MapOutputWithContext(ctx context.Context) ReservedIpv6MapOutput { + return o +} + +func (o ReservedIpv6MapOutput) MapIndex(k pulumi.StringInput) ReservedIpv6Output { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ReservedIpv6 { + return vs[0].(map[string]*ReservedIpv6)[vs[1].(string)] + }).(ReservedIpv6Output) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ReservedIpv6Input)(nil)).Elem(), &ReservedIpv6{}) + pulumi.RegisterInputType(reflect.TypeOf((*ReservedIpv6ArrayInput)(nil)).Elem(), ReservedIpv6Array{}) + pulumi.RegisterInputType(reflect.TypeOf((*ReservedIpv6MapInput)(nil)).Elem(), ReservedIpv6Map{}) + pulumi.RegisterOutputType(ReservedIpv6Output{}) + pulumi.RegisterOutputType(ReservedIpv6ArrayOutput{}) + pulumi.RegisterOutputType(ReservedIpv6MapOutput{}) +} diff --git a/sdk/go/digitalocean/reservedIpv6Assignment.go b/sdk/go/digitalocean/reservedIpv6Assignment.go new file mode 100644 index 00000000..e1a8e4fd --- /dev/null +++ b/sdk/go/digitalocean/reservedIpv6Assignment.go @@ -0,0 +1,224 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package digitalocean + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type ReservedIpv6Assignment struct { + pulumi.CustomResourceState + + DropletId pulumi.IntOutput `pulumi:"dropletId"` + Ip pulumi.StringOutput `pulumi:"ip"` +} + +// NewReservedIpv6Assignment registers a new resource with the given unique name, arguments, and options. +func NewReservedIpv6Assignment(ctx *pulumi.Context, + name string, args *ReservedIpv6AssignmentArgs, opts ...pulumi.ResourceOption) (*ReservedIpv6Assignment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.DropletId == nil { + return nil, errors.New("invalid value for required argument 'DropletId'") + } + if args.Ip == nil { + return nil, errors.New("invalid value for required argument 'Ip'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ReservedIpv6Assignment + err := ctx.RegisterResource("digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetReservedIpv6Assignment gets an existing ReservedIpv6Assignment resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetReservedIpv6Assignment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ReservedIpv6AssignmentState, opts ...pulumi.ResourceOption) (*ReservedIpv6Assignment, error) { + var resource ReservedIpv6Assignment + err := ctx.ReadResource("digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ReservedIpv6Assignment resources. +type reservedIpv6AssignmentState struct { + DropletId *int `pulumi:"dropletId"` + Ip *string `pulumi:"ip"` +} + +type ReservedIpv6AssignmentState struct { + DropletId pulumi.IntPtrInput + Ip pulumi.StringPtrInput +} + +func (ReservedIpv6AssignmentState) ElementType() reflect.Type { + return reflect.TypeOf((*reservedIpv6AssignmentState)(nil)).Elem() +} + +type reservedIpv6AssignmentArgs struct { + DropletId int `pulumi:"dropletId"` + Ip string `pulumi:"ip"` +} + +// The set of arguments for constructing a ReservedIpv6Assignment resource. +type ReservedIpv6AssignmentArgs struct { + DropletId pulumi.IntInput + Ip pulumi.StringInput +} + +func (ReservedIpv6AssignmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*reservedIpv6AssignmentArgs)(nil)).Elem() +} + +type ReservedIpv6AssignmentInput interface { + pulumi.Input + + ToReservedIpv6AssignmentOutput() ReservedIpv6AssignmentOutput + ToReservedIpv6AssignmentOutputWithContext(ctx context.Context) ReservedIpv6AssignmentOutput +} + +func (*ReservedIpv6Assignment) ElementType() reflect.Type { + return reflect.TypeOf((**ReservedIpv6Assignment)(nil)).Elem() +} + +func (i *ReservedIpv6Assignment) ToReservedIpv6AssignmentOutput() ReservedIpv6AssignmentOutput { + return i.ToReservedIpv6AssignmentOutputWithContext(context.Background()) +} + +func (i *ReservedIpv6Assignment) ToReservedIpv6AssignmentOutputWithContext(ctx context.Context) ReservedIpv6AssignmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservedIpv6AssignmentOutput) +} + +// ReservedIpv6AssignmentArrayInput is an input type that accepts ReservedIpv6AssignmentArray and ReservedIpv6AssignmentArrayOutput values. +// You can construct a concrete instance of `ReservedIpv6AssignmentArrayInput` via: +// +// ReservedIpv6AssignmentArray{ ReservedIpv6AssignmentArgs{...} } +type ReservedIpv6AssignmentArrayInput interface { + pulumi.Input + + ToReservedIpv6AssignmentArrayOutput() ReservedIpv6AssignmentArrayOutput + ToReservedIpv6AssignmentArrayOutputWithContext(context.Context) ReservedIpv6AssignmentArrayOutput +} + +type ReservedIpv6AssignmentArray []ReservedIpv6AssignmentInput + +func (ReservedIpv6AssignmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ReservedIpv6Assignment)(nil)).Elem() +} + +func (i ReservedIpv6AssignmentArray) ToReservedIpv6AssignmentArrayOutput() ReservedIpv6AssignmentArrayOutput { + return i.ToReservedIpv6AssignmentArrayOutputWithContext(context.Background()) +} + +func (i ReservedIpv6AssignmentArray) ToReservedIpv6AssignmentArrayOutputWithContext(ctx context.Context) ReservedIpv6AssignmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservedIpv6AssignmentArrayOutput) +} + +// ReservedIpv6AssignmentMapInput is an input type that accepts ReservedIpv6AssignmentMap and ReservedIpv6AssignmentMapOutput values. +// You can construct a concrete instance of `ReservedIpv6AssignmentMapInput` via: +// +// ReservedIpv6AssignmentMap{ "key": ReservedIpv6AssignmentArgs{...} } +type ReservedIpv6AssignmentMapInput interface { + pulumi.Input + + ToReservedIpv6AssignmentMapOutput() ReservedIpv6AssignmentMapOutput + ToReservedIpv6AssignmentMapOutputWithContext(context.Context) ReservedIpv6AssignmentMapOutput +} + +type ReservedIpv6AssignmentMap map[string]ReservedIpv6AssignmentInput + +func (ReservedIpv6AssignmentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ReservedIpv6Assignment)(nil)).Elem() +} + +func (i ReservedIpv6AssignmentMap) ToReservedIpv6AssignmentMapOutput() ReservedIpv6AssignmentMapOutput { + return i.ToReservedIpv6AssignmentMapOutputWithContext(context.Background()) +} + +func (i ReservedIpv6AssignmentMap) ToReservedIpv6AssignmentMapOutputWithContext(ctx context.Context) ReservedIpv6AssignmentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ReservedIpv6AssignmentMapOutput) +} + +type ReservedIpv6AssignmentOutput struct{ *pulumi.OutputState } + +func (ReservedIpv6AssignmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ReservedIpv6Assignment)(nil)).Elem() +} + +func (o ReservedIpv6AssignmentOutput) ToReservedIpv6AssignmentOutput() ReservedIpv6AssignmentOutput { + return o +} + +func (o ReservedIpv6AssignmentOutput) ToReservedIpv6AssignmentOutputWithContext(ctx context.Context) ReservedIpv6AssignmentOutput { + return o +} + +func (o ReservedIpv6AssignmentOutput) DropletId() pulumi.IntOutput { + return o.ApplyT(func(v *ReservedIpv6Assignment) pulumi.IntOutput { return v.DropletId }).(pulumi.IntOutput) +} + +func (o ReservedIpv6AssignmentOutput) Ip() pulumi.StringOutput { + return o.ApplyT(func(v *ReservedIpv6Assignment) pulumi.StringOutput { return v.Ip }).(pulumi.StringOutput) +} + +type ReservedIpv6AssignmentArrayOutput struct{ *pulumi.OutputState } + +func (ReservedIpv6AssignmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ReservedIpv6Assignment)(nil)).Elem() +} + +func (o ReservedIpv6AssignmentArrayOutput) ToReservedIpv6AssignmentArrayOutput() ReservedIpv6AssignmentArrayOutput { + return o +} + +func (o ReservedIpv6AssignmentArrayOutput) ToReservedIpv6AssignmentArrayOutputWithContext(ctx context.Context) ReservedIpv6AssignmentArrayOutput { + return o +} + +func (o ReservedIpv6AssignmentArrayOutput) Index(i pulumi.IntInput) ReservedIpv6AssignmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ReservedIpv6Assignment { + return vs[0].([]*ReservedIpv6Assignment)[vs[1].(int)] + }).(ReservedIpv6AssignmentOutput) +} + +type ReservedIpv6AssignmentMapOutput struct{ *pulumi.OutputState } + +func (ReservedIpv6AssignmentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ReservedIpv6Assignment)(nil)).Elem() +} + +func (o ReservedIpv6AssignmentMapOutput) ToReservedIpv6AssignmentMapOutput() ReservedIpv6AssignmentMapOutput { + return o +} + +func (o ReservedIpv6AssignmentMapOutput) ToReservedIpv6AssignmentMapOutputWithContext(ctx context.Context) ReservedIpv6AssignmentMapOutput { + return o +} + +func (o ReservedIpv6AssignmentMapOutput) MapIndex(k pulumi.StringInput) ReservedIpv6AssignmentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ReservedIpv6Assignment { + return vs[0].(map[string]*ReservedIpv6Assignment)[vs[1].(string)] + }).(ReservedIpv6AssignmentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ReservedIpv6AssignmentInput)(nil)).Elem(), &ReservedIpv6Assignment{}) + pulumi.RegisterInputType(reflect.TypeOf((*ReservedIpv6AssignmentArrayInput)(nil)).Elem(), ReservedIpv6AssignmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ReservedIpv6AssignmentMapInput)(nil)).Elem(), ReservedIpv6AssignmentMap{}) + pulumi.RegisterOutputType(ReservedIpv6AssignmentOutput{}) + pulumi.RegisterOutputType(ReservedIpv6AssignmentArrayOutput{}) + pulumi.RegisterOutputType(ReservedIpv6AssignmentMapOutput{}) +} diff --git a/sdk/java/build.gradle b/sdk/java/build.gradle index 19e29c70..2bb12ba0 100644 --- a/sdk/java/build.gradle +++ b/sdk/java/build.gradle @@ -44,7 +44,7 @@ repositories { dependencies { implementation("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.gson:gson:2.8.9") - implementation("com.pulumi:pulumi:0.18.0") + implementation("com.pulumi:pulumi:0.20.0") } task sourcesJar(type: Jar) { diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/DigitaloceanFunctions.java b/sdk/java/src/main/java/com/pulumi/digitalocean/DigitaloceanFunctions.java index 4decf231..423395ac 100644 --- a/sdk/java/src/main/java/com/pulumi/digitalocean/DigitaloceanFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/DigitaloceanFunctions.java @@ -7,6 +7,7 @@ import com.pulumi.core.TypeShape; import com.pulumi.deployment.Deployment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; import com.pulumi.digitalocean.Utilities; import com.pulumi.digitalocean.inputs.GetAppArgs; import com.pulumi.digitalocean.inputs.GetAppPlainArgs; @@ -29,6 +30,8 @@ import com.pulumi.digitalocean.inputs.GetDomainsArgs; import com.pulumi.digitalocean.inputs.GetDomainsPlainArgs; import com.pulumi.digitalocean.inputs.GetDropletArgs; +import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs; +import com.pulumi.digitalocean.inputs.GetDropletAutoscalePlainArgs; import com.pulumi.digitalocean.inputs.GetDropletPlainArgs; import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs; import com.pulumi.digitalocean.inputs.GetDropletSnapshotPlainArgs; @@ -62,6 +65,8 @@ import com.pulumi.digitalocean.inputs.GetRegionsPlainArgs; import com.pulumi.digitalocean.inputs.GetReservedIpArgs; import com.pulumi.digitalocean.inputs.GetReservedIpPlainArgs; +import com.pulumi.digitalocean.inputs.GetReservedIpv6Args; +import com.pulumi.digitalocean.inputs.GetReservedIpv6PlainArgs; import com.pulumi.digitalocean.inputs.GetSizesArgs; import com.pulumi.digitalocean.inputs.GetSizesPlainArgs; import com.pulumi.digitalocean.inputs.GetSpacesBucketArgs; @@ -99,6 +104,7 @@ import com.pulumi.digitalocean.outputs.GetDatabaseUserResult; import com.pulumi.digitalocean.outputs.GetDomainResult; import com.pulumi.digitalocean.outputs.GetDomainsResult; +import com.pulumi.digitalocean.outputs.GetDropletAutoscaleResult; import com.pulumi.digitalocean.outputs.GetDropletResult; import com.pulumi.digitalocean.outputs.GetDropletSnapshotResult; import com.pulumi.digitalocean.outputs.GetDropletsResult; @@ -116,6 +122,7 @@ import com.pulumi.digitalocean.outputs.GetRegionResult; import com.pulumi.digitalocean.outputs.GetRegionsResult; import com.pulumi.digitalocean.outputs.GetReservedIpResult; +import com.pulumi.digitalocean.outputs.GetReservedIpv6Result; import com.pulumi.digitalocean.outputs.GetSizesResult; import com.pulumi.digitalocean.outputs.GetSpacesBucketObjectResult; import com.pulumi.digitalocean.outputs.GetSpacesBucketObjectsResult; @@ -338,6 +345,47 @@ public static CompletableFuture getAccountPlain(InvokeArgs arg public static Output getAccount(InvokeArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("digitalocean:index/getAccount:getAccount", TypeShape.of(GetAccountResult.class), args, Utilities.withVersion(options)); } + /** + * Get information on your DigitalOcean account. + * + * ## Example Usage + * + * Get the account: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getAccount();
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getAccount(InvokeArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getAccount:getAccount", TypeShape.of(GetAccountResult.class), args, Utilities.withVersion(options)); + } /** * Get information on your DigitalOcean account. * @@ -514,6 +562,51 @@ public static CompletableFuture getAppPlain(GetAppPlainArgs args) public static Output getApp(GetAppArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("digitalocean:index/getApp:getApp", TypeShape.of(GetAppResult.class), args, Utilities.withVersion(options)); } + /** + * Get information on a DigitalOcean App. + * + * ## Example Usage + * + * Get the account: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetAppArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getApp(GetAppArgs.builder()
+     *             .appId("e665d18d-7b56-44a9-92ce-31979174d544")
+     *             .build());
+     * 
+     *         ctx.export("defaultIngress", example.applyValue(getAppResult -> getAppResult.defaultIngress()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getApp(GetAppArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getApp:getApp", TypeShape.of(GetAppResult.class), args, Utilities.withVersion(options)); + } /** * Get information on a DigitalOcean App. * @@ -706,6 +799,55 @@ public static CompletableFuture getCertificatePlain(GetCer public static Output getCertificate(GetCertificateArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("digitalocean:index/getCertificate:getCertificate", TypeShape.of(GetCertificateResult.class), args, Utilities.withVersion(options)); } + /** + * Get information on a certificate. This data source provides the name, type, state, + * domains, expiry date, and the sha1 fingerprint as configured on your DigitalOcean account. + * This is useful if the certificate in question is not managed by this provider or you need to utilize + * any of the certificates data. + * + * An error is triggered if the provided certificate name does not exist. + * + * ## Example Usage + * + * Get the certificate: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetCertificateArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getCertificate(GetCertificateArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getCertificate(GetCertificateArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getCertificate:getCertificate", TypeShape.of(GetCertificateResult.class), args, Utilities.withVersion(options)); + } /** * Get information on a certificate. This data source provides the name, type, state, * domains, expiry date, and the sha1 fingerprint as configured on your DigitalOcean account. @@ -908,6 +1050,57 @@ public static CompletableFuture getContainerRegistry public static Output getContainerRegistry(GetContainerRegistryArgs args, InvokeOptions options) { return Deployment.getInstance().invoke("digitalocean:index/getContainerRegistry:getContainerRegistry", TypeShape.of(GetContainerRegistryResult.class), args, Utilities.withVersion(options)); } + /** + * Get information on a container registry. This data source provides the name as + * configured on your DigitalOcean account. This is useful if the container + * registry name in question is not managed by this provider or you need validate if + * the container registry exists in the account. + * + * An error is triggered if the provided container registry name does not exist. + * + * ## Example Usage + * + * ### Basic Example + * + * Get the container registry: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetContainerRegistryArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getContainerRegistry(GetContainerRegistryArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getContainerRegistry:getContainerRegistry", TypeShape.of(GetContainerRegistryResult.class), args, Utilities.withVersion(options)); + } /** * Get information on a container registry. This data source provides the name as * configured on your DigitalOcean account. This is useful if the container @@ -1128,11 +1321,11 @@ public static Output getDatabaseCa(GetDatabaseCaArgs args, * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getDatabaseCaPlain(GetDatabaseCaPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("digitalocean:index/getDatabaseCa:getDatabaseCa", TypeShape.of(GetDatabaseCaResult.class), args, Utilities.withVersion(options)); + public static Output getDatabaseCa(GetDatabaseCaArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDatabaseCa:getDatabaseCa", TypeShape.of(GetDatabaseCaResult.class), args, Utilities.withVersion(options)); } /** - * Provides information on a DigitalOcean database cluster resource. + * Provides the CA certificate for a DigitalOcean database. * * ## Example Usage * @@ -1145,7 +1338,7 @@ public static CompletableFuture getDatabaseCaPlain(GetDatab * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.digitalocean.DigitaloceanFunctions; - * import com.pulumi.digitalocean.inputs.GetDatabaseClusterArgs; + * import com.pulumi.digitalocean.inputs.GetDatabaseCaArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -1159,11 +1352,11 @@ public static CompletableFuture getDatabaseCaPlain(GetDatab * } * * public static void stack(Context ctx) { - * final var example = DigitaloceanFunctions.getDatabaseCluster(GetDatabaseClusterArgs.builder() - * .name("example-cluster") + * final var ca = DigitaloceanFunctions.getDatabaseCa(GetDatabaseCaArgs.builder() + * .clusterId("aaa-bbb-ccc-ddd") * .build()); * - * ctx.export("databaseOutput", example.applyValue(getDatabaseClusterResult -> getDatabaseClusterResult.uri())); + * ctx.export("caOutput", ca.applyValue(getDatabaseCaResult -> getDatabaseCaResult.certificate())); * } * } * } @@ -1171,8 +1364,8 @@ public static CompletableFuture getDatabaseCaPlain(GetDatab * <!--End PulumiCodeChooser --> * */ - public static Output getDatabaseCluster(GetDatabaseClusterArgs args) { - return getDatabaseCluster(args, InvokeOptions.Empty); + public static CompletableFuture getDatabaseCaPlain(GetDatabaseCaPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getDatabaseCa:getDatabaseCa", TypeShape.of(GetDatabaseCaResult.class), args, Utilities.withVersion(options)); } /** * Provides information on a DigitalOcean database cluster resource. @@ -1214,8 +1407,8 @@ public static Output getDatabaseCluster(GetDatabaseClu * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getDatabaseClusterPlain(GetDatabaseClusterPlainArgs args) { - return getDatabaseClusterPlain(args, InvokeOptions.Empty); + public static Output getDatabaseCluster(GetDatabaseClusterArgs args) { + return getDatabaseCluster(args, InvokeOptions.Empty); } /** * Provides information on a DigitalOcean database cluster resource. @@ -1257,8 +1450,8 @@ public static CompletableFuture getDatabaseClusterPlai * <!--End PulumiCodeChooser --> * */ - public static Output getDatabaseCluster(GetDatabaseClusterArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getDatabaseCluster:getDatabaseCluster", TypeShape.of(GetDatabaseClusterResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getDatabaseClusterPlain(GetDatabaseClusterPlainArgs args) { + return getDatabaseClusterPlain(args, InvokeOptions.Empty); } /** * Provides information on a DigitalOcean database cluster resource. @@ -1300,11 +1493,11 @@ public static Output getDatabaseCluster(GetDatabaseClu * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getDatabaseClusterPlain(GetDatabaseClusterPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("digitalocean:index/getDatabaseCluster:getDatabaseCluster", TypeShape.of(GetDatabaseClusterResult.class), args, Utilities.withVersion(options)); + public static Output getDatabaseCluster(GetDatabaseClusterArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDatabaseCluster:getDatabaseCluster", TypeShape.of(GetDatabaseClusterResult.class), args, Utilities.withVersion(options)); } /** - * Provides information on a DigitalOcean PostgreSQL database connection pool. + * Provides information on a DigitalOcean database cluster resource. * * ## Example Usage * @@ -1318,7 +1511,6 @@ public static CompletableFuture getDatabaseClusterPlai * import com.pulumi.core.Output; * import com.pulumi.digitalocean.DigitaloceanFunctions; * import com.pulumi.digitalocean.inputs.GetDatabaseClusterArgs; - * import com.pulumi.digitalocean.inputs.GetDatabaseConnectionPoolArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -1336,12 +1528,7 @@ public static CompletableFuture getDatabaseClusterPlai * .name("example-cluster") * .build()); * - * final var read-only = DigitaloceanFunctions.getDatabaseConnectionPool(GetDatabaseConnectionPoolArgs.builder() - * .clusterId(example.applyValue(getDatabaseClusterResult -> getDatabaseClusterResult.id())) - * .name("pool-01") - * .build()); - * - * ctx.export("connectionPoolUriOutput", read_only.uri()); + * ctx.export("databaseOutput", example.applyValue(getDatabaseClusterResult -> getDatabaseClusterResult.uri())); * } * } * } @@ -1349,11 +1536,11 @@ public static CompletableFuture getDatabaseClusterPlai * <!--End PulumiCodeChooser --> * */ - public static Output getDatabaseConnectionPool(GetDatabaseConnectionPoolArgs args) { - return getDatabaseConnectionPool(args, InvokeOptions.Empty); + public static Output getDatabaseCluster(GetDatabaseClusterArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDatabaseCluster:getDatabaseCluster", TypeShape.of(GetDatabaseClusterResult.class), args, Utilities.withVersion(options)); } /** - * Provides information on a DigitalOcean PostgreSQL database connection pool. + * Provides information on a DigitalOcean database cluster resource. * * ## Example Usage * @@ -1367,7 +1554,6 @@ public static Output getDatabaseConnectionPool( * import com.pulumi.core.Output; * import com.pulumi.digitalocean.DigitaloceanFunctions; * import com.pulumi.digitalocean.inputs.GetDatabaseClusterArgs; - * import com.pulumi.digitalocean.inputs.GetDatabaseConnectionPoolArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -1385,12 +1571,7 @@ public static Output getDatabaseConnectionPool( * .name("example-cluster") * .build()); * - * final var read-only = DigitaloceanFunctions.getDatabaseConnectionPool(GetDatabaseConnectionPoolArgs.builder() - * .clusterId(example.applyValue(getDatabaseClusterResult -> getDatabaseClusterResult.id())) - * .name("pool-01") - * .build()); - * - * ctx.export("connectionPoolUriOutput", read_only.uri()); + * ctx.export("databaseOutput", example.applyValue(getDatabaseClusterResult -> getDatabaseClusterResult.uri())); * } * } * } @@ -1398,8 +1579,8 @@ public static Output getDatabaseConnectionPool( * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getDatabaseConnectionPoolPlain(GetDatabaseConnectionPoolPlainArgs args) { - return getDatabaseConnectionPoolPlain(args, InvokeOptions.Empty); + public static CompletableFuture getDatabaseClusterPlain(GetDatabaseClusterPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getDatabaseCluster:getDatabaseCluster", TypeShape.of(GetDatabaseClusterResult.class), args, Utilities.withVersion(options)); } /** * Provides information on a DigitalOcean PostgreSQL database connection pool. @@ -1447,8 +1628,8 @@ public static CompletableFuture getDatabaseConn * <!--End PulumiCodeChooser --> * */ - public static Output getDatabaseConnectionPool(GetDatabaseConnectionPoolArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getDatabaseConnectionPool:getDatabaseConnectionPool", TypeShape.of(GetDatabaseConnectionPoolResult.class), args, Utilities.withVersion(options)); + public static Output getDatabaseConnectionPool(GetDatabaseConnectionPoolArgs args) { + return getDatabaseConnectionPool(args, InvokeOptions.Empty); } /** * Provides information on a DigitalOcean PostgreSQL database connection pool. @@ -1496,11 +1677,11 @@ public static Output getDatabaseConnectionPool( * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getDatabaseConnectionPoolPlain(GetDatabaseConnectionPoolPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("digitalocean:index/getDatabaseConnectionPool:getDatabaseConnectionPool", TypeShape.of(GetDatabaseConnectionPoolResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getDatabaseConnectionPoolPlain(GetDatabaseConnectionPoolPlainArgs args) { + return getDatabaseConnectionPoolPlain(args, InvokeOptions.Empty); } /** - * Provides information on a DigitalOcean database replica. + * Provides information on a DigitalOcean PostgreSQL database connection pool. * * ## Example Usage * @@ -1514,7 +1695,7 @@ public static CompletableFuture getDatabaseConn * import com.pulumi.core.Output; * import com.pulumi.digitalocean.DigitaloceanFunctions; * import com.pulumi.digitalocean.inputs.GetDatabaseClusterArgs; - * import com.pulumi.digitalocean.inputs.GetDatabaseReplicaArgs; + * import com.pulumi.digitalocean.inputs.GetDatabaseConnectionPoolArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -1532,12 +1713,159 @@ public static CompletableFuture getDatabaseConn * .name("example-cluster") * .build()); * - * final var read-only = DigitaloceanFunctions.getDatabaseReplica(GetDatabaseReplicaArgs.builder() + * final var read-only = DigitaloceanFunctions.getDatabaseConnectionPool(GetDatabaseConnectionPoolArgs.builder() * .clusterId(example.applyValue(getDatabaseClusterResult -> getDatabaseClusterResult.id())) - * .name("terra-test-ro") + * .name("pool-01") * .build()); * - * ctx.export("replicaOutput", read_only.uri()); + * ctx.export("connectionPoolUriOutput", read_only.uri()); + * } + * } + * } + * + * <!--End PulumiCodeChooser --> + * + */ + public static Output getDatabaseConnectionPool(GetDatabaseConnectionPoolArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDatabaseConnectionPool:getDatabaseConnectionPool", TypeShape.of(GetDatabaseConnectionPoolResult.class), args, Utilities.withVersion(options)); + } + /** + * Provides information on a DigitalOcean PostgreSQL database connection pool. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetDatabaseClusterArgs;
+     * import com.pulumi.digitalocean.inputs.GetDatabaseConnectionPoolArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getDatabaseCluster(GetDatabaseClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .build());
+     * 
+     *         final var read-only = DigitaloceanFunctions.getDatabaseConnectionPool(GetDatabaseConnectionPoolArgs.builder()
+     *             .clusterId(example.applyValue(getDatabaseClusterResult -> getDatabaseClusterResult.id()))
+     *             .name("pool-01")
+     *             .build());
+     * 
+     *         ctx.export("connectionPoolUriOutput", read_only.uri());
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getDatabaseConnectionPool(GetDatabaseConnectionPoolArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDatabaseConnectionPool:getDatabaseConnectionPool", TypeShape.of(GetDatabaseConnectionPoolResult.class), args, Utilities.withVersion(options)); + } + /** + * Provides information on a DigitalOcean PostgreSQL database connection pool. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetDatabaseClusterArgs;
+     * import com.pulumi.digitalocean.inputs.GetDatabaseConnectionPoolArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getDatabaseCluster(GetDatabaseClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .build());
+     * 
+     *         final var read-only = DigitaloceanFunctions.getDatabaseConnectionPool(GetDatabaseConnectionPoolArgs.builder()
+     *             .clusterId(example.applyValue(getDatabaseClusterResult -> getDatabaseClusterResult.id()))
+     *             .name("pool-01")
+     *             .build());
+     * 
+     *         ctx.export("connectionPoolUriOutput", read_only.uri());
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getDatabaseConnectionPoolPlain(GetDatabaseConnectionPoolPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getDatabaseConnectionPool:getDatabaseConnectionPool", TypeShape.of(GetDatabaseConnectionPoolResult.class), args, Utilities.withVersion(options)); + } + /** + * Provides information on a DigitalOcean database replica. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetDatabaseClusterArgs;
+     * import com.pulumi.digitalocean.inputs.GetDatabaseReplicaArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getDatabaseCluster(GetDatabaseClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .build());
+     * 
+     *         final var read-only = DigitaloceanFunctions.getDatabaseReplica(GetDatabaseReplicaArgs.builder()
+     *             .clusterId(example.applyValue(getDatabaseClusterResult -> getDatabaseClusterResult.id()))
+     *             .name("terra-test-ro")
+     *             .build());
+     * 
+     *         ctx.export("replicaOutput", read_only.uri());
      *     }
      * }
      * }
@@ -1646,6 +1974,55 @@ public static CompletableFuture getDatabaseReplicaPlai
     public static Output getDatabaseReplica(GetDatabaseReplicaArgs args, InvokeOptions options) {
         return Deployment.getInstance().invoke("digitalocean:index/getDatabaseReplica:getDatabaseReplica", TypeShape.of(GetDatabaseReplicaResult.class), args, Utilities.withVersion(options));
     }
+    /**
+     * Provides information on a DigitalOcean database replica.
+     * 
+     * ## Example Usage
+     * 
+     * <!--Start PulumiCodeChooser -->
+     * 
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetDatabaseClusterArgs;
+     * import com.pulumi.digitalocean.inputs.GetDatabaseReplicaArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getDatabaseCluster(GetDatabaseClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .build());
+     * 
+     *         final var read-only = DigitaloceanFunctions.getDatabaseReplica(GetDatabaseReplicaArgs.builder()
+     *             .clusterId(example.applyValue(getDatabaseClusterResult -> getDatabaseClusterResult.id()))
+     *             .name("terra-test-ro")
+     *             .build());
+     * 
+     *         ctx.export("replicaOutput", read_only.uri());
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getDatabaseReplica(GetDatabaseReplicaArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDatabaseReplica:getDatabaseReplica", TypeShape.of(GetDatabaseReplicaResult.class), args, Utilities.withVersion(options)); + } /** * Provides information on a DigitalOcean database replica. * @@ -1888,22 +2265,14 @@ public static Output getDatabaseUser(GetDatabaseUserArgs * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getDatabaseUserPlain(GetDatabaseUserPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("digitalocean:index/getDatabaseUser:getDatabaseUser", TypeShape.of(GetDatabaseUserResult.class), args, Utilities.withVersion(options)); + public static Output getDatabaseUser(GetDatabaseUserArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDatabaseUser:getDatabaseUser", TypeShape.of(GetDatabaseUserResult.class), args, Utilities.withVersion(options)); } /** - * Get information on a domain. This data source provides the name, TTL, and zone - * file as configured on your DigitalOcean account. This is useful if the domain - * name in question is not managed by this provider or you need to utilize TTL or zone - * file data. - * - * An error is triggered if the provided domain name is not managed with your - * DigitalOcean account. + * Provides information on a DigitalOcean database user resource. * * ## Example Usage * - * Get the zone file for a domain: - * * <!--Start PulumiCodeChooser --> *
      * {@code
@@ -1913,7 +2282,8 @@ public static CompletableFuture getDatabaseUserPlain(GetD
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDomainArgs;
+     * import com.pulumi.digitalocean.inputs.GetDatabaseClusterArgs;
+     * import com.pulumi.digitalocean.inputs.GetDatabaseUserArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -1927,11 +2297,16 @@ public static CompletableFuture getDatabaseUserPlain(GetD
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getDomain(GetDomainArgs.builder()
-     *             .name("example.com")
+     *         final var main = DigitaloceanFunctions.getDatabaseCluster(GetDatabaseClusterArgs.builder()
+     *             .name("main-cluster")
      *             .build());
      * 
-     *         ctx.export("domainOutput", example.applyValue(getDomainResult -> getDomainResult.zoneFile()));
+     *         final var example = DigitaloceanFunctions.getDatabaseUser(GetDatabaseUserArgs.builder()
+     *             .clusterId(main.applyValue(getDatabaseClusterResult -> getDatabaseClusterResult.id()))
+     *             .name("example-user")
+     *             .build());
+     * 
+     *         ctx.export("databaseUserPassword", example.applyValue(getDatabaseUserResult -> getDatabaseUserResult.password()));
      *     }
      * }
      * }
@@ -1939,8 +2314,8 @@ public static CompletableFuture getDatabaseUserPlain(GetD
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getDomain(GetDomainArgs args) {
-        return getDomain(args, InvokeOptions.Empty);
+    public static CompletableFuture getDatabaseUserPlain(GetDatabaseUserPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getDatabaseUser:getDatabaseUser", TypeShape.of(GetDatabaseUserResult.class), args, Utilities.withVersion(options));
     }
     /**
      * Get information on a domain. This data source provides the name, TTL, and zone
@@ -1990,8 +2365,8 @@ public static Output getDomain(GetDomainArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getDomainPlain(GetDomainPlainArgs args) {
-        return getDomainPlain(args, InvokeOptions.Empty);
+    public static Output getDomain(GetDomainArgs args) {
+        return getDomain(args, InvokeOptions.Empty);
     }
     /**
      * Get information on a domain. This data source provides the name, TTL, and zone
@@ -2041,8 +2416,8 @@ public static CompletableFuture getDomainPlain(GetDomainPlainAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getDomain(GetDomainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getDomain:getDomain", TypeShape.of(GetDomainResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getDomainPlain(GetDomainPlainArgs args) {
+        return getDomainPlain(args, InvokeOptions.Empty);
     }
     /**
      * Get information on a domain. This data source provides the name, TTL, and zone
@@ -2092,23 +2467,21 @@ public static Output getDomain(GetDomainArgs args, InvokeOption
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getDomainPlain(GetDomainPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getDomain:getDomain", TypeShape.of(GetDomainResult.class), args, Utilities.withVersion(options));
+    public static Output getDomain(GetDomainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getDomain:getDomain", TypeShape.of(GetDomainResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on domains for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all domains will be returned.
-     * 
-     * This data source is useful if the domains in question are not managed by this provider or you need to
-     * utilize any of the domains' data.
+     * Get information on a domain. This data source provides the name, TTL, and zone
+     * file as configured on your DigitalOcean account. This is useful if the domain
+     * name in question is not managed by this provider or you need to utilize TTL or zone
+     * file data.
      * 
-     * Note: You can use the `digitalocean.Domain` data source to obtain metadata
-     * about a single domain if you already know the `name`.
+     * An error is triggered if the provided domain name is not managed with your
+     * DigitalOcean account.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter domains. (This example
-     * also uses the regular expression `match_by` mode in order to match domains by suffix.)
+     * Get the zone file for a domain:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -2119,7 +2492,7 @@ public static CompletableFuture getDomainPlain(GetDomainPlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDomainsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDomainArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -2133,7 +2506,111 @@ public static CompletableFuture getDomainPlain(GetDomainPlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var examples = DigitaloceanFunctions.getDomains(GetDomainsArgs.builder()
+     *         final var example = DigitaloceanFunctions.getDomain(GetDomainArgs.builder()
+     *             .name("example.com")
+     *             .build());
+     * 
+     *         ctx.export("domainOutput", example.applyValue(getDomainResult -> getDomainResult.zoneFile()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getDomain(GetDomainArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDomain:getDomain", TypeShape.of(GetDomainResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a domain. This data source provides the name, TTL, and zone + * file as configured on your DigitalOcean account. This is useful if the domain + * name in question is not managed by this provider or you need to utilize TTL or zone + * file data. + * + * An error is triggered if the provided domain name is not managed with your + * DigitalOcean account. + * + * ## Example Usage + * + * Get the zone file for a domain: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetDomainArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getDomain(GetDomainArgs.builder()
+     *             .name("example.com")
+     *             .build());
+     * 
+     *         ctx.export("domainOutput", example.applyValue(getDomainResult -> getDomainResult.zoneFile()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getDomainPlain(GetDomainPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getDomain:getDomain", TypeShape.of(GetDomainResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on domains for use in other resources, with the ability to filter and sort the results. + * If no filters are specified, all domains will be returned. + * + * This data source is useful if the domains in question are not managed by this provider or you need to + * utilize any of the domains' data. + * + * Note: You can use the `digitalocean.Domain` data source to obtain metadata + * about a single domain if you already know the `name`. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter domains. (This example + * also uses the regular expression `match_by` mode in order to match domains by suffix.) + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetDomainsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var examples = DigitaloceanFunctions.getDomains(GetDomainsArgs.builder()
      *             .filters(GetDomainsFilterArgs.builder()
      *                 .key("name")
      *                 .values("example\\.com$")
@@ -2375,6 +2852,62 @@ public static CompletableFuture getDomainsPlain(GetDomainsPlai
     public static Output getDomains(GetDomainsArgs args, InvokeOptions options) {
         return Deployment.getInstance().invoke("digitalocean:index/getDomains:getDomains", TypeShape.of(GetDomainsResult.class), args, Utilities.withVersion(options));
     }
+    /**
+     * Get information on domains for use in other resources, with the ability to filter and sort the results.
+     * If no filters are specified, all domains will be returned.
+     * 
+     * This data source is useful if the domains in question are not managed by this provider or you need to
+     * utilize any of the domains' data.
+     * 
+     * Note: You can use the `digitalocean.Domain` data source to obtain metadata
+     * about a single domain if you already know the `name`.
+     * 
+     * ## Example Usage
+     * 
+     * Use the `filter` block with a `key` string and `values` list to filter domains. (This example
+     * also uses the regular expression `match_by` mode in order to match domains by suffix.)
+     * 
+     * <!--Start PulumiCodeChooser -->
+     * 
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetDomainsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var examples = DigitaloceanFunctions.getDomains(GetDomainsArgs.builder()
+     *             .filters(GetDomainsFilterArgs.builder()
+     *                 .key("name")
+     *                 .values("example\\.com$")
+     *                 .matchBy("re")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getDomains(GetDomainsArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDomains:getDomains", TypeShape.of(GetDomainsResult.class), args, Utilities.withVersion(options)); + } /** * Get information on domains for use in other resources, with the ability to filter and sort the results. * If no filters are specified, all domains will be returned. @@ -3154,17 +3687,21 @@ public static Output getDroplet(GetDropletArgs args, InvokeOpt * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getDropletPlain(GetDropletPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("digitalocean:index/getDroplet:getDroplet", TypeShape.of(GetDropletResult.class), args, Utilities.withVersion(options)); + public static Output getDroplet(GetDropletArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDroplet:getDroplet", TypeShape.of(GetDropletResult.class), args, Utilities.withVersion(options)); } /** - * Droplet snapshots are saved instances of a Droplet. Use this data - * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other - * resources. + * Get information on a Droplet for use in other resources. This data source provides + * all of the Droplet's properties as configured on your DigitalOcean account. This + * is useful if the Droplet in question is not managed by this provider or you need to + * utilize any of the Droplet's data. + * + * **Note:** This data source returns a single Droplet. When specifying a `tag`, an + * error is triggered if more than one Droplet is found. * * ## Example Usage * - * Get the Droplet snapshot: + * Get the Droplet by name: * * <!--Start PulumiCodeChooser --> *
@@ -3175,7 +3712,7 @@ public static CompletableFuture getDropletPlain(GetDropletPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3189,19 +3726,18 @@ public static CompletableFuture getDropletPlain(GetDropletPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
+     *         final var example = DigitaloceanFunctions.getDroplet(GetDropletArgs.builder()
+     *             .name("web")
      *             .build());
      * 
+     *         ctx.export("dropletOutput", example.applyValue(getDropletResult -> getDropletResult.ipv4Address()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Create image from snapshot: + * Get the Droplet by tag: * * <!--Start PulumiCodeChooser --> *
@@ -3212,9 +3748,7 @@ public static CompletableFuture getDropletPlain(GetDropletPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3228,17 +3762,8 @@ public static CompletableFuture getDropletPlain(GetDropletPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
-     *             .build());
-     * 
-     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
-     *             .image(web_snapshot.id())
-     *             .name("web-02")
-     *             .region("nyc3")
-     *             .size("s-2vcpu-4gb")
+     *         final var example = DigitaloceanFunctions.getDroplet(GetDropletArgs.builder()
+     *             .tag("web")
      *             .build());
      * 
      *     }
@@ -3247,18 +3772,7 @@ public static CompletableFuture getDropletPlain(GetDropletPlai
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getDropletSnapshot() { - return getDropletSnapshot(GetDropletSnapshotArgs.Empty, InvokeOptions.Empty); - } - /** - * Droplet snapshots are saved instances of a Droplet. Use this data - * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other - * resources. - * - * ## Example Usage - * - * Get the Droplet snapshot: + * Get the Droplet by ID: * * <!--Start PulumiCodeChooser --> *
@@ -3269,7 +3783,7 @@ public static Output getDropletSnapshot() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3283,10 +3797,8 @@ public static Output getDropletSnapshot() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
+     *         final var example = DigitaloceanFunctions.getDroplet(GetDropletArgs.builder()
+     *             .id(exampleDigitaloceanKubernetesCluster.nodePool()[0].nodes()[0].dropletId())
      *             .build());
      * 
      *     }
@@ -3295,7 +3807,14 @@ public static Output getDropletSnapshot() {
      * 
* <!--End PulumiCodeChooser --> * - * Create image from snapshot: + */ + public static CompletableFuture getDropletPlain(GetDropletPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getDroplet:getDroplet", TypeShape.of(GetDropletResult.class), args, Utilities.withVersion(options)); + } + /** + * ## Example Usage + * + * Get the Droplet Autoscale pool by name: * * <!--Start PulumiCodeChooser --> *
@@ -3306,9 +3825,7 @@ public static Output getDropletSnapshot() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3322,17 +3839,8 @@ public static Output getDropletSnapshot() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
-     *             .build());
-     * 
-     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
-     *             .image(web_snapshot.id())
-     *             .name("web-02")
-     *             .region("nyc3")
-     *             .size("s-2vcpu-4gb")
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .name(my_existing_autoscale_pool.name())
      *             .build());
      * 
      *     }
@@ -3341,18 +3849,7 @@ public static Output getDropletSnapshot() {
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getDropletSnapshotPlain() { - return getDropletSnapshotPlain(GetDropletSnapshotPlainArgs.Empty, InvokeOptions.Empty); - } - /** - * Droplet snapshots are saved instances of a Droplet. Use this data - * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other - * resources. - * - * ## Example Usage - * - * Get the Droplet snapshot: + * Get the Droplet Autoscale pool by ID: * * <!--Start PulumiCodeChooser --> *
@@ -3363,7 +3860,7 @@ public static CompletableFuture getDropletSnapshotPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3377,10 +3874,8 @@ public static CompletableFuture getDropletSnapshotPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .id(my_existing_autoscale_pool.id())
      *             .build());
      * 
      *     }
@@ -3389,7 +3884,14 @@ public static CompletableFuture getDropletSnapshotPlai
      * 
* <!--End PulumiCodeChooser --> * - * Create image from snapshot: + */ + public static Output getDropletAutoscale() { + return getDropletAutoscale(GetDropletAutoscaleArgs.Empty, InvokeOptions.Empty); + } + /** + * ## Example Usage + * + * Get the Droplet Autoscale pool by name: * * <!--Start PulumiCodeChooser --> *
@@ -3400,9 +3902,7 @@ public static CompletableFuture getDropletSnapshotPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3416,17 +3916,43 @@ public static CompletableFuture getDropletSnapshotPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .name(my_existing_autoscale_pool.name())
      *             .build());
      * 
-     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
-     *             .image(web_snapshot.id())
-     *             .name("web-02")
-     *             .region("nyc3")
-     *             .size("s-2vcpu-4gb")
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * Get the Droplet Autoscale pool by ID: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .id(my_existing_autoscale_pool.id())
      *             .build());
      * 
      *     }
@@ -3436,17 +3962,13 @@ public static CompletableFuture getDropletSnapshotPlai
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getDropletSnapshot(GetDropletSnapshotArgs args) {
-        return getDropletSnapshot(args, InvokeOptions.Empty);
+    public static CompletableFuture getDropletAutoscalePlain() {
+        return getDropletAutoscalePlain(GetDropletAutoscalePlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Droplet snapshots are saved instances of a Droplet. Use this data
-     * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other
-     * resources.
-     * 
      * ## Example Usage
      * 
-     * Get the Droplet snapshot:
+     * Get the Droplet Autoscale pool by name:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -3457,7 +3979,7 @@ public static Output getDropletSnapshot(GetDropletSnap
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3471,10 +3993,8 @@ public static Output getDropletSnapshot(GetDropletSnap
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .name(my_existing_autoscale_pool.name())
      *             .build());
      * 
      *     }
@@ -3483,7 +4003,7 @@ public static Output getDropletSnapshot(GetDropletSnap
      * 
* <!--End PulumiCodeChooser --> * - * Create image from snapshot: + * Get the Droplet Autoscale pool by ID: * * <!--Start PulumiCodeChooser --> *
@@ -3494,9 +4014,7 @@ public static Output getDropletSnapshot(GetDropletSnap
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3510,17 +4028,8 @@ public static Output getDropletSnapshot(GetDropletSnap
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
-     *             .build());
-     * 
-     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
-     *             .image(web_snapshot.id())
-     *             .name("web-02")
-     *             .region("nyc3")
-     *             .size("s-2vcpu-4gb")
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .id(my_existing_autoscale_pool.id())
      *             .build());
      * 
      *     }
@@ -3530,17 +4039,13 @@ public static Output getDropletSnapshot(GetDropletSnap
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getDropletSnapshotPlain(GetDropletSnapshotPlainArgs args) {
-        return getDropletSnapshotPlain(args, InvokeOptions.Empty);
+    public static Output getDropletAutoscale(GetDropletAutoscaleArgs args) {
+        return getDropletAutoscale(args, InvokeOptions.Empty);
     }
     /**
-     * Droplet snapshots are saved instances of a Droplet. Use this data
-     * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other
-     * resources.
-     * 
      * ## Example Usage
      * 
-     * Get the Droplet snapshot:
+     * Get the Droplet Autoscale pool by name:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -3551,7 +4056,7 @@ public static CompletableFuture getDropletSnapshotPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3565,10 +4070,8 @@ public static CompletableFuture getDropletSnapshotPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .name(my_existing_autoscale_pool.name())
      *             .build());
      * 
      *     }
@@ -3577,7 +4080,7 @@ public static CompletableFuture getDropletSnapshotPlai
      * 
* <!--End PulumiCodeChooser --> * - * Create image from snapshot: + * Get the Droplet Autoscale pool by ID: * * <!--Start PulumiCodeChooser --> *
@@ -3588,9 +4091,7 @@ public static CompletableFuture getDropletSnapshotPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3604,17 +4105,8 @@ public static CompletableFuture getDropletSnapshotPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
-     *             .build());
-     * 
-     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
-     *             .image(web_snapshot.id())
-     *             .name("web-02")
-     *             .region("nyc3")
-     *             .size("s-2vcpu-4gb")
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .id(my_existing_autoscale_pool.id())
      *             .build());
      * 
      *     }
@@ -3624,17 +4116,13 @@ public static CompletableFuture getDropletSnapshotPlai
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getDropletSnapshot(GetDropletSnapshotArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getDropletSnapshot:getDropletSnapshot", TypeShape.of(GetDropletSnapshotResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getDropletAutoscalePlain(GetDropletAutoscalePlainArgs args) {
+        return getDropletAutoscalePlain(args, InvokeOptions.Empty);
     }
     /**
-     * Droplet snapshots are saved instances of a Droplet. Use this data
-     * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other
-     * resources.
-     * 
      * ## Example Usage
      * 
-     * Get the Droplet snapshot:
+     * Get the Droplet Autoscale pool by name:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -3645,7 +4133,7 @@ public static Output getDropletSnapshot(GetDropletSnap
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3659,10 +4147,8 @@ public static Output getDropletSnapshot(GetDropletSnap
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .name(my_existing_autoscale_pool.name())
      *             .build());
      * 
      *     }
@@ -3671,7 +4157,7 @@ public static Output getDropletSnapshot(GetDropletSnap
      * 
* <!--End PulumiCodeChooser --> * - * Create image from snapshot: + * Get the Droplet Autoscale pool by ID: * * <!--Start PulumiCodeChooser --> *
@@ -3682,9 +4168,7 @@ public static Output getDropletSnapshot(GetDropletSnap
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3698,17 +4182,8 @@ public static Output getDropletSnapshot(GetDropletSnap
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
-     *             .build());
-     * 
-     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
-     *             .image(web_snapshot.id())
-     *             .name("web-02")
-     *             .region("nyc3")
-     *             .size("s-2vcpu-4gb")
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .id(my_existing_autoscale_pool.id())
      *             .build());
      * 
      *     }
@@ -3718,27 +4193,13 @@ public static Output getDropletSnapshot(GetDropletSnap
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getDropletSnapshotPlain(GetDropletSnapshotPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getDropletSnapshot:getDropletSnapshot", TypeShape.of(GetDropletSnapshotResult.class), args, Utilities.withVersion(options));
+    public static Output getDropletAutoscale(GetDropletAutoscaleArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getDropletAutoscale:getDropletAutoscale", TypeShape.of(GetDropletAutoscaleResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on Droplets for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all Droplets will be returned.
-     * 
-     * This data source is useful if the Droplets in question are not managed by the provider or you need to
-     * utilize any of the Droplets' data.
-     * 
-     * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set
-     * the `gpus` attribute to `true`.
-     * 
-     * Note: You can use the `digitalocean.Droplet` data source to obtain metadata
-     * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve.
-     * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter images.
-     * 
-     * For example to find all Droplets with size `s-1vcpu-1gb`:
+     * Get the Droplet Autoscale pool by name:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -3749,7 +4210,7 @@ public static CompletableFuture getDropletSnapshotPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3763,11 +4224,8 @@ public static CompletableFuture getDropletSnapshotPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(GetDropletsFilterArgs.builder()
-     *                 .key("size")
-     *                 .values("s-1vcpu-1gb")
-     *                 .build())
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .name(my_existing_autoscale_pool.name())
      *             .build());
      * 
      *     }
@@ -3776,7 +4234,7 @@ public static CompletableFuture getDropletSnapshotPlai
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * Get the Droplet Autoscale pool by ID: * * <!--Start PulumiCodeChooser --> *
@@ -3787,7 +4245,7 @@ public static CompletableFuture getDropletSnapshotPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3801,20 +4259,8 @@ public static CompletableFuture getDropletSnapshotPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(            
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("size")
-     *                     .values("s-1vcpu-1gb")
-     *                     .build(),
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("backups")
-     *                     .values("true")
-     *                     .build())
-     *             .sorts(GetDropletsSortArgs.builder()
-     *                 .key("created_at")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .id(my_existing_autoscale_pool.id())
      *             .build());
      * 
      *     }
@@ -3824,27 +4270,13 @@ public static CompletableFuture getDropletSnapshotPlai
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getDroplets() {
-        return getDroplets(GetDropletsArgs.Empty, InvokeOptions.Empty);
+    public static Output getDropletAutoscale(GetDropletAutoscaleArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getDropletAutoscale:getDropletAutoscale", TypeShape.of(GetDropletAutoscaleResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on Droplets for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all Droplets will be returned.
-     * 
-     * This data source is useful if the Droplets in question are not managed by the provider or you need to
-     * utilize any of the Droplets' data.
-     * 
-     * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set
-     * the `gpus` attribute to `true`.
-     * 
-     * Note: You can use the `digitalocean.Droplet` data source to obtain metadata
-     * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve.
-     * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter images.
-     * 
-     * For example to find all Droplets with size `s-1vcpu-1gb`:
+     * Get the Droplet Autoscale pool by name:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -3855,7 +4287,7 @@ public static Output getDroplets() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3869,11 +4301,8 @@ public static Output getDroplets() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(GetDropletsFilterArgs.builder()
-     *                 .key("size")
-     *                 .values("s-1vcpu-1gb")
-     *                 .build())
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .name(my_existing_autoscale_pool.name())
      *             .build());
      * 
      *     }
@@ -3882,7 +4311,7 @@ public static Output getDroplets() {
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * Get the Droplet Autoscale pool by ID: * * <!--Start PulumiCodeChooser --> *
@@ -3893,7 +4322,7 @@ public static Output getDroplets() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletAutoscaleArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3907,20 +4336,8 @@ public static Output getDroplets() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(            
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("size")
-     *                     .values("s-1vcpu-1gb")
-     *                     .build(),
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("backups")
-     *                     .values("true")
-     *                     .build())
-     *             .sorts(GetDropletsSortArgs.builder()
-     *                 .key("created_at")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var my-imported-autoscale-pool = DigitaloceanFunctions.getDropletAutoscale(GetDropletAutoscaleArgs.builder()
+     *             .id(my_existing_autoscale_pool.id())
      *             .build());
      * 
      *     }
@@ -3930,27 +4347,17 @@ public static Output getDroplets() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getDropletsPlain() {
-        return getDropletsPlain(GetDropletsPlainArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getDropletAutoscalePlain(GetDropletAutoscalePlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getDropletAutoscale:getDropletAutoscale", TypeShape.of(GetDropletAutoscaleResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on Droplets for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all Droplets will be returned.
-     * 
-     * This data source is useful if the Droplets in question are not managed by the provider or you need to
-     * utilize any of the Droplets' data.
-     * 
-     * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set
-     * the `gpus` attribute to `true`.
-     * 
-     * Note: You can use the `digitalocean.Droplet` data source to obtain metadata
-     * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve.
+     * Droplet snapshots are saved instances of a Droplet. Use this data
+     * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other
+     * resources.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter images.
-     * 
-     * For example to find all Droplets with size `s-1vcpu-1gb`:
+     * Get the Droplet snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -3961,7 +4368,7 @@ public static CompletableFuture getDropletsPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -3975,11 +4382,10 @@ public static CompletableFuture getDropletsPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(GetDropletsFilterArgs.builder()
-     *                 .key("size")
-     *                 .values("s-1vcpu-1gb")
-     *                 .build())
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
      *     }
@@ -3988,7 +4394,7 @@ public static CompletableFuture getDropletsPlain() {
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * Create image from snapshot: * * <!--Start PulumiCodeChooser --> *
@@ -3999,7 +4405,9 @@ public static CompletableFuture getDropletsPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4013,20 +4421,17 @@ public static CompletableFuture getDropletsPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(            
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("size")
-     *                     .values("s-1vcpu-1gb")
-     *                     .build(),
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("backups")
-     *                     .values("true")
-     *                     .build())
-     *             .sorts(GetDropletsSortArgs.builder()
-     *                 .key("created_at")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
+     *             .build());
+     * 
+     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
+     *             .image(web_snapshot.id())
+     *             .name("web-02")
+     *             .region("nyc3")
+     *             .size("s-2vcpu-4gb")
      *             .build());
      * 
      *     }
@@ -4036,27 +4441,17 @@ public static CompletableFuture getDropletsPlain() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getDroplets(GetDropletsArgs args) {
-        return getDroplets(args, InvokeOptions.Empty);
+    public static Output getDropletSnapshot() {
+        return getDropletSnapshot(GetDropletSnapshotArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Get information on Droplets for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all Droplets will be returned.
-     * 
-     * This data source is useful if the Droplets in question are not managed by the provider or you need to
-     * utilize any of the Droplets' data.
-     * 
-     * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set
-     * the `gpus` attribute to `true`.
-     * 
-     * Note: You can use the `digitalocean.Droplet` data source to obtain metadata
-     * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve.
+     * Droplet snapshots are saved instances of a Droplet. Use this data
+     * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other
+     * resources.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter images.
-     * 
-     * For example to find all Droplets with size `s-1vcpu-1gb`:
+     * Get the Droplet snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -4067,7 +4462,7 @@ public static Output getDroplets(GetDropletsArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4081,11 +4476,10 @@ public static Output getDroplets(GetDropletsArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(GetDropletsFilterArgs.builder()
-     *                 .key("size")
-     *                 .values("s-1vcpu-1gb")
-     *                 .build())
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
      *     }
@@ -4094,7 +4488,7 @@ public static Output getDroplets(GetDropletsArgs args) {
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * Create image from snapshot: * * <!--Start PulumiCodeChooser --> *
@@ -4105,7 +4499,9 @@ public static Output getDroplets(GetDropletsArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4119,20 +4515,17 @@ public static Output getDroplets(GetDropletsArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(            
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("size")
-     *                     .values("s-1vcpu-1gb")
-     *                     .build(),
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("backups")
-     *                     .values("true")
-     *                     .build())
-     *             .sorts(GetDropletsSortArgs.builder()
-     *                 .key("created_at")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
+     *             .build());
+     * 
+     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
+     *             .image(web_snapshot.id())
+     *             .name("web-02")
+     *             .region("nyc3")
+     *             .size("s-2vcpu-4gb")
      *             .build());
      * 
      *     }
@@ -4142,27 +4535,17 @@ public static Output getDroplets(GetDropletsArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getDropletsPlain(GetDropletsPlainArgs args) {
-        return getDropletsPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getDropletSnapshotPlain() {
+        return getDropletSnapshotPlain(GetDropletSnapshotPlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Get information on Droplets for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all Droplets will be returned.
-     * 
-     * This data source is useful if the Droplets in question are not managed by the provider or you need to
-     * utilize any of the Droplets' data.
-     * 
-     * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set
-     * the `gpus` attribute to `true`.
-     * 
-     * Note: You can use the `digitalocean.Droplet` data source to obtain metadata
-     * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve.
+     * Droplet snapshots are saved instances of a Droplet. Use this data
+     * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other
+     * resources.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter images.
-     * 
-     * For example to find all Droplets with size `s-1vcpu-1gb`:
+     * Get the Droplet snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -4173,7 +4556,7 @@ public static CompletableFuture getDropletsPlain(GetDropletsP
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4187,11 +4570,10 @@ public static CompletableFuture getDropletsPlain(GetDropletsP
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(GetDropletsFilterArgs.builder()
-     *                 .key("size")
-     *                 .values("s-1vcpu-1gb")
-     *                 .build())
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
      *     }
@@ -4200,7 +4582,7 @@ public static CompletableFuture getDropletsPlain(GetDropletsP
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * Create image from snapshot: * * <!--Start PulumiCodeChooser --> *
@@ -4211,7 +4593,9 @@ public static CompletableFuture getDropletsPlain(GetDropletsP
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4225,20 +4609,17 @@ public static CompletableFuture getDropletsPlain(GetDropletsP
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(            
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("size")
-     *                     .values("s-1vcpu-1gb")
-     *                     .build(),
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("backups")
-     *                     .values("true")
-     *                     .build())
-     *             .sorts(GetDropletsSortArgs.builder()
-     *                 .key("created_at")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
+     *             .build());
+     * 
+     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
+     *             .image(web_snapshot.id())
+     *             .name("web-02")
+     *             .region("nyc3")
+     *             .size("s-2vcpu-4gb")
      *             .build());
      * 
      *     }
@@ -4248,27 +4629,17 @@ public static CompletableFuture getDropletsPlain(GetDropletsP
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getDroplets(GetDropletsArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getDroplets:getDroplets", TypeShape.of(GetDropletsResult.class), args, Utilities.withVersion(options));
+    public static Output getDropletSnapshot(GetDropletSnapshotArgs args) {
+        return getDropletSnapshot(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on Droplets for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all Droplets will be returned.
-     * 
-     * This data source is useful if the Droplets in question are not managed by the provider or you need to
-     * utilize any of the Droplets' data.
-     * 
-     * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set
-     * the `gpus` attribute to `true`.
-     * 
-     * Note: You can use the `digitalocean.Droplet` data source to obtain metadata
-     * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve.
+     * Droplet snapshots are saved instances of a Droplet. Use this data
+     * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other
+     * resources.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter images.
-     * 
-     * For example to find all Droplets with size `s-1vcpu-1gb`:
+     * Get the Droplet snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -4279,7 +4650,7 @@ public static Output getDroplets(GetDropletsArgs args, Invoke
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4293,11 +4664,10 @@ public static Output getDroplets(GetDropletsArgs args, Invoke
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(GetDropletsFilterArgs.builder()
-     *                 .key("size")
-     *                 .values("s-1vcpu-1gb")
-     *                 .build())
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
      *     }
@@ -4306,7 +4676,7 @@ public static Output getDroplets(GetDropletsArgs args, Invoke
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * Create image from snapshot: * * <!--Start PulumiCodeChooser --> *
@@ -4317,7 +4687,9 @@ public static Output getDroplets(GetDropletsArgs args, Invoke
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4331,20 +4703,17 @@ public static Output getDroplets(GetDropletsArgs args, Invoke
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
-     *             .filters(            
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("size")
-     *                     .values("s-1vcpu-1gb")
-     *                     .build(),
-     *                 GetDropletsFilterArgs.builder()
-     *                     .key("backups")
-     *                     .values("true")
-     *                     .build())
-     *             .sorts(GetDropletsSortArgs.builder()
-     *                 .key("created_at")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
+     *             .build());
+     * 
+     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
+     *             .image(web_snapshot.id())
+     *             .name("web-02")
+     *             .region("nyc3")
+     *             .size("s-2vcpu-4gb")
      *             .build());
      * 
      *     }
@@ -4354,15 +4723,17 @@ public static Output getDroplets(GetDropletsArgs args, Invoke
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getDropletsPlain(GetDropletsPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getDroplets:getDroplets", TypeShape.of(GetDropletsResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getDropletSnapshotPlain(GetDropletSnapshotPlainArgs args) {
+        return getDropletSnapshotPlain(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on a DigitalOcean Firewall.
+     * Droplet snapshots are saved instances of a Droplet. Use this data
+     * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other
+     * resources.
      * 
      * ## Example Usage
      * 
-     * Get the firewall:
+     * Get the Droplet snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -4373,7 +4744,7 @@ public static CompletableFuture getDropletsPlain(GetDropletsP
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetFirewallArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4387,27 +4758,19 @@ public static CompletableFuture getDropletsPlain(GetDropletsP
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getFirewall(GetFirewallArgs.builder()
-     *             .firewallId("1df48973-6eef-4214-854f-fa7726e7e583")
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
-     *         ctx.export("exampleFirewallName", example.applyValue(getFirewallResult -> getFirewallResult.name()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getFirewall(GetFirewallArgs args) { - return getFirewall(args, InvokeOptions.Empty); - } - /** - * Get information on a DigitalOcean Firewall. - * - * ## Example Usage - * - * Get the firewall: + * Create image from snapshot: * * <!--Start PulumiCodeChooser --> *
@@ -4418,7 +4781,9 @@ public static Output getFirewall(GetFirewallArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetFirewallArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4432,27 +4797,37 @@ public static Output getFirewall(GetFirewallArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getFirewall(GetFirewallArgs.builder()
-     *             .firewallId("1df48973-6eef-4214-854f-fa7726e7e583")
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
-     *         ctx.export("exampleFirewallName", example.applyValue(getFirewallResult -> getFirewallResult.name()));
-     *     }
-     * }
-     * }
-     * 
- * <!--End PulumiCodeChooser --> + * var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder() + * .image(web_snapshot.id()) + * .name("web-02") + * .region("nyc3") + * .size("s-2vcpu-4gb") + * .build()); + * + * } + * } + * } + *
+ * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getFirewallPlain(GetFirewallPlainArgs args) { - return getFirewallPlain(args, InvokeOptions.Empty); + public static Output getDropletSnapshot(GetDropletSnapshotArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDropletSnapshot:getDropletSnapshot", TypeShape.of(GetDropletSnapshotResult.class), args, Utilities.withVersion(options)); } /** - * Get information on a DigitalOcean Firewall. + * Droplet snapshots are saved instances of a Droplet. Use this data + * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other + * resources. * * ## Example Usage * - * Get the firewall: + * Get the Droplet snapshot: * * <!--Start PulumiCodeChooser --> *
@@ -4463,7 +4838,7 @@ public static CompletableFuture getFirewallPlain(GetFirewallP
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetFirewallArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4477,27 +4852,19 @@ public static CompletableFuture getFirewallPlain(GetFirewallP
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getFirewall(GetFirewallArgs.builder()
-     *             .firewallId("1df48973-6eef-4214-854f-fa7726e7e583")
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
-     *         ctx.export("exampleFirewallName", example.applyValue(getFirewallResult -> getFirewallResult.name()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getFirewall(GetFirewallArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getFirewall:getFirewall", TypeShape.of(GetFirewallResult.class), args, Utilities.withVersion(options)); - } - /** - * Get information on a DigitalOcean Firewall. - * - * ## Example Usage - * - * Get the firewall: + * Create image from snapshot: * * <!--Start PulumiCodeChooser --> *
@@ -4508,7 +4875,9 @@ public static Output getFirewall(GetFirewallArgs args, Invoke
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetFirewallArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4522,11 +4891,19 @@ public static Output getFirewall(GetFirewallArgs args, Invoke
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getFirewall(GetFirewallArgs.builder()
-     *             .firewallId("1df48973-6eef-4214-854f-fa7726e7e583")
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
+     *             .build());
+     * 
+     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
+     *             .image(web_snapshot.id())
+     *             .name("web-02")
+     *             .region("nyc3")
+     *             .size("s-2vcpu-4gb")
      *             .build());
      * 
-     *         ctx.export("exampleFirewallName", example.applyValue(getFirewallResult -> getFirewallResult.name()));
      *     }
      * }
      * }
@@ -4534,22 +4911,17 @@ public static Output getFirewall(GetFirewallArgs args, Invoke
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFirewallPlain(GetFirewallPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getFirewall:getFirewall", TypeShape.of(GetFirewallResult.class), args, Utilities.withVersion(options));
+    public static Output getDropletSnapshot(GetDropletSnapshotArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getDropletSnapshot:getDropletSnapshot", TypeShape.of(GetDropletSnapshotResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * > **Deprecated:** DigitalOcean Floating IPs have been renamed reserved IPs. This data source will be removed in a future release. Please use `digitalocean.ReservedIp` instead.
-     * 
-     * Get information on a floating ip. This data source provides the region and Droplet id
-     * as configured on your DigitalOcean account. This is useful if the floating IP
-     * in question is not managed by the provider or you need to find the Droplet the IP is
-     * attached to.
-     * 
-     * An error is triggered if the provided floating IP does not exist.
+     * Droplet snapshots are saved instances of a Droplet. Use this data
+     * source to retrieve the ID of a DigitalOcean Droplet snapshot for use in other
+     * resources.
      * 
      * ## Example Usage
      * 
-     * Get the floating IP:
+     * Get the Droplet snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -4560,7 +4932,7 @@ public static CompletableFuture getFirewallPlain(GetFirewallP
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetFloatingIpArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4574,36 +4946,19 @@ public static CompletableFuture getFirewallPlain(GetFirewallP
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var config = ctx.config();
-     *         final var publicIp = config.get("publicIp");
-     *         final var example = DigitaloceanFunctions.getFloatingIp(GetFloatingIpArgs.builder()
-     *             .ipAddress(publicIp)
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
-     *         ctx.export("fipOutput", example.applyValue(getFloatingIpResult -> getFloatingIpResult.dropletId()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getFloatingIp(GetFloatingIpArgs args) { - return getFloatingIp(args, InvokeOptions.Empty); - } - /** - * > **Deprecated:** DigitalOcean Floating IPs have been renamed reserved IPs. This data source will be removed in a future release. Please use `digitalocean.ReservedIp` instead. - * - * Get information on a floating ip. This data source provides the region and Droplet id - * as configured on your DigitalOcean account. This is useful if the floating IP - * in question is not managed by the provider or you need to find the Droplet the IP is - * attached to. - * - * An error is triggered if the provided floating IP does not exist. - * - * ## Example Usage - * - * Get the floating IP: + * Create image from snapshot: * * <!--Start PulumiCodeChooser --> *
@@ -4614,7 +4969,9 @@ public static Output getFloatingIp(GetFloatingIpArgs args)
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetFloatingIpArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletSnapshotArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4628,13 +4985,19 @@ public static Output getFloatingIp(GetFloatingIpArgs args)
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var config = ctx.config();
-     *         final var publicIp = config.get("publicIp");
-     *         final var example = DigitaloceanFunctions.getFloatingIp(GetFloatingIpArgs.builder()
-     *             .ipAddress(publicIp)
+     *         final var web-snapshot = DigitaloceanFunctions.getDropletSnapshot(GetDropletSnapshotArgs.builder()
+     *             .nameRegex("^web")
+     *             .region("nyc3")
+     *             .mostRecent(true)
+     *             .build());
+     * 
+     *         var from_snapshot = new Droplet("from-snapshot", DropletArgs.builder()
+     *             .image(web_snapshot.id())
+     *             .name("web-02")
+     *             .region("nyc3")
+     *             .size("s-2vcpu-4gb")
      *             .build());
      * 
-     *         ctx.export("fipOutput", example.applyValue(getFloatingIpResult -> getFloatingIpResult.dropletId()));
      *     }
      * }
      * }
@@ -4642,22 +5005,27 @@ public static Output getFloatingIp(GetFloatingIpArgs args)
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFloatingIpPlain(GetFloatingIpPlainArgs args) {
-        return getFloatingIpPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getDropletSnapshotPlain(GetDropletSnapshotPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getDropletSnapshot:getDropletSnapshot", TypeShape.of(GetDropletSnapshotResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * > **Deprecated:** DigitalOcean Floating IPs have been renamed reserved IPs. This data source will be removed in a future release. Please use `digitalocean.ReservedIp` instead.
+     * Get information on Droplets for use in other resources, with the ability to filter and sort the results.
+     * If no filters are specified, all Droplets will be returned.
      * 
-     * Get information on a floating ip. This data source provides the region and Droplet id
-     * as configured on your DigitalOcean account. This is useful if the floating IP
-     * in question is not managed by the provider or you need to find the Droplet the IP is
-     * attached to.
+     * This data source is useful if the Droplets in question are not managed by the provider or you need to
+     * utilize any of the Droplets' data.
      * 
-     * An error is triggered if the provided floating IP does not exist.
+     * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set
+     * the `gpus` attribute to `true`.
+     * 
+     * Note: You can use the `digitalocean.Droplet` data source to obtain metadata
+     * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve.
      * 
      * ## Example Usage
      * 
-     * Get the floating IP:
+     * Use the `filter` block with a `key` string and `values` list to filter images.
+     * 
+     * For example to find all Droplets with size `s-1vcpu-1gb`:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -4668,7 +5036,7 @@ public static CompletableFuture getFloatingIpPlain(GetFloat
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetFloatingIpArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4682,36 +5050,20 @@ public static CompletableFuture getFloatingIpPlain(GetFloat
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var config = ctx.config();
-     *         final var publicIp = config.get("publicIp");
-     *         final var example = DigitaloceanFunctions.getFloatingIp(GetFloatingIpArgs.builder()
-     *             .ipAddress(publicIp)
+     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(GetDropletsFilterArgs.builder()
+     *                 .key("size")
+     *                 .values("s-1vcpu-1gb")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("fipOutput", example.applyValue(getFloatingIpResult -> getFloatingIpResult.dropletId()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getFloatingIp(GetFloatingIpArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getFloatingIp:getFloatingIp", TypeShape.of(GetFloatingIpResult.class), args, Utilities.withVersion(options)); - } - /** - * > **Deprecated:** DigitalOcean Floating IPs have been renamed reserved IPs. This data source will be removed in a future release. Please use `digitalocean.ReservedIp` instead. - * - * Get information on a floating ip. This data source provides the region and Droplet id - * as configured on your DigitalOcean account. This is useful if the floating IP - * in question is not managed by the provider or you need to find the Droplet the IP is - * attached to. - * - * An error is triggered if the provided floating IP does not exist. - * - * ## Example Usage - * - * Get the floating IP: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -4722,7 +5074,7 @@ public static Output getFloatingIp(GetFloatingIpArgs args,
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetFloatingIpArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4736,13 +5088,22 @@ public static Output getFloatingIp(GetFloatingIpArgs args,
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var config = ctx.config();
-     *         final var publicIp = config.get("publicIp");
-     *         final var example = DigitaloceanFunctions.getFloatingIp(GetFloatingIpArgs.builder()
-     *             .ipAddress(publicIp)
+     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(            
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("size")
+     *                     .values("s-1vcpu-1gb")
+     *                     .build(),
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("backups")
+     *                     .values("true")
+     *                     .build())
+     *             .sorts(GetDropletsSortArgs.builder()
+     *                 .key("created_at")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("fipOutput", example.applyValue(getFloatingIpResult -> getFloatingIpResult.dropletId()));
      *     }
      * }
      * }
@@ -4750,20 +5111,27 @@ public static Output getFloatingIp(GetFloatingIpArgs args,
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getFloatingIpPlain(GetFloatingIpPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getFloatingIp:getFloatingIp", TypeShape.of(GetFloatingIpResult.class), args, Utilities.withVersion(options));
+    public static Output getDroplets() {
+        return getDroplets(GetDropletsArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Get information on an image for use in other resources (e.g. creating a Droplet
-     * based on snapshot). This data source provides all of the image properties as
-     * configured on your DigitalOcean account. This is useful if the image in question
-     * is not managed by the provider or you need to utilize any of the image's data.
+     * Get information on Droplets for use in other resources, with the ability to filter and sort the results.
+     * If no filters are specified, all Droplets will be returned.
      * 
-     * An error is triggered if zero or more than one result is returned by the query.
+     * This data source is useful if the Droplets in question are not managed by the provider or you need to
+     * utilize any of the Droplets' data.
+     * 
+     * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set
+     * the `gpus` attribute to `true`.
+     * 
+     * Note: You can use the `digitalocean.Droplet` data source to obtain metadata
+     * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve.
      * 
      * ## Example Usage
      * 
-     * Get the data about a snapshot:
+     * Use the `filter` block with a `key` string and `values` list to filter images.
+     * 
+     * For example to find all Droplets with size `s-1vcpu-1gb`:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -4774,7 +5142,7 @@ public static CompletableFuture getFloatingIpPlain(GetFloat
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4788,8 +5156,11 @@ public static CompletableFuture getFloatingIpPlain(GetFloat
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
+     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(GetDropletsFilterArgs.builder()
+     *                 .key("size")
+     *                 .values("s-1vcpu-1gb")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -4798,7 +5169,7 @@ public static CompletableFuture getFloatingIpPlain(GetFloat
      * 
* <!--End PulumiCodeChooser --> * - * Reuse the data about a snapshot to create a Droplet: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -4809,9 +5180,7 @@ public static CompletableFuture getFloatingIpPlain(GetFloat
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4825,15 +5194,20 @@ public static CompletableFuture getFloatingIpPlain(GetFloat
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
+     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(            
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("size")
+     *                     .values("s-1vcpu-1gb")
+     *                     .build(),
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("backups")
+     *                     .values("true")
+     *                     .build())
+     *             .sorts(GetDropletsSortArgs.builder()
+     *                 .key("created_at")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -4842,7 +5216,28 @@ public static CompletableFuture getFloatingIpPlain(GetFloat
      * 
* <!--End PulumiCodeChooser --> * - * Get the data about an official image: + */ + public static CompletableFuture getDropletsPlain() { + return getDropletsPlain(GetDropletsPlainArgs.Empty, InvokeOptions.Empty); + } + /** + * Get information on Droplets for use in other resources, with the ability to filter and sort the results. + * If no filters are specified, all Droplets will be returned. + * + * This data source is useful if the Droplets in question are not managed by the provider or you need to + * utilize any of the Droplets' data. + * + * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set + * the `gpus` attribute to `true`. + * + * Note: You can use the `digitalocean.Droplet` data source to obtain metadata + * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter images. + * + * For example to find all Droplets with size `s-1vcpu-1gb`: * * <!--Start PulumiCodeChooser --> *
@@ -4853,7 +5248,7 @@ public static CompletableFuture getFloatingIpPlain(GetFloat
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4867,8 +5262,11 @@ public static CompletableFuture getFloatingIpPlain(GetFloat
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .slug("ubuntu-18-04-x64")
+     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(GetDropletsFilterArgs.builder()
+     *                 .key("size")
+     *                 .values("s-1vcpu-1gb")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -4877,21 +5275,7 @@ public static CompletableFuture getFloatingIpPlain(GetFloat
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getImage() { - return getImage(GetImageArgs.Empty, InvokeOptions.Empty); - } - /** - * Get information on an image for use in other resources (e.g. creating a Droplet - * based on snapshot). This data source provides all of the image properties as - * configured on your DigitalOcean account. This is useful if the image in question - * is not managed by the provider or you need to utilize any of the image's data. - * - * An error is triggered if zero or more than one result is returned by the query. - * - * ## Example Usage - * - * Get the data about a snapshot: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -4902,7 +5286,7 @@ public static Output getImage() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4916,8 +5300,20 @@ public static Output getImage() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
+     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(            
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("size")
+     *                     .values("s-1vcpu-1gb")
+     *                     .build(),
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("backups")
+     *                     .values("true")
+     *                     .build())
+     *             .sorts(GetDropletsSortArgs.builder()
+     *                 .key("created_at")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -4926,7 +5322,28 @@ public static Output getImage() {
      * 
* <!--End PulumiCodeChooser --> * - * Reuse the data about a snapshot to create a Droplet: + */ + public static Output getDroplets(GetDropletsArgs args) { + return getDroplets(args, InvokeOptions.Empty); + } + /** + * Get information on Droplets for use in other resources, with the ability to filter and sort the results. + * If no filters are specified, all Droplets will be returned. + * + * This data source is useful if the Droplets in question are not managed by the provider or you need to + * utilize any of the Droplets' data. + * + * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set + * the `gpus` attribute to `true`. + * + * Note: You can use the `digitalocean.Droplet` data source to obtain metadata + * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter images. + * + * For example to find all Droplets with size `s-1vcpu-1gb`: * * <!--Start PulumiCodeChooser --> *
@@ -4937,9 +5354,7 @@ public static Output getImage() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4953,15 +5368,11 @@ public static Output getImage() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
+     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(GetDropletsFilterArgs.builder()
+     *                 .key("size")
+     *                 .values("s-1vcpu-1gb")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -4970,7 +5381,7 @@ public static Output getImage() {
      * 
* <!--End PulumiCodeChooser --> * - * Get the data about an official image: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -4981,7 +5392,7 @@ public static Output getImage() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -4995,8 +5406,20 @@ public static Output getImage() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .slug("ubuntu-18-04-x64")
+     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(            
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("size")
+     *                     .values("s-1vcpu-1gb")
+     *                     .build(),
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("backups")
+     *                     .values("true")
+     *                     .build())
+     *             .sorts(GetDropletsSortArgs.builder()
+     *                 .key("created_at")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -5006,20 +5429,27 @@ public static Output getImage() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getImagePlain() {
-        return getImagePlain(GetImagePlainArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getDropletsPlain(GetDropletsPlainArgs args) {
+        return getDropletsPlain(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on an image for use in other resources (e.g. creating a Droplet
-     * based on snapshot). This data source provides all of the image properties as
-     * configured on your DigitalOcean account. This is useful if the image in question
-     * is not managed by the provider or you need to utilize any of the image's data.
+     * Get information on Droplets for use in other resources, with the ability to filter and sort the results.
+     * If no filters are specified, all Droplets will be returned.
      * 
-     * An error is triggered if zero or more than one result is returned by the query.
+     * This data source is useful if the Droplets in question are not managed by the provider or you need to
+     * utilize any of the Droplets' data.
+     * 
+     * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set
+     * the `gpus` attribute to `true`.
+     * 
+     * Note: You can use the `digitalocean.Droplet` data source to obtain metadata
+     * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve.
      * 
      * ## Example Usage
      * 
-     * Get the data about a snapshot:
+     * Use the `filter` block with a `key` string and `values` list to filter images.
+     * 
+     * For example to find all Droplets with size `s-1vcpu-1gb`:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -5030,7 +5460,7 @@ public static CompletableFuture getImagePlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5044,8 +5474,11 @@ public static CompletableFuture getImagePlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
+     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(GetDropletsFilterArgs.builder()
+     *                 .key("size")
+     *                 .values("s-1vcpu-1gb")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -5054,7 +5487,7 @@ public static CompletableFuture getImagePlain() {
      * 
* <!--End PulumiCodeChooser --> * - * Reuse the data about a snapshot to create a Droplet: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -5065,9 +5498,7 @@ public static CompletableFuture getImagePlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5081,15 +5512,20 @@ public static CompletableFuture getImagePlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
+     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(            
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("size")
+     *                     .values("s-1vcpu-1gb")
+     *                     .build(),
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("backups")
+     *                     .values("true")
+     *                     .build())
+     *             .sorts(GetDropletsSortArgs.builder()
+     *                 .key("created_at")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -5098,7 +5534,28 @@ public static CompletableFuture getImagePlain() {
      * 
* <!--End PulumiCodeChooser --> * - * Get the data about an official image: + */ + public static Output getDroplets(GetDropletsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDroplets:getDroplets", TypeShape.of(GetDropletsResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on Droplets for use in other resources, with the ability to filter and sort the results. + * If no filters are specified, all Droplets will be returned. + * + * This data source is useful if the Droplets in question are not managed by the provider or you need to + * utilize any of the Droplets' data. + * + * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set + * the `gpus` attribute to `true`. + * + * Note: You can use the `digitalocean.Droplet` data source to obtain metadata + * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter images. + * + * For example to find all Droplets with size `s-1vcpu-1gb`: * * <!--Start PulumiCodeChooser --> *
@@ -5109,7 +5566,7 @@ public static CompletableFuture getImagePlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5123,8 +5580,11 @@ public static CompletableFuture getImagePlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .slug("ubuntu-18-04-x64")
+     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(GetDropletsFilterArgs.builder()
+     *                 .key("size")
+     *                 .values("s-1vcpu-1gb")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -5133,21 +5593,7 @@ public static CompletableFuture getImagePlain() {
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getImage(GetImageArgs args) { - return getImage(args, InvokeOptions.Empty); - } - /** - * Get information on an image for use in other resources (e.g. creating a Droplet - * based on snapshot). This data source provides all of the image properties as - * configured on your DigitalOcean account. This is useful if the image in question - * is not managed by the provider or you need to utilize any of the image's data. - * - * An error is triggered if zero or more than one result is returned by the query. - * - * ## Example Usage - * - * Get the data about a snapshot: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -5158,7 +5604,7 @@ public static Output getImage(GetImageArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5172,20 +5618,53 @@ public static Output getImage(GetImageArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
-     *             .build());
-     * 
-     *     }
-     * }
-     * }
-     * 
- * <!--End PulumiCodeChooser --> - * - * Reuse the data about a snapshot to create a Droplet: - * - * <!--Start PulumiCodeChooser --> - *
+     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(            
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("size")
+     *                     .values("s-1vcpu-1gb")
+     *                     .build(),
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("backups")
+     *                     .values("true")
+     *                     .build())
+     *             .sorts(GetDropletsSortArgs.builder()
+     *                 .key("created_at")
+     *                 .direction("desc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getDroplets(GetDropletsArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getDroplets:getDroplets", TypeShape.of(GetDropletsResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on Droplets for use in other resources, with the ability to filter and sort the results. + * If no filters are specified, all Droplets will be returned. + * + * This data source is useful if the Droplets in question are not managed by the provider or you need to + * utilize any of the Droplets' data. + * + * By default, only non-GPU Droplets are returned. To list only GPU Droplets, set + * the `gpus` attribute to `true`. + * + * Note: You can use the `digitalocean.Droplet` data source to obtain metadata + * about a single Droplet if you already know the `id`, unique `name`, or unique `tag` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter images. + * + * For example to find all Droplets with size `s-1vcpu-1gb`: + * + * <!--Start PulumiCodeChooser --> + *
      * {@code
      * package generated_program;
      * 
@@ -5193,9 +5672,7 @@ public static Output getImage(GetImageArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5209,15 +5686,11 @@ public static Output getImage(GetImageArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
+     *         final var small = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(GetDropletsFilterArgs.builder()
+     *                 .key("size")
+     *                 .values("s-1vcpu-1gb")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -5226,7 +5699,7 @@ public static Output getImage(GetImageArgs args) {
      * 
* <!--End PulumiCodeChooser --> * - * Get the data about an official image: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -5237,7 +5710,7 @@ public static Output getImage(GetImageArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetDropletsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5251,8 +5724,20 @@ public static Output getImage(GetImageArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .slug("ubuntu-18-04-x64")
+     *         final var small-with-backups = DigitaloceanFunctions.getDroplets(GetDropletsArgs.builder()
+     *             .filters(            
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("size")
+     *                     .values("s-1vcpu-1gb")
+     *                     .build(),
+     *                 GetDropletsFilterArgs.builder()
+     *                     .key("backups")
+     *                     .values("true")
+     *                     .build())
+     *             .sorts(GetDropletsSortArgs.builder()
+     *                 .key("created_at")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -5262,20 +5747,15 @@ public static Output getImage(GetImageArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getImagePlain(GetImagePlainArgs args) {
-        return getImagePlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getDropletsPlain(GetDropletsPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getDroplets:getDroplets", TypeShape.of(GetDropletsResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on an image for use in other resources (e.g. creating a Droplet
-     * based on snapshot). This data source provides all of the image properties as
-     * configured on your DigitalOcean account. This is useful if the image in question
-     * is not managed by the provider or you need to utilize any of the image's data.
-     * 
-     * An error is triggered if zero or more than one result is returned by the query.
+     * Get information on a DigitalOcean Firewall.
      * 
      * ## Example Usage
      * 
-     * Get the data about a snapshot:
+     * Get the firewall:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -5286,7 +5766,7 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetFirewallArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5300,17 +5780,27 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
+     *         final var example = DigitaloceanFunctions.getFirewall(GetFirewallArgs.builder()
+     *             .firewallId("1df48973-6eef-4214-854f-fa7726e7e583")
      *             .build());
      * 
+     *         ctx.export("exampleFirewallName", example.applyValue(getFirewallResult -> getFirewallResult.name()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Reuse the data about a snapshot to create a Droplet: + */ + public static Output getFirewall(GetFirewallArgs args) { + return getFirewall(args, InvokeOptions.Empty); + } + /** + * Get information on a DigitalOcean Firewall. + * + * ## Example Usage + * + * Get the firewall: * * <!--Start PulumiCodeChooser --> *
@@ -5321,9 +5811,7 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetFirewallArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5337,24 +5825,27 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
+     *         final var example = DigitaloceanFunctions.getFirewall(GetFirewallArgs.builder()
+     *             .firewallId("1df48973-6eef-4214-854f-fa7726e7e583")
      *             .build());
      * 
+     *         ctx.export("exampleFirewallName", example.applyValue(getFirewallResult -> getFirewallResult.name()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Get the data about an official image: + */ + public static CompletableFuture getFirewallPlain(GetFirewallPlainArgs args) { + return getFirewallPlain(args, InvokeOptions.Empty); + } + /** + * Get information on a DigitalOcean Firewall. + * + * ## Example Usage + * + * Get the firewall: * * <!--Start PulumiCodeChooser --> *
@@ -5365,7 +5856,7 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetFirewallArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5379,10 +5870,11 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .slug("ubuntu-18-04-x64")
+     *         final var example = DigitaloceanFunctions.getFirewall(GetFirewallArgs.builder()
+     *             .firewallId("1df48973-6eef-4214-854f-fa7726e7e583")
      *             .build());
      * 
+     *         ctx.export("exampleFirewallName", example.applyValue(getFirewallResult -> getFirewallResult.name()));
      *     }
      * }
      * }
@@ -5390,20 +5882,15 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getImage(GetImageArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getImage:getImage", TypeShape.of(GetImageResult.class), args, Utilities.withVersion(options));
+    public static Output getFirewall(GetFirewallArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getFirewall:getFirewall", TypeShape.of(GetFirewallResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on an image for use in other resources (e.g. creating a Droplet
-     * based on snapshot). This data source provides all of the image properties as
-     * configured on your DigitalOcean account. This is useful if the image in question
-     * is not managed by the provider or you need to utilize any of the image's data.
-     * 
-     * An error is triggered if zero or more than one result is returned by the query.
+     * Get information on a DigitalOcean Firewall.
      * 
      * ## Example Usage
      * 
-     * Get the data about a snapshot:
+     * Get the firewall:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -5414,7 +5901,7 @@ public static Output getImage(GetImageArgs args, InvokeOptions o
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetFirewallArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5428,17 +5915,27 @@ public static Output getImage(GetImageArgs args, InvokeOptions o
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
+     *         final var example = DigitaloceanFunctions.getFirewall(GetFirewallArgs.builder()
+     *             .firewallId("1df48973-6eef-4214-854f-fa7726e7e583")
      *             .build());
      * 
+     *         ctx.export("exampleFirewallName", example.applyValue(getFirewallResult -> getFirewallResult.name()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Reuse the data about a snapshot to create a Droplet: + */ + public static Output getFirewall(GetFirewallArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getFirewall:getFirewall", TypeShape.of(GetFirewallResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a DigitalOcean Firewall. + * + * ## Example Usage + * + * Get the firewall: * * <!--Start PulumiCodeChooser --> *
@@ -5449,9 +5946,7 @@ public static Output getImage(GetImageArgs args, InvokeOptions o
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetFirewallArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5465,24 +5960,34 @@ public static Output getImage(GetImageArgs args, InvokeOptions o
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .name("example-1.0.0")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
+     *         final var example = DigitaloceanFunctions.getFirewall(GetFirewallArgs.builder()
+     *             .firewallId("1df48973-6eef-4214-854f-fa7726e7e583")
      *             .build());
      * 
+     *         ctx.export("exampleFirewallName", example.applyValue(getFirewallResult -> getFirewallResult.name()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Get the data about an official image: + */ + public static CompletableFuture getFirewallPlain(GetFirewallPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getFirewall:getFirewall", TypeShape.of(GetFirewallResult.class), args, Utilities.withVersion(options)); + } + /** + * > **Deprecated:** DigitalOcean Floating IPs have been renamed reserved IPs. This data source will be removed in a future release. Please use `digitalocean.ReservedIp` instead. + * + * Get information on a floating ip. This data source provides the region and Droplet id + * as configured on your DigitalOcean account. This is useful if the floating IP + * in question is not managed by the provider or you need to find the Droplet the IP is + * attached to. + * + * An error is triggered if the provided floating IP does not exist. + * + * ## Example Usage + * + * Get the floating IP: * * <!--Start PulumiCodeChooser --> *
@@ -5493,7 +5998,7 @@ public static Output getImage(GetImageArgs args, InvokeOptions o
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.inputs.GetFloatingIpArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5507,10 +6012,13 @@ public static Output getImage(GetImageArgs args, InvokeOptions o
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
-     *             .slug("ubuntu-18-04-x64")
+     *         final var config = ctx.config();
+     *         final var publicIp = config.get("publicIp");
+     *         final var example = DigitaloceanFunctions.getFloatingIp(GetFloatingIpArgs.builder()
+     *             .ipAddress(publicIp)
      *             .build());
      * 
+     *         ctx.export("fipOutput", example.applyValue(getFloatingIpResult -> getFloatingIpResult.dropletId()));
      *     }
      * }
      * }
@@ -5518,25 +6026,22 @@ public static Output getImage(GetImageArgs args, InvokeOptions o
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getImagePlain(GetImagePlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getImage:getImage", TypeShape.of(GetImageResult.class), args, Utilities.withVersion(options));
+    public static Output getFloatingIp(GetFloatingIpArgs args) {
+        return getFloatingIp(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on images for use in other resources (e.g. creating a Droplet
-     * based on a snapshot), with the ability to filter and sort the results. If no filters are specified,
-     * all images will be returned.
+     * > **Deprecated:** DigitalOcean Floating IPs have been renamed reserved IPs. This data source will be removed in a future release. Please use `digitalocean.ReservedIp` instead.
      * 
-     * This data source is useful if the image in question is not managed by the provider or you need to utilize any
-     * of the image's data.
+     * Get information on a floating ip. This data source provides the region and Droplet id
+     * as configured on your DigitalOcean account. This is useful if the floating IP
+     * in question is not managed by the provider or you need to find the Droplet the IP is
+     * attached to.
      * 
-     * Note: You can use the `digitalocean.getImage` data source to obtain metadata
-     * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve.
+     * An error is triggered if the provided floating IP does not exist.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter images.
-     * 
-     * For example to find all Ubuntu images:
+     * Get the floating IP:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -5547,7 +6052,7 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
+     * import com.pulumi.digitalocean.inputs.GetFloatingIpArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5561,20 +6066,36 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(GetImagesFilterArgs.builder()
-     *                 .key("distribution")
-     *                 .values("Ubuntu")
-     *                 .build())
+     *         final var config = ctx.config();
+     *         final var publicIp = config.get("publicIp");
+     *         final var example = DigitaloceanFunctions.getFloatingIp(GetFloatingIpArgs.builder()
+     *             .ipAddress(publicIp)
      *             .build());
      * 
+     *         ctx.export("fipOutput", example.applyValue(getFloatingIpResult -> getFloatingIpResult.dropletId()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + */ + public static CompletableFuture getFloatingIpPlain(GetFloatingIpPlainArgs args) { + return getFloatingIpPlain(args, InvokeOptions.Empty); + } + /** + * > **Deprecated:** DigitalOcean Floating IPs have been renamed reserved IPs. This data source will be removed in a future release. Please use `digitalocean.ReservedIp` instead. + * + * Get information on a floating ip. This data source provides the region and Droplet id + * as configured on your DigitalOcean account. This is useful if the floating IP + * in question is not managed by the provider or you need to find the Droplet the IP is + * attached to. + * + * An error is triggered if the provided floating IP does not exist. + * + * ## Example Usage + * + * Get the floating IP: * * <!--Start PulumiCodeChooser --> *
@@ -5585,7 +6106,7 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
+     * import com.pulumi.digitalocean.inputs.GetFloatingIpArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5599,22 +6120,13 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(            
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("distribution")
-     *                     .values("Ubuntu")
-     *                     .build(),
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("regions")
-     *                     .values("nyc3")
-     *                     .build())
-     *             .sorts(GetImagesSortArgs.builder()
-     *                 .key("created")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var config = ctx.config();
+     *         final var publicIp = config.get("publicIp");
+     *         final var example = DigitaloceanFunctions.getFloatingIp(GetFloatingIpArgs.builder()
+     *             .ipAddress(publicIp)
      *             .build());
      * 
+     *         ctx.export("fipOutput", example.applyValue(getFloatingIpResult -> getFloatingIpResult.dropletId()));
      *     }
      * }
      * }
@@ -5622,25 +6134,22 @@ public static CompletableFuture getImagePlain(GetImagePlainArgs
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getImages() {
-        return getImages(GetImagesArgs.Empty, InvokeOptions.Empty);
+    public static Output getFloatingIp(GetFloatingIpArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getFloatingIp:getFloatingIp", TypeShape.of(GetFloatingIpResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on images for use in other resources (e.g. creating a Droplet
-     * based on a snapshot), with the ability to filter and sort the results. If no filters are specified,
-     * all images will be returned.
+     * > **Deprecated:** DigitalOcean Floating IPs have been renamed reserved IPs. This data source will be removed in a future release. Please use `digitalocean.ReservedIp` instead.
      * 
-     * This data source is useful if the image in question is not managed by the provider or you need to utilize any
-     * of the image's data.
+     * Get information on a floating ip. This data source provides the region and Droplet id
+     * as configured on your DigitalOcean account. This is useful if the floating IP
+     * in question is not managed by the provider or you need to find the Droplet the IP is
+     * attached to.
      * 
-     * Note: You can use the `digitalocean.getImage` data source to obtain metadata
-     * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve.
+     * An error is triggered if the provided floating IP does not exist.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter images.
-     * 
-     * For example to find all Ubuntu images:
+     * Get the floating IP:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -5651,7 +6160,7 @@ public static Output getImages() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
+     * import com.pulumi.digitalocean.inputs.GetFloatingIpArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5665,20 +6174,36 @@ public static Output getImages() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(GetImagesFilterArgs.builder()
-     *                 .key("distribution")
-     *                 .values("Ubuntu")
-     *                 .build())
+     *         final var config = ctx.config();
+     *         final var publicIp = config.get("publicIp");
+     *         final var example = DigitaloceanFunctions.getFloatingIp(GetFloatingIpArgs.builder()
+     *             .ipAddress(publicIp)
      *             .build());
      * 
+     *         ctx.export("fipOutput", example.applyValue(getFloatingIpResult -> getFloatingIpResult.dropletId()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + */ + public static Output getFloatingIp(GetFloatingIpArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getFloatingIp:getFloatingIp", TypeShape.of(GetFloatingIpResult.class), args, Utilities.withVersion(options)); + } + /** + * > **Deprecated:** DigitalOcean Floating IPs have been renamed reserved IPs. This data source will be removed in a future release. Please use `digitalocean.ReservedIp` instead. + * + * Get information on a floating ip. This data source provides the region and Droplet id + * as configured on your DigitalOcean account. This is useful if the floating IP + * in question is not managed by the provider or you need to find the Droplet the IP is + * attached to. + * + * An error is triggered if the provided floating IP does not exist. + * + * ## Example Usage + * + * Get the floating IP: * * <!--Start PulumiCodeChooser --> *
@@ -5689,7 +6214,7 @@ public static Output getImages() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
+     * import com.pulumi.digitalocean.inputs.GetFloatingIpArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5703,22 +6228,13 @@ public static Output getImages() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(            
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("distribution")
-     *                     .values("Ubuntu")
-     *                     .build(),
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("regions")
-     *                     .values("nyc3")
-     *                     .build())
-     *             .sorts(GetImagesSortArgs.builder()
-     *                 .key("created")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var config = ctx.config();
+     *         final var publicIp = config.get("publicIp");
+     *         final var example = DigitaloceanFunctions.getFloatingIp(GetFloatingIpArgs.builder()
+     *             .ipAddress(publicIp)
      *             .build());
      * 
+     *         ctx.export("fipOutput", example.applyValue(getFloatingIpResult -> getFloatingIpResult.dropletId()));
      *     }
      * }
      * }
@@ -5726,25 +6242,20 @@ public static Output getImages() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getImagesPlain() {
-        return getImagesPlain(GetImagesPlainArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getFloatingIpPlain(GetFloatingIpPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getFloatingIp:getFloatingIp", TypeShape.of(GetFloatingIpResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on images for use in other resources (e.g. creating a Droplet
-     * based on a snapshot), with the ability to filter and sort the results. If no filters are specified,
-     * all images will be returned.
-     * 
-     * This data source is useful if the image in question is not managed by the provider or you need to utilize any
-     * of the image's data.
+     * Get information on an image for use in other resources (e.g. creating a Droplet
+     * based on snapshot). This data source provides all of the image properties as
+     * configured on your DigitalOcean account. This is useful if the image in question
+     * is not managed by the provider or you need to utilize any of the image's data.
      * 
-     * Note: You can use the `digitalocean.getImage` data source to obtain metadata
-     * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve.
+     * An error is triggered if zero or more than one result is returned by the query.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter images.
-     * 
-     * For example to find all Ubuntu images:
+     * Get the data about a snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -5755,7 +6266,7 @@ public static CompletableFuture getImagesPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5769,11 +6280,8 @@ public static CompletableFuture getImagesPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(GetImagesFilterArgs.builder()
-     *                 .key("distribution")
-     *                 .values("Ubuntu")
-     *                 .build())
+     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
      *             .build());
      * 
      *     }
@@ -5782,7 +6290,7 @@ public static CompletableFuture getImagesPlain() {
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * Reuse the data about a snapshot to create a Droplet: * * <!--Start PulumiCodeChooser --> *
@@ -5793,7 +6301,9 @@ public static CompletableFuture getImagesPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5807,20 +6317,15 @@ public static CompletableFuture getImagesPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(            
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("distribution")
-     *                     .values("Ubuntu")
-     *                     .build(),
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("regions")
-     *                     .values("nyc3")
-     *                     .build())
-     *             .sorts(GetImagesSortArgs.builder()
-     *                 .key("created")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
      *             .build());
      * 
      *     }
@@ -5829,26 +6334,7 @@ public static CompletableFuture getImagesPlain() {
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getImages(GetImagesArgs args) { - return getImages(args, InvokeOptions.Empty); - } - /** - * Get information on images for use in other resources (e.g. creating a Droplet - * based on a snapshot), with the ability to filter and sort the results. If no filters are specified, - * all images will be returned. - * - * This data source is useful if the image in question is not managed by the provider or you need to utilize any - * of the image's data. - * - * Note: You can use the `digitalocean.getImage` data source to obtain metadata - * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve. - * - * ## Example Usage - * - * Use the `filter` block with a `key` string and `values` list to filter images. - * - * For example to find all Ubuntu images: + * Get the data about an official image: * * <!--Start PulumiCodeChooser --> *
@@ -5859,7 +6345,7 @@ public static Output getImages(GetImagesArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5873,11 +6359,8 @@ public static Output getImages(GetImagesArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(GetImagesFilterArgs.builder()
-     *                 .key("distribution")
-     *                 .values("Ubuntu")
-     *                 .build())
+     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .slug("ubuntu-18-04-x64")
      *             .build());
      * 
      *     }
@@ -5886,7 +6369,21 @@ public static Output getImages(GetImagesArgs args) {
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + */ + public static Output getImage() { + return getImage(GetImageArgs.Empty, InvokeOptions.Empty); + } + /** + * Get information on an image for use in other resources (e.g. creating a Droplet + * based on snapshot). This data source provides all of the image properties as + * configured on your DigitalOcean account. This is useful if the image in question + * is not managed by the provider or you need to utilize any of the image's data. + * + * An error is triggered if zero or more than one result is returned by the query. + * + * ## Example Usage + * + * Get the data about a snapshot: * * <!--Start PulumiCodeChooser --> *
@@ -5897,7 +6394,7 @@ public static Output getImages(GetImagesArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -5911,20 +6408,8 @@ public static Output getImages(GetImagesArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(            
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("distribution")
-     *                     .values("Ubuntu")
-     *                     .build(),
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("regions")
-     *                     .values("nyc3")
-     *                     .build())
-     *             .sorts(GetImagesSortArgs.builder()
-     *                 .key("created")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
      *             .build());
      * 
      *     }
@@ -5933,26 +6418,7 @@ public static Output getImages(GetImagesArgs args) {
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getImagesPlain(GetImagesPlainArgs args) { - return getImagesPlain(args, InvokeOptions.Empty); - } - /** - * Get information on images for use in other resources (e.g. creating a Droplet - * based on a snapshot), with the ability to filter and sort the results. If no filters are specified, - * all images will be returned. - * - * This data source is useful if the image in question is not managed by the provider or you need to utilize any - * of the image's data. - * - * Note: You can use the `digitalocean.getImage` data source to obtain metadata - * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve. - * - * ## Example Usage - * - * Use the `filter` block with a `key` string and `values` list to filter images. - * - * For example to find all Ubuntu images: + * Reuse the data about a snapshot to create a Droplet: * * <!--Start PulumiCodeChooser --> *
@@ -5963,9 +6429,11 @@ public static CompletableFuture getImagesPlain(GetImagesPlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
-     * import java.util.List;
-     * import java.util.ArrayList;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
      * import java.util.Map;
      * import java.io.File;
      * import java.nio.file.Files;
@@ -5977,11 +6445,15 @@ public static CompletableFuture getImagesPlain(GetImagesPlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(GetImagesFilterArgs.builder()
-     *                 .key("distribution")
-     *                 .values("Ubuntu")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
      *             .build());
      * 
      *     }
@@ -5990,7 +6462,7 @@ public static CompletableFuture getImagesPlain(GetImagesPlainAr
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * Get the data about an official image: * * <!--Start PulumiCodeChooser --> *
@@ -6001,7 +6473,7 @@ public static CompletableFuture getImagesPlain(GetImagesPlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6015,20 +6487,8 @@ public static CompletableFuture getImagesPlain(GetImagesPlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(            
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("distribution")
-     *                     .values("Ubuntu")
-     *                     .build(),
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("regions")
-     *                     .values("nyc3")
-     *                     .build())
-     *             .sorts(GetImagesSortArgs.builder()
-     *                 .key("created")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .slug("ubuntu-18-04-x64")
      *             .build());
      * 
      *     }
@@ -6038,25 +6498,20 @@ public static CompletableFuture getImagesPlain(GetImagesPlainAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getImages(GetImagesArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getImages:getImages", TypeShape.of(GetImagesResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getImagePlain() {
+        return getImagePlain(GetImagePlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Get information on images for use in other resources (e.g. creating a Droplet
-     * based on a snapshot), with the ability to filter and sort the results. If no filters are specified,
-     * all images will be returned.
-     * 
-     * This data source is useful if the image in question is not managed by the provider or you need to utilize any
-     * of the image's data.
+     * Get information on an image for use in other resources (e.g. creating a Droplet
+     * based on snapshot). This data source provides all of the image properties as
+     * configured on your DigitalOcean account. This is useful if the image in question
+     * is not managed by the provider or you need to utilize any of the image's data.
      * 
-     * Note: You can use the `digitalocean.getImage` data source to obtain metadata
-     * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve.
+     * An error is triggered if zero or more than one result is returned by the query.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter images.
-     * 
-     * For example to find all Ubuntu images:
+     * Get the data about a snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -6067,7 +6522,7 @@ public static Output getImages(GetImagesArgs args, InvokeOption
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6081,11 +6536,8 @@ public static Output getImages(GetImagesArgs args, InvokeOption
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(GetImagesFilterArgs.builder()
-     *                 .key("distribution")
-     *                 .values("Ubuntu")
-     *                 .build())
+     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
      *             .build());
      * 
      *     }
@@ -6094,7 +6546,7 @@ public static Output getImages(GetImagesArgs args, InvokeOption
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * Reuse the data about a snapshot to create a Droplet: * * <!--Start PulumiCodeChooser --> *
@@ -6105,7 +6557,9 @@ public static Output getImages(GetImagesArgs args, InvokeOption
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6119,20 +6573,15 @@ public static Output getImages(GetImagesArgs args, InvokeOption
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
-     *             .filters(            
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("distribution")
-     *                     .values("Ubuntu")
-     *                     .build(),
-     *                 GetImagesFilterArgs.builder()
-     *                     .key("regions")
-     *                     .values("nyc3")
-     *                     .build())
-     *             .sorts(GetImagesSortArgs.builder()
-     *                 .key("created")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
      *             .build());
      * 
      *     }
@@ -6141,14 +6590,7 @@ public static Output getImages(GetImagesArgs args, InvokeOption
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getImagesPlain(GetImagesPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("digitalocean:index/getImages:getImages", TypeShape.of(GetImagesResult.class), args, Utilities.withVersion(options)); - } - /** - * Retrieves information about a DigitalOcean Kubernetes cluster for use in other resources. This data source provides all of the cluster's properties as configured on your DigitalOcean account. This is useful if the cluster in question is not managed by the provider. - * - * ## Example Usage + * Get the data about an official image: * * <!--Start PulumiCodeChooser --> *
@@ -6159,7 +6601,7 @@ public static CompletableFuture getImagesPlain(GetImagesPlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6173,8 +6615,8 @@ public static CompletableFuture getImagesPlain(GetImagesPlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesCluster(GetKubernetesClusterArgs.builder()
-     *             .name("prod-cluster-01")
+     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .slug("ubuntu-18-04-x64")
      *             .build());
      * 
      *     }
@@ -6184,14 +6626,21 @@ public static CompletableFuture getImagesPlain(GetImagesPlainAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getKubernetesCluster(GetKubernetesClusterArgs args) {
-        return getKubernetesCluster(args, InvokeOptions.Empty);
+    public static Output getImage(GetImageArgs args) {
+        return getImage(args, InvokeOptions.Empty);
     }
     /**
-     * Retrieves information about a DigitalOcean Kubernetes cluster for use in other resources. This data source provides all of the cluster's properties as configured on your DigitalOcean account. This is useful if the cluster in question is not managed by the provider.
+     * Get information on an image for use in other resources (e.g. creating a Droplet
+     * based on snapshot). This data source provides all of the image properties as
+     * configured on your DigitalOcean account. This is useful if the image in question
+     * is not managed by the provider or you need to utilize any of the image's data.
+     * 
+     * An error is triggered if zero or more than one result is returned by the query.
      * 
      * ## Example Usage
      * 
+     * Get the data about a snapshot:
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -6201,7 +6650,7 @@ public static Output getKubernetesCluster(GetKuberne
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6215,8 +6664,8 @@ public static Output getKubernetesCluster(GetKuberne
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesCluster(GetKubernetesClusterArgs.builder()
-     *             .name("prod-cluster-01")
+     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
      *             .build());
      * 
      *     }
@@ -6225,14 +6674,7 @@ public static Output getKubernetesCluster(GetKuberne
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getKubernetesClusterPlain(GetKubernetesClusterPlainArgs args) { - return getKubernetesClusterPlain(args, InvokeOptions.Empty); - } - /** - * Retrieves information about a DigitalOcean Kubernetes cluster for use in other resources. This data source provides all of the cluster's properties as configured on your DigitalOcean account. This is useful if the cluster in question is not managed by the provider. - * - * ## Example Usage + * Reuse the data about a snapshot to create a Droplet: * * <!--Start PulumiCodeChooser --> *
@@ -6243,7 +6685,9 @@ public static CompletableFuture getKubernetesCluster
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6257,8 +6701,15 @@ public static CompletableFuture getKubernetesCluster
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesCluster(GetKubernetesClusterArgs.builder()
-     *             .name("prod-cluster-01")
+     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
      *             .build());
      * 
      *     }
@@ -6267,14 +6718,7 @@ public static CompletableFuture getKubernetesCluster
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getKubernetesCluster(GetKubernetesClusterArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getKubernetesCluster:getKubernetesCluster", TypeShape.of(GetKubernetesClusterResult.class), args, Utilities.withVersion(options)); - } - /** - * Retrieves information about a DigitalOcean Kubernetes cluster for use in other resources. This data source provides all of the cluster's properties as configured on your DigitalOcean account. This is useful if the cluster in question is not managed by the provider. - * - * ## Example Usage + * Get the data about an official image: * * <!--Start PulumiCodeChooser --> *
@@ -6285,7 +6729,7 @@ public static Output getKubernetesCluster(GetKuberne
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6299,8 +6743,8 @@ public static Output getKubernetesCluster(GetKuberne
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesCluster(GetKubernetesClusterArgs.builder()
-     *             .name("prod-cluster-01")
+     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .slug("ubuntu-18-04-x64")
      *             .build());
      * 
      *     }
@@ -6310,15 +6754,20 @@ public static Output getKubernetesCluster(GetKuberne
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getKubernetesClusterPlain(GetKubernetesClusterPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getKubernetesCluster:getKubernetesCluster", TypeShape.of(GetKubernetesClusterResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getImagePlain(GetImagePlainArgs args) {
+        return getImagePlain(args, InvokeOptions.Empty);
     }
     /**
-     * Provides access to the available DigitalOcean Kubernetes Service versions.
+     * Get information on an image for use in other resources (e.g. creating a Droplet
+     * based on snapshot). This data source provides all of the image properties as
+     * configured on your DigitalOcean account. This is useful if the image in question
+     * is not managed by the provider or you need to utilize any of the image's data.
+     * 
+     * An error is triggered if zero or more than one result is returned by the query.
      * 
      * ## Example Usage
      * 
-     * ### Output a list of all available versions
+     * Get the data about a snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -6329,7 +6778,7 @@ public static CompletableFuture getKubernetesCluster
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6343,16 +6792,17 @@ public static CompletableFuture getKubernetesCluster
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
+     *             .build());
      * 
-     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### Create a Kubernetes cluster using the most recent version available + * Reuse the data about a snapshot to create a Droplet: * * <!--Start PulumiCodeChooser --> *
@@ -6363,10 +6813,9 @@ public static CompletableFuture getKubernetesCluster
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6380,17 +6829,15 @@ public static CompletableFuture getKubernetesCluster
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
+     *             .build());
      * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
-     *                 .build())
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
      *             .build());
      * 
      *     }
@@ -6399,7 +6846,7 @@ public static CompletableFuture getKubernetesCluster
      * 
* <!--End PulumiCodeChooser --> * - * ### Pin a Kubernetes cluster to a specific minor version + * Get the data about an official image: * * <!--Start PulumiCodeChooser --> *
@@ -6410,10 +6857,7 @@ public static CompletableFuture getKubernetesCluster
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6427,19 +6871,8 @@ public static CompletableFuture getKubernetesCluster
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
-     *             .versionPrefix("1.22.")
-     *             .build());
-     * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
-     *                 .build())
+     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .slug("ubuntu-18-04-x64")
      *             .build());
      * 
      *     }
@@ -6449,15 +6882,20 @@ public static CompletableFuture getKubernetesCluster
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getKubernetesVersions() {
-        return getKubernetesVersions(GetKubernetesVersionsArgs.Empty, InvokeOptions.Empty);
+    public static Output getImage(GetImageArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getImage:getImage", TypeShape.of(GetImageResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Provides access to the available DigitalOcean Kubernetes Service versions.
+     * Get information on an image for use in other resources (e.g. creating a Droplet
+     * based on snapshot). This data source provides all of the image properties as
+     * configured on your DigitalOcean account. This is useful if the image in question
+     * is not managed by the provider or you need to utilize any of the image's data.
+     * 
+     * An error is triggered if zero or more than one result is returned by the query.
      * 
      * ## Example Usage
      * 
-     * ### Output a list of all available versions
+     * Get the data about a snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -6468,7 +6906,7 @@ public static Output getKubernetesVersions() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6482,16 +6920,17 @@ public static Output getKubernetesVersions() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
+     *             .build());
      * 
-     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### Create a Kubernetes cluster using the most recent version available + * Reuse the data about a snapshot to create a Droplet: * * <!--Start PulumiCodeChooser --> *
@@ -6502,10 +6941,9 @@ public static Output getKubernetesVersions() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6519,17 +6957,15 @@ public static Output getKubernetesVersions() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
+     *             .build());
      * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
-     *                 .build())
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
      *             .build());
      * 
      *     }
@@ -6538,7 +6974,7 @@ public static Output getKubernetesVersions() {
      * 
* <!--End PulumiCodeChooser --> * - * ### Pin a Kubernetes cluster to a specific minor version + * Get the data about an official image: * * <!--Start PulumiCodeChooser --> *
@@ -6549,10 +6985,7 @@ public static Output getKubernetesVersions() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6566,19 +6999,8 @@ public static Output getKubernetesVersions() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
-     *             .versionPrefix("1.22.")
-     *             .build());
-     * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
-     *                 .build())
+     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .slug("ubuntu-18-04-x64")
      *             .build());
      * 
      *     }
@@ -6588,15 +7010,20 @@ public static Output getKubernetesVersions() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getKubernetesVersionsPlain() {
-        return getKubernetesVersionsPlain(GetKubernetesVersionsPlainArgs.Empty, InvokeOptions.Empty);
+    public static Output getImage(GetImageArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getImage:getImage", TypeShape.of(GetImageResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Provides access to the available DigitalOcean Kubernetes Service versions.
+     * Get information on an image for use in other resources (e.g. creating a Droplet
+     * based on snapshot). This data source provides all of the image properties as
+     * configured on your DigitalOcean account. This is useful if the image in question
+     * is not managed by the provider or you need to utilize any of the image's data.
+     * 
+     * An error is triggered if zero or more than one result is returned by the query.
      * 
      * ## Example Usage
      * 
-     * ### Output a list of all available versions
+     * Get the data about a snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -6607,7 +7034,7 @@ public static CompletableFuture getKubernetesVersio
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6621,16 +7048,17 @@ public static CompletableFuture getKubernetesVersio
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     *         final var example1 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
+     *             .build());
      * 
-     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### Create a Kubernetes cluster using the most recent version available + * Reuse the data about a snapshot to create a Droplet: * * <!--Start PulumiCodeChooser --> *
@@ -6641,10 +7069,9 @@ public static CompletableFuture getKubernetesVersio
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6658,17 +7085,15 @@ public static CompletableFuture getKubernetesVersio
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     *         final var example = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .name("example-1.0.0")
+     *             .build());
      * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
-     *                 .build())
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image(example.applyValue(getImageResult -> getImageResult.id()))
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
      *             .build());
      * 
      *     }
@@ -6677,7 +7102,7 @@ public static CompletableFuture getKubernetesVersio
      * 
* <!--End PulumiCodeChooser --> * - * ### Pin a Kubernetes cluster to a specific minor version + * Get the data about an official image: * * <!--Start PulumiCodeChooser --> *
@@ -6688,10 +7113,7 @@ public static CompletableFuture getKubernetesVersio
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImageArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6705,19 +7127,8 @@ public static CompletableFuture getKubernetesVersio
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
-     *             .versionPrefix("1.22.")
-     *             .build());
-     * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
-     *                 .build())
+     *         final var example2 = DigitaloceanFunctions.getImage(GetImageArgs.builder()
+     *             .slug("ubuntu-18-04-x64")
      *             .build());
      * 
      *     }
@@ -6727,49 +7138,25 @@ public static CompletableFuture getKubernetesVersio
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getKubernetesVersions(GetKubernetesVersionsArgs args) {
-        return getKubernetesVersions(args, InvokeOptions.Empty);
+    public static CompletableFuture getImagePlain(GetImagePlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getImage:getImage", TypeShape.of(GetImageResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Provides access to the available DigitalOcean Kubernetes Service versions.
-     * 
-     * ## Example Usage
-     * 
-     * ### Output a list of all available versions
-     * 
-     * <!--Start PulumiCodeChooser -->
-     * 
-     * {@code
-     * package generated_program;
+     * Get information on images for use in other resources (e.g. creating a Droplet
+     * based on a snapshot), with the ability to filter and sort the results. If no filters are specified,
+     * all images will be returned.
      * 
-     * import com.pulumi.Context;
-     * import com.pulumi.Pulumi;
-     * import com.pulumi.core.Output;
-     * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import java.util.List;
-     * import java.util.ArrayList;
-     * import java.util.Map;
-     * import java.io.File;
-     * import java.nio.file.Files;
-     * import java.nio.file.Paths;
+     * This data source is useful if the image in question is not managed by the provider or you need to utilize any
+     * of the image's data.
      * 
-     * public class App {
-     *     public static void main(String[] args) {
-     *         Pulumi.run(App::stack);
-     *     }
+     * Note: You can use the `digitalocean.getImage` data source to obtain metadata
+     * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve.
      * 
-     *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     * ## Example Usage
      * 
-     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
-     *     }
-     * }
-     * }
-     * 
- * <!--End PulumiCodeChooser --> + * Use the `filter` block with a `key` string and `values` list to filter images. * - * ### Create a Kubernetes cluster using the most recent version available + * For example to find all Ubuntu images: * * <!--Start PulumiCodeChooser --> *
@@ -6780,10 +7167,7 @@ public static Output getKubernetesVersions(GetKuber
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6797,16 +7181,10 @@ public static Output getKubernetesVersions(GetKuber
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
-     * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
+     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(GetImagesFilterArgs.builder()
+     *                 .key("distribution")
+     *                 .values("Ubuntu")
      *                 .build())
      *             .build());
      * 
@@ -6816,7 +7194,7 @@ public static Output getKubernetesVersions(GetKuber
      * 
* <!--End PulumiCodeChooser --> * - * ### Pin a Kubernetes cluster to a specific minor version + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -6827,10 +7205,7 @@ public static Output getKubernetesVersions(GetKuber
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6844,18 +7219,19 @@ public static Output getKubernetesVersions(GetKuber
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
-     *             .versionPrefix("1.22.")
-     *             .build());
-     * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
+     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(            
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("distribution")
+     *                     .values("Ubuntu")
+     *                     .build(),
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("regions")
+     *                     .values("nyc3")
+     *                     .build())
+     *             .sorts(GetImagesSortArgs.builder()
+     *                 .key("created")
+     *                 .direction("desc")
      *                 .build())
      *             .build());
      * 
@@ -6866,15 +7242,25 @@ public static Output getKubernetesVersions(GetKuber
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getKubernetesVersionsPlain(GetKubernetesVersionsPlainArgs args) {
-        return getKubernetesVersionsPlain(args, InvokeOptions.Empty);
+    public static Output getImages() {
+        return getImages(GetImagesArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Provides access to the available DigitalOcean Kubernetes Service versions.
+     * Get information on images for use in other resources (e.g. creating a Droplet
+     * based on a snapshot), with the ability to filter and sort the results. If no filters are specified,
+     * all images will be returned.
+     * 
+     * This data source is useful if the image in question is not managed by the provider or you need to utilize any
+     * of the image's data.
+     * 
+     * Note: You can use the `digitalocean.getImage` data source to obtain metadata
+     * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve.
      * 
      * ## Example Usage
      * 
-     * ### Output a list of all available versions
+     * Use the `filter` block with a `key` string and `values` list to filter images.
+     * 
+     * For example to find all Ubuntu images:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -6885,7 +7271,7 @@ public static CompletableFuture getKubernetesVersio
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6899,16 +7285,20 @@ public static CompletableFuture getKubernetesVersio
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(GetImagesFilterArgs.builder()
+     *                 .key("distribution")
+     *                 .values("Ubuntu")
+     *                 .build())
+     *             .build());
      * 
-     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### Create a Kubernetes cluster using the most recent version available + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -6919,10 +7309,7 @@ public static CompletableFuture getKubernetesVersio
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6936,16 +7323,19 @@ public static CompletableFuture getKubernetesVersio
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
-     * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
+     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(            
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("distribution")
+     *                     .values("Ubuntu")
+     *                     .build(),
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("regions")
+     *                     .values("nyc3")
+     *                     .build())
+     *             .sorts(GetImagesSortArgs.builder()
+     *                 .key("created")
+     *                 .direction("desc")
      *                 .build())
      *             .build());
      * 
@@ -6955,7 +7345,26 @@ public static CompletableFuture getKubernetesVersio
      * 
* <!--End PulumiCodeChooser --> * - * ### Pin a Kubernetes cluster to a specific minor version + */ + public static CompletableFuture getImagesPlain() { + return getImagesPlain(GetImagesPlainArgs.Empty, InvokeOptions.Empty); + } + /** + * Get information on images for use in other resources (e.g. creating a Droplet + * based on a snapshot), with the ability to filter and sort the results. If no filters are specified, + * all images will be returned. + * + * This data source is useful if the image in question is not managed by the provider or you need to utilize any + * of the image's data. + * + * Note: You can use the `digitalocean.getImage` data source to obtain metadata + * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter images. + * + * For example to find all Ubuntu images: * * <!--Start PulumiCodeChooser --> *
@@ -6966,10 +7375,7 @@ public static CompletableFuture getKubernetesVersio
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -6983,18 +7389,10 @@ public static CompletableFuture getKubernetesVersio
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
-     *             .versionPrefix("1.22.")
-     *             .build());
-     * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
+     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(GetImagesFilterArgs.builder()
+     *                 .key("distribution")
+     *                 .values("Ubuntu")
      *                 .build())
      *             .build());
      * 
@@ -7004,16 +7402,7 @@ public static CompletableFuture getKubernetesVersio
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getKubernetesVersions(GetKubernetesVersionsArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getKubernetesVersions:getKubernetesVersions", TypeShape.of(GetKubernetesVersionsResult.class), args, Utilities.withVersion(options)); - } - /** - * Provides access to the available DigitalOcean Kubernetes Service versions. - * - * ## Example Usage - * - * ### Output a list of all available versions + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -7024,7 +7413,7 @@ public static Output getKubernetesVersions(GetKuber
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7038,16 +7427,48 @@ public static Output getKubernetesVersions(GetKuber
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(            
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("distribution")
+     *                     .values("Ubuntu")
+     *                     .build(),
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("regions")
+     *                     .values("nyc3")
+     *                     .build())
+     *             .sorts(GetImagesSortArgs.builder()
+     *                 .key("created")
+     *                 .direction("desc")
+     *                 .build())
+     *             .build());
      * 
-     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * ### Create a Kubernetes cluster using the most recent version available + */ + public static Output getImages(GetImagesArgs args) { + return getImages(args, InvokeOptions.Empty); + } + /** + * Get information on images for use in other resources (e.g. creating a Droplet + * based on a snapshot), with the ability to filter and sort the results. If no filters are specified, + * all images will be returned. + * + * This data source is useful if the image in question is not managed by the provider or you need to utilize any + * of the image's data. + * + * Note: You can use the `digitalocean.getImage` data source to obtain metadata + * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter images. + * + * For example to find all Ubuntu images: * * <!--Start PulumiCodeChooser --> *
@@ -7058,10 +7479,7 @@ public static Output getKubernetesVersions(GetKuber
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7075,16 +7493,10 @@ public static Output getKubernetesVersions(GetKuber
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
-     * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
+     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(GetImagesFilterArgs.builder()
+     *                 .key("distribution")
+     *                 .values("Ubuntu")
      *                 .build())
      *             .build());
      * 
@@ -7094,7 +7506,7 @@ public static Output getKubernetesVersions(GetKuber
      * 
* <!--End PulumiCodeChooser --> * - * ### Pin a Kubernetes cluster to a specific minor version + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -7105,10 +7517,7 @@ public static Output getKubernetesVersions(GetKuber
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
-     * import com.pulumi.digitalocean.KubernetesCluster;
-     * import com.pulumi.digitalocean.KubernetesClusterArgs;
-     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7122,18 +7531,19 @@ public static Output getKubernetesVersions(GetKuber
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
-     *             .versionPrefix("1.22.")
-     *             .build());
-     * 
-     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
-     *             .name("example-cluster")
-     *             .region("lon1")
-     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
-     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
-     *                 .name("default")
-     *                 .size("s-1vcpu-2gb")
-     *                 .nodeCount(3)
+     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(            
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("distribution")
+     *                     .values("Ubuntu")
+     *                     .build(),
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("regions")
+     *                     .values("nyc3")
+     *                     .build())
+     *             .sorts(GetImagesSortArgs.builder()
+     *                 .key("created")
+     *                 .direction("desc")
      *                 .build())
      *             .build());
      * 
@@ -7144,20 +7554,25 @@ public static Output getKubernetesVersions(GetKuber
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getKubernetesVersionsPlain(GetKubernetesVersionsPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getKubernetesVersions:getKubernetesVersions", TypeShape.of(GetKubernetesVersionsResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getImagesPlain(GetImagesPlainArgs args) {
+        return getImagesPlain(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on a load balancer for use in other resources. This data source
-     * provides all of the load balancers properties as configured on your DigitalOcean
-     * account. This is useful if the load balancer in question is not managed by
-     * the provider or you need to utilize any of the load balancers data.
+     * Get information on images for use in other resources (e.g. creating a Droplet
+     * based on a snapshot), with the ability to filter and sort the results. If no filters are specified,
+     * all images will be returned.
      * 
-     * An error is triggered if the provided load balancer name does not exist.
+     * This data source is useful if the image in question is not managed by the provider or you need to utilize any
+     * of the image's data.
+     * 
+     * Note: You can use the `digitalocean.getImage` data source to obtain metadata
+     * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve.
      * 
      * ## Example Usage
      * 
-     * Get the load balancer by name:
+     * Use the `filter` block with a `key` string and `values` list to filter images.
+     * 
+     * For example to find all Ubuntu images:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -7168,7 +7583,7 @@ public static CompletableFuture getKubernetesVersio
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7182,18 +7597,20 @@ public static CompletableFuture getKubernetesVersio
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .name("app")
+     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(GetImagesFilterArgs.builder()
+     *                 .key("distribution")
+     *                 .values("Ubuntu")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Get the load balancer by ID: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -7204,7 +7621,7 @@ public static CompletableFuture getKubernetesVersio
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7218,8 +7635,20 @@ public static CompletableFuture getKubernetesVersio
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .id("loadbalancer_id")
+     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(            
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("distribution")
+     *                     .values("Ubuntu")
+     *                     .build(),
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("regions")
+     *                     .values("nyc3")
+     *                     .build())
+     *             .sorts(GetImagesSortArgs.builder()
+     *                 .key("created")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -7229,20 +7658,25 @@ public static CompletableFuture getKubernetesVersio
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getLoadBalancer() {
-        return getLoadBalancer(GetLoadBalancerArgs.Empty, InvokeOptions.Empty);
+    public static Output getImages(GetImagesArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getImages:getImages", TypeShape.of(GetImagesResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on a load balancer for use in other resources. This data source
-     * provides all of the load balancers properties as configured on your DigitalOcean
-     * account. This is useful if the load balancer in question is not managed by
-     * the provider or you need to utilize any of the load balancers data.
+     * Get information on images for use in other resources (e.g. creating a Droplet
+     * based on a snapshot), with the ability to filter and sort the results. If no filters are specified,
+     * all images will be returned.
      * 
-     * An error is triggered if the provided load balancer name does not exist.
+     * This data source is useful if the image in question is not managed by the provider or you need to utilize any
+     * of the image's data.
+     * 
+     * Note: You can use the `digitalocean.getImage` data source to obtain metadata
+     * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve.
      * 
      * ## Example Usage
      * 
-     * Get the load balancer by name:
+     * Use the `filter` block with a `key` string and `values` list to filter images.
+     * 
+     * For example to find all Ubuntu images:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -7253,7 +7687,7 @@ public static Output getLoadBalancer() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7267,18 +7701,20 @@ public static Output getLoadBalancer() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .name("app")
+     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(GetImagesFilterArgs.builder()
+     *                 .key("distribution")
+     *                 .values("Ubuntu")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Get the load balancer by ID: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -7289,7 +7725,7 @@ public static Output getLoadBalancer() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7303,10 +7739,22 @@ public static Output getLoadBalancer() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .id("loadbalancer_id")
-     *             .build());
-     * 
+     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(            
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("distribution")
+     *                     .values("Ubuntu")
+     *                     .build(),
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("regions")
+     *                     .values("nyc3")
+     *                     .build())
+     *             .sorts(GetImagesSortArgs.builder()
+     *                 .key("created")
+     *                 .direction("desc")
+     *                 .build())
+     *             .build());
+     * 
      *     }
      * }
      * }
@@ -7314,20 +7762,25 @@ public static Output getLoadBalancer() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getLoadBalancerPlain() {
-        return getLoadBalancerPlain(GetLoadBalancerPlainArgs.Empty, InvokeOptions.Empty);
+    public static Output getImages(GetImagesArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getImages:getImages", TypeShape.of(GetImagesResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on a load balancer for use in other resources. This data source
-     * provides all of the load balancers properties as configured on your DigitalOcean
-     * account. This is useful if the load balancer in question is not managed by
-     * the provider or you need to utilize any of the load balancers data.
+     * Get information on images for use in other resources (e.g. creating a Droplet
+     * based on a snapshot), with the ability to filter and sort the results. If no filters are specified,
+     * all images will be returned.
      * 
-     * An error is triggered if the provided load balancer name does not exist.
+     * This data source is useful if the image in question is not managed by the provider or you need to utilize any
+     * of the image's data.
+     * 
+     * Note: You can use the `digitalocean.getImage` data source to obtain metadata
+     * about a single image if you already know the `slug`, unique `name`, or `id` to retrieve.
      * 
      * ## Example Usage
      * 
-     * Get the load balancer by name:
+     * Use the `filter` block with a `key` string and `values` list to filter images.
+     * 
+     * For example to find all Ubuntu images:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -7338,7 +7791,7 @@ public static CompletableFuture getLoadBalancerPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7352,18 +7805,20 @@ public static CompletableFuture getLoadBalancerPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .name("app")
+     *         final var ubuntu = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(GetImagesFilterArgs.builder()
+     *                 .key("distribution")
+     *                 .values("Ubuntu")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Get the load balancer by ID: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -7374,7 +7829,7 @@ public static CompletableFuture getLoadBalancerPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetImagesArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7388,8 +7843,20 @@ public static CompletableFuture getLoadBalancerPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .id("loadbalancer_id")
+     *         final var available = DigitaloceanFunctions.getImages(GetImagesArgs.builder()
+     *             .filters(            
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("distribution")
+     *                     .values("Ubuntu")
+     *                     .build(),
+     *                 GetImagesFilterArgs.builder()
+     *                     .key("regions")
+     *                     .values("nyc3")
+     *                     .build())
+     *             .sorts(GetImagesSortArgs.builder()
+     *                 .key("created")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -7399,21 +7866,14 @@ public static CompletableFuture getLoadBalancerPlain() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getLoadBalancer(GetLoadBalancerArgs args) {
-        return getLoadBalancer(args, InvokeOptions.Empty);
+    public static CompletableFuture getImagesPlain(GetImagesPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getImages:getImages", TypeShape.of(GetImagesResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on a load balancer for use in other resources. This data source
-     * provides all of the load balancers properties as configured on your DigitalOcean
-     * account. This is useful if the load balancer in question is not managed by
-     * the provider or you need to utilize any of the load balancers data.
-     * 
-     * An error is triggered if the provided load balancer name does not exist.
+     * Retrieves information about a DigitalOcean Kubernetes cluster for use in other resources. This data source provides all of the cluster's properties as configured on your DigitalOcean account. This is useful if the cluster in question is not managed by the provider.
      * 
      * ## Example Usage
      * 
-     * Get the load balancer by name:
-     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -7423,7 +7883,7 @@ public static Output getLoadBalancer(GetLoadBalancerArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesClusterArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7437,18 +7897,24 @@ public static Output getLoadBalancer(GetLoadBalancerArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .name("app")
+     *         final var example = DigitaloceanFunctions.getKubernetesCluster(GetKubernetesClusterArgs.builder()
+     *             .name("prod-cluster-01")
      *             .build());
      * 
-     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Get the load balancer by ID: + */ + public static Output getKubernetesCluster(GetKubernetesClusterArgs args) { + return getKubernetesCluster(args, InvokeOptions.Empty); + } + /** + * Retrieves information about a DigitalOcean Kubernetes cluster for use in other resources. This data source provides all of the cluster's properties as configured on your DigitalOcean account. This is useful if the cluster in question is not managed by the provider. + * + * ## Example Usage * * <!--Start PulumiCodeChooser --> *
@@ -7459,7 +7925,7 @@ public static Output getLoadBalancer(GetLoadBalancerArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesClusterArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7473,8 +7939,8 @@ public static Output getLoadBalancer(GetLoadBalancerArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .id("loadbalancer_id")
+     *         final var example = DigitaloceanFunctions.getKubernetesCluster(GetKubernetesClusterArgs.builder()
+     *             .name("prod-cluster-01")
      *             .build());
      * 
      *     }
@@ -7484,21 +7950,14 @@ public static Output getLoadBalancer(GetLoadBalancerArgs
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getLoadBalancerPlain(GetLoadBalancerPlainArgs args) {
-        return getLoadBalancerPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getKubernetesClusterPlain(GetKubernetesClusterPlainArgs args) {
+        return getKubernetesClusterPlain(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on a load balancer for use in other resources. This data source
-     * provides all of the load balancers properties as configured on your DigitalOcean
-     * account. This is useful if the load balancer in question is not managed by
-     * the provider or you need to utilize any of the load balancers data.
-     * 
-     * An error is triggered if the provided load balancer name does not exist.
+     * Retrieves information about a DigitalOcean Kubernetes cluster for use in other resources. This data source provides all of the cluster's properties as configured on your DigitalOcean account. This is useful if the cluster in question is not managed by the provider.
      * 
      * ## Example Usage
      * 
-     * Get the load balancer by name:
-     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -7508,7 +7967,7 @@ public static CompletableFuture getLoadBalancerPlain(GetL
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesClusterArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7522,18 +7981,24 @@ public static CompletableFuture getLoadBalancerPlain(GetL
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .name("app")
+     *         final var example = DigitaloceanFunctions.getKubernetesCluster(GetKubernetesClusterArgs.builder()
+     *             .name("prod-cluster-01")
      *             .build());
      * 
-     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Get the load balancer by ID: + */ + public static Output getKubernetesCluster(GetKubernetesClusterArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getKubernetesCluster:getKubernetesCluster", TypeShape.of(GetKubernetesClusterResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieves information about a DigitalOcean Kubernetes cluster for use in other resources. This data source provides all of the cluster's properties as configured on your DigitalOcean account. This is useful if the cluster in question is not managed by the provider. + * + * ## Example Usage * * <!--Start PulumiCodeChooser --> *
@@ -7544,7 +8009,7 @@ public static CompletableFuture getLoadBalancerPlain(GetL
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesClusterArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7558,8 +8023,8 @@ public static CompletableFuture getLoadBalancerPlain(GetL
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .id("loadbalancer_id")
+     *         final var example = DigitaloceanFunctions.getKubernetesCluster(GetKubernetesClusterArgs.builder()
+     *             .name("prod-cluster-01")
      *             .build());
      * 
      *     }
@@ -7569,21 +8034,14 @@ public static CompletableFuture getLoadBalancerPlain(GetL
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getLoadBalancer(GetLoadBalancerArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getLoadBalancer:getLoadBalancer", TypeShape.of(GetLoadBalancerResult.class), args, Utilities.withVersion(options));
+    public static Output getKubernetesCluster(GetKubernetesClusterArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getKubernetesCluster:getKubernetesCluster", TypeShape.of(GetKubernetesClusterResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on a load balancer for use in other resources. This data source
-     * provides all of the load balancers properties as configured on your DigitalOcean
-     * account. This is useful if the load balancer in question is not managed by
-     * the provider or you need to utilize any of the load balancers data.
-     * 
-     * An error is triggered if the provided load balancer name does not exist.
+     * Retrieves information about a DigitalOcean Kubernetes cluster for use in other resources. This data source provides all of the cluster's properties as configured on your DigitalOcean account. This is useful if the cluster in question is not managed by the provider.
      * 
      * ## Example Usage
      * 
-     * Get the load balancer by name:
-     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -7593,7 +8051,7 @@ public static Output getLoadBalancer(GetLoadBalancerArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesClusterArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7607,18 +8065,26 @@ public static Output getLoadBalancer(GetLoadBalancerArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .name("app")
+     *         final var example = DigitaloceanFunctions.getKubernetesCluster(GetKubernetesClusterArgs.builder()
+     *             .name("prod-cluster-01")
      *             .build());
      * 
-     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Get the load balancer by ID: + */ + public static CompletableFuture getKubernetesClusterPlain(GetKubernetesClusterPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getKubernetesCluster:getKubernetesCluster", TypeShape.of(GetKubernetesClusterResult.class), args, Utilities.withVersion(options)); + } + /** + * Provides access to the available DigitalOcean Kubernetes Service versions. + * + * ## Example Usage + * + * ### Output a list of all available versions * * <!--Start PulumiCodeChooser --> *
@@ -7629,7 +8095,7 @@ public static Output getLoadBalancer(GetLoadBalancerArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7643,25 +8109,16 @@ public static Output getLoadBalancer(GetLoadBalancerArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
-     *             .id("loadbalancer_id")
-     *             .build());
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
      * 
+     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getLoadBalancerPlain(GetLoadBalancerPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("digitalocean:index/getLoadBalancer:getLoadBalancer", TypeShape.of(GetLoadBalancerResult.class), args, Utilities.withVersion(options)); - } - /** - * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided, - * then this data source returns the default project. - * - * ## Example Usage + * ### Create a Kubernetes cluster using the most recent version available * * <!--Start PulumiCodeChooser --> *
@@ -7672,7 +8129,10 @@ public static CompletableFuture getLoadBalancerPlain(GetL
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7686,10 +8146,17 @@ public static CompletableFuture getLoadBalancerPlain(GetL
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var default = DigitaloceanFunctions.getProject();
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
      * 
-     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
-     *             .name("My Staging Project")
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -7698,15 +8165,7 @@ public static CompletableFuture getLoadBalancerPlain(GetL
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getProject() { - return getProject(GetProjectArgs.Empty, InvokeOptions.Empty); - } - /** - * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided, - * then this data source returns the default project. - * - * ## Example Usage + * ### Pin a Kubernetes cluster to a specific minor version * * <!--Start PulumiCodeChooser --> *
@@ -7717,7 +8176,10 @@ public static Output getProject() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7731,10 +8193,19 @@ public static Output getProject() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var default = DigitaloceanFunctions.getProject();
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
+     *             .versionPrefix("1.22.")
+     *             .build());
      * 
-     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
-     *             .name("My Staging Project")
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -7744,15 +8215,16 @@ public static Output getProject() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getProjectPlain() {
-        return getProjectPlain(GetProjectPlainArgs.Empty, InvokeOptions.Empty);
+    public static Output getKubernetesVersions() {
+        return getKubernetesVersions(GetKubernetesVersionsArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided,
-     * then this data source returns the default project.
+     * Provides access to the available DigitalOcean Kubernetes Service versions.
      * 
      * ## Example Usage
      * 
+     * ### Output a list of all available versions
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -7762,7 +8234,7 @@ public static CompletableFuture getProjectPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7776,27 +8248,16 @@ public static CompletableFuture getProjectPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var default = DigitaloceanFunctions.getProject();
-     * 
-     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
-     *             .name("My Staging Project")
-     *             .build());
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
      * 
+     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getProject(GetProjectArgs args) { - return getProject(args, InvokeOptions.Empty); - } - /** - * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided, - * then this data source returns the default project. - * - * ## Example Usage + * ### Create a Kubernetes cluster using the most recent version available * * <!--Start PulumiCodeChooser --> *
@@ -7807,7 +8268,10 @@ public static Output getProject(GetProjectArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7821,10 +8285,17 @@ public static Output getProject(GetProjectArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var default = DigitaloceanFunctions.getProject();
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
      * 
-     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
-     *             .name("My Staging Project")
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -7833,15 +8304,7 @@ public static Output getProject(GetProjectArgs args) {
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getProjectPlain(GetProjectPlainArgs args) { - return getProjectPlain(args, InvokeOptions.Empty); - } - /** - * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided, - * then this data source returns the default project. - * - * ## Example Usage + * ### Pin a Kubernetes cluster to a specific minor version * * <!--Start PulumiCodeChooser --> *
@@ -7852,7 +8315,10 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7866,10 +8332,19 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var default = DigitaloceanFunctions.getProject();
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
+     *             .versionPrefix("1.22.")
+     *             .build());
      * 
-     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
-     *             .name("My Staging Project")
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -7879,15 +8354,16 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getProject(GetProjectArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getProject:getProject", TypeShape.of(GetProjectResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getKubernetesVersionsPlain() {
+        return getKubernetesVersionsPlain(GetKubernetesVersionsPlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided,
-     * then this data source returns the default project.
+     * Provides access to the available DigitalOcean Kubernetes Service versions.
      * 
      * ## Example Usage
      * 
+     * ### Output a list of all available versions
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -7897,7 +8373,7 @@ public static Output getProject(GetProjectArgs args, InvokeOpt
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7911,36 +8387,16 @@ public static Output getProject(GetProjectArgs args, InvokeOpt
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var default = DigitaloceanFunctions.getProject();
-     * 
-     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
-     *             .name("My Staging Project")
-     *             .build());
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
      * 
+     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getProjectPlain(GetProjectPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("digitalocean:index/getProject:getProject", TypeShape.of(GetProjectResult.class), args, Utilities.withVersion(options)); - } - /** - * Retrieve information about all DigitalOcean projects associated with an account, with - * the ability to filter and sort the results. If no filters are specified, all projects - * will be returned. - * - * Note: You can use the `digitalocean.Project` data source to - * obtain metadata about a single project if you already know the `id` to retrieve or the unique - * `name` of the project. - * - * ## Example Usage - * - * Use the `filter` block with a `key` string and `values` list to filter projects. - * - * For example to find all staging environment projects: + * ### Create a Kubernetes cluster using the most recent version available * * <!--Start PulumiCodeChooser --> *
@@ -7951,7 +8407,10 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -7965,10 +8424,16 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(GetProjectsFilterArgs.builder()
-     *                 .key("environment")
-     *                 .values("Staging")
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     * 
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
      *                 .build())
      *             .build());
      * 
@@ -7978,7 +8443,7 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * ### Pin a Kubernetes cluster to a specific minor version * * <!--Start PulumiCodeChooser --> *
@@ -7989,7 +8454,10 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8003,19 +8471,18 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(            
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("environment")
-     *                     .values("Production")
-     *                     .build(),
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("is_default")
-     *                     .values("false")
-     *                     .build())
-     *             .sorts(GetProjectsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("asc")
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
+     *             .versionPrefix("1.22.")
+     *             .build());
+     * 
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
      *                 .build())
      *             .build());
      * 
@@ -8026,23 +8493,15 @@ public static CompletableFuture getProjectPlain(GetProjectPlai
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getProjects() {
-        return getProjects(GetProjectsArgs.Empty, InvokeOptions.Empty);
+    public static Output getKubernetesVersions(GetKubernetesVersionsArgs args) {
+        return getKubernetesVersions(args, InvokeOptions.Empty);
     }
     /**
-     * Retrieve information about all DigitalOcean projects associated with an account, with
-     * the ability to filter and sort the results. If no filters are specified, all projects
-     * will be returned.
-     * 
-     * Note: You can use the `digitalocean.Project` data source to
-     * obtain metadata about a single project if you already know the `id` to retrieve or the unique
-     * `name` of the project.
+     * Provides access to the available DigitalOcean Kubernetes Service versions.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter projects.
-     * 
-     * For example to find all staging environment projects:
+     * ### Output a list of all available versions
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -8053,7 +8512,7 @@ public static Output getProjects() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8067,20 +8526,16 @@ public static Output getProjects() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(GetProjectsFilterArgs.builder()
-     *                 .key("environment")
-     *                 .values("Staging")
-     *                 .build())
-     *             .build());
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
      * 
+     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * ### Create a Kubernetes cluster using the most recent version available * * <!--Start PulumiCodeChooser --> *
@@ -8091,7 +8546,10 @@ public static Output getProjects() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8105,19 +8563,16 @@ public static Output getProjects() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(            
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("environment")
-     *                     .values("Production")
-     *                     .build(),
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("is_default")
-     *                     .values("false")
-     *                     .build())
-     *             .sorts(GetProjectsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("asc")
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     * 
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
      *                 .build())
      *             .build());
      * 
@@ -8127,24 +8582,7 @@ public static Output getProjects() {
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getProjectsPlain() { - return getProjectsPlain(GetProjectsPlainArgs.Empty, InvokeOptions.Empty); - } - /** - * Retrieve information about all DigitalOcean projects associated with an account, with - * the ability to filter and sort the results. If no filters are specified, all projects - * will be returned. - * - * Note: You can use the `digitalocean.Project` data source to - * obtain metadata about a single project if you already know the `id` to retrieve or the unique - * `name` of the project. - * - * ## Example Usage - * - * Use the `filter` block with a `key` string and `values` list to filter projects. - * - * For example to find all staging environment projects: + * ### Pin a Kubernetes cluster to a specific minor version * * <!--Start PulumiCodeChooser --> *
@@ -8155,7 +8593,10 @@ public static CompletableFuture getProjectsPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8169,10 +8610,18 @@ public static CompletableFuture getProjectsPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(GetProjectsFilterArgs.builder()
-     *                 .key("environment")
-     *                 .values("Staging")
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
+     *             .versionPrefix("1.22.")
+     *             .build());
+     * 
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
      *                 .build())
      *             .build());
      * 
@@ -8182,7 +8631,16 @@ public static CompletableFuture getProjectsPlain() {
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + */ + public static CompletableFuture getKubernetesVersionsPlain(GetKubernetesVersionsPlainArgs args) { + return getKubernetesVersionsPlain(args, InvokeOptions.Empty); + } + /** + * Provides access to the available DigitalOcean Kubernetes Service versions. + * + * ## Example Usage + * + * ### Output a list of all available versions * * <!--Start PulumiCodeChooser --> *
@@ -8193,7 +8651,7 @@ public static CompletableFuture getProjectsPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8207,46 +8665,16 @@ public static CompletableFuture getProjectsPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(            
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("environment")
-     *                     .values("Production")
-     *                     .build(),
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("is_default")
-     *                     .values("false")
-     *                     .build())
-     *             .sorts(GetProjectsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("asc")
-     *                 .build())
-     *             .build());
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
      * 
+     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getProjects(GetProjectsArgs args) { - return getProjects(args, InvokeOptions.Empty); - } - /** - * Retrieve information about all DigitalOcean projects associated with an account, with - * the ability to filter and sort the results. If no filters are specified, all projects - * will be returned. - * - * Note: You can use the `digitalocean.Project` data source to - * obtain metadata about a single project if you already know the `id` to retrieve or the unique - * `name` of the project. - * - * ## Example Usage - * - * Use the `filter` block with a `key` string and `values` list to filter projects. - * - * For example to find all staging environment projects: + * ### Create a Kubernetes cluster using the most recent version available * * <!--Start PulumiCodeChooser --> *
@@ -8257,7 +8685,10 @@ public static Output getProjects(GetProjectsArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8271,10 +8702,16 @@ public static Output getProjects(GetProjectsArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(GetProjectsFilterArgs.builder()
-     *                 .key("environment")
-     *                 .values("Staging")
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     * 
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
      *                 .build())
      *             .build());
      * 
@@ -8284,7 +8721,7 @@ public static Output getProjects(GetProjectsArgs args) {
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * ### Pin a Kubernetes cluster to a specific minor version * * <!--Start PulumiCodeChooser --> *
@@ -8295,7 +8732,10 @@ public static Output getProjects(GetProjectsArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8309,19 +8749,18 @@ public static Output getProjects(GetProjectsArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(            
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("environment")
-     *                     .values("Production")
-     *                     .build(),
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("is_default")
-     *                     .values("false")
-     *                     .build())
-     *             .sorts(GetProjectsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("asc")
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
+     *             .versionPrefix("1.22.")
+     *             .build());
+     * 
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
      *                 .build())
      *             .build());
      * 
@@ -8332,23 +8771,15 @@ public static Output getProjects(GetProjectsArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getProjectsPlain(GetProjectsPlainArgs args) {
-        return getProjectsPlain(args, InvokeOptions.Empty);
+    public static Output getKubernetesVersions(GetKubernetesVersionsArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getKubernetesVersions:getKubernetesVersions", TypeShape.of(GetKubernetesVersionsResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Retrieve information about all DigitalOcean projects associated with an account, with
-     * the ability to filter and sort the results. If no filters are specified, all projects
-     * will be returned.
-     * 
-     * Note: You can use the `digitalocean.Project` data source to
-     * obtain metadata about a single project if you already know the `id` to retrieve or the unique
-     * `name` of the project.
+     * Provides access to the available DigitalOcean Kubernetes Service versions.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter projects.
-     * 
-     * For example to find all staging environment projects:
+     * ### Output a list of all available versions
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -8359,7 +8790,7 @@ public static CompletableFuture getProjectsPlain(GetProjectsP
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8373,20 +8804,16 @@ public static CompletableFuture getProjectsPlain(GetProjectsP
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(GetProjectsFilterArgs.builder()
-     *                 .key("environment")
-     *                 .values("Staging")
-     *                 .build())
-     *             .build());
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
      * 
+     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * ### Create a Kubernetes cluster using the most recent version available * * <!--Start PulumiCodeChooser --> *
@@ -8397,7 +8824,10 @@ public static CompletableFuture getProjectsPlain(GetProjectsP
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8411,19 +8841,16 @@ public static CompletableFuture getProjectsPlain(GetProjectsP
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(            
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("environment")
-     *                     .values("Production")
-     *                     .build(),
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("is_default")
-     *                     .values("false")
-     *                     .build())
-     *             .sorts(GetProjectsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("asc")
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     * 
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
      *                 .build())
      *             .build());
      * 
@@ -8433,24 +8860,7 @@ public static CompletableFuture getProjectsPlain(GetProjectsP
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getProjects(GetProjectsArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getProjects:getProjects", TypeShape.of(GetProjectsResult.class), args, Utilities.withVersion(options)); - } - /** - * Retrieve information about all DigitalOcean projects associated with an account, with - * the ability to filter and sort the results. If no filters are specified, all projects - * will be returned. - * - * Note: You can use the `digitalocean.Project` data source to - * obtain metadata about a single project if you already know the `id` to retrieve or the unique - * `name` of the project. - * - * ## Example Usage - * - * Use the `filter` block with a `key` string and `values` list to filter projects. - * - * For example to find all staging environment projects: + * ### Pin a Kubernetes cluster to a specific minor version * * <!--Start PulumiCodeChooser --> *
@@ -8461,7 +8871,10 @@ public static Output getProjects(GetProjectsArgs args, Invoke
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8475,10 +8888,18 @@ public static Output getProjects(GetProjectsArgs args, Invoke
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(GetProjectsFilterArgs.builder()
-     *                 .key("environment")
-     *                 .values("Staging")
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
+     *             .versionPrefix("1.22.")
+     *             .build());
+     * 
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
      *                 .build())
      *             .build());
      * 
@@ -8488,7 +8909,16 @@ public static Output getProjects(GetProjectsArgs args, Invoke
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + */ + public static Output getKubernetesVersions(GetKubernetesVersionsArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getKubernetesVersions:getKubernetesVersions", TypeShape.of(GetKubernetesVersionsResult.class), args, Utilities.withVersion(options)); + } + /** + * Provides access to the available DigitalOcean Kubernetes Service versions. + * + * ## Example Usage + * + * ### Output a list of all available versions * * <!--Start PulumiCodeChooser --> *
@@ -8499,7 +8929,7 @@ public static Output getProjects(GetProjectsArgs args, Invoke
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8513,43 +8943,16 @@ public static Output getProjects(GetProjectsArgs args, Invoke
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
-     *             .filters(            
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("environment")
-     *                     .values("Production")
-     *                     .build(),
-     *                 GetProjectsFilterArgs.builder()
-     *                     .key("is_default")
-     *                     .values("false")
-     *                     .build())
-     *             .sorts(GetProjectsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("asc")
-     *                 .build())
-     *             .build());
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
      * 
+     *         ctx.export("k8s-versions", example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.validVersions()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static CompletableFuture getProjectsPlain(GetProjectsPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("digitalocean:index/getProjects:getProjects", TypeShape.of(GetProjectsResult.class), args, Utilities.withVersion(options)); - } - /** - * Get information on a DNS record. This data source provides the name, TTL, and zone - * file as configured on your DigitalOcean account. This is useful if the record - * in question is not managed by the provider. - * - * An error is triggered if the provided domain name or record are not managed with - * your DigitalOcean account. - * - * ## Example Usage - * - * Get data from a DNS record: + * ### Create a Kubernetes cluster using the most recent version available * * <!--Start PulumiCodeChooser --> *
@@ -8560,7 +8963,10 @@ public static CompletableFuture getProjectsPlain(GetProjectsP
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRecordArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8574,45 +8980,40 @@ public static CompletableFuture getProjectsPlain(GetProjectsP
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getRecord(GetRecordArgs.builder()
-     *             .domain("example.com")
-     *             .name("test")
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions();
+     * 
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("recordType", example.applyValue(getRecordResult -> getRecordResult.type()));
-     *         ctx.export("recordTtl", example.applyValue(getRecordResult -> getRecordResult.ttl()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getRecord(GetRecordArgs args) { - return getRecord(args, InvokeOptions.Empty); - } - /** - * Get information on a DNS record. This data source provides the name, TTL, and zone - * file as configured on your DigitalOcean account. This is useful if the record - * in question is not managed by the provider. + * ### Pin a Kubernetes cluster to a specific minor version * - * An error is triggered if the provided domain name or record are not managed with - * your DigitalOcean account. - * - * ## Example Usage - * - * Get data from a DNS record: - * - * <!--Start PulumiCodeChooser --> - *
-     * {@code
-     * package generated_program;
+     * <!--Start PulumiCodeChooser -->
+     * 
+     * {@code
+     * package generated_program;
      * 
      * import com.pulumi.Context;
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRecordArgs;
+     * import com.pulumi.digitalocean.inputs.GetKubernetesVersionsArgs;
+     * import com.pulumi.digitalocean.KubernetesCluster;
+     * import com.pulumi.digitalocean.KubernetesClusterArgs;
+     * import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8626,13 +9027,21 @@ public static Output getRecord(GetRecordArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getRecord(GetRecordArgs.builder()
-     *             .domain("example.com")
-     *             .name("test")
+     *         final var example = DigitaloceanFunctions.getKubernetesVersions(GetKubernetesVersionsArgs.builder()
+     *             .versionPrefix("1.22.")
+     *             .build());
+     * 
+     *         var example_cluster = new KubernetesCluster("example-cluster", KubernetesClusterArgs.builder()
+     *             .name("example-cluster")
+     *             .region("lon1")
+     *             .version(example.applyValue(getKubernetesVersionsResult -> getKubernetesVersionsResult.latestVersion()))
+     *             .nodePool(KubernetesClusterNodePoolArgs.builder()
+     *                 .name("default")
+     *                 .size("s-1vcpu-2gb")
+     *                 .nodeCount(3)
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("recordType", example.applyValue(getRecordResult -> getRecordResult.type()));
-     *         ctx.export("recordTtl", example.applyValue(getRecordResult -> getRecordResult.ttl()));
      *     }
      * }
      * }
@@ -8640,20 +9049,20 @@ public static Output getRecord(GetRecordArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRecordPlain(GetRecordPlainArgs args) {
-        return getRecordPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getKubernetesVersionsPlain(GetKubernetesVersionsPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getKubernetesVersions:getKubernetesVersions", TypeShape.of(GetKubernetesVersionsResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on a DNS record. This data source provides the name, TTL, and zone
-     * file as configured on your DigitalOcean account. This is useful if the record
-     * in question is not managed by the provider.
+     * Get information on a load balancer for use in other resources. This data source
+     * provides all of the load balancers properties as configured on your DigitalOcean
+     * account. This is useful if the load balancer in question is not managed by
+     * the provider or you need to utilize any of the load balancers data.
      * 
-     * An error is triggered if the provided domain name or record are not managed with
-     * your DigitalOcean account.
+     * An error is triggered if the provided load balancer name does not exist.
      * 
      * ## Example Usage
      * 
-     * Get data from a DNS record:
+     * Get the load balancer by name:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -8664,7 +9073,7 @@ public static CompletableFuture getRecordPlain(GetRecordPlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRecordArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8678,34 +9087,18 @@ public static CompletableFuture getRecordPlain(GetRecordPlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getRecord(GetRecordArgs.builder()
-     *             .domain("example.com")
-     *             .name("test")
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .name("app")
      *             .build());
      * 
-     *         ctx.export("recordType", example.applyValue(getRecordResult -> getRecordResult.type()));
-     *         ctx.export("recordTtl", example.applyValue(getRecordResult -> getRecordResult.ttl()));
+     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getRecord(GetRecordArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getRecord:getRecord", TypeShape.of(GetRecordResult.class), args, Utilities.withVersion(options)); - } - /** - * Get information on a DNS record. This data source provides the name, TTL, and zone - * file as configured on your DigitalOcean account. This is useful if the record - * in question is not managed by the provider. - * - * An error is triggered if the provided domain name or record are not managed with - * your DigitalOcean account. - * - * ## Example Usage - * - * Get data from a DNS record: + * Get the load balancer by ID: * * <!--Start PulumiCodeChooser --> *
@@ -8716,7 +9109,7 @@ public static Output getRecord(GetRecordArgs args, InvokeOption
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRecordArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8730,13 +9123,10 @@ public static Output getRecord(GetRecordArgs args, InvokeOption
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getRecord(GetRecordArgs.builder()
-     *             .domain("example.com")
-     *             .name("test")
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .id("loadbalancer_id")
      *             .build());
      * 
-     *         ctx.export("recordType", example.applyValue(getRecordResult -> getRecordResult.type()));
-     *         ctx.export("recordTtl", example.applyValue(getRecordResult -> getRecordResult.ttl()));
      *     }
      * }
      * }
@@ -8744,16 +9134,20 @@ public static Output getRecord(GetRecordArgs args, InvokeOption
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRecordPlain(GetRecordPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getRecord:getRecord", TypeShape.of(GetRecordResult.class), args, Utilities.withVersion(options));
+    public static Output getLoadBalancer() {
+        return getLoadBalancer(GetLoadBalancerArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Retrieve information about all DNS records within a domain, with the ability to filter and sort the results.
-     * If no filters are specified, all records will be returned.
+     * Get information on a load balancer for use in other resources. This data source
+     * provides all of the load balancers properties as configured on your DigitalOcean
+     * account. This is useful if the load balancer in question is not managed by
+     * the provider or you need to utilize any of the load balancers data.
+     * 
+     * An error is triggered if the provided load balancer name does not exist.
      * 
      * ## Example Usage
      * 
-     * Get data for all MX records in a domain:
+     * Get the load balancer by name:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -8764,7 +9158,7 @@ public static CompletableFuture getRecordPlain(GetRecordPlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRecordsArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8778,35 +9172,18 @@ public static CompletableFuture getRecordPlain(GetRecordPlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getRecords(GetRecordsArgs.builder()
-     *             .domain("example.com")
-     *             .filters(GetRecordsFilterArgs.builder()
-     *                 .key("type")
-     *                 .values("MX")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .name("app")
      *             .build());
      * 
-     *         ctx.export("mailServers", StdFunctions.join(JoinArgs.builder()
-     *             .separator(",")
-     *             .input(example.applyValue(getRecordsResult -> getRecordsResult.records()).stream().map(element -> element.value()).collect(toList()))
-     *             .build()).result());
+     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getRecords(GetRecordsArgs args) { - return getRecords(args, InvokeOptions.Empty); - } - /** - * Retrieve information about all DNS records within a domain, with the ability to filter and sort the results. - * If no filters are specified, all records will be returned. - * - * ## Example Usage - * - * Get data for all MX records in a domain: + * Get the load balancer by ID: * * <!--Start PulumiCodeChooser --> *
@@ -8817,7 +9194,7 @@ public static Output getRecords(GetRecordsArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRecordsArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8831,18 +9208,10 @@ public static Output getRecords(GetRecordsArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getRecords(GetRecordsArgs.builder()
-     *             .domain("example.com")
-     *             .filters(GetRecordsFilterArgs.builder()
-     *                 .key("type")
-     *                 .values("MX")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .id("loadbalancer_id")
      *             .build());
      * 
-     *         ctx.export("mailServers", StdFunctions.join(JoinArgs.builder()
-     *             .separator(",")
-     *             .input(example.applyValue(getRecordsResult -> getRecordsResult.records()).stream().map(element -> element.value()).collect(toList()))
-     *             .build()).result());
      *     }
      * }
      * }
@@ -8850,16 +9219,20 @@ public static Output getRecords(GetRecordsArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRecordsPlain(GetRecordsPlainArgs args) {
-        return getRecordsPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getLoadBalancerPlain() {
+        return getLoadBalancerPlain(GetLoadBalancerPlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Retrieve information about all DNS records within a domain, with the ability to filter and sort the results.
-     * If no filters are specified, all records will be returned.
+     * Get information on a load balancer for use in other resources. This data source
+     * provides all of the load balancers properties as configured on your DigitalOcean
+     * account. This is useful if the load balancer in question is not managed by
+     * the provider or you need to utilize any of the load balancers data.
+     * 
+     * An error is triggered if the provided load balancer name does not exist.
      * 
      * ## Example Usage
      * 
-     * Get data for all MX records in a domain:
+     * Get the load balancer by name:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -8870,7 +9243,7 @@ public static CompletableFuture getRecordsPlain(GetRecordsPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRecordsArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8884,35 +9257,18 @@ public static CompletableFuture getRecordsPlain(GetRecordsPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getRecords(GetRecordsArgs.builder()
-     *             .domain("example.com")
-     *             .filters(GetRecordsFilterArgs.builder()
-     *                 .key("type")
-     *                 .values("MX")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .name("app")
      *             .build());
      * 
-     *         ctx.export("mailServers", StdFunctions.join(JoinArgs.builder()
-     *             .separator(",")
-     *             .input(example.applyValue(getRecordsResult -> getRecordsResult.records()).stream().map(element -> element.value()).collect(toList()))
-     *             .build()).result());
+     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getRecords(GetRecordsArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getRecords:getRecords", TypeShape.of(GetRecordsResult.class), args, Utilities.withVersion(options)); - } - /** - * Retrieve information about all DNS records within a domain, with the ability to filter and sort the results. - * If no filters are specified, all records will be returned. - * - * ## Example Usage - * - * Get data for all MX records in a domain: + * Get the load balancer by ID: * * <!--Start PulumiCodeChooser --> *
@@ -8923,7 +9279,7 @@ public static Output getRecords(GetRecordsArgs args, InvokeOpt
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRecordsArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8937,18 +9293,10 @@ public static Output getRecords(GetRecordsArgs args, InvokeOpt
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getRecords(GetRecordsArgs.builder()
-     *             .domain("example.com")
-     *             .filters(GetRecordsFilterArgs.builder()
-     *                 .key("type")
-     *                 .values("MX")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .id("loadbalancer_id")
      *             .build());
      * 
-     *         ctx.export("mailServers", StdFunctions.join(JoinArgs.builder()
-     *             .separator(",")
-     *             .input(example.applyValue(getRecordsResult -> getRecordsResult.records()).stream().map(element -> element.value()).collect(toList()))
-     *             .build()).result());
      *     }
      * }
      * }
@@ -8956,15 +9304,21 @@ public static Output getRecords(GetRecordsArgs args, InvokeOpt
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRecordsPlain(GetRecordsPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getRecords:getRecords", TypeShape.of(GetRecordsResult.class), args, Utilities.withVersion(options));
+    public static Output getLoadBalancer(GetLoadBalancerArgs args) {
+        return getLoadBalancer(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on a single DigitalOcean region. This is useful to find out
-     * what Droplet sizes and features are supported within a region.
+     * Get information on a load balancer for use in other resources. This data source
+     * provides all of the load balancers properties as configured on your DigitalOcean
+     * account. This is useful if the load balancer in question is not managed by
+     * the provider or you need to utilize any of the load balancers data.
+     * 
+     * An error is triggered if the provided load balancer name does not exist.
      * 
      * ## Example Usage
      * 
+     * Get the load balancer by name:
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -8974,7 +9328,7 @@ public static CompletableFuture getRecordsPlain(GetRecordsPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -8988,26 +9342,18 @@ public static CompletableFuture getRecordsPlain(GetRecordsPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var sfo2 = DigitaloceanFunctions.getRegion(GetRegionArgs.builder()
-     *             .slug("sfo2")
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .name("app")
      *             .build());
      * 
-     *         ctx.export("regionName", sfo2.applyValue(getRegionResult -> getRegionResult.name()));
+     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getRegion(GetRegionArgs args) { - return getRegion(args, InvokeOptions.Empty); - } - /** - * Get information on a single DigitalOcean region. This is useful to find out - * what Droplet sizes and features are supported within a region. - * - * ## Example Usage + * Get the load balancer by ID: * * <!--Start PulumiCodeChooser --> *
@@ -9018,7 +9364,7 @@ public static Output getRegion(GetRegionArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9032,11 +9378,10 @@ public static Output getRegion(GetRegionArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var sfo2 = DigitaloceanFunctions.getRegion(GetRegionArgs.builder()
-     *             .slug("sfo2")
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .id("loadbalancer_id")
      *             .build());
      * 
-     *         ctx.export("regionName", sfo2.applyValue(getRegionResult -> getRegionResult.name()));
      *     }
      * }
      * }
@@ -9044,15 +9389,21 @@ public static Output getRegion(GetRegionArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRegionPlain(GetRegionPlainArgs args) {
-        return getRegionPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getLoadBalancerPlain(GetLoadBalancerPlainArgs args) {
+        return getLoadBalancerPlain(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on a single DigitalOcean region. This is useful to find out
-     * what Droplet sizes and features are supported within a region.
+     * Get information on a load balancer for use in other resources. This data source
+     * provides all of the load balancers properties as configured on your DigitalOcean
+     * account. This is useful if the load balancer in question is not managed by
+     * the provider or you need to utilize any of the load balancers data.
+     * 
+     * An error is triggered if the provided load balancer name does not exist.
      * 
      * ## Example Usage
      * 
+     * Get the load balancer by name:
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -9062,7 +9413,7 @@ public static CompletableFuture getRegionPlain(GetRegionPlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9076,26 +9427,18 @@ public static CompletableFuture getRegionPlain(GetRegionPlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var sfo2 = DigitaloceanFunctions.getRegion(GetRegionArgs.builder()
-     *             .slug("sfo2")
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .name("app")
      *             .build());
      * 
-     *         ctx.export("regionName", sfo2.applyValue(getRegionResult -> getRegionResult.name()));
+     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getRegion(GetRegionArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getRegion:getRegion", TypeShape.of(GetRegionResult.class), args, Utilities.withVersion(options)); - } - /** - * Get information on a single DigitalOcean region. This is useful to find out - * what Droplet sizes and features are supported within a region. - * - * ## Example Usage + * Get the load balancer by ID: * * <!--Start PulumiCodeChooser --> *
@@ -9106,7 +9449,7 @@ public static Output getRegion(GetRegionArgs args, InvokeOption
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9120,11 +9463,10 @@ public static Output getRegion(GetRegionArgs args, InvokeOption
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var sfo2 = DigitaloceanFunctions.getRegion(GetRegionArgs.builder()
-     *             .slug("sfo2")
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .id("loadbalancer_id")
      *             .build());
      * 
-     *         ctx.export("regionName", sfo2.applyValue(getRegionResult -> getRegionResult.name()));
      *     }
      * }
      * }
@@ -9132,21 +9474,20 @@ public static Output getRegion(GetRegionArgs args, InvokeOption
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRegionPlain(GetRegionPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getRegion:getRegion", TypeShape.of(GetRegionResult.class), args, Utilities.withVersion(options));
+    public static Output getLoadBalancer(GetLoadBalancerArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getLoadBalancer:getLoadBalancer", TypeShape.of(GetLoadBalancerResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Retrieve information about all supported DigitalOcean regions, with the ability to
-     * filter and sort the results. If no filters are specified, all regions will be returned.
+     * Get information on a load balancer for use in other resources. This data source
+     * provides all of the load balancers properties as configured on your DigitalOcean
+     * account. This is useful if the load balancer in question is not managed by
+     * the provider or you need to utilize any of the load balancers data.
      * 
-     * Note: You can use the `digitalocean.getRegion` data source
-     * to obtain metadata about a single region if you already know the `slug` to retrieve.
+     * An error is triggered if the provided load balancer name does not exist.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter regions.
-     * 
-     * For example to find all available regions:
+     * Get the load balancer by name:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -9157,7 +9498,7 @@ public static CompletableFuture getRegionPlain(GetRegionPlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9171,20 +9512,18 @@ public static CompletableFuture getRegionPlain(GetRegionPlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
-     *             .filters(GetRegionsFilterArgs.builder()
-     *                 .key("available")
-     *                 .values("true")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .name("app")
      *             .build());
      * 
+     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * Get the load balancer by ID: * * <!--Start PulumiCodeChooser --> *
@@ -9195,7 +9534,7 @@ public static CompletableFuture getRegionPlain(GetRegionPlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9209,20 +9548,8 @@ public static CompletableFuture getRegionPlain(GetRegionPlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
-     *             .filters(            
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("available")
-     *                     .values("true")
-     *                     .build(),
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("features")
-     *                     .values("private_networking")
-     *                     .build())
-     *             .sorts(GetRegionsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .id("loadbalancer_id")
      *             .build());
      * 
      *     }
@@ -9232,21 +9559,20 @@ public static CompletableFuture getRegionPlain(GetRegionPlainAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getRegions() {
-        return getRegions(GetRegionsArgs.Empty, InvokeOptions.Empty);
+    public static Output getLoadBalancer(GetLoadBalancerArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getLoadBalancer:getLoadBalancer", TypeShape.of(GetLoadBalancerResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Retrieve information about all supported DigitalOcean regions, with the ability to
-     * filter and sort the results. If no filters are specified, all regions will be returned.
+     * Get information on a load balancer for use in other resources. This data source
+     * provides all of the load balancers properties as configured on your DigitalOcean
+     * account. This is useful if the load balancer in question is not managed by
+     * the provider or you need to utilize any of the load balancers data.
      * 
-     * Note: You can use the `digitalocean.getRegion` data source
-     * to obtain metadata about a single region if you already know the `slug` to retrieve.
+     * An error is triggered if the provided load balancer name does not exist.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter regions.
-     * 
-     * For example to find all available regions:
+     * Get the load balancer by name:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -9257,7 +9583,7 @@ public static Output getRegions() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9271,20 +9597,18 @@ public static Output getRegions() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
-     *             .filters(GetRegionsFilterArgs.builder()
-     *                 .key("available")
-     *                 .values("true")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .name("app")
      *             .build());
      * 
+     *         ctx.export("lbOutput", example.applyValue(getLoadBalancerResult -> getLoadBalancerResult.ip()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + * Get the load balancer by ID: * * <!--Start PulumiCodeChooser --> *
@@ -9295,7 +9619,7 @@ public static Output getRegions() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetLoadBalancerArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9309,20 +9633,8 @@ public static Output getRegions() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
-     *             .filters(            
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("available")
-     *                     .values("true")
-     *                     .build(),
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("features")
-     *                     .values("private_networking")
-     *                     .build())
-     *             .sorts(GetRegionsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()
+     *             .id("loadbalancer_id")
      *             .build());
      * 
      *     }
@@ -9332,22 +9644,15 @@ public static Output getRegions() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRegionsPlain() {
-        return getRegionsPlain(GetRegionsPlainArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getLoadBalancerPlain(GetLoadBalancerPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getLoadBalancer:getLoadBalancer", TypeShape.of(GetLoadBalancerResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Retrieve information about all supported DigitalOcean regions, with the ability to
-     * filter and sort the results. If no filters are specified, all regions will be returned.
-     * 
-     * Note: You can use the `digitalocean.getRegion` data source
-     * to obtain metadata about a single region if you already know the `slug` to retrieve.
+     * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided,
+     * then this data source returns the default project.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter regions.
-     * 
-     * For example to find all available regions:
-     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -9357,7 +9662,7 @@ public static CompletableFuture getRegionsPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9371,11 +9676,10 @@ public static CompletableFuture getRegionsPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
-     *             .filters(GetRegionsFilterArgs.builder()
-     *                 .key("available")
-     *                 .values("true")
-     *                 .build())
+     *         final var default = DigitaloceanFunctions.getProject();
+     * 
+     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
+     *             .name("My Staging Project")
      *             .build());
      * 
      *     }
@@ -9384,7 +9688,15 @@ public static CompletableFuture getRegionsPlain() {
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + */ + public static Output getProject() { + return getProject(GetProjectArgs.Empty, InvokeOptions.Empty); + } + /** + * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided, + * then this data source returns the default project. + * + * ## Example Usage * * <!--Start PulumiCodeChooser --> *
@@ -9395,7 +9707,7 @@ public static CompletableFuture getRegionsPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9409,20 +9721,10 @@ public static CompletableFuture getRegionsPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
-     *             .filters(            
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("available")
-     *                     .values("true")
-     *                     .build(),
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("features")
-     *                     .values("private_networking")
-     *                     .build())
-     *             .sorts(GetRegionsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var default = DigitaloceanFunctions.getProject();
+     * 
+     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
+     *             .name("My Staging Project")
      *             .build());
      * 
      *     }
@@ -9432,22 +9734,15 @@ public static CompletableFuture getRegionsPlain() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getRegions(GetRegionsArgs args) {
-        return getRegions(args, InvokeOptions.Empty);
+    public static CompletableFuture getProjectPlain() {
+        return getProjectPlain(GetProjectPlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Retrieve information about all supported DigitalOcean regions, with the ability to
-     * filter and sort the results. If no filters are specified, all regions will be returned.
-     * 
-     * Note: You can use the `digitalocean.getRegion` data source
-     * to obtain metadata about a single region if you already know the `slug` to retrieve.
+     * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided,
+     * then this data source returns the default project.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter regions.
-     * 
-     * For example to find all available regions:
-     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -9457,7 +9752,7 @@ public static Output getRegions(GetRegionsArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9471,11 +9766,10 @@ public static Output getRegions(GetRegionsArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
-     *             .filters(GetRegionsFilterArgs.builder()
-     *                 .key("available")
-     *                 .values("true")
-     *                 .build())
+     *         final var default = DigitaloceanFunctions.getProject();
+     * 
+     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
+     *             .name("My Staging Project")
      *             .build());
      * 
      *     }
@@ -9484,7 +9778,15 @@ public static Output getRegions(GetRegionsArgs args) {
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + */ + public static Output getProject(GetProjectArgs args) { + return getProject(args, InvokeOptions.Empty); + } + /** + * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided, + * then this data source returns the default project. + * + * ## Example Usage * * <!--Start PulumiCodeChooser --> *
@@ -9495,7 +9797,7 @@ public static Output getRegions(GetRegionsArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9509,20 +9811,10 @@ public static Output getRegions(GetRegionsArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
-     *             .filters(            
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("available")
-     *                     .values("true")
-     *                     .build(),
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("features")
-     *                     .values("private_networking")
-     *                     .build())
-     *             .sorts(GetRegionsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var default = DigitaloceanFunctions.getProject();
+     * 
+     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
+     *             .name("My Staging Project")
      *             .build());
      * 
      *     }
@@ -9532,22 +9824,15 @@ public static Output getRegions(GetRegionsArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRegionsPlain(GetRegionsPlainArgs args) {
-        return getRegionsPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getProjectPlain(GetProjectPlainArgs args) {
+        return getProjectPlain(args, InvokeOptions.Empty);
     }
     /**
-     * Retrieve information about all supported DigitalOcean regions, with the ability to
-     * filter and sort the results. If no filters are specified, all regions will be returned.
-     * 
-     * Note: You can use the `digitalocean.getRegion` data source
-     * to obtain metadata about a single region if you already know the `slug` to retrieve.
+     * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided,
+     * then this data source returns the default project.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter regions.
-     * 
-     * For example to find all available regions:
-     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -9557,7 +9842,7 @@ public static CompletableFuture getRegionsPlain(GetRegionsPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9571,11 +9856,10 @@ public static CompletableFuture getRegionsPlain(GetRegionsPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
-     *             .filters(GetRegionsFilterArgs.builder()
-     *                 .key("available")
-     *                 .values("true")
-     *                 .build())
+     *         final var default = DigitaloceanFunctions.getProject();
+     * 
+     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
+     *             .name("My Staging Project")
      *             .build());
      * 
      *     }
@@ -9584,7 +9868,15 @@ public static CompletableFuture getRegionsPlain(GetRegionsPlai
      * 
* <!--End PulumiCodeChooser --> * - * You can filter on multiple fields and sort the results as well: + */ + public static Output getProject(GetProjectArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getProject:getProject", TypeShape.of(GetProjectResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided, + * then this data source returns the default project. + * + * ## Example Usage * * <!--Start PulumiCodeChooser --> *
@@ -9595,7 +9887,7 @@ public static CompletableFuture getRegionsPlain(GetRegionsPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9609,20 +9901,10 @@ public static CompletableFuture getRegionsPlain(GetRegionsPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
-     *             .filters(            
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("available")
-     *                     .values("true")
-     *                     .build(),
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("features")
-     *                     .values("private_networking")
-     *                     .build())
-     *             .sorts(GetRegionsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var default = DigitaloceanFunctions.getProject();
+     * 
+     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
+     *             .name("My Staging Project")
      *             .build());
      * 
      *     }
@@ -9632,21 +9914,68 @@ public static CompletableFuture getRegionsPlain(GetRegionsPlai
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getRegions(GetRegionsArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getRegions:getRegions", TypeShape.of(GetRegionsResult.class), args, Utilities.withVersion(options));
+    public static Output getProject(GetProjectArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getProject:getProject", TypeShape.of(GetProjectResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Retrieve information about all supported DigitalOcean regions, with the ability to
-     * filter and sort the results. If no filters are specified, all regions will be returned.
+     * Get information on a single DigitalOcean project. If neither the `id` nor `name` attributes are provided,
+     * then this data source returns the default project.
      * 
-     * Note: You can use the `digitalocean.getRegion` data source
-     * to obtain metadata about a single region if you already know the `slug` to retrieve.
+     * ## Example Usage
+     * 
+     * <!--Start PulumiCodeChooser -->
+     * 
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetProjectArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var default = DigitaloceanFunctions.getProject();
+     * 
+     *         final var staging = DigitaloceanFunctions.getProject(GetProjectArgs.builder()
+     *             .name("My Staging Project")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getProjectPlain(GetProjectPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getProject:getProject", TypeShape.of(GetProjectResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieve information about all DigitalOcean projects associated with an account, with + * the ability to filter and sort the results. If no filters are specified, all projects + * will be returned. + * + * Note: You can use the `digitalocean.Project` data source to + * obtain metadata about a single project if you already know the `id` to retrieve or the unique + * `name` of the project. * * ## Example Usage * - * Use the `filter` block with a `key` string and `values` list to filter regions. + * Use the `filter` block with a `key` string and `values` list to filter projects. * - * For example to find all available regions: + * For example to find all staging environment projects: * * <!--Start PulumiCodeChooser --> *
@@ -9657,7 +9986,7 @@ public static Output getRegions(GetRegionsArgs args, InvokeOpt
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9671,10 +10000,10 @@ public static Output getRegions(GetRegionsArgs args, InvokeOpt
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
-     *             .filters(GetRegionsFilterArgs.builder()
-     *                 .key("available")
-     *                 .values("true")
+     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(GetProjectsFilterArgs.builder()
+     *                 .key("environment")
+     *                 .values("Staging")
      *                 .build())
      *             .build());
      * 
@@ -9695,7 +10024,7 @@ public static Output getRegions(GetRegionsArgs args, InvokeOpt
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9709,19 +10038,19 @@ public static Output getRegions(GetRegionsArgs args, InvokeOpt
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
      *             .filters(            
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("available")
-     *                     .values("true")
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("environment")
+     *                     .values("Production")
      *                     .build(),
-     *                 GetRegionsFilterArgs.builder()
-     *                     .key("features")
-     *                     .values("private_networking")
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("is_default")
+     *                     .values("false")
      *                     .build())
-     *             .sorts(GetRegionsSortArgs.builder()
+     *             .sorts(GetProjectsSortArgs.builder()
      *                 .key("name")
-     *                 .direction("desc")
+     *                 .direction("asc")
      *                 .build())
      *             .build());
      * 
@@ -9732,13 +10061,23 @@ public static Output getRegions(GetRegionsArgs args, InvokeOpt
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getRegionsPlain(GetRegionsPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getRegions:getRegions", TypeShape.of(GetRegionsResult.class), args, Utilities.withVersion(options));
+    public static Output getProjects() {
+        return getProjects(GetProjectsArgs.Empty, InvokeOptions.Empty);
     }
     /**
+     * Retrieve information about all DigitalOcean projects associated with an account, with
+     * the ability to filter and sort the results. If no filters are specified, all projects
+     * will be returned.
+     * 
+     * Note: You can use the `digitalocean.Project` data source to
+     * obtain metadata about a single project if you already know the `id` to retrieve or the unique
+     * `name` of the project.
+     * 
      * ## Example Usage
      * 
-     * Get the reserved IP:
+     * Use the `filter` block with a `key` string and `values` list to filter projects.
+     * 
+     * For example to find all staging environment projects:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -9749,7 +10088,7 @@ public static CompletableFuture getRegionsPlain(GetRegionsPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetReservedIpArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9763,27 +10102,20 @@ public static CompletableFuture getRegionsPlain(GetRegionsPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var config = ctx.config();
-     *         final var publicIp = config.get("publicIp");
-     *         final var example = DigitaloceanFunctions.getReservedIp(GetReservedIpArgs.builder()
-     *             .ipAddress(publicIp)
+     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(GetProjectsFilterArgs.builder()
+     *                 .key("environment")
+     *                 .values("Staging")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("fipOutput", example.applyValue(getReservedIpResult -> getReservedIpResult.dropletId()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getReservedIp(GetReservedIpArgs args) { - return getReservedIp(args, InvokeOptions.Empty); - } - /** - * ## Example Usage - * - * Get the reserved IP: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -9794,7 +10126,7 @@ public static Output getReservedIp(GetReservedIpArgs args)
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetReservedIpArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9808,13 +10140,22 @@ public static Output getReservedIp(GetReservedIpArgs args)
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var config = ctx.config();
-     *         final var publicIp = config.get("publicIp");
-     *         final var example = DigitaloceanFunctions.getReservedIp(GetReservedIpArgs.builder()
-     *             .ipAddress(publicIp)
+     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(            
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("environment")
+     *                     .values("Production")
+     *                     .build(),
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("is_default")
+     *                     .values("false")
+     *                     .build())
+     *             .sorts(GetProjectsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("asc")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("fipOutput", example.applyValue(getReservedIpResult -> getReservedIpResult.dropletId()));
      *     }
      * }
      * }
@@ -9822,13 +10163,23 @@ public static Output getReservedIp(GetReservedIpArgs args)
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getReservedIpPlain(GetReservedIpPlainArgs args) {
-        return getReservedIpPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getProjectsPlain() {
+        return getProjectsPlain(GetProjectsPlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
+     * Retrieve information about all DigitalOcean projects associated with an account, with
+     * the ability to filter and sort the results. If no filters are specified, all projects
+     * will be returned.
+     * 
+     * Note: You can use the `digitalocean.Project` data source to
+     * obtain metadata about a single project if you already know the `id` to retrieve or the unique
+     * `name` of the project.
+     * 
      * ## Example Usage
      * 
-     * Get the reserved IP:
+     * Use the `filter` block with a `key` string and `values` list to filter projects.
+     * 
+     * For example to find all staging environment projects:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -9839,7 +10190,7 @@ public static CompletableFuture getReservedIpPlain(GetReser
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetReservedIpArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9853,27 +10204,20 @@ public static CompletableFuture getReservedIpPlain(GetReser
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var config = ctx.config();
-     *         final var publicIp = config.get("publicIp");
-     *         final var example = DigitaloceanFunctions.getReservedIp(GetReservedIpArgs.builder()
-     *             .ipAddress(publicIp)
+     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(GetProjectsFilterArgs.builder()
+     *                 .key("environment")
+     *                 .values("Staging")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("fipOutput", example.applyValue(getReservedIpResult -> getReservedIpResult.dropletId()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getReservedIp(GetReservedIpArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getReservedIp:getReservedIp", TypeShape.of(GetReservedIpResult.class), args, Utilities.withVersion(options)); - } - /** - * ## Example Usage - * - * Get the reserved IP: + * You can filter on multiple fields and sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -9884,7 +10228,7 @@ public static Output getReservedIp(GetReservedIpArgs args,
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetReservedIpArgs;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -9898,13 +10242,22 @@ public static Output getReservedIp(GetReservedIpArgs args,
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var config = ctx.config();
-     *         final var publicIp = config.get("publicIp");
-     *         final var example = DigitaloceanFunctions.getReservedIp(GetReservedIpArgs.builder()
-     *             .ipAddress(publicIp)
+     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(            
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("environment")
+     *                     .values("Production")
+     *                     .build(),
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("is_default")
+     *                     .values("false")
+     *                     .build())
+     *             .sorts(GetProjectsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("asc")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("fipOutput", example.applyValue(getReservedIpResult -> getReservedIpResult.dropletId()));
      *     }
      * }
      * }
@@ -9912,70 +10265,2898 @@ public static Output getReservedIp(GetReservedIpArgs args,
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getReservedIpPlain(GetReservedIpPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getReservedIp:getReservedIp", TypeShape.of(GetReservedIpResult.class), args, Utilities.withVersion(options));
+    public static Output getProjects(GetProjectsArgs args) {
+        return getProjects(args, InvokeOptions.Empty);
     }
     /**
-     * Retrieves information about the Droplet sizes that DigitalOcean supports, with
-     * the ability to filter and sort the results. If no filters are specified, all sizes
+     * Retrieve information about all DigitalOcean projects associated with an account, with
+     * the ability to filter and sort the results. If no filters are specified, all projects
      * will be returned.
      * 
-     */
-    public static Output getSizes() {
-        return getSizes(GetSizesArgs.Empty, InvokeOptions.Empty);
-    }
-    /**
-     * Retrieves information about the Droplet sizes that DigitalOcean supports, with
-     * the ability to filter and sort the results. If no filters are specified, all sizes
-     * will be returned.
+     * Note: You can use the `digitalocean.Project` data source to
+     * obtain metadata about a single project if you already know the `id` to retrieve or the unique
+     * `name` of the project.
      * 
-     */
-    public static CompletableFuture getSizesPlain() {
-        return getSizesPlain(GetSizesPlainArgs.Empty, InvokeOptions.Empty);
-    }
-    /**
-     * Retrieves information about the Droplet sizes that DigitalOcean supports, with
-     * the ability to filter and sort the results. If no filters are specified, all sizes
-     * will be returned.
+     * ## Example Usage
+     * 
+     * Use the `filter` block with a `key` string and `values` list to filter projects.
+     * 
+     * For example to find all staging environment projects:
+     * 
+     * <!--Start PulumiCodeChooser -->
+     * 
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(GetProjectsFilterArgs.builder()
+     *                 .key("environment")
+     *                 .values("Staging")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * You can filter on multiple fields and sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(            
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("environment")
+     *                     .values("Production")
+     *                     .build(),
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("is_default")
+     *                     .values("false")
+     *                     .build())
+     *             .sorts(GetProjectsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("asc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getProjectsPlain(GetProjectsPlainArgs args) { + return getProjectsPlain(args, InvokeOptions.Empty); + } + /** + * Retrieve information about all DigitalOcean projects associated with an account, with + * the ability to filter and sort the results. If no filters are specified, all projects + * will be returned. + * + * Note: You can use the `digitalocean.Project` data source to + * obtain metadata about a single project if you already know the `id` to retrieve or the unique + * `name` of the project. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter projects. + * + * For example to find all staging environment projects: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(GetProjectsFilterArgs.builder()
+     *                 .key("environment")
+     *                 .values("Staging")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * You can filter on multiple fields and sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(            
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("environment")
+     *                     .values("Production")
+     *                     .build(),
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("is_default")
+     *                     .values("false")
+     *                     .build())
+     *             .sorts(GetProjectsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("asc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getProjects(GetProjectsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getProjects:getProjects", TypeShape.of(GetProjectsResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieve information about all DigitalOcean projects associated with an account, with + * the ability to filter and sort the results. If no filters are specified, all projects + * will be returned. + * + * Note: You can use the `digitalocean.Project` data source to + * obtain metadata about a single project if you already know the `id` to retrieve or the unique + * `name` of the project. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter projects. + * + * For example to find all staging environment projects: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(GetProjectsFilterArgs.builder()
+     *                 .key("environment")
+     *                 .values("Staging")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * You can filter on multiple fields and sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(            
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("environment")
+     *                     .values("Production")
+     *                     .build(),
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("is_default")
+     *                     .values("false")
+     *                     .build())
+     *             .sorts(GetProjectsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("asc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getProjects(GetProjectsArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getProjects:getProjects", TypeShape.of(GetProjectsResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieve information about all DigitalOcean projects associated with an account, with + * the ability to filter and sort the results. If no filters are specified, all projects + * will be returned. + * + * Note: You can use the `digitalocean.Project` data source to + * obtain metadata about a single project if you already know the `id` to retrieve or the unique + * `name` of the project. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter projects. + * + * For example to find all staging environment projects: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var staging = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(GetProjectsFilterArgs.builder()
+     *                 .key("environment")
+     *                 .values("Staging")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * You can filter on multiple fields and sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetProjectsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var non-default-production = DigitaloceanFunctions.getProjects(GetProjectsArgs.builder()
+     *             .filters(            
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("environment")
+     *                     .values("Production")
+     *                     .build(),
+     *                 GetProjectsFilterArgs.builder()
+     *                     .key("is_default")
+     *                     .values("false")
+     *                     .build())
+     *             .sorts(GetProjectsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("asc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getProjectsPlain(GetProjectsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getProjects:getProjects", TypeShape.of(GetProjectsResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a DNS record. This data source provides the name, TTL, and zone + * file as configured on your DigitalOcean account. This is useful if the record + * in question is not managed by the provider. + * + * An error is triggered if the provided domain name or record are not managed with + * your DigitalOcean account. + * + * ## Example Usage + * + * Get data from a DNS record: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRecordArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getRecord(GetRecordArgs.builder()
+     *             .domain("example.com")
+     *             .name("test")
+     *             .build());
+     * 
+     *         ctx.export("recordType", example.applyValue(getRecordResult -> getRecordResult.type()));
+     *         ctx.export("recordTtl", example.applyValue(getRecordResult -> getRecordResult.ttl()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRecord(GetRecordArgs args) { + return getRecord(args, InvokeOptions.Empty); + } + /** + * Get information on a DNS record. This data source provides the name, TTL, and zone + * file as configured on your DigitalOcean account. This is useful if the record + * in question is not managed by the provider. + * + * An error is triggered if the provided domain name or record are not managed with + * your DigitalOcean account. + * + * ## Example Usage + * + * Get data from a DNS record: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRecordArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getRecord(GetRecordArgs.builder()
+     *             .domain("example.com")
+     *             .name("test")
+     *             .build());
+     * 
+     *         ctx.export("recordType", example.applyValue(getRecordResult -> getRecordResult.type()));
+     *         ctx.export("recordTtl", example.applyValue(getRecordResult -> getRecordResult.ttl()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getRecordPlain(GetRecordPlainArgs args) { + return getRecordPlain(args, InvokeOptions.Empty); + } + /** + * Get information on a DNS record. This data source provides the name, TTL, and zone + * file as configured on your DigitalOcean account. This is useful if the record + * in question is not managed by the provider. + * + * An error is triggered if the provided domain name or record are not managed with + * your DigitalOcean account. + * + * ## Example Usage + * + * Get data from a DNS record: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRecordArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getRecord(GetRecordArgs.builder()
+     *             .domain("example.com")
+     *             .name("test")
+     *             .build());
+     * 
+     *         ctx.export("recordType", example.applyValue(getRecordResult -> getRecordResult.type()));
+     *         ctx.export("recordTtl", example.applyValue(getRecordResult -> getRecordResult.ttl()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRecord(GetRecordArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getRecord:getRecord", TypeShape.of(GetRecordResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a DNS record. This data source provides the name, TTL, and zone + * file as configured on your DigitalOcean account. This is useful if the record + * in question is not managed by the provider. + * + * An error is triggered if the provided domain name or record are not managed with + * your DigitalOcean account. + * + * ## Example Usage + * + * Get data from a DNS record: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRecordArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getRecord(GetRecordArgs.builder()
+     *             .domain("example.com")
+     *             .name("test")
+     *             .build());
+     * 
+     *         ctx.export("recordType", example.applyValue(getRecordResult -> getRecordResult.type()));
+     *         ctx.export("recordTtl", example.applyValue(getRecordResult -> getRecordResult.ttl()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRecord(GetRecordArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getRecord:getRecord", TypeShape.of(GetRecordResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a DNS record. This data source provides the name, TTL, and zone + * file as configured on your DigitalOcean account. This is useful if the record + * in question is not managed by the provider. + * + * An error is triggered if the provided domain name or record are not managed with + * your DigitalOcean account. + * + * ## Example Usage + * + * Get data from a DNS record: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRecordArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getRecord(GetRecordArgs.builder()
+     *             .domain("example.com")
+     *             .name("test")
+     *             .build());
+     * 
+     *         ctx.export("recordType", example.applyValue(getRecordResult -> getRecordResult.type()));
+     *         ctx.export("recordTtl", example.applyValue(getRecordResult -> getRecordResult.ttl()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getRecordPlain(GetRecordPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getRecord:getRecord", TypeShape.of(GetRecordResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieve information about all DNS records within a domain, with the ability to filter and sort the results. + * If no filters are specified, all records will be returned. + * + * ## Example Usage + * + * Get data for all MX records in a domain: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRecordsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getRecords(GetRecordsArgs.builder()
+     *             .domain("example.com")
+     *             .filters(GetRecordsFilterArgs.builder()
+     *                 .key("type")
+     *                 .values("MX")
+     *                 .build())
+     *             .build());
+     * 
+     *         ctx.export("mailServers", StdFunctions.join(JoinArgs.builder()
+     *             .separator(",")
+     *             .input(example.applyValue(getRecordsResult -> getRecordsResult.records()).stream().map(element -> element.value()).collect(toList()))
+     *             .build()).result());
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRecords(GetRecordsArgs args) { + return getRecords(args, InvokeOptions.Empty); + } + /** + * Retrieve information about all DNS records within a domain, with the ability to filter and sort the results. + * If no filters are specified, all records will be returned. + * + * ## Example Usage + * + * Get data for all MX records in a domain: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRecordsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getRecords(GetRecordsArgs.builder()
+     *             .domain("example.com")
+     *             .filters(GetRecordsFilterArgs.builder()
+     *                 .key("type")
+     *                 .values("MX")
+     *                 .build())
+     *             .build());
+     * 
+     *         ctx.export("mailServers", StdFunctions.join(JoinArgs.builder()
+     *             .separator(",")
+     *             .input(example.applyValue(getRecordsResult -> getRecordsResult.records()).stream().map(element -> element.value()).collect(toList()))
+     *             .build()).result());
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getRecordsPlain(GetRecordsPlainArgs args) { + return getRecordsPlain(args, InvokeOptions.Empty); + } + /** + * Retrieve information about all DNS records within a domain, with the ability to filter and sort the results. + * If no filters are specified, all records will be returned. + * + * ## Example Usage + * + * Get data for all MX records in a domain: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRecordsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getRecords(GetRecordsArgs.builder()
+     *             .domain("example.com")
+     *             .filters(GetRecordsFilterArgs.builder()
+     *                 .key("type")
+     *                 .values("MX")
+     *                 .build())
+     *             .build());
+     * 
+     *         ctx.export("mailServers", StdFunctions.join(JoinArgs.builder()
+     *             .separator(",")
+     *             .input(example.applyValue(getRecordsResult -> getRecordsResult.records()).stream().map(element -> element.value()).collect(toList()))
+     *             .build()).result());
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRecords(GetRecordsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getRecords:getRecords", TypeShape.of(GetRecordsResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieve information about all DNS records within a domain, with the ability to filter and sort the results. + * If no filters are specified, all records will be returned. + * + * ## Example Usage + * + * Get data for all MX records in a domain: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRecordsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getRecords(GetRecordsArgs.builder()
+     *             .domain("example.com")
+     *             .filters(GetRecordsFilterArgs.builder()
+     *                 .key("type")
+     *                 .values("MX")
+     *                 .build())
+     *             .build());
+     * 
+     *         ctx.export("mailServers", StdFunctions.join(JoinArgs.builder()
+     *             .separator(",")
+     *             .input(example.applyValue(getRecordsResult -> getRecordsResult.records()).stream().map(element -> element.value()).collect(toList()))
+     *             .build()).result());
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRecords(GetRecordsArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getRecords:getRecords", TypeShape.of(GetRecordsResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieve information about all DNS records within a domain, with the ability to filter and sort the results. + * If no filters are specified, all records will be returned. + * + * ## Example Usage + * + * Get data for all MX records in a domain: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRecordsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getRecords(GetRecordsArgs.builder()
+     *             .domain("example.com")
+     *             .filters(GetRecordsFilterArgs.builder()
+     *                 .key("type")
+     *                 .values("MX")
+     *                 .build())
+     *             .build());
+     * 
+     *         ctx.export("mailServers", StdFunctions.join(JoinArgs.builder()
+     *             .separator(",")
+     *             .input(example.applyValue(getRecordsResult -> getRecordsResult.records()).stream().map(element -> element.value()).collect(toList()))
+     *             .build()).result());
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getRecordsPlain(GetRecordsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getRecords:getRecords", TypeShape.of(GetRecordsResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a single DigitalOcean region. This is useful to find out + * what Droplet sizes and features are supported within a region. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var sfo2 = DigitaloceanFunctions.getRegion(GetRegionArgs.builder()
+     *             .slug("sfo2")
+     *             .build());
+     * 
+     *         ctx.export("regionName", sfo2.applyValue(getRegionResult -> getRegionResult.name()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRegion(GetRegionArgs args) { + return getRegion(args, InvokeOptions.Empty); + } + /** + * Get information on a single DigitalOcean region. This is useful to find out + * what Droplet sizes and features are supported within a region. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var sfo2 = DigitaloceanFunctions.getRegion(GetRegionArgs.builder()
+     *             .slug("sfo2")
+     *             .build());
+     * 
+     *         ctx.export("regionName", sfo2.applyValue(getRegionResult -> getRegionResult.name()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getRegionPlain(GetRegionPlainArgs args) { + return getRegionPlain(args, InvokeOptions.Empty); + } + /** + * Get information on a single DigitalOcean region. This is useful to find out + * what Droplet sizes and features are supported within a region. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var sfo2 = DigitaloceanFunctions.getRegion(GetRegionArgs.builder()
+     *             .slug("sfo2")
+     *             .build());
+     * 
+     *         ctx.export("regionName", sfo2.applyValue(getRegionResult -> getRegionResult.name()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRegion(GetRegionArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getRegion:getRegion", TypeShape.of(GetRegionResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a single DigitalOcean region. This is useful to find out + * what Droplet sizes and features are supported within a region. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var sfo2 = DigitaloceanFunctions.getRegion(GetRegionArgs.builder()
+     *             .slug("sfo2")
+     *             .build());
+     * 
+     *         ctx.export("regionName", sfo2.applyValue(getRegionResult -> getRegionResult.name()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRegion(GetRegionArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getRegion:getRegion", TypeShape.of(GetRegionResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a single DigitalOcean region. This is useful to find out + * what Droplet sizes and features are supported within a region. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var sfo2 = DigitaloceanFunctions.getRegion(GetRegionArgs.builder()
+     *             .slug("sfo2")
+     *             .build());
+     * 
+     *         ctx.export("regionName", sfo2.applyValue(getRegionResult -> getRegionResult.name()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getRegionPlain(GetRegionPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getRegion:getRegion", TypeShape.of(GetRegionResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieve information about all supported DigitalOcean regions, with the ability to + * filter and sort the results. If no filters are specified, all regions will be returned. + * + * Note: You can use the `digitalocean.getRegion` data source + * to obtain metadata about a single region if you already know the `slug` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter regions. + * + * For example to find all available regions: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(GetRegionsFilterArgs.builder()
+     *                 .key("available")
+     *                 .values("true")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * You can filter on multiple fields and sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(            
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("available")
+     *                     .values("true")
+     *                     .build(),
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("features")
+     *                     .values("private_networking")
+     *                     .build())
+     *             .sorts(GetRegionsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRegions() { + return getRegions(GetRegionsArgs.Empty, InvokeOptions.Empty); + } + /** + * Retrieve information about all supported DigitalOcean regions, with the ability to + * filter and sort the results. If no filters are specified, all regions will be returned. + * + * Note: You can use the `digitalocean.getRegion` data source + * to obtain metadata about a single region if you already know the `slug` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter regions. + * + * For example to find all available regions: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(GetRegionsFilterArgs.builder()
+     *                 .key("available")
+     *                 .values("true")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * You can filter on multiple fields and sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(            
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("available")
+     *                     .values("true")
+     *                     .build(),
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("features")
+     *                     .values("private_networking")
+     *                     .build())
+     *             .sorts(GetRegionsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getRegionsPlain() { + return getRegionsPlain(GetRegionsPlainArgs.Empty, InvokeOptions.Empty); + } + /** + * Retrieve information about all supported DigitalOcean regions, with the ability to + * filter and sort the results. If no filters are specified, all regions will be returned. + * + * Note: You can use the `digitalocean.getRegion` data source + * to obtain metadata about a single region if you already know the `slug` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter regions. + * + * For example to find all available regions: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(GetRegionsFilterArgs.builder()
+     *                 .key("available")
+     *                 .values("true")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * You can filter on multiple fields and sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(            
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("available")
+     *                     .values("true")
+     *                     .build(),
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("features")
+     *                     .values("private_networking")
+     *                     .build())
+     *             .sorts(GetRegionsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRegions(GetRegionsArgs args) { + return getRegions(args, InvokeOptions.Empty); + } + /** + * Retrieve information about all supported DigitalOcean regions, with the ability to + * filter and sort the results. If no filters are specified, all regions will be returned. + * + * Note: You can use the `digitalocean.getRegion` data source + * to obtain metadata about a single region if you already know the `slug` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter regions. + * + * For example to find all available regions: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(GetRegionsFilterArgs.builder()
+     *                 .key("available")
+     *                 .values("true")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * You can filter on multiple fields and sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(            
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("available")
+     *                     .values("true")
+     *                     .build(),
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("features")
+     *                     .values("private_networking")
+     *                     .build())
+     *             .sorts(GetRegionsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getRegionsPlain(GetRegionsPlainArgs args) { + return getRegionsPlain(args, InvokeOptions.Empty); + } + /** + * Retrieve information about all supported DigitalOcean regions, with the ability to + * filter and sort the results. If no filters are specified, all regions will be returned. + * + * Note: You can use the `digitalocean.getRegion` data source + * to obtain metadata about a single region if you already know the `slug` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter regions. + * + * For example to find all available regions: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(GetRegionsFilterArgs.builder()
+     *                 .key("available")
+     *                 .values("true")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * You can filter on multiple fields and sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(            
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("available")
+     *                     .values("true")
+     *                     .build(),
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("features")
+     *                     .values("private_networking")
+     *                     .build())
+     *             .sorts(GetRegionsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRegions(GetRegionsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getRegions:getRegions", TypeShape.of(GetRegionsResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieve information about all supported DigitalOcean regions, with the ability to + * filter and sort the results. If no filters are specified, all regions will be returned. + * + * Note: You can use the `digitalocean.getRegion` data source + * to obtain metadata about a single region if you already know the `slug` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter regions. + * + * For example to find all available regions: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(GetRegionsFilterArgs.builder()
+     *                 .key("available")
+     *                 .values("true")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * You can filter on multiple fields and sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(            
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("available")
+     *                     .values("true")
+     *                     .build(),
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("features")
+     *                     .values("private_networking")
+     *                     .build())
+     *             .sorts(GetRegionsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getRegions(GetRegionsArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getRegions:getRegions", TypeShape.of(GetRegionsResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieve information about all supported DigitalOcean regions, with the ability to + * filter and sort the results. If no filters are specified, all regions will be returned. + * + * Note: You can use the `digitalocean.getRegion` data source + * to obtain metadata about a single region if you already know the `slug` to retrieve. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter regions. + * + * For example to find all available regions: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(GetRegionsFilterArgs.builder()
+     *                 .key("available")
+     *                 .values("true")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * You can filter on multiple fields and sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetRegionsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var available = DigitaloceanFunctions.getRegions(GetRegionsArgs.builder()
+     *             .filters(            
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("available")
+     *                     .values("true")
+     *                     .build(),
+     *                 GetRegionsFilterArgs.builder()
+     *                     .key("features")
+     *                     .values("private_networking")
+     *                     .build())
+     *             .sorts(GetRegionsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getRegionsPlain(GetRegionsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getRegions:getRegions", TypeShape.of(GetRegionsResult.class), args, Utilities.withVersion(options)); + } + /** + * ## Example Usage + * + * Get the reserved IP: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetReservedIpArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var config = ctx.config();
+     *         final var publicIp = config.get("publicIp");
+     *         final var example = DigitaloceanFunctions.getReservedIp(GetReservedIpArgs.builder()
+     *             .ipAddress(publicIp)
+     *             .build());
+     * 
+     *         ctx.export("fipOutput", example.applyValue(getReservedIpResult -> getReservedIpResult.dropletId()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getReservedIp(GetReservedIpArgs args) { + return getReservedIp(args, InvokeOptions.Empty); + } + /** + * ## Example Usage + * + * Get the reserved IP: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetReservedIpArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var config = ctx.config();
+     *         final var publicIp = config.get("publicIp");
+     *         final var example = DigitaloceanFunctions.getReservedIp(GetReservedIpArgs.builder()
+     *             .ipAddress(publicIp)
+     *             .build());
+     * 
+     *         ctx.export("fipOutput", example.applyValue(getReservedIpResult -> getReservedIpResult.dropletId()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getReservedIpPlain(GetReservedIpPlainArgs args) { + return getReservedIpPlain(args, InvokeOptions.Empty); + } + /** + * ## Example Usage + * + * Get the reserved IP: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetReservedIpArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var config = ctx.config();
+     *         final var publicIp = config.get("publicIp");
+     *         final var example = DigitaloceanFunctions.getReservedIp(GetReservedIpArgs.builder()
+     *             .ipAddress(publicIp)
+     *             .build());
+     * 
+     *         ctx.export("fipOutput", example.applyValue(getReservedIpResult -> getReservedIpResult.dropletId()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getReservedIp(GetReservedIpArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getReservedIp:getReservedIp", TypeShape.of(GetReservedIpResult.class), args, Utilities.withVersion(options)); + } + /** + * ## Example Usage + * + * Get the reserved IP: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetReservedIpArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var config = ctx.config();
+     *         final var publicIp = config.get("publicIp");
+     *         final var example = DigitaloceanFunctions.getReservedIp(GetReservedIpArgs.builder()
+     *             .ipAddress(publicIp)
+     *             .build());
+     * 
+     *         ctx.export("fipOutput", example.applyValue(getReservedIpResult -> getReservedIpResult.dropletId()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getReservedIp(GetReservedIpArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getReservedIp:getReservedIp", TypeShape.of(GetReservedIpResult.class), args, Utilities.withVersion(options)); + } + /** + * ## Example Usage + * + * Get the reserved IP: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetReservedIpArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var config = ctx.config();
+     *         final var publicIp = config.get("publicIp");
+     *         final var example = DigitaloceanFunctions.getReservedIp(GetReservedIpArgs.builder()
+     *             .ipAddress(publicIp)
+     *             .build());
+     * 
+     *         ctx.export("fipOutput", example.applyValue(getReservedIpResult -> getReservedIpResult.dropletId()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getReservedIpPlain(GetReservedIpPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getReservedIp:getReservedIp", TypeShape.of(GetReservedIpResult.class), args, Utilities.withVersion(options)); + } + public static Output getReservedIpv6(GetReservedIpv6Args args) { + return getReservedIpv6(args, InvokeOptions.Empty); + } + public static CompletableFuture getReservedIpv6Plain(GetReservedIpv6PlainArgs args) { + return getReservedIpv6Plain(args, InvokeOptions.Empty); + } + public static Output getReservedIpv6(GetReservedIpv6Args args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getReservedIpv6:getReservedIpv6", TypeShape.of(GetReservedIpv6Result.class), args, Utilities.withVersion(options)); + } + public static Output getReservedIpv6(GetReservedIpv6Args args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getReservedIpv6:getReservedIpv6", TypeShape.of(GetReservedIpv6Result.class), args, Utilities.withVersion(options)); + } + public static CompletableFuture getReservedIpv6Plain(GetReservedIpv6PlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getReservedIpv6:getReservedIpv6", TypeShape.of(GetReservedIpv6Result.class), args, Utilities.withVersion(options)); + } + /** + * Retrieves information about the Droplet sizes that DigitalOcean supports, with + * the ability to filter and sort the results. If no filters are specified, all sizes + * will be returned. + * + */ + public static Output getSizes() { + return getSizes(GetSizesArgs.Empty, InvokeOptions.Empty); + } + /** + * Retrieves information about the Droplet sizes that DigitalOcean supports, with + * the ability to filter and sort the results. If no filters are specified, all sizes + * will be returned. + * + */ + public static CompletableFuture getSizesPlain() { + return getSizesPlain(GetSizesPlainArgs.Empty, InvokeOptions.Empty); + } + /** + * Retrieves information about the Droplet sizes that DigitalOcean supports, with + * the ability to filter and sort the results. If no filters are specified, all sizes + * will be returned. + * + */ + public static Output getSizes(GetSizesArgs args) { + return getSizes(args, InvokeOptions.Empty); + } + /** + * Retrieves information about the Droplet sizes that DigitalOcean supports, with + * the ability to filter and sort the results. If no filters are specified, all sizes + * will be returned. + * + */ + public static CompletableFuture getSizesPlain(GetSizesPlainArgs args) { + return getSizesPlain(args, InvokeOptions.Empty); + } + /** + * Retrieves information about the Droplet sizes that DigitalOcean supports, with + * the ability to filter and sort the results. If no filters are specified, all sizes + * will be returned. + * + */ + public static Output getSizes(GetSizesArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getSizes:getSizes", TypeShape.of(GetSizesResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieves information about the Droplet sizes that DigitalOcean supports, with + * the ability to filter and sort the results. If no filters are specified, all sizes + * will be returned. + * + */ + public static Output getSizes(GetSizesArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getSizes:getSizes", TypeShape.of(GetSizesResult.class), args, Utilities.withVersion(options)); + } + /** + * Retrieves information about the Droplet sizes that DigitalOcean supports, with + * the ability to filter and sort the results. If no filters are specified, all sizes + * will be returned. + * + */ + public static CompletableFuture getSizesPlain(GetSizesPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getSizes:getSizes", TypeShape.of(GetSizesResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a Spaces bucket for use in other resources. This is useful if the Spaces bucket in question + * is not managed by the provider or you need to utilize any of the bucket's data. + * + * ## Example Usage + * + * Get the bucket by name: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getSpacesBucket(GetSpacesBucketArgs.builder()
+     *             .name("my-spaces-bucket")
+     *             .region("nyc3")
+     *             .build());
+     * 
+     *         ctx.export("bucketDomainName", example.applyValue(getSpacesBucketResult -> getSpacesBucketResult.bucketDomainName()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getSpacesBucket(GetSpacesBucketArgs args) { + return getSpacesBucket(args, InvokeOptions.Empty); + } + /** + * Get information on a Spaces bucket for use in other resources. This is useful if the Spaces bucket in question + * is not managed by the provider or you need to utilize any of the bucket's data. + * + * ## Example Usage + * + * Get the bucket by name: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getSpacesBucket(GetSpacesBucketArgs.builder()
+     *             .name("my-spaces-bucket")
+     *             .region("nyc3")
+     *             .build());
+     * 
+     *         ctx.export("bucketDomainName", example.applyValue(getSpacesBucketResult -> getSpacesBucketResult.bucketDomainName()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getSpacesBucketPlain(GetSpacesBucketPlainArgs args) { + return getSpacesBucketPlain(args, InvokeOptions.Empty); + } + /** + * Get information on a Spaces bucket for use in other resources. This is useful if the Spaces bucket in question + * is not managed by the provider or you need to utilize any of the bucket's data. + * + * ## Example Usage + * + * Get the bucket by name: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getSpacesBucket(GetSpacesBucketArgs.builder()
+     *             .name("my-spaces-bucket")
+     *             .region("nyc3")
+     *             .build());
+     * 
+     *         ctx.export("bucketDomainName", example.applyValue(getSpacesBucketResult -> getSpacesBucketResult.bucketDomainName()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getSpacesBucket(GetSpacesBucketArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getSpacesBucket:getSpacesBucket", TypeShape.of(GetSpacesBucketResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a Spaces bucket for use in other resources. This is useful if the Spaces bucket in question + * is not managed by the provider or you need to utilize any of the bucket's data. + * + * ## Example Usage + * + * Get the bucket by name: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getSpacesBucket(GetSpacesBucketArgs.builder()
+     *             .name("my-spaces-bucket")
+     *             .region("nyc3")
+     *             .build());
+     * 
+     *         ctx.export("bucketDomainName", example.applyValue(getSpacesBucketResult -> getSpacesBucketResult.bucketDomainName()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getSpacesBucket(GetSpacesBucketArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getSpacesBucket:getSpacesBucket", TypeShape.of(GetSpacesBucketResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a Spaces bucket for use in other resources. This is useful if the Spaces bucket in question + * is not managed by the provider or you need to utilize any of the bucket's data. + * + * ## Example Usage + * + * Get the bucket by name: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getSpacesBucket(GetSpacesBucketArgs.builder()
+     *             .name("my-spaces-bucket")
+     *             .region("nyc3")
+     *             .build());
+     * 
+     *         ctx.export("bucketDomainName", example.applyValue(getSpacesBucketResult -> getSpacesBucketResult.bucketDomainName()));
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getSpacesBucketPlain(GetSpacesBucketPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getSpacesBucket:getSpacesBucket", TypeShape.of(GetSpacesBucketResult.class), args, Utilities.withVersion(options)); + } + /** + * The Spaces object data source allows access to the metadata and + * _optionally_ (see below) content of an object stored inside a Spaces bucket. + * + * > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable + * `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially + * downloading large amount of data which would be thrown away in favor of metadata. + * + * ## Example Usage + * + * The following example retrieves a text object (which must have a `Content-Type` + * value starting with `text/`) and uses it as the `user_data` for a Droplet: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketObjectArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var bootstrapScript = DigitaloceanFunctions.getSpacesBucketObject(GetSpacesBucketObjectArgs.builder()
+     *             .bucket("ourcorp-deploy-config")
+     *             .region("nyc3")
+     *             .key("droplet-bootstrap-script.sh")
+     *             .build());
+     * 
+     *         var web = new Droplet("web", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("web-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .userData(bootstrapScript.applyValue(getSpacesBucketObjectResult -> getSpacesBucketObjectResult.body()))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getSpacesBucketObject(GetSpacesBucketObjectArgs args) { + return getSpacesBucketObject(args, InvokeOptions.Empty); + } + /** + * The Spaces object data source allows access to the metadata and + * _optionally_ (see below) content of an object stored inside a Spaces bucket. + * + * > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable + * `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially + * downloading large amount of data which would be thrown away in favor of metadata. + * + * ## Example Usage + * + * The following example retrieves a text object (which must have a `Content-Type` + * value starting with `text/`) and uses it as the `user_data` for a Droplet: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketObjectArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var bootstrapScript = DigitaloceanFunctions.getSpacesBucketObject(GetSpacesBucketObjectArgs.builder()
+     *             .bucket("ourcorp-deploy-config")
+     *             .region("nyc3")
+     *             .key("droplet-bootstrap-script.sh")
+     *             .build());
+     * 
+     *         var web = new Droplet("web", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("web-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .userData(bootstrapScript.applyValue(getSpacesBucketObjectResult -> getSpacesBucketObjectResult.body()))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getSpacesBucketObjectPlain(GetSpacesBucketObjectPlainArgs args) { + return getSpacesBucketObjectPlain(args, InvokeOptions.Empty); + } + /** + * The Spaces object data source allows access to the metadata and + * _optionally_ (see below) content of an object stored inside a Spaces bucket. + * + * > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable + * `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially + * downloading large amount of data which would be thrown away in favor of metadata. + * + * ## Example Usage + * + * The following example retrieves a text object (which must have a `Content-Type` + * value starting with `text/`) and uses it as the `user_data` for a Droplet: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketObjectArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var bootstrapScript = DigitaloceanFunctions.getSpacesBucketObject(GetSpacesBucketObjectArgs.builder()
+     *             .bucket("ourcorp-deploy-config")
+     *             .region("nyc3")
+     *             .key("droplet-bootstrap-script.sh")
+     *             .build());
+     * 
+     *         var web = new Droplet("web", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("web-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .userData(bootstrapScript.applyValue(getSpacesBucketObjectResult -> getSpacesBucketObjectResult.body()))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getSpacesBucketObject(GetSpacesBucketObjectArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getSpacesBucketObject:getSpacesBucketObject", TypeShape.of(GetSpacesBucketObjectResult.class), args, Utilities.withVersion(options)); + } + /** + * The Spaces object data source allows access to the metadata and + * _optionally_ (see below) content of an object stored inside a Spaces bucket. + * + * > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable + * `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially + * downloading large amount of data which would be thrown away in favor of metadata. + * + * ## Example Usage + * + * The following example retrieves a text object (which must have a `Content-Type` + * value starting with `text/`) and uses it as the `user_data` for a Droplet: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketObjectArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var bootstrapScript = DigitaloceanFunctions.getSpacesBucketObject(GetSpacesBucketObjectArgs.builder()
+     *             .bucket("ourcorp-deploy-config")
+     *             .region("nyc3")
+     *             .key("droplet-bootstrap-script.sh")
+     *             .build());
+     * 
+     *         var web = new Droplet("web", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("web-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .userData(bootstrapScript.applyValue(getSpacesBucketObjectResult -> getSpacesBucketObjectResult.body()))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> * */ - public static Output getSizes(GetSizesArgs args) { - return getSizes(args, InvokeOptions.Empty); + public static Output getSpacesBucketObject(GetSpacesBucketObjectArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getSpacesBucketObject:getSpacesBucketObject", TypeShape.of(GetSpacesBucketObjectResult.class), args, Utilities.withVersion(options)); } /** - * Retrieves information about the Droplet sizes that DigitalOcean supports, with - * the ability to filter and sort the results. If no filters are specified, all sizes - * will be returned. + * The Spaces object data source allows access to the metadata and + * _optionally_ (see below) content of an object stored inside a Spaces bucket. + * + * > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable + * `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially + * downloading large amount of data which would be thrown away in favor of metadata. + * + * ## Example Usage + * + * The following example retrieves a text object (which must have a `Content-Type` + * value starting with `text/`) and uses it as the `user_data` for a Droplet: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketObjectArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var bootstrapScript = DigitaloceanFunctions.getSpacesBucketObject(GetSpacesBucketObjectArgs.builder()
+     *             .bucket("ourcorp-deploy-config")
+     *             .region("nyc3")
+     *             .key("droplet-bootstrap-script.sh")
+     *             .build());
+     * 
+     *         var web = new Droplet("web", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("web-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .userData(bootstrapScript.applyValue(getSpacesBucketObjectResult -> getSpacesBucketObjectResult.body()))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> * */ - public static CompletableFuture getSizesPlain(GetSizesPlainArgs args) { - return getSizesPlain(args, InvokeOptions.Empty); + public static CompletableFuture getSpacesBucketObjectPlain(GetSpacesBucketObjectPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getSpacesBucketObject:getSpacesBucketObject", TypeShape.of(GetSpacesBucketObjectResult.class), args, Utilities.withVersion(options)); } /** - * Retrieves information about the Droplet sizes that DigitalOcean supports, with - * the ability to filter and sort the results. If no filters are specified, all sizes - * will be returned. + * > **NOTE on `max_keys`:** Retrieving very large numbers of keys can adversely affect the provider's performance. + * + * The bucket-objects data source returns keys (i.e., file names) and other metadata about objects in a Spaces bucket. * */ - public static Output getSizes(GetSizesArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getSizes:getSizes", TypeShape.of(GetSizesResult.class), args, Utilities.withVersion(options)); + public static Output getSpacesBucketObjects(GetSpacesBucketObjectsArgs args) { + return getSpacesBucketObjects(args, InvokeOptions.Empty); } /** - * Retrieves information about the Droplet sizes that DigitalOcean supports, with - * the ability to filter and sort the results. If no filters are specified, all sizes - * will be returned. + * > **NOTE on `max_keys`:** Retrieving very large numbers of keys can adversely affect the provider's performance. + * + * The bucket-objects data source returns keys (i.e., file names) and other metadata about objects in a Spaces bucket. * */ - public static CompletableFuture getSizesPlain(GetSizesPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("digitalocean:index/getSizes:getSizes", TypeShape.of(GetSizesResult.class), args, Utilities.withVersion(options)); + public static CompletableFuture getSpacesBucketObjectsPlain(GetSpacesBucketObjectsPlainArgs args) { + return getSpacesBucketObjectsPlain(args, InvokeOptions.Empty); } /** - * Get information on a Spaces bucket for use in other resources. This is useful if the Spaces bucket in question - * is not managed by the provider or you need to utilize any of the bucket's data. + * > **NOTE on `max_keys`:** Retrieving very large numbers of keys can adversely affect the provider's performance. + * + * The bucket-objects data source returns keys (i.e., file names) and other metadata about objects in a Spaces bucket. + * + */ + public static Output getSpacesBucketObjects(GetSpacesBucketObjectsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getSpacesBucketObjects:getSpacesBucketObjects", TypeShape.of(GetSpacesBucketObjectsResult.class), args, Utilities.withVersion(options)); + } + /** + * > **NOTE on `max_keys`:** Retrieving very large numbers of keys can adversely affect the provider's performance. + * + * The bucket-objects data source returns keys (i.e., file names) and other metadata about objects in a Spaces bucket. + * + */ + public static Output getSpacesBucketObjects(GetSpacesBucketObjectsArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getSpacesBucketObjects:getSpacesBucketObjects", TypeShape.of(GetSpacesBucketObjectsResult.class), args, Utilities.withVersion(options)); + } + /** + * > **NOTE on `max_keys`:** Retrieving very large numbers of keys can adversely affect the provider's performance. + * + * The bucket-objects data source returns keys (i.e., file names) and other metadata about objects in a Spaces bucket. + * + */ + public static CompletableFuture getSpacesBucketObjectsPlain(GetSpacesBucketObjectsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getSpacesBucketObjects:getSpacesBucketObjects", TypeShape.of(GetSpacesBucketObjectsResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results. + * If no filters are specified, all Spaces buckets will be returned. + * + * Note: You can use the `digitalocean.SpacesBucket` data source to + * obtain metadata about a single bucket if you already know its `name` and `region`. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter buckets. + * + * Get all buckets in a region: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * You can sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
+     *             .sorts(GetSpacesBucketsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getSpacesBuckets() { + return getSpacesBuckets(GetSpacesBucketsArgs.Empty, InvokeOptions.Empty); + } + /** + * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results. + * If no filters are specified, all Spaces buckets will be returned. + * + * Note: You can use the `digitalocean.SpacesBucket` data source to + * obtain metadata about a single bucket if you already know its `name` and `region`. + * + * ## Example Usage + * + * Use the `filter` block with a `key` string and `values` list to filter buckets. + * + * Get all buckets in a region: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
      * 
-     * ## Example Usage
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
      * 
-     * Get the bucket by name:
+     *     public static void stack(Context ctx) {
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * You can sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -9986,7 +13167,7 @@ public static CompletableFuture getSizesPlain(GetSizesPlainArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketArgs;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10000,12 +13181,17 @@ public static CompletableFuture getSizesPlain(GetSizesPlainArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getSpacesBucket(GetSpacesBucketArgs.builder()
-     *             .name("my-spaces-bucket")
-     *             .region("nyc3")
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
+     *             .sorts(GetSpacesBucketsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("bucketDomainName", example.applyValue(getSpacesBucketResult -> getSpacesBucketResult.bucketDomainName()));
      *     }
      * }
      * }
@@ -10013,16 +13199,21 @@ public static CompletableFuture getSizesPlain(GetSizesPlainArgs
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getSpacesBucket(GetSpacesBucketArgs args) {
-        return getSpacesBucket(args, InvokeOptions.Empty);
+    public static CompletableFuture getSpacesBucketsPlain() {
+        return getSpacesBucketsPlain(GetSpacesBucketsPlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Get information on a Spaces bucket for use in other resources. This is useful if the Spaces bucket in question
-     * is not managed by the provider or you need to utilize any of the bucket's data.
+     * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results.
+     * If no filters are specified, all Spaces buckets will be returned.
+     * 
+     * Note: You can use the `digitalocean.SpacesBucket` data source to
+     * obtain metadata about a single bucket if you already know its `name` and `region`.
      * 
      * ## Example Usage
      * 
-     * Get the bucket by name:
+     * Use the `filter` block with a `key` string and `values` list to filter buckets.
+     * 
+     * Get all buckets in a region:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -10033,7 +13224,7 @@ public static Output getSpacesBucket(GetSpacesBucketArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketArgs;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10047,29 +13238,19 @@ public static Output getSpacesBucket(GetSpacesBucketArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getSpacesBucket(GetSpacesBucketArgs.builder()
-     *             .name("my-spaces-bucket")
-     *             .region("nyc3")
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("bucketDomainName", example.applyValue(getSpacesBucketResult -> getSpacesBucketResult.bucketDomainName()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> - * - */ - public static CompletableFuture getSpacesBucketPlain(GetSpacesBucketPlainArgs args) { - return getSpacesBucketPlain(args, InvokeOptions.Empty); - } - /** - * Get information on a Spaces bucket for use in other resources. This is useful if the Spaces bucket in question - * is not managed by the provider or you need to utilize any of the bucket's data. - * - * ## Example Usage - * - * Get the bucket by name: + * You can sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -10080,7 +13261,7 @@ public static CompletableFuture getSpacesBucketPlain(GetS
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketArgs;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10094,12 +13275,17 @@ public static CompletableFuture getSpacesBucketPlain(GetS
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getSpacesBucket(GetSpacesBucketArgs.builder()
-     *             .name("my-spaces-bucket")
-     *             .region("nyc3")
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
+     *             .sorts(GetSpacesBucketsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("bucketDomainName", example.applyValue(getSpacesBucketResult -> getSpacesBucketResult.bucketDomainName()));
      *     }
      * }
      * }
@@ -10107,16 +13293,21 @@ public static CompletableFuture getSpacesBucketPlain(GetS
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getSpacesBucket(GetSpacesBucketArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getSpacesBucket:getSpacesBucket", TypeShape.of(GetSpacesBucketResult.class), args, Utilities.withVersion(options));
+    public static Output getSpacesBuckets(GetSpacesBucketsArgs args) {
+        return getSpacesBuckets(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on a Spaces bucket for use in other resources. This is useful if the Spaces bucket in question
-     * is not managed by the provider or you need to utilize any of the bucket's data.
+     * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results.
+     * If no filters are specified, all Spaces buckets will be returned.
+     * 
+     * Note: You can use the `digitalocean.SpacesBucket` data source to
+     * obtain metadata about a single bucket if you already know its `name` and `region`.
      * 
      * ## Example Usage
      * 
-     * Get the bucket by name:
+     * Use the `filter` block with a `key` string and `values` list to filter buckets.
+     * 
+     * Get all buckets in a region:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -10127,7 +13318,7 @@ public static Output getSpacesBucket(GetSpacesBucketArgs
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketArgs;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10141,34 +13332,19 @@ public static Output getSpacesBucket(GetSpacesBucketArgs
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getSpacesBucket(GetSpacesBucketArgs.builder()
-     *             .name("my-spaces-bucket")
-     *             .region("nyc3")
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
      *             .build());
      * 
-     *         ctx.export("bucketDomainName", example.applyValue(getSpacesBucketResult -> getSpacesBucketResult.bucketDomainName()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> - * - */ - public static CompletableFuture getSpacesBucketPlain(GetSpacesBucketPlainArgs args, InvokeOptions options) { - return Deployment.getInstance().invokeAsync("digitalocean:index/getSpacesBucket:getSpacesBucket", TypeShape.of(GetSpacesBucketResult.class), args, Utilities.withVersion(options)); - } - /** - * The Spaces object data source allows access to the metadata and - * _optionally_ (see below) content of an object stored inside a Spaces bucket. - * - * > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable - * `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially - * downloading large amount of data which would be thrown away in favor of metadata. - * - * ## Example Usage - * - * The following example retrieves a text object (which must have a `Content-Type` - * value starting with `text/`) and uses it as the `user_data` for a Droplet: + * You can sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -10179,9 +13355,7 @@ public static CompletableFuture getSpacesBucketPlain(GetS
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketObjectArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10195,18 +13369,15 @@ public static CompletableFuture getSpacesBucketPlain(GetS
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var bootstrapScript = DigitaloceanFunctions.getSpacesBucketObject(GetSpacesBucketObjectArgs.builder()
-     *             .bucket("ourcorp-deploy-config")
-     *             .region("nyc3")
-     *             .key("droplet-bootstrap-script.sh")
-     *             .build());
-     * 
-     *         var web = new Droplet("web", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("web-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .userData(bootstrapScript.applyValue(getSpacesBucketObjectResult -> getSpacesBucketObjectResult.body()))
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
+     *             .sorts(GetSpacesBucketsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -10216,21 +13387,21 @@ public static CompletableFuture getSpacesBucketPlain(GetS
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getSpacesBucketObject(GetSpacesBucketObjectArgs args) {
-        return getSpacesBucketObject(args, InvokeOptions.Empty);
+    public static CompletableFuture getSpacesBucketsPlain(GetSpacesBucketsPlainArgs args) {
+        return getSpacesBucketsPlain(args, InvokeOptions.Empty);
     }
     /**
-     * The Spaces object data source allows access to the metadata and
-     * _optionally_ (see below) content of an object stored inside a Spaces bucket.
+     * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results.
+     * If no filters are specified, all Spaces buckets will be returned.
      * 
-     * > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable
-     * `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially
-     * downloading large amount of data which would be thrown away in favor of metadata.
+     * Note: You can use the `digitalocean.SpacesBucket` data source to
+     * obtain metadata about a single bucket if you already know its `name` and `region`.
      * 
      * ## Example Usage
      * 
-     * The following example retrieves a text object (which must have a `Content-Type`
-     * value starting with `text/`) and uses it as the `user_data` for a Droplet:
+     * Use the `filter` block with a `key` string and `values` list to filter buckets.
+     * 
+     * Get all buckets in a region:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -10241,9 +13412,7 @@ public static Output getSpacesBucketObject(GetSpace
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketObjectArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10257,18 +13426,52 @@ public static Output getSpacesBucketObject(GetSpace
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var bootstrapScript = DigitaloceanFunctions.getSpacesBucketObject(GetSpacesBucketObjectArgs.builder()
-     *             .bucket("ourcorp-deploy-config")
-     *             .region("nyc3")
-     *             .key("droplet-bootstrap-script.sh")
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
      *             .build());
      * 
-     *         var web = new Droplet("web", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("web-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .userData(bootstrapScript.applyValue(getSpacesBucketObjectResult -> getSpacesBucketObjectResult.body()))
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * You can sort the results as well: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
+     *             .sorts(GetSpacesBucketsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -10278,21 +13481,21 @@ public static Output getSpacesBucketObject(GetSpace
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSpacesBucketObjectPlain(GetSpacesBucketObjectPlainArgs args) {
-        return getSpacesBucketObjectPlain(args, InvokeOptions.Empty);
+    public static Output getSpacesBuckets(GetSpacesBucketsArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getSpacesBuckets:getSpacesBuckets", TypeShape.of(GetSpacesBucketsResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * The Spaces object data source allows access to the metadata and
-     * _optionally_ (see below) content of an object stored inside a Spaces bucket.
+     * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results.
+     * If no filters are specified, all Spaces buckets will be returned.
      * 
-     * > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable
-     * `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially
-     * downloading large amount of data which would be thrown away in favor of metadata.
+     * Note: You can use the `digitalocean.SpacesBucket` data source to
+     * obtain metadata about a single bucket if you already know its `name` and `region`.
      * 
      * ## Example Usage
      * 
-     * The following example retrieves a text object (which must have a `Content-Type`
-     * value starting with `text/`) and uses it as the `user_data` for a Droplet:
+     * Use the `filter` block with a `key` string and `values` list to filter buckets.
+     * 
+     * Get all buckets in a region:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -10303,9 +13506,7 @@ public static CompletableFuture getSpacesBucketObje
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketObjectArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10319,18 +13520,11 @@ public static CompletableFuture getSpacesBucketObje
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var bootstrapScript = DigitaloceanFunctions.getSpacesBucketObject(GetSpacesBucketObjectArgs.builder()
-     *             .bucket("ourcorp-deploy-config")
-     *             .region("nyc3")
-     *             .key("droplet-bootstrap-script.sh")
-     *             .build());
-     * 
-     *         var web = new Droplet("web", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("web-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .userData(bootstrapScript.applyValue(getSpacesBucketObjectResult -> getSpacesBucketObjectResult.body()))
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -10338,23 +13532,7 @@ public static CompletableFuture getSpacesBucketObje
      * }
      * 
* <!--End PulumiCodeChooser --> - * - */ - public static Output getSpacesBucketObject(GetSpacesBucketObjectArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getSpacesBucketObject:getSpacesBucketObject", TypeShape.of(GetSpacesBucketObjectResult.class), args, Utilities.withVersion(options)); - } - /** - * The Spaces object data source allows access to the metadata and - * _optionally_ (see below) content of an object stored inside a Spaces bucket. - * - * > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable - * `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially - * downloading large amount of data which would be thrown away in favor of metadata. - * - * ## Example Usage - * - * The following example retrieves a text object (which must have a `Content-Type` - * value starting with `text/`) and uses it as the `user_data` for a Droplet: + * You can sort the results as well: * * <!--Start PulumiCodeChooser --> *
@@ -10365,9 +13543,7 @@ public static Output getSpacesBucketObject(GetSpace
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketObjectArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10381,18 +13557,15 @@ public static Output getSpacesBucketObject(GetSpace
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var bootstrapScript = DigitaloceanFunctions.getSpacesBucketObject(GetSpacesBucketObjectArgs.builder()
-     *             .bucket("ourcorp-deploy-config")
-     *             .region("nyc3")
-     *             .key("droplet-bootstrap-script.sh")
-     *             .build());
-     * 
-     *         var web = new Droplet("web", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("web-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .userData(bootstrapScript.applyValue(getSpacesBucketObjectResult -> getSpacesBucketObjectResult.body()))
+     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
+     *             .filters(GetSpacesBucketsFilterArgs.builder()
+     *                 .key("region")
+     *                 .values("nyc3")
+     *                 .build())
+     *             .sorts(GetSpacesBucketsSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("desc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -10402,44 +13575,8 @@ public static Output getSpacesBucketObject(GetSpace
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSpacesBucketObjectPlain(GetSpacesBucketObjectPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getSpacesBucketObject:getSpacesBucketObject", TypeShape.of(GetSpacesBucketObjectResult.class), args, Utilities.withVersion(options));
-    }
-    /**
-     * > **NOTE on `max_keys`:** Retrieving very large numbers of keys can adversely affect the provider's performance.
-     * 
-     * The bucket-objects data source returns keys (i.e., file names) and other metadata about objects in a Spaces bucket.
-     * 
-     */
-    public static Output getSpacesBucketObjects(GetSpacesBucketObjectsArgs args) {
-        return getSpacesBucketObjects(args, InvokeOptions.Empty);
-    }
-    /**
-     * > **NOTE on `max_keys`:** Retrieving very large numbers of keys can adversely affect the provider's performance.
-     * 
-     * The bucket-objects data source returns keys (i.e., file names) and other metadata about objects in a Spaces bucket.
-     * 
-     */
-    public static CompletableFuture getSpacesBucketObjectsPlain(GetSpacesBucketObjectsPlainArgs args) {
-        return getSpacesBucketObjectsPlain(args, InvokeOptions.Empty);
-    }
-    /**
-     * > **NOTE on `max_keys`:** Retrieving very large numbers of keys can adversely affect the provider's performance.
-     * 
-     * The bucket-objects data source returns keys (i.e., file names) and other metadata about objects in a Spaces bucket.
-     * 
-     */
-    public static Output getSpacesBucketObjects(GetSpacesBucketObjectsArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getSpacesBucketObjects:getSpacesBucketObjects", TypeShape.of(GetSpacesBucketObjectsResult.class), args, Utilities.withVersion(options));
-    }
-    /**
-     * > **NOTE on `max_keys`:** Retrieving very large numbers of keys can adversely affect the provider's performance.
-     * 
-     * The bucket-objects data source returns keys (i.e., file names) and other metadata about objects in a Spaces bucket.
-     * 
-     */
-    public static CompletableFuture getSpacesBucketObjectsPlain(GetSpacesBucketObjectsPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getSpacesBucketObjects:getSpacesBucketObjects", TypeShape.of(GetSpacesBucketObjectsResult.class), args, Utilities.withVersion(options));
+    public static Output getSpacesBuckets(GetSpacesBucketsArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getSpacesBuckets:getSpacesBuckets", TypeShape.of(GetSpacesBucketsResult.class), args, Utilities.withVersion(options));
     }
     /**
      * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results.
@@ -10532,21 +13669,20 @@ public static CompletableFuture getSpacesBucketObj
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getSpacesBuckets() {
-        return getSpacesBuckets(GetSpacesBucketsArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getSpacesBucketsPlain(GetSpacesBucketsPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getSpacesBuckets:getSpacesBuckets", TypeShape.of(GetSpacesBucketsResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all Spaces buckets will be returned.
+     * Get information on a ssh key. This data source provides the name, public key,
+     * and fingerprint as configured on your DigitalOcean account. This is useful if
+     * the ssh key in question is not managed by the provider or you need to utilize any
+     * of the keys data.
      * 
-     * Note: You can use the `digitalocean.SpacesBucket` data source to
-     * obtain metadata about a single bucket if you already know its `name` and `region`.
+     * An error is triggered if the provided ssh key name does not exist.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter buckets.
-     * 
-     * Get all buckets in a region:
+     * Get the ssh key:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -10557,7 +13693,9 @@ public static Output getSpacesBuckets() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeyArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10571,11 +13709,16 @@ public static Output getSpacesBuckets() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
-     *             .filters(GetSpacesBucketsFilterArgs.builder()
-     *                 .key("region")
-     *                 .values("nyc3")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getSshKey(GetSshKeyArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .sshKeys(example.applyValue(getSshKeyResult -> getSshKeyResult.id()))
      *             .build());
      * 
      *     }
@@ -10583,7 +13726,22 @@ public static Output getSpacesBuckets() {
      * }
      * 
* <!--End PulumiCodeChooser --> - * You can sort the results as well: + * + */ + public static Output getSshKey(GetSshKeyArgs args) { + return getSshKey(args, InvokeOptions.Empty); + } + /** + * Get information on a ssh key. This data source provides the name, public key, + * and fingerprint as configured on your DigitalOcean account. This is useful if + * the ssh key in question is not managed by the provider or you need to utilize any + * of the keys data. + * + * An error is triggered if the provided ssh key name does not exist. + * + * ## Example Usage + * + * Get the ssh key: * * <!--Start PulumiCodeChooser --> *
@@ -10594,7 +13752,9 @@ public static Output getSpacesBuckets() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeyArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10608,15 +13768,16 @@ public static Output getSpacesBuckets() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
-     *             .filters(GetSpacesBucketsFilterArgs.builder()
-     *                 .key("region")
-     *                 .values("nyc3")
-     *                 .build())
-     *             .sorts(GetSpacesBucketsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getSshKey(GetSshKeyArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .sshKeys(example.applyValue(getSshKeyResult -> getSshKeyResult.id()))
      *             .build());
      * 
      *     }
@@ -10626,21 +13787,79 @@ public static Output getSpacesBuckets() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSpacesBucketsPlain() {
-        return getSpacesBucketsPlain(GetSpacesBucketsPlainArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getSshKeyPlain(GetSshKeyPlainArgs args) {
+        return getSshKeyPlain(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all Spaces buckets will be returned.
+     * Get information on a ssh key. This data source provides the name, public key,
+     * and fingerprint as configured on your DigitalOcean account. This is useful if
+     * the ssh key in question is not managed by the provider or you need to utilize any
+     * of the keys data.
      * 
-     * Note: You can use the `digitalocean.SpacesBucket` data source to
-     * obtain metadata about a single bucket if you already know its `name` and `region`.
+     * An error is triggered if the provided ssh key name does not exist.
      * 
      * ## Example Usage
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter buckets.
+     * Get the ssh key:
      * 
-     * Get all buckets in a region:
+     * <!--Start PulumiCodeChooser -->
+     * 
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetSshKeyArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getSshKey(GetSshKeyArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .sshKeys(example.applyValue(getSshKeyResult -> getSshKeyResult.id()))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ + public static Output getSshKey(GetSshKeyArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getSshKey:getSshKey", TypeShape.of(GetSshKeyResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a ssh key. This data source provides the name, public key, + * and fingerprint as configured on your DigitalOcean account. This is useful if + * the ssh key in question is not managed by the provider or you need to utilize any + * of the keys data. + * + * An error is triggered if the provided ssh key name does not exist. + * + * ## Example Usage + * + * Get the ssh key: * * <!--Start PulumiCodeChooser --> *
@@ -10651,7 +13870,9 @@ public static CompletableFuture getSpacesBucketsPlain()
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeyArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10665,11 +13886,16 @@ public static CompletableFuture getSpacesBucketsPlain()
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
-     *             .filters(GetSpacesBucketsFilterArgs.builder()
-     *                 .key("region")
-     *                 .values("nyc3")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getSshKey(GetSshKeyArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .sshKeys(example.applyValue(getSshKeyResult -> getSshKeyResult.id()))
      *             .build());
      * 
      *     }
@@ -10677,7 +13903,22 @@ public static CompletableFuture getSpacesBucketsPlain()
      * }
      * 
* <!--End PulumiCodeChooser --> - * You can sort the results as well: + * + */ + public static Output getSshKey(GetSshKeyArgs args, InvokeOutputOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getSshKey:getSshKey", TypeShape.of(GetSshKeyResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a ssh key. This data source provides the name, public key, + * and fingerprint as configured on your DigitalOcean account. This is useful if + * the ssh key in question is not managed by the provider or you need to utilize any + * of the keys data. + * + * An error is triggered if the provided ssh key name does not exist. + * + * ## Example Usage + * + * Get the ssh key: * * <!--Start PulumiCodeChooser --> *
@@ -10688,7 +13929,9 @@ public static CompletableFuture getSpacesBucketsPlain()
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeyArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10702,15 +13945,16 @@ public static CompletableFuture getSpacesBucketsPlain()
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
-     *             .filters(GetSpacesBucketsFilterArgs.builder()
-     *                 .key("region")
-     *                 .values("nyc3")
-     *                 .build())
-     *             .sorts(GetSpacesBucketsSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("desc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getSshKey(GetSshKeyArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .sshKeys(example.applyValue(getSshKeyResult -> getSshKeyResult.id()))
      *             .build());
      * 
      *     }
@@ -10720,21 +13964,21 @@ public static CompletableFuture getSpacesBucketsPlain()
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getSpacesBuckets(GetSpacesBucketsArgs args) {
-        return getSpacesBuckets(args, InvokeOptions.Empty);
+    public static CompletableFuture getSshKeyPlain(GetSshKeyPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getSshKey:getSshKey", TypeShape.of(GetSshKeyResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all Spaces buckets will be returned.
+     * Get information on SSH Keys for use in other resources.
      * 
-     * Note: You can use the `digitalocean.SpacesBucket` data source to
-     * obtain metadata about a single bucket if you already know its `name` and `region`.
+     * This data source is useful if the SSH Keys in question are not managed by the provider or you need to
+     * utilize any of the SSH Keys' data.
      * 
-     * ## Example Usage
+     * Note: You can use the `digitalocean.SshKey` data source to obtain metadata
+     * about a single SSH Key if you already know the unique `name` to retrieve.
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter buckets.
+     * ## Example Usage
      * 
-     * Get all buckets in a region:
+     * For example, to find all SSH keys:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -10745,7 +13989,7 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10759,10 +14003,10 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
-     *             .filters(GetSpacesBucketsFilterArgs.builder()
-     *                 .key("region")
-     *                 .values("nyc3")
+     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
+     *             .sorts(GetSshKeysSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("asc")
      *                 .build())
      *             .build());
      * 
@@ -10771,7 +14015,8 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      * }
      * 
* <!--End PulumiCodeChooser --> - * You can sort the results as well: + * + * Or to find ones matching specific values: * * <!--Start PulumiCodeChooser --> *
@@ -10782,7 +14027,7 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10796,14 +14041,12 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
-     *             .filters(GetSpacesBucketsFilterArgs.builder()
-     *                 .key("region")
-     *                 .values("nyc3")
-     *                 .build())
-     *             .sorts(GetSpacesBucketsSortArgs.builder()
+     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
+     *             .filters(GetSshKeysFilterArgs.builder()
      *                 .key("name")
-     *                 .direction("desc")
+     *                 .values(                
+     *                     "laptop",
+     *                     "desktop")
      *                 .build())
      *             .build());
      * 
@@ -10814,21 +14057,21 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSpacesBucketsPlain(GetSpacesBucketsPlainArgs args) {
-        return getSpacesBucketsPlain(args, InvokeOptions.Empty);
+    public static Output getSshKeys() {
+        return getSshKeys(GetSshKeysArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all Spaces buckets will be returned.
+     * Get information on SSH Keys for use in other resources.
      * 
-     * Note: You can use the `digitalocean.SpacesBucket` data source to
-     * obtain metadata about a single bucket if you already know its `name` and `region`.
+     * This data source is useful if the SSH Keys in question are not managed by the provider or you need to
+     * utilize any of the SSH Keys' data.
      * 
-     * ## Example Usage
+     * Note: You can use the `digitalocean.SshKey` data source to obtain metadata
+     * about a single SSH Key if you already know the unique `name` to retrieve.
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter buckets.
+     * ## Example Usage
      * 
-     * Get all buckets in a region:
+     * For example, to find all SSH keys:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -10839,7 +14082,7 @@ public static CompletableFuture getSpacesBucketsPlain(Ge
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10853,10 +14096,10 @@ public static CompletableFuture getSpacesBucketsPlain(Ge
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
-     *             .filters(GetSpacesBucketsFilterArgs.builder()
-     *                 .key("region")
-     *                 .values("nyc3")
+     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
+     *             .sorts(GetSshKeysSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("asc")
      *                 .build())
      *             .build());
      * 
@@ -10865,7 +14108,8 @@ public static CompletableFuture getSpacesBucketsPlain(Ge
      * }
      * 
* <!--End PulumiCodeChooser --> - * You can sort the results as well: + * + * Or to find ones matching specific values: * * <!--Start PulumiCodeChooser --> *
@@ -10876,7 +14120,7 @@ public static CompletableFuture getSpacesBucketsPlain(Ge
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10890,14 +14134,12 @@ public static CompletableFuture getSpacesBucketsPlain(Ge
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
-     *             .filters(GetSpacesBucketsFilterArgs.builder()
-     *                 .key("region")
-     *                 .values("nyc3")
-     *                 .build())
-     *             .sorts(GetSpacesBucketsSortArgs.builder()
+     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
+     *             .filters(GetSshKeysFilterArgs.builder()
      *                 .key("name")
-     *                 .direction("desc")
+     *                 .values(                
+     *                     "laptop",
+     *                     "desktop")
      *                 .build())
      *             .build());
      * 
@@ -10908,21 +14150,21 @@ public static CompletableFuture getSpacesBucketsPlain(Ge
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getSpacesBuckets(GetSpacesBucketsArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getSpacesBuckets:getSpacesBuckets", TypeShape.of(GetSpacesBucketsResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getSshKeysPlain() {
+        return getSshKeysPlain(GetSshKeysPlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Get information on Spaces buckets for use in other resources, with the ability to filter and sort the results.
-     * If no filters are specified, all Spaces buckets will be returned.
+     * Get information on SSH Keys for use in other resources.
      * 
-     * Note: You can use the `digitalocean.SpacesBucket` data source to
-     * obtain metadata about a single bucket if you already know its `name` and `region`.
+     * This data source is useful if the SSH Keys in question are not managed by the provider or you need to
+     * utilize any of the SSH Keys' data.
      * 
-     * ## Example Usage
+     * Note: You can use the `digitalocean.SshKey` data source to obtain metadata
+     * about a single SSH Key if you already know the unique `name` to retrieve.
      * 
-     * Use the `filter` block with a `key` string and `values` list to filter buckets.
+     * ## Example Usage
      * 
-     * Get all buckets in a region:
+     * For example, to find all SSH keys:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -10933,7 +14175,7 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10947,10 +14189,10 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
-     *             .filters(GetSpacesBucketsFilterArgs.builder()
-     *                 .key("region")
-     *                 .values("nyc3")
+     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
+     *             .sorts(GetSshKeysSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("asc")
      *                 .build())
      *             .build());
      * 
@@ -10959,7 +14201,8 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      * }
      * 
* <!--End PulumiCodeChooser --> - * You can sort the results as well: + * + * Or to find ones matching specific values: * * <!--Start PulumiCodeChooser --> *
@@ -10970,7 +14213,7 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSpacesBucketsArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -10984,14 +14227,12 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var nyc3 = DigitaloceanFunctions.getSpacesBuckets(GetSpacesBucketsArgs.builder()
-     *             .filters(GetSpacesBucketsFilterArgs.builder()
-     *                 .key("region")
-     *                 .values("nyc3")
-     *                 .build())
-     *             .sorts(GetSpacesBucketsSortArgs.builder()
+     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
+     *             .filters(GetSshKeysFilterArgs.builder()
      *                 .key("name")
-     *                 .direction("desc")
+     *                 .values(                
+     *                     "laptop",
+     *                     "desktop")
      *                 .build())
      *             .build());
      * 
@@ -11002,20 +14243,21 @@ public static Output getSpacesBuckets(GetSpacesBucketsAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSpacesBucketsPlain(GetSpacesBucketsPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getSpacesBuckets:getSpacesBuckets", TypeShape.of(GetSpacesBucketsResult.class), args, Utilities.withVersion(options));
+    public static Output getSshKeys(GetSshKeysArgs args) {
+        return getSshKeys(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on a ssh key. This data source provides the name, public key,
-     * and fingerprint as configured on your DigitalOcean account. This is useful if
-     * the ssh key in question is not managed by the provider or you need to utilize any
-     * of the keys data.
+     * Get information on SSH Keys for use in other resources.
      * 
-     * An error is triggered if the provided ssh key name does not exist.
+     * This data source is useful if the SSH Keys in question are not managed by the provider or you need to
+     * utilize any of the SSH Keys' data.
+     * 
+     * Note: You can use the `digitalocean.SshKey` data source to obtain metadata
+     * about a single SSH Key if you already know the unique `name` to retrieve.
      * 
      * ## Example Usage
      * 
-     * Get the ssh key:
+     * For example, to find all SSH keys:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -11026,9 +14268,7 @@ public static CompletableFuture getSpacesBucketsPlain(Ge
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeyArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11042,16 +14282,11 @@ public static CompletableFuture getSpacesBucketsPlain(Ge
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getSshKey(GetSshKeyArgs.builder()
-     *             .name("example")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .sshKeys(example.applyValue(getSshKeyResult -> getSshKeyResult.id()))
+     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
+     *             .sorts(GetSshKeysSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("asc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -11060,21 +14295,7 @@ public static CompletableFuture getSpacesBucketsPlain(Ge
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getSshKey(GetSshKeyArgs args) { - return getSshKey(args, InvokeOptions.Empty); - } - /** - * Get information on a ssh key. This data source provides the name, public key, - * and fingerprint as configured on your DigitalOcean account. This is useful if - * the ssh key in question is not managed by the provider or you need to utilize any - * of the keys data. - * - * An error is triggered if the provided ssh key name does not exist. - * - * ## Example Usage - * - * Get the ssh key: + * Or to find ones matching specific values: * * <!--Start PulumiCodeChooser --> *
@@ -11085,9 +14306,7 @@ public static Output getSshKey(GetSshKeyArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeyArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11101,16 +14320,13 @@ public static Output getSshKey(GetSshKeyArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getSshKey(GetSshKeyArgs.builder()
-     *             .name("example")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .sshKeys(example.applyValue(getSshKeyResult -> getSshKeyResult.id()))
+     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
+     *             .filters(GetSshKeysFilterArgs.builder()
+     *                 .key("name")
+     *                 .values(                
+     *                     "laptop",
+     *                     "desktop")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -11120,20 +14336,21 @@ public static Output getSshKey(GetSshKeyArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSshKeyPlain(GetSshKeyPlainArgs args) {
-        return getSshKeyPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getSshKeysPlain(GetSshKeysPlainArgs args) {
+        return getSshKeysPlain(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on a ssh key. This data source provides the name, public key,
-     * and fingerprint as configured on your DigitalOcean account. This is useful if
-     * the ssh key in question is not managed by the provider or you need to utilize any
-     * of the keys data.
+     * Get information on SSH Keys for use in other resources.
      * 
-     * An error is triggered if the provided ssh key name does not exist.
+     * This data source is useful if the SSH Keys in question are not managed by the provider or you need to
+     * utilize any of the SSH Keys' data.
+     * 
+     * Note: You can use the `digitalocean.SshKey` data source to obtain metadata
+     * about a single SSH Key if you already know the unique `name` to retrieve.
      * 
      * ## Example Usage
      * 
-     * Get the ssh key:
+     * For example, to find all SSH keys:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -11144,9 +14361,7 @@ public static CompletableFuture getSshKeyPlain(GetSshKeyPlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeyArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11160,16 +14375,11 @@ public static CompletableFuture getSshKeyPlain(GetSshKeyPlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getSshKey(GetSshKeyArgs.builder()
-     *             .name("example")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .sshKeys(example.applyValue(getSshKeyResult -> getSshKeyResult.id()))
+     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
+     *             .sorts(GetSshKeysSortArgs.builder()
+     *                 .key("name")
+     *                 .direction("asc")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -11178,21 +14388,7 @@ public static CompletableFuture getSshKeyPlain(GetSshKeyPlainAr
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getSshKey(GetSshKeyArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getSshKey:getSshKey", TypeShape.of(GetSshKeyResult.class), args, Utilities.withVersion(options)); - } - /** - * Get information on a ssh key. This data source provides the name, public key, - * and fingerprint as configured on your DigitalOcean account. This is useful if - * the ssh key in question is not managed by the provider or you need to utilize any - * of the keys data. - * - * An error is triggered if the provided ssh key name does not exist. - * - * ## Example Usage - * - * Get the ssh key: + * Or to find ones matching specific values: * * <!--Start PulumiCodeChooser --> *
@@ -11203,9 +14399,7 @@ public static Output getSshKey(GetSshKeyArgs args, InvokeOption
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeyArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11219,16 +14413,13 @@ public static Output getSshKey(GetSshKeyArgs args, InvokeOption
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getSshKey(GetSshKeyArgs.builder()
-     *             .name("example")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .sshKeys(example.applyValue(getSshKeyResult -> getSshKeyResult.id()))
+     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
+     *             .filters(GetSshKeysFilterArgs.builder()
+     *                 .key("name")
+     *                 .values(                
+     *                     "laptop",
+     *                     "desktop")
+     *                 .build())
      *             .build());
      * 
      *     }
@@ -11238,8 +14429,8 @@ public static Output getSshKey(GetSshKeyArgs args, InvokeOption
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSshKeyPlain(GetSshKeyPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getSshKey:getSshKey", TypeShape.of(GetSshKeyResult.class), args, Utilities.withVersion(options));
+    public static Output getSshKeys(GetSshKeysArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getSshKeys:getSshKeys", TypeShape.of(GetSshKeysResult.class), args, Utilities.withVersion(options));
     }
     /**
      * Get information on SSH Keys for use in other resources.
@@ -11331,8 +14522,8 @@ public static CompletableFuture getSshKeyPlain(GetSshKeyPlainAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getSshKeys() {
-        return getSshKeys(GetSshKeysArgs.Empty, InvokeOptions.Empty);
+    public static Output getSshKeys(GetSshKeysArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getSshKeys:getSshKeys", TypeShape.of(GetSshKeysResult.class), args, Utilities.withVersion(options));
     }
     /**
      * Get information on SSH Keys for use in other resources.
@@ -11424,21 +14615,19 @@ public static Output getSshKeys() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSshKeysPlain() {
-        return getSshKeysPlain(GetSshKeysPlainArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getSshKeysPlain(GetSshKeysPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getSshKeys:getSshKeys", TypeShape.of(GetSshKeysResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on SSH Keys for use in other resources.
-     * 
-     * This data source is useful if the SSH Keys in question are not managed by the provider or you need to
-     * utilize any of the SSH Keys' data.
+     * Get information on a tag. This data source provides the name as configured on
+     * your DigitalOcean account. This is useful if the tag name in question is not
+     * managed by the provider or you need validate if the tag exists in the account.
      * 
-     * Note: You can use the `digitalocean.SshKey` data source to obtain metadata
-     * about a single SSH Key if you already know the unique `name` to retrieve.
+     * An error is triggered if the provided tag name does not exist.
      * 
      * ## Example Usage
      * 
-     * For example, to find all SSH keys:
+     * Get the tag:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -11449,7 +14638,9 @@ public static CompletableFuture getSshKeysPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11463,11 +14654,16 @@ public static CompletableFuture getSshKeysPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
-     *             .sorts(GetSshKeysSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("asc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getTag(GetTagArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .tags(example.applyValue(getTagResult -> getTagResult.name()))
      *             .build());
      * 
      *     }
@@ -11476,7 +14672,20 @@ public static CompletableFuture getSshKeysPlain() {
      * 
* <!--End PulumiCodeChooser --> * - * Or to find ones matching specific values: + */ + public static Output getTag(GetTagArgs args) { + return getTag(args, InvokeOptions.Empty); + } + /** + * Get information on a tag. This data source provides the name as configured on + * your DigitalOcean account. This is useful if the tag name in question is not + * managed by the provider or you need validate if the tag exists in the account. + * + * An error is triggered if the provided tag name does not exist. + * + * ## Example Usage + * + * Get the tag: * * <!--Start PulumiCodeChooser --> *
@@ -11487,7 +14696,9 @@ public static CompletableFuture getSshKeysPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11501,13 +14712,16 @@ public static CompletableFuture getSshKeysPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
-     *             .filters(GetSshKeysFilterArgs.builder()
-     *                 .key("name")
-     *                 .values(                
-     *                     "laptop",
-     *                     "desktop")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getTag(GetTagArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .tags(example.applyValue(getTagResult -> getTagResult.name()))
      *             .build());
      * 
      *     }
@@ -11517,21 +14731,19 @@ public static CompletableFuture getSshKeysPlain() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getSshKeys(GetSshKeysArgs args) {
-        return getSshKeys(args, InvokeOptions.Empty);
+    public static CompletableFuture getTagPlain(GetTagPlainArgs args) {
+        return getTagPlain(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on SSH Keys for use in other resources.
-     * 
-     * This data source is useful if the SSH Keys in question are not managed by the provider or you need to
-     * utilize any of the SSH Keys' data.
+     * Get information on a tag. This data source provides the name as configured on
+     * your DigitalOcean account. This is useful if the tag name in question is not
+     * managed by the provider or you need validate if the tag exists in the account.
      * 
-     * Note: You can use the `digitalocean.SshKey` data source to obtain metadata
-     * about a single SSH Key if you already know the unique `name` to retrieve.
+     * An error is triggered if the provided tag name does not exist.
      * 
      * ## Example Usage
      * 
-     * For example, to find all SSH keys:
+     * Get the tag:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -11542,7 +14754,9 @@ public static Output getSshKeys(GetSshKeysArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11556,11 +14770,16 @@ public static Output getSshKeys(GetSshKeysArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
-     *             .sorts(GetSshKeysSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("asc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getTag(GetTagArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .tags(example.applyValue(getTagResult -> getTagResult.name()))
      *             .build());
      * 
      *     }
@@ -11569,7 +14788,20 @@ public static Output getSshKeys(GetSshKeysArgs args) {
      * 
* <!--End PulumiCodeChooser --> * - * Or to find ones matching specific values: + */ + public static Output getTag(GetTagArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("digitalocean:index/getTag:getTag", TypeShape.of(GetTagResult.class), args, Utilities.withVersion(options)); + } + /** + * Get information on a tag. This data source provides the name as configured on + * your DigitalOcean account. This is useful if the tag name in question is not + * managed by the provider or you need validate if the tag exists in the account. + * + * An error is triggered if the provided tag name does not exist. + * + * ## Example Usage + * + * Get the tag: * * <!--Start PulumiCodeChooser --> *
@@ -11580,7 +14812,9 @@ public static Output getSshKeys(GetSshKeysArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11594,13 +14828,16 @@ public static Output getSshKeys(GetSshKeysArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
-     *             .filters(GetSshKeysFilterArgs.builder()
-     *                 .key("name")
-     *                 .values(                
-     *                     "laptop",
-     *                     "desktop")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getTag(GetTagArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .tags(example.applyValue(getTagResult -> getTagResult.name()))
      *             .build());
      * 
      *     }
@@ -11610,21 +14847,19 @@ public static Output getSshKeys(GetSshKeysArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSshKeysPlain(GetSshKeysPlainArgs args) {
-        return getSshKeysPlain(args, InvokeOptions.Empty);
+    public static Output getTag(GetTagArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getTag:getTag", TypeShape.of(GetTagResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on SSH Keys for use in other resources.
-     * 
-     * This data source is useful if the SSH Keys in question are not managed by the provider or you need to
-     * utilize any of the SSH Keys' data.
+     * Get information on a tag. This data source provides the name as configured on
+     * your DigitalOcean account. This is useful if the tag name in question is not
+     * managed by the provider or you need validate if the tag exists in the account.
      * 
-     * Note: You can use the `digitalocean.SshKey` data source to obtain metadata
-     * about a single SSH Key if you already know the unique `name` to retrieve.
+     * An error is triggered if the provided tag name does not exist.
      * 
      * ## Example Usage
      * 
-     * For example, to find all SSH keys:
+     * Get the tag:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -11635,7 +14870,9 @@ public static CompletableFuture getSshKeysPlain(GetSshKeysPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11649,11 +14886,16 @@ public static CompletableFuture getSshKeysPlain(GetSshKeysPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
-     *             .sorts(GetSshKeysSortArgs.builder()
-     *                 .key("name")
-     *                 .direction("asc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getTag(GetTagArgs.builder()
+     *             .name("example")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .image("ubuntu-18-04-x64")
+     *             .name("example-1")
+     *             .region("nyc2")
+     *             .size("s-1vcpu-1gb")
+     *             .tags(example.applyValue(getTagResult -> getTagResult.name()))
      *             .build());
      * 
      *     }
@@ -11662,7 +14904,16 @@ public static CompletableFuture getSshKeysPlain(GetSshKeysPlai
      * 
* <!--End PulumiCodeChooser --> * - * Or to find ones matching specific values: + */ + public static CompletableFuture getTagPlain(GetTagPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("digitalocean:index/getTag:getTag", TypeShape.of(GetTagResult.class), args, Utilities.withVersion(options)); + } + /** + * Returns a list of tags in your DigitalOcean account, with the ability to + * filter and sort the results. If no filters are specified, all tags will be + * returned. + * + * ## Example Usage * * <!--Start PulumiCodeChooser --> *
@@ -11673,7 +14924,7 @@ public static CompletableFuture getSshKeysPlain(GetSshKeysPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11687,15 +14938,14 @@ public static CompletableFuture getSshKeysPlain(GetSshKeysPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
-     *             .filters(GetSshKeysFilterArgs.builder()
-     *                 .key("name")
-     *                 .values(                
-     *                     "laptop",
-     *                     "desktop")
+     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
+     *             .sorts(GetTagsSortArgs.builder()
+     *                 .key("total_resource_count")
+     *                 .direction("asc")
      *                 .build())
      *             .build());
      * 
+     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
@@ -11703,22 +14953,16 @@ public static CompletableFuture getSshKeysPlain(GetSshKeysPlai
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getSshKeys(GetSshKeysArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getSshKeys:getSshKeys", TypeShape.of(GetSshKeysResult.class), args, Utilities.withVersion(options));
+    public static Output getTags() {
+        return getTags(GetTagsArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Get information on SSH Keys for use in other resources.
-     * 
-     * This data source is useful if the SSH Keys in question are not managed by the provider or you need to
-     * utilize any of the SSH Keys' data.
-     * 
-     * Note: You can use the `digitalocean.SshKey` data source to obtain metadata
-     * about a single SSH Key if you already know the unique `name` to retrieve.
+     * Returns a list of tags in your DigitalOcean account, with the ability to
+     * filter and sort the results. If no filters are specified, all tags will be
+     * returned.
      * 
      * ## Example Usage
      * 
-     * For example, to find all SSH keys:
-     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11728,7 +14972,7 @@ public static Output getSshKeys(GetSshKeysArgs args, InvokeOpt
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11742,20 +14986,30 @@ public static Output getSshKeys(GetSshKeysArgs args, InvokeOpt
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
-     *             .sorts(GetSshKeysSortArgs.builder()
-     *                 .key("name")
+     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
+     *             .sorts(GetTagsSortArgs.builder()
+     *                 .key("total_resource_count")
      *                 .direction("asc")
      *                 .build())
      *             .build());
      * 
+     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - * Or to find ones matching specific values: + */ + public static CompletableFuture getTagsPlain() { + return getTagsPlain(GetTagsPlainArgs.Empty, InvokeOptions.Empty); + } + /** + * Returns a list of tags in your DigitalOcean account, with the ability to + * filter and sort the results. If no filters are specified, all tags will be + * returned. + * + * ## Example Usage * * <!--Start PulumiCodeChooser --> *
@@ -11766,7 +15020,7 @@ public static Output getSshKeys(GetSshKeysArgs args, InvokeOpt
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetSshKeysArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11780,15 +15034,14 @@ public static Output getSshKeys(GetSshKeysArgs args, InvokeOpt
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var keys = DigitaloceanFunctions.getSshKeys(GetSshKeysArgs.builder()
-     *             .filters(GetSshKeysFilterArgs.builder()
-     *                 .key("name")
-     *                 .values(                
-     *                     "laptop",
-     *                     "desktop")
+     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
+     *             .sorts(GetTagsSortArgs.builder()
+     *                 .key("total_resource_count")
+     *                 .direction("asc")
      *                 .build())
      *             .build());
      * 
+     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
@@ -11796,20 +15049,16 @@ public static Output getSshKeys(GetSshKeysArgs args, InvokeOpt
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getSshKeysPlain(GetSshKeysPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getSshKeys:getSshKeys", TypeShape.of(GetSshKeysResult.class), args, Utilities.withVersion(options));
+    public static Output getTags(GetTagsArgs args) {
+        return getTags(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on a tag. This data source provides the name as configured on
-     * your DigitalOcean account. This is useful if the tag name in question is not
-     * managed by the provider or you need validate if the tag exists in the account.
-     * 
-     * An error is triggered if the provided tag name does not exist.
+     * Returns a list of tags in your DigitalOcean account, with the ability to
+     * filter and sort the results. If no filters are specified, all tags will be
+     * returned.
      * 
      * ## Example Usage
      * 
-     * Get the tag:
-     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11819,9 +15068,7 @@ public static CompletableFuture getSshKeysPlain(GetSshKeysPlai
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetTagArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11835,18 +15082,14 @@ public static CompletableFuture getSshKeysPlain(GetSshKeysPlai
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getTag(GetTagArgs.builder()
-     *             .name("example")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .tags(example.applyValue(getTagResult -> getTagResult.name()))
+     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
+     *             .sorts(GetTagsSortArgs.builder()
+     *                 .key("total_resource_count")
+     *                 .direction("asc")
+     *                 .build())
      *             .build());
      * 
+     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
@@ -11854,20 +15097,16 @@ public static CompletableFuture getSshKeysPlain(GetSshKeysPlai
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getTag(GetTagArgs args) {
-        return getTag(args, InvokeOptions.Empty);
+    public static CompletableFuture getTagsPlain(GetTagsPlainArgs args) {
+        return getTagsPlain(args, InvokeOptions.Empty);
     }
     /**
-     * Get information on a tag. This data source provides the name as configured on
-     * your DigitalOcean account. This is useful if the tag name in question is not
-     * managed by the provider or you need validate if the tag exists in the account.
-     * 
-     * An error is triggered if the provided tag name does not exist.
+     * Returns a list of tags in your DigitalOcean account, with the ability to
+     * filter and sort the results. If no filters are specified, all tags will be
+     * returned.
      * 
      * ## Example Usage
      * 
-     * Get the tag:
-     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11877,9 +15116,7 @@ public static Output getTag(GetTagArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetTagArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11893,18 +15130,14 @@ public static Output getTag(GetTagArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getTag(GetTagArgs.builder()
-     *             .name("example")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .tags(example.applyValue(getTagResult -> getTagResult.name()))
+     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
+     *             .sorts(GetTagsSortArgs.builder()
+     *                 .key("total_resource_count")
+     *                 .direction("asc")
+     *                 .build())
      *             .build());
      * 
+     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
@@ -11912,20 +15145,16 @@ public static Output getTag(GetTagArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getTagPlain(GetTagPlainArgs args) {
-        return getTagPlain(args, InvokeOptions.Empty);
+    public static Output getTags(GetTagsArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getTags:getTags", TypeShape.of(GetTagsResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on a tag. This data source provides the name as configured on
-     * your DigitalOcean account. This is useful if the tag name in question is not
-     * managed by the provider or you need validate if the tag exists in the account.
-     * 
-     * An error is triggered if the provided tag name does not exist.
+     * Returns a list of tags in your DigitalOcean account, with the ability to
+     * filter and sort the results. If no filters are specified, all tags will be
+     * returned.
      * 
      * ## Example Usage
      * 
-     * Get the tag:
-     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11935,9 +15164,7 @@ public static CompletableFuture getTagPlain(GetTagPlainArgs args)
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetTagArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -11951,18 +15178,14 @@ public static CompletableFuture getTagPlain(GetTagPlainArgs args)
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getTag(GetTagArgs.builder()
-     *             .name("example")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .tags(example.applyValue(getTagResult -> getTagResult.name()))
+     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
+     *             .sorts(GetTagsSortArgs.builder()
+     *                 .key("total_resource_count")
+     *                 .direction("asc")
+     *                 .build())
      *             .build());
      * 
+     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
@@ -11970,20 +15193,16 @@ public static CompletableFuture getTagPlain(GetTagPlainArgs args)
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getTag(GetTagArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getTag:getTag", TypeShape.of(GetTagResult.class), args, Utilities.withVersion(options));
+    public static Output getTags(GetTagsArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getTags:getTags", TypeShape.of(GetTagsResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on a tag. This data source provides the name as configured on
-     * your DigitalOcean account. This is useful if the tag name in question is not
-     * managed by the provider or you need validate if the tag exists in the account.
-     * 
-     * An error is triggered if the provided tag name does not exist.
+     * Returns a list of tags in your DigitalOcean account, with the ability to
+     * filter and sort the results. If no filters are specified, all tags will be
+     * returned.
      * 
      * ## Example Usage
      * 
-     * Get the tag:
-     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -11993,9 +15212,7 @@ public static Output getTag(GetTagArgs args, InvokeOptions options
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetTagArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12009,18 +15226,14 @@ public static Output getTag(GetTagArgs args, InvokeOptions options
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getTag(GetTagArgs.builder()
-     *             .name("example")
-     *             .build());
-     * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .image("ubuntu-18-04-x64")
-     *             .name("example-1")
-     *             .region("nyc2")
-     *             .size("s-1vcpu-1gb")
-     *             .tags(example.applyValue(getTagResult -> getTagResult.name()))
+     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
+     *             .sorts(GetTagsSortArgs.builder()
+     *                 .key("total_resource_count")
+     *                 .direction("asc")
+     *                 .build())
      *             .build());
      * 
+     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
@@ -12028,16 +15241,21 @@ public static Output getTag(GetTagArgs args, InvokeOptions options
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getTagPlain(GetTagPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getTag:getTag", TypeShape.of(GetTagResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getTagsPlain(GetTagsPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getTags:getTags", TypeShape.of(GetTagsResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Returns a list of tags in your DigitalOcean account, with the ability to
-     * filter and sort the results. If no filters are specified, all tags will be
-     * returned.
+     * Get information on a volume for use in other resources. This data source provides
+     * all of the volumes properties as configured on your DigitalOcean account. This is
+     * useful if the volume in question is not managed by the provider or you need to utilize
+     * any of the volumes data.
+     * 
+     * An error is triggered if the provided volume name does not exist.
      * 
      * ## Example Usage
      * 
+     * Get the volume:
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12047,7 +15265,7 @@ public static CompletableFuture getTagPlain(GetTagPlainArgs args,
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
+     * import com.pulumi.digitalocean.inputs.GetVolumeArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12061,30 +15279,18 @@ public static CompletableFuture getTagPlain(GetTagPlainArgs args,
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
-     *             .sorts(GetTagsSortArgs.builder()
-     *                 .key("total_resource_count")
-     *                 .direction("asc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getVolume(GetVolumeArgs.builder()
+     *             .name("app-data")
+     *             .region("nyc3")
      *             .build());
      * 
-     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getTags() { - return getTags(GetTagsArgs.Empty, InvokeOptions.Empty); - } - /** - * Returns a list of tags in your DigitalOcean account, with the ability to - * filter and sort the results. If no filters are specified, all tags will be - * returned. - * - * ## Example Usage + * Reuse the data about a volume to attach it to a Droplet: * * <!--Start PulumiCodeChooser --> *
@@ -12095,7 +15301,11 @@ public static Output getTags() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
+     * import com.pulumi.digitalocean.inputs.GetVolumeArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.VolumeAttachment;
+     * import com.pulumi.digitalocean.VolumeAttachmentArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12109,14 +15319,23 @@ public static Output getTags() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
-     *             .sorts(GetTagsSortArgs.builder()
-     *                 .key("total_resource_count")
-     *                 .direction("asc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getVolume(GetVolumeArgs.builder()
+     *             .name("app-data")
+     *             .region("nyc3")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .name("foo")
+     *             .size("s-1vcpu-1gb")
+     *             .image("ubuntu-18-04-x64")
+     *             .region("nyc3")
+     *             .build());
+     * 
+     *         var foobar = new VolumeAttachment("foobar", VolumeAttachmentArgs.builder()
+     *             .dropletId(exampleDroplet.id())
+     *             .volumeId(example.applyValue(getVolumeResult -> getVolumeResult.id()))
      *             .build());
      * 
-     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
@@ -12124,16 +15343,21 @@ public static Output getTags() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getTagsPlain() {
-        return getTagsPlain(GetTagsPlainArgs.Empty, InvokeOptions.Empty);
+    public static Output getVolume(GetVolumeArgs args) {
+        return getVolume(args, InvokeOptions.Empty);
     }
     /**
-     * Returns a list of tags in your DigitalOcean account, with the ability to
-     * filter and sort the results. If no filters are specified, all tags will be
-     * returned.
+     * Get information on a volume for use in other resources. This data source provides
+     * all of the volumes properties as configured on your DigitalOcean account. This is
+     * useful if the volume in question is not managed by the provider or you need to utilize
+     * any of the volumes data.
+     * 
+     * An error is triggered if the provided volume name does not exist.
      * 
      * ## Example Usage
      * 
+     * Get the volume:
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12143,7 +15367,7 @@ public static CompletableFuture getTagsPlain() {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
+     * import com.pulumi.digitalocean.inputs.GetVolumeArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12157,30 +15381,18 @@ public static CompletableFuture getTagsPlain() {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
-     *             .sorts(GetTagsSortArgs.builder()
-     *                 .key("total_resource_count")
-     *                 .direction("asc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getVolume(GetVolumeArgs.builder()
+     *             .name("app-data")
+     *             .region("nyc3")
      *             .build());
      * 
-     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getTags(GetTagsArgs args) { - return getTags(args, InvokeOptions.Empty); - } - /** - * Returns a list of tags in your DigitalOcean account, with the ability to - * filter and sort the results. If no filters are specified, all tags will be - * returned. - * - * ## Example Usage + * Reuse the data about a volume to attach it to a Droplet: * * <!--Start PulumiCodeChooser --> *
@@ -12191,7 +15403,11 @@ public static Output getTags(GetTagsArgs args) {
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
+     * import com.pulumi.digitalocean.inputs.GetVolumeArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.VolumeAttachment;
+     * import com.pulumi.digitalocean.VolumeAttachmentArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12205,14 +15421,23 @@ public static Output getTags(GetTagsArgs args) {
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
-     *             .sorts(GetTagsSortArgs.builder()
-     *                 .key("total_resource_count")
-     *                 .direction("asc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getVolume(GetVolumeArgs.builder()
+     *             .name("app-data")
+     *             .region("nyc3")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .name("foo")
+     *             .size("s-1vcpu-1gb")
+     *             .image("ubuntu-18-04-x64")
+     *             .region("nyc3")
+     *             .build());
+     * 
+     *         var foobar = new VolumeAttachment("foobar", VolumeAttachmentArgs.builder()
+     *             .dropletId(exampleDroplet.id())
+     *             .volumeId(example.applyValue(getVolumeResult -> getVolumeResult.id()))
      *             .build());
      * 
-     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
@@ -12220,16 +15445,21 @@ public static Output getTags(GetTagsArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getTagsPlain(GetTagsPlainArgs args) {
-        return getTagsPlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getVolumePlain(GetVolumePlainArgs args) {
+        return getVolumePlain(args, InvokeOptions.Empty);
     }
     /**
-     * Returns a list of tags in your DigitalOcean account, with the ability to
-     * filter and sort the results. If no filters are specified, all tags will be
-     * returned.
+     * Get information on a volume for use in other resources. This data source provides
+     * all of the volumes properties as configured on your DigitalOcean account. This is
+     * useful if the volume in question is not managed by the provider or you need to utilize
+     * any of the volumes data.
+     * 
+     * An error is triggered if the provided volume name does not exist.
      * 
      * ## Example Usage
      * 
+     * Get the volume:
+     * 
      * <!--Start PulumiCodeChooser -->
      * 
      * {@code
@@ -12239,7 +15469,7 @@ public static CompletableFuture getTagsPlain(GetTagsPlainArgs arg
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
+     * import com.pulumi.digitalocean.inputs.GetVolumeArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12253,30 +15483,18 @@ public static CompletableFuture getTagsPlain(GetTagsPlainArgs arg
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
-     *             .sorts(GetTagsSortArgs.builder()
-     *                 .key("total_resource_count")
-     *                 .direction("asc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getVolume(GetVolumeArgs.builder()
+     *             .name("app-data")
+     *             .region("nyc3")
      *             .build());
      * 
-     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
      * 
* <!--End PulumiCodeChooser --> * - */ - public static Output getTags(GetTagsArgs args, InvokeOptions options) { - return Deployment.getInstance().invoke("digitalocean:index/getTags:getTags", TypeShape.of(GetTagsResult.class), args, Utilities.withVersion(options)); - } - /** - * Returns a list of tags in your DigitalOcean account, with the ability to - * filter and sort the results. If no filters are specified, all tags will be - * returned. - * - * ## Example Usage + * Reuse the data about a volume to attach it to a Droplet: * * <!--Start PulumiCodeChooser --> *
@@ -12287,7 +15505,11 @@ public static Output getTags(GetTagsArgs args, InvokeOptions opti
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetTagsArgs;
+     * import com.pulumi.digitalocean.inputs.GetVolumeArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import com.pulumi.digitalocean.VolumeAttachment;
+     * import com.pulumi.digitalocean.VolumeAttachmentArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12301,14 +15523,23 @@ public static Output getTags(GetTagsArgs args, InvokeOptions opti
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var list = DigitaloceanFunctions.getTags(GetTagsArgs.builder()
-     *             .sorts(GetTagsSortArgs.builder()
-     *                 .key("total_resource_count")
-     *                 .direction("asc")
-     *                 .build())
+     *         final var example = DigitaloceanFunctions.getVolume(GetVolumeArgs.builder()
+     *             .name("app-data")
+     *             .region("nyc3")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .name("foo")
+     *             .size("s-1vcpu-1gb")
+     *             .image("ubuntu-18-04-x64")
+     *             .region("nyc3")
+     *             .build());
+     * 
+     *         var foobar = new VolumeAttachment("foobar", VolumeAttachmentArgs.builder()
+     *             .dropletId(exampleDroplet.id())
+     *             .volumeId(example.applyValue(getVolumeResult -> getVolumeResult.id()))
      *             .build());
      * 
-     *         ctx.export("sortedTags", list.applyValue(getTagsResult -> getTagsResult.tags()));
      *     }
      * }
      * }
@@ -12316,8 +15547,8 @@ public static Output getTags(GetTagsArgs args, InvokeOptions opti
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getTagsPlain(GetTagsPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getTags:getTags", TypeShape.of(GetTagsResult.class), args, Utilities.withVersion(options));
+    public static Output getVolume(GetVolumeArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getVolume:getVolume", TypeShape.of(GetVolumeResult.class), args, Utilities.withVersion(options));
     }
     /**
      * Get information on a volume for use in other resources. This data source provides
@@ -12418,8 +15649,8 @@ public static CompletableFuture getTagsPlain(GetTagsPlainArgs arg
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getVolume(GetVolumeArgs args) {
-        return getVolume(args, InvokeOptions.Empty);
+    public static Output getVolume(GetVolumeArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getVolume:getVolume", TypeShape.of(GetVolumeResult.class), args, Utilities.withVersion(options));
     }
     /**
      * Get information on a volume for use in other resources. This data source provides
@@ -12520,20 +15751,17 @@ public static Output getVolume(GetVolumeArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getVolumePlain(GetVolumePlainArgs args) {
-        return getVolumePlain(args, InvokeOptions.Empty);
+    public static CompletableFuture getVolumePlain(GetVolumePlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getVolume:getVolume", TypeShape.of(GetVolumeResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Get information on a volume for use in other resources. This data source provides
-     * all of the volumes properties as configured on your DigitalOcean account. This is
-     * useful if the volume in question is not managed by the provider or you need to utilize
-     * any of the volumes data.
-     * 
-     * An error is triggered if the provided volume name does not exist.
+     * Volume snapshots are saved instances of a block storage volume. Use this data
+     * source to retrieve the ID of a DigitalOcean volume snapshot for use in other
+     * resources.
      * 
      * ## Example Usage
      * 
-     * Get the volume:
+     * Get the volume snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -12544,7 +15772,7 @@ public static CompletableFuture getVolumePlain(GetVolumePlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetVolumeArgs;
+     * import com.pulumi.digitalocean.inputs.GetVolumeSnapshotArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12558,9 +15786,10 @@ public static CompletableFuture getVolumePlain(GetVolumePlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getVolume(GetVolumeArgs.builder()
-     *             .name("app-data")
+     *         final var snapshot = DigitaloceanFunctions.getVolumeSnapshot(GetVolumeSnapshotArgs.builder()
+     *             .nameRegex("^web")
      *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
      *     }
@@ -12569,7 +15798,7 @@ public static CompletableFuture getVolumePlain(GetVolumePlainAr
      * 
* <!--End PulumiCodeChooser --> * - * Reuse the data about a volume to attach it to a Droplet: + * Reuse the data about a volume snapshot to create a new volume based on it: * * <!--Start PulumiCodeChooser --> *
@@ -12580,11 +15809,9 @@ public static CompletableFuture getVolumePlain(GetVolumePlainAr
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetVolumeArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
-     * import com.pulumi.digitalocean.VolumeAttachment;
-     * import com.pulumi.digitalocean.VolumeAttachmentArgs;
+     * import com.pulumi.digitalocean.inputs.GetVolumeSnapshotArgs;
+     * import com.pulumi.digitalocean.Volume;
+     * import com.pulumi.digitalocean.VolumeArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12598,21 +15825,17 @@ public static CompletableFuture getVolumePlain(GetVolumePlainAr
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getVolume(GetVolumeArgs.builder()
-     *             .name("app-data")
+     *         final var snapshot = DigitaloceanFunctions.getVolumeSnapshot(GetVolumeSnapshotArgs.builder()
+     *             .nameRegex("^web")
      *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .name("foo")
-     *             .size("s-1vcpu-1gb")
-     *             .image("ubuntu-18-04-x64")
+     *         var foobar = new Volume("foobar", VolumeArgs.builder()
      *             .region("nyc3")
-     *             .build());
-     * 
-     *         var foobar = new VolumeAttachment("foobar", VolumeAttachmentArgs.builder()
-     *             .dropletId(exampleDroplet.id())
-     *             .volumeId(example.applyValue(getVolumeResult -> getVolumeResult.id()))
+     *             .name("baz")
+     *             .size(100)
+     *             .snapshotId(snapshot.applyValue(getVolumeSnapshotResult -> getVolumeSnapshotResult.id()))
      *             .build());
      * 
      *     }
@@ -12622,20 +15845,17 @@ public static CompletableFuture getVolumePlain(GetVolumePlainAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getVolume(GetVolumeArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getVolume:getVolume", TypeShape.of(GetVolumeResult.class), args, Utilities.withVersion(options));
+    public static Output getVolumeSnapshot() {
+        return getVolumeSnapshot(GetVolumeSnapshotArgs.Empty, InvokeOptions.Empty);
     }
     /**
-     * Get information on a volume for use in other resources. This data source provides
-     * all of the volumes properties as configured on your DigitalOcean account. This is
-     * useful if the volume in question is not managed by the provider or you need to utilize
-     * any of the volumes data.
-     * 
-     * An error is triggered if the provided volume name does not exist.
+     * Volume snapshots are saved instances of a block storage volume. Use this data
+     * source to retrieve the ID of a DigitalOcean volume snapshot for use in other
+     * resources.
      * 
      * ## Example Usage
      * 
-     * Get the volume:
+     * Get the volume snapshot:
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -12646,7 +15866,7 @@ public static Output getVolume(GetVolumeArgs args, InvokeOption
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetVolumeArgs;
+     * import com.pulumi.digitalocean.inputs.GetVolumeSnapshotArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12660,9 +15880,10 @@ public static Output getVolume(GetVolumeArgs args, InvokeOption
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getVolume(GetVolumeArgs.builder()
-     *             .name("app-data")
+     *         final var snapshot = DigitaloceanFunctions.getVolumeSnapshot(GetVolumeSnapshotArgs.builder()
+     *             .nameRegex("^web")
      *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
      *     }
@@ -12671,7 +15892,7 @@ public static Output getVolume(GetVolumeArgs args, InvokeOption
      * 
* <!--End PulumiCodeChooser --> * - * Reuse the data about a volume to attach it to a Droplet: + * Reuse the data about a volume snapshot to create a new volume based on it: * * <!--Start PulumiCodeChooser --> *
@@ -12682,11 +15903,9 @@ public static Output getVolume(GetVolumeArgs args, InvokeOption
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetVolumeArgs;
-     * import com.pulumi.digitalocean.Droplet;
-     * import com.pulumi.digitalocean.DropletArgs;
-     * import com.pulumi.digitalocean.VolumeAttachment;
-     * import com.pulumi.digitalocean.VolumeAttachmentArgs;
+     * import com.pulumi.digitalocean.inputs.GetVolumeSnapshotArgs;
+     * import com.pulumi.digitalocean.Volume;
+     * import com.pulumi.digitalocean.VolumeArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -12700,21 +15919,17 @@ public static Output getVolume(GetVolumeArgs args, InvokeOption
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var example = DigitaloceanFunctions.getVolume(GetVolumeArgs.builder()
-     *             .name("app-data")
+     *         final var snapshot = DigitaloceanFunctions.getVolumeSnapshot(GetVolumeSnapshotArgs.builder()
+     *             .nameRegex("^web")
      *             .region("nyc3")
+     *             .mostRecent(true)
      *             .build());
      * 
-     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
-     *             .name("foo")
-     *             .size("s-1vcpu-1gb")
-     *             .image("ubuntu-18-04-x64")
+     *         var foobar = new Volume("foobar", VolumeArgs.builder()
      *             .region("nyc3")
-     *             .build());
-     * 
-     *         var foobar = new VolumeAttachment("foobar", VolumeAttachmentArgs.builder()
-     *             .dropletId(exampleDroplet.id())
-     *             .volumeId(example.applyValue(getVolumeResult -> getVolumeResult.id()))
+     *             .name("baz")
+     *             .size(100)
+     *             .snapshotId(snapshot.applyValue(getVolumeSnapshotResult -> getVolumeSnapshotResult.id()))
      *             .build());
      * 
      *     }
@@ -12724,8 +15939,8 @@ public static Output getVolume(GetVolumeArgs args, InvokeOption
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getVolumePlain(GetVolumePlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getVolume:getVolume", TypeShape.of(GetVolumeResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getVolumeSnapshotPlain() {
+        return getVolumeSnapshotPlain(GetVolumeSnapshotPlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
      * Volume snapshots are saved instances of a block storage volume. Use this data
@@ -12818,8 +16033,8 @@ public static CompletableFuture getVolumePlain(GetVolumePlainAr
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getVolumeSnapshot() {
-        return getVolumeSnapshot(GetVolumeSnapshotArgs.Empty, InvokeOptions.Empty);
+    public static Output getVolumeSnapshot(GetVolumeSnapshotArgs args) {
+        return getVolumeSnapshot(args, InvokeOptions.Empty);
     }
     /**
      * Volume snapshots are saved instances of a block storage volume. Use this data
@@ -12912,8 +16127,8 @@ public static Output getVolumeSnapshot() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getVolumeSnapshotPlain() {
-        return getVolumeSnapshotPlain(GetVolumeSnapshotPlainArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getVolumeSnapshotPlain(GetVolumeSnapshotPlainArgs args) {
+        return getVolumeSnapshotPlain(args, InvokeOptions.Empty);
     }
     /**
      * Volume snapshots are saved instances of a block storage volume. Use this data
@@ -13006,8 +16221,8 @@ public static CompletableFuture getVolumeSnapshotPlain(
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getVolumeSnapshot(GetVolumeSnapshotArgs args) {
-        return getVolumeSnapshot(args, InvokeOptions.Empty);
+    public static Output getVolumeSnapshot(GetVolumeSnapshotArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getVolumeSnapshot:getVolumeSnapshot", TypeShape.of(GetVolumeSnapshotResult.class), args, Utilities.withVersion(options));
     }
     /**
      * Volume snapshots are saved instances of a block storage volume. Use this data
@@ -13100,8 +16315,8 @@ public static Output getVolumeSnapshot(GetVolumeSnapsho
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getVolumeSnapshotPlain(GetVolumeSnapshotPlainArgs args) {
-        return getVolumeSnapshotPlain(args, InvokeOptions.Empty);
+    public static Output getVolumeSnapshot(GetVolumeSnapshotArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getVolumeSnapshot:getVolumeSnapshot", TypeShape.of(GetVolumeSnapshotResult.class), args, Utilities.withVersion(options));
     }
     /**
      * Volume snapshots are saved instances of a block storage volume. Use this data
@@ -13194,17 +16409,22 @@ public static CompletableFuture getVolumeSnapshotPlain(
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getVolumeSnapshot(GetVolumeSnapshotArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invoke("digitalocean:index/getVolumeSnapshot:getVolumeSnapshot", TypeShape.of(GetVolumeSnapshotResult.class), args, Utilities.withVersion(options));
+    public static CompletableFuture getVolumeSnapshotPlain(GetVolumeSnapshotPlainArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invokeAsync("digitalocean:index/getVolumeSnapshot:getVolumeSnapshot", TypeShape.of(GetVolumeSnapshotResult.class), args, Utilities.withVersion(options));
     }
     /**
-     * Volume snapshots are saved instances of a block storage volume. Use this data
-     * source to retrieve the ID of a DigitalOcean volume snapshot for use in other
-     * resources.
+     * Retrieve information about a VPC for use in other resources.
+     * 
+     * This data source provides all of the VPC's properties as configured on your
+     * DigitalOcean account. This is useful if the VPC in question is not managed by
+     * the provider or you need to utilize any of the VPC's data.
+     * 
+     * VPCs may be looked up by `id` or `name`. Specifying a `region` will
+     * return that that region's default VPC.
      * 
      * ## Example Usage
      * 
-     * Get the volume snapshot:
+     * ### VPC By Name
      * 
      * <!--Start PulumiCodeChooser -->
      * 
@@ -13215,7 +16435,7 @@ public static Output getVolumeSnapshot(GetVolumeSnapsho
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetVolumeSnapshotArgs;
+     * import com.pulumi.digitalocean.inputs.GetVpcArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -13229,10 +16449,8 @@ public static Output getVolumeSnapshot(GetVolumeSnapsho
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var snapshot = DigitaloceanFunctions.getVolumeSnapshot(GetVolumeSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
+     *         final var example = DigitaloceanFunctions.getVpc(GetVpcArgs.builder()
+     *             .name("example-network")
      *             .build());
      * 
      *     }
@@ -13241,7 +16459,7 @@ public static Output getVolumeSnapshot(GetVolumeSnapsho
      * 
* <!--End PulumiCodeChooser --> * - * Reuse the data about a volume snapshot to create a new volume based on it: + * Reuse the data about a VPC to assign a Droplet to it: * * <!--Start PulumiCodeChooser --> *
@@ -13252,9 +16470,9 @@ public static Output getVolumeSnapshot(GetVolumeSnapsho
      * import com.pulumi.Pulumi;
      * import com.pulumi.core.Output;
      * import com.pulumi.digitalocean.DigitaloceanFunctions;
-     * import com.pulumi.digitalocean.inputs.GetVolumeSnapshotArgs;
-     * import com.pulumi.digitalocean.Volume;
-     * import com.pulumi.digitalocean.VolumeArgs;
+     * import com.pulumi.digitalocean.inputs.GetVpcArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
      * import java.util.List;
      * import java.util.ArrayList;
      * import java.util.Map;
@@ -13268,17 +16486,16 @@ public static Output getVolumeSnapshot(GetVolumeSnapsho
      *     }
      * 
      *     public static void stack(Context ctx) {
-     *         final var snapshot = DigitaloceanFunctions.getVolumeSnapshot(GetVolumeSnapshotArgs.builder()
-     *             .nameRegex("^web")
-     *             .region("nyc3")
-     *             .mostRecent(true)
+     *         final var example = DigitaloceanFunctions.getVpc(GetVpcArgs.builder()
+     *             .name("example-network")
      *             .build());
      * 
-     *         var foobar = new Volume("foobar", VolumeArgs.builder()
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .name("example-01")
+     *             .size("s-1vcpu-1gb")
+     *             .image("ubuntu-18-04-x64")
      *             .region("nyc3")
-     *             .name("baz")
-     *             .size(100)
-     *             .snapshotId(snapshot.applyValue(getVolumeSnapshotResult -> getVolumeSnapshotResult.id()))
+     *             .vpcUuid(example.applyValue(getVpcResult -> getVpcResult.id()))
      *             .build());
      * 
      *     }
@@ -13288,8 +16505,8 @@ public static Output getVolumeSnapshot(GetVolumeSnapsho
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getVolumeSnapshotPlain(GetVolumeSnapshotPlainArgs args, InvokeOptions options) {
-        return Deployment.getInstance().invokeAsync("digitalocean:index/getVolumeSnapshot:getVolumeSnapshot", TypeShape.of(GetVolumeSnapshotResult.class), args, Utilities.withVersion(options));
+    public static Output getVpc() {
+        return getVpc(GetVpcArgs.Empty, InvokeOptions.Empty);
     }
     /**
      * Retrieve information about a VPC for use in other resources.
@@ -13384,8 +16601,8 @@ public static CompletableFuture getVolumeSnapshotPlain(
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getVpc() {
-        return getVpc(GetVpcArgs.Empty, InvokeOptions.Empty);
+    public static CompletableFuture getVpcPlain() {
+        return getVpcPlain(GetVpcPlainArgs.Empty, InvokeOptions.Empty);
     }
     /**
      * Retrieve information about a VPC for use in other resources.
@@ -13480,8 +16697,8 @@ public static Output getVpc() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getVpcPlain() {
-        return getVpcPlain(GetVpcPlainArgs.Empty, InvokeOptions.Empty);
+    public static Output getVpc(GetVpcArgs args) {
+        return getVpc(args, InvokeOptions.Empty);
     }
     /**
      * Retrieve information about a VPC for use in other resources.
@@ -13576,8 +16793,8 @@ public static CompletableFuture getVpcPlain() {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getVpc(GetVpcArgs args) {
-        return getVpc(args, InvokeOptions.Empty);
+    public static CompletableFuture getVpcPlain(GetVpcPlainArgs args) {
+        return getVpcPlain(args, InvokeOptions.Empty);
     }
     /**
      * Retrieve information about a VPC for use in other resources.
@@ -13672,8 +16889,8 @@ public static Output getVpc(GetVpcArgs args) {
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static CompletableFuture getVpcPlain(GetVpcPlainArgs args) {
-        return getVpcPlain(args, InvokeOptions.Empty);
+    public static Output getVpc(GetVpcArgs args, InvokeOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getVpc:getVpc", TypeShape.of(GetVpcResult.class), args, Utilities.withVersion(options));
     }
     /**
      * Retrieve information about a VPC for use in other resources.
@@ -13768,7 +16985,7 @@ public static CompletableFuture getVpcPlain(GetVpcPlainArgs args)
      * <!--End PulumiCodeChooser -->
      * 
      */
-    public static Output getVpc(GetVpcArgs args, InvokeOptions options) {
+    public static Output getVpc(GetVpcArgs args, InvokeOutputOptions options) {
         return Deployment.getInstance().invoke("digitalocean:index/getVpc:getVpc", TypeShape.of(GetVpcResult.class), args, Utilities.withVersion(options));
     }
     /**
@@ -14866,6 +18083,173 @@ public static Output getVpcPeering(GetVpcPeeringArgs args,
      * <!--End PulumiCodeChooser -->
      * 
      */
+    public static Output getVpcPeering(GetVpcPeeringArgs args, InvokeOutputOptions options) {
+        return Deployment.getInstance().invoke("digitalocean:index/getVpcPeering:getVpcPeering", TypeShape.of(GetVpcPeeringResult.class), args, Utilities.withVersion(options));
+    }
+    /**
+     * ## Example Usage
+     * 
+     * ### VPC Peering By Id
+     * 
+     * <!--Start PulumiCodeChooser -->
+     * 
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetVpcPeeringArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getVpcPeering(GetVpcPeeringArgs.builder()
+     *             .id("example-id")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * Reuse the data about a VPC Peering in other resources: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetVpcPeeringArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getVpcPeering(GetVpcPeeringArgs.builder()
+     *             .id("example-id")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .name("example-01")
+     *             .size("s-1vcpu-1gb")
+     *             .image("ubuntu-18-04-x64")
+     *             .region("nyc3")
+     *             .vpcUuid(example.applyValue(getVpcPeeringResult -> getVpcPeeringResult.vpcIds()[0]))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * ### VPC Peering By Name + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetVpcPeeringArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getVpcPeering(GetVpcPeeringArgs.builder()
+     *             .name("example-peering")
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + * Reuse the data about a VPC Peering in other resources: + * + * <!--Start PulumiCodeChooser --> + *
+     * {@code
+     * package generated_program;
+     * 
+     * import com.pulumi.Context;
+     * import com.pulumi.Pulumi;
+     * import com.pulumi.core.Output;
+     * import com.pulumi.digitalocean.DigitaloceanFunctions;
+     * import com.pulumi.digitalocean.inputs.GetVpcPeeringArgs;
+     * import com.pulumi.digitalocean.Droplet;
+     * import com.pulumi.digitalocean.DropletArgs;
+     * import java.util.List;
+     * import java.util.ArrayList;
+     * import java.util.Map;
+     * import java.io.File;
+     * import java.nio.file.Files;
+     * import java.nio.file.Paths;
+     * 
+     * public class App {
+     *     public static void main(String[] args) {
+     *         Pulumi.run(App::stack);
+     *     }
+     * 
+     *     public static void stack(Context ctx) {
+     *         final var example = DigitaloceanFunctions.getVpcPeering(GetVpcPeeringArgs.builder()
+     *             .name("example-peering")
+     *             .build());
+     * 
+     *         var exampleDroplet = new Droplet("exampleDroplet", DropletArgs.builder()
+     *             .name("example-01")
+     *             .size("s-1vcpu-1gb")
+     *             .image("ubuntu-18-04-x64")
+     *             .region("nyc3")
+     *             .vpcUuid(example.applyValue(getVpcPeeringResult -> getVpcPeeringResult.vpcIds()[0]))
+     *             .build());
+     * 
+     *     }
+     * }
+     * }
+     * 
+ * <!--End PulumiCodeChooser --> + * + */ public static CompletableFuture getVpcPeeringPlain(GetVpcPeeringPlainArgs args, InvokeOptions options) { return Deployment.getInstance().invokeAsync("digitalocean:index/getVpcPeering:getVpcPeering", TypeShape.of(GetVpcPeeringResult.class), args, Utilities.withVersion(options)); } diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/DropletAutoscale.java b/sdk/java/src/main/java/com/pulumi/digitalocean/DropletAutoscale.java new file mode 100644 index 00000000..0f73c35c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/DropletAutoscale.java @@ -0,0 +1,272 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.digitalocean.DropletAutoscaleArgs; +import com.pulumi.digitalocean.Utilities; +import com.pulumi.digitalocean.inputs.DropletAutoscaleState; +import com.pulumi.digitalocean.outputs.DropletAutoscaleConfig; +import com.pulumi.digitalocean.outputs.DropletAutoscaleCurrentUtilization; +import com.pulumi.digitalocean.outputs.DropletAutoscaleDropletTemplate; +import java.lang.String; +import java.util.List; +import javax.annotation.Nullable; + +/** + * Provides a DigitalOcean Droplet Autoscale resource. This can be used to create, modify, + * read and delete Droplet Autoscale pools. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.digitalocean.SshKey;
+ * import com.pulumi.digitalocean.SshKeyArgs;
+ * import com.pulumi.digitalocean.Tag;
+ * import com.pulumi.digitalocean.TagArgs;
+ * import com.pulumi.digitalocean.DropletAutoscale;
+ * import com.pulumi.digitalocean.DropletAutoscaleArgs;
+ * import com.pulumi.digitalocean.inputs.DropletAutoscaleConfigArgs;
+ * import com.pulumi.digitalocean.inputs.DropletAutoscaleDropletTemplateArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var my_ssh_key = new SshKey("my-ssh-key", SshKeyArgs.builder()
+ *             .name("terraform-example")
+ *             .publicKey(StdFunctions.file(FileArgs.builder()
+ *                 .input("/Users/terraform/.ssh/id_rsa.pub")
+ *                 .build()).result())
+ *             .build());
+ * 
+ *         var my_tag = new Tag("my-tag", TagArgs.builder()
+ *             .name("terraform-example")
+ *             .build());
+ * 
+ *         var my_autoscale_pool = new DropletAutoscale("my-autoscale-pool", DropletAutoscaleArgs.builder()
+ *             .name("terraform-example")
+ *             .config(DropletAutoscaleConfigArgs.builder()
+ *                 .minInstances(10)
+ *                 .maxInstances(50)
+ *                 .targetCpuUtilization(0.5)
+ *                 .targetMemoryUtilization(0.5)
+ *                 .cooldownMinutes(5)
+ *                 .build())
+ *             .dropletTemplate(DropletAutoscaleDropletTemplateArgs.builder()
+ *                 .size("c-2")
+ *                 .region("nyc3")
+ *                 .image("ubuntu-24-04-x64")
+ *                 .tags(my_tag.id())
+ *                 .sshKeys(my_ssh_key.id())
+ *                 .withDropletAgent(true)
+ *                 .ipv6(true)
+ *                 .userData("""
+ * 
+ * #cloud-config
+ * runcmd:
+ * - apt-get update
+ * - apt-get install -y stress-ng
+ *                 """)
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Droplet Autoscale pools can be imported using their `id`, e.g. + * + * ```sh + * $ pulumi import digitalocean:index/dropletAutoscale:DropletAutoscale my-autoscale-pool 38e66834-d741-47ec-88e7-c70cbdcz0445 + * ``` + * + */ +@ResourceType(type="digitalocean:index/dropletAutoscale:DropletAutoscale") +public class DropletAutoscale extends com.pulumi.resources.CustomResource { + /** + * The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + * + */ + @Export(name="config", refs={DropletAutoscaleConfig.class}, tree="[0]") + private Output config; + + /** + * @return The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + * + */ + public Output config() { + return this.config; + } + /** + * Created at timestamp for the Droplet Autoscale pool. + * + */ + @Export(name="createdAt", refs={String.class}, tree="[0]") + private Output createdAt; + + /** + * @return Created at timestamp for the Droplet Autoscale pool. + * + */ + public Output createdAt() { + return this.createdAt; + } + /** + * The current average resource utilization of the Droplet Autoscale pool, this attribute further + * embeds `memory` and `cpu` attributes to respectively report utilization data. + * + */ + @Export(name="currentUtilizations", refs={List.class,DropletAutoscaleCurrentUtilization.class}, tree="[0,1]") + private Output> currentUtilizations; + + /** + * @return The current average resource utilization of the Droplet Autoscale pool, this attribute further + * embeds `memory` and `cpu` attributes to respectively report utilization data. + * + */ + public Output> currentUtilizations() { + return this.currentUtilizations; + } + /** + * The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + * + */ + @Export(name="dropletTemplate", refs={DropletAutoscaleDropletTemplate.class}, tree="[0]") + private Output dropletTemplate; + + /** + * @return The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + * + */ + public Output dropletTemplate() { + return this.dropletTemplate; + } + /** + * The name of the Droplet Autoscale pool. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name of the Droplet Autoscale pool. + * + */ + public Output name() { + return this.name; + } + /** + * Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + * traffic, or in an error state and needs user intervention. + * + */ + @Export(name="status", refs={String.class}, tree="[0]") + private Output status; + + /** + * @return Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + * traffic, or in an error state and needs user intervention. + * + */ + public Output status() { + return this.status; + } + /** + * Updated at timestamp for the Droplet Autoscale pool. + * + */ + @Export(name="updatedAt", refs={String.class}, tree="[0]") + private Output updatedAt; + + /** + * @return Updated at timestamp for the Droplet Autoscale pool. + * + */ + public Output updatedAt() { + return this.updatedAt; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public DropletAutoscale(java.lang.String name) { + this(name, DropletAutoscaleArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public DropletAutoscale(java.lang.String name, DropletAutoscaleArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public DropletAutoscale(java.lang.String name, DropletAutoscaleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("digitalocean:index/dropletAutoscale:DropletAutoscale", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private DropletAutoscale(java.lang.String name, Output id, @Nullable DropletAutoscaleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("digitalocean:index/dropletAutoscale:DropletAutoscale", name, state, makeResourceOptions(options, id), false); + } + + private static DropletAutoscaleArgs makeArgs(DropletAutoscaleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DropletAutoscaleArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static DropletAutoscale get(java.lang.String name, Output id, @Nullable DropletAutoscaleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new DropletAutoscale(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/DropletAutoscaleArgs.java b/sdk/java/src/main/java/com/pulumi/digitalocean/DropletAutoscaleArgs.java new file mode 100644 index 00000000..26f2893a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/DropletAutoscaleArgs.java @@ -0,0 +1,174 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.digitalocean.inputs.DropletAutoscaleConfigArgs; +import com.pulumi.digitalocean.inputs.DropletAutoscaleDropletTemplateArgs; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DropletAutoscaleArgs extends com.pulumi.resources.ResourceArgs { + + public static final DropletAutoscaleArgs Empty = new DropletAutoscaleArgs(); + + /** + * The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + * + */ + @Import(name="config", required=true) + private Output config; + + /** + * @return The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + * + */ + public Output config() { + return this.config; + } + + /** + * The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + * + */ + @Import(name="dropletTemplate", required=true) + private Output dropletTemplate; + + /** + * @return The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + * + */ + public Output dropletTemplate() { + return this.dropletTemplate; + } + + /** + * The name of the Droplet Autoscale pool. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the Droplet Autoscale pool. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + private DropletAutoscaleArgs() {} + + private DropletAutoscaleArgs(DropletAutoscaleArgs $) { + this.config = $.config; + this.dropletTemplate = $.dropletTemplate; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DropletAutoscaleArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DropletAutoscaleArgs $; + + public Builder() { + $ = new DropletAutoscaleArgs(); + } + + public Builder(DropletAutoscaleArgs defaults) { + $ = new DropletAutoscaleArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param config The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + * + * @return builder + * + */ + public Builder config(Output config) { + $.config = config; + return this; + } + + /** + * @param config The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + * + * @return builder + * + */ + public Builder config(DropletAutoscaleConfigArgs config) { + return config(Output.of(config)); + } + + /** + * @param dropletTemplate The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + * + * @return builder + * + */ + public Builder dropletTemplate(Output dropletTemplate) { + $.dropletTemplate = dropletTemplate; + return this; + } + + /** + * @param dropletTemplate The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + * + * @return builder + * + */ + public Builder dropletTemplate(DropletAutoscaleDropletTemplateArgs dropletTemplate) { + return dropletTemplate(Output.of(dropletTemplate)); + } + + /** + * @param name The name of the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public DropletAutoscaleArgs build() { + if ($.config == null) { + throw new MissingRequiredPropertyException("DropletAutoscaleArgs", "config"); + } + if ($.dropletTemplate == null) { + throw new MissingRequiredPropertyException("DropletAutoscaleArgs", "dropletTemplate"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/LoadBalancer.java b/sdk/java/src/main/java/com/pulumi/digitalocean/LoadBalancer.java index 9f88f3ee..966976e7 100644 --- a/sdk/java/src/main/java/com/pulumi/digitalocean/LoadBalancer.java +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/LoadBalancer.java @@ -334,7 +334,6 @@ public Output name() { } /** * The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. * */ @Export(name="network", refs={String.class}, tree="[0]") @@ -342,7 +341,6 @@ public Output name() { /** * @return The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. * */ public Output> network() { @@ -409,14 +407,14 @@ public Output> size() { return Codegen.optional(this.size); } /** - * The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + * The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. * */ @Export(name="sizeUnit", refs={Integer.class}, tree="[0]") private Output sizeUnit; /** - * @return The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + * @return The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. * */ public Output sizeUnit() { @@ -459,7 +457,7 @@ public Output> targetLoadBalancerIds() { return this.targetLoadBalancerIds; } /** - * The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. * */ @@ -467,7 +465,7 @@ public Output> targetLoadBalancerIds() { private Output type; /** - * @return The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * @return The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. * */ diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/LoadBalancerArgs.java b/sdk/java/src/main/java/com/pulumi/digitalocean/LoadBalancerArgs.java index 39178cdc..36bae6cb 100644 --- a/sdk/java/src/main/java/com/pulumi/digitalocean/LoadBalancerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/LoadBalancerArgs.java @@ -242,7 +242,6 @@ public Optional> name() { /** * The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. * */ @Import(name="network") @@ -250,7 +249,6 @@ public Optional> name() { /** * @return The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. * */ public Optional> network() { @@ -322,14 +320,14 @@ public Optional> size() { } /** - * The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + * The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. * */ @Import(name="sizeUnit") private @Nullable Output sizeUnit; /** - * @return The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + * @return The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. * */ public Optional> sizeUnit() { @@ -369,7 +367,7 @@ public Optional>> targetLoadBalancerIds() { } /** - * The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. * */ @@ -377,7 +375,7 @@ public Optional>> targetLoadBalancerIds() { private @Nullable Output type; /** - * @return The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * @return The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. * */ @@ -800,7 +798,6 @@ public Builder name(String name) { /** * @param network The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. * * @return builder * @@ -812,7 +809,6 @@ public Builder network(@Nullable Output network) { /** * @param network The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. * * @return builder * @@ -930,7 +926,7 @@ public Builder size(String size) { } /** - * @param sizeUnit The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + * @param sizeUnit The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. * * @return builder * @@ -941,7 +937,7 @@ public Builder sizeUnit(@Nullable Output sizeUnit) { } /** - * @param sizeUnit The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + * @param sizeUnit The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. * * @return builder * @@ -1005,7 +1001,7 @@ public Builder targetLoadBalancerIds(String... targetLoadBalancerIds) { } /** - * @param type The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * @param type The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. * * @return builder @@ -1017,7 +1013,7 @@ public Builder type(@Nullable Output type) { } /** - * @param type The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * @param type The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6.java b/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6.java new file mode 100644 index 00000000..d6e4f1c7 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6.java @@ -0,0 +1,107 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.digitalocean.ReservedIpv6Args; +import com.pulumi.digitalocean.Utilities; +import com.pulumi.digitalocean.inputs.ReservedIpv6State; +import java.lang.Integer; +import java.lang.String; +import javax.annotation.Nullable; + +@ResourceType(type="digitalocean:index/reservedIpv6:ReservedIpv6") +public class ReservedIpv6 extends com.pulumi.resources.CustomResource { + @Export(name="dropletId", refs={Integer.class}, tree="[0]") + private Output dropletId; + + public Output dropletId() { + return this.dropletId; + } + @Export(name="ip", refs={String.class}, tree="[0]") + private Output ip; + + public Output ip() { + return this.ip; + } + @Export(name="regionSlug", refs={String.class}, tree="[0]") + private Output regionSlug; + + public Output regionSlug() { + return this.regionSlug; + } + /** + * the uniform resource name for the reserved ipv6 + * + */ + @Export(name="urn", refs={String.class}, tree="[0]") + private Output urn; + + /** + * @return the uniform resource name for the reserved ipv6 + * + */ + public Output urn_() { + return this.urn; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ReservedIpv6(java.lang.String name) { + this(name, ReservedIpv6Args.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ReservedIpv6(java.lang.String name, ReservedIpv6Args args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ReservedIpv6(java.lang.String name, ReservedIpv6Args args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("digitalocean:index/reservedIpv6:ReservedIpv6", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private ReservedIpv6(java.lang.String name, Output id, @Nullable ReservedIpv6State state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("digitalocean:index/reservedIpv6:ReservedIpv6", name, state, makeResourceOptions(options, id), false); + } + + private static ReservedIpv6Args makeArgs(ReservedIpv6Args args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ReservedIpv6Args.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ReservedIpv6 get(java.lang.String name, Output id, @Nullable ReservedIpv6State state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ReservedIpv6(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6Args.java b/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6Args.java new file mode 100644 index 00000000..f8347754 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6Args.java @@ -0,0 +1,102 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ReservedIpv6Args extends com.pulumi.resources.ResourceArgs { + + public static final ReservedIpv6Args Empty = new ReservedIpv6Args(); + + @Import(name="dropletId") + private @Nullable Output dropletId; + + public Optional> dropletId() { + return Optional.ofNullable(this.dropletId); + } + + @Import(name="ip") + private @Nullable Output ip; + + public Optional> ip() { + return Optional.ofNullable(this.ip); + } + + @Import(name="regionSlug", required=true) + private Output regionSlug; + + public Output regionSlug() { + return this.regionSlug; + } + + private ReservedIpv6Args() {} + + private ReservedIpv6Args(ReservedIpv6Args $) { + this.dropletId = $.dropletId; + this.ip = $.ip; + this.regionSlug = $.regionSlug; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ReservedIpv6Args defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ReservedIpv6Args $; + + public Builder() { + $ = new ReservedIpv6Args(); + } + + public Builder(ReservedIpv6Args defaults) { + $ = new ReservedIpv6Args(Objects.requireNonNull(defaults)); + } + + public Builder dropletId(@Nullable Output dropletId) { + $.dropletId = dropletId; + return this; + } + + public Builder dropletId(Integer dropletId) { + return dropletId(Output.of(dropletId)); + } + + public Builder ip(@Nullable Output ip) { + $.ip = ip; + return this; + } + + public Builder ip(String ip) { + return ip(Output.of(ip)); + } + + public Builder regionSlug(Output regionSlug) { + $.regionSlug = regionSlug; + return this; + } + + public Builder regionSlug(String regionSlug) { + return regionSlug(Output.of(regionSlug)); + } + + public ReservedIpv6Args build() { + if ($.regionSlug == null) { + throw new MissingRequiredPropertyException("ReservedIpv6Args", "regionSlug"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6Assignment.java b/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6Assignment.java new file mode 100644 index 00000000..a78cdd3d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6Assignment.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.digitalocean.ReservedIpv6AssignmentArgs; +import com.pulumi.digitalocean.Utilities; +import com.pulumi.digitalocean.inputs.ReservedIpv6AssignmentState; +import java.lang.Integer; +import java.lang.String; +import javax.annotation.Nullable; + +@ResourceType(type="digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment") +public class ReservedIpv6Assignment extends com.pulumi.resources.CustomResource { + @Export(name="dropletId", refs={Integer.class}, tree="[0]") + private Output dropletId; + + public Output dropletId() { + return this.dropletId; + } + @Export(name="ip", refs={String.class}, tree="[0]") + private Output ip; + + public Output ip() { + return this.ip; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ReservedIpv6Assignment(java.lang.String name) { + this(name, ReservedIpv6AssignmentArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ReservedIpv6Assignment(java.lang.String name, ReservedIpv6AssignmentArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ReservedIpv6Assignment(java.lang.String name, ReservedIpv6AssignmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private ReservedIpv6Assignment(java.lang.String name, Output id, @Nullable ReservedIpv6AssignmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment", name, state, makeResourceOptions(options, id), false); + } + + private static ReservedIpv6AssignmentArgs makeArgs(ReservedIpv6AssignmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ReservedIpv6AssignmentArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ReservedIpv6Assignment get(java.lang.String name, Output id, @Nullable ReservedIpv6AssignmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ReservedIpv6Assignment(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6AssignmentArgs.java b/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6AssignmentArgs.java new file mode 100644 index 00000000..cec0d22d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/ReservedIpv6AssignmentArgs.java @@ -0,0 +1,86 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + + +public final class ReservedIpv6AssignmentArgs extends com.pulumi.resources.ResourceArgs { + + public static final ReservedIpv6AssignmentArgs Empty = new ReservedIpv6AssignmentArgs(); + + @Import(name="dropletId", required=true) + private Output dropletId; + + public Output dropletId() { + return this.dropletId; + } + + @Import(name="ip", required=true) + private Output ip; + + public Output ip() { + return this.ip; + } + + private ReservedIpv6AssignmentArgs() {} + + private ReservedIpv6AssignmentArgs(ReservedIpv6AssignmentArgs $) { + this.dropletId = $.dropletId; + this.ip = $.ip; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ReservedIpv6AssignmentArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ReservedIpv6AssignmentArgs $; + + public Builder() { + $ = new ReservedIpv6AssignmentArgs(); + } + + public Builder(ReservedIpv6AssignmentArgs defaults) { + $ = new ReservedIpv6AssignmentArgs(Objects.requireNonNull(defaults)); + } + + public Builder dropletId(Output dropletId) { + $.dropletId = dropletId; + return this; + } + + public Builder dropletId(Integer dropletId) { + return dropletId(Output.of(dropletId)); + } + + public Builder ip(Output ip) { + $.ip = ip; + return this; + } + + public Builder ip(String ip) { + return ip(Output.of(ip)); + } + + public ReservedIpv6AssignmentArgs build() { + if ($.dropletId == null) { + throw new MissingRequiredPropertyException("ReservedIpv6AssignmentArgs", "dropletId"); + } + if ($.ip == null) { + throw new MissingRequiredPropertyException("ReservedIpv6AssignmentArgs", "ip"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/Utilities.java b/sdk/java/src/main/java/com/pulumi/digitalocean/Utilities.java index b0580a6b..38f9e856 100644 --- a/sdk/java/src/main/java/com/pulumi/digitalocean/Utilities.java +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/Utilities.java @@ -14,6 +14,7 @@ import javax.annotation.Nullable; import com.pulumi.core.internal.Environment; import com.pulumi.deployment.InvokeOptions; +import com.pulumi.deployment.InvokeOutputOptions; public class Utilities { @@ -57,16 +58,28 @@ public static Optional getEnvDouble(java.lang.String... names) return Optional.empty(); } - public static InvokeOptions withVersion(@Nullable InvokeOptions options) { - if (options != null && options.getVersion().isPresent()) { - return options; - } - return new InvokeOptions( - options == null ? null : options.getParent().orElse(null), - options == null ? null : options.getProvider().orElse(null), - getVersion() - ); + public static InvokeOptions withVersion(@Nullable InvokeOptions options) { + if (options != null && options.getVersion().isPresent()) { + return options; + } + return new InvokeOptions( + options == null ? null : options.getParent().orElse(null), + options == null ? null : options.getProvider().orElse(null), + getVersion() + ); + } + + public static InvokeOutputOptions withVersion(@Nullable InvokeOutputOptions options) { + if (options != null && options.getVersion().isPresent()) { + return options; } + return new InvokeOutputOptions( + options == null ? null : options.getParent().orElse(null), + options == null ? null : options.getProvider().orElse(null), + getVersion(), + options == null ? null : options.getDependsOn() + ); + } private static final java.lang.String version; public static java.lang.String getVersion() { diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleConfigArgs.java b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleConfigArgs.java new file mode 100644 index 00000000..e2608627 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleConfigArgs.java @@ -0,0 +1,277 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Double; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DropletAutoscaleConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final DropletAutoscaleConfigArgs Empty = new DropletAutoscaleConfigArgs(); + + /** + * The cooldown duration between scaling events for the Droplet Autoscale pool. + * + */ + @Import(name="cooldownMinutes") + private @Nullable Output cooldownMinutes; + + /** + * @return The cooldown duration between scaling events for the Droplet Autoscale pool. + * + */ + public Optional> cooldownMinutes() { + return Optional.ofNullable(this.cooldownMinutes); + } + + /** + * The maximum number of instances to maintain in the Droplet Autoscale pool. + * + */ + @Import(name="maxInstances") + private @Nullable Output maxInstances; + + /** + * @return The maximum number of instances to maintain in the Droplet Autoscale pool. + * + */ + public Optional> maxInstances() { + return Optional.ofNullable(this.maxInstances); + } + + /** + * The minimum number of instances to maintain in the Droplet Autoscale pool. + * + */ + @Import(name="minInstances") + private @Nullable Output minInstances; + + /** + * @return The minimum number of instances to maintain in the Droplet Autoscale pool. + * + */ + public Optional> minInstances() { + return Optional.ofNullable(this.minInstances); + } + + /** + * The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + * + */ + @Import(name="targetCpuUtilization") + private @Nullable Output targetCpuUtilization; + + /** + * @return The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + * + */ + public Optional> targetCpuUtilization() { + return Optional.ofNullable(this.targetCpuUtilization); + } + + /** + * The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + * pool. + * + */ + @Import(name="targetMemoryUtilization") + private @Nullable Output targetMemoryUtilization; + + /** + * @return The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + * pool. + * + */ + public Optional> targetMemoryUtilization() { + return Optional.ofNullable(this.targetMemoryUtilization); + } + + /** + * The static number of instances to maintain in the pool Droplet Autoscale pool. This + * argument cannot be used with any other config options. + * + */ + @Import(name="targetNumberInstances") + private @Nullable Output targetNumberInstances; + + /** + * @return The static number of instances to maintain in the pool Droplet Autoscale pool. This + * argument cannot be used with any other config options. + * + */ + public Optional> targetNumberInstances() { + return Optional.ofNullable(this.targetNumberInstances); + } + + private DropletAutoscaleConfigArgs() {} + + private DropletAutoscaleConfigArgs(DropletAutoscaleConfigArgs $) { + this.cooldownMinutes = $.cooldownMinutes; + this.maxInstances = $.maxInstances; + this.minInstances = $.minInstances; + this.targetCpuUtilization = $.targetCpuUtilization; + this.targetMemoryUtilization = $.targetMemoryUtilization; + this.targetNumberInstances = $.targetNumberInstances; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DropletAutoscaleConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DropletAutoscaleConfigArgs $; + + public Builder() { + $ = new DropletAutoscaleConfigArgs(); + } + + public Builder(DropletAutoscaleConfigArgs defaults) { + $ = new DropletAutoscaleConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cooldownMinutes The cooldown duration between scaling events for the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder cooldownMinutes(@Nullable Output cooldownMinutes) { + $.cooldownMinutes = cooldownMinutes; + return this; + } + + /** + * @param cooldownMinutes The cooldown duration between scaling events for the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder cooldownMinutes(Integer cooldownMinutes) { + return cooldownMinutes(Output.of(cooldownMinutes)); + } + + /** + * @param maxInstances The maximum number of instances to maintain in the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder maxInstances(@Nullable Output maxInstances) { + $.maxInstances = maxInstances; + return this; + } + + /** + * @param maxInstances The maximum number of instances to maintain in the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder maxInstances(Integer maxInstances) { + return maxInstances(Output.of(maxInstances)); + } + + /** + * @param minInstances The minimum number of instances to maintain in the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder minInstances(@Nullable Output minInstances) { + $.minInstances = minInstances; + return this; + } + + /** + * @param minInstances The minimum number of instances to maintain in the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder minInstances(Integer minInstances) { + return minInstances(Output.of(minInstances)); + } + + /** + * @param targetCpuUtilization The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder targetCpuUtilization(@Nullable Output targetCpuUtilization) { + $.targetCpuUtilization = targetCpuUtilization; + return this; + } + + /** + * @param targetCpuUtilization The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder targetCpuUtilization(Double targetCpuUtilization) { + return targetCpuUtilization(Output.of(targetCpuUtilization)); + } + + /** + * @param targetMemoryUtilization The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + * pool. + * + * @return builder + * + */ + public Builder targetMemoryUtilization(@Nullable Output targetMemoryUtilization) { + $.targetMemoryUtilization = targetMemoryUtilization; + return this; + } + + /** + * @param targetMemoryUtilization The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + * pool. + * + * @return builder + * + */ + public Builder targetMemoryUtilization(Double targetMemoryUtilization) { + return targetMemoryUtilization(Output.of(targetMemoryUtilization)); + } + + /** + * @param targetNumberInstances The static number of instances to maintain in the pool Droplet Autoscale pool. This + * argument cannot be used with any other config options. + * + * @return builder + * + */ + public Builder targetNumberInstances(@Nullable Output targetNumberInstances) { + $.targetNumberInstances = targetNumberInstances; + return this; + } + + /** + * @param targetNumberInstances The static number of instances to maintain in the pool Droplet Autoscale pool. This + * argument cannot be used with any other config options. + * + * @return builder + * + */ + public Builder targetNumberInstances(Integer targetNumberInstances) { + return targetNumberInstances(Output.of(targetNumberInstances)); + } + + public DropletAutoscaleConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleCurrentUtilizationArgs.java b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleCurrentUtilizationArgs.java new file mode 100644 index 00000000..1927fcb6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleCurrentUtilizationArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Double; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DropletAutoscaleCurrentUtilizationArgs extends com.pulumi.resources.ResourceArgs { + + public static final DropletAutoscaleCurrentUtilizationArgs Empty = new DropletAutoscaleCurrentUtilizationArgs(); + + /** + * Average CPU utilization + * + */ + @Import(name="cpu") + private @Nullable Output cpu; + + /** + * @return Average CPU utilization + * + */ + public Optional> cpu() { + return Optional.ofNullable(this.cpu); + } + + /** + * Average Memory utilization + * + */ + @Import(name="memory") + private @Nullable Output memory; + + /** + * @return Average Memory utilization + * + */ + public Optional> memory() { + return Optional.ofNullable(this.memory); + } + + private DropletAutoscaleCurrentUtilizationArgs() {} + + private DropletAutoscaleCurrentUtilizationArgs(DropletAutoscaleCurrentUtilizationArgs $) { + this.cpu = $.cpu; + this.memory = $.memory; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DropletAutoscaleCurrentUtilizationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DropletAutoscaleCurrentUtilizationArgs $; + + public Builder() { + $ = new DropletAutoscaleCurrentUtilizationArgs(); + } + + public Builder(DropletAutoscaleCurrentUtilizationArgs defaults) { + $ = new DropletAutoscaleCurrentUtilizationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cpu Average CPU utilization + * + * @return builder + * + */ + public Builder cpu(@Nullable Output cpu) { + $.cpu = cpu; + return this; + } + + /** + * @param cpu Average CPU utilization + * + * @return builder + * + */ + public Builder cpu(Double cpu) { + return cpu(Output.of(cpu)); + } + + /** + * @param memory Average Memory utilization + * + * @return builder + * + */ + public Builder memory(@Nullable Output memory) { + $.memory = memory; + return this; + } + + /** + * @param memory Average Memory utilization + * + * @return builder + * + */ + public Builder memory(Double memory) { + return memory(Output.of(memory)); + } + + public DropletAutoscaleCurrentUtilizationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleDropletTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleDropletTemplateArgs.java new file mode 100644 index 00000000..9bfcc850 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleDropletTemplateArgs.java @@ -0,0 +1,463 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DropletAutoscaleDropletTemplateArgs extends com.pulumi.resources.ResourceArgs { + + public static final DropletAutoscaleDropletTemplateArgs Empty = new DropletAutoscaleDropletTemplateArgs(); + + /** + * Image slug of the Droplet Autoscale pool underlying resource(s). + * + */ + @Import(name="image", required=true) + private Output image; + + /** + * @return Image slug of the Droplet Autoscale pool underlying resource(s). + * + */ + public Output image() { + return this.image; + } + + /** + * Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + * + */ + @Import(name="ipv6") + private @Nullable Output ipv6; + + /** + * @return Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + * + */ + public Optional> ipv6() { + return Optional.ofNullable(this.ipv6); + } + + /** + * Project UUID to create the Droplet Autoscale pool underlying resource(s). + * + */ + @Import(name="projectId") + private @Nullable Output projectId; + + /** + * @return Project UUID to create the Droplet Autoscale pool underlying resource(s). + * + */ + public Optional> projectId() { + return Optional.ofNullable(this.projectId); + } + + /** + * Region slug of the Droplet Autoscale pool underlying resource(s). + * + */ + @Import(name="region", required=true) + private Output region; + + /** + * @return Region slug of the Droplet Autoscale pool underlying resource(s). + * + */ + public Output region() { + return this.region; + } + + /** + * Size slug of the Droplet Autoscale pool underlying resource(s). + * + */ + @Import(name="size", required=true) + private Output size; + + /** + * @return Size slug of the Droplet Autoscale pool underlying resource(s). + * + */ + public Output size() { + return this.size; + } + + /** + * SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + * + */ + @Import(name="sshKeys", required=true) + private Output> sshKeys; + + /** + * @return SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + * + */ + public Output> sshKeys() { + return this.sshKeys; + } + + /** + * List of tags to add to the Droplet Autoscale pool underlying resource(s). + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return List of tags to add to the Droplet Autoscale pool underlying resource(s). + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + * cloud init script that user may configure to setup their application workload. + * + */ + @Import(name="userData") + private @Nullable Output userData; + + /** + * @return Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + * cloud init script that user may configure to setup their application workload. + * + */ + public Optional> userData() { + return Optional.ofNullable(this.userData); + } + + /** + * VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + * from the specified `region` (default VPC). + * + */ + @Import(name="vpcUuid") + private @Nullable Output vpcUuid; + + /** + * @return VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + * from the specified `region` (default VPC). + * + */ + public Optional> vpcUuid() { + return Optional.ofNullable(this.vpcUuid); + } + + /** + * Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + * metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + * + */ + @Import(name="withDropletAgent") + private @Nullable Output withDropletAgent; + + /** + * @return Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + * metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + * + */ + public Optional> withDropletAgent() { + return Optional.ofNullable(this.withDropletAgent); + } + + private DropletAutoscaleDropletTemplateArgs() {} + + private DropletAutoscaleDropletTemplateArgs(DropletAutoscaleDropletTemplateArgs $) { + this.image = $.image; + this.ipv6 = $.ipv6; + this.projectId = $.projectId; + this.region = $.region; + this.size = $.size; + this.sshKeys = $.sshKeys; + this.tags = $.tags; + this.userData = $.userData; + this.vpcUuid = $.vpcUuid; + this.withDropletAgent = $.withDropletAgent; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DropletAutoscaleDropletTemplateArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DropletAutoscaleDropletTemplateArgs $; + + public Builder() { + $ = new DropletAutoscaleDropletTemplateArgs(); + } + + public Builder(DropletAutoscaleDropletTemplateArgs defaults) { + $ = new DropletAutoscaleDropletTemplateArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param image Image slug of the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder image(Output image) { + $.image = image; + return this; + } + + /** + * @param image Image slug of the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder image(String image) { + return image(Output.of(image)); + } + + /** + * @param ipv6 Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder ipv6(@Nullable Output ipv6) { + $.ipv6 = ipv6; + return this; + } + + /** + * @param ipv6 Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder ipv6(Boolean ipv6) { + return ipv6(Output.of(ipv6)); + } + + /** + * @param projectId Project UUID to create the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder projectId(@Nullable Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId Project UUID to create the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + /** + * @param region Region slug of the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder region(Output region) { + $.region = region; + return this; + } + + /** + * @param region Region slug of the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + + /** + * @param size Size slug of the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder size(Output size) { + $.size = size; + return this; + } + + /** + * @param size Size slug of the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder size(String size) { + return size(Output.of(size)); + } + + /** + * @param sshKeys SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder sshKeys(Output> sshKeys) { + $.sshKeys = sshKeys; + return this; + } + + /** + * @param sshKeys SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder sshKeys(List sshKeys) { + return sshKeys(Output.of(sshKeys)); + } + + /** + * @param sshKeys SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder sshKeys(String... sshKeys) { + return sshKeys(List.of(sshKeys)); + } + + /** + * @param tags List of tags to add to the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags List of tags to add to the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder tags(List tags) { + return tags(Output.of(tags)); + } + + /** + * @param tags List of tags to add to the Droplet Autoscale pool underlying resource(s). + * + * @return builder + * + */ + public Builder tags(String... tags) { + return tags(List.of(tags)); + } + + /** + * @param userData Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + * cloud init script that user may configure to setup their application workload. + * + * @return builder + * + */ + public Builder userData(@Nullable Output userData) { + $.userData = userData; + return this; + } + + /** + * @param userData Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + * cloud init script that user may configure to setup their application workload. + * + * @return builder + * + */ + public Builder userData(String userData) { + return userData(Output.of(userData)); + } + + /** + * @param vpcUuid VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + * from the specified `region` (default VPC). + * + * @return builder + * + */ + public Builder vpcUuid(@Nullable Output vpcUuid) { + $.vpcUuid = vpcUuid; + return this; + } + + /** + * @param vpcUuid VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + * from the specified `region` (default VPC). + * + * @return builder + * + */ + public Builder vpcUuid(String vpcUuid) { + return vpcUuid(Output.of(vpcUuid)); + } + + /** + * @param withDropletAgent Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + * metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + * + * @return builder + * + */ + public Builder withDropletAgent(@Nullable Output withDropletAgent) { + $.withDropletAgent = withDropletAgent; + return this; + } + + /** + * @param withDropletAgent Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + * metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + * + * @return builder + * + */ + public Builder withDropletAgent(Boolean withDropletAgent) { + return withDropletAgent(Output.of(withDropletAgent)); + } + + public DropletAutoscaleDropletTemplateArgs build() { + if ($.image == null) { + throw new MissingRequiredPropertyException("DropletAutoscaleDropletTemplateArgs", "image"); + } + if ($.region == null) { + throw new MissingRequiredPropertyException("DropletAutoscaleDropletTemplateArgs", "region"); + } + if ($.size == null) { + throw new MissingRequiredPropertyException("DropletAutoscaleDropletTemplateArgs", "size"); + } + if ($.sshKeys == null) { + throw new MissingRequiredPropertyException("DropletAutoscaleDropletTemplateArgs", "sshKeys"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleState.java b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleState.java new file mode 100644 index 00000000..c0f14b3d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/DropletAutoscaleState.java @@ -0,0 +1,336 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.digitalocean.inputs.DropletAutoscaleConfigArgs; +import com.pulumi.digitalocean.inputs.DropletAutoscaleCurrentUtilizationArgs; +import com.pulumi.digitalocean.inputs.DropletAutoscaleDropletTemplateArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DropletAutoscaleState extends com.pulumi.resources.ResourceArgs { + + public static final DropletAutoscaleState Empty = new DropletAutoscaleState(); + + /** + * The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + * + */ + @Import(name="config") + private @Nullable Output config; + + /** + * @return The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + * + */ + public Optional> config() { + return Optional.ofNullable(this.config); + } + + /** + * Created at timestamp for the Droplet Autoscale pool. + * + */ + @Import(name="createdAt") + private @Nullable Output createdAt; + + /** + * @return Created at timestamp for the Droplet Autoscale pool. + * + */ + public Optional> createdAt() { + return Optional.ofNullable(this.createdAt); + } + + /** + * The current average resource utilization of the Droplet Autoscale pool, this attribute further + * embeds `memory` and `cpu` attributes to respectively report utilization data. + * + */ + @Import(name="currentUtilizations") + private @Nullable Output> currentUtilizations; + + /** + * @return The current average resource utilization of the Droplet Autoscale pool, this attribute further + * embeds `memory` and `cpu` attributes to respectively report utilization data. + * + */ + public Optional>> currentUtilizations() { + return Optional.ofNullable(this.currentUtilizations); + } + + /** + * The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + * + */ + @Import(name="dropletTemplate") + private @Nullable Output dropletTemplate; + + /** + * @return The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + * + */ + public Optional> dropletTemplate() { + return Optional.ofNullable(this.dropletTemplate); + } + + /** + * The name of the Droplet Autoscale pool. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the Droplet Autoscale pool. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + * traffic, or in an error state and needs user intervention. + * + */ + @Import(name="status") + private @Nullable Output status; + + /** + * @return Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + * traffic, or in an error state and needs user intervention. + * + */ + public Optional> status() { + return Optional.ofNullable(this.status); + } + + /** + * Updated at timestamp for the Droplet Autoscale pool. + * + */ + @Import(name="updatedAt") + private @Nullable Output updatedAt; + + /** + * @return Updated at timestamp for the Droplet Autoscale pool. + * + */ + public Optional> updatedAt() { + return Optional.ofNullable(this.updatedAt); + } + + private DropletAutoscaleState() {} + + private DropletAutoscaleState(DropletAutoscaleState $) { + this.config = $.config; + this.createdAt = $.createdAt; + this.currentUtilizations = $.currentUtilizations; + this.dropletTemplate = $.dropletTemplate; + this.name = $.name; + this.status = $.status; + this.updatedAt = $.updatedAt; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DropletAutoscaleState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DropletAutoscaleState $; + + public Builder() { + $ = new DropletAutoscaleState(); + } + + public Builder(DropletAutoscaleState defaults) { + $ = new DropletAutoscaleState(Objects.requireNonNull(defaults)); + } + + /** + * @param config The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + * + * @return builder + * + */ + public Builder config(@Nullable Output config) { + $.config = config; + return this; + } + + /** + * @param config The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + * + * @return builder + * + */ + public Builder config(DropletAutoscaleConfigArgs config) { + return config(Output.of(config)); + } + + /** + * @param createdAt Created at timestamp for the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder createdAt(@Nullable Output createdAt) { + $.createdAt = createdAt; + return this; + } + + /** + * @param createdAt Created at timestamp for the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder createdAt(String createdAt) { + return createdAt(Output.of(createdAt)); + } + + /** + * @param currentUtilizations The current average resource utilization of the Droplet Autoscale pool, this attribute further + * embeds `memory` and `cpu` attributes to respectively report utilization data. + * + * @return builder + * + */ + public Builder currentUtilizations(@Nullable Output> currentUtilizations) { + $.currentUtilizations = currentUtilizations; + return this; + } + + /** + * @param currentUtilizations The current average resource utilization of the Droplet Autoscale pool, this attribute further + * embeds `memory` and `cpu` attributes to respectively report utilization data. + * + * @return builder + * + */ + public Builder currentUtilizations(List currentUtilizations) { + return currentUtilizations(Output.of(currentUtilizations)); + } + + /** + * @param currentUtilizations The current average resource utilization of the Droplet Autoscale pool, this attribute further + * embeds `memory` and `cpu` attributes to respectively report utilization data. + * + * @return builder + * + */ + public Builder currentUtilizations(DropletAutoscaleCurrentUtilizationArgs... currentUtilizations) { + return currentUtilizations(List.of(currentUtilizations)); + } + + /** + * @param dropletTemplate The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + * + * @return builder + * + */ + public Builder dropletTemplate(@Nullable Output dropletTemplate) { + $.dropletTemplate = dropletTemplate; + return this; + } + + /** + * @param dropletTemplate The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + * + * @return builder + * + */ + public Builder dropletTemplate(DropletAutoscaleDropletTemplateArgs dropletTemplate) { + return dropletTemplate(Output.of(dropletTemplate)); + } + + /** + * @param name The name of the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param status Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + * traffic, or in an error state and needs user intervention. + * + * @return builder + * + */ + public Builder status(@Nullable Output status) { + $.status = status; + return this; + } + + /** + * @param status Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + * traffic, or in an error state and needs user intervention. + * + * @return builder + * + */ + public Builder status(String status) { + return status(Output.of(status)); + } + + /** + * @param updatedAt Updated at timestamp for the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder updatedAt(@Nullable Output updatedAt) { + $.updatedAt = updatedAt; + return this; + } + + /** + * @param updatedAt Updated at timestamp for the Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder updatedAt(String updatedAt) { + return updatedAt(Output.of(updatedAt)); + } + + public DropletAutoscaleState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetDropletAutoscaleArgs.java b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetDropletAutoscaleArgs.java new file mode 100644 index 00000000..0fda5495 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetDropletAutoscaleArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetDropletAutoscaleArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetDropletAutoscaleArgs Empty = new GetDropletAutoscaleArgs(); + + /** + * The ID of Droplet Autoscale pool. + * + */ + @Import(name="id") + private @Nullable Output id; + + /** + * @return The ID of Droplet Autoscale pool. + * + */ + public Optional> id() { + return Optional.ofNullable(this.id); + } + + /** + * The name of Droplet Autoscale pool. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of Droplet Autoscale pool. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + private GetDropletAutoscaleArgs() {} + + private GetDropletAutoscaleArgs(GetDropletAutoscaleArgs $) { + this.id = $.id; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetDropletAutoscaleArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetDropletAutoscaleArgs $; + + public Builder() { + $ = new GetDropletAutoscaleArgs(); + } + + public Builder(GetDropletAutoscaleArgs defaults) { + $ = new GetDropletAutoscaleArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param id The ID of Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder id(@Nullable Output id) { + $.id = id; + return this; + } + + /** + * @param id The ID of Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder id(String id) { + return id(Output.of(id)); + } + + /** + * @param name The name of Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public GetDropletAutoscaleArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetDropletAutoscalePlainArgs.java b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetDropletAutoscalePlainArgs.java new file mode 100644 index 00000000..4f622d59 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetDropletAutoscalePlainArgs.java @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.inputs; + +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GetDropletAutoscalePlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetDropletAutoscalePlainArgs Empty = new GetDropletAutoscalePlainArgs(); + + /** + * The ID of Droplet Autoscale pool. + * + */ + @Import(name="id") + private @Nullable String id; + + /** + * @return The ID of Droplet Autoscale pool. + * + */ + public Optional id() { + return Optional.ofNullable(this.id); + } + + /** + * The name of Droplet Autoscale pool. + * + */ + @Import(name="name") + private @Nullable String name; + + /** + * @return The name of Droplet Autoscale pool. + * + */ + public Optional name() { + return Optional.ofNullable(this.name); + } + + private GetDropletAutoscalePlainArgs() {} + + private GetDropletAutoscalePlainArgs(GetDropletAutoscalePlainArgs $) { + this.id = $.id; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetDropletAutoscalePlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetDropletAutoscalePlainArgs $; + + public Builder() { + $ = new GetDropletAutoscalePlainArgs(); + } + + public Builder(GetDropletAutoscalePlainArgs defaults) { + $ = new GetDropletAutoscalePlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param id The ID of Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder id(@Nullable String id) { + $.id = id; + return this; + } + + /** + * @param name The name of Droplet Autoscale pool. + * + * @return builder + * + */ + public Builder name(@Nullable String name) { + $.name = name; + return this; + } + + public GetDropletAutoscalePlainArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetReservedIpv6Args.java b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetReservedIpv6Args.java new file mode 100644 index 00000000..b85b0a48 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetReservedIpv6Args.java @@ -0,0 +1,65 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetReservedIpv6Args extends com.pulumi.resources.InvokeArgs { + + public static final GetReservedIpv6Args Empty = new GetReservedIpv6Args(); + + @Import(name="ip", required=true) + private Output ip; + + public Output ip() { + return this.ip; + } + + private GetReservedIpv6Args() {} + + private GetReservedIpv6Args(GetReservedIpv6Args $) { + this.ip = $.ip; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetReservedIpv6Args defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetReservedIpv6Args $; + + public Builder() { + $ = new GetReservedIpv6Args(); + } + + public Builder(GetReservedIpv6Args defaults) { + $ = new GetReservedIpv6Args(Objects.requireNonNull(defaults)); + } + + public Builder ip(Output ip) { + $.ip = ip; + return this; + } + + public Builder ip(String ip) { + return ip(Output.of(ip)); + } + + public GetReservedIpv6Args build() { + if ($.ip == null) { + throw new MissingRequiredPropertyException("GetReservedIpv6Args", "ip"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetReservedIpv6PlainArgs.java b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetReservedIpv6PlainArgs.java new file mode 100644 index 00000000..8210141f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/GetReservedIpv6PlainArgs.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetReservedIpv6PlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetReservedIpv6PlainArgs Empty = new GetReservedIpv6PlainArgs(); + + @Import(name="ip", required=true) + private String ip; + + public String ip() { + return this.ip; + } + + private GetReservedIpv6PlainArgs() {} + + private GetReservedIpv6PlainArgs(GetReservedIpv6PlainArgs $) { + this.ip = $.ip; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetReservedIpv6PlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetReservedIpv6PlainArgs $; + + public Builder() { + $ = new GetReservedIpv6PlainArgs(); + } + + public Builder(GetReservedIpv6PlainArgs defaults) { + $ = new GetReservedIpv6PlainArgs(Objects.requireNonNull(defaults)); + } + + public Builder ip(String ip) { + $.ip = ip; + return this; + } + + public GetReservedIpv6PlainArgs build() { + if ($.ip == null) { + throw new MissingRequiredPropertyException("GetReservedIpv6PlainArgs", "ip"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/LoadBalancerState.java b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/LoadBalancerState.java index d33ff77b..b4d2fa18 100644 --- a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/LoadBalancerState.java +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/LoadBalancerState.java @@ -279,7 +279,6 @@ public Optional> name() { /** * The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. * */ @Import(name="network") @@ -287,7 +286,6 @@ public Optional> name() { /** * @return The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. * */ public Optional> network() { @@ -359,14 +357,14 @@ public Optional> size() { } /** - * The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + * The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. * */ @Import(name="sizeUnit") private @Nullable Output sizeUnit; /** - * @return The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + * @return The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. * */ public Optional> sizeUnit() { @@ -413,7 +411,7 @@ public Optional>> targetLoadBalancerIds() { } /** - * The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. * */ @@ -421,7 +419,7 @@ public Optional>> targetLoadBalancerIds() { private @Nullable Output type; /** - * @return The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * @return The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. * */ @@ -899,7 +897,6 @@ public Builder name(String name) { /** * @param network The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. * * @return builder * @@ -911,7 +908,6 @@ public Builder network(@Nullable Output network) { /** * @param network The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. * * @return builder * @@ -1029,7 +1025,7 @@ public Builder size(String size) { } /** - * @param sizeUnit The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + * @param sizeUnit The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. * * @return builder * @@ -1040,7 +1036,7 @@ public Builder sizeUnit(@Nullable Output sizeUnit) { } /** - * @param sizeUnit The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + * @param sizeUnit The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. * * @return builder * @@ -1113,7 +1109,7 @@ public Builder targetLoadBalancerIds(String... targetLoadBalancerIds) { } /** - * @param type The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * @param type The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. * * @return builder @@ -1125,7 +1121,7 @@ public Builder type(@Nullable Output type) { } /** - * @param type The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * @param type The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/ReservedIpv6AssignmentState.java b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/ReservedIpv6AssignmentState.java new file mode 100644 index 00000000..85fb868e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/ReservedIpv6AssignmentState.java @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ReservedIpv6AssignmentState extends com.pulumi.resources.ResourceArgs { + + public static final ReservedIpv6AssignmentState Empty = new ReservedIpv6AssignmentState(); + + @Import(name="dropletId") + private @Nullable Output dropletId; + + public Optional> dropletId() { + return Optional.ofNullable(this.dropletId); + } + + @Import(name="ip") + private @Nullable Output ip; + + public Optional> ip() { + return Optional.ofNullable(this.ip); + } + + private ReservedIpv6AssignmentState() {} + + private ReservedIpv6AssignmentState(ReservedIpv6AssignmentState $) { + this.dropletId = $.dropletId; + this.ip = $.ip; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ReservedIpv6AssignmentState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ReservedIpv6AssignmentState $; + + public Builder() { + $ = new ReservedIpv6AssignmentState(); + } + + public Builder(ReservedIpv6AssignmentState defaults) { + $ = new ReservedIpv6AssignmentState(Objects.requireNonNull(defaults)); + } + + public Builder dropletId(@Nullable Output dropletId) { + $.dropletId = dropletId; + return this; + } + + public Builder dropletId(Integer dropletId) { + return dropletId(Output.of(dropletId)); + } + + public Builder ip(@Nullable Output ip) { + $.ip = ip; + return this; + } + + public Builder ip(String ip) { + return ip(Output.of(ip)); + } + + public ReservedIpv6AssignmentState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/ReservedIpv6State.java b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/ReservedIpv6State.java new file mode 100644 index 00000000..521ce315 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/inputs/ReservedIpv6State.java @@ -0,0 +1,135 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ReservedIpv6State extends com.pulumi.resources.ResourceArgs { + + public static final ReservedIpv6State Empty = new ReservedIpv6State(); + + @Import(name="dropletId") + private @Nullable Output dropletId; + + public Optional> dropletId() { + return Optional.ofNullable(this.dropletId); + } + + @Import(name="ip") + private @Nullable Output ip; + + public Optional> ip() { + return Optional.ofNullable(this.ip); + } + + @Import(name="regionSlug") + private @Nullable Output regionSlug; + + public Optional> regionSlug() { + return Optional.ofNullable(this.regionSlug); + } + + /** + * the uniform resource name for the reserved ipv6 + * + */ + @Import(name="urn") + private @Nullable Output urn; + + /** + * @return the uniform resource name for the reserved ipv6 + * + */ + public Optional> urn() { + return Optional.ofNullable(this.urn); + } + + private ReservedIpv6State() {} + + private ReservedIpv6State(ReservedIpv6State $) { + this.dropletId = $.dropletId; + this.ip = $.ip; + this.regionSlug = $.regionSlug; + this.urn = $.urn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ReservedIpv6State defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ReservedIpv6State $; + + public Builder() { + $ = new ReservedIpv6State(); + } + + public Builder(ReservedIpv6State defaults) { + $ = new ReservedIpv6State(Objects.requireNonNull(defaults)); + } + + public Builder dropletId(@Nullable Output dropletId) { + $.dropletId = dropletId; + return this; + } + + public Builder dropletId(Integer dropletId) { + return dropletId(Output.of(dropletId)); + } + + public Builder ip(@Nullable Output ip) { + $.ip = ip; + return this; + } + + public Builder ip(String ip) { + return ip(Output.of(ip)); + } + + public Builder regionSlug(@Nullable Output regionSlug) { + $.regionSlug = regionSlug; + return this; + } + + public Builder regionSlug(String regionSlug) { + return regionSlug(Output.of(regionSlug)); + } + + /** + * @param urn the uniform resource name for the reserved ipv6 + * + * @return builder + * + */ + public Builder urn(@Nullable Output urn) { + $.urn = urn; + return this; + } + + /** + * @param urn the uniform resource name for the reserved ipv6 + * + * @return builder + * + */ + public Builder urn(String urn) { + return urn(Output.of(urn)); + } + + public ReservedIpv6State build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/DropletAutoscaleConfig.java b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/DropletAutoscaleConfig.java new file mode 100644 index 00000000..cb65d43b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/DropletAutoscaleConfig.java @@ -0,0 +1,167 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Double; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DropletAutoscaleConfig { + /** + * @return The cooldown duration between scaling events for the Droplet Autoscale pool. + * + */ + private @Nullable Integer cooldownMinutes; + /** + * @return The maximum number of instances to maintain in the Droplet Autoscale pool. + * + */ + private @Nullable Integer maxInstances; + /** + * @return The minimum number of instances to maintain in the Droplet Autoscale pool. + * + */ + private @Nullable Integer minInstances; + /** + * @return The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + * + */ + private @Nullable Double targetCpuUtilization; + /** + * @return The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + * pool. + * + */ + private @Nullable Double targetMemoryUtilization; + /** + * @return The static number of instances to maintain in the pool Droplet Autoscale pool. This + * argument cannot be used with any other config options. + * + */ + private @Nullable Integer targetNumberInstances; + + private DropletAutoscaleConfig() {} + /** + * @return The cooldown duration between scaling events for the Droplet Autoscale pool. + * + */ + public Optional cooldownMinutes() { + return Optional.ofNullable(this.cooldownMinutes); + } + /** + * @return The maximum number of instances to maintain in the Droplet Autoscale pool. + * + */ + public Optional maxInstances() { + return Optional.ofNullable(this.maxInstances); + } + /** + * @return The minimum number of instances to maintain in the Droplet Autoscale pool. + * + */ + public Optional minInstances() { + return Optional.ofNullable(this.minInstances); + } + /** + * @return The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + * + */ + public Optional targetCpuUtilization() { + return Optional.ofNullable(this.targetCpuUtilization); + } + /** + * @return The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + * pool. + * + */ + public Optional targetMemoryUtilization() { + return Optional.ofNullable(this.targetMemoryUtilization); + } + /** + * @return The static number of instances to maintain in the pool Droplet Autoscale pool. This + * argument cannot be used with any other config options. + * + */ + public Optional targetNumberInstances() { + return Optional.ofNullable(this.targetNumberInstances); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DropletAutoscaleConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer cooldownMinutes; + private @Nullable Integer maxInstances; + private @Nullable Integer minInstances; + private @Nullable Double targetCpuUtilization; + private @Nullable Double targetMemoryUtilization; + private @Nullable Integer targetNumberInstances; + public Builder() {} + public Builder(DropletAutoscaleConfig defaults) { + Objects.requireNonNull(defaults); + this.cooldownMinutes = defaults.cooldownMinutes; + this.maxInstances = defaults.maxInstances; + this.minInstances = defaults.minInstances; + this.targetCpuUtilization = defaults.targetCpuUtilization; + this.targetMemoryUtilization = defaults.targetMemoryUtilization; + this.targetNumberInstances = defaults.targetNumberInstances; + } + + @CustomType.Setter + public Builder cooldownMinutes(@Nullable Integer cooldownMinutes) { + + this.cooldownMinutes = cooldownMinutes; + return this; + } + @CustomType.Setter + public Builder maxInstances(@Nullable Integer maxInstances) { + + this.maxInstances = maxInstances; + return this; + } + @CustomType.Setter + public Builder minInstances(@Nullable Integer minInstances) { + + this.minInstances = minInstances; + return this; + } + @CustomType.Setter + public Builder targetCpuUtilization(@Nullable Double targetCpuUtilization) { + + this.targetCpuUtilization = targetCpuUtilization; + return this; + } + @CustomType.Setter + public Builder targetMemoryUtilization(@Nullable Double targetMemoryUtilization) { + + this.targetMemoryUtilization = targetMemoryUtilization; + return this; + } + @CustomType.Setter + public Builder targetNumberInstances(@Nullable Integer targetNumberInstances) { + + this.targetNumberInstances = targetNumberInstances; + return this; + } + public DropletAutoscaleConfig build() { + final var _resultValue = new DropletAutoscaleConfig(); + _resultValue.cooldownMinutes = cooldownMinutes; + _resultValue.maxInstances = maxInstances; + _resultValue.minInstances = minInstances; + _resultValue.targetCpuUtilization = targetCpuUtilization; + _resultValue.targetMemoryUtilization = targetMemoryUtilization; + _resultValue.targetNumberInstances = targetNumberInstances; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/DropletAutoscaleCurrentUtilization.java b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/DropletAutoscaleCurrentUtilization.java new file mode 100644 index 00000000..95fbab68 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/DropletAutoscaleCurrentUtilization.java @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Double; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DropletAutoscaleCurrentUtilization { + /** + * @return Average CPU utilization + * + */ + private @Nullable Double cpu; + /** + * @return Average Memory utilization + * + */ + private @Nullable Double memory; + + private DropletAutoscaleCurrentUtilization() {} + /** + * @return Average CPU utilization + * + */ + public Optional cpu() { + return Optional.ofNullable(this.cpu); + } + /** + * @return Average Memory utilization + * + */ + public Optional memory() { + return Optional.ofNullable(this.memory); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DropletAutoscaleCurrentUtilization defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Double cpu; + private @Nullable Double memory; + public Builder() {} + public Builder(DropletAutoscaleCurrentUtilization defaults) { + Objects.requireNonNull(defaults); + this.cpu = defaults.cpu; + this.memory = defaults.memory; + } + + @CustomType.Setter + public Builder cpu(@Nullable Double cpu) { + + this.cpu = cpu; + return this; + } + @CustomType.Setter + public Builder memory(@Nullable Double memory) { + + this.memory = memory; + return this; + } + public DropletAutoscaleCurrentUtilization build() { + final var _resultValue = new DropletAutoscaleCurrentUtilization(); + _resultValue.cpu = cpu; + _resultValue.memory = memory; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/DropletAutoscaleDropletTemplate.java b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/DropletAutoscaleDropletTemplate.java new file mode 100644 index 00000000..a959fd57 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/DropletAutoscaleDropletTemplate.java @@ -0,0 +1,269 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class DropletAutoscaleDropletTemplate { + /** + * @return Image slug of the Droplet Autoscale pool underlying resource(s). + * + */ + private String image; + /** + * @return Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + * + */ + private @Nullable Boolean ipv6; + /** + * @return Project UUID to create the Droplet Autoscale pool underlying resource(s). + * + */ + private @Nullable String projectId; + /** + * @return Region slug of the Droplet Autoscale pool underlying resource(s). + * + */ + private String region; + /** + * @return Size slug of the Droplet Autoscale pool underlying resource(s). + * + */ + private String size; + /** + * @return SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + * + */ + private List sshKeys; + /** + * @return List of tags to add to the Droplet Autoscale pool underlying resource(s). + * + */ + private @Nullable List tags; + /** + * @return Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + * cloud init script that user may configure to setup their application workload. + * + */ + private @Nullable String userData; + /** + * @return VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + * from the specified `region` (default VPC). + * + */ + private @Nullable String vpcUuid; + /** + * @return Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + * metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + * + */ + private @Nullable Boolean withDropletAgent; + + private DropletAutoscaleDropletTemplate() {} + /** + * @return Image slug of the Droplet Autoscale pool underlying resource(s). + * + */ + public String image() { + return this.image; + } + /** + * @return Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + * + */ + public Optional ipv6() { + return Optional.ofNullable(this.ipv6); + } + /** + * @return Project UUID to create the Droplet Autoscale pool underlying resource(s). + * + */ + public Optional projectId() { + return Optional.ofNullable(this.projectId); + } + /** + * @return Region slug of the Droplet Autoscale pool underlying resource(s). + * + */ + public String region() { + return this.region; + } + /** + * @return Size slug of the Droplet Autoscale pool underlying resource(s). + * + */ + public String size() { + return this.size; + } + /** + * @return SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + * + */ + public List sshKeys() { + return this.sshKeys; + } + /** + * @return List of tags to add to the Droplet Autoscale pool underlying resource(s). + * + */ + public List tags() { + return this.tags == null ? List.of() : this.tags; + } + /** + * @return Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + * cloud init script that user may configure to setup their application workload. + * + */ + public Optional userData() { + return Optional.ofNullable(this.userData); + } + /** + * @return VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + * from the specified `region` (default VPC). + * + */ + public Optional vpcUuid() { + return Optional.ofNullable(this.vpcUuid); + } + /** + * @return Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + * metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + * + */ + public Optional withDropletAgent() { + return Optional.ofNullable(this.withDropletAgent); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DropletAutoscaleDropletTemplate defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String image; + private @Nullable Boolean ipv6; + private @Nullable String projectId; + private String region; + private String size; + private List sshKeys; + private @Nullable List tags; + private @Nullable String userData; + private @Nullable String vpcUuid; + private @Nullable Boolean withDropletAgent; + public Builder() {} + public Builder(DropletAutoscaleDropletTemplate defaults) { + Objects.requireNonNull(defaults); + this.image = defaults.image; + this.ipv6 = defaults.ipv6; + this.projectId = defaults.projectId; + this.region = defaults.region; + this.size = defaults.size; + this.sshKeys = defaults.sshKeys; + this.tags = defaults.tags; + this.userData = defaults.userData; + this.vpcUuid = defaults.vpcUuid; + this.withDropletAgent = defaults.withDropletAgent; + } + + @CustomType.Setter + public Builder image(String image) { + if (image == null) { + throw new MissingRequiredPropertyException("DropletAutoscaleDropletTemplate", "image"); + } + this.image = image; + return this; + } + @CustomType.Setter + public Builder ipv6(@Nullable Boolean ipv6) { + + this.ipv6 = ipv6; + return this; + } + @CustomType.Setter + public Builder projectId(@Nullable String projectId) { + + this.projectId = projectId; + return this; + } + @CustomType.Setter + public Builder region(String region) { + if (region == null) { + throw new MissingRequiredPropertyException("DropletAutoscaleDropletTemplate", "region"); + } + this.region = region; + return this; + } + @CustomType.Setter + public Builder size(String size) { + if (size == null) { + throw new MissingRequiredPropertyException("DropletAutoscaleDropletTemplate", "size"); + } + this.size = size; + return this; + } + @CustomType.Setter + public Builder sshKeys(List sshKeys) { + if (sshKeys == null) { + throw new MissingRequiredPropertyException("DropletAutoscaleDropletTemplate", "sshKeys"); + } + this.sshKeys = sshKeys; + return this; + } + public Builder sshKeys(String... sshKeys) { + return sshKeys(List.of(sshKeys)); + } + @CustomType.Setter + public Builder tags(@Nullable List tags) { + + this.tags = tags; + return this; + } + public Builder tags(String... tags) { + return tags(List.of(tags)); + } + @CustomType.Setter + public Builder userData(@Nullable String userData) { + + this.userData = userData; + return this; + } + @CustomType.Setter + public Builder vpcUuid(@Nullable String vpcUuid) { + + this.vpcUuid = vpcUuid; + return this; + } + @CustomType.Setter + public Builder withDropletAgent(@Nullable Boolean withDropletAgent) { + + this.withDropletAgent = withDropletAgent; + return this; + } + public DropletAutoscaleDropletTemplate build() { + final var _resultValue = new DropletAutoscaleDropletTemplate(); + _resultValue.image = image; + _resultValue.ipv6 = ipv6; + _resultValue.projectId = projectId; + _resultValue.region = region; + _resultValue.size = size; + _resultValue.sshKeys = sshKeys; + _resultValue.tags = tags; + _resultValue.userData = userData; + _resultValue.vpcUuid = vpcUuid; + _resultValue.withDropletAgent = withDropletAgent; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleConfig.java b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleConfig.java new file mode 100644 index 00000000..8164c500 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleConfig.java @@ -0,0 +1,174 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.lang.Integer; +import java.util.Objects; + +@CustomType +public final class GetDropletAutoscaleConfig { + /** + * @return Cooldown duration + * + */ + private Integer cooldownMinutes; + /** + * @return Max number of members + * + */ + private Integer maxInstances; + /** + * @return Min number of members + * + */ + private Integer minInstances; + /** + * @return CPU target threshold + * + */ + private Double targetCpuUtilization; + /** + * @return Memory target threshold + * + */ + private Double targetMemoryUtilization; + /** + * @return Target number of members + * + */ + private Integer targetNumberInstances; + + private GetDropletAutoscaleConfig() {} + /** + * @return Cooldown duration + * + */ + public Integer cooldownMinutes() { + return this.cooldownMinutes; + } + /** + * @return Max number of members + * + */ + public Integer maxInstances() { + return this.maxInstances; + } + /** + * @return Min number of members + * + */ + public Integer minInstances() { + return this.minInstances; + } + /** + * @return CPU target threshold + * + */ + public Double targetCpuUtilization() { + return this.targetCpuUtilization; + } + /** + * @return Memory target threshold + * + */ + public Double targetMemoryUtilization() { + return this.targetMemoryUtilization; + } + /** + * @return Target number of members + * + */ + public Integer targetNumberInstances() { + return this.targetNumberInstances; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetDropletAutoscaleConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Integer cooldownMinutes; + private Integer maxInstances; + private Integer minInstances; + private Double targetCpuUtilization; + private Double targetMemoryUtilization; + private Integer targetNumberInstances; + public Builder() {} + public Builder(GetDropletAutoscaleConfig defaults) { + Objects.requireNonNull(defaults); + this.cooldownMinutes = defaults.cooldownMinutes; + this.maxInstances = defaults.maxInstances; + this.minInstances = defaults.minInstances; + this.targetCpuUtilization = defaults.targetCpuUtilization; + this.targetMemoryUtilization = defaults.targetMemoryUtilization; + this.targetNumberInstances = defaults.targetNumberInstances; + } + + @CustomType.Setter + public Builder cooldownMinutes(Integer cooldownMinutes) { + if (cooldownMinutes == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleConfig", "cooldownMinutes"); + } + this.cooldownMinutes = cooldownMinutes; + return this; + } + @CustomType.Setter + public Builder maxInstances(Integer maxInstances) { + if (maxInstances == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleConfig", "maxInstances"); + } + this.maxInstances = maxInstances; + return this; + } + @CustomType.Setter + public Builder minInstances(Integer minInstances) { + if (minInstances == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleConfig", "minInstances"); + } + this.minInstances = minInstances; + return this; + } + @CustomType.Setter + public Builder targetCpuUtilization(Double targetCpuUtilization) { + if (targetCpuUtilization == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleConfig", "targetCpuUtilization"); + } + this.targetCpuUtilization = targetCpuUtilization; + return this; + } + @CustomType.Setter + public Builder targetMemoryUtilization(Double targetMemoryUtilization) { + if (targetMemoryUtilization == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleConfig", "targetMemoryUtilization"); + } + this.targetMemoryUtilization = targetMemoryUtilization; + return this; + } + @CustomType.Setter + public Builder targetNumberInstances(Integer targetNumberInstances) { + if (targetNumberInstances == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleConfig", "targetNumberInstances"); + } + this.targetNumberInstances = targetNumberInstances; + return this; + } + public GetDropletAutoscaleConfig build() { + final var _resultValue = new GetDropletAutoscaleConfig(); + _resultValue.cooldownMinutes = cooldownMinutes; + _resultValue.maxInstances = maxInstances; + _resultValue.minInstances = minInstances; + _resultValue.targetCpuUtilization = targetCpuUtilization; + _resultValue.targetMemoryUtilization = targetMemoryUtilization; + _resultValue.targetNumberInstances = targetNumberInstances; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleCurrentUtilization.java b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleCurrentUtilization.java new file mode 100644 index 00000000..3e8dd1c6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleCurrentUtilization.java @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.util.Objects; + +@CustomType +public final class GetDropletAutoscaleCurrentUtilization { + /** + * @return Average CPU utilization + * + */ + private Double cpu; + /** + * @return Average Memory utilization + * + */ + private Double memory; + + private GetDropletAutoscaleCurrentUtilization() {} + /** + * @return Average CPU utilization + * + */ + public Double cpu() { + return this.cpu; + } + /** + * @return Average Memory utilization + * + */ + public Double memory() { + return this.memory; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetDropletAutoscaleCurrentUtilization defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Double cpu; + private Double memory; + public Builder() {} + public Builder(GetDropletAutoscaleCurrentUtilization defaults) { + Objects.requireNonNull(defaults); + this.cpu = defaults.cpu; + this.memory = defaults.memory; + } + + @CustomType.Setter + public Builder cpu(Double cpu) { + if (cpu == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleCurrentUtilization", "cpu"); + } + this.cpu = cpu; + return this; + } + @CustomType.Setter + public Builder memory(Double memory) { + if (memory == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleCurrentUtilization", "memory"); + } + this.memory = memory; + return this; + } + public GetDropletAutoscaleCurrentUtilization build() { + final var _resultValue = new GetDropletAutoscaleCurrentUtilization(); + _resultValue.cpu = cpu; + _resultValue.memory = memory; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleDropletTemplate.java b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleDropletTemplate.java new file mode 100644 index 00000000..ec24bc75 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleDropletTemplate.java @@ -0,0 +1,273 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetDropletAutoscaleDropletTemplate { + /** + * @return Droplet image + * + */ + private String image; + /** + * @return Enable droplet IPv6 + * + */ + private Boolean ipv6; + /** + * @return Droplet project ID + * + */ + private String projectId; + /** + * @return Droplet region + * + */ + private String region; + /** + * @return Droplet size + * + */ + private String size; + /** + * @return Droplet SSH keys + * + */ + private List sshKeys; + /** + * @return Droplet tags + * + */ + private List tags; + /** + * @return Droplet user data + * + */ + private String userData; + /** + * @return Droplet VPC UUID + * + */ + private String vpcUuid; + /** + * @return Enable droplet agent + * + */ + private Boolean withDropletAgent; + + private GetDropletAutoscaleDropletTemplate() {} + /** + * @return Droplet image + * + */ + public String image() { + return this.image; + } + /** + * @return Enable droplet IPv6 + * + */ + public Boolean ipv6() { + return this.ipv6; + } + /** + * @return Droplet project ID + * + */ + public String projectId() { + return this.projectId; + } + /** + * @return Droplet region + * + */ + public String region() { + return this.region; + } + /** + * @return Droplet size + * + */ + public String size() { + return this.size; + } + /** + * @return Droplet SSH keys + * + */ + public List sshKeys() { + return this.sshKeys; + } + /** + * @return Droplet tags + * + */ + public List tags() { + return this.tags; + } + /** + * @return Droplet user data + * + */ + public String userData() { + return this.userData; + } + /** + * @return Droplet VPC UUID + * + */ + public String vpcUuid() { + return this.vpcUuid; + } + /** + * @return Enable droplet agent + * + */ + public Boolean withDropletAgent() { + return this.withDropletAgent; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetDropletAutoscaleDropletTemplate defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String image; + private Boolean ipv6; + private String projectId; + private String region; + private String size; + private List sshKeys; + private List tags; + private String userData; + private String vpcUuid; + private Boolean withDropletAgent; + public Builder() {} + public Builder(GetDropletAutoscaleDropletTemplate defaults) { + Objects.requireNonNull(defaults); + this.image = defaults.image; + this.ipv6 = defaults.ipv6; + this.projectId = defaults.projectId; + this.region = defaults.region; + this.size = defaults.size; + this.sshKeys = defaults.sshKeys; + this.tags = defaults.tags; + this.userData = defaults.userData; + this.vpcUuid = defaults.vpcUuid; + this.withDropletAgent = defaults.withDropletAgent; + } + + @CustomType.Setter + public Builder image(String image) { + if (image == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleDropletTemplate", "image"); + } + this.image = image; + return this; + } + @CustomType.Setter + public Builder ipv6(Boolean ipv6) { + if (ipv6 == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleDropletTemplate", "ipv6"); + } + this.ipv6 = ipv6; + return this; + } + @CustomType.Setter + public Builder projectId(String projectId) { + if (projectId == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleDropletTemplate", "projectId"); + } + this.projectId = projectId; + return this; + } + @CustomType.Setter + public Builder region(String region) { + if (region == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleDropletTemplate", "region"); + } + this.region = region; + return this; + } + @CustomType.Setter + public Builder size(String size) { + if (size == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleDropletTemplate", "size"); + } + this.size = size; + return this; + } + @CustomType.Setter + public Builder sshKeys(List sshKeys) { + if (sshKeys == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleDropletTemplate", "sshKeys"); + } + this.sshKeys = sshKeys; + return this; + } + public Builder sshKeys(String... sshKeys) { + return sshKeys(List.of(sshKeys)); + } + @CustomType.Setter + public Builder tags(List tags) { + if (tags == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleDropletTemplate", "tags"); + } + this.tags = tags; + return this; + } + public Builder tags(String... tags) { + return tags(List.of(tags)); + } + @CustomType.Setter + public Builder userData(String userData) { + if (userData == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleDropletTemplate", "userData"); + } + this.userData = userData; + return this; + } + @CustomType.Setter + public Builder vpcUuid(String vpcUuid) { + if (vpcUuid == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleDropletTemplate", "vpcUuid"); + } + this.vpcUuid = vpcUuid; + return this; + } + @CustomType.Setter + public Builder withDropletAgent(Boolean withDropletAgent) { + if (withDropletAgent == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleDropletTemplate", "withDropletAgent"); + } + this.withDropletAgent = withDropletAgent; + return this; + } + public GetDropletAutoscaleDropletTemplate build() { + final var _resultValue = new GetDropletAutoscaleDropletTemplate(); + _resultValue.image = image; + _resultValue.ipv6 = ipv6; + _resultValue.projectId = projectId; + _resultValue.region = region; + _resultValue.size = size; + _resultValue.sshKeys = sshKeys; + _resultValue.tags = tags; + _resultValue.userData = userData; + _resultValue.vpcUuid = vpcUuid; + _resultValue.withDropletAgent = withDropletAgent; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleResult.java b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleResult.java new file mode 100644 index 00000000..421c16da --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetDropletAutoscaleResult.java @@ -0,0 +1,166 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.digitalocean.outputs.GetDropletAutoscaleConfig; +import com.pulumi.digitalocean.outputs.GetDropletAutoscaleCurrentUtilization; +import com.pulumi.digitalocean.outputs.GetDropletAutoscaleDropletTemplate; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class GetDropletAutoscaleResult { + private List configs; + private String createdAt; + private List currentUtilizations; + private List dropletTemplates; + private @Nullable String id; + private @Nullable String name; + private String status; + private String updatedAt; + + private GetDropletAutoscaleResult() {} + public List configs() { + return this.configs; + } + public String createdAt() { + return this.createdAt; + } + public List currentUtilizations() { + return this.currentUtilizations; + } + public List dropletTemplates() { + return this.dropletTemplates; + } + public Optional id() { + return Optional.ofNullable(this.id); + } + public Optional name() { + return Optional.ofNullable(this.name); + } + public String status() { + return this.status; + } + public String updatedAt() { + return this.updatedAt; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetDropletAutoscaleResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List configs; + private String createdAt; + private List currentUtilizations; + private List dropletTemplates; + private @Nullable String id; + private @Nullable String name; + private String status; + private String updatedAt; + public Builder() {} + public Builder(GetDropletAutoscaleResult defaults) { + Objects.requireNonNull(defaults); + this.configs = defaults.configs; + this.createdAt = defaults.createdAt; + this.currentUtilizations = defaults.currentUtilizations; + this.dropletTemplates = defaults.dropletTemplates; + this.id = defaults.id; + this.name = defaults.name; + this.status = defaults.status; + this.updatedAt = defaults.updatedAt; + } + + @CustomType.Setter + public Builder configs(List configs) { + if (configs == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleResult", "configs"); + } + this.configs = configs; + return this; + } + public Builder configs(GetDropletAutoscaleConfig... configs) { + return configs(List.of(configs)); + } + @CustomType.Setter + public Builder createdAt(String createdAt) { + if (createdAt == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleResult", "createdAt"); + } + this.createdAt = createdAt; + return this; + } + @CustomType.Setter + public Builder currentUtilizations(List currentUtilizations) { + if (currentUtilizations == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleResult", "currentUtilizations"); + } + this.currentUtilizations = currentUtilizations; + return this; + } + public Builder currentUtilizations(GetDropletAutoscaleCurrentUtilization... currentUtilizations) { + return currentUtilizations(List.of(currentUtilizations)); + } + @CustomType.Setter + public Builder dropletTemplates(List dropletTemplates) { + if (dropletTemplates == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleResult", "dropletTemplates"); + } + this.dropletTemplates = dropletTemplates; + return this; + } + public Builder dropletTemplates(GetDropletAutoscaleDropletTemplate... dropletTemplates) { + return dropletTemplates(List.of(dropletTemplates)); + } + @CustomType.Setter + public Builder id(@Nullable String id) { + + this.id = id; + return this; + } + @CustomType.Setter + public Builder name(@Nullable String name) { + + this.name = name; + return this; + } + @CustomType.Setter + public Builder status(String status) { + if (status == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleResult", "status"); + } + this.status = status; + return this; + } + @CustomType.Setter + public Builder updatedAt(String updatedAt) { + if (updatedAt == null) { + throw new MissingRequiredPropertyException("GetDropletAutoscaleResult", "updatedAt"); + } + this.updatedAt = updatedAt; + return this; + } + public GetDropletAutoscaleResult build() { + final var _resultValue = new GetDropletAutoscaleResult(); + _resultValue.configs = configs; + _resultValue.createdAt = createdAt; + _resultValue.currentUtilizations = currentUtilizations; + _resultValue.dropletTemplates = dropletTemplates; + _resultValue.id = id; + _resultValue.name = name; + _resultValue.status = status; + _resultValue.updatedAt = updatedAt; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetReservedIpv6Result.java b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetReservedIpv6Result.java new file mode 100644 index 00000000..9423ab65 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/digitalocean/outputs/GetReservedIpv6Result.java @@ -0,0 +1,119 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.digitalocean.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetReservedIpv6Result { + private Integer dropletId; + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + private String ip; + private String regionSlug; + private String urn; + + private GetReservedIpv6Result() {} + public Integer dropletId() { + return this.dropletId; + } + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + public String ip() { + return this.ip; + } + public String regionSlug() { + return this.regionSlug; + } + public String urn() { + return this.urn; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetReservedIpv6Result defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Integer dropletId; + private String id; + private String ip; + private String regionSlug; + private String urn; + public Builder() {} + public Builder(GetReservedIpv6Result defaults) { + Objects.requireNonNull(defaults); + this.dropletId = defaults.dropletId; + this.id = defaults.id; + this.ip = defaults.ip; + this.regionSlug = defaults.regionSlug; + this.urn = defaults.urn; + } + + @CustomType.Setter + public Builder dropletId(Integer dropletId) { + if (dropletId == null) { + throw new MissingRequiredPropertyException("GetReservedIpv6Result", "dropletId"); + } + this.dropletId = dropletId; + return this; + } + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetReservedIpv6Result", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder ip(String ip) { + if (ip == null) { + throw new MissingRequiredPropertyException("GetReservedIpv6Result", "ip"); + } + this.ip = ip; + return this; + } + @CustomType.Setter + public Builder regionSlug(String regionSlug) { + if (regionSlug == null) { + throw new MissingRequiredPropertyException("GetReservedIpv6Result", "regionSlug"); + } + this.regionSlug = regionSlug; + return this; + } + @CustomType.Setter + public Builder urn(String urn) { + if (urn == null) { + throw new MissingRequiredPropertyException("GetReservedIpv6Result", "urn"); + } + this.urn = urn; + return this; + } + public GetReservedIpv6Result build() { + final var _resultValue = new GetReservedIpv6Result(); + _resultValue.dropletId = dropletId; + _resultValue.id = id; + _resultValue.ip = ip; + _resultValue.regionSlug = regionSlug; + _resultValue.urn = urn; + return _resultValue; + } + } +} diff --git a/sdk/nodejs/dropletAutoscale.ts b/sdk/nodejs/dropletAutoscale.ts new file mode 100644 index 00000000..f3b4aea3 --- /dev/null +++ b/sdk/nodejs/dropletAutoscale.ts @@ -0,0 +1,221 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as enums from "./types/enums"; +import * as utilities from "./utilities"; + +/** + * Provides a DigitalOcean Droplet Autoscale resource. This can be used to create, modify, + * read and delete Droplet Autoscale pools. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as digitalocean from "@pulumi/digitalocean"; + * import * as std from "@pulumi/std"; + * + * const my_ssh_key = new digitalocean.SshKey("my-ssh-key", { + * name: "terraform-example", + * publicKey: std.file({ + * input: "/Users/terraform/.ssh/id_rsa.pub", + * }).then(invoke => invoke.result), + * }); + * const my_tag = new digitalocean.Tag("my-tag", {name: "terraform-example"}); + * const my_autoscale_pool = new digitalocean.DropletAutoscale("my-autoscale-pool", { + * name: "terraform-example", + * config: { + * minInstances: 10, + * maxInstances: 50, + * targetCpuUtilization: 0.5, + * targetMemoryUtilization: 0.5, + * cooldownMinutes: 5, + * }, + * dropletTemplate: { + * size: "c-2", + * region: "nyc3", + * image: "ubuntu-24-04-x64", + * tags: [my_tag.id], + * sshKeys: [my_ssh_key.id], + * withDropletAgent: true, + * ipv6: true, + * userData: ` + * #cloud-config + * runcmd: + * - apt-get update + * - apt-get install -y stress-ng + * `, + * }, + * }); + * ``` + * + * ## Import + * + * Droplet Autoscale pools can be imported using their `id`, e.g. + * + * ```sh + * $ pulumi import digitalocean:index/dropletAutoscale:DropletAutoscale my-autoscale-pool 38e66834-d741-47ec-88e7-c70cbdcz0445 + * ``` + */ +export class DropletAutoscale extends pulumi.CustomResource { + /** + * Get an existing DropletAutoscale resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: DropletAutoscaleState, opts?: pulumi.CustomResourceOptions): DropletAutoscale { + return new DropletAutoscale(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'digitalocean:index/dropletAutoscale:DropletAutoscale'; + + /** + * Returns true if the given object is an instance of DropletAutoscale. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is DropletAutoscale { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DropletAutoscale.__pulumiType; + } + + /** + * The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + */ + public readonly config!: pulumi.Output; + /** + * Created at timestamp for the Droplet Autoscale pool. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * The current average resource utilization of the Droplet Autoscale pool, this attribute further + * embeds `memory` and `cpu` attributes to respectively report utilization data. + */ + public /*out*/ readonly currentUtilizations!: pulumi.Output; + /** + * The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + */ + public readonly dropletTemplate!: pulumi.Output; + /** + * The name of the Droplet Autoscale pool. + */ + public readonly name!: pulumi.Output; + /** + * Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + * traffic, or in an error state and needs user intervention. + */ + public /*out*/ readonly status!: pulumi.Output; + /** + * Updated at timestamp for the Droplet Autoscale pool. + */ + public /*out*/ readonly updatedAt!: pulumi.Output; + + /** + * Create a DropletAutoscale resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: DropletAutoscaleArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: DropletAutoscaleArgs | DropletAutoscaleState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as DropletAutoscaleState | undefined; + resourceInputs["config"] = state ? state.config : undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["currentUtilizations"] = state ? state.currentUtilizations : undefined; + resourceInputs["dropletTemplate"] = state ? state.dropletTemplate : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["status"] = state ? state.status : undefined; + resourceInputs["updatedAt"] = state ? state.updatedAt : undefined; + } else { + const args = argsOrState as DropletAutoscaleArgs | undefined; + if ((!args || args.config === undefined) && !opts.urn) { + throw new Error("Missing required property 'config'"); + } + if ((!args || args.dropletTemplate === undefined) && !opts.urn) { + throw new Error("Missing required property 'dropletTemplate'"); + } + resourceInputs["config"] = args ? args.config : undefined; + resourceInputs["dropletTemplate"] = args ? args.dropletTemplate : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["currentUtilizations"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(DropletAutoscale.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering DropletAutoscale resources. + */ +export interface DropletAutoscaleState { + /** + * The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + */ + config?: pulumi.Input; + /** + * Created at timestamp for the Droplet Autoscale pool. + */ + createdAt?: pulumi.Input; + /** + * The current average resource utilization of the Droplet Autoscale pool, this attribute further + * embeds `memory` and `cpu` attributes to respectively report utilization data. + */ + currentUtilizations?: pulumi.Input[]>; + /** + * The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + */ + dropletTemplate?: pulumi.Input; + /** + * The name of the Droplet Autoscale pool. + */ + name?: pulumi.Input; + /** + * Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + * traffic, or in an error state and needs user intervention. + */ + status?: pulumi.Input; + /** + * Updated at timestamp for the Droplet Autoscale pool. + */ + updatedAt?: pulumi.Input; +} + +/** + * The set of arguments for constructing a DropletAutoscale resource. + */ +export interface DropletAutoscaleArgs { + /** + * The configuration parameters for Droplet Autoscale pool, the supported arguments are + * documented below. + */ + config: pulumi.Input; + /** + * The droplet template parameters for Droplet Autoscale pool, the supported arguments + * are documented below. + */ + dropletTemplate: pulumi.Input; + /** + * The name of the Droplet Autoscale pool. + */ + name?: pulumi.Input; +} diff --git a/sdk/nodejs/getDropletAutoscale.ts b/sdk/nodejs/getDropletAutoscale.ts new file mode 100644 index 00000000..b49215dc --- /dev/null +++ b/sdk/nodejs/getDropletAutoscale.ts @@ -0,0 +1,117 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as enums from "./types/enums"; +import * as utilities from "./utilities"; + +/** + * ## Example Usage + * + * Get the Droplet Autoscale pool by name: + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as digitalocean from "@pulumi/digitalocean"; + * + * const my-imported-autoscale-pool = digitalocean.getDropletAutoscale({ + * name: my_existing_autoscale_pool.name, + * }); + * ``` + * + * Get the Droplet Autoscale pool by ID: + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as digitalocean from "@pulumi/digitalocean"; + * + * const my-imported-autoscale-pool = digitalocean.getDropletAutoscale({ + * id: my_existing_autoscale_pool.id, + * }); + * ``` + */ +export function getDropletAutoscale(args?: GetDropletAutoscaleArgs, opts?: pulumi.InvokeOptions): Promise { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("digitalocean:index/getDropletAutoscale:getDropletAutoscale", { + "id": args.id, + "name": args.name, + }, opts); +} + +/** + * A collection of arguments for invoking getDropletAutoscale. + */ +export interface GetDropletAutoscaleArgs { + /** + * The ID of Droplet Autoscale pool. + */ + id?: string; + /** + * The name of Droplet Autoscale pool. + */ + name?: string; +} + +/** + * A collection of values returned by getDropletAutoscale. + */ +export interface GetDropletAutoscaleResult { + readonly configs: outputs.GetDropletAutoscaleConfig[]; + readonly createdAt: string; + readonly currentUtilizations: outputs.GetDropletAutoscaleCurrentUtilization[]; + readonly dropletTemplates: outputs.GetDropletAutoscaleDropletTemplate[]; + readonly id?: string; + readonly name?: string; + readonly status: string; + readonly updatedAt: string; +} +/** + * ## Example Usage + * + * Get the Droplet Autoscale pool by name: + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as digitalocean from "@pulumi/digitalocean"; + * + * const my-imported-autoscale-pool = digitalocean.getDropletAutoscale({ + * name: my_existing_autoscale_pool.name, + * }); + * ``` + * + * Get the Droplet Autoscale pool by ID: + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as digitalocean from "@pulumi/digitalocean"; + * + * const my-imported-autoscale-pool = digitalocean.getDropletAutoscale({ + * id: my_existing_autoscale_pool.id, + * }); + * ``` + */ +export function getDropletAutoscaleOutput(args?: GetDropletAutoscaleOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + args = args || {}; + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("digitalocean:index/getDropletAutoscale:getDropletAutoscale", { + "id": args.id, + "name": args.name, + }, opts); +} + +/** + * A collection of arguments for invoking getDropletAutoscale. + */ +export interface GetDropletAutoscaleOutputArgs { + /** + * The ID of Droplet Autoscale pool. + */ + id?: pulumi.Input; + /** + * The name of Droplet Autoscale pool. + */ + name?: pulumi.Input; +} diff --git a/sdk/nodejs/getReservedIpv6.ts b/sdk/nodejs/getReservedIpv6.ts new file mode 100644 index 00000000..6c39892c --- /dev/null +++ b/sdk/nodejs/getReservedIpv6.ts @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export function getReservedIpv6(args: GetReservedIpv6Args, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("digitalocean:index/getReservedIpv6:getReservedIpv6", { + "ip": args.ip, + }, opts); +} + +/** + * A collection of arguments for invoking getReservedIpv6. + */ +export interface GetReservedIpv6Args { + ip: string; +} + +/** + * A collection of values returned by getReservedIpv6. + */ +export interface GetReservedIpv6Result { + readonly dropletId: number; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly ip: string; + readonly regionSlug: string; + readonly urn: string; +} +export function getReservedIpv6Output(args: GetReservedIpv6OutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("digitalocean:index/getReservedIpv6:getReservedIpv6", { + "ip": args.ip, + }, opts); +} + +/** + * A collection of arguments for invoking getReservedIpv6. + */ +export interface GetReservedIpv6OutputArgs { + ip: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index d130b13c..e438712c 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -115,6 +115,11 @@ export type Droplet = import("./droplet").Droplet; export const Droplet: typeof import("./droplet").Droplet = null as any; utilities.lazyLoad(exports, ["Droplet"], () => require("./droplet")); +export { DropletAutoscaleArgs, DropletAutoscaleState } from "./dropletAutoscale"; +export type DropletAutoscale = import("./dropletAutoscale").DropletAutoscale; +export const DropletAutoscale: typeof import("./dropletAutoscale").DropletAutoscale = null as any; +utilities.lazyLoad(exports, ["DropletAutoscale"], () => require("./dropletAutoscale")); + export { DropletSnapshotArgs, DropletSnapshotState } from "./dropletSnapshot"; export type DropletSnapshot = import("./dropletSnapshot").DropletSnapshot; export const DropletSnapshot: typeof import("./dropletSnapshot").DropletSnapshot = null as any; @@ -195,6 +200,11 @@ export const getDroplet: typeof import("./getDroplet").getDroplet = null as any; export const getDropletOutput: typeof import("./getDroplet").getDropletOutput = null as any; utilities.lazyLoad(exports, ["getDroplet","getDropletOutput"], () => require("./getDroplet")); +export { GetDropletAutoscaleArgs, GetDropletAutoscaleResult, GetDropletAutoscaleOutputArgs } from "./getDropletAutoscale"; +export const getDropletAutoscale: typeof import("./getDropletAutoscale").getDropletAutoscale = null as any; +export const getDropletAutoscaleOutput: typeof import("./getDropletAutoscale").getDropletAutoscaleOutput = null as any; +utilities.lazyLoad(exports, ["getDropletAutoscale","getDropletAutoscaleOutput"], () => require("./getDropletAutoscale")); + export { GetDropletSnapshotArgs, GetDropletSnapshotResult, GetDropletSnapshotOutputArgs } from "./getDropletSnapshot"; export const getDropletSnapshot: typeof import("./getDropletSnapshot").getDropletSnapshot = null as any; export const getDropletSnapshotOutput: typeof import("./getDropletSnapshot").getDropletSnapshotOutput = null as any; @@ -275,6 +285,11 @@ export const getReservedIp: typeof import("./getReservedIp").getReservedIp = nul export const getReservedIpOutput: typeof import("./getReservedIp").getReservedIpOutput = null as any; utilities.lazyLoad(exports, ["getReservedIp","getReservedIpOutput"], () => require("./getReservedIp")); +export { GetReservedIpv6Args, GetReservedIpv6Result, GetReservedIpv6OutputArgs } from "./getReservedIpv6"; +export const getReservedIpv6: typeof import("./getReservedIpv6").getReservedIpv6 = null as any; +export const getReservedIpv6Output: typeof import("./getReservedIpv6").getReservedIpv6Output = null as any; +utilities.lazyLoad(exports, ["getReservedIpv6","getReservedIpv6Output"], () => require("./getReservedIpv6")); + export { GetSizesArgs, GetSizesResult, GetSizesOutputArgs } from "./getSizes"; export const getSizes: typeof import("./getSizes").getSizes = null as any; export const getSizesOutput: typeof import("./getSizes").getSizesOutput = null as any; @@ -385,6 +400,16 @@ export type ReservedIpAssignment = import("./reservedIpAssignment").ReservedIpAs export const ReservedIpAssignment: typeof import("./reservedIpAssignment").ReservedIpAssignment = null as any; utilities.lazyLoad(exports, ["ReservedIpAssignment"], () => require("./reservedIpAssignment")); +export { ReservedIpv6Args, ReservedIpv6State } from "./reservedIpv6"; +export type ReservedIpv6 = import("./reservedIpv6").ReservedIpv6; +export const ReservedIpv6: typeof import("./reservedIpv6").ReservedIpv6 = null as any; +utilities.lazyLoad(exports, ["ReservedIpv6"], () => require("./reservedIpv6")); + +export { ReservedIpv6AssignmentArgs, ReservedIpv6AssignmentState } from "./reservedIpv6Assignment"; +export type ReservedIpv6Assignment = import("./reservedIpv6Assignment").ReservedIpv6Assignment; +export const ReservedIpv6Assignment: typeof import("./reservedIpv6Assignment").ReservedIpv6Assignment = null as any; +utilities.lazyLoad(exports, ["ReservedIpv6Assignment"], () => require("./reservedIpv6Assignment")); + export { SpacesBucketArgs, SpacesBucketState } from "./spacesBucket"; export type SpacesBucket = import("./spacesBucket").SpacesBucket; export const SpacesBucket: typeof import("./spacesBucket").SpacesBucket = null as any; @@ -511,6 +536,8 @@ const _module = { return new Domain(name, undefined, { urn }) case "digitalocean:index/droplet:Droplet": return new Droplet(name, undefined, { urn }) + case "digitalocean:index/dropletAutoscale:DropletAutoscale": + return new DropletAutoscale(name, undefined, { urn }) case "digitalocean:index/dropletSnapshot:DropletSnapshot": return new DropletSnapshot(name, undefined, { urn }) case "digitalocean:index/firewall:Firewall": @@ -535,6 +562,10 @@ const _module = { return new ReservedIp(name, undefined, { urn }) case "digitalocean:index/reservedIpAssignment:ReservedIpAssignment": return new ReservedIpAssignment(name, undefined, { urn }) + case "digitalocean:index/reservedIpv6:ReservedIpv6": + return new ReservedIpv6(name, undefined, { urn }) + case "digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment": + return new ReservedIpv6Assignment(name, undefined, { urn }) case "digitalocean:index/spacesBucket:SpacesBucket": return new SpacesBucket(name, undefined, { urn }) case "digitalocean:index/spacesBucketCorsConfiguration:SpacesBucketCorsConfiguration": @@ -588,6 +619,7 @@ pulumi.runtime.registerResourceModule("digitalocean", "index/databaseUser", _mod pulumi.runtime.registerResourceModule("digitalocean", "index/dnsRecord", _module) pulumi.runtime.registerResourceModule("digitalocean", "index/domain", _module) pulumi.runtime.registerResourceModule("digitalocean", "index/droplet", _module) +pulumi.runtime.registerResourceModule("digitalocean", "index/dropletAutoscale", _module) pulumi.runtime.registerResourceModule("digitalocean", "index/dropletSnapshot", _module) pulumi.runtime.registerResourceModule("digitalocean", "index/firewall", _module) pulumi.runtime.registerResourceModule("digitalocean", "index/floatingIp", _module) @@ -600,6 +632,8 @@ pulumi.runtime.registerResourceModule("digitalocean", "index/project", _module) pulumi.runtime.registerResourceModule("digitalocean", "index/projectResources", _module) pulumi.runtime.registerResourceModule("digitalocean", "index/reservedIp", _module) pulumi.runtime.registerResourceModule("digitalocean", "index/reservedIpAssignment", _module) +pulumi.runtime.registerResourceModule("digitalocean", "index/reservedIpv6", _module) +pulumi.runtime.registerResourceModule("digitalocean", "index/reservedIpv6Assignment", _module) pulumi.runtime.registerResourceModule("digitalocean", "index/spacesBucket", _module) pulumi.runtime.registerResourceModule("digitalocean", "index/spacesBucketCorsConfiguration", _module) pulumi.runtime.registerResourceModule("digitalocean", "index/spacesBucketObject", _module) diff --git a/sdk/nodejs/loadBalancer.ts b/sdk/nodejs/loadBalancer.ts index 6c7b4f5f..df307db2 100644 --- a/sdk/nodejs/loadBalancer.ts +++ b/sdk/nodejs/loadBalancer.ts @@ -152,7 +152,6 @@ export class LoadBalancer extends pulumi.CustomResource { public readonly name!: pulumi.Output; /** * The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. */ public readonly network!: pulumi.Output; /** @@ -174,7 +173,7 @@ export class LoadBalancer extends pulumi.CustomResource { */ public readonly size!: pulumi.Output; /** - * The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. + * The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. */ public readonly sizeUnit!: pulumi.Output; public /*out*/ readonly status!: pulumi.Output; @@ -188,7 +187,7 @@ export class LoadBalancer extends pulumi.CustomResource { */ public readonly targetLoadBalancerIds!: pulumi.Output; /** - * The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. */ public readonly type!: pulumi.Output; @@ -346,7 +345,6 @@ export interface LoadBalancerState { name?: pulumi.Input; /** * The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. */ network?: pulumi.Input; /** @@ -368,7 +366,7 @@ export interface LoadBalancerState { */ size?: pulumi.Input; /** - * The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. + * The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. */ sizeUnit?: pulumi.Input; status?: pulumi.Input; @@ -382,7 +380,7 @@ export interface LoadBalancerState { */ targetLoadBalancerIds?: pulumi.Input[]>; /** - * The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. */ type?: pulumi.Input; @@ -457,7 +455,6 @@ export interface LoadBalancerArgs { name?: pulumi.Input; /** * The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - * **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. */ network?: pulumi.Input; /** @@ -479,7 +476,7 @@ export interface LoadBalancerArgs { */ size?: pulumi.Input; /** - * The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. + * The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `sizeUnit` may be provided. */ sizeUnit?: pulumi.Input; /** @@ -492,7 +489,7 @@ export interface LoadBalancerArgs { */ targetLoadBalancerIds?: pulumi.Input[]>; /** - * The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + * The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. * **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. */ type?: pulumi.Input; diff --git a/sdk/nodejs/reservedIpv6.ts b/sdk/nodejs/reservedIpv6.ts new file mode 100644 index 00000000..7c83886f --- /dev/null +++ b/sdk/nodejs/reservedIpv6.ts @@ -0,0 +1,95 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class ReservedIpv6 extends pulumi.CustomResource { + /** + * Get an existing ReservedIpv6 resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ReservedIpv6State, opts?: pulumi.CustomResourceOptions): ReservedIpv6 { + return new ReservedIpv6(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'digitalocean:index/reservedIpv6:ReservedIpv6'; + + /** + * Returns true if the given object is an instance of ReservedIpv6. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ReservedIpv6 { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ReservedIpv6.__pulumiType; + } + + public readonly dropletId!: pulumi.Output; + public readonly ip!: pulumi.Output; + public readonly regionSlug!: pulumi.Output; + /** + * the uniform resource name for the reserved ipv6 + */ + public /*out*/ readonly urn!: pulumi.Output; + + /** + * Create a ReservedIpv6 resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ReservedIpv6Args, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ReservedIpv6Args | ReservedIpv6State, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ReservedIpv6State | undefined; + resourceInputs["dropletId"] = state ? state.dropletId : undefined; + resourceInputs["ip"] = state ? state.ip : undefined; + resourceInputs["regionSlug"] = state ? state.regionSlug : undefined; + resourceInputs["urn"] = state ? state.urn : undefined; + } else { + const args = argsOrState as ReservedIpv6Args | undefined; + if ((!args || args.regionSlug === undefined) && !opts.urn) { + throw new Error("Missing required property 'regionSlug'"); + } + resourceInputs["dropletId"] = args ? args.dropletId : undefined; + resourceInputs["ip"] = args ? args.ip : undefined; + resourceInputs["regionSlug"] = args ? args.regionSlug : undefined; + resourceInputs["urn"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ReservedIpv6.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ReservedIpv6 resources. + */ +export interface ReservedIpv6State { + dropletId?: pulumi.Input; + ip?: pulumi.Input; + regionSlug?: pulumi.Input; + /** + * the uniform resource name for the reserved ipv6 + */ + urn?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ReservedIpv6 resource. + */ +export interface ReservedIpv6Args { + dropletId?: pulumi.Input; + ip?: pulumi.Input; + regionSlug: pulumi.Input; +} diff --git a/sdk/nodejs/reservedIpv6Assignment.ts b/sdk/nodejs/reservedIpv6Assignment.ts new file mode 100644 index 00000000..4a2d0fe7 --- /dev/null +++ b/sdk/nodejs/reservedIpv6Assignment.ts @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export class ReservedIpv6Assignment extends pulumi.CustomResource { + /** + * Get an existing ReservedIpv6Assignment resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ReservedIpv6AssignmentState, opts?: pulumi.CustomResourceOptions): ReservedIpv6Assignment { + return new ReservedIpv6Assignment(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment'; + + /** + * Returns true if the given object is an instance of ReservedIpv6Assignment. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ReservedIpv6Assignment { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ReservedIpv6Assignment.__pulumiType; + } + + public readonly dropletId!: pulumi.Output; + public readonly ip!: pulumi.Output; + + /** + * Create a ReservedIpv6Assignment resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ReservedIpv6AssignmentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ReservedIpv6AssignmentArgs | ReservedIpv6AssignmentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ReservedIpv6AssignmentState | undefined; + resourceInputs["dropletId"] = state ? state.dropletId : undefined; + resourceInputs["ip"] = state ? state.ip : undefined; + } else { + const args = argsOrState as ReservedIpv6AssignmentArgs | undefined; + if ((!args || args.dropletId === undefined) && !opts.urn) { + throw new Error("Missing required property 'dropletId'"); + } + if ((!args || args.ip === undefined) && !opts.urn) { + throw new Error("Missing required property 'ip'"); + } + resourceInputs["dropletId"] = args ? args.dropletId : undefined; + resourceInputs["ip"] = args ? args.ip : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ReservedIpv6Assignment.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ReservedIpv6Assignment resources. + */ +export interface ReservedIpv6AssignmentState { + dropletId?: pulumi.Input; + ip?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ReservedIpv6Assignment resource. + */ +export interface ReservedIpv6AssignmentArgs { + dropletId: pulumi.Input; + ip: pulumi.Input; +} diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 20756885..013c4d26 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -37,6 +37,7 @@ "dnsRecord.ts", "domain.ts", "droplet.ts", + "dropletAutoscale.ts", "dropletSnapshot.ts", "firewall.ts", "floatingIp.ts", @@ -53,6 +54,7 @@ "getDomain.ts", "getDomains.ts", "getDroplet.ts", + "getDropletAutoscale.ts", "getDropletSnapshot.ts", "getDroplets.ts", "getFirewall.ts", @@ -69,6 +71,7 @@ "getRegion.ts", "getRegions.ts", "getReservedIp.ts", + "getReservedIpv6.ts", "getSizes.ts", "getSpacesBucket.ts", "getSpacesBucketObject.ts", @@ -92,6 +95,8 @@ "provider.ts", "reservedIp.ts", "reservedIpAssignment.ts", + "reservedIpv6.ts", + "reservedIpv6Assignment.ts", "spacesBucket.ts", "spacesBucketCorsConfiguration.ts", "spacesBucketObject.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index ac2305d4..ada8d069 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -1838,6 +1838,92 @@ export interface DatabaseUserSettingOpensearchAcl { permission: pulumi.Input; } +export interface DropletAutoscaleConfig { + /** + * The cooldown duration between scaling events for the Droplet Autoscale pool. + */ + cooldownMinutes?: pulumi.Input; + /** + * The maximum number of instances to maintain in the Droplet Autoscale pool. + */ + maxInstances?: pulumi.Input; + /** + * The minimum number of instances to maintain in the Droplet Autoscale pool. + */ + minInstances?: pulumi.Input; + /** + * The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + */ + targetCpuUtilization?: pulumi.Input; + /** + * The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + * pool. + */ + targetMemoryUtilization?: pulumi.Input; + /** + * The static number of instances to maintain in the pool Droplet Autoscale pool. This + * argument cannot be used with any other config options. + */ + targetNumberInstances?: pulumi.Input; +} + +export interface DropletAutoscaleCurrentUtilization { + /** + * Average CPU utilization + */ + cpu?: pulumi.Input; + /** + * Average Memory utilization + */ + memory?: pulumi.Input; +} + +export interface DropletAutoscaleDropletTemplate { + /** + * Image slug of the Droplet Autoscale pool underlying resource(s). + */ + image: pulumi.Input; + /** + * Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + */ + ipv6?: pulumi.Input; + /** + * Project UUID to create the Droplet Autoscale pool underlying resource(s). + */ + projectId?: pulumi.Input; + /** + * Region slug of the Droplet Autoscale pool underlying resource(s). + */ + region: pulumi.Input; + /** + * Size slug of the Droplet Autoscale pool underlying resource(s). + */ + size: pulumi.Input; + /** + * SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + */ + sshKeys: pulumi.Input[]>; + /** + * List of tags to add to the Droplet Autoscale pool underlying resource(s). + */ + tags?: pulumi.Input[]>; + /** + * Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + * cloud init script that user may configure to setup their application workload. + */ + userData?: pulumi.Input; + /** + * VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + * from the specified `region` (default VPC). + */ + vpcUuid?: pulumi.Input; + /** + * Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + * metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + */ + withDropletAgent?: pulumi.Input; +} + export interface DropletBackupPolicy { /** * The hour of the day that the backup window will start (`0`, `4`, `8`, `12`, `16`, `20`). diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 68594a7c..5e37dce4 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -1838,6 +1838,92 @@ export interface DatabaseUserSettingOpensearchAcl { permission: string; } +export interface DropletAutoscaleConfig { + /** + * The cooldown duration between scaling events for the Droplet Autoscale pool. + */ + cooldownMinutes?: number; + /** + * The maximum number of instances to maintain in the Droplet Autoscale pool. + */ + maxInstances?: number; + /** + * The minimum number of instances to maintain in the Droplet Autoscale pool. + */ + minInstances?: number; + /** + * The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + */ + targetCpuUtilization?: number; + /** + * The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + * pool. + */ + targetMemoryUtilization?: number; + /** + * The static number of instances to maintain in the pool Droplet Autoscale pool. This + * argument cannot be used with any other config options. + */ + targetNumberInstances?: number; +} + +export interface DropletAutoscaleCurrentUtilization { + /** + * Average CPU utilization + */ + cpu: number; + /** + * Average Memory utilization + */ + memory: number; +} + +export interface DropletAutoscaleDropletTemplate { + /** + * Image slug of the Droplet Autoscale pool underlying resource(s). + */ + image: string; + /** + * Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + */ + ipv6?: boolean; + /** + * Project UUID to create the Droplet Autoscale pool underlying resource(s). + */ + projectId?: string; + /** + * Region slug of the Droplet Autoscale pool underlying resource(s). + */ + region: string; + /** + * Size slug of the Droplet Autoscale pool underlying resource(s). + */ + size: string; + /** + * SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + */ + sshKeys: string[]; + /** + * List of tags to add to the Droplet Autoscale pool underlying resource(s). + */ + tags?: string[]; + /** + * Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + * cloud init script that user may configure to setup their application workload. + */ + userData?: string; + /** + * VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + * from the specified `region` (default VPC). + */ + vpcUuid?: string; + /** + * Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + * metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + */ + withDropletAgent?: boolean; +} + export interface DropletBackupPolicy { /** * The hour of the day that the backup window will start (`0`, `4`, `8`, `12`, `16`, `20`). @@ -3615,6 +3701,87 @@ export interface GetDomainsSort { key: string; } +export interface GetDropletAutoscaleConfig { + /** + * Cooldown duration + */ + cooldownMinutes: number; + /** + * Max number of members + */ + maxInstances: number; + /** + * Min number of members + */ + minInstances: number; + /** + * CPU target threshold + */ + targetCpuUtilization: number; + /** + * Memory target threshold + */ + targetMemoryUtilization: number; + /** + * Target number of members + */ + targetNumberInstances: number; +} + +export interface GetDropletAutoscaleCurrentUtilization { + /** + * Average CPU utilization + */ + cpu: number; + /** + * Average Memory utilization + */ + memory: number; +} + +export interface GetDropletAutoscaleDropletTemplate { + /** + * Droplet image + */ + image: string; + /** + * Enable droplet IPv6 + */ + ipv6: boolean; + /** + * Droplet project ID + */ + projectId: string; + /** + * Droplet region + */ + region: string; + /** + * Droplet size + */ + size: string; + /** + * Droplet SSH keys + */ + sshKeys: string[]; + /** + * Droplet tags + */ + tags: string[]; + /** + * Droplet user data + */ + userData: string; + /** + * Droplet VPC UUID + */ + vpcUuid: string; + /** + * Enable droplet agent + */ + withDropletAgent: boolean; +} + export interface GetDropletsDroplet { /** * Whether backups are enabled. diff --git a/sdk/python/pulumi_digitalocean/__init__.py b/sdk/python/pulumi_digitalocean/__init__.py index 319d1379..a8beac7a 100644 --- a/sdk/python/pulumi_digitalocean/__init__.py +++ b/sdk/python/pulumi_digitalocean/__init__.py @@ -28,6 +28,7 @@ from .dns_record import * from .domain import * from .droplet import * +from .droplet_autoscale import * from .droplet_snapshot import * from .firewall import * from .floating_ip import * @@ -44,6 +45,7 @@ from .get_domain import * from .get_domains import * from .get_droplet import * +from .get_droplet_autoscale import * from .get_droplet_snapshot import * from .get_droplets import * from .get_firewall import * @@ -60,6 +62,7 @@ from .get_region import * from .get_regions import * from .get_reserved_ip import * +from .get_reserved_ipv6 import * from .get_sizes import * from .get_spaces_bucket import * from .get_spaces_bucket_object import * @@ -82,6 +85,8 @@ from .provider import * from .reserved_ip import * from .reserved_ip_assignment import * +from .reserved_ipv6 import * +from .reserved_ipv6_assignment import * from .spaces_bucket import * from .spaces_bucket_cors_configuration import * from .spaces_bucket_object import * @@ -284,6 +289,14 @@ "digitalocean:index/droplet:Droplet": "Droplet" } }, + { + "pkg": "digitalocean", + "mod": "index/dropletAutoscale", + "fqn": "pulumi_digitalocean", + "classes": { + "digitalocean:index/dropletAutoscale:DropletAutoscale": "DropletAutoscale" + } + }, { "pkg": "digitalocean", "mod": "index/dropletSnapshot", @@ -380,6 +393,22 @@ "digitalocean:index/reservedIpAssignment:ReservedIpAssignment": "ReservedIpAssignment" } }, + { + "pkg": "digitalocean", + "mod": "index/reservedIpv6", + "fqn": "pulumi_digitalocean", + "classes": { + "digitalocean:index/reservedIpv6:ReservedIpv6": "ReservedIpv6" + } + }, + { + "pkg": "digitalocean", + "mod": "index/reservedIpv6Assignment", + "fqn": "pulumi_digitalocean", + "classes": { + "digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment": "ReservedIpv6Assignment" + } + }, { "pkg": "digitalocean", "mod": "index/spacesBucket", diff --git a/sdk/python/pulumi_digitalocean/_inputs.py b/sdk/python/pulumi_digitalocean/_inputs.py index f2bef38f..36e90e30 100644 --- a/sdk/python/pulumi_digitalocean/_inputs.py +++ b/sdk/python/pulumi_digitalocean/_inputs.py @@ -208,6 +208,12 @@ 'DatabaseUserSettingAclArgsDict', 'DatabaseUserSettingOpensearchAclArgs', 'DatabaseUserSettingOpensearchAclArgsDict', + 'DropletAutoscaleConfigArgs', + 'DropletAutoscaleConfigArgsDict', + 'DropletAutoscaleCurrentUtilizationArgs', + 'DropletAutoscaleCurrentUtilizationArgsDict', + 'DropletAutoscaleDropletTemplateArgs', + 'DropletAutoscaleDropletTemplateArgsDict', 'DropletBackupPolicyArgs', 'DropletBackupPolicyArgsDict', 'FirewallInboundRuleArgs', @@ -9174,6 +9180,413 @@ def permission(self, value: pulumi.Input[str]): pulumi.set(self, "permission", value) +if not MYPY: + class DropletAutoscaleConfigArgsDict(TypedDict): + cooldown_minutes: NotRequired[pulumi.Input[int]] + """ + The cooldown duration between scaling events for the Droplet Autoscale pool. + """ + max_instances: NotRequired[pulumi.Input[int]] + """ + The maximum number of instances to maintain in the Droplet Autoscale pool. + """ + min_instances: NotRequired[pulumi.Input[int]] + """ + The minimum number of instances to maintain in the Droplet Autoscale pool. + """ + target_cpu_utilization: NotRequired[pulumi.Input[float]] + """ + The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + """ + target_memory_utilization: NotRequired[pulumi.Input[float]] + """ + The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + pool. + """ + target_number_instances: NotRequired[pulumi.Input[int]] + """ + The static number of instances to maintain in the pool Droplet Autoscale pool. This + argument cannot be used with any other config options. + """ +elif False: + DropletAutoscaleConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DropletAutoscaleConfigArgs: + def __init__(__self__, *, + cooldown_minutes: Optional[pulumi.Input[int]] = None, + max_instances: Optional[pulumi.Input[int]] = None, + min_instances: Optional[pulumi.Input[int]] = None, + target_cpu_utilization: Optional[pulumi.Input[float]] = None, + target_memory_utilization: Optional[pulumi.Input[float]] = None, + target_number_instances: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] cooldown_minutes: The cooldown duration between scaling events for the Droplet Autoscale pool. + :param pulumi.Input[int] max_instances: The maximum number of instances to maintain in the Droplet Autoscale pool. + :param pulumi.Input[int] min_instances: The minimum number of instances to maintain in the Droplet Autoscale pool. + :param pulumi.Input[float] target_cpu_utilization: The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + :param pulumi.Input[float] target_memory_utilization: The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + pool. + :param pulumi.Input[int] target_number_instances: The static number of instances to maintain in the pool Droplet Autoscale pool. This + argument cannot be used with any other config options. + """ + if cooldown_minutes is not None: + pulumi.set(__self__, "cooldown_minutes", cooldown_minutes) + if max_instances is not None: + pulumi.set(__self__, "max_instances", max_instances) + if min_instances is not None: + pulumi.set(__self__, "min_instances", min_instances) + if target_cpu_utilization is not None: + pulumi.set(__self__, "target_cpu_utilization", target_cpu_utilization) + if target_memory_utilization is not None: + pulumi.set(__self__, "target_memory_utilization", target_memory_utilization) + if target_number_instances is not None: + pulumi.set(__self__, "target_number_instances", target_number_instances) + + @property + @pulumi.getter(name="cooldownMinutes") + def cooldown_minutes(self) -> Optional[pulumi.Input[int]]: + """ + The cooldown duration between scaling events for the Droplet Autoscale pool. + """ + return pulumi.get(self, "cooldown_minutes") + + @cooldown_minutes.setter + def cooldown_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "cooldown_minutes", value) + + @property + @pulumi.getter(name="maxInstances") + def max_instances(self) -> Optional[pulumi.Input[int]]: + """ + The maximum number of instances to maintain in the Droplet Autoscale pool. + """ + return pulumi.get(self, "max_instances") + + @max_instances.setter + def max_instances(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_instances", value) + + @property + @pulumi.getter(name="minInstances") + def min_instances(self) -> Optional[pulumi.Input[int]]: + """ + The minimum number of instances to maintain in the Droplet Autoscale pool. + """ + return pulumi.get(self, "min_instances") + + @min_instances.setter + def min_instances(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_instances", value) + + @property + @pulumi.getter(name="targetCpuUtilization") + def target_cpu_utilization(self) -> Optional[pulumi.Input[float]]: + """ + The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + """ + return pulumi.get(self, "target_cpu_utilization") + + @target_cpu_utilization.setter + def target_cpu_utilization(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "target_cpu_utilization", value) + + @property + @pulumi.getter(name="targetMemoryUtilization") + def target_memory_utilization(self) -> Optional[pulumi.Input[float]]: + """ + The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + pool. + """ + return pulumi.get(self, "target_memory_utilization") + + @target_memory_utilization.setter + def target_memory_utilization(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "target_memory_utilization", value) + + @property + @pulumi.getter(name="targetNumberInstances") + def target_number_instances(self) -> Optional[pulumi.Input[int]]: + """ + The static number of instances to maintain in the pool Droplet Autoscale pool. This + argument cannot be used with any other config options. + """ + return pulumi.get(self, "target_number_instances") + + @target_number_instances.setter + def target_number_instances(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "target_number_instances", value) + + +if not MYPY: + class DropletAutoscaleCurrentUtilizationArgsDict(TypedDict): + cpu: NotRequired[pulumi.Input[float]] + """ + Average CPU utilization + """ + memory: NotRequired[pulumi.Input[float]] + """ + Average Memory utilization + """ +elif False: + DropletAutoscaleCurrentUtilizationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DropletAutoscaleCurrentUtilizationArgs: + def __init__(__self__, *, + cpu: Optional[pulumi.Input[float]] = None, + memory: Optional[pulumi.Input[float]] = None): + """ + :param pulumi.Input[float] cpu: Average CPU utilization + :param pulumi.Input[float] memory: Average Memory utilization + """ + if cpu is not None: + pulumi.set(__self__, "cpu", cpu) + if memory is not None: + pulumi.set(__self__, "memory", memory) + + @property + @pulumi.getter + def cpu(self) -> Optional[pulumi.Input[float]]: + """ + Average CPU utilization + """ + return pulumi.get(self, "cpu") + + @cpu.setter + def cpu(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "cpu", value) + + @property + @pulumi.getter + def memory(self) -> Optional[pulumi.Input[float]]: + """ + Average Memory utilization + """ + return pulumi.get(self, "memory") + + @memory.setter + def memory(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "memory", value) + + +if not MYPY: + class DropletAutoscaleDropletTemplateArgsDict(TypedDict): + image: pulumi.Input[str] + """ + Image slug of the Droplet Autoscale pool underlying resource(s). + """ + region: pulumi.Input[str] + """ + Region slug of the Droplet Autoscale pool underlying resource(s). + """ + size: pulumi.Input[str] + """ + Size slug of the Droplet Autoscale pool underlying resource(s). + """ + ssh_keys: pulumi.Input[Sequence[pulumi.Input[str]]] + """ + SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + """ + ipv6: NotRequired[pulumi.Input[bool]] + """ + Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + """ + project_id: NotRequired[pulumi.Input[str]] + """ + Project UUID to create the Droplet Autoscale pool underlying resource(s). + """ + tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + List of tags to add to the Droplet Autoscale pool underlying resource(s). + """ + user_data: NotRequired[pulumi.Input[str]] + """ + Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + cloud init script that user may configure to setup their application workload. + """ + vpc_uuid: NotRequired[pulumi.Input[str]] + """ + VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + from the specified `region` (default VPC). + """ + with_droplet_agent: NotRequired[pulumi.Input[bool]] + """ + Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + """ +elif False: + DropletAutoscaleDropletTemplateArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class DropletAutoscaleDropletTemplateArgs: + def __init__(__self__, *, + image: pulumi.Input[str], + region: pulumi.Input[str], + size: pulumi.Input[str], + ssh_keys: pulumi.Input[Sequence[pulumi.Input[str]]], + ipv6: Optional[pulumi.Input[bool]] = None, + project_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_data: Optional[pulumi.Input[str]] = None, + vpc_uuid: Optional[pulumi.Input[str]] = None, + with_droplet_agent: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[str] image: Image slug of the Droplet Autoscale pool underlying resource(s). + :param pulumi.Input[str] region: Region slug of the Droplet Autoscale pool underlying resource(s). + :param pulumi.Input[str] size: Size slug of the Droplet Autoscale pool underlying resource(s). + :param pulumi.Input[Sequence[pulumi.Input[str]]] ssh_keys: SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + :param pulumi.Input[bool] ipv6: Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + :param pulumi.Input[str] project_id: Project UUID to create the Droplet Autoscale pool underlying resource(s). + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: List of tags to add to the Droplet Autoscale pool underlying resource(s). + :param pulumi.Input[str] user_data: Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + cloud init script that user may configure to setup their application workload. + :param pulumi.Input[str] vpc_uuid: VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + from the specified `region` (default VPC). + :param pulumi.Input[bool] with_droplet_agent: Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + """ + pulumi.set(__self__, "image", image) + pulumi.set(__self__, "region", region) + pulumi.set(__self__, "size", size) + pulumi.set(__self__, "ssh_keys", ssh_keys) + if ipv6 is not None: + pulumi.set(__self__, "ipv6", ipv6) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if user_data is not None: + pulumi.set(__self__, "user_data", user_data) + if vpc_uuid is not None: + pulumi.set(__self__, "vpc_uuid", vpc_uuid) + if with_droplet_agent is not None: + pulumi.set(__self__, "with_droplet_agent", with_droplet_agent) + + @property + @pulumi.getter + def image(self) -> pulumi.Input[str]: + """ + Image slug of the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "image") + + @image.setter + def image(self, value: pulumi.Input[str]): + pulumi.set(self, "image", value) + + @property + @pulumi.getter + def region(self) -> pulumi.Input[str]: + """ + Region slug of the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: pulumi.Input[str]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter + def size(self) -> pulumi.Input[str]: + """ + Size slug of the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "size") + + @size.setter + def size(self, value: pulumi.Input[str]): + pulumi.set(self, "size", value) + + @property + @pulumi.getter(name="sshKeys") + def ssh_keys(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "ssh_keys") + + @ssh_keys.setter + def ssh_keys(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "ssh_keys", value) + + @property + @pulumi.getter + def ipv6(self) -> Optional[pulumi.Input[bool]]: + """ + Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "ipv6") + + @ipv6.setter + def ipv6(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "ipv6", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + Project UUID to create the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of tags to add to the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="userData") + def user_data(self) -> Optional[pulumi.Input[str]]: + """ + Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + cloud init script that user may configure to setup their application workload. + """ + return pulumi.get(self, "user_data") + + @user_data.setter + def user_data(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_data", value) + + @property + @pulumi.getter(name="vpcUuid") + def vpc_uuid(self) -> Optional[pulumi.Input[str]]: + """ + VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + from the specified `region` (default VPC). + """ + return pulumi.get(self, "vpc_uuid") + + @vpc_uuid.setter + def vpc_uuid(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "vpc_uuid", value) + + @property + @pulumi.getter(name="withDropletAgent") + def with_droplet_agent(self) -> Optional[pulumi.Input[bool]]: + """ + Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + """ + return pulumi.get(self, "with_droplet_agent") + + @with_droplet_agent.setter + def with_droplet_agent(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "with_droplet_agent", value) + + if not MYPY: class DropletBackupPolicyArgsDict(TypedDict): hour: NotRequired[pulumi.Input[int]] diff --git a/sdk/python/pulumi_digitalocean/droplet_autoscale.py b/sdk/python/pulumi_digitalocean/droplet_autoscale.py new file mode 100644 index 00000000..d801d19a --- /dev/null +++ b/sdk/python/pulumi_digitalocean/droplet_autoscale.py @@ -0,0 +1,474 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['DropletAutoscaleArgs', 'DropletAutoscale'] + +@pulumi.input_type +class DropletAutoscaleArgs: + def __init__(__self__, *, + config: pulumi.Input['DropletAutoscaleConfigArgs'], + droplet_template: pulumi.Input['DropletAutoscaleDropletTemplateArgs'], + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a DropletAutoscale resource. + :param pulumi.Input['DropletAutoscaleConfigArgs'] config: The configuration parameters for Droplet Autoscale pool, the supported arguments are + documented below. + :param pulumi.Input['DropletAutoscaleDropletTemplateArgs'] droplet_template: The droplet template parameters for Droplet Autoscale pool, the supported arguments + are documented below. + :param pulumi.Input[str] name: The name of the Droplet Autoscale pool. + """ + pulumi.set(__self__, "config", config) + pulumi.set(__self__, "droplet_template", droplet_template) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter + def config(self) -> pulumi.Input['DropletAutoscaleConfigArgs']: + """ + The configuration parameters for Droplet Autoscale pool, the supported arguments are + documented below. + """ + return pulumi.get(self, "config") + + @config.setter + def config(self, value: pulumi.Input['DropletAutoscaleConfigArgs']): + pulumi.set(self, "config", value) + + @property + @pulumi.getter(name="dropletTemplate") + def droplet_template(self) -> pulumi.Input['DropletAutoscaleDropletTemplateArgs']: + """ + The droplet template parameters for Droplet Autoscale pool, the supported arguments + are documented below. + """ + return pulumi.get(self, "droplet_template") + + @droplet_template.setter + def droplet_template(self, value: pulumi.Input['DropletAutoscaleDropletTemplateArgs']): + pulumi.set(self, "droplet_template", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Droplet Autoscale pool. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _DropletAutoscaleState: + def __init__(__self__, *, + config: Optional[pulumi.Input['DropletAutoscaleConfigArgs']] = None, + created_at: Optional[pulumi.Input[str]] = None, + current_utilizations: Optional[pulumi.Input[Sequence[pulumi.Input['DropletAutoscaleCurrentUtilizationArgs']]]] = None, + droplet_template: Optional[pulumi.Input['DropletAutoscaleDropletTemplateArgs']] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering DropletAutoscale resources. + :param pulumi.Input['DropletAutoscaleConfigArgs'] config: The configuration parameters for Droplet Autoscale pool, the supported arguments are + documented below. + :param pulumi.Input[str] created_at: Created at timestamp for the Droplet Autoscale pool. + :param pulumi.Input[Sequence[pulumi.Input['DropletAutoscaleCurrentUtilizationArgs']]] current_utilizations: The current average resource utilization of the Droplet Autoscale pool, this attribute further + embeds `memory` and `cpu` attributes to respectively report utilization data. + :param pulumi.Input['DropletAutoscaleDropletTemplateArgs'] droplet_template: The droplet template parameters for Droplet Autoscale pool, the supported arguments + are documented below. + :param pulumi.Input[str] name: The name of the Droplet Autoscale pool. + :param pulumi.Input[str] status: Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + traffic, or in an error state and needs user intervention. + :param pulumi.Input[str] updated_at: Updated at timestamp for the Droplet Autoscale pool. + """ + if config is not None: + pulumi.set(__self__, "config", config) + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if current_utilizations is not None: + pulumi.set(__self__, "current_utilizations", current_utilizations) + if droplet_template is not None: + pulumi.set(__self__, "droplet_template", droplet_template) + if name is not None: + pulumi.set(__self__, "name", name) + if status is not None: + pulumi.set(__self__, "status", status) + if updated_at is not None: + pulumi.set(__self__, "updated_at", updated_at) + + @property + @pulumi.getter + def config(self) -> Optional[pulumi.Input['DropletAutoscaleConfigArgs']]: + """ + The configuration parameters for Droplet Autoscale pool, the supported arguments are + documented below. + """ + return pulumi.get(self, "config") + + @config.setter + def config(self, value: Optional[pulumi.Input['DropletAutoscaleConfigArgs']]): + pulumi.set(self, "config", value) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + Created at timestamp for the Droplet Autoscale pool. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter(name="currentUtilizations") + def current_utilizations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DropletAutoscaleCurrentUtilizationArgs']]]]: + """ + The current average resource utilization of the Droplet Autoscale pool, this attribute further + embeds `memory` and `cpu` attributes to respectively report utilization data. + """ + return pulumi.get(self, "current_utilizations") + + @current_utilizations.setter + def current_utilizations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DropletAutoscaleCurrentUtilizationArgs']]]]): + pulumi.set(self, "current_utilizations", value) + + @property + @pulumi.getter(name="dropletTemplate") + def droplet_template(self) -> Optional[pulumi.Input['DropletAutoscaleDropletTemplateArgs']]: + """ + The droplet template parameters for Droplet Autoscale pool, the supported arguments + are documented below. + """ + return pulumi.get(self, "droplet_template") + + @droplet_template.setter + def droplet_template(self, value: Optional[pulumi.Input['DropletAutoscaleDropletTemplateArgs']]): + pulumi.set(self, "droplet_template", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Droplet Autoscale pool. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + traffic, or in an error state and needs user intervention. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[pulumi.Input[str]]: + """ + Updated at timestamp for the Droplet Autoscale pool. + """ + return pulumi.get(self, "updated_at") + + @updated_at.setter + def updated_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "updated_at", value) + + +class DropletAutoscale(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + config: Optional[pulumi.Input[Union['DropletAutoscaleConfigArgs', 'DropletAutoscaleConfigArgsDict']]] = None, + droplet_template: Optional[pulumi.Input[Union['DropletAutoscaleDropletTemplateArgs', 'DropletAutoscaleDropletTemplateArgsDict']]] = None, + name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Provides a DigitalOcean Droplet Autoscale resource. This can be used to create, modify, + read and delete Droplet Autoscale pools. + + ## Example Usage + + ```python + import pulumi + import pulumi_digitalocean as digitalocean + import pulumi_std as std + + my_ssh_key = digitalocean.SshKey("my-ssh-key", + name="terraform-example", + public_key=std.file(input="/Users/terraform/.ssh/id_rsa.pub").result) + my_tag = digitalocean.Tag("my-tag", name="terraform-example") + my_autoscale_pool = digitalocean.DropletAutoscale("my-autoscale-pool", + name="terraform-example", + config={ + "min_instances": 10, + "max_instances": 50, + "target_cpu_utilization": 0.5, + "target_memory_utilization": 0.5, + "cooldown_minutes": 5, + }, + droplet_template={ + "size": "c-2", + "region": "nyc3", + "image": "ubuntu-24-04-x64", + "tags": [my_tag.id], + "ssh_keys": [my_ssh_key.id], + "with_droplet_agent": True, + "ipv6": True, + "user_data": \"\"\" + #cloud-config + runcmd: + - apt-get update + - apt-get install -y stress-ng + \"\"\", + }) + ``` + + ## Import + + Droplet Autoscale pools can be imported using their `id`, e.g. + + ```sh + $ pulumi import digitalocean:index/dropletAutoscale:DropletAutoscale my-autoscale-pool 38e66834-d741-47ec-88e7-c70cbdcz0445 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['DropletAutoscaleConfigArgs', 'DropletAutoscaleConfigArgsDict']] config: The configuration parameters for Droplet Autoscale pool, the supported arguments are + documented below. + :param pulumi.Input[Union['DropletAutoscaleDropletTemplateArgs', 'DropletAutoscaleDropletTemplateArgsDict']] droplet_template: The droplet template parameters for Droplet Autoscale pool, the supported arguments + are documented below. + :param pulumi.Input[str] name: The name of the Droplet Autoscale pool. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DropletAutoscaleArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Provides a DigitalOcean Droplet Autoscale resource. This can be used to create, modify, + read and delete Droplet Autoscale pools. + + ## Example Usage + + ```python + import pulumi + import pulumi_digitalocean as digitalocean + import pulumi_std as std + + my_ssh_key = digitalocean.SshKey("my-ssh-key", + name="terraform-example", + public_key=std.file(input="/Users/terraform/.ssh/id_rsa.pub").result) + my_tag = digitalocean.Tag("my-tag", name="terraform-example") + my_autoscale_pool = digitalocean.DropletAutoscale("my-autoscale-pool", + name="terraform-example", + config={ + "min_instances": 10, + "max_instances": 50, + "target_cpu_utilization": 0.5, + "target_memory_utilization": 0.5, + "cooldown_minutes": 5, + }, + droplet_template={ + "size": "c-2", + "region": "nyc3", + "image": "ubuntu-24-04-x64", + "tags": [my_tag.id], + "ssh_keys": [my_ssh_key.id], + "with_droplet_agent": True, + "ipv6": True, + "user_data": \"\"\" + #cloud-config + runcmd: + - apt-get update + - apt-get install -y stress-ng + \"\"\", + }) + ``` + + ## Import + + Droplet Autoscale pools can be imported using their `id`, e.g. + + ```sh + $ pulumi import digitalocean:index/dropletAutoscale:DropletAutoscale my-autoscale-pool 38e66834-d741-47ec-88e7-c70cbdcz0445 + ``` + + :param str resource_name: The name of the resource. + :param DropletAutoscaleArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(DropletAutoscaleArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + config: Optional[pulumi.Input[Union['DropletAutoscaleConfigArgs', 'DropletAutoscaleConfigArgsDict']]] = None, + droplet_template: Optional[pulumi.Input[Union['DropletAutoscaleDropletTemplateArgs', 'DropletAutoscaleDropletTemplateArgsDict']]] = None, + name: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = DropletAutoscaleArgs.__new__(DropletAutoscaleArgs) + + if config is None and not opts.urn: + raise TypeError("Missing required property 'config'") + __props__.__dict__["config"] = config + if droplet_template is None and not opts.urn: + raise TypeError("Missing required property 'droplet_template'") + __props__.__dict__["droplet_template"] = droplet_template + __props__.__dict__["name"] = name + __props__.__dict__["created_at"] = None + __props__.__dict__["current_utilizations"] = None + __props__.__dict__["status"] = None + __props__.__dict__["updated_at"] = None + super(DropletAutoscale, __self__).__init__( + 'digitalocean:index/dropletAutoscale:DropletAutoscale', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + config: Optional[pulumi.Input[Union['DropletAutoscaleConfigArgs', 'DropletAutoscaleConfigArgsDict']]] = None, + created_at: Optional[pulumi.Input[str]] = None, + current_utilizations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DropletAutoscaleCurrentUtilizationArgs', 'DropletAutoscaleCurrentUtilizationArgsDict']]]]] = None, + droplet_template: Optional[pulumi.Input[Union['DropletAutoscaleDropletTemplateArgs', 'DropletAutoscaleDropletTemplateArgsDict']]] = None, + name: Optional[pulumi.Input[str]] = None, + status: Optional[pulumi.Input[str]] = None, + updated_at: Optional[pulumi.Input[str]] = None) -> 'DropletAutoscale': + """ + Get an existing DropletAutoscale resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['DropletAutoscaleConfigArgs', 'DropletAutoscaleConfigArgsDict']] config: The configuration parameters for Droplet Autoscale pool, the supported arguments are + documented below. + :param pulumi.Input[str] created_at: Created at timestamp for the Droplet Autoscale pool. + :param pulumi.Input[Sequence[pulumi.Input[Union['DropletAutoscaleCurrentUtilizationArgs', 'DropletAutoscaleCurrentUtilizationArgsDict']]]] current_utilizations: The current average resource utilization of the Droplet Autoscale pool, this attribute further + embeds `memory` and `cpu` attributes to respectively report utilization data. + :param pulumi.Input[Union['DropletAutoscaleDropletTemplateArgs', 'DropletAutoscaleDropletTemplateArgsDict']] droplet_template: The droplet template parameters for Droplet Autoscale pool, the supported arguments + are documented below. + :param pulumi.Input[str] name: The name of the Droplet Autoscale pool. + :param pulumi.Input[str] status: Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + traffic, or in an error state and needs user intervention. + :param pulumi.Input[str] updated_at: Updated at timestamp for the Droplet Autoscale pool. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _DropletAutoscaleState.__new__(_DropletAutoscaleState) + + __props__.__dict__["config"] = config + __props__.__dict__["created_at"] = created_at + __props__.__dict__["current_utilizations"] = current_utilizations + __props__.__dict__["droplet_template"] = droplet_template + __props__.__dict__["name"] = name + __props__.__dict__["status"] = status + __props__.__dict__["updated_at"] = updated_at + return DropletAutoscale(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def config(self) -> pulumi.Output['outputs.DropletAutoscaleConfig']: + """ + The configuration parameters for Droplet Autoscale pool, the supported arguments are + documented below. + """ + return pulumi.get(self, "config") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + Created at timestamp for the Droplet Autoscale pool. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="currentUtilizations") + def current_utilizations(self) -> pulumi.Output[Sequence['outputs.DropletAutoscaleCurrentUtilization']]: + """ + The current average resource utilization of the Droplet Autoscale pool, this attribute further + embeds `memory` and `cpu` attributes to respectively report utilization data. + """ + return pulumi.get(self, "current_utilizations") + + @property + @pulumi.getter(name="dropletTemplate") + def droplet_template(self) -> pulumi.Output['outputs.DropletAutoscaleDropletTemplate']: + """ + The droplet template parameters for Droplet Autoscale pool, the supported arguments + are documented below. + """ + return pulumi.get(self, "droplet_template") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the Droplet Autoscale pool. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[str]: + """ + Droplet Autoscale pool health status; this reflects if the pool is currently healthy and ready to accept + traffic, or in an error state and needs user intervention. + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + """ + Updated at timestamp for the Droplet Autoscale pool. + """ + return pulumi.get(self, "updated_at") + diff --git a/sdk/python/pulumi_digitalocean/get_droplet_autoscale.py b/sdk/python/pulumi_digitalocean/get_droplet_autoscale.py new file mode 100644 index 00000000..687b40e1 --- /dev/null +++ b/sdk/python/pulumi_digitalocean/get_droplet_autoscale.py @@ -0,0 +1,197 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs + +__all__ = [ + 'GetDropletAutoscaleResult', + 'AwaitableGetDropletAutoscaleResult', + 'get_droplet_autoscale', + 'get_droplet_autoscale_output', +] + +@pulumi.output_type +class GetDropletAutoscaleResult: + """ + A collection of values returned by getDropletAutoscale. + """ + def __init__(__self__, configs=None, created_at=None, current_utilizations=None, droplet_templates=None, id=None, name=None, status=None, updated_at=None): + if configs and not isinstance(configs, list): + raise TypeError("Expected argument 'configs' to be a list") + pulumi.set(__self__, "configs", configs) + if created_at and not isinstance(created_at, str): + raise TypeError("Expected argument 'created_at' to be a str") + pulumi.set(__self__, "created_at", created_at) + if current_utilizations and not isinstance(current_utilizations, list): + raise TypeError("Expected argument 'current_utilizations' to be a list") + pulumi.set(__self__, "current_utilizations", current_utilizations) + if droplet_templates and not isinstance(droplet_templates, list): + raise TypeError("Expected argument 'droplet_templates' to be a list") + pulumi.set(__self__, "droplet_templates", droplet_templates) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if status and not isinstance(status, str): + raise TypeError("Expected argument 'status' to be a str") + pulumi.set(__self__, "status", status) + if updated_at and not isinstance(updated_at, str): + raise TypeError("Expected argument 'updated_at' to be a str") + pulumi.set(__self__, "updated_at", updated_at) + + @property + @pulumi.getter + def configs(self) -> Sequence['outputs.GetDropletAutoscaleConfigResult']: + return pulumi.get(self, "configs") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> str: + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="currentUtilizations") + def current_utilizations(self) -> Sequence['outputs.GetDropletAutoscaleCurrentUtilizationResult']: + return pulumi.get(self, "current_utilizations") + + @property + @pulumi.getter(name="dropletTemplates") + def droplet_templates(self) -> Sequence['outputs.GetDropletAutoscaleDropletTemplateResult']: + return pulumi.get(self, "droplet_templates") + + @property + @pulumi.getter + def id(self) -> Optional[str]: + return pulumi.get(self, "id") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + return pulumi.get(self, "name") + + @property + @pulumi.getter + def status(self) -> str: + return pulumi.get(self, "status") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> str: + return pulumi.get(self, "updated_at") + + +class AwaitableGetDropletAutoscaleResult(GetDropletAutoscaleResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetDropletAutoscaleResult( + configs=self.configs, + created_at=self.created_at, + current_utilizations=self.current_utilizations, + droplet_templates=self.droplet_templates, + id=self.id, + name=self.name, + status=self.status, + updated_at=self.updated_at) + + +def get_droplet_autoscale(id: Optional[str] = None, + name: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDropletAutoscaleResult: + """ + ## Example Usage + + Get the Droplet Autoscale pool by name: + + ```python + import pulumi + import pulumi_digitalocean as digitalocean + + my_imported_autoscale_pool = digitalocean.get_droplet_autoscale(name=my_existing_autoscale_pool["name"]) + ``` + + Get the Droplet Autoscale pool by ID: + + ```python + import pulumi + import pulumi_digitalocean as digitalocean + + my_imported_autoscale_pool = digitalocean.get_droplet_autoscale(id=my_existing_autoscale_pool["id"]) + ``` + + + :param str id: The ID of Droplet Autoscale pool. + :param str name: The name of Droplet Autoscale pool. + """ + __args__ = dict() + __args__['id'] = id + __args__['name'] = name + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('digitalocean:index/getDropletAutoscale:getDropletAutoscale', __args__, opts=opts, typ=GetDropletAutoscaleResult).value + + return AwaitableGetDropletAutoscaleResult( + configs=pulumi.get(__ret__, 'configs'), + created_at=pulumi.get(__ret__, 'created_at'), + current_utilizations=pulumi.get(__ret__, 'current_utilizations'), + droplet_templates=pulumi.get(__ret__, 'droplet_templates'), + id=pulumi.get(__ret__, 'id'), + name=pulumi.get(__ret__, 'name'), + status=pulumi.get(__ret__, 'status'), + updated_at=pulumi.get(__ret__, 'updated_at')) +def get_droplet_autoscale_output(id: Optional[pulumi.Input[Optional[str]]] = None, + name: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetDropletAutoscaleResult]: + """ + ## Example Usage + + Get the Droplet Autoscale pool by name: + + ```python + import pulumi + import pulumi_digitalocean as digitalocean + + my_imported_autoscale_pool = digitalocean.get_droplet_autoscale(name=my_existing_autoscale_pool["name"]) + ``` + + Get the Droplet Autoscale pool by ID: + + ```python + import pulumi + import pulumi_digitalocean as digitalocean + + my_imported_autoscale_pool = digitalocean.get_droplet_autoscale(id=my_existing_autoscale_pool["id"]) + ``` + + + :param str id: The ID of Droplet Autoscale pool. + :param str name: The name of Droplet Autoscale pool. + """ + __args__ = dict() + __args__['id'] = id + __args__['name'] = name + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('digitalocean:index/getDropletAutoscale:getDropletAutoscale', __args__, opts=opts, typ=GetDropletAutoscaleResult) + return __ret__.apply(lambda __response__: GetDropletAutoscaleResult( + configs=pulumi.get(__response__, 'configs'), + created_at=pulumi.get(__response__, 'created_at'), + current_utilizations=pulumi.get(__response__, 'current_utilizations'), + droplet_templates=pulumi.get(__response__, 'droplet_templates'), + id=pulumi.get(__response__, 'id'), + name=pulumi.get(__response__, 'name'), + status=pulumi.get(__response__, 'status'), + updated_at=pulumi.get(__response__, 'updated_at'))) diff --git a/sdk/python/pulumi_digitalocean/get_reserved_ipv6.py b/sdk/python/pulumi_digitalocean/get_reserved_ipv6.py new file mode 100644 index 00000000..28785f67 --- /dev/null +++ b/sdk/python/pulumi_digitalocean/get_reserved_ipv6.py @@ -0,0 +1,118 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = [ + 'GetReservedIpv6Result', + 'AwaitableGetReservedIpv6Result', + 'get_reserved_ipv6', + 'get_reserved_ipv6_output', +] + +@pulumi.output_type +class GetReservedIpv6Result: + """ + A collection of values returned by getReservedIpv6. + """ + def __init__(__self__, droplet_id=None, id=None, ip=None, region_slug=None, urn=None): + if droplet_id and not isinstance(droplet_id, int): + raise TypeError("Expected argument 'droplet_id' to be a int") + pulumi.set(__self__, "droplet_id", droplet_id) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if ip and not isinstance(ip, str): + raise TypeError("Expected argument 'ip' to be a str") + pulumi.set(__self__, "ip", ip) + if region_slug and not isinstance(region_slug, str): + raise TypeError("Expected argument 'region_slug' to be a str") + pulumi.set(__self__, "region_slug", region_slug) + if urn and not isinstance(urn, str): + raise TypeError("Expected argument 'urn' to be a str") + pulumi.set(__self__, "urn", urn) + + @property + @pulumi.getter(name="dropletId") + def droplet_id(self) -> int: + return pulumi.get(self, "droplet_id") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def ip(self) -> str: + return pulumi.get(self, "ip") + + @property + @pulumi.getter(name="regionSlug") + def region_slug(self) -> str: + return pulumi.get(self, "region_slug") + + @property + @pulumi.getter + def urn(self) -> str: + return pulumi.get(self, "urn") + + +class AwaitableGetReservedIpv6Result(GetReservedIpv6Result): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetReservedIpv6Result( + droplet_id=self.droplet_id, + id=self.id, + ip=self.ip, + region_slug=self.region_slug, + urn=self.urn) + + +def get_reserved_ipv6(ip: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetReservedIpv6Result: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['ip'] = ip + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('digitalocean:index/getReservedIpv6:getReservedIpv6', __args__, opts=opts, typ=GetReservedIpv6Result).value + + return AwaitableGetReservedIpv6Result( + droplet_id=pulumi.get(__ret__, 'droplet_id'), + id=pulumi.get(__ret__, 'id'), + ip=pulumi.get(__ret__, 'ip'), + region_slug=pulumi.get(__ret__, 'region_slug'), + urn=pulumi.get(__ret__, 'urn')) +def get_reserved_ipv6_output(ip: Optional[pulumi.Input[str]] = None, + opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetReservedIpv6Result]: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['ip'] = ip + opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('digitalocean:index/getReservedIpv6:getReservedIpv6', __args__, opts=opts, typ=GetReservedIpv6Result) + return __ret__.apply(lambda __response__: GetReservedIpv6Result( + droplet_id=pulumi.get(__response__, 'droplet_id'), + id=pulumi.get(__response__, 'id'), + ip=pulumi.get(__response__, 'ip'), + region_slug=pulumi.get(__response__, 'region_slug'), + urn=pulumi.get(__response__, 'urn'))) diff --git a/sdk/python/pulumi_digitalocean/load_balancer.py b/sdk/python/pulumi_digitalocean/load_balancer.py index 9bf0ec72..4ec8b594 100644 --- a/sdk/python/pulumi_digitalocean/load_balancer.py +++ b/sdk/python/pulumi_digitalocean/load_balancer.py @@ -66,18 +66,17 @@ def __init__(__self__, *, :param pulumi.Input[int] http_idle_timeout_seconds: Specifies the idle timeout for HTTPS connections on the load balancer in seconds. :param pulumi.Input[str] name: The Load Balancer name :param pulumi.Input[str] network: The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. :param pulumi.Input[str] project_id: The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project. :param pulumi.Input[bool] redirect_http_to_https: A boolean value indicating whether HTTP requests to the Load Balancer on port 80 will be redirected to HTTPS on port 443. Default value is `false`. :param pulumi.Input[Union[str, 'Region']] region: The region to start in :param pulumi.Input[str] size: The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `size_unit` may be provided. - :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. :param pulumi.Input['LoadBalancerStickySessionsArgs'] sticky_sessions: A `sticky_sessions` block to be assigned to the Load Balancer. The `sticky_sessions` block is documented below. Only 1 sticky_sessions block is allowed. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_load_balancer_ids: A list of Load Balancer IDs to be attached behind a Global Load Balancer. - :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the load balancer will be located. """ @@ -298,7 +297,6 @@ def name(self, value: Optional[pulumi.Input[str]]): def network(self) -> Optional[pulumi.Input[str]]: """ The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. """ return pulumi.get(self, "network") @@ -360,7 +358,7 @@ def size(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="sizeUnit") def size_unit(self) -> Optional[pulumi.Input[int]]: """ - The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. """ return pulumi.get(self, "size_unit") @@ -397,7 +395,7 @@ def target_load_balancer_ids(self, value: Optional[pulumi.Input[Sequence[pulumi. @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: """ - The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. """ return pulumi.get(self, "type") @@ -472,18 +470,17 @@ def __init__(__self__, *, :param pulumi.Input[str] load_balancer_urn: The uniform resource name for the Load Balancer :param pulumi.Input[str] name: The Load Balancer name :param pulumi.Input[str] network: The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. :param pulumi.Input[str] project_id: The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project. :param pulumi.Input[bool] redirect_http_to_https: A boolean value indicating whether HTTP requests to the Load Balancer on port 80 will be redirected to HTTPS on port 443. Default value is `false`. :param pulumi.Input[Union[str, 'Region']] region: The region to start in :param pulumi.Input[str] size: The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `size_unit` may be provided. - :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. :param pulumi.Input['LoadBalancerStickySessionsArgs'] sticky_sessions: A `sticky_sessions` block to be assigned to the Load Balancer. The `sticky_sessions` block is documented below. Only 1 sticky_sessions block is allowed. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_load_balancer_ids: A list of Load Balancer IDs to be attached behind a Global Load Balancer. - :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the load balancer will be located. """ @@ -745,7 +742,6 @@ def name(self, value: Optional[pulumi.Input[str]]): def network(self) -> Optional[pulumi.Input[str]]: """ The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. """ return pulumi.get(self, "network") @@ -807,7 +803,7 @@ def size(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="sizeUnit") def size_unit(self) -> Optional[pulumi.Input[int]]: """ - The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. """ return pulumi.get(self, "size_unit") @@ -853,7 +849,7 @@ def target_load_balancer_ids(self, value: Optional[pulumi.Input[Sequence[pulumi. @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: """ - The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. """ return pulumi.get(self, "type") @@ -970,18 +966,17 @@ def __init__(__self__, :param pulumi.Input[int] http_idle_timeout_seconds: Specifies the idle timeout for HTTPS connections on the load balancer in seconds. :param pulumi.Input[str] name: The Load Balancer name :param pulumi.Input[str] network: The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. :param pulumi.Input[str] project_id: The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project. :param pulumi.Input[bool] redirect_http_to_https: A boolean value indicating whether HTTP requests to the Load Balancer on port 80 will be redirected to HTTPS on port 443. Default value is `false`. :param pulumi.Input[Union[str, 'Region']] region: The region to start in :param pulumi.Input[str] size: The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `size_unit` may be provided. - :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. :param pulumi.Input[Union['LoadBalancerStickySessionsArgs', 'LoadBalancerStickySessionsArgsDict']] sticky_sessions: A `sticky_sessions` block to be assigned to the Load Balancer. The `sticky_sessions` block is documented below. Only 1 sticky_sessions block is allowed. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_load_balancer_ids: A list of Load Balancer IDs to be attached behind a Global Load Balancer. - :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the load balancer will be located. """ @@ -1175,18 +1170,17 @@ def get(resource_name: str, :param pulumi.Input[str] load_balancer_urn: The uniform resource name for the Load Balancer :param pulumi.Input[str] name: The Load Balancer name :param pulumi.Input[str] network: The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. :param pulumi.Input[str] project_id: The ID of the project that the load balancer is associated with. If no ID is provided at creation, the load balancer associates with the user's default project. :param pulumi.Input[bool] redirect_http_to_https: A boolean value indicating whether HTTP requests to the Load Balancer on port 80 will be redirected to HTTPS on port 443. Default value is `false`. :param pulumi.Input[Union[str, 'Region']] region: The region to start in :param pulumi.Input[str] size: The size of the Load Balancer. It must be either `lb-small`, `lb-medium`, or `lb-large`. Defaults to `lb-small`. Only one of `size` or `size_unit` may be provided. - :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + :param pulumi.Input[int] size_unit: The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. :param pulumi.Input[Union['LoadBalancerStickySessionsArgs', 'LoadBalancerStickySessionsArgsDict']] sticky_sessions: A `sticky_sessions` block to be assigned to the Load Balancer. The `sticky_sessions` block is documented below. Only 1 sticky_sessions block is allowed. :param pulumi.Input[Sequence[pulumi.Input[str]]] target_load_balancer_ids: A list of Load Balancer IDs to be attached behind a Global Load Balancer. - :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + :param pulumi.Input[str] type: The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. :param pulumi.Input[str] vpc_uuid: The ID of the VPC where the load balancer will be located. """ @@ -1359,7 +1353,6 @@ def name(self) -> pulumi.Output[str]: def network(self) -> pulumi.Output[Optional[str]]: """ The type of network the Load Balancer is accessible from. It must be either of `INTERNAL` or `EXTERNAL`. Defaults to `EXTERNAL`. - **NOTE**: non-`EXTERNAL` type may be part of closed beta feature and not available for public use. """ return pulumi.get(self, "network") @@ -1401,7 +1394,7 @@ def size(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="sizeUnit") def size_unit(self) -> pulumi.Output[int]: """ - The size of the Load Balancer. It must be in the range (1, 100). Defaults to `1`. Only one of `size` or `size_unit` may be provided. + The size of the Load Balancer. It must be in the range (1, 200). Defaults to `1`. Only one of `size` or `size_unit` may be provided. """ return pulumi.get(self, "size_unit") @@ -1431,7 +1424,7 @@ def target_load_balancer_ids(self) -> pulumi.Output[Sequence[str]]: @pulumi.getter def type(self) -> pulumi.Output[Optional[str]]: """ - The type of the Load Balancer. It must be either of `REGIONAL` or `GLOBAL`. Defaults to `REGIONAL`. + The type of the Load Balancer. It must be either of `REGIONAL`, `REGIONAL_NETWORK`, or `GLOBAL`. Defaults to `REGIONAL`. **NOTE**: non-`REGIONAL/GLOBAL` type may be part of closed beta feature and not available for public use. """ return pulumi.get(self, "type") diff --git a/sdk/python/pulumi_digitalocean/outputs.py b/sdk/python/pulumi_digitalocean/outputs.py index c3c9d81e..34c9a4a5 100644 --- a/sdk/python/pulumi_digitalocean/outputs.py +++ b/sdk/python/pulumi_digitalocean/outputs.py @@ -113,6 +113,9 @@ 'DatabaseUserSetting', 'DatabaseUserSettingAcl', 'DatabaseUserSettingOpensearchAcl', + 'DropletAutoscaleConfig', + 'DropletAutoscaleCurrentUtilization', + 'DropletAutoscaleDropletTemplate', 'DropletBackupPolicy', 'FirewallInboundRule', 'FirewallOutboundRule', @@ -234,6 +237,9 @@ 'GetDomainsDomainResult', 'GetDomainsFilterResult', 'GetDomainsSortResult', + 'GetDropletAutoscaleConfigResult', + 'GetDropletAutoscaleCurrentUtilizationResult', + 'GetDropletAutoscaleDropletTemplateResult', 'GetDropletsDropletResult', 'GetDropletsFilterResult', 'GetDropletsSortResult', @@ -6668,6 +6674,301 @@ def permission(self) -> str: return pulumi.get(self, "permission") +@pulumi.output_type +class DropletAutoscaleConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "cooldownMinutes": + suggest = "cooldown_minutes" + elif key == "maxInstances": + suggest = "max_instances" + elif key == "minInstances": + suggest = "min_instances" + elif key == "targetCpuUtilization": + suggest = "target_cpu_utilization" + elif key == "targetMemoryUtilization": + suggest = "target_memory_utilization" + elif key == "targetNumberInstances": + suggest = "target_number_instances" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DropletAutoscaleConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DropletAutoscaleConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DropletAutoscaleConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + cooldown_minutes: Optional[int] = None, + max_instances: Optional[int] = None, + min_instances: Optional[int] = None, + target_cpu_utilization: Optional[float] = None, + target_memory_utilization: Optional[float] = None, + target_number_instances: Optional[int] = None): + """ + :param int cooldown_minutes: The cooldown duration between scaling events for the Droplet Autoscale pool. + :param int max_instances: The maximum number of instances to maintain in the Droplet Autoscale pool. + :param int min_instances: The minimum number of instances to maintain in the Droplet Autoscale pool. + :param float target_cpu_utilization: The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + :param float target_memory_utilization: The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + pool. + :param int target_number_instances: The static number of instances to maintain in the pool Droplet Autoscale pool. This + argument cannot be used with any other config options. + """ + if cooldown_minutes is not None: + pulumi.set(__self__, "cooldown_minutes", cooldown_minutes) + if max_instances is not None: + pulumi.set(__self__, "max_instances", max_instances) + if min_instances is not None: + pulumi.set(__self__, "min_instances", min_instances) + if target_cpu_utilization is not None: + pulumi.set(__self__, "target_cpu_utilization", target_cpu_utilization) + if target_memory_utilization is not None: + pulumi.set(__self__, "target_memory_utilization", target_memory_utilization) + if target_number_instances is not None: + pulumi.set(__self__, "target_number_instances", target_number_instances) + + @property + @pulumi.getter(name="cooldownMinutes") + def cooldown_minutes(self) -> Optional[int]: + """ + The cooldown duration between scaling events for the Droplet Autoscale pool. + """ + return pulumi.get(self, "cooldown_minutes") + + @property + @pulumi.getter(name="maxInstances") + def max_instances(self) -> Optional[int]: + """ + The maximum number of instances to maintain in the Droplet Autoscale pool. + """ + return pulumi.get(self, "max_instances") + + @property + @pulumi.getter(name="minInstances") + def min_instances(self) -> Optional[int]: + """ + The minimum number of instances to maintain in the Droplet Autoscale pool. + """ + return pulumi.get(self, "min_instances") + + @property + @pulumi.getter(name="targetCpuUtilization") + def target_cpu_utilization(self) -> Optional[float]: + """ + The target average CPU load (in range `[0, 1]`) to maintain in the Droplet Autoscale pool. + """ + return pulumi.get(self, "target_cpu_utilization") + + @property + @pulumi.getter(name="targetMemoryUtilization") + def target_memory_utilization(self) -> Optional[float]: + """ + The target average Memory load (in range `[0, 1]`) to maintain in the Droplet Autoscale + pool. + """ + return pulumi.get(self, "target_memory_utilization") + + @property + @pulumi.getter(name="targetNumberInstances") + def target_number_instances(self) -> Optional[int]: + """ + The static number of instances to maintain in the pool Droplet Autoscale pool. This + argument cannot be used with any other config options. + """ + return pulumi.get(self, "target_number_instances") + + +@pulumi.output_type +class DropletAutoscaleCurrentUtilization(dict): + def __init__(__self__, *, + cpu: Optional[float] = None, + memory: Optional[float] = None): + """ + :param float cpu: Average CPU utilization + :param float memory: Average Memory utilization + """ + if cpu is not None: + pulumi.set(__self__, "cpu", cpu) + if memory is not None: + pulumi.set(__self__, "memory", memory) + + @property + @pulumi.getter + def cpu(self) -> Optional[float]: + """ + Average CPU utilization + """ + return pulumi.get(self, "cpu") + + @property + @pulumi.getter + def memory(self) -> Optional[float]: + """ + Average Memory utilization + """ + return pulumi.get(self, "memory") + + +@pulumi.output_type +class DropletAutoscaleDropletTemplate(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "sshKeys": + suggest = "ssh_keys" + elif key == "projectId": + suggest = "project_id" + elif key == "userData": + suggest = "user_data" + elif key == "vpcUuid": + suggest = "vpc_uuid" + elif key == "withDropletAgent": + suggest = "with_droplet_agent" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DropletAutoscaleDropletTemplate. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DropletAutoscaleDropletTemplate.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DropletAutoscaleDropletTemplate.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + image: str, + region: str, + size: str, + ssh_keys: Sequence[str], + ipv6: Optional[bool] = None, + project_id: Optional[str] = None, + tags: Optional[Sequence[str]] = None, + user_data: Optional[str] = None, + vpc_uuid: Optional[str] = None, + with_droplet_agent: Optional[bool] = None): + """ + :param str image: Image slug of the Droplet Autoscale pool underlying resource(s). + :param str region: Region slug of the Droplet Autoscale pool underlying resource(s). + :param str size: Size slug of the Droplet Autoscale pool underlying resource(s). + :param Sequence[str] ssh_keys: SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + :param bool ipv6: Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + :param str project_id: Project UUID to create the Droplet Autoscale pool underlying resource(s). + :param Sequence[str] tags: List of tags to add to the Droplet Autoscale pool underlying resource(s). + :param str user_data: Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + cloud init script that user may configure to setup their application workload. + :param str vpc_uuid: VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + from the specified `region` (default VPC). + :param bool with_droplet_agent: Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + """ + pulumi.set(__self__, "image", image) + pulumi.set(__self__, "region", region) + pulumi.set(__self__, "size", size) + pulumi.set(__self__, "ssh_keys", ssh_keys) + if ipv6 is not None: + pulumi.set(__self__, "ipv6", ipv6) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if user_data is not None: + pulumi.set(__self__, "user_data", user_data) + if vpc_uuid is not None: + pulumi.set(__self__, "vpc_uuid", vpc_uuid) + if with_droplet_agent is not None: + pulumi.set(__self__, "with_droplet_agent", with_droplet_agent) + + @property + @pulumi.getter + def image(self) -> str: + """ + Image slug of the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "image") + + @property + @pulumi.getter + def region(self) -> str: + """ + Region slug of the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter + def size(self) -> str: + """ + Size slug of the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "size") + + @property + @pulumi.getter(name="sshKeys") + def ssh_keys(self) -> Sequence[str]: + """ + SSH fingerprints to add to the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "ssh_keys") + + @property + @pulumi.getter + def ipv6(self) -> Optional[bool]: + """ + Boolean flag to enable IPv6 networking on the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "ipv6") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[str]: + """ + Project UUID to create the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence[str]]: + """ + List of tags to add to the Droplet Autoscale pool underlying resource(s). + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="userData") + def user_data(self) -> Optional[str]: + """ + Custom user data that can be added to the Droplet Autoscale pool underlying resource(s). This can be a + cloud init script that user may configure to setup their application workload. + """ + return pulumi.get(self, "user_data") + + @property + @pulumi.getter(name="vpcUuid") + def vpc_uuid(self) -> Optional[str]: + """ + VPC UUID to create the Droplet Autoscale pool underlying resource(s). If not provided, this is inferred + from the specified `region` (default VPC). + """ + return pulumi.get(self, "vpc_uuid") + + @property + @pulumi.getter(name="withDropletAgent") + def with_droplet_agent(self) -> Optional[bool]: + """ + Boolean flag to enable metric agent on the Droplet Autoscale pool underlying resource(s). The + metric agent enables collecting resource utilization metrics, which allows making resource based scaling decisions. + """ + return pulumi.get(self, "with_droplet_agent") + + @pulumi.output_type class DropletBackupPolicy(dict): def __init__(__self__, *, @@ -13476,6 +13777,225 @@ def direction(self) -> Optional[str]: return pulumi.get(self, "direction") +@pulumi.output_type +class GetDropletAutoscaleConfigResult(dict): + def __init__(__self__, *, + cooldown_minutes: int, + max_instances: int, + min_instances: int, + target_cpu_utilization: float, + target_memory_utilization: float, + target_number_instances: int): + """ + :param int cooldown_minutes: Cooldown duration + :param int max_instances: Max number of members + :param int min_instances: Min number of members + :param float target_cpu_utilization: CPU target threshold + :param float target_memory_utilization: Memory target threshold + :param int target_number_instances: Target number of members + """ + pulumi.set(__self__, "cooldown_minutes", cooldown_minutes) + pulumi.set(__self__, "max_instances", max_instances) + pulumi.set(__self__, "min_instances", min_instances) + pulumi.set(__self__, "target_cpu_utilization", target_cpu_utilization) + pulumi.set(__self__, "target_memory_utilization", target_memory_utilization) + pulumi.set(__self__, "target_number_instances", target_number_instances) + + @property + @pulumi.getter(name="cooldownMinutes") + def cooldown_minutes(self) -> int: + """ + Cooldown duration + """ + return pulumi.get(self, "cooldown_minutes") + + @property + @pulumi.getter(name="maxInstances") + def max_instances(self) -> int: + """ + Max number of members + """ + return pulumi.get(self, "max_instances") + + @property + @pulumi.getter(name="minInstances") + def min_instances(self) -> int: + """ + Min number of members + """ + return pulumi.get(self, "min_instances") + + @property + @pulumi.getter(name="targetCpuUtilization") + def target_cpu_utilization(self) -> float: + """ + CPU target threshold + """ + return pulumi.get(self, "target_cpu_utilization") + + @property + @pulumi.getter(name="targetMemoryUtilization") + def target_memory_utilization(self) -> float: + """ + Memory target threshold + """ + return pulumi.get(self, "target_memory_utilization") + + @property + @pulumi.getter(name="targetNumberInstances") + def target_number_instances(self) -> int: + """ + Target number of members + """ + return pulumi.get(self, "target_number_instances") + + +@pulumi.output_type +class GetDropletAutoscaleCurrentUtilizationResult(dict): + def __init__(__self__, *, + cpu: float, + memory: float): + """ + :param float cpu: Average CPU utilization + :param float memory: Average Memory utilization + """ + pulumi.set(__self__, "cpu", cpu) + pulumi.set(__self__, "memory", memory) + + @property + @pulumi.getter + def cpu(self) -> float: + """ + Average CPU utilization + """ + return pulumi.get(self, "cpu") + + @property + @pulumi.getter + def memory(self) -> float: + """ + Average Memory utilization + """ + return pulumi.get(self, "memory") + + +@pulumi.output_type +class GetDropletAutoscaleDropletTemplateResult(dict): + def __init__(__self__, *, + image: str, + ipv6: bool, + project_id: str, + region: str, + size: str, + ssh_keys: Sequence[str], + tags: Sequence[str], + user_data: str, + vpc_uuid: str, + with_droplet_agent: bool): + """ + :param str image: Droplet image + :param bool ipv6: Enable droplet IPv6 + :param str project_id: Droplet project ID + :param str region: Droplet region + :param str size: Droplet size + :param Sequence[str] ssh_keys: Droplet SSH keys + :param Sequence[str] tags: Droplet tags + :param str user_data: Droplet user data + :param str vpc_uuid: Droplet VPC UUID + :param bool with_droplet_agent: Enable droplet agent + """ + pulumi.set(__self__, "image", image) + pulumi.set(__self__, "ipv6", ipv6) + pulumi.set(__self__, "project_id", project_id) + pulumi.set(__self__, "region", region) + pulumi.set(__self__, "size", size) + pulumi.set(__self__, "ssh_keys", ssh_keys) + pulumi.set(__self__, "tags", tags) + pulumi.set(__self__, "user_data", user_data) + pulumi.set(__self__, "vpc_uuid", vpc_uuid) + pulumi.set(__self__, "with_droplet_agent", with_droplet_agent) + + @property + @pulumi.getter + def image(self) -> str: + """ + Droplet image + """ + return pulumi.get(self, "image") + + @property + @pulumi.getter + def ipv6(self) -> bool: + """ + Enable droplet IPv6 + """ + return pulumi.get(self, "ipv6") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + """ + Droplet project ID + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def region(self) -> str: + """ + Droplet region + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter + def size(self) -> str: + """ + Droplet size + """ + return pulumi.get(self, "size") + + @property + @pulumi.getter(name="sshKeys") + def ssh_keys(self) -> Sequence[str]: + """ + Droplet SSH keys + """ + return pulumi.get(self, "ssh_keys") + + @property + @pulumi.getter + def tags(self) -> Sequence[str]: + """ + Droplet tags + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="userData") + def user_data(self) -> str: + """ + Droplet user data + """ + return pulumi.get(self, "user_data") + + @property + @pulumi.getter(name="vpcUuid") + def vpc_uuid(self) -> str: + """ + Droplet VPC UUID + """ + return pulumi.get(self, "vpc_uuid") + + @property + @pulumi.getter(name="withDropletAgent") + def with_droplet_agent(self) -> bool: + """ + Enable droplet agent + """ + return pulumi.get(self, "with_droplet_agent") + + @pulumi.output_type class GetDropletsDropletResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_digitalocean/reserved_ipv6.py b/sdk/python/pulumi_digitalocean/reserved_ipv6.py new file mode 100644 index 00000000..95aa2e52 --- /dev/null +++ b/sdk/python/pulumi_digitalocean/reserved_ipv6.py @@ -0,0 +1,232 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['ReservedIpv6Args', 'ReservedIpv6'] + +@pulumi.input_type +class ReservedIpv6Args: + def __init__(__self__, *, + region_slug: pulumi.Input[str], + droplet_id: Optional[pulumi.Input[int]] = None, + ip: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a ReservedIpv6 resource. + """ + pulumi.set(__self__, "region_slug", region_slug) + if droplet_id is not None: + pulumi.set(__self__, "droplet_id", droplet_id) + if ip is not None: + pulumi.set(__self__, "ip", ip) + + @property + @pulumi.getter(name="regionSlug") + def region_slug(self) -> pulumi.Input[str]: + return pulumi.get(self, "region_slug") + + @region_slug.setter + def region_slug(self, value: pulumi.Input[str]): + pulumi.set(self, "region_slug", value) + + @property + @pulumi.getter(name="dropletId") + def droplet_id(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "droplet_id") + + @droplet_id.setter + def droplet_id(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "droplet_id", value) + + @property + @pulumi.getter + def ip(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ip") + + @ip.setter + def ip(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ip", value) + + +@pulumi.input_type +class _ReservedIpv6State: + def __init__(__self__, *, + droplet_id: Optional[pulumi.Input[int]] = None, + ip: Optional[pulumi.Input[str]] = None, + region_slug: Optional[pulumi.Input[str]] = None, + urn: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ReservedIpv6 resources. + :param pulumi.Input[str] urn: the uniform resource name for the reserved ipv6 + """ + if droplet_id is not None: + pulumi.set(__self__, "droplet_id", droplet_id) + if ip is not None: + pulumi.set(__self__, "ip", ip) + if region_slug is not None: + pulumi.set(__self__, "region_slug", region_slug) + if urn is not None: + pulumi.set(__self__, "urn", urn) + + @property + @pulumi.getter(name="dropletId") + def droplet_id(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "droplet_id") + + @droplet_id.setter + def droplet_id(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "droplet_id", value) + + @property + @pulumi.getter + def ip(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ip") + + @ip.setter + def ip(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ip", value) + + @property + @pulumi.getter(name="regionSlug") + def region_slug(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "region_slug") + + @region_slug.setter + def region_slug(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region_slug", value) + + @property + @pulumi.getter + def urn(self) -> Optional[pulumi.Input[str]]: + """ + the uniform resource name for the reserved ipv6 + """ + return pulumi.get(self, "urn") + + @urn.setter + def urn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "urn", value) + + +class ReservedIpv6(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + droplet_id: Optional[pulumi.Input[int]] = None, + ip: Optional[pulumi.Input[str]] = None, + region_slug: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a ReservedIpv6 resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ReservedIpv6Args, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a ReservedIpv6 resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param ReservedIpv6Args args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ReservedIpv6Args, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + droplet_id: Optional[pulumi.Input[int]] = None, + ip: Optional[pulumi.Input[str]] = None, + region_slug: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ReservedIpv6Args.__new__(ReservedIpv6Args) + + __props__.__dict__["droplet_id"] = droplet_id + __props__.__dict__["ip"] = ip + if region_slug is None and not opts.urn: + raise TypeError("Missing required property 'region_slug'") + __props__.__dict__["region_slug"] = region_slug + __props__.__dict__["urn"] = None + super(ReservedIpv6, __self__).__init__( + 'digitalocean:index/reservedIpv6:ReservedIpv6', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + droplet_id: Optional[pulumi.Input[int]] = None, + ip: Optional[pulumi.Input[str]] = None, + region_slug: Optional[pulumi.Input[str]] = None, + urn: Optional[pulumi.Input[str]] = None) -> 'ReservedIpv6': + """ + Get an existing ReservedIpv6 resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] urn: the uniform resource name for the reserved ipv6 + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ReservedIpv6State.__new__(_ReservedIpv6State) + + __props__.__dict__["droplet_id"] = droplet_id + __props__.__dict__["ip"] = ip + __props__.__dict__["region_slug"] = region_slug + __props__.__dict__["urn"] = urn + return ReservedIpv6(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="dropletId") + def droplet_id(self) -> pulumi.Output[int]: + return pulumi.get(self, "droplet_id") + + @property + @pulumi.getter + def ip(self) -> pulumi.Output[str]: + return pulumi.get(self, "ip") + + @property + @pulumi.getter(name="regionSlug") + def region_slug(self) -> pulumi.Output[str]: + return pulumi.get(self, "region_slug") + + @property + @pulumi.getter + def urn(self) -> pulumi.Output[str]: + """ + the uniform resource name for the reserved ipv6 + """ + return pulumi.get(self, "urn") + diff --git a/sdk/python/pulumi_digitalocean/reserved_ipv6_assignment.py b/sdk/python/pulumi_digitalocean/reserved_ipv6_assignment.py new file mode 100644 index 00000000..7650f9a0 --- /dev/null +++ b/sdk/python/pulumi_digitalocean/reserved_ipv6_assignment.py @@ -0,0 +1,171 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['ReservedIpv6AssignmentArgs', 'ReservedIpv6Assignment'] + +@pulumi.input_type +class ReservedIpv6AssignmentArgs: + def __init__(__self__, *, + droplet_id: pulumi.Input[int], + ip: pulumi.Input[str]): + """ + The set of arguments for constructing a ReservedIpv6Assignment resource. + """ + pulumi.set(__self__, "droplet_id", droplet_id) + pulumi.set(__self__, "ip", ip) + + @property + @pulumi.getter(name="dropletId") + def droplet_id(self) -> pulumi.Input[int]: + return pulumi.get(self, "droplet_id") + + @droplet_id.setter + def droplet_id(self, value: pulumi.Input[int]): + pulumi.set(self, "droplet_id", value) + + @property + @pulumi.getter + def ip(self) -> pulumi.Input[str]: + return pulumi.get(self, "ip") + + @ip.setter + def ip(self, value: pulumi.Input[str]): + pulumi.set(self, "ip", value) + + +@pulumi.input_type +class _ReservedIpv6AssignmentState: + def __init__(__self__, *, + droplet_id: Optional[pulumi.Input[int]] = None, + ip: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ReservedIpv6Assignment resources. + """ + if droplet_id is not None: + pulumi.set(__self__, "droplet_id", droplet_id) + if ip is not None: + pulumi.set(__self__, "ip", ip) + + @property + @pulumi.getter(name="dropletId") + def droplet_id(self) -> Optional[pulumi.Input[int]]: + return pulumi.get(self, "droplet_id") + + @droplet_id.setter + def droplet_id(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "droplet_id", value) + + @property + @pulumi.getter + def ip(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "ip") + + @ip.setter + def ip(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ip", value) + + +class ReservedIpv6Assignment(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + droplet_id: Optional[pulumi.Input[int]] = None, + ip: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a ReservedIpv6Assignment resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ReservedIpv6AssignmentArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a ReservedIpv6Assignment resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param ReservedIpv6AssignmentArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ReservedIpv6AssignmentArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + droplet_id: Optional[pulumi.Input[int]] = None, + ip: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ReservedIpv6AssignmentArgs.__new__(ReservedIpv6AssignmentArgs) + + if droplet_id is None and not opts.urn: + raise TypeError("Missing required property 'droplet_id'") + __props__.__dict__["droplet_id"] = droplet_id + if ip is None and not opts.urn: + raise TypeError("Missing required property 'ip'") + __props__.__dict__["ip"] = ip + super(ReservedIpv6Assignment, __self__).__init__( + 'digitalocean:index/reservedIpv6Assignment:ReservedIpv6Assignment', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + droplet_id: Optional[pulumi.Input[int]] = None, + ip: Optional[pulumi.Input[str]] = None) -> 'ReservedIpv6Assignment': + """ + Get an existing ReservedIpv6Assignment resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ReservedIpv6AssignmentState.__new__(_ReservedIpv6AssignmentState) + + __props__.__dict__["droplet_id"] = droplet_id + __props__.__dict__["ip"] = ip + return ReservedIpv6Assignment(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="dropletId") + def droplet_id(self) -> pulumi.Output[int]: + return pulumi.get(self, "droplet_id") + + @property + @pulumi.getter + def ip(self) -> pulumi.Output[str]: + return pulumi.get(self, "ip") + diff --git a/upstream b/upstream index b4fc726e..f27a1125 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit b4fc726e0972ce16c0cc95a3b089b277327228e6 +Subproject commit f27a1125229e865da2a20cb0682d57b38433ce82