diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index e37bb05a..94c065d4 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=linux/amd64 pulumi/pulumi:3.70.0 +FROM --platform=linux/amd64 pulumi/pulumi:3.125.0 # Install pulumictl and set to PATH RUN curl -fsSL https://get.pulumi.com | sh diff --git a/provider/cmd/pulumi-resource-scaleway/schema.json b/provider/cmd/pulumi-resource-scaleway/schema.json index 4d061bfe..9c1f5b85 100644 --- a/provider/cmd/pulumi-resource-scaleway/schema.json +++ b/provider/cmd/pulumi-resource-scaleway/schema.json @@ -1068,7 +1068,7 @@ "items": { "type": "string" }, - "description": "Names of permission sets bind to the rule.\n\n**_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g:\n\n```shell\n$ scw IAM permission-set list\n```\n" + "description": "Names of permission sets bind to the rule.\n\n**_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g:\n\n```shell\nscw IAM permission-set list\n```\n" }, "projectIds": { "type": "array", @@ -2141,13 +2141,17 @@ "type": "boolean", "description": "(Optional) Set to `true` if you want to let DHCP assign IP addresses. See below.\n" }, + "ipamIds": { + "type": "string", + "description": "(Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.\n" + }, "privateNetworkId": { "type": "string", "description": "(Required) The ID of the Private Network to attach to.\n" }, "staticConfig": { "type": "string", - "description": "(Deprecated) Please use `dhcp_config`. Define a local ip address of your choice for the load balancer instance.\n", + "description": "(Deprecated) Please use `ipam_ids`. Define a local ip address of your choice for the load balancer instance.\n", "deprecationMessage": "static_config field is deprecated, please use dhcp_config instead" }, "status": { @@ -2167,6 +2171,7 @@ "nodejs": { "requiredOutputs": [ "dhcpConfig", + "ipamIds", "privateNetworkId", "status", "zone" @@ -5111,6 +5116,13 @@ "type": "string", "description": "The reverse domain associated with this IP.\n" }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of tags used as filter. IPs with these exact tags are listed.\n" + }, "zone": { "type": "string", "description": "`zone`) The zone in which the IPs exist.\n" @@ -5124,6 +5136,7 @@ "organizationId", "projectId", "reverse", + "tags", "zone" ], "language": { @@ -5428,6 +5441,13 @@ "type": "boolean", "description": "Set to true if you want to let DHCP assign IP addresses\n" }, + "ipamIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network\n" + }, "privateNetworkId": { "type": "string", "description": "The Private Network ID\n" @@ -5451,6 +5471,7 @@ "type": "object", "required": [ "dhcpConfig", + "ipamIds", "privateNetworkId", "staticConfigs", "status", @@ -5862,6 +5883,81 @@ } } }, + "scaleway:index/getVpcRoutesRoute:getVpcRoutesRoute": { + "properties": { + "createdAt": { + "type": "string", + "description": "The date on which the route was created (RFC 3339 format).\n" + }, + "description": { + "type": "string", + "description": "The description of the route.\n" + }, + "destination": { + "type": "string", + "description": "The destination IP or IP range of the route.\n" + }, + "id": { + "type": "string", + "description": "The ID of the route.\n\u003e **Important:** route IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111\n" + }, + "nexthopIp": { + "type": "string", + "description": "The IP of the route's next hop.\n" + }, + "nexthopName": { + "type": "string", + "description": "The name of the route's next hop.\n" + }, + "nexthopPrivateNetworkId": { + "type": "string", + "description": "The next hop private network ID to filter for. routes with a similar next hop private network ID are listed.\n" + }, + "nexthopResourceId": { + "type": "string", + "description": "The next hop resource ID to filter for. routes with a similar next hop resource ID are listed.\n" + }, + "nexthopResourceType": { + "type": "string", + "description": "The next hop resource type to filter for. routes with a similar next hop resource type are listed.\n" + }, + "region": { + "type": "string", + "description": "`region`). The region in which the routes exist.\n" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of tags to filter for. routes with these exact tags are listed.\n" + }, + "vpcId": { + "type": "string", + "description": "The VPC ID to filter for. routes with a similar VPC ID are listed.\n" + } + }, + "type": "object", + "required": [ + "createdAt", + "description", + "destination", + "id", + "nexthopIp", + "nexthopName", + "nexthopPrivateNetworkId", + "nexthopResourceId", + "nexthopResourceType", + "region", + "tags", + "vpcId" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "scaleway:index/getVpcsVpc:getVpcsVpc": { "properties": { "createdAt": { @@ -7579,6 +7675,10 @@ "type": "string", "description": "The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n" }, + "sandbox": { + "type": "string", + "description": "Execution environment of the container.\n" + }, "secretEnvironmentVariables": { "type": "object", "additionalProperties": { @@ -7611,6 +7711,7 @@ "port", "region", "registryImage", + "sandbox", "status", "timeout" ], @@ -7688,6 +7789,10 @@ "type": "string", "description": "The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n" }, + "sandbox": { + "type": "string", + "description": "Execution environment of the container.\n" + }, "secretEnvironmentVariables": { "type": "object", "additionalProperties": { @@ -7796,6 +7901,10 @@ "type": "string", "description": "The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n" }, + "sandbox": { + "type": "string", + "description": "Execution environment of the container.\n" + }, "secretEnvironmentVariables": { "type": "object", "additionalProperties": { @@ -10572,6 +10681,10 @@ "type": "string", "description": "Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a\n" }, + "sandbox": { + "type": "string", + "description": "Execution environment of the function.\n" + }, "secretEnvironmentVariables": { "type": "object", "additionalProperties": { @@ -10604,6 +10717,7 @@ "projectId", "region", "runtime", + "sandbox", "timeout" ], "inputProperties": { @@ -10669,6 +10783,10 @@ "type": "string", "description": "Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a\n" }, + "sandbox": { + "type": "string", + "description": "Execution environment of the function.\n" + }, "secretEnvironmentVariables": { "type": "object", "additionalProperties": { @@ -10773,6 +10891,10 @@ "type": "string", "description": "Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a\n" }, + "sandbox": { + "type": "string", + "description": "Execution environment of the function.\n" + }, "secretEnvironmentVariables": { "type": "object", "additionalProperties": { @@ -13075,7 +13197,7 @@ }, "image": { "type": "string", - "description": "The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1\u0026per_page=100)\nto find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n" + "description": "The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)\nto find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n" }, "ipId": { "type": "string", @@ -13235,7 +13357,7 @@ }, "image": { "type": "string", - "description": "The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1\u0026per_page=100)\nto find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n" + "description": "The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)\nto find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n" }, "ipId": { "type": "string", @@ -13354,7 +13476,7 @@ }, "image": { "type": "string", - "description": "The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1\u0026per_page=100)\nto find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n" + "description": "The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)\nto find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n" }, "ipId": { "type": "string", @@ -14888,7 +15010,7 @@ } }, "scaleway:index/kubernetesCluster:KubernetesCluster": { - "description": "Creates and manages Scaleway Kubernetes clusters. For more information, see [the documentation](https://www.scaleway.com/en/developers/api/kubernetes/).\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst pn = new scaleway.VpcPrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.KubernetesCluster(\"cluster\", {\n version: \"1.29.1\",\n cni: \"cilium\",\n privateNetworkId: pn.id,\n deleteAdditionalResources: false,\n});\nconst pool = new scaleway.KubernetesNodePool(\"pool\", {\n clusterId: cluster.id,\n nodeType: \"DEV1-M\",\n size: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn = scaleway.VpcPrivateNetwork(\"pn\")\ncluster = scaleway.KubernetesCluster(\"cluster\",\n version=\"1.29.1\",\n cni=\"cilium\",\n private_network_id=pn.id,\n delete_additional_resources=False)\npool = scaleway.KubernetesNodePool(\"pool\",\n cluster_id=cluster.id,\n node_type=\"DEV1-M\",\n size=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pn = new Scaleway.VpcPrivateNetwork(\"pn\");\n\n var cluster = new Scaleway.KubernetesCluster(\"cluster\", new()\n {\n Version = \"1.29.1\",\n Cni = \"cilium\",\n PrivateNetworkId = pn.Id,\n DeleteAdditionalResources = false,\n });\n\n var pool = new Scaleway.KubernetesNodePool(\"pool\", new()\n {\n ClusterId = cluster.Id,\n NodeType = \"DEV1-M\",\n Size = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := scaleway.NewKubernetesCluster(ctx, \"cluster\", \u0026scaleway.KubernetesClusterArgs{\n\t\t\tVersion: pulumi.String(\"1.29.1\"),\n\t\t\tCni: pulumi.String(\"cilium\"),\n\t\t\tPrivateNetworkId: pn.ID(),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewKubernetesNodePool(ctx, \"pool\", \u0026scaleway.KubernetesNodePoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tNodeType: pulumi.String(\"DEV1-M\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.VpcPrivateNetwork;\nimport com.pulumi.scaleway.KubernetesCluster;\nimport com.pulumi.scaleway.KubernetesClusterArgs;\nimport com.pulumi.scaleway.KubernetesNodePool;\nimport com.pulumi.scaleway.KubernetesNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 pn = new VpcPrivateNetwork(\"pn\");\n\n var cluster = new KubernetesCluster(\"cluster\", KubernetesClusterArgs.builder()\n .version(\"1.29.1\")\n .cni(\"cilium\")\n .privateNetworkId(pn.id())\n .deleteAdditionalResources(false)\n .build());\n\n var pool = new KubernetesNodePool(\"pool\", KubernetesNodePoolArgs.builder()\n .clusterId(cluster.id())\n .nodeType(\"DEV1-M\")\n .size(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pn:\n type: scaleway:VpcPrivateNetwork\n cluster:\n type: scaleway:KubernetesCluster\n properties:\n version: 1.29.1\n cni: cilium\n privateNetworkId: ${pn.id}\n deleteAdditionalResources: false\n pool:\n type: scaleway:KubernetesNodePool\n properties:\n clusterId: ${cluster.id}\n nodeType: DEV1-M\n size: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Multicloud\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst cluster = new scaleway.KubernetesCluster(\"cluster\", {\n type: \"multicloud\",\n version: \"1.29.1\",\n cni: \"kilo\",\n deleteAdditionalResources: false,\n});\nconst pool = new scaleway.KubernetesNodePool(\"pool\", {\n clusterId: cluster.id,\n nodeType: \"external\",\n size: 0,\n minSize: 0,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ncluster = scaleway.KubernetesCluster(\"cluster\",\n type=\"multicloud\",\n version=\"1.29.1\",\n cni=\"kilo\",\n delete_additional_resources=False)\npool = scaleway.KubernetesNodePool(\"pool\",\n cluster_id=cluster.id,\n node_type=\"external\",\n size=0,\n min_size=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cluster = new Scaleway.KubernetesCluster(\"cluster\", new()\n {\n Type = \"multicloud\",\n Version = \"1.29.1\",\n Cni = \"kilo\",\n DeleteAdditionalResources = false,\n });\n\n var pool = new Scaleway.KubernetesNodePool(\"pool\", new()\n {\n ClusterId = cluster.Id,\n NodeType = \"external\",\n Size = 0,\n MinSize = 0,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcluster, err := scaleway.NewKubernetesCluster(ctx, \"cluster\", \u0026scaleway.KubernetesClusterArgs{\n\t\t\tType: pulumi.String(\"multicloud\"),\n\t\t\tVersion: pulumi.String(\"1.29.1\"),\n\t\t\tCni: pulumi.String(\"kilo\"),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewKubernetesNodePool(ctx, \"pool\", \u0026scaleway.KubernetesNodePoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tNodeType: pulumi.String(\"external\"),\n\t\t\tSize: pulumi.Int(0),\n\t\t\tMinSize: pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.KubernetesCluster;\nimport com.pulumi.scaleway.KubernetesClusterArgs;\nimport com.pulumi.scaleway.KubernetesNodePool;\nimport com.pulumi.scaleway.KubernetesNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 cluster = new KubernetesCluster(\"cluster\", KubernetesClusterArgs.builder()\n .type(\"multicloud\")\n .version(\"1.29.1\")\n .cni(\"kilo\")\n .deleteAdditionalResources(false)\n .build());\n\n var pool = new KubernetesNodePool(\"pool\", KubernetesNodePoolArgs.builder()\n .clusterId(cluster.id())\n .nodeType(\"external\")\n .size(0)\n .minSize(0)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cluster:\n type: scaleway:KubernetesCluster\n properties:\n type: multicloud\n version: 1.29.1\n cni: kilo\n deleteAdditionalResources: false\n pool:\n type: scaleway:KubernetesNodePool\n properties:\n clusterId: ${cluster.id}\n nodeType: external\n size: 0\n minSize: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nFor a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to this guide.\n\n### With additional configuration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst pn = new scaleway.VpcPrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.KubernetesCluster(\"cluster\", {\n description: \"cluster made in terraform\",\n version: \"1.29.1\",\n cni: \"calico\",\n tags: [\"terraform\"],\n privateNetworkId: pn.id,\n deleteAdditionalResources: false,\n autoscalerConfig: {\n disableScaleDown: false,\n scaleDownDelayAfterAdd: \"5m\",\n estimator: \"binpacking\",\n expander: \"random\",\n ignoreDaemonsetsUtilization: true,\n balanceSimilarNodeGroups: true,\n expendablePodsPriorityCutoff: -5,\n },\n});\nconst pool = new scaleway.KubernetesNodePool(\"pool\", {\n clusterId: cluster.id,\n nodeType: \"DEV1-M\",\n size: 3,\n autoscaling: true,\n autohealing: true,\n minSize: 1,\n maxSize: 5,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn = scaleway.VpcPrivateNetwork(\"pn\")\ncluster = scaleway.KubernetesCluster(\"cluster\",\n description=\"cluster made in terraform\",\n version=\"1.29.1\",\n cni=\"calico\",\n tags=[\"terraform\"],\n private_network_id=pn.id,\n delete_additional_resources=False,\n autoscaler_config=scaleway.KubernetesClusterAutoscalerConfigArgs(\n disable_scale_down=False,\n scale_down_delay_after_add=\"5m\",\n estimator=\"binpacking\",\n expander=\"random\",\n ignore_daemonsets_utilization=True,\n balance_similar_node_groups=True,\n expendable_pods_priority_cutoff=-5,\n ))\npool = scaleway.KubernetesNodePool(\"pool\",\n cluster_id=cluster.id,\n node_type=\"DEV1-M\",\n size=3,\n autoscaling=True,\n autohealing=True,\n min_size=1,\n max_size=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pn = new Scaleway.VpcPrivateNetwork(\"pn\");\n\n var cluster = new Scaleway.KubernetesCluster(\"cluster\", new()\n {\n Description = \"cluster made in terraform\",\n Version = \"1.29.1\",\n Cni = \"calico\",\n Tags = new[]\n {\n \"terraform\",\n },\n PrivateNetworkId = pn.Id,\n DeleteAdditionalResources = false,\n AutoscalerConfig = new Scaleway.Inputs.KubernetesClusterAutoscalerConfigArgs\n {\n DisableScaleDown = false,\n ScaleDownDelayAfterAdd = \"5m\",\n Estimator = \"binpacking\",\n Expander = \"random\",\n IgnoreDaemonsetsUtilization = true,\n BalanceSimilarNodeGroups = true,\n ExpendablePodsPriorityCutoff = -5,\n },\n });\n\n var pool = new Scaleway.KubernetesNodePool(\"pool\", new()\n {\n ClusterId = cluster.Id,\n NodeType = \"DEV1-M\",\n Size = 3,\n Autoscaling = true,\n Autohealing = true,\n MinSize = 1,\n MaxSize = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := scaleway.NewKubernetesCluster(ctx, \"cluster\", \u0026scaleway.KubernetesClusterArgs{\n\t\t\tDescription: pulumi.String(\"cluster made in terraform\"),\n\t\t\tVersion: pulumi.String(\"1.29.1\"),\n\t\t\tCni: pulumi.String(\"calico\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform\"),\n\t\t\t},\n\t\t\tPrivateNetworkId: pn.ID(),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t\tAutoscalerConfig: \u0026scaleway.KubernetesClusterAutoscalerConfigArgs{\n\t\t\t\tDisableScaleDown: pulumi.Bool(false),\n\t\t\t\tScaleDownDelayAfterAdd: pulumi.String(\"5m\"),\n\t\t\t\tEstimator: pulumi.String(\"binpacking\"),\n\t\t\t\tExpander: pulumi.String(\"random\"),\n\t\t\t\tIgnoreDaemonsetsUtilization: pulumi.Bool(true),\n\t\t\t\tBalanceSimilarNodeGroups: pulumi.Bool(true),\n\t\t\t\tExpendablePodsPriorityCutoff: int(-5),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewKubernetesNodePool(ctx, \"pool\", \u0026scaleway.KubernetesNodePoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tNodeType: pulumi.String(\"DEV1-M\"),\n\t\t\tSize: pulumi.Int(3),\n\t\t\tAutoscaling: pulumi.Bool(true),\n\t\t\tAutohealing: pulumi.Bool(true),\n\t\t\tMinSize: pulumi.Int(1),\n\t\t\tMaxSize: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.VpcPrivateNetwork;\nimport com.pulumi.scaleway.KubernetesCluster;\nimport com.pulumi.scaleway.KubernetesClusterArgs;\nimport com.pulumi.scaleway.inputs.KubernetesClusterAutoscalerConfigArgs;\nimport com.pulumi.scaleway.KubernetesNodePool;\nimport com.pulumi.scaleway.KubernetesNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 pn = new VpcPrivateNetwork(\"pn\");\n\n var cluster = new KubernetesCluster(\"cluster\", KubernetesClusterArgs.builder()\n .description(\"cluster made in terraform\")\n .version(\"1.29.1\")\n .cni(\"calico\")\n .tags(\"terraform\")\n .privateNetworkId(pn.id())\n .deleteAdditionalResources(false)\n .autoscalerConfig(KubernetesClusterAutoscalerConfigArgs.builder()\n .disableScaleDown(false)\n .scaleDownDelayAfterAdd(\"5m\")\n .estimator(\"binpacking\")\n .expander(\"random\")\n .ignoreDaemonsetsUtilization(true)\n .balanceSimilarNodeGroups(true)\n .expendablePodsPriorityCutoff(\"TODO: GenUnaryOpExpression\")\n .build())\n .build());\n\n var pool = new KubernetesNodePool(\"pool\", KubernetesNodePoolArgs.builder()\n .clusterId(cluster.id())\n .nodeType(\"DEV1-M\")\n .size(3)\n .autoscaling(true)\n .autohealing(true)\n .minSize(1)\n .maxSize(5)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pn:\n type: scaleway:VpcPrivateNetwork\n cluster:\n type: scaleway:KubernetesCluster\n properties:\n description: cluster made in terraform\n version: 1.29.1\n cni: calico\n tags:\n - terraform\n privateNetworkId: ${pn.id}\n deleteAdditionalResources: false\n autoscalerConfig:\n disableScaleDown: false\n scaleDownDelayAfterAdd: 5m\n estimator: binpacking\n expander: random\n ignoreDaemonsetsUtilization: true\n balanceSimilarNodeGroups: true\n expendablePodsPriorityCutoff: -5\n pool:\n type: scaleway:KubernetesNodePool\n properties:\n clusterId: ${cluster.id}\n nodeType: DEV1-M\n size: 3\n autoscaling: true\n autohealing: true\n minSize: 1\n maxSize: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Deprecation of default_pool\n\n`default_pool` is deprecated in favour the `scaleway.KubernetesNodePool` resource. Here is a migration example.\n\nBefore:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n cluster:\n type: scaleway:KubernetesCluster\n properties:\n cni: cilium\n defaultPool:\n - nodeType: DEV1-M\n size: 1\n version: 1.18.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAfter:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst cluster = new scaleway.KubernetesCluster(\"cluster\", {\n version: \"1.18.0\",\n cni: \"cilium\",\n});\nconst _default = new scaleway.KubernetesNodePool(\"default\", {\n clusterId: scaleway_k8s_cluster.jack.id,\n nodeType: \"DEV1-M\",\n size: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ncluster = scaleway.KubernetesCluster(\"cluster\",\n version=\"1.18.0\",\n cni=\"cilium\")\ndefault = scaleway.KubernetesNodePool(\"default\",\n cluster_id=scaleway_k8s_cluster[\"jack\"][\"id\"],\n node_type=\"DEV1-M\",\n size=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cluster = new Scaleway.KubernetesCluster(\"cluster\", new()\n {\n Version = \"1.18.0\",\n Cni = \"cilium\",\n });\n\n var @default = new Scaleway.KubernetesNodePool(\"default\", new()\n {\n ClusterId = scaleway_k8s_cluster.Jack.Id,\n NodeType = \"DEV1-M\",\n Size = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scaleway.NewKubernetesCluster(ctx, \"cluster\", \u0026scaleway.KubernetesClusterArgs{\n\t\t\tVersion: pulumi.String(\"1.18.0\"),\n\t\t\tCni: pulumi.String(\"cilium\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewKubernetesNodePool(ctx, \"default\", \u0026scaleway.KubernetesNodePoolArgs{\n\t\t\tClusterId: pulumi.Any(scaleway_k8s_cluster.Jack.Id),\n\t\t\tNodeType: pulumi.String(\"DEV1-M\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.KubernetesCluster;\nimport com.pulumi.scaleway.KubernetesClusterArgs;\nimport com.pulumi.scaleway.KubernetesNodePool;\nimport com.pulumi.scaleway.KubernetesNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 cluster = new KubernetesCluster(\"cluster\", KubernetesClusterArgs.builder()\n .version(\"1.18.0\")\n .cni(\"cilium\")\n .build());\n\n var default_ = new KubernetesNodePool(\"default\", KubernetesNodePoolArgs.builder()\n .clusterId(scaleway_k8s_cluster.jack().id())\n .nodeType(\"DEV1-M\")\n .size(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cluster:\n type: scaleway:KubernetesCluster\n properties:\n version: 1.18.0\n cni: cilium\n default:\n type: scaleway:KubernetesNodePool\n properties:\n clusterId: ${scaleway_k8s_cluster.jack.id}\n nodeType: DEV1-M\n size: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nOnce you have moved all the `default_pool` into their own object, you will need to import them. If your pool had the ID 11111111-1111-1111-1111-111111111111 in the `fr-par` region, you can import it by typing:\n\n```bash\n$ terraform import scaleway_k8s_pool.default fr-par/11111111-1111-1111-1111-111111111111\n```\n\nThen you will only need to type `pulumi up` to have a smooth migration.\n\n## Import\n\nKubernetes clusters can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/kubernetesCluster:KubernetesCluster mycluster fr-par/11111111-1111-1111-1111-111111111111\n```\n\n", + "description": "Creates and manages Scaleway Kubernetes clusters. For more information, see [the documentation](https://www.scaleway.com/en/developers/api/kubernetes/).\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst pn = new scaleway.VpcPrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.KubernetesCluster(\"cluster\", {\n version: \"1.29.1\",\n cni: \"cilium\",\n privateNetworkId: pn.id,\n deleteAdditionalResources: false,\n});\nconst pool = new scaleway.KubernetesNodePool(\"pool\", {\n clusterId: cluster.id,\n nodeType: \"DEV1-M\",\n size: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn = scaleway.VpcPrivateNetwork(\"pn\")\ncluster = scaleway.KubernetesCluster(\"cluster\",\n version=\"1.29.1\",\n cni=\"cilium\",\n private_network_id=pn.id,\n delete_additional_resources=False)\npool = scaleway.KubernetesNodePool(\"pool\",\n cluster_id=cluster.id,\n node_type=\"DEV1-M\",\n size=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pn = new Scaleway.VpcPrivateNetwork(\"pn\");\n\n var cluster = new Scaleway.KubernetesCluster(\"cluster\", new()\n {\n Version = \"1.29.1\",\n Cni = \"cilium\",\n PrivateNetworkId = pn.Id,\n DeleteAdditionalResources = false,\n });\n\n var pool = new Scaleway.KubernetesNodePool(\"pool\", new()\n {\n ClusterId = cluster.Id,\n NodeType = \"DEV1-M\",\n Size = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := scaleway.NewKubernetesCluster(ctx, \"cluster\", \u0026scaleway.KubernetesClusterArgs{\n\t\t\tVersion: pulumi.String(\"1.29.1\"),\n\t\t\tCni: pulumi.String(\"cilium\"),\n\t\t\tPrivateNetworkId: pn.ID(),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewKubernetesNodePool(ctx, \"pool\", \u0026scaleway.KubernetesNodePoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tNodeType: pulumi.String(\"DEV1-M\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.VpcPrivateNetwork;\nimport com.pulumi.scaleway.KubernetesCluster;\nimport com.pulumi.scaleway.KubernetesClusterArgs;\nimport com.pulumi.scaleway.KubernetesNodePool;\nimport com.pulumi.scaleway.KubernetesNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 pn = new VpcPrivateNetwork(\"pn\");\n\n var cluster = new KubernetesCluster(\"cluster\", KubernetesClusterArgs.builder()\n .version(\"1.29.1\")\n .cni(\"cilium\")\n .privateNetworkId(pn.id())\n .deleteAdditionalResources(false)\n .build());\n\n var pool = new KubernetesNodePool(\"pool\", KubernetesNodePoolArgs.builder()\n .clusterId(cluster.id())\n .nodeType(\"DEV1-M\")\n .size(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pn:\n type: scaleway:VpcPrivateNetwork\n cluster:\n type: scaleway:KubernetesCluster\n properties:\n version: 1.29.1\n cni: cilium\n privateNetworkId: ${pn.id}\n deleteAdditionalResources: false\n pool:\n type: scaleway:KubernetesNodePool\n properties:\n clusterId: ${cluster.id}\n nodeType: DEV1-M\n size: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Multicloud\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst cluster = new scaleway.KubernetesCluster(\"cluster\", {\n type: \"multicloud\",\n version: \"1.29.1\",\n cni: \"kilo\",\n deleteAdditionalResources: false,\n});\nconst pool = new scaleway.KubernetesNodePool(\"pool\", {\n clusterId: cluster.id,\n nodeType: \"external\",\n size: 0,\n minSize: 0,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ncluster = scaleway.KubernetesCluster(\"cluster\",\n type=\"multicloud\",\n version=\"1.29.1\",\n cni=\"kilo\",\n delete_additional_resources=False)\npool = scaleway.KubernetesNodePool(\"pool\",\n cluster_id=cluster.id,\n node_type=\"external\",\n size=0,\n min_size=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cluster = new Scaleway.KubernetesCluster(\"cluster\", new()\n {\n Type = \"multicloud\",\n Version = \"1.29.1\",\n Cni = \"kilo\",\n DeleteAdditionalResources = false,\n });\n\n var pool = new Scaleway.KubernetesNodePool(\"pool\", new()\n {\n ClusterId = cluster.Id,\n NodeType = \"external\",\n Size = 0,\n MinSize = 0,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcluster, err := scaleway.NewKubernetesCluster(ctx, \"cluster\", \u0026scaleway.KubernetesClusterArgs{\n\t\t\tType: pulumi.String(\"multicloud\"),\n\t\t\tVersion: pulumi.String(\"1.29.1\"),\n\t\t\tCni: pulumi.String(\"kilo\"),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewKubernetesNodePool(ctx, \"pool\", \u0026scaleway.KubernetesNodePoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tNodeType: pulumi.String(\"external\"),\n\t\t\tSize: pulumi.Int(0),\n\t\t\tMinSize: pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.KubernetesCluster;\nimport com.pulumi.scaleway.KubernetesClusterArgs;\nimport com.pulumi.scaleway.KubernetesNodePool;\nimport com.pulumi.scaleway.KubernetesNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 cluster = new KubernetesCluster(\"cluster\", KubernetesClusterArgs.builder()\n .type(\"multicloud\")\n .version(\"1.29.1\")\n .cni(\"kilo\")\n .deleteAdditionalResources(false)\n .build());\n\n var pool = new KubernetesNodePool(\"pool\", KubernetesNodePoolArgs.builder()\n .clusterId(cluster.id())\n .nodeType(\"external\")\n .size(0)\n .minSize(0)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cluster:\n type: scaleway:KubernetesCluster\n properties:\n type: multicloud\n version: 1.29.1\n cni: kilo\n deleteAdditionalResources: false\n pool:\n type: scaleway:KubernetesNodePool\n properties:\n clusterId: ${cluster.id}\n nodeType: external\n size: 0\n minSize: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nFor a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to this guide.\n\n### With additional configuration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst pn = new scaleway.VpcPrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.KubernetesCluster(\"cluster\", {\n description: \"cluster made in terraform\",\n version: \"1.29.1\",\n cni: \"calico\",\n tags: [\"terraform\"],\n privateNetworkId: pn.id,\n deleteAdditionalResources: false,\n autoscalerConfig: {\n disableScaleDown: false,\n scaleDownDelayAfterAdd: \"5m\",\n estimator: \"binpacking\",\n expander: \"random\",\n ignoreDaemonsetsUtilization: true,\n balanceSimilarNodeGroups: true,\n expendablePodsPriorityCutoff: -5,\n },\n});\nconst pool = new scaleway.KubernetesNodePool(\"pool\", {\n clusterId: cluster.id,\n nodeType: \"DEV1-M\",\n size: 3,\n autoscaling: true,\n autohealing: true,\n minSize: 1,\n maxSize: 5,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn = scaleway.VpcPrivateNetwork(\"pn\")\ncluster = scaleway.KubernetesCluster(\"cluster\",\n description=\"cluster made in terraform\",\n version=\"1.29.1\",\n cni=\"calico\",\n tags=[\"terraform\"],\n private_network_id=pn.id,\n delete_additional_resources=False,\n autoscaler_config=scaleway.KubernetesClusterAutoscalerConfigArgs(\n disable_scale_down=False,\n scale_down_delay_after_add=\"5m\",\n estimator=\"binpacking\",\n expander=\"random\",\n ignore_daemonsets_utilization=True,\n balance_similar_node_groups=True,\n expendable_pods_priority_cutoff=-5,\n ))\npool = scaleway.KubernetesNodePool(\"pool\",\n cluster_id=cluster.id,\n node_type=\"DEV1-M\",\n size=3,\n autoscaling=True,\n autohealing=True,\n min_size=1,\n max_size=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pn = new Scaleway.VpcPrivateNetwork(\"pn\");\n\n var cluster = new Scaleway.KubernetesCluster(\"cluster\", new()\n {\n Description = \"cluster made in terraform\",\n Version = \"1.29.1\",\n Cni = \"calico\",\n Tags = new[]\n {\n \"terraform\",\n },\n PrivateNetworkId = pn.Id,\n DeleteAdditionalResources = false,\n AutoscalerConfig = new Scaleway.Inputs.KubernetesClusterAutoscalerConfigArgs\n {\n DisableScaleDown = false,\n ScaleDownDelayAfterAdd = \"5m\",\n Estimator = \"binpacking\",\n Expander = \"random\",\n IgnoreDaemonsetsUtilization = true,\n BalanceSimilarNodeGroups = true,\n ExpendablePodsPriorityCutoff = -5,\n },\n });\n\n var pool = new Scaleway.KubernetesNodePool(\"pool\", new()\n {\n ClusterId = cluster.Id,\n NodeType = \"DEV1-M\",\n Size = 3,\n Autoscaling = true,\n Autohealing = true,\n MinSize = 1,\n MaxSize = 5,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := scaleway.NewKubernetesCluster(ctx, \"cluster\", \u0026scaleway.KubernetesClusterArgs{\n\t\t\tDescription: pulumi.String(\"cluster made in terraform\"),\n\t\t\tVersion: pulumi.String(\"1.29.1\"),\n\t\t\tCni: pulumi.String(\"calico\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform\"),\n\t\t\t},\n\t\t\tPrivateNetworkId: pn.ID(),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t\tAutoscalerConfig: \u0026scaleway.KubernetesClusterAutoscalerConfigArgs{\n\t\t\t\tDisableScaleDown: pulumi.Bool(false),\n\t\t\t\tScaleDownDelayAfterAdd: pulumi.String(\"5m\"),\n\t\t\t\tEstimator: pulumi.String(\"binpacking\"),\n\t\t\t\tExpander: pulumi.String(\"random\"),\n\t\t\t\tIgnoreDaemonsetsUtilization: pulumi.Bool(true),\n\t\t\t\tBalanceSimilarNodeGroups: pulumi.Bool(true),\n\t\t\t\tExpendablePodsPriorityCutoff: int(-5),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewKubernetesNodePool(ctx, \"pool\", \u0026scaleway.KubernetesNodePoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tNodeType: pulumi.String(\"DEV1-M\"),\n\t\t\tSize: pulumi.Int(3),\n\t\t\tAutoscaling: pulumi.Bool(true),\n\t\t\tAutohealing: pulumi.Bool(true),\n\t\t\tMinSize: pulumi.Int(1),\n\t\t\tMaxSize: pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.VpcPrivateNetwork;\nimport com.pulumi.scaleway.KubernetesCluster;\nimport com.pulumi.scaleway.KubernetesClusterArgs;\nimport com.pulumi.scaleway.inputs.KubernetesClusterAutoscalerConfigArgs;\nimport com.pulumi.scaleway.KubernetesNodePool;\nimport com.pulumi.scaleway.KubernetesNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 pn = new VpcPrivateNetwork(\"pn\");\n\n var cluster = new KubernetesCluster(\"cluster\", KubernetesClusterArgs.builder()\n .description(\"cluster made in terraform\")\n .version(\"1.29.1\")\n .cni(\"calico\")\n .tags(\"terraform\")\n .privateNetworkId(pn.id())\n .deleteAdditionalResources(false)\n .autoscalerConfig(KubernetesClusterAutoscalerConfigArgs.builder()\n .disableScaleDown(false)\n .scaleDownDelayAfterAdd(\"5m\")\n .estimator(\"binpacking\")\n .expander(\"random\")\n .ignoreDaemonsetsUtilization(true)\n .balanceSimilarNodeGroups(true)\n .expendablePodsPriorityCutoff(\"TODO: GenUnaryOpExpression\")\n .build())\n .build());\n\n var pool = new KubernetesNodePool(\"pool\", KubernetesNodePoolArgs.builder()\n .clusterId(cluster.id())\n .nodeType(\"DEV1-M\")\n .size(3)\n .autoscaling(true)\n .autohealing(true)\n .minSize(1)\n .maxSize(5)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pn:\n type: scaleway:VpcPrivateNetwork\n cluster:\n type: scaleway:KubernetesCluster\n properties:\n description: cluster made in terraform\n version: 1.29.1\n cni: calico\n tags:\n - terraform\n privateNetworkId: ${pn.id}\n deleteAdditionalResources: false\n autoscalerConfig:\n disableScaleDown: false\n scaleDownDelayAfterAdd: 5m\n estimator: binpacking\n expander: random\n ignoreDaemonsetsUtilization: true\n balanceSimilarNodeGroups: true\n expendablePodsPriorityCutoff: -5\n pool:\n type: scaleway:KubernetesNodePool\n properties:\n clusterId: ${cluster.id}\n nodeType: DEV1-M\n size: 3\n autoscaling: true\n autohealing: true\n minSize: 1\n maxSize: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Deprecation of default_pool\n\n`default_pool` is deprecated in favour the `scaleway.KubernetesNodePool` resource. Here is a migration example.\n\nBefore:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n cluster:\n type: scaleway:KubernetesCluster\n properties:\n cni: cilium\n defaultPool:\n - nodeType: DEV1-M\n size: 1\n version: 1.18.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAfter:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst cluster = new scaleway.KubernetesCluster(\"cluster\", {\n version: \"1.18.0\",\n cni: \"cilium\",\n});\nconst _default = new scaleway.KubernetesNodePool(\"default\", {\n clusterId: scaleway_k8s_cluster.jack.id,\n nodeType: \"DEV1-M\",\n size: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ncluster = scaleway.KubernetesCluster(\"cluster\",\n version=\"1.18.0\",\n cni=\"cilium\")\ndefault = scaleway.KubernetesNodePool(\"default\",\n cluster_id=scaleway_k8s_cluster[\"jack\"][\"id\"],\n node_type=\"DEV1-M\",\n size=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cluster = new Scaleway.KubernetesCluster(\"cluster\", new()\n {\n Version = \"1.18.0\",\n Cni = \"cilium\",\n });\n\n var @default = new Scaleway.KubernetesNodePool(\"default\", new()\n {\n ClusterId = scaleway_k8s_cluster.Jack.Id,\n NodeType = \"DEV1-M\",\n Size = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scaleway.NewKubernetesCluster(ctx, \"cluster\", \u0026scaleway.KubernetesClusterArgs{\n\t\t\tVersion: pulumi.String(\"1.18.0\"),\n\t\t\tCni: pulumi.String(\"cilium\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewKubernetesNodePool(ctx, \"default\", \u0026scaleway.KubernetesNodePoolArgs{\n\t\t\tClusterId: pulumi.Any(scaleway_k8s_cluster.Jack.Id),\n\t\t\tNodeType: pulumi.String(\"DEV1-M\"),\n\t\t\tSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.KubernetesCluster;\nimport com.pulumi.scaleway.KubernetesClusterArgs;\nimport com.pulumi.scaleway.KubernetesNodePool;\nimport com.pulumi.scaleway.KubernetesNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 cluster = new KubernetesCluster(\"cluster\", KubernetesClusterArgs.builder()\n .version(\"1.18.0\")\n .cni(\"cilium\")\n .build());\n\n var default_ = new KubernetesNodePool(\"default\", KubernetesNodePoolArgs.builder()\n .clusterId(scaleway_k8s_cluster.jack().id())\n .nodeType(\"DEV1-M\")\n .size(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cluster:\n type: scaleway:KubernetesCluster\n properties:\n version: 1.18.0\n cni: cilium\n default:\n type: scaleway:KubernetesNodePool\n properties:\n clusterId: ${scaleway_k8s_cluster.jack.id}\n nodeType: DEV1-M\n size: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nOnce you have moved all the `default_pool` into their own object, you will need to import them. If your pool had the ID 11111111-1111-1111-1111-111111111111 in the `fr-par` region, you can import it by typing:\n\n```bash\nterraform import scaleway_k8s_pool.default fr-par/11111111-1111-1111-1111-111111111111\n```\n\nThen you will only need to type `pulumi up` to have a smooth migration.\n\n## Import\n\nKubernetes clusters can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/kubernetesCluster:KubernetesCluster mycluster fr-par/11111111-1111-1111-1111-111111111111\n```\n\n", "properties": { "admissionPlugins": { "type": "array", @@ -15588,7 +15710,7 @@ } }, "scaleway:index/loadbalancer:Loadbalancer": { - "description": "Creates and manages Scaleway Load Balancers.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/network/load-balancer/concepts/#load-balancers) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-list-load-balancers).\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.LoadbalancerIp(\"main\", {zone: \"fr-par-1\"});\nconst base = new scaleway.Loadbalancer(\"base\", {\n ipIds: [main.id],\n zone: main.zone,\n type: \"LB-S\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.LoadbalancerIp(\"main\", zone=\"fr-par-1\")\nbase = scaleway.Loadbalancer(\"base\",\n ip_ids=[main.id],\n zone=main.zone,\n type=\"LB-S\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Scaleway.LoadbalancerIp(\"main\", new()\n {\n Zone = \"fr-par-1\",\n });\n\n var @base = new Scaleway.Loadbalancer(\"base\", new()\n {\n IpIds = new[]\n {\n main.Id,\n },\n Zone = main.Zone,\n Type = \"LB-S\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := scaleway.NewLoadbalancerIp(ctx, \"main\", \u0026scaleway.LoadbalancerIpArgs{\n\t\t\tZone: pulumi.String(\"fr-par-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewLoadbalancer(ctx, \"base\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tmain.ID(),\n\t\t\t},\n\t\t\tZone: main.Zone,\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.LoadbalancerIp;\nimport com.pulumi.scaleway.LoadbalancerIpArgs;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new LoadbalancerIp(\"main\", LoadbalancerIpArgs.builder()\n .zone(\"fr-par-1\")\n .build());\n\n var base = new Loadbalancer(\"base\", LoadbalancerArgs.builder()\n .ipIds(main.id())\n .zone(main.zone())\n .type(\"LB-S\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:LoadbalancerIp\n properties:\n zone: fr-par-1\n base:\n type: scaleway:Loadbalancer\n properties:\n ipIds:\n - ${main.id}\n zone: ${main.zone}\n type: LB-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private LB\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst base = new scaleway.Loadbalancer(\"base\", {\n assignFlexibleIp: false,\n type: \"LB-S\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbase = scaleway.Loadbalancer(\"base\",\n assign_flexible_ip=False,\n type=\"LB-S\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @base = new Scaleway.Loadbalancer(\"base\", new()\n {\n AssignFlexibleIp = false,\n Type = \"LB-S\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scaleway.NewLoadbalancer(ctx, \"base\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tAssignFlexibleIp: pulumi.Bool(false),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var base = new Loadbalancer(\"base\", LoadbalancerArgs.builder()\n .assignFlexibleIp(false)\n .type(\"LB-S\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n base:\n type: scaleway:Loadbalancer\n properties:\n assignFlexibleIp: false\n type: LB-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPv6\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst v4 = new scaleway.LoadbalancerIp(\"v4\", {});\nconst v6 = new scaleway.LoadbalancerIp(\"v6\", {isIpv6: true});\nconst main = new scaleway.Loadbalancer(\"main\", {\n ipIds: [\n v4.id,\n v6.id,\n ],\n type: \"LB-S\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nv4 = scaleway.LoadbalancerIp(\"v4\")\nv6 = scaleway.LoadbalancerIp(\"v6\", is_ipv6=True)\nmain = scaleway.Loadbalancer(\"main\",\n ip_ids=[\n v4.id,\n v6.id,\n ],\n type=\"LB-S\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var v4 = new Scaleway.LoadbalancerIp(\"v4\");\n\n var v6 = new Scaleway.LoadbalancerIp(\"v6\", new()\n {\n IsIpv6 = true,\n });\n\n var main = new Scaleway.Loadbalancer(\"main\", new()\n {\n IpIds = new[]\n {\n v4.Id,\n v6.Id,\n },\n Type = \"LB-S\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tv4, err := scaleway.NewLoadbalancerIp(ctx, \"v4\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tv6, err := scaleway.NewLoadbalancerIp(ctx, \"v6\", \u0026scaleway.LoadbalancerIpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewLoadbalancer(ctx, \"main\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tv4.ID(),\n\t\t\t\tv6.ID(),\n\t\t\t},\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.LoadbalancerIp;\nimport com.pulumi.scaleway.LoadbalancerIpArgs;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 v4 = new LoadbalancerIp(\"v4\");\n\n var v6 = new LoadbalancerIp(\"v6\", LoadbalancerIpArgs.builder()\n .isIpv6(true)\n .build());\n\n var main = new Loadbalancer(\"main\", LoadbalancerArgs.builder()\n .ipIds( \n v4.id(),\n v6.id())\n .type(\"LB-S\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n v4:\n type: scaleway:LoadbalancerIp\n v6:\n type: scaleway:LoadbalancerIp\n properties:\n isIpv6: true\n main:\n type: scaleway:Loadbalancer\n properties:\n ipIds:\n - ${v4.id}\n - ${v6.id}\n type: LB-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Multiple configurations\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n//## IP for Public Gateway\nconst mainVpcPublicGatewayIp = new scaleway.VpcPublicGatewayIp(\"mainVpcPublicGatewayIp\", {});\n//## Scaleway Private Network\nconst mainVpcPrivateNetwork = new scaleway.VpcPrivateNetwork(\"mainVpcPrivateNetwork\", {});\n//## VPC Public Gateway Network\nconst mainVpcPublicGateway = new scaleway.VpcPublicGateway(\"mainVpcPublicGateway\", {\n type: \"VPC-GW-S\",\n ipId: mainVpcPublicGatewayIp.id,\n});\n//## VPC Public Gateway Network DHCP config\nconst mainVpcPublicGatewayDhcp = new scaleway.VpcPublicGatewayDhcp(\"mainVpcPublicGatewayDhcp\", {subnet: \"10.0.0.0/24\"});\n//## VPC Gateway Network\nconst mainVpcGatewayNetwork = new scaleway.VpcGatewayNetwork(\"mainVpcGatewayNetwork\", {\n gatewayId: mainVpcPublicGateway.id,\n privateNetworkId: mainVpcPrivateNetwork.id,\n dhcpId: mainVpcPublicGatewayDhcp.id,\n cleanupDhcp: true,\n enableMasquerade: true,\n});\n//## Scaleway Instance\nconst mainInstanceServer = new scaleway.InstanceServer(\"mainInstanceServer\", {\n type: \"DEV1-S\",\n image: \"debian_bullseye\",\n enableIpv6: false,\n privateNetworks: [{\n pnId: mainVpcPrivateNetwork.id,\n }],\n});\n//## IP for LB IP\nconst mainLoadbalancerIp = new scaleway.LoadbalancerIp(\"mainLoadbalancerIp\", {});\n//## Scaleway Private Network\nconst mainIndex_vpcPrivateNetworkVpcPrivateNetwork = new scaleway.VpcPrivateNetwork(\"mainIndex/vpcPrivateNetworkVpcPrivateNetwork\", {});\n//## Scaleway Load Balancer\nconst mainLoadbalancer = new scaleway.Loadbalancer(\"mainLoadbalancer\", {\n ipId: mainLoadbalancerIp.id,\n type: \"LB-S\",\n privateNetworks: [{\n privateNetworkId: mainVpcPrivateNetwork.id,\n dhcpConfig: true,\n }],\n}, {\n dependsOn: [mainVpcPublicGateway],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### IP for Public Gateway\nmain_vpc_public_gateway_ip = scaleway.VpcPublicGatewayIp(\"mainVpcPublicGatewayIp\")\n### Scaleway Private Network\nmain_vpc_private_network = scaleway.VpcPrivateNetwork(\"mainVpcPrivateNetwork\")\n### VPC Public Gateway Network\nmain_vpc_public_gateway = scaleway.VpcPublicGateway(\"mainVpcPublicGateway\",\n type=\"VPC-GW-S\",\n ip_id=main_vpc_public_gateway_ip.id)\n### VPC Public Gateway Network DHCP config\nmain_vpc_public_gateway_dhcp = scaleway.VpcPublicGatewayDhcp(\"mainVpcPublicGatewayDhcp\", subnet=\"10.0.0.0/24\")\n### VPC Gateway Network\nmain_vpc_gateway_network = scaleway.VpcGatewayNetwork(\"mainVpcGatewayNetwork\",\n gateway_id=main_vpc_public_gateway.id,\n private_network_id=main_vpc_private_network.id,\n dhcp_id=main_vpc_public_gateway_dhcp.id,\n cleanup_dhcp=True,\n enable_masquerade=True)\n### Scaleway Instance\nmain_instance_server = scaleway.InstanceServer(\"mainInstanceServer\",\n type=\"DEV1-S\",\n image=\"debian_bullseye\",\n enable_ipv6=False,\n private_networks=[scaleway.InstanceServerPrivateNetworkArgs(\n pn_id=main_vpc_private_network.id,\n )])\n### IP for LB IP\nmain_loadbalancer_ip = scaleway.LoadbalancerIp(\"mainLoadbalancerIp\")\n### Scaleway Private Network\nmain_index_vpc_private_network_vpc_private_network = scaleway.VpcPrivateNetwork(\"mainIndex/vpcPrivateNetworkVpcPrivateNetwork\")\n### Scaleway Load Balancer\nmain_loadbalancer = scaleway.Loadbalancer(\"mainLoadbalancer\",\n ip_id=main_loadbalancer_ip.id,\n type=\"LB-S\",\n private_networks=[scaleway.LoadbalancerPrivateNetworkArgs(\n private_network_id=main_vpc_private_network.id,\n dhcp_config=True,\n )],\n opts = pulumi.ResourceOptions(depends_on=[main_vpc_public_gateway]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n //## IP for Public Gateway\n var mainVpcPublicGatewayIp = new Scaleway.VpcPublicGatewayIp(\"mainVpcPublicGatewayIp\");\n\n //## Scaleway Private Network\n var mainVpcPrivateNetwork = new Scaleway.VpcPrivateNetwork(\"mainVpcPrivateNetwork\");\n\n //## VPC Public Gateway Network\n var mainVpcPublicGateway = new Scaleway.VpcPublicGateway(\"mainVpcPublicGateway\", new()\n {\n Type = \"VPC-GW-S\",\n IpId = mainVpcPublicGatewayIp.Id,\n });\n\n //## VPC Public Gateway Network DHCP config\n var mainVpcPublicGatewayDhcp = new Scaleway.VpcPublicGatewayDhcp(\"mainVpcPublicGatewayDhcp\", new()\n {\n Subnet = \"10.0.0.0/24\",\n });\n\n //## VPC Gateway Network\n var mainVpcGatewayNetwork = new Scaleway.VpcGatewayNetwork(\"mainVpcGatewayNetwork\", new()\n {\n GatewayId = mainVpcPublicGateway.Id,\n PrivateNetworkId = mainVpcPrivateNetwork.Id,\n DhcpId = mainVpcPublicGatewayDhcp.Id,\n CleanupDhcp = true,\n EnableMasquerade = true,\n });\n\n //## Scaleway Instance\n var mainInstanceServer = new Scaleway.InstanceServer(\"mainInstanceServer\", new()\n {\n Type = \"DEV1-S\",\n Image = \"debian_bullseye\",\n EnableIpv6 = false,\n PrivateNetworks = new[]\n {\n new Scaleway.Inputs.InstanceServerPrivateNetworkArgs\n {\n PnId = mainVpcPrivateNetwork.Id,\n },\n },\n });\n\n //## IP for LB IP\n var mainLoadbalancerIp = new Scaleway.LoadbalancerIp(\"mainLoadbalancerIp\");\n\n //## Scaleway Private Network\n var mainIndex_vpcPrivateNetworkVpcPrivateNetwork = new Scaleway.VpcPrivateNetwork(\"mainIndex/vpcPrivateNetworkVpcPrivateNetwork\");\n\n //## Scaleway Load Balancer\n var mainLoadbalancer = new Scaleway.Loadbalancer(\"mainLoadbalancer\", new()\n {\n IpId = mainLoadbalancerIp.Id,\n Type = \"LB-S\",\n PrivateNetworks = new[]\n {\n new Scaleway.Inputs.LoadbalancerPrivateNetworkArgs\n {\n PrivateNetworkId = mainVpcPrivateNetwork.Id,\n DhcpConfig = true,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n mainVpcPublicGateway,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## IP for Public Gateway\n\t\tmainVpcPublicGatewayIp, err := scaleway.NewVpcPublicGatewayIp(ctx, \"mainVpcPublicGatewayIp\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## Scaleway Private Network\n\t\tmainVpcPrivateNetwork, err := scaleway.NewVpcPrivateNetwork(ctx, \"mainVpcPrivateNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## VPC Public Gateway Network\n\t\tmainVpcPublicGateway, err := scaleway.NewVpcPublicGateway(ctx, \"mainVpcPublicGateway\", \u0026scaleway.VpcPublicGatewayArgs{\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: mainVpcPublicGatewayIp.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## VPC Public Gateway Network DHCP config\n\t\tmainVpcPublicGatewayDhcp, err := scaleway.NewVpcPublicGatewayDhcp(ctx, \"mainVpcPublicGatewayDhcp\", \u0026scaleway.VpcPublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## VPC Gateway Network\n\t\t_, err = scaleway.NewVpcGatewayNetwork(ctx, \"mainVpcGatewayNetwork\", \u0026scaleway.VpcGatewayNetworkArgs{\n\t\t\tGatewayId: mainVpcPublicGateway.ID(),\n\t\t\tPrivateNetworkId: mainVpcPrivateNetwork.ID(),\n\t\t\tDhcpId: mainVpcPublicGatewayDhcp.ID(),\n\t\t\tCleanupDhcp: pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## Scaleway Instance\n\t\t_, err = scaleway.NewInstanceServer(ctx, \"mainInstanceServer\", \u0026scaleway.InstanceServerArgs{\n\t\t\tType: pulumi.String(\"DEV1-S\"),\n\t\t\tImage: pulumi.String(\"debian_bullseye\"),\n\t\t\tEnableIpv6: pulumi.Bool(false),\n\t\t\tPrivateNetworks: scaleway.InstanceServerPrivateNetworkArray{\n\t\t\t\t\u0026scaleway.InstanceServerPrivateNetworkArgs{\n\t\t\t\t\tPnId: mainVpcPrivateNetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## IP for LB IP\n\t\tmainLoadbalancerIp, err := scaleway.NewLoadbalancerIp(ctx, \"mainLoadbalancerIp\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## Scaleway Private Network\n\t\t_, err = scaleway.NewVpcPrivateNetwork(ctx, \"mainIndex/vpcPrivateNetworkVpcPrivateNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## Scaleway Load Balancer\n\t\t_, err = scaleway.NewLoadbalancer(ctx, \"mainLoadbalancer\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tIpId: mainLoadbalancerIp.ID(),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t\tPrivateNetworks: scaleway.LoadbalancerPrivateNetworkArray{\n\t\t\t\t\u0026scaleway.LoadbalancerPrivateNetworkArgs{\n\t\t\t\t\tPrivateNetworkId: mainVpcPrivateNetwork.ID(),\n\t\t\t\t\tDhcpConfig: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmainVpcPublicGateway,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.VpcPublicGatewayIp;\nimport com.pulumi.scaleway.VpcPrivateNetwork;\nimport com.pulumi.scaleway.VpcPublicGateway;\nimport com.pulumi.scaleway.VpcPublicGatewayArgs;\nimport com.pulumi.scaleway.VpcPublicGatewayDhcp;\nimport com.pulumi.scaleway.VpcPublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.VpcGatewayNetwork;\nimport com.pulumi.scaleway.VpcGatewayNetworkArgs;\nimport com.pulumi.scaleway.InstanceServer;\nimport com.pulumi.scaleway.InstanceServerArgs;\nimport com.pulumi.scaleway.inputs.InstanceServerPrivateNetworkArgs;\nimport com.pulumi.scaleway.LoadbalancerIp;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport com.pulumi.scaleway.inputs.LoadbalancerPrivateNetworkArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n //## IP for Public Gateway\n var mainVpcPublicGatewayIp = new VpcPublicGatewayIp(\"mainVpcPublicGatewayIp\");\n\n //## Scaleway Private Network\n var mainVpcPrivateNetwork = new VpcPrivateNetwork(\"mainVpcPrivateNetwork\");\n\n //## VPC Public Gateway Network\n var mainVpcPublicGateway = new VpcPublicGateway(\"mainVpcPublicGateway\", VpcPublicGatewayArgs.builder()\n .type(\"VPC-GW-S\")\n .ipId(mainVpcPublicGatewayIp.id())\n .build());\n\n //## VPC Public Gateway Network DHCP config\n var mainVpcPublicGatewayDhcp = new VpcPublicGatewayDhcp(\"mainVpcPublicGatewayDhcp\", VpcPublicGatewayDhcpArgs.builder()\n .subnet(\"10.0.0.0/24\")\n .build());\n\n //## VPC Gateway Network\n var mainVpcGatewayNetwork = new VpcGatewayNetwork(\"mainVpcGatewayNetwork\", VpcGatewayNetworkArgs.builder()\n .gatewayId(mainVpcPublicGateway.id())\n .privateNetworkId(mainVpcPrivateNetwork.id())\n .dhcpId(mainVpcPublicGatewayDhcp.id())\n .cleanupDhcp(true)\n .enableMasquerade(true)\n .build());\n\n //## Scaleway Instance\n var mainInstanceServer = new InstanceServer(\"mainInstanceServer\", InstanceServerArgs.builder()\n .type(\"DEV1-S\")\n .image(\"debian_bullseye\")\n .enableIpv6(false)\n .privateNetworks(InstanceServerPrivateNetworkArgs.builder()\n .pnId(mainVpcPrivateNetwork.id())\n .build())\n .build());\n\n //## IP for LB IP\n var mainLoadbalancerIp = new LoadbalancerIp(\"mainLoadbalancerIp\");\n\n //## Scaleway Private Network\n var mainIndex_vpcPrivateNetworkVpcPrivateNetwork = new VpcPrivateNetwork(\"mainIndex/vpcPrivateNetworkVpcPrivateNetwork\");\n\n //## Scaleway Load Balancer\n var mainLoadbalancer = new Loadbalancer(\"mainLoadbalancer\", LoadbalancerArgs.builder()\n .ipId(mainLoadbalancerIp.id())\n .type(\"LB-S\")\n .privateNetworks(LoadbalancerPrivateNetworkArgs.builder()\n .privateNetworkId(mainVpcPrivateNetwork.id())\n .dhcpConfig(true)\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(mainVpcPublicGateway)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ### IP for Public Gateway\n mainVpcPublicGatewayIp:\n type: scaleway:VpcPublicGatewayIp\n ### Scaleway Private Network\n mainVpcPrivateNetwork:\n type: scaleway:VpcPrivateNetwork\n ### VPC Public Gateway Network\n mainVpcPublicGateway:\n type: scaleway:VpcPublicGateway\n properties:\n type: VPC-GW-S\n ipId: ${mainVpcPublicGatewayIp.id}\n ### VPC Public Gateway Network DHCP config\n mainVpcPublicGatewayDhcp:\n type: scaleway:VpcPublicGatewayDhcp\n properties:\n subnet: 10.0.0.0/24\n ### VPC Gateway Network\n mainVpcGatewayNetwork:\n type: scaleway:VpcGatewayNetwork\n properties:\n gatewayId: ${mainVpcPublicGateway.id}\n privateNetworkId: ${mainVpcPrivateNetwork.id}\n dhcpId: ${mainVpcPublicGatewayDhcp.id}\n cleanupDhcp: true\n enableMasquerade: true\n ### Scaleway Instance\n mainInstanceServer:\n type: scaleway:InstanceServer\n properties:\n type: DEV1-S\n image: debian_bullseye\n enableIpv6: false\n privateNetworks:\n - pnId: ${mainVpcPrivateNetwork.id}\n ### IP for LB IP\n mainLoadbalancerIp:\n type: scaleway:LoadbalancerIp\n ### Scaleway Private Network\n mainIndex/vpcPrivateNetworkVpcPrivateNetwork:\n type: scaleway:VpcPrivateNetwork\n ### Scaleway Load Balancer\n mainLoadbalancer:\n type: scaleway:Loadbalancer\n properties:\n ipId: ${mainLoadbalancerIp.id}\n type: LB-S\n privateNetworks:\n - privateNetworkId: ${mainVpcPrivateNetwork.id}\n dhcpConfig: true\n options:\n dependson:\n - ${mainVpcPublicGateway}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Migration\n\nIn order to migrate to other Load Balancer types, you can check upwards or downwards migration via our CLI `scw lb lb-types list`.\nThis change will not recreate your Load Balancer.\n\nPlease check our [documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-migrate-a-load-balancer) for further details\n\n## IP ID\n\nSince v1.15.0, `ip_id` is a required field. This means that now a separate `scaleway.LoadbalancerIp` is required.\nWhen importing, the IP needs to be imported as well as the Load Balancer.\nWhen upgrading to v1.15.0, you will need to create a new `scaleway.LoadbalancerIp` resource and import it.\n\nFor instance, if you had the following:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.Loadbalancer(\"main\", {\n type: \"LB-S\",\n zone: \"fr-par-1\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.Loadbalancer(\"main\",\n type=\"LB-S\",\n zone=\"fr-par-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Scaleway.Loadbalancer(\"main\", new()\n {\n Type = \"LB-S\",\n Zone = \"fr-par-1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scaleway.NewLoadbalancer(ctx, \"main\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t\tZone: pulumi.String(\"fr-par-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Loadbalancer(\"main\", LoadbalancerArgs.builder()\n .type(\"LB-S\")\n .zone(\"fr-par-1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:Loadbalancer\n properties:\n type: LB-S\n zone: fr-par-1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nYou will need to update it to:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainLoadbalancerIp = new scaleway.LoadbalancerIp(\"mainLoadbalancerIp\", {});\nconst mainLoadbalancer = new scaleway.Loadbalancer(\"mainLoadbalancer\", {\n ipId: mainLoadbalancerIp.id,\n zone: \"fr-par-1\",\n type: \"LB-S\",\n releaseIp: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_loadbalancer_ip = scaleway.LoadbalancerIp(\"mainLoadbalancerIp\")\nmain_loadbalancer = scaleway.Loadbalancer(\"mainLoadbalancer\",\n ip_id=main_loadbalancer_ip.id,\n zone=\"fr-par-1\",\n type=\"LB-S\",\n release_ip=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mainLoadbalancerIp = new Scaleway.LoadbalancerIp(\"mainLoadbalancerIp\");\n\n var mainLoadbalancer = new Scaleway.Loadbalancer(\"mainLoadbalancer\", new()\n {\n IpId = mainLoadbalancerIp.Id,\n Zone = \"fr-par-1\",\n Type = \"LB-S\",\n ReleaseIp = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainLoadbalancerIp, err := scaleway.NewLoadbalancerIp(ctx, \"mainLoadbalancerIp\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewLoadbalancer(ctx, \"mainLoadbalancer\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tIpId: mainLoadbalancerIp.ID(),\n\t\t\tZone: pulumi.String(\"fr-par-1\"),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t\tReleaseIp: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.LoadbalancerIp;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mainLoadbalancerIp = new LoadbalancerIp(\"mainLoadbalancerIp\");\n\n var mainLoadbalancer = new Loadbalancer(\"mainLoadbalancer\", LoadbalancerArgs.builder()\n .ipId(mainLoadbalancerIp.id())\n .zone(\"fr-par-1\")\n .type(\"LB-S\")\n .releaseIp(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mainLoadbalancerIp:\n type: scaleway:LoadbalancerIp\n mainLoadbalancer:\n type: scaleway:Loadbalancer\n properties:\n ipId: ${mainLoadbalancerIp.id}\n zone: fr-par-1\n type: LB-S\n releaseIp: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancers can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/loadbalancer:Loadbalancer main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\nBe aware that you will also need to import the `scaleway_lb_ip` resource.\n\n", + "description": "Creates and manages Scaleway Load Balancers.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/network/load-balancer/concepts/#load-balancers) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-list-load-balancers).\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.LoadbalancerIp(\"main\", {zone: \"fr-par-1\"});\nconst base = new scaleway.Loadbalancer(\"base\", {\n ipIds: [main.id],\n zone: main.zone,\n type: \"LB-S\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.LoadbalancerIp(\"main\", zone=\"fr-par-1\")\nbase = scaleway.Loadbalancer(\"base\",\n ip_ids=[main.id],\n zone=main.zone,\n type=\"LB-S\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Scaleway.LoadbalancerIp(\"main\", new()\n {\n Zone = \"fr-par-1\",\n });\n\n var @base = new Scaleway.Loadbalancer(\"base\", new()\n {\n IpIds = new[]\n {\n main.Id,\n },\n Zone = main.Zone,\n Type = \"LB-S\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := scaleway.NewLoadbalancerIp(ctx, \"main\", \u0026scaleway.LoadbalancerIpArgs{\n\t\t\tZone: pulumi.String(\"fr-par-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewLoadbalancer(ctx, \"base\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tmain.ID(),\n\t\t\t},\n\t\t\tZone: main.Zone,\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.LoadbalancerIp;\nimport com.pulumi.scaleway.LoadbalancerIpArgs;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new LoadbalancerIp(\"main\", LoadbalancerIpArgs.builder()\n .zone(\"fr-par-1\")\n .build());\n\n var base = new Loadbalancer(\"base\", LoadbalancerArgs.builder()\n .ipIds(main.id())\n .zone(main.zone())\n .type(\"LB-S\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:LoadbalancerIp\n properties:\n zone: fr-par-1\n base:\n type: scaleway:Loadbalancer\n properties:\n ipIds:\n - ${main.id}\n zone: ${main.zone}\n type: LB-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private LB\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst base = new scaleway.Loadbalancer(\"base\", {\n assignFlexibleIp: false,\n type: \"LB-S\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbase = scaleway.Loadbalancer(\"base\",\n assign_flexible_ip=False,\n type=\"LB-S\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @base = new Scaleway.Loadbalancer(\"base\", new()\n {\n AssignFlexibleIp = false,\n Type = \"LB-S\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scaleway.NewLoadbalancer(ctx, \"base\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tAssignFlexibleIp: pulumi.Bool(false),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var base = new Loadbalancer(\"base\", LoadbalancerArgs.builder()\n .assignFlexibleIp(false)\n .type(\"LB-S\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n base:\n type: scaleway:Loadbalancer\n properties:\n assignFlexibleIp: false\n type: LB-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPv6\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst v4 = new scaleway.LoadbalancerIp(\"v4\", {});\nconst v6 = new scaleway.LoadbalancerIp(\"v6\", {isIpv6: true});\nconst main = new scaleway.Loadbalancer(\"main\", {\n ipIds: [\n v4.id,\n v6.id,\n ],\n type: \"LB-S\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nv4 = scaleway.LoadbalancerIp(\"v4\")\nv6 = scaleway.LoadbalancerIp(\"v6\", is_ipv6=True)\nmain = scaleway.Loadbalancer(\"main\",\n ip_ids=[\n v4.id,\n v6.id,\n ],\n type=\"LB-S\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var v4 = new Scaleway.LoadbalancerIp(\"v4\");\n\n var v6 = new Scaleway.LoadbalancerIp(\"v6\", new()\n {\n IsIpv6 = true,\n });\n\n var main = new Scaleway.Loadbalancer(\"main\", new()\n {\n IpIds = new[]\n {\n v4.Id,\n v6.Id,\n },\n Type = \"LB-S\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tv4, err := scaleway.NewLoadbalancerIp(ctx, \"v4\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tv6, err := scaleway.NewLoadbalancerIp(ctx, \"v6\", \u0026scaleway.LoadbalancerIpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewLoadbalancer(ctx, \"main\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tv4.ID(),\n\t\t\t\tv6.ID(),\n\t\t\t},\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.LoadbalancerIp;\nimport com.pulumi.scaleway.LoadbalancerIpArgs;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 v4 = new LoadbalancerIp(\"v4\");\n\n var v6 = new LoadbalancerIp(\"v6\", LoadbalancerIpArgs.builder()\n .isIpv6(true)\n .build());\n\n var main = new Loadbalancer(\"main\", LoadbalancerArgs.builder()\n .ipIds( \n v4.id(),\n v6.id())\n .type(\"LB-S\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n v4:\n type: scaleway:LoadbalancerIp\n v6:\n type: scaleway:LoadbalancerIp\n properties:\n isIpv6: true\n main:\n type: scaleway:Loadbalancer\n properties:\n ipIds:\n - ${v4.id}\n - ${v6.id}\n type: LB-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPAM IDs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.Vpc;\nimport com.pulumi.scaleway.VpcPrivateNetwork;\nimport com.pulumi.scaleway.VpcPrivateNetworkArgs;\nimport com.pulumi.scaleway.inputs.VpcPrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.IpamIp;\nimport com.pulumi.scaleway.IpamIpArgs;\nimport com.pulumi.scaleway.inputs.IpamIpSourceArgs;\nimport com.pulumi.scaleway.LoadbalancerIp;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport com.pulumi.scaleway.inputs.LoadbalancerPrivateNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 vpc01 = new Vpc(\"vpc01\");\n\n var pn01 = new VpcPrivateNetwork(\"pn01\", VpcPrivateNetworkArgs.builder()\n .vpcId(vpc01.id())\n .ipv4Subnet(VpcPrivateNetworkIpv4SubnetArgs.builder()\n .subnet(\"172.16.32.0/22\")\n .build())\n .build());\n\n var ip01 = new IpamIp(\"ip01\", IpamIpArgs.builder()\n .address(\"172.16.32.7\")\n .sources(IpamIpSourceArgs.builder()\n .privateNetworkId(pn01.id())\n .build())\n .build());\n\n var v4 = new LoadbalancerIp(\"v4\");\n\n var main = new Loadbalancer(\"main\", LoadbalancerArgs.builder()\n .ipIds(v4.id())\n .type(\"LB-S\")\n .privateNetworks(LoadbalancerPrivateNetworkArgs.builder()\n .privateNetworkId(pn01.id())\n .ipamIds(ip01.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vpc01:\n type: scaleway:Vpc\n pn01:\n type: scaleway:VpcPrivateNetwork\n properties:\n vpcId: ${vpc01.id}\n ipv4Subnet:\n subnet: 172.16.32.0/22\n ip01:\n type: scaleway:IpamIp\n properties:\n address: 172.16.32.7\n sources:\n - privateNetworkId: ${pn01.id}\n v4:\n type: scaleway:LoadbalancerIp\n main:\n type: scaleway:Loadbalancer\n properties:\n ipIds:\n - ${v4.id}\n type: LB-S\n privateNetworks:\n - privateNetworkId: ${pn01.id}\n ipamIds:\n - ${ip01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Multiple configurations\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n//## IP for Public Gateway\nconst mainVpcPublicGatewayIp = new scaleway.VpcPublicGatewayIp(\"mainVpcPublicGatewayIp\", {});\n//## Scaleway Private Network\nconst mainVpcPrivateNetwork = new scaleway.VpcPrivateNetwork(\"mainVpcPrivateNetwork\", {});\n//## VPC Public Gateway Network\nconst mainVpcPublicGateway = new scaleway.VpcPublicGateway(\"mainVpcPublicGateway\", {\n type: \"VPC-GW-S\",\n ipId: mainVpcPublicGatewayIp.id,\n});\n//## VPC Public Gateway Network DHCP config\nconst mainVpcPublicGatewayDhcp = new scaleway.VpcPublicGatewayDhcp(\"mainVpcPublicGatewayDhcp\", {subnet: \"10.0.0.0/24\"});\n//## VPC Gateway Network\nconst mainVpcGatewayNetwork = new scaleway.VpcGatewayNetwork(\"mainVpcGatewayNetwork\", {\n gatewayId: mainVpcPublicGateway.id,\n privateNetworkId: mainVpcPrivateNetwork.id,\n dhcpId: mainVpcPublicGatewayDhcp.id,\n cleanupDhcp: true,\n enableMasquerade: true,\n});\n//## Scaleway Instance\nconst mainInstanceServer = new scaleway.InstanceServer(\"mainInstanceServer\", {\n type: \"DEV1-S\",\n image: \"debian_bullseye\",\n enableIpv6: false,\n privateNetworks: [{\n pnId: mainVpcPrivateNetwork.id,\n }],\n});\n//## IP for LB IP\nconst mainLoadbalancerIp = new scaleway.LoadbalancerIp(\"mainLoadbalancerIp\", {});\n//## Scaleway Private Network\nconst mainIndex_vpcPrivateNetworkVpcPrivateNetwork = new scaleway.VpcPrivateNetwork(\"mainIndex/vpcPrivateNetworkVpcPrivateNetwork\", {});\n//## Scaleway Load Balancer\nconst mainLoadbalancer = new scaleway.Loadbalancer(\"mainLoadbalancer\", {\n ipId: mainLoadbalancerIp.id,\n type: \"LB-S\",\n privateNetworks: [{\n privateNetworkId: mainVpcPrivateNetwork.id,\n dhcpConfig: true,\n }],\n}, {\n dependsOn: [mainVpcPublicGateway],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### IP for Public Gateway\nmain_vpc_public_gateway_ip = scaleway.VpcPublicGatewayIp(\"mainVpcPublicGatewayIp\")\n### Scaleway Private Network\nmain_vpc_private_network = scaleway.VpcPrivateNetwork(\"mainVpcPrivateNetwork\")\n### VPC Public Gateway Network\nmain_vpc_public_gateway = scaleway.VpcPublicGateway(\"mainVpcPublicGateway\",\n type=\"VPC-GW-S\",\n ip_id=main_vpc_public_gateway_ip.id)\n### VPC Public Gateway Network DHCP config\nmain_vpc_public_gateway_dhcp = scaleway.VpcPublicGatewayDhcp(\"mainVpcPublicGatewayDhcp\", subnet=\"10.0.0.0/24\")\n### VPC Gateway Network\nmain_vpc_gateway_network = scaleway.VpcGatewayNetwork(\"mainVpcGatewayNetwork\",\n gateway_id=main_vpc_public_gateway.id,\n private_network_id=main_vpc_private_network.id,\n dhcp_id=main_vpc_public_gateway_dhcp.id,\n cleanup_dhcp=True,\n enable_masquerade=True)\n### Scaleway Instance\nmain_instance_server = scaleway.InstanceServer(\"mainInstanceServer\",\n type=\"DEV1-S\",\n image=\"debian_bullseye\",\n enable_ipv6=False,\n private_networks=[scaleway.InstanceServerPrivateNetworkArgs(\n pn_id=main_vpc_private_network.id,\n )])\n### IP for LB IP\nmain_loadbalancer_ip = scaleway.LoadbalancerIp(\"mainLoadbalancerIp\")\n### Scaleway Private Network\nmain_index_vpc_private_network_vpc_private_network = scaleway.VpcPrivateNetwork(\"mainIndex/vpcPrivateNetworkVpcPrivateNetwork\")\n### Scaleway Load Balancer\nmain_loadbalancer = scaleway.Loadbalancer(\"mainLoadbalancer\",\n ip_id=main_loadbalancer_ip.id,\n type=\"LB-S\",\n private_networks=[scaleway.LoadbalancerPrivateNetworkArgs(\n private_network_id=main_vpc_private_network.id,\n dhcp_config=True,\n )],\n opts = pulumi.ResourceOptions(depends_on=[main_vpc_public_gateway]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n //## IP for Public Gateway\n var mainVpcPublicGatewayIp = new Scaleway.VpcPublicGatewayIp(\"mainVpcPublicGatewayIp\");\n\n //## Scaleway Private Network\n var mainVpcPrivateNetwork = new Scaleway.VpcPrivateNetwork(\"mainVpcPrivateNetwork\");\n\n //## VPC Public Gateway Network\n var mainVpcPublicGateway = new Scaleway.VpcPublicGateway(\"mainVpcPublicGateway\", new()\n {\n Type = \"VPC-GW-S\",\n IpId = mainVpcPublicGatewayIp.Id,\n });\n\n //## VPC Public Gateway Network DHCP config\n var mainVpcPublicGatewayDhcp = new Scaleway.VpcPublicGatewayDhcp(\"mainVpcPublicGatewayDhcp\", new()\n {\n Subnet = \"10.0.0.0/24\",\n });\n\n //## VPC Gateway Network\n var mainVpcGatewayNetwork = new Scaleway.VpcGatewayNetwork(\"mainVpcGatewayNetwork\", new()\n {\n GatewayId = mainVpcPublicGateway.Id,\n PrivateNetworkId = mainVpcPrivateNetwork.Id,\n DhcpId = mainVpcPublicGatewayDhcp.Id,\n CleanupDhcp = true,\n EnableMasquerade = true,\n });\n\n //## Scaleway Instance\n var mainInstanceServer = new Scaleway.InstanceServer(\"mainInstanceServer\", new()\n {\n Type = \"DEV1-S\",\n Image = \"debian_bullseye\",\n EnableIpv6 = false,\n PrivateNetworks = new[]\n {\n new Scaleway.Inputs.InstanceServerPrivateNetworkArgs\n {\n PnId = mainVpcPrivateNetwork.Id,\n },\n },\n });\n\n //## IP for LB IP\n var mainLoadbalancerIp = new Scaleway.LoadbalancerIp(\"mainLoadbalancerIp\");\n\n //## Scaleway Private Network\n var mainIndex_vpcPrivateNetworkVpcPrivateNetwork = new Scaleway.VpcPrivateNetwork(\"mainIndex/vpcPrivateNetworkVpcPrivateNetwork\");\n\n //## Scaleway Load Balancer\n var mainLoadbalancer = new Scaleway.Loadbalancer(\"mainLoadbalancer\", new()\n {\n IpId = mainLoadbalancerIp.Id,\n Type = \"LB-S\",\n PrivateNetworks = new[]\n {\n new Scaleway.Inputs.LoadbalancerPrivateNetworkArgs\n {\n PrivateNetworkId = mainVpcPrivateNetwork.Id,\n DhcpConfig = true,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n mainVpcPublicGateway,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## IP for Public Gateway\n\t\tmainVpcPublicGatewayIp, err := scaleway.NewVpcPublicGatewayIp(ctx, \"mainVpcPublicGatewayIp\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## Scaleway Private Network\n\t\tmainVpcPrivateNetwork, err := scaleway.NewVpcPrivateNetwork(ctx, \"mainVpcPrivateNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## VPC Public Gateway Network\n\t\tmainVpcPublicGateway, err := scaleway.NewVpcPublicGateway(ctx, \"mainVpcPublicGateway\", \u0026scaleway.VpcPublicGatewayArgs{\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: mainVpcPublicGatewayIp.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## VPC Public Gateway Network DHCP config\n\t\tmainVpcPublicGatewayDhcp, err := scaleway.NewVpcPublicGatewayDhcp(ctx, \"mainVpcPublicGatewayDhcp\", \u0026scaleway.VpcPublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## VPC Gateway Network\n\t\t_, err = scaleway.NewVpcGatewayNetwork(ctx, \"mainVpcGatewayNetwork\", \u0026scaleway.VpcGatewayNetworkArgs{\n\t\t\tGatewayId: mainVpcPublicGateway.ID(),\n\t\t\tPrivateNetworkId: mainVpcPrivateNetwork.ID(),\n\t\t\tDhcpId: mainVpcPublicGatewayDhcp.ID(),\n\t\t\tCleanupDhcp: pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## Scaleway Instance\n\t\t_, err = scaleway.NewInstanceServer(ctx, \"mainInstanceServer\", \u0026scaleway.InstanceServerArgs{\n\t\t\tType: pulumi.String(\"DEV1-S\"),\n\t\t\tImage: pulumi.String(\"debian_bullseye\"),\n\t\t\tEnableIpv6: pulumi.Bool(false),\n\t\t\tPrivateNetworks: scaleway.InstanceServerPrivateNetworkArray{\n\t\t\t\t\u0026scaleway.InstanceServerPrivateNetworkArgs{\n\t\t\t\t\tPnId: mainVpcPrivateNetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## IP for LB IP\n\t\tmainLoadbalancerIp, err := scaleway.NewLoadbalancerIp(ctx, \"mainLoadbalancerIp\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## Scaleway Private Network\n\t\t_, err = scaleway.NewVpcPrivateNetwork(ctx, \"mainIndex/vpcPrivateNetworkVpcPrivateNetwork\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## Scaleway Load Balancer\n\t\t_, err = scaleway.NewLoadbalancer(ctx, \"mainLoadbalancer\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tIpId: mainLoadbalancerIp.ID(),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t\tPrivateNetworks: scaleway.LoadbalancerPrivateNetworkArray{\n\t\t\t\t\u0026scaleway.LoadbalancerPrivateNetworkArgs{\n\t\t\t\t\tPrivateNetworkId: mainVpcPrivateNetwork.ID(),\n\t\t\t\t\tDhcpConfig: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmainVpcPublicGateway,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.VpcPublicGatewayIp;\nimport com.pulumi.scaleway.VpcPrivateNetwork;\nimport com.pulumi.scaleway.VpcPublicGateway;\nimport com.pulumi.scaleway.VpcPublicGatewayArgs;\nimport com.pulumi.scaleway.VpcPublicGatewayDhcp;\nimport com.pulumi.scaleway.VpcPublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.VpcGatewayNetwork;\nimport com.pulumi.scaleway.VpcGatewayNetworkArgs;\nimport com.pulumi.scaleway.InstanceServer;\nimport com.pulumi.scaleway.InstanceServerArgs;\nimport com.pulumi.scaleway.inputs.InstanceServerPrivateNetworkArgs;\nimport com.pulumi.scaleway.LoadbalancerIp;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport com.pulumi.scaleway.inputs.LoadbalancerPrivateNetworkArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n //## IP for Public Gateway\n var mainVpcPublicGatewayIp = new VpcPublicGatewayIp(\"mainVpcPublicGatewayIp\");\n\n //## Scaleway Private Network\n var mainVpcPrivateNetwork = new VpcPrivateNetwork(\"mainVpcPrivateNetwork\");\n\n //## VPC Public Gateway Network\n var mainVpcPublicGateway = new VpcPublicGateway(\"mainVpcPublicGateway\", VpcPublicGatewayArgs.builder()\n .type(\"VPC-GW-S\")\n .ipId(mainVpcPublicGatewayIp.id())\n .build());\n\n //## VPC Public Gateway Network DHCP config\n var mainVpcPublicGatewayDhcp = new VpcPublicGatewayDhcp(\"mainVpcPublicGatewayDhcp\", VpcPublicGatewayDhcpArgs.builder()\n .subnet(\"10.0.0.0/24\")\n .build());\n\n //## VPC Gateway Network\n var mainVpcGatewayNetwork = new VpcGatewayNetwork(\"mainVpcGatewayNetwork\", VpcGatewayNetworkArgs.builder()\n .gatewayId(mainVpcPublicGateway.id())\n .privateNetworkId(mainVpcPrivateNetwork.id())\n .dhcpId(mainVpcPublicGatewayDhcp.id())\n .cleanupDhcp(true)\n .enableMasquerade(true)\n .build());\n\n //## Scaleway Instance\n var mainInstanceServer = new InstanceServer(\"mainInstanceServer\", InstanceServerArgs.builder()\n .type(\"DEV1-S\")\n .image(\"debian_bullseye\")\n .enableIpv6(false)\n .privateNetworks(InstanceServerPrivateNetworkArgs.builder()\n .pnId(mainVpcPrivateNetwork.id())\n .build())\n .build());\n\n //## IP for LB IP\n var mainLoadbalancerIp = new LoadbalancerIp(\"mainLoadbalancerIp\");\n\n //## Scaleway Private Network\n var mainIndex_vpcPrivateNetworkVpcPrivateNetwork = new VpcPrivateNetwork(\"mainIndex/vpcPrivateNetworkVpcPrivateNetwork\");\n\n //## Scaleway Load Balancer\n var mainLoadbalancer = new Loadbalancer(\"mainLoadbalancer\", LoadbalancerArgs.builder()\n .ipId(mainLoadbalancerIp.id())\n .type(\"LB-S\")\n .privateNetworks(LoadbalancerPrivateNetworkArgs.builder()\n .privateNetworkId(mainVpcPrivateNetwork.id())\n .dhcpConfig(true)\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(mainVpcPublicGateway)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ### IP for Public Gateway\n mainVpcPublicGatewayIp:\n type: scaleway:VpcPublicGatewayIp\n ### Scaleway Private Network\n mainVpcPrivateNetwork:\n type: scaleway:VpcPrivateNetwork\n ### VPC Public Gateway Network\n mainVpcPublicGateway:\n type: scaleway:VpcPublicGateway\n properties:\n type: VPC-GW-S\n ipId: ${mainVpcPublicGatewayIp.id}\n ### VPC Public Gateway Network DHCP config\n mainVpcPublicGatewayDhcp:\n type: scaleway:VpcPublicGatewayDhcp\n properties:\n subnet: 10.0.0.0/24\n ### VPC Gateway Network\n mainVpcGatewayNetwork:\n type: scaleway:VpcGatewayNetwork\n properties:\n gatewayId: ${mainVpcPublicGateway.id}\n privateNetworkId: ${mainVpcPrivateNetwork.id}\n dhcpId: ${mainVpcPublicGatewayDhcp.id}\n cleanupDhcp: true\n enableMasquerade: true\n ### Scaleway Instance\n mainInstanceServer:\n type: scaleway:InstanceServer\n properties:\n type: DEV1-S\n image: debian_bullseye\n enableIpv6: false\n privateNetworks:\n - pnId: ${mainVpcPrivateNetwork.id}\n ### IP for LB IP\n mainLoadbalancerIp:\n type: scaleway:LoadbalancerIp\n ### Scaleway Private Network\n mainIndex/vpcPrivateNetworkVpcPrivateNetwork:\n type: scaleway:VpcPrivateNetwork\n ### Scaleway Load Balancer\n mainLoadbalancer:\n type: scaleway:Loadbalancer\n properties:\n ipId: ${mainLoadbalancerIp.id}\n type: LB-S\n privateNetworks:\n - privateNetworkId: ${mainVpcPrivateNetwork.id}\n dhcpConfig: true\n options:\n dependson:\n - ${mainVpcPublicGateway}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Migration\n\nIn order to migrate to other Load Balancer types, you can check upwards or downwards migration via our CLI `scw lb lb-types list`.\nThis change will not recreate your Load Balancer.\n\nPlease check our [documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-migrate-a-load-balancer) for further details\n\n## IP ID\n\nSince v1.15.0, `ip_id` is a required field. This means that now a separate `scaleway.LoadbalancerIp` is required.\nWhen importing, the IP needs to be imported as well as the Load Balancer.\nWhen upgrading to v1.15.0, you will need to create a new `scaleway.LoadbalancerIp` resource and import it.\n\nFor instance, if you had the following:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.Loadbalancer(\"main\", {\n type: \"LB-S\",\n zone: \"fr-par-1\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.Loadbalancer(\"main\",\n type=\"LB-S\",\n zone=\"fr-par-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Scaleway.Loadbalancer(\"main\", new()\n {\n Type = \"LB-S\",\n Zone = \"fr-par-1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scaleway.NewLoadbalancer(ctx, \"main\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t\tZone: pulumi.String(\"fr-par-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Loadbalancer(\"main\", LoadbalancerArgs.builder()\n .type(\"LB-S\")\n .zone(\"fr-par-1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:Loadbalancer\n properties:\n type: LB-S\n zone: fr-par-1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nYou will need to update it to:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainLoadbalancerIp = new scaleway.LoadbalancerIp(\"mainLoadbalancerIp\", {});\nconst mainLoadbalancer = new scaleway.Loadbalancer(\"mainLoadbalancer\", {\n ipId: mainLoadbalancerIp.id,\n zone: \"fr-par-1\",\n type: \"LB-S\",\n releaseIp: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_loadbalancer_ip = scaleway.LoadbalancerIp(\"mainLoadbalancerIp\")\nmain_loadbalancer = scaleway.Loadbalancer(\"mainLoadbalancer\",\n ip_id=main_loadbalancer_ip.id,\n zone=\"fr-par-1\",\n type=\"LB-S\",\n release_ip=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mainLoadbalancerIp = new Scaleway.LoadbalancerIp(\"mainLoadbalancerIp\");\n\n var mainLoadbalancer = new Scaleway.Loadbalancer(\"mainLoadbalancer\", new()\n {\n IpId = mainLoadbalancerIp.Id,\n Zone = \"fr-par-1\",\n Type = \"LB-S\",\n ReleaseIp = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainLoadbalancerIp, err := scaleway.NewLoadbalancerIp(ctx, \"mainLoadbalancerIp\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewLoadbalancer(ctx, \"mainLoadbalancer\", \u0026scaleway.LoadbalancerArgs{\n\t\t\tIpId: mainLoadbalancerIp.ID(),\n\t\t\tZone: pulumi.String(\"fr-par-1\"),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t\tReleaseIp: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.LoadbalancerIp;\nimport com.pulumi.scaleway.Loadbalancer;\nimport com.pulumi.scaleway.LoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mainLoadbalancerIp = new LoadbalancerIp(\"mainLoadbalancerIp\");\n\n var mainLoadbalancer = new Loadbalancer(\"mainLoadbalancer\", LoadbalancerArgs.builder()\n .ipId(mainLoadbalancerIp.id())\n .zone(\"fr-par-1\")\n .type(\"LB-S\")\n .releaseIp(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mainLoadbalancerIp:\n type: scaleway:LoadbalancerIp\n mainLoadbalancer:\n type: scaleway:Loadbalancer\n properties:\n ipId: ${mainLoadbalancerIp.id}\n zone: fr-par-1\n type: LB-S\n releaseIp: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancers can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/loadbalancer:Loadbalancer main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\nBe aware that you will also need to import the `scaleway_lb_ip` resource.\n\n", "properties": { "assignFlexibleIp": { "type": "boolean", @@ -16679,6 +16801,13 @@ "type": "string", "description": "The reverse domain associated with this IP.\n" }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The tags associated with this IP.\n" + }, "zone": { "type": "string", "description": "`zone`) The zone in which the IP should be reserved.\n" @@ -16708,6 +16837,13 @@ "type": "string", "description": "The reverse domain associated with this IP.\n" }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The tags associated with this IP.\n" + }, "zone": { "type": "string", "description": "`zone`) The zone in which the IP should be reserved.\n", @@ -16747,6 +16883,13 @@ "type": "string", "description": "The reverse domain associated with this IP.\n" }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The tags associated with this IP.\n" + }, "zone": { "type": "string", "description": "`zone`) The zone in which the IP should be reserved.\n", @@ -19834,7 +19977,8 @@ }, "gatewayId": { "type": "string", - "description": "The ID of the Public Gateway.\n" + "description": "The ID of the Public Gateway.\n", + "willReplaceOnChanges": true }, "ipamConfigs": { "type": "array", @@ -19845,7 +19989,8 @@ }, "privateNetworkId": { "type": "string", - "description": "The ID of the Private Network.\n" + "description": "The ID of the Private Network.\n", + "willReplaceOnChanges": true }, "staticAddress": { "type": "string", @@ -19886,7 +20031,8 @@ }, "gatewayId": { "type": "string", - "description": "The ID of the Public Gateway.\n" + "description": "The ID of the Public Gateway.\n", + "willReplaceOnChanges": true }, "ipamConfigs": { "type": "array", @@ -19901,7 +20047,8 @@ }, "privateNetworkId": { "type": "string", - "description": "The ID of the Private Network.\n" + "description": "The ID of the Private Network.\n", + "willReplaceOnChanges": true }, "staticAddress": { "type": "string", @@ -22269,6 +22416,10 @@ "type": "string", "description": "The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n" }, + "sandbox": { + "type": "string", + "description": "(Optional) Execution environment of the container.\n" + }, "secretEnvironmentVariables": { "type": "object", "additionalProperties": { @@ -22304,6 +22455,7 @@ "protocol", "registryImage", "registrySha256", + "sandbox", "secretEnvironmentVariables", "status", "timeout", @@ -23509,6 +23661,9 @@ "runtime": { "type": "string" }, + "sandbox": { + "type": "string" + }, "secretEnvironmentVariables": { "type": "object", "additionalProperties": { @@ -23541,6 +23696,7 @@ "organizationId", "privacy", "runtime", + "sandbox", "secretEnvironmentVariables", "timeout", "zipFile", @@ -23634,6 +23790,75 @@ ] } }, + "scaleway:index/getIamApiKey:getIamApiKey": { + "description": "Gets information about an existing IAM API key. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\n\nconst main = scaleway.getIamApiKey({\n accessKey: \"SCWABCDEFGHIJKLMNOPQ\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nmain = scaleway.get_iam_api_key(access_key=\"SCWABCDEFGHIJKLMNOPQ\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = Scaleway.GetIamApiKey.Invoke(new()\n {\n AccessKey = \"SCWABCDEFGHIJKLMNOPQ\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scaleway.LookupIamApiKey(ctx, \u0026scaleway.LookupIamApiKeyArgs{\n\t\t\tAccessKey: \"SCWABCDEFGHIJKLMNOPQ\",\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.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetIamApiKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var main = ScalewayFunctions.getIamApiKey(GetIamApiKeyArgs.builder()\n .accessKey(\"SCWABCDEFGHIJKLMNOPQ\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n main:\n fn::invoke:\n Function: scaleway:getIamApiKey\n Arguments:\n accessKey: SCWABCDEFGHIJKLMNOPQ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getIamApiKey.\n", + "properties": { + "accessKey": { + "type": "string", + "description": "The access key of the IAM API key which is also the ID of the API key.\n" + } + }, + "type": "object", + "required": [ + "accessKey" + ] + }, + "outputs": { + "description": "A collection of values returned by getIamApiKey.\n", + "properties": { + "accessKey": { + "type": "string" + }, + "applicationId": { + "type": "string" + }, + "createdAt": { + "type": "string" + }, + "creationIp": { + "type": "string" + }, + "defaultProjectId": { + "type": "string" + }, + "description": { + "type": "string" + }, + "editable": { + "type": "boolean" + }, + "expiresAt": { + "type": "string" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "updatedAt": { + "type": "string" + }, + "userId": { + "type": "string" + } + }, + "type": "object", + "required": [ + "accessKey", + "applicationId", + "createdAt", + "creationIp", + "defaultProjectId", + "description", + "editable", + "expiresAt", + "updatedAt", + "userId", + "id" + ] + } + }, "scaleway:index/getIamApplication:getIamApplication": { "description": "Gets information about an existing IAM application.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\n\nconst findByName = scaleway.getIamApplication({\n name: \"foobar\",\n});\nconst findById = scaleway.getIamApplication({\n applicationId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nfind_by_name = scaleway.get_iam_application(name=\"foobar\")\nfind_by_id = scaleway.get_iam_application(application_id=\"11111111-1111-1111-1111-111111111111\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var findByName = Scaleway.GetIamApplication.Invoke(new()\n {\n Name = \"foobar\",\n });\n\n var findById = Scaleway.GetIamApplication.Invoke(new()\n {\n ApplicationId = \"11111111-1111-1111-1111-111111111111\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scaleway.LookupIamApplication(ctx, \u0026scaleway.LookupIamApplicationArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.LookupIamApplication(ctx, \u0026scaleway.LookupIamApplicationArgs{\n\t\t\tApplicationId: pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\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.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetIamApplicationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var findByName = ScalewayFunctions.getIamApplication(GetIamApplicationArgs.builder()\n .name(\"foobar\")\n .build());\n\n final var findById = ScalewayFunctions.getIamApplication(GetIamApplicationArgs.builder()\n .applicationId(\"11111111-1111-1111-1111-111111111111\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n findByName:\n fn::invoke:\n Function: scaleway:getIamApplication\n Arguments:\n name: foobar\n findById:\n fn::invoke:\n Function: scaleway:getIamApplication\n Arguments:\n applicationId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { @@ -26089,7 +26314,7 @@ } }, "scaleway:index/getLbIps:getLbIps": { - "description": "Gets information about multiple Load Balancer IP addresses.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/network/load-balancer/how-to/create-manage-flex-ips/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-ip-addresses-list-ip-addresses).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\n\nconst myKey = scaleway.getLbIps({\n ipCidrRange: \"0.0.0.0/0\",\n zone: \"fr-par-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nmy_key = scaleway.get_lb_ips(ip_cidr_range=\"0.0.0.0/0\",\n zone=\"fr-par-2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myKey = Scaleway.GetLbIps.Invoke(new()\n {\n IpCidrRange = \"0.0.0.0/0\",\n Zone = \"fr-par-2\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scaleway.GetLbIps(ctx, \u0026scaleway.GetLbIpsArgs{\n\t\t\tIpCidrRange: pulumi.StringRef(\"0.0.0.0/0\"),\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\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.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetLbIpsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myKey = ScalewayFunctions.getLbIps(GetLbIpsArgs.builder()\n .ipCidrRange(\"0.0.0.0/0\")\n .zone(\"fr-par-2\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n myKey:\n fn::invoke:\n Function: scaleway:getLbIps\n Arguments:\n ipCidrRange: 0.0.0.0/0\n zone: fr-par-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Gets information about multiple Load Balancer IP addresses.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/network/load-balancer/how-to/create-manage-flex-ips/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-ip-addresses-list-ip-addresses).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\n\nconst myKey = scaleway.getLbIps({\n ipCidrRange: \"0.0.0.0/0\",\n zone: \"fr-par-2\",\n});\nconst ipsByTagsAndType = scaleway.getLbIps({\n ipType: \"ipv4\",\n tags: [\"a tag\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nmy_key = scaleway.get_lb_ips(ip_cidr_range=\"0.0.0.0/0\",\n zone=\"fr-par-2\")\nips_by_tags_and_type = scaleway.get_lb_ips(ip_type=\"ipv4\",\n tags=[\"a tag\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myKey = Scaleway.GetLbIps.Invoke(new()\n {\n IpCidrRange = \"0.0.0.0/0\",\n Zone = \"fr-par-2\",\n });\n\n var ipsByTagsAndType = Scaleway.GetLbIps.Invoke(new()\n {\n IpType = \"ipv4\",\n Tags = new[]\n {\n \"a tag\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scaleway.GetLbIps(ctx, \u0026scaleway.GetLbIpsArgs{\n\t\t\tIpCidrRange: pulumi.StringRef(\"0.0.0.0/0\"),\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.GetLbIps(ctx, \u0026scaleway.GetLbIpsArgs{\n\t\t\tIpType: pulumi.StringRef(\"ipv4\"),\n\t\t\tTags: []string{\n\t\t\t\t\"a tag\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetLbIpsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myKey = ScalewayFunctions.getLbIps(GetLbIpsArgs.builder()\n .ipCidrRange(\"0.0.0.0/0\")\n .zone(\"fr-par-2\")\n .build());\n\n final var ipsByTagsAndType = ScalewayFunctions.getLbIps(GetLbIpsArgs.builder()\n .ipType(\"ipv4\")\n .tags(\"a tag\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n myKey:\n fn::invoke:\n Function: scaleway:getLbIps\n Arguments:\n ipCidrRange: 0.0.0.0/0\n zone: fr-par-2\n ipsByTagsAndType:\n fn::invoke:\n Function: scaleway:getLbIps\n Arguments:\n ipType: ipv4\n tags:\n - a tag\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { "description": "A collection of arguments for invoking getLbIps.\n", "properties": { @@ -26097,11 +26322,22 @@ "type": "string", "description": "The IP CIDR range to filter for. IPs within a matching CIDR block are listed.\n" }, + "ipType": { + "type": "string", + "description": "The IP type used as a filter.\n" + }, "projectId": { "type": "string", "description": "The ID of the Project the Load Balancer is associated with.\n", "willReplaceOnChanges": true }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of tags used as filter. IPs with these exact tags are listed.\n" + }, "zone": { "type": "string", "description": "`zone`) The zone in which the IPs exist.\n", @@ -26120,6 +26356,9 @@ "ipCidrRange": { "type": "string" }, + "ipType": { + "type": "string" + }, "ips": { "type": "array", "items": { @@ -26135,6 +26374,12 @@ "type": "string", "description": "The ID of the Project the Load Balancer is associated with.\n" }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, "zone": { "type": "string", "description": "The zone of the Load Balancer.\n" @@ -26600,6 +26845,13 @@ "type": "string", "description": "The reverse domain associated with this IP.\n" }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The tags associated with this IP.\n" + }, "zone": { "type": "string" } @@ -26612,6 +26864,7 @@ "projectId", "region", "reverse", + "tags", "zone", "id" ] @@ -26628,7 +26881,7 @@ }, "label": { "type": "string", - "description": "Exact label of the desired image. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1\u0026per_page=100)\nto find the right `label`.\n" + "description": "Exact label of the desired image. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)\nto find the right `label`.\n" }, "zone": { "type": "string", @@ -28162,6 +28415,93 @@ ] } }, + "scaleway:index/getVpcRoutes:getVpcRoutes": { + "description": "Gets information about multiple VPC routes.\n\n", + "inputs": { + "description": "A collection of arguments for invoking getVpcRoutes.\n", + "properties": { + "isIpv6": { + "type": "boolean", + "description": "Routes with an IPv6 destination will be listed.\n" + }, + "nexthopPrivateNetworkId": { + "type": "string", + "description": "The next hop private network ID to filter for. routes with a similar next hop private network ID are listed.\n" + }, + "nexthopResourceId": { + "type": "string", + "description": "The next hop resource ID to filter for. routes with a similar next hop resource ID are listed.\n" + }, + "nexthopResourceType": { + "type": "string", + "description": "The next hop resource type to filter for. routes with a similar next hop resource type are listed.\n" + }, + "region": { + "type": "string", + "description": "`region`). The region in which the routes exist.\n", + "willReplaceOnChanges": true + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of tags to filter for. routes with these exact tags are listed.\n" + }, + "vpcId": { + "type": "string", + "description": "The VPC ID to filter for. routes with a similar VPC ID are listed.\n" + } + }, + "type": "object" + }, + "outputs": { + "description": "A collection of values returned by getVpcRoutes.\n", + "properties": { + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "isIpv6": { + "type": "boolean" + }, + "nexthopPrivateNetworkId": { + "type": "string" + }, + "nexthopResourceId": { + "type": "string" + }, + "nexthopResourceType": { + "type": "string" + }, + "region": { + "type": "string" + }, + "routes": { + "type": "array", + "items": { + "$ref": "#/types/scaleway:index/getVpcRoutesRoute:getVpcRoutesRoute" + }, + "description": "List of retrieved routes\n" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "vpcId": { + "type": "string" + } + }, + "type": "object", + "required": [ + "region", + "routes", + "id" + ] + } + }, "scaleway:index/getVpcs:getVpcs": { "description": "Gets information about multiple Virtual Private Clouds.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\n\nconst myKey = scaleway.getVpcs({\n name: \"tf-vpc-datasource\",\n region: \"nl-ams\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nmy_key = scaleway.get_vpcs(name=\"tf-vpc-datasource\",\n region=\"nl-ams\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myKey = Scaleway.GetVpcs.Invoke(new()\n {\n Name = \"tf-vpc-datasource\",\n Region = \"nl-ams\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := scaleway.GetVpcs(ctx, \u0026scaleway.GetVpcsArgs{\n\t\t\tName: pulumi.StringRef(\"tf-vpc-datasource\"),\n\t\t\tRegion: pulumi.StringRef(\"nl-ams\"),\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.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetVpcsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myKey = ScalewayFunctions.getVpcs(GetVpcsArgs.builder()\n .name(\"tf-vpc-datasource\")\n .region(\"nl-ams\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n myKey:\n fn::invoke:\n Function: scaleway:getVpcs\n Arguments:\n name: tf-vpc-datasource\n region: nl-ams\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": { diff --git a/provider/go.mod b/provider/go.mod index cd7e9cb6..8f47d0f3 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -17,8 +17,7 @@ replace ( require ( cloud.google.com/go v0.112.1 // indirect - cloud.google.com/go/compute v1.25.0 // indirect - cloud.google.com/go/compute/metadata v0.2.3 // indirect + cloud.google.com/go/compute/metadata v0.3.0 // indirect cloud.google.com/go/iam v1.1.6 // indirect cloud.google.com/go/kms v1.15.7 // indirect cloud.google.com/go/logging v1.9.0 // indirect @@ -37,14 +36,14 @@ require ( github.com/Masterminds/semver/v3 v3.2.0 // indirect github.com/Masterminds/sprig/v3 v3.2.3 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v1.1.0-alpha.2 // indirect + github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-cidr v1.1.0 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/armon/go-radix v1.0.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go v1.54.6 // indirect + github.com/aws/aws-sdk-go v1.55.3 // indirect github.com/aws/aws-sdk-go-v2 v1.26.1 // indirect github.com/aws/aws-sdk-go-v2/config v1.27.11 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect @@ -68,7 +67,7 @@ require ( github.com/charmbracelet/bubbletea v0.25.0 // indirect github.com/charmbracelet/lipgloss v0.7.1 // indirect github.com/cheggaaa/pb v1.0.29 // indirect - github.com/cloudflare/circl v1.3.7 // indirect + github.com/cloudflare/circl v1.3.9 // indirect github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect @@ -78,7 +77,7 @@ require ( github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/ettle/strcase v0.1.1 // indirect - github.com/fatih/color v1.16.0 // indirect + github.com/fatih/color v1.17.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect @@ -89,7 +88,7 @@ require ( github.com/gofrs/uuid v4.2.0+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.2.1 // indirect - github.com/golang/glog v1.2.0 // indirect + github.com/golang/glog v1.2.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-cmp v0.6.0 // indirect @@ -111,7 +110,7 @@ require ( github.com/hashicorp/go-getter v1.7.5 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-plugin v1.6.0 // indirect + github.com/hashicorp/go-plugin v1.6.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-safetemp v1.0.0 // indirect @@ -119,10 +118,10 @@ require ( github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect - github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hc-install v0.6.4 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect + github.com/hashicorp/hc-install v0.7.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/hcl/v2 v2.20.1 // indirect + github.com/hashicorp/hcl/v2 v2.21.0 // indirect github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 // indirect github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-exec v0.21.0 // indirect @@ -142,7 +141,7 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/klauspost/compress v1.17.2 // indirect + github.com/klauspost/compress v1.17.9 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect @@ -165,7 +164,7 @@ require ( github.com/muesli/reflow v0.3.0 // indirect github.com/muesli/termenv v0.15.2 // indirect github.com/natefinch/atomic v1.0.1 // indirect - github.com/nats-io/jwt/v2 v2.5.7 // indirect + github.com/nats-io/jwt/v2 v2.5.8 // indirect github.com/nats-io/nats.go v1.36.0 // indirect github.com/nats-io/nkeys v0.4.7 // indirect github.com/nats-io/nuid v1.0.1 // indirect @@ -196,8 +195,8 @@ require ( github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect - github.com/scaleway/scaleway-sdk-go v1.0.0-beta.27.0.20240603133732-526ae94f1caa // indirect - github.com/scaleway/terraform-provider-scaleway/v2 v2.41.3 // indirect + github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 // indirect + github.com/scaleway/terraform-provider-scaleway/v2 v2.42.1 // indirect github.com/segmentio/asm v1.1.3 // indirect github.com/segmentio/encoding v0.3.5 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect @@ -220,7 +219,7 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/zclconf/go-cty v1.14.4 // indirect + github.com/zclconf/go-cty v1.15.0 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect @@ -230,25 +229,25 @@ require ( go.uber.org/atomic v1.9.0 // indirect gocloud.dev v0.37.0 // indirect gocloud.dev/secrets/hashivault v0.37.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect - golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect - golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/mod v0.19.0 // indirect + golang.org/x/net v0.27.0 // indirect + golang.org/x/oauth2 v0.20.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.22.0 // indirect + golang.org/x/tools v0.23.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/api v0.169.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect - google.golang.org/grpc v1.63.2 // indirect - google.golang.org/protobuf v1.34.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240725223205-93522f1f2a9f // indirect + google.golang.org/grpc v1.65.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/provider/go.sum b/provider/go.sum index 634b7403..877958f8 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -304,13 +304,12 @@ cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdi cloud.google.com/go/compute v1.23.1/go.mod h1:CqB3xpmPKKt3OJpW2ndFIXnA9A4xAy/F3Xp1ixncW78= cloud.google.com/go/compute v1.23.2/go.mod h1:JJ0atRC0J/oWYiiVBmsSsrRnh92DhZPG4hFDcR04Rns= cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= -cloud.google.com/go/compute v1.25.0 h1:H1/4SqSUhjPFE7L5ddzHOfY2bCAvjwNRZPNl6Ni5oYU= -cloud.google.com/go/compute v1.25.0/go.mod h1:GR7F0ZPZH8EhChlMo9FkLd7eUTwEymjqQagxzilIxIE= cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= -cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= +cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= @@ -1187,8 +1186,8 @@ github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/ProtonMail/go-crypto v1.1.0-alpha.0/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= -github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg= -github.com/ProtonMail/go-crypto v1.1.0-alpha.2/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton h1:KVBEgU3CJpmzLChnLiSuEyCuhGhcMt3eOST+7A+ckto= +github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= @@ -1229,8 +1228,8 @@ github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3A github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.54.6 h1:HEYUib3yTt8E6vxjMWM3yAq5b+qjj/6aKA62mkgux9g= -github.com/aws/aws-sdk-go v1.54.6/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go v1.55.3 h1:0B5hOX+mIx7I5XPOrjrHlKSDQV/+ypFZpIHOx5LOk3E= +github.com/aws/aws-sdk-go v1.55.3/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= @@ -1308,8 +1307,9 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cloudflare/circl v1.3.9 h1:QFrlgFYf2Qpi8bSpVPK1HBvWpx16v/1TZivyo7pGuBE= +github.com/cloudflare/circl v1.3.9/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= @@ -1343,8 +1343,8 @@ 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/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= -github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.0.3+incompatible h1:aBGI9TeQ4MPlhquTQKq9XbK79rKFVwXNUAYz9aXyEBE= +github.com/docker/docker v27.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= @@ -1385,8 +1385,9 @@ github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= @@ -1449,8 +1450,8 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= -github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= -github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/glog v1.2.1 h1:OptwRhECazUx5ix5TTWC3EZhsZEHWcYWY4FQHTIubm4= +github.com/golang/glog v1.2.1/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -1623,8 +1624,9 @@ github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHh github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= -github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= +github.com/hashicorp/go-plugin v1.6.1 h1:P7MR2UP6gNKGPp+y7EZw2kOiq4IR9WiqLvp0XOsVdwI= +github.com/hashicorp/go-plugin v1.6.1/go.mod h1:XPHFku2tFo3o3QKFgSYo+cghcUhw1NA1hZyMK0PWAw0= github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= @@ -1643,21 +1645,22 @@ github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/C github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hc-install v0.6.2/go.mod h1:2JBpd+NCFKiHiu/yYCGaPyPHhZLxXTpz8oreHa/a3Ps= github.com/hashicorp/hc-install v0.6.3/go.mod h1:KamGdbodYzlufbWh4r9NRo8y6GLHWZP2GBtdnms1Ln0= -github.com/hashicorp/hc-install v0.6.4 h1:QLqlM56/+SIIGvGcfFiwMY3z5WGXT066suo/v9Km8e0= -github.com/hashicorp/hc-install v0.6.4/go.mod h1:05LWLy8TD842OtgcfBbOT0WMoInBMUSHjmDx10zuBIA= +github.com/hashicorp/hc-install v0.7.0 h1:Uu9edVqjKQxxuD28mR5TikkKDd/p55S8vzPC1659aBk= +github.com/hashicorp/hc-install v0.7.0/go.mod h1:ELmmzZlGnEcqoUMKUuykHaPCIR1sYLYX+KSggWSKZuA= github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.0.0/go.mod h1:oVVDG71tEinNGYCxinCYadcmKU9bglqW9pV3txagJ90= github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE= -github.com/hashicorp/hcl/v2 v2.20.1 h1:M6hgdyz7HYt1UN9e61j+qKJBqR3orTWbI1HKBJEdxtc= -github.com/hashicorp/hcl/v2 v2.20.1/go.mod h1:TZDqQ4kNKCbh1iJp99FdPiUaVDDUPivbqxZulxDYqL4= +github.com/hashicorp/hcl/v2 v2.21.0 h1:lve4q/o/2rqwYOgUg3y3V2YPyD1/zkCLGjIV74Jit14= +github.com/hashicorp/hcl/v2 v2.21.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 h1:T1Q6ag9tCwun16AW+XK3tAql24P4uTGUMIn1/92WsQQ= github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= @@ -1743,8 +1746,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4= -github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -1842,8 +1845,8 @@ github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= github.com/natefinch/atomic v1.0.1 h1:ZPYKxkqQOx3KZ+RsbnP/YsgvxWQPGxjC0oBt2AhwV0A= github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM= -github.com/nats-io/jwt/v2 v2.5.7 h1:j5lH1fUXCnJnY8SsQeB/a/z9Azgu2bYIDvtPVNdxe2c= -github.com/nats-io/jwt/v2 v2.5.7/go.mod h1:ZdWS1nZa6WMZfFwwgpEaqBV8EPGVgOTDHN/wTbz0Y5A= +github.com/nats-io/jwt/v2 v2.5.8 h1:uvdSzwWiEGWGXf+0Q+70qv6AQdvcvxrv9hPM0RiPamE= +github.com/nats-io/jwt/v2 v2.5.8/go.mod h1:ZdWS1nZa6WMZfFwwgpEaqBV8EPGVgOTDHN/wTbz0Y5A= github.com/nats-io/nats.go v1.36.0 h1:suEUPuWzTSse/XhESwqLxXGuj8vGRuPRoG7MoRN/qyU= github.com/nats-io/nats.go v1.36.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= @@ -1985,10 +1988,10 @@ github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDj github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs= github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 h1:TToq11gyfNlrMFZiYujSekIsPd9AmsA2Bj/iv+s4JHE= github.com/santhosh-tekuri/jsonschema/v5 v5.0.0/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.27.0.20240603133732-526ae94f1caa h1:i+rtstvLVsx9zBDmVir/PssINIURdrXaCRpBW5+ctCs= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.27.0.20240603133732-526ae94f1caa/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= -github.com/scaleway/terraform-provider-scaleway/v2 v2.41.3 h1:nRdaYanja2ozIpOM/KFRqPeaB8JDKK1rbEczJN730Fk= -github.com/scaleway/terraform-provider-scaleway/v2 v2.41.3/go.mod h1:rBYagxZqXlgBVs3fM5/4ANuTsM8ZTzj63B9+pYeosuE= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 h1:BkTk4gynLjguayxrYxZoMZjBnAOh7ntQvUkOFmkMqPU= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= +github.com/scaleway/terraform-provider-scaleway/v2 v2.42.1 h1:fdyuIBm3iIqfbue7+fZk3/O2xt3bcbQFRyPP/Or9APU= +github.com/scaleway/terraform-provider-scaleway/v2 v2.42.1/go.mod h1:SiKq736r21ADmkgJkbznWmqIuFmpB01PdTUHsEqkq/4= github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4= github.com/segmentio/asm v1.1.3 h1:WM03sfUOENvvKexOLp+pCqgb/WDjsi7EK8gIsICtzhc= github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg= @@ -2086,10 +2089,11 @@ github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4 github.com/zclconf/go-cty v1.13.1/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty v1.14.2/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= -github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b h1:FosyBZYxY34Wul7O/MSKey3txpPYyCqVO5ZyceuQJEI= +github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ= +github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= github.com/zclconf/go-cty-yaml v1.0.1 h1:up11wlgAaDvlAGENcFDnZgkn0qUJurso7k6EpURKNF8= github.com/zclconf/go-cty-yaml v1.0.1/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgKa8XhiVHura0= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= @@ -2157,8 +2161,8 @@ golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2225,8 +2229,8 @@ golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= -golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= +golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -2304,8 +2308,8 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2341,8 +2345,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.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= -golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= +golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= +golang.org/x/oauth2 v0.20.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= @@ -2475,8 +2479,8 @@ golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -2497,8 +2501,8 @@ golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2604,8 +2608,8 @@ golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= -golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= +golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2871,8 +2875,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go. google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870= google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405/go.mod h1:oT32Z4o8Zv2xPQTg0pbVaPr0MPOH6f14RgXt7zfIpwg= google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= -google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 h1:oqta3O3AnlWbmIE3bFnWbu4bRxZjfbWCp0cKSuZh01E= -google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7/go.mod h1:VQW3tUculP/D4B+xVCo+VgSq8As6wA9ZjHl//pmk+6s= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230807174057-1744710a1577/go.mod h1:NjCQG/D8JandXxM57PZbAJL1DCNL6EypA0vPPwfsc7c= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= @@ -2893,8 +2897,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go. google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE= google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 h1:8EeVk1VKMD+GD/neyEHGmz7pFblqPjHoi+PGQIlLx2s= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240725223205-93522f1f2a9f h1:RARaIm8pxYuxyNPbBQf5igT7XdOyCNtat1qAT2ZxjU4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240725223205-93522f1f2a9f/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -2945,8 +2949,8 @@ google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSs google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -2968,8 +2972,8 @@ google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/provider/resources.go b/provider/resources.go index 0f5e839e..35539623 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -1259,6 +1259,18 @@ func Provider() tfbridge.ProviderInfo { Source: "webhosting.md", }, }, + "scaleway_iam_api_key": { + Tok: scalewayDataSource(scalewayMod, "getIamApiKey"), + Docs: &tfbridge.DocInfo{ + Source: "iam_api_key.md", + }, + }, + "scaleway_vpc_routes": { + Tok: scalewayDataSource(scalewayMod, "getVpcRoutes"), + Docs: &tfbridge.DocInfo{ + Source: "vpc_routes.md", + }, + }, }, JavaScript: &tfbridge.JavaScriptInfo{ // List any npm dependencies and their versions diff --git a/provider/shim/go.mod b/provider/shim/go.mod index 84e613aa..ab038db8 100644 --- a/provider/shim/go.mod +++ b/provider/shim/go.mod @@ -2,21 +2,19 @@ module github.com/scaleway/terraform-provider-scaleway/v2/shim go 1.22 -toolchain go1.22.4 - require ( github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 - github.com/scaleway/terraform-provider-scaleway/v2 v2.41.3 + github.com/scaleway/terraform-provider-scaleway/v2 v2.42.1 ) require ( - github.com/ProtonMail/go-crypto v1.1.0-alpha.2 // indirect + github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect - github.com/aws/aws-sdk-go v1.54.6 // indirect - github.com/cloudflare/circl v1.3.7 // indirect + github.com/aws/aws-sdk-go v1.55.3 // indirect + github.com/cloudflare/circl v1.3.9 // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/fatih/color v1.16.0 // indirect + github.com/fatih/color v1.17.0 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/hashicorp/aws-sdk-go-base v1.1.0 // indirect @@ -27,12 +25,12 @@ require ( github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-plugin v1.6.0 // indirect + github.com/hashicorp/go-plugin v1.6.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect - github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hc-install v0.6.4 // indirect - github.com/hashicorp/hcl/v2 v2.20.1 // indirect + github.com/hashicorp/go-version v1.7.0 // indirect + github.com/hashicorp/hc-install v0.7.0 // indirect + github.com/hashicorp/hcl/v2 v2.21.0 // indirect github.com/hashicorp/logutils v1.0.0 // indirect github.com/hashicorp/terraform-exec v0.21.0 // indirect github.com/hashicorp/terraform-json v0.22.1 // indirect @@ -42,7 +40,7 @@ require ( github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/hashicorp/yamux v0.1.1 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/klauspost/compress v1.17.2 // indirect + github.com/klauspost/compress v1.17.9 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect @@ -50,29 +48,29 @@ require ( github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect - github.com/nats-io/jwt/v2 v2.5.7 // indirect + github.com/nats-io/jwt/v2 v2.5.8 // indirect github.com/nats-io/nats.go v1.36.0 // indirect github.com/nats-io/nkeys v0.4.7 // indirect github.com/nats-io/nuid v1.0.1 // indirect github.com/oklog/run v1.1.0 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect - github.com/scaleway/scaleway-sdk-go v1.0.0-beta.27.0.20240603133732-526ae94f1caa // indirect + github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 // indirect github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect - github.com/zclconf/go-cty v1.14.4 // indirect + github.com/zclconf/go-cty v1.15.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect go.opentelemetry.io/otel/trace v1.24.0 // indirect - golang.org/x/crypto v0.24.0 // indirect - golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.25.0 // indirect + golang.org/x/crypto v0.25.0 // indirect + golang.org/x/mod v0.19.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect - golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect + golang.org/x/tools v0.23.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect - google.golang.org/grpc v1.63.2 // indirect - google.golang.org/protobuf v1.34.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240725223205-93522f1f2a9f // indirect + google.golang.org/grpc v1.65.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect ) diff --git a/provider/shim/go.sum b/provider/shim/go.sum index 0b9287bb..9ec3c3b2 100644 --- a/provider/shim/go.sum +++ b/provider/shim/go.sum @@ -2,20 +2,20 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg= -github.com/ProtonMail/go-crypto v1.1.0-alpha.2/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton h1:KVBEgU3CJpmzLChnLiSuEyCuhGhcMt3eOST+7A+ckto= +github.com/ProtonMail/go-crypto v1.1.0-alpha.5-proton/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec= github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY= github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.54.6 h1:HEYUib3yTt8E6vxjMWM3yAq5b+qjj/6aKA62mkgux9g= -github.com/aws/aws-sdk-go v1.54.6/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= +github.com/aws/aws-sdk-go v1.55.3 h1:0B5hOX+mIx7I5XPOrjrHlKSDQV/+ypFZpIHOx5LOk3E= +github.com/aws/aws-sdk-go v1.55.3/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8= -github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= -github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cloudflare/circl v1.3.9 h1:QFrlgFYf2Qpi8bSpVPK1HBvWpx16v/1TZivyo7pGuBE= +github.com/cloudflare/circl v1.3.9/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -25,8 +25,8 @@ github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/docker v26.1.3+incompatible h1:lLCzRbrVZrljpVNobJu1J2FHk8V0s4BawoZippkc+xo= -github.com/docker/docker v26.1.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.0.3+incompatible h1:aBGI9TeQ4MPlhquTQKq9XbK79rKFVwXNUAYz9aXyEBE= +github.com/docker/docker v27.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= @@ -36,8 +36,8 @@ github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+m github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= @@ -85,19 +85,19 @@ github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVH github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= -github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= +github.com/hashicorp/go-plugin v1.6.1 h1:P7MR2UP6gNKGPp+y7EZw2kOiq4IR9WiqLvp0XOsVdwI= +github.com/hashicorp/go-plugin v1.6.1/go.mod h1:XPHFku2tFo3o3QKFgSYo+cghcUhw1NA1hZyMK0PWAw0= github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= -github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/hc-install v0.6.4 h1:QLqlM56/+SIIGvGcfFiwMY3z5WGXT066suo/v9Km8e0= -github.com/hashicorp/hc-install v0.6.4/go.mod h1:05LWLy8TD842OtgcfBbOT0WMoInBMUSHjmDx10zuBIA= -github.com/hashicorp/hcl/v2 v2.20.1 h1:M6hgdyz7HYt1UN9e61j+qKJBqR3orTWbI1HKBJEdxtc= -github.com/hashicorp/hcl/v2 v2.20.1/go.mod h1:TZDqQ4kNKCbh1iJp99FdPiUaVDDUPivbqxZulxDYqL4= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/hc-install v0.7.0 h1:Uu9edVqjKQxxuD28mR5TikkKDd/p55S8vzPC1659aBk= +github.com/hashicorp/hc-install v0.7.0/go.mod h1:ELmmzZlGnEcqoUMKUuykHaPCIR1sYLYX+KSggWSKZuA= +github.com/hashicorp/hcl/v2 v2.21.0 h1:lve4q/o/2rqwYOgUg3y3V2YPyD1/zkCLGjIV74Jit14= +github.com/hashicorp/hcl/v2 v2.21.0/go.mod h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVWkd/RG0D2XQ= @@ -127,8 +127,8 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4= -github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -156,8 +156,8 @@ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zx github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= -github.com/nats-io/jwt/v2 v2.5.7 h1:j5lH1fUXCnJnY8SsQeB/a/z9Azgu2bYIDvtPVNdxe2c= -github.com/nats-io/jwt/v2 v2.5.7/go.mod h1:ZdWS1nZa6WMZfFwwgpEaqBV8EPGVgOTDHN/wTbz0Y5A= +github.com/nats-io/jwt/v2 v2.5.8 h1:uvdSzwWiEGWGXf+0Q+70qv6AQdvcvxrv9hPM0RiPamE= +github.com/nats-io/jwt/v2 v2.5.8/go.mod h1:ZdWS1nZa6WMZfFwwgpEaqBV8EPGVgOTDHN/wTbz0Y5A= github.com/nats-io/nats.go v1.36.0 h1:suEUPuWzTSse/XhESwqLxXGuj8vGRuPRoG7MoRN/qyU= github.com/nats-io/nats.go v1.36.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= @@ -178,10 +178,10 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.27.0.20240603133732-526ae94f1caa h1:i+rtstvLVsx9zBDmVir/PssINIURdrXaCRpBW5+ctCs= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.27.0.20240603133732-526ae94f1caa/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= -github.com/scaleway/terraform-provider-scaleway/v2 v2.41.3 h1:nRdaYanja2ozIpOM/KFRqPeaB8JDKK1rbEczJN730Fk= -github.com/scaleway/terraform-provider-scaleway/v2 v2.41.3/go.mod h1:rBYagxZqXlgBVs3fM5/4ANuTsM8ZTzj63B9+pYeosuE= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29 h1:BkTk4gynLjguayxrYxZoMZjBnAOh7ntQvUkOFmkMqPU= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.29/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= +github.com/scaleway/terraform-provider-scaleway/v2 v2.42.1 h1:fdyuIBm3iIqfbue7+fZk3/O2xt3bcbQFRyPP/Or9APU= +github.com/scaleway/terraform-provider-scaleway/v2 v2.42.1/go.mod h1:SiKq736r21ADmkgJkbznWmqIuFmpB01PdTUHsEqkq/4= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/skeema/knownhosts v1.2.2 h1:Iug2P4fLmDw9f41PB6thxUkNUkJzB5i+1/exaj40L3A= @@ -201,10 +201,10 @@ github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= -github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b h1:FosyBZYxY34Wul7O/MSKey3txpPYyCqVO5ZyceuQJEI= -github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= +github.com/zclconf/go-cty v1.15.0 h1:tTCRWxsexYUmtt/wVxgDClUe+uQusuI443uL6e+5sXQ= +github.com/zclconf/go-cty v1.15.0/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo= +github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= @@ -215,18 +215,18 @@ go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= -golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= +golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -244,12 +244,12 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -260,21 +260,21 @@ golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= +golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 h1:8EeVk1VKMD+GD/neyEHGmz7pFblqPjHoi+PGQIlLx2s= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= -google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= -google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240725223205-93522f1f2a9f h1:RARaIm8pxYuxyNPbBQf5igT7XdOyCNtat1qAT2ZxjU4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240725223205-93522f1f2a9f/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= +google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= +google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/sdk/dotnet/Container.cs b/sdk/dotnet/Container.cs index e32835f3..645c840f 100644 --- a/sdk/dotnet/Container.cs +++ b/sdk/dotnet/Container.cs @@ -237,6 +237,12 @@ public partial class Container : global::Pulumi.CustomResource [Output("registrySha256")] public Output RegistrySha256 { get; private set; } = null!; + /// + /// Execution environment of the container. + /// + [Output("sandbox")] + public Output Sandbox { get; private set; } = null!; + /// /// The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. /// @@ -420,6 +426,12 @@ public InputMap EnvironmentVariables [Input("registrySha256")] public Input? RegistrySha256 { get; set; } + /// + /// Execution environment of the container. + /// + [Input("sandbox")] + public Input? Sandbox { get; set; } + [Input("secretEnvironmentVariables")] private InputMap? _secretEnvironmentVariables; @@ -588,6 +600,12 @@ public InputMap EnvironmentVariables [Input("registrySha256")] public Input? RegistrySha256 { get; set; } + /// + /// Execution environment of the container. + /// + [Input("sandbox")] + public Input? Sandbox { get; set; } + [Input("secretEnvironmentVariables")] private InputMap? _secretEnvironmentVariables; diff --git a/sdk/dotnet/Function.cs b/sdk/dotnet/Function.cs index e0e77605..3cbf49ad 100644 --- a/sdk/dotnet/Function.cs +++ b/sdk/dotnet/Function.cs @@ -156,6 +156,12 @@ public partial class Function : global::Pulumi.CustomResource [Output("runtime")] public Output Runtime { get; private set; } = null!; + /// + /// Execution environment of the function. + /// + [Output("sandbox")] + public Output Sandbox { get; private set; } = null!; + /// /// The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. /// @@ -320,6 +326,12 @@ public InputMap EnvironmentVariables [Input("runtime", required: true)] public Input Runtime { get; set; } = null!; + /// + /// Execution environment of the function. + /// + [Input("sandbox")] + public Input? Sandbox { get; set; } + [Input("secretEnvironmentVariables")] private InputMap? _secretEnvironmentVariables; @@ -469,6 +481,12 @@ public InputMap EnvironmentVariables [Input("runtime")] public Input? Runtime { get; set; } + /// + /// Execution environment of the function. + /// + [Input("sandbox")] + public Input? Sandbox { get; set; } + [Input("secretEnvironmentVariables")] private InputMap? _secretEnvironmentVariables; diff --git a/sdk/dotnet/GetContainer.cs b/sdk/dotnet/GetContainer.cs index 6f246877..b56405fb 100644 --- a/sdk/dotnet/GetContainer.cs +++ b/sdk/dotnet/GetContainer.cs @@ -259,6 +259,10 @@ public sealed class GetContainerResult /// The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. /// public readonly string RegistrySha256; + /// + /// (Optional) Execution environment of the container. + /// + public readonly string Sandbox; public readonly ImmutableDictionary SecretEnvironmentVariables; /// /// The container status. @@ -317,6 +321,8 @@ private GetContainerResult( string registrySha256, + string sandbox, + ImmutableDictionary secretEnvironmentVariables, string status, @@ -346,6 +352,7 @@ private GetContainerResult( Region = region; RegistryImage = registryImage; RegistrySha256 = registrySha256; + Sandbox = sandbox; SecretEnvironmentVariables = secretEnvironmentVariables; Status = status; Timeout = timeout; diff --git a/sdk/dotnet/GetFunction.cs b/sdk/dotnet/GetFunction.cs index dd6da798..e9088cbe 100644 --- a/sdk/dotnet/GetFunction.cs +++ b/sdk/dotnet/GetFunction.cs @@ -166,6 +166,7 @@ public sealed class GetFunctionResult public readonly string? ProjectId; public readonly string? Region; public readonly string Runtime; + public readonly string Sandbox; public readonly ImmutableDictionary SecretEnvironmentVariables; public readonly int Timeout; public readonly string ZipFile; @@ -211,6 +212,8 @@ private GetFunctionResult( string runtime, + string sandbox, + ImmutableDictionary secretEnvironmentVariables, int timeout, @@ -238,6 +241,7 @@ private GetFunctionResult( ProjectId = projectId; Region = region; Runtime = runtime; + Sandbox = sandbox; SecretEnvironmentVariables = secretEnvironmentVariables; Timeout = timeout; ZipFile = zipFile; diff --git a/sdk/dotnet/GetIamApiKey.cs b/sdk/dotnet/GetIamApiKey.cs new file mode 100644 index 00000000..a12bcc5a --- /dev/null +++ b/sdk/dotnet/GetIamApiKey.cs @@ -0,0 +1,149 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Scaleway +{ + public static class GetIamApiKey + { + /// + /// Gets information about an existing IAM API key. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae). + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Scaleway = Pulumi.Scaleway; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var main = Scaleway.GetIamApiKey.Invoke(new() + /// { + /// AccessKey = "SCWABCDEFGHIJKLMNOPQ", + /// }); + /// + /// }); + /// ``` + /// + public static Task InvokeAsync(GetIamApiKeyArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("scaleway:index/getIamApiKey:getIamApiKey", args ?? new GetIamApiKeyArgs(), options.WithDefaults()); + + /// + /// Gets information about an existing IAM API key. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae). + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Scaleway = Pulumi.Scaleway; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var main = Scaleway.GetIamApiKey.Invoke(new() + /// { + /// AccessKey = "SCWABCDEFGHIJKLMNOPQ", + /// }); + /// + /// }); + /// ``` + /// + public static Output Invoke(GetIamApiKeyInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("scaleway:index/getIamApiKey:getIamApiKey", args ?? new GetIamApiKeyInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetIamApiKeyArgs : global::Pulumi.InvokeArgs + { + /// + /// The access key of the IAM API key which is also the ID of the API key. + /// + [Input("accessKey", required: true)] + public string AccessKey { get; set; } = null!; + + public GetIamApiKeyArgs() + { + } + public static new GetIamApiKeyArgs Empty => new GetIamApiKeyArgs(); + } + + public sealed class GetIamApiKeyInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The access key of the IAM API key which is also the ID of the API key. + /// + [Input("accessKey", required: true)] + public Input AccessKey { get; set; } = null!; + + public GetIamApiKeyInvokeArgs() + { + } + public static new GetIamApiKeyInvokeArgs Empty => new GetIamApiKeyInvokeArgs(); + } + + + [OutputType] + public sealed class GetIamApiKeyResult + { + public readonly string AccessKey; + public readonly string ApplicationId; + public readonly string CreatedAt; + public readonly string CreationIp; + public readonly string DefaultProjectId; + public readonly string Description; + public readonly bool Editable; + public readonly string ExpiresAt; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly string UpdatedAt; + public readonly string UserId; + + [OutputConstructor] + private GetIamApiKeyResult( + string accessKey, + + string applicationId, + + string createdAt, + + string creationIp, + + string defaultProjectId, + + string description, + + bool editable, + + string expiresAt, + + string id, + + string updatedAt, + + string userId) + { + AccessKey = accessKey; + ApplicationId = applicationId; + CreatedAt = createdAt; + CreationIp = creationIp; + DefaultProjectId = defaultProjectId; + Description = description; + Editable = editable; + ExpiresAt = expiresAt; + Id = id; + UpdatedAt = updatedAt; + UserId = userId; + } + } +} diff --git a/sdk/dotnet/GetLbIps.cs b/sdk/dotnet/GetLbIps.cs index 546120d9..3a2fee31 100644 --- a/sdk/dotnet/GetLbIps.cs +++ b/sdk/dotnet/GetLbIps.cs @@ -33,6 +33,15 @@ public static class GetLbIps /// Zone = "fr-par-2", /// }); /// + /// var ipsByTagsAndType = Scaleway.GetLbIps.Invoke(new() + /// { + /// IpType = "ipv4", + /// Tags = new[] + /// { + /// "a tag", + /// }, + /// }); + /// /// }); /// ``` /// @@ -60,6 +69,15 @@ public static Task InvokeAsync(GetLbIpsArgs? args = null, Invoke /// Zone = "fr-par-2", /// }); /// + /// var ipsByTagsAndType = Scaleway.GetLbIps.Invoke(new() + /// { + /// IpType = "ipv4", + /// Tags = new[] + /// { + /// "a tag", + /// }, + /// }); + /// /// }); /// ``` /// @@ -76,12 +94,30 @@ public sealed class GetLbIpsArgs : global::Pulumi.InvokeArgs [Input("ipCidrRange")] public string? IpCidrRange { get; set; } + /// + /// The IP type used as a filter. + /// + [Input("ipType")] + public string? IpType { get; set; } + /// /// The ID of the Project the Load Balancer is associated with. /// [Input("projectId")] public string? ProjectId { get; set; } + [Input("tags")] + private List? _tags; + + /// + /// List of tags used as filter. IPs with these exact tags are listed. + /// + public List Tags + { + get => _tags ?? (_tags = new List()); + set => _tags = value; + } + /// /// `zone`) The zone in which the IPs exist. /// @@ -102,12 +138,30 @@ public sealed class GetLbIpsInvokeArgs : global::Pulumi.InvokeArgs [Input("ipCidrRange")] public Input? IpCidrRange { get; set; } + /// + /// The IP type used as a filter. + /// + [Input("ipType")] + public Input? IpType { get; set; } + /// /// The ID of the Project the Load Balancer is associated with. /// [Input("projectId")] public Input? ProjectId { get; set; } + [Input("tags")] + private InputList? _tags; + + /// + /// List of tags used as filter. IPs with these exact tags are listed. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + /// /// `zone`) The zone in which the IPs exist. /// @@ -129,6 +183,7 @@ public sealed class GetLbIpsResult /// public readonly string Id; public readonly string? IpCidrRange; + public readonly string? IpType; /// /// List of retrieved IPs /// @@ -141,6 +196,7 @@ public sealed class GetLbIpsResult /// The ID of the Project the Load Balancer is associated with. /// public readonly string ProjectId; + public readonly ImmutableArray Tags; /// /// The zone of the Load Balancer. /// @@ -152,19 +208,25 @@ private GetLbIpsResult( string? ipCidrRange, + string? ipType, + ImmutableArray ips, string organizationId, string projectId, + ImmutableArray tags, + string zone) { Id = id; IpCidrRange = ipCidrRange; + IpType = ipType; Ips = ips; OrganizationId = organizationId; ProjectId = projectId; + Tags = tags; Zone = zone; } } diff --git a/sdk/dotnet/GetLoadbalancerIp.cs b/sdk/dotnet/GetLoadbalancerIp.cs index 0e0204fb..fcea4102 100644 --- a/sdk/dotnet/GetLoadbalancerIp.cs +++ b/sdk/dotnet/GetLoadbalancerIp.cs @@ -149,6 +149,10 @@ public sealed class GetLoadbalancerIpResult /// The reverse domain associated with this IP. /// public readonly string Reverse; + /// + /// The tags associated with this IP. + /// + public readonly ImmutableArray Tags; public readonly string Zone; [OutputConstructor] @@ -171,6 +175,8 @@ private GetLoadbalancerIpResult( string reverse, + ImmutableArray tags, + string zone) { Id = id; @@ -182,6 +188,7 @@ private GetLoadbalancerIpResult( ProjectId = projectId; Region = region; Reverse = reverse; + Tags = tags; Zone = zone; } } diff --git a/sdk/dotnet/GetMarketplaceImage.cs b/sdk/dotnet/GetMarketplaceImage.cs index b94c88af..6f96fa05 100644 --- a/sdk/dotnet/GetMarketplaceImage.cs +++ b/sdk/dotnet/GetMarketplaceImage.cs @@ -72,7 +72,7 @@ public sealed class GetMarketplaceImageArgs : global::Pulumi.InvokeArgs public string? InstanceType { get; set; } /// - /// Exact label of the desired image. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + /// Exact label of the desired image. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) /// to find the right `label`. /// [Input("label", required: true)] @@ -100,7 +100,7 @@ public sealed class GetMarketplaceImageInvokeArgs : global::Pulumi.InvokeArgs public Input? InstanceType { get; set; } /// - /// Exact label of the desired image. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + /// Exact label of the desired image. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) /// to find the right `label`. /// [Input("label", required: true)] diff --git a/sdk/dotnet/GetVpcRoutes.cs b/sdk/dotnet/GetVpcRoutes.cs new file mode 100644 index 00000000..84dcf033 --- /dev/null +++ b/sdk/dotnet/GetVpcRoutes.cs @@ -0,0 +1,192 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Scaleway +{ + public static class GetVpcRoutes + { + /// + /// Gets information about multiple VPC routes. + /// + public static Task InvokeAsync(GetVpcRoutesArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("scaleway:index/getVpcRoutes:getVpcRoutes", args ?? new GetVpcRoutesArgs(), options.WithDefaults()); + + /// + /// Gets information about multiple VPC routes. + /// + public static Output Invoke(GetVpcRoutesInvokeArgs? args = null, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("scaleway:index/getVpcRoutes:getVpcRoutes", args ?? new GetVpcRoutesInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetVpcRoutesArgs : global::Pulumi.InvokeArgs + { + /// + /// Routes with an IPv6 destination will be listed. + /// + [Input("isIpv6")] + public bool? IsIpv6 { get; set; } + + /// + /// The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + /// + [Input("nexthopPrivateNetworkId")] + public string? NexthopPrivateNetworkId { get; set; } + + /// + /// The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + /// + [Input("nexthopResourceId")] + public string? NexthopResourceId { get; set; } + + /// + /// The next hop resource type to filter for. routes with a similar next hop resource type are listed. + /// + [Input("nexthopResourceType")] + public string? NexthopResourceType { get; set; } + + /// + /// `region`). The region in which the routes exist. + /// + [Input("region")] + public string? Region { get; set; } + + [Input("tags")] + private List? _tags; + + /// + /// List of tags to filter for. routes with these exact tags are listed. + /// + public List Tags + { + get => _tags ?? (_tags = new List()); + set => _tags = value; + } + + /// + /// The VPC ID to filter for. routes with a similar VPC ID are listed. + /// + [Input("vpcId")] + public string? VpcId { get; set; } + + public GetVpcRoutesArgs() + { + } + public static new GetVpcRoutesArgs Empty => new GetVpcRoutesArgs(); + } + + public sealed class GetVpcRoutesInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// Routes with an IPv6 destination will be listed. + /// + [Input("isIpv6")] + public Input? IsIpv6 { get; set; } + + /// + /// The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + /// + [Input("nexthopPrivateNetworkId")] + public Input? NexthopPrivateNetworkId { get; set; } + + /// + /// The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + /// + [Input("nexthopResourceId")] + public Input? NexthopResourceId { get; set; } + + /// + /// The next hop resource type to filter for. routes with a similar next hop resource type are listed. + /// + [Input("nexthopResourceType")] + public Input? NexthopResourceType { get; set; } + + /// + /// `region`). The region in which the routes exist. + /// + [Input("region")] + public Input? Region { get; set; } + + [Input("tags")] + private InputList? _tags; + + /// + /// List of tags to filter for. routes with these exact tags are listed. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + + /// + /// The VPC ID to filter for. routes with a similar VPC ID are listed. + /// + [Input("vpcId")] + public Input? VpcId { get; set; } + + public GetVpcRoutesInvokeArgs() + { + } + public static new GetVpcRoutesInvokeArgs Empty => new GetVpcRoutesInvokeArgs(); + } + + + [OutputType] + public sealed class GetVpcRoutesResult + { + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly bool? IsIpv6; + public readonly string? NexthopPrivateNetworkId; + public readonly string? NexthopResourceId; + public readonly string? NexthopResourceType; + public readonly string Region; + /// + /// List of retrieved routes + /// + public readonly ImmutableArray Routes; + public readonly ImmutableArray Tags; + public readonly string? VpcId; + + [OutputConstructor] + private GetVpcRoutesResult( + string id, + + bool? isIpv6, + + string? nexthopPrivateNetworkId, + + string? nexthopResourceId, + + string? nexthopResourceType, + + string region, + + ImmutableArray routes, + + ImmutableArray tags, + + string? vpcId) + { + Id = id; + IsIpv6 = isIpv6; + NexthopPrivateNetworkId = nexthopPrivateNetworkId; + NexthopResourceId = nexthopResourceId; + NexthopResourceType = nexthopResourceType; + Region = region; + Routes = routes; + Tags = tags; + VpcId = vpcId; + } + } +} diff --git a/sdk/dotnet/Inputs/IamPolicyRuleArgs.cs b/sdk/dotnet/Inputs/IamPolicyRuleArgs.cs index 28b800a2..cc431580 100644 --- a/sdk/dotnet/Inputs/IamPolicyRuleArgs.cs +++ b/sdk/dotnet/Inputs/IamPolicyRuleArgs.cs @@ -28,7 +28,7 @@ public sealed class IamPolicyRuleArgs : global::Pulumi.ResourceArgs /// **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g: /// /// ```shell - /// $ scw IAM permission-set list + /// scw IAM permission-set list /// ``` /// public InputList PermissionSetNames diff --git a/sdk/dotnet/Inputs/IamPolicyRuleGetArgs.cs b/sdk/dotnet/Inputs/IamPolicyRuleGetArgs.cs index 086a282f..e7157e65 100644 --- a/sdk/dotnet/Inputs/IamPolicyRuleGetArgs.cs +++ b/sdk/dotnet/Inputs/IamPolicyRuleGetArgs.cs @@ -28,7 +28,7 @@ public sealed class IamPolicyRuleGetArgs : global::Pulumi.ResourceArgs /// **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g: /// /// ```shell - /// $ scw IAM permission-set list + /// scw IAM permission-set list /// ``` /// public InputList PermissionSetNames diff --git a/sdk/dotnet/Inputs/LoadbalancerPrivateNetworkArgs.cs b/sdk/dotnet/Inputs/LoadbalancerPrivateNetworkArgs.cs index 9e386d57..e71a4007 100644 --- a/sdk/dotnet/Inputs/LoadbalancerPrivateNetworkArgs.cs +++ b/sdk/dotnet/Inputs/LoadbalancerPrivateNetworkArgs.cs @@ -19,6 +19,12 @@ public sealed class LoadbalancerPrivateNetworkArgs : global::Pulumi.ResourceArgs [Input("dhcpConfig")] public Input? DhcpConfig { get; set; } + /// + /// (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. + /// + [Input("ipamIds")] + public Input? IpamIds { get; set; } + /// /// (Required) The ID of the Private Network to attach to. /// @@ -26,7 +32,7 @@ public sealed class LoadbalancerPrivateNetworkArgs : global::Pulumi.ResourceArgs public Input PrivateNetworkId { get; set; } = null!; /// - /// (Deprecated) Please use `dhcp_config`. Define a local ip address of your choice for the load balancer instance. + /// (Deprecated) Please use `ipam_ids`. Define a local ip address of your choice for the load balancer instance. /// [Input("staticConfig")] public Input? StaticConfig { get; set; } diff --git a/sdk/dotnet/Inputs/LoadbalancerPrivateNetworkGetArgs.cs b/sdk/dotnet/Inputs/LoadbalancerPrivateNetworkGetArgs.cs index 331a3feb..a8c4d12f 100644 --- a/sdk/dotnet/Inputs/LoadbalancerPrivateNetworkGetArgs.cs +++ b/sdk/dotnet/Inputs/LoadbalancerPrivateNetworkGetArgs.cs @@ -19,6 +19,12 @@ public sealed class LoadbalancerPrivateNetworkGetArgs : global::Pulumi.ResourceA [Input("dhcpConfig")] public Input? DhcpConfig { get; set; } + /// + /// (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. + /// + [Input("ipamIds")] + public Input? IpamIds { get; set; } + /// /// (Required) The ID of the Private Network to attach to. /// @@ -26,7 +32,7 @@ public sealed class LoadbalancerPrivateNetworkGetArgs : global::Pulumi.ResourceA public Input PrivateNetworkId { get; set; } = null!; /// - /// (Deprecated) Please use `dhcp_config`. Define a local ip address of your choice for the load balancer instance. + /// (Deprecated) Please use `ipam_ids`. Define a local ip address of your choice for the load balancer instance. /// [Input("staticConfig")] public Input? StaticConfig { get; set; } diff --git a/sdk/dotnet/InstanceServer.cs b/sdk/dotnet/InstanceServer.cs index ca69a7b2..7f6236e1 100644 --- a/sdk/dotnet/InstanceServer.cs +++ b/sdk/dotnet/InstanceServer.cs @@ -339,7 +339,7 @@ public partial class InstanceServer : global::Pulumi.CustomResource public Output EnableIpv6 { get; private set; } = null!; /// - /// The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + /// The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) /// to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. /// /// You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -600,7 +600,7 @@ public InputList AdditionalVolumeIds public Input? EnableIpv6 { get; set; } /// - /// The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + /// The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) /// to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. /// /// You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -810,7 +810,7 @@ public InputList AdditionalVolumeIds public Input? EnableIpv6 { get; set; } /// - /// The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + /// The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) /// to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. /// /// You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` diff --git a/sdk/dotnet/LoadbalancerIp.cs b/sdk/dotnet/LoadbalancerIp.cs index 093a2ee3..f41b9a96 100644 --- a/sdk/dotnet/LoadbalancerIp.cs +++ b/sdk/dotnet/LoadbalancerIp.cs @@ -108,6 +108,12 @@ public partial class LoadbalancerIp : global::Pulumi.CustomResource [Output("reverse")] public Output Reverse { get; private set; } = null!; + /// + /// The tags associated with this IP. + /// + [Output("tags")] + public Output> Tags { get; private set; } = null!; + /// /// `zone`) The zone in which the IP should be reserved. /// @@ -179,6 +185,18 @@ public sealed class LoadbalancerIpArgs : global::Pulumi.ResourceArgs [Input("reverse")] public Input? Reverse { get; set; } + [Input("tags")] + private InputList? _tags; + + /// + /// The tags associated with this IP. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + /// /// `zone`) The zone in which the IP should be reserved. /// @@ -235,6 +253,18 @@ public sealed class LoadbalancerIpState : global::Pulumi.ResourceArgs [Input("reverse")] public Input? Reverse { get; set; } + [Input("tags")] + private InputList? _tags; + + /// + /// The tags associated with this IP. + /// + public InputList Tags + { + get => _tags ?? (_tags = new InputList()); + set => _tags = value; + } + /// /// `zone`) The zone in which the IP should be reserved. /// diff --git a/sdk/dotnet/Outputs/GetLbIpsIpResult.cs b/sdk/dotnet/Outputs/GetLbIpsIpResult.cs index 5695ca84..86a1f902 100644 --- a/sdk/dotnet/Outputs/GetLbIpsIpResult.cs +++ b/sdk/dotnet/Outputs/GetLbIpsIpResult.cs @@ -39,6 +39,10 @@ public sealed class GetLbIpsIpResult /// public readonly string Reverse; /// + /// List of tags used as filter. IPs with these exact tags are listed. + /// + public readonly ImmutableArray Tags; + /// /// `zone`) The zone in which the IPs exist. /// public readonly string Zone; @@ -57,6 +61,8 @@ private GetLbIpsIpResult( string reverse, + ImmutableArray tags, + string zone) { Id = id; @@ -65,6 +71,7 @@ private GetLbIpsIpResult( OrganizationId = organizationId; ProjectId = projectId; Reverse = reverse; + Tags = tags; Zone = zone; } } diff --git a/sdk/dotnet/Outputs/GetLoadbalancerPrivateNetworkResult.cs b/sdk/dotnet/Outputs/GetLoadbalancerPrivateNetworkResult.cs index 9f98fb3c..4637bddf 100644 --- a/sdk/dotnet/Outputs/GetLoadbalancerPrivateNetworkResult.cs +++ b/sdk/dotnet/Outputs/GetLoadbalancerPrivateNetworkResult.cs @@ -19,6 +19,10 @@ public sealed class GetLoadbalancerPrivateNetworkResult /// public readonly bool DhcpConfig; /// + /// IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network + /// + public readonly ImmutableArray IpamIds; + /// /// The Private Network ID /// public readonly string PrivateNetworkId; @@ -39,6 +43,8 @@ public sealed class GetLoadbalancerPrivateNetworkResult private GetLoadbalancerPrivateNetworkResult( bool dhcpConfig, + ImmutableArray ipamIds, + string privateNetworkId, ImmutableArray staticConfigs, @@ -48,6 +54,7 @@ private GetLoadbalancerPrivateNetworkResult( string zone) { DhcpConfig = dhcpConfig; + IpamIds = ipamIds; PrivateNetworkId = privateNetworkId; StaticConfigs = staticConfigs; Status = status; diff --git a/sdk/dotnet/Outputs/GetVpcRoutesRouteResult.cs b/sdk/dotnet/Outputs/GetVpcRoutesRouteResult.cs new file mode 100644 index 00000000..d1a81ac8 --- /dev/null +++ b/sdk/dotnet/Outputs/GetVpcRoutesRouteResult.cs @@ -0,0 +1,107 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace Pulumiverse.Scaleway.Outputs +{ + + [OutputType] + public sealed class GetVpcRoutesRouteResult + { + /// + /// The date on which the route was created (RFC 3339 format). + /// + public readonly string CreatedAt; + /// + /// The description of the route. + /// + public readonly string Description; + /// + /// The destination IP or IP range of the route. + /// + public readonly string Destination; + /// + /// The ID of the route. + /// > **Important:** route IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111 + /// + public readonly string Id; + /// + /// The IP of the route's next hop. + /// + public readonly string NexthopIp; + /// + /// The name of the route's next hop. + /// + public readonly string NexthopName; + /// + /// The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + /// + public readonly string NexthopPrivateNetworkId; + /// + /// The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + /// + public readonly string NexthopResourceId; + /// + /// The next hop resource type to filter for. routes with a similar next hop resource type are listed. + /// + public readonly string NexthopResourceType; + /// + /// `region`). The region in which the routes exist. + /// + public readonly string Region; + /// + /// List of tags to filter for. routes with these exact tags are listed. + /// + public readonly ImmutableArray Tags; + /// + /// The VPC ID to filter for. routes with a similar VPC ID are listed. + /// + public readonly string VpcId; + + [OutputConstructor] + private GetVpcRoutesRouteResult( + string createdAt, + + string description, + + string destination, + + string id, + + string nexthopIp, + + string nexthopName, + + string nexthopPrivateNetworkId, + + string nexthopResourceId, + + string nexthopResourceType, + + string region, + + ImmutableArray tags, + + string vpcId) + { + CreatedAt = createdAt; + Description = description; + Destination = destination; + Id = id; + NexthopIp = nexthopIp; + NexthopName = nexthopName; + NexthopPrivateNetworkId = nexthopPrivateNetworkId; + NexthopResourceId = nexthopResourceId; + NexthopResourceType = nexthopResourceType; + Region = region; + Tags = tags; + VpcId = vpcId; + } + } +} diff --git a/sdk/dotnet/Outputs/IamPolicyRule.cs b/sdk/dotnet/Outputs/IamPolicyRule.cs index 17548f5b..32706883 100644 --- a/sdk/dotnet/Outputs/IamPolicyRule.cs +++ b/sdk/dotnet/Outputs/IamPolicyRule.cs @@ -24,7 +24,7 @@ public sealed class IamPolicyRule /// **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g: /// /// ```shell - /// $ scw IAM permission-set list + /// scw IAM permission-set list /// ``` /// public readonly ImmutableArray PermissionSetNames; diff --git a/sdk/dotnet/Outputs/LoadbalancerPrivateNetwork.cs b/sdk/dotnet/Outputs/LoadbalancerPrivateNetwork.cs index 9ccb5f91..b60efb19 100644 --- a/sdk/dotnet/Outputs/LoadbalancerPrivateNetwork.cs +++ b/sdk/dotnet/Outputs/LoadbalancerPrivateNetwork.cs @@ -19,11 +19,15 @@ public sealed class LoadbalancerPrivateNetwork /// public readonly bool? DhcpConfig; /// + /// (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. + /// + public readonly string? IpamIds; + /// /// (Required) The ID of the Private Network to attach to. /// public readonly string PrivateNetworkId; /// - /// (Deprecated) Please use `dhcp_config`. Define a local ip address of your choice for the load balancer instance. + /// (Deprecated) Please use `ipam_ids`. Define a local ip address of your choice for the load balancer instance. /// public readonly string? StaticConfig; /// @@ -39,6 +43,8 @@ public sealed class LoadbalancerPrivateNetwork private LoadbalancerPrivateNetwork( bool? dhcpConfig, + string? ipamIds, + string privateNetworkId, string? staticConfig, @@ -48,6 +54,7 @@ private LoadbalancerPrivateNetwork( string? zone) { DhcpConfig = dhcpConfig; + IpamIds = ipamIds; PrivateNetworkId = privateNetworkId; StaticConfig = staticConfig; Status = status; diff --git a/sdk/go/scaleway/container.go b/sdk/go/scaleway/container.go index 2d78a8fa..8fa1dc26 100644 --- a/sdk/go/scaleway/container.go +++ b/sdk/go/scaleway/container.go @@ -168,6 +168,8 @@ type Container struct { RegistryImage pulumi.StringOutput `pulumi:"registryImage"` // The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. RegistrySha256 pulumi.StringPtrOutput `pulumi:"registrySha256"` + // Execution environment of the container. + Sandbox pulumi.StringOutput `pulumi:"sandbox"` // The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. SecretEnvironmentVariables pulumi.StringMapOutput `pulumi:"secretEnvironmentVariables"` // The container status. @@ -262,6 +264,8 @@ type containerState struct { RegistryImage *string `pulumi:"registryImage"` // The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. RegistrySha256 *string `pulumi:"registrySha256"` + // Execution environment of the container. + Sandbox *string `pulumi:"sandbox"` // The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. SecretEnvironmentVariables map[string]string `pulumi:"secretEnvironmentVariables"` // The container status. @@ -317,6 +321,8 @@ type ContainerState struct { RegistryImage pulumi.StringPtrInput // The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. RegistrySha256 pulumi.StringPtrInput + // Execution environment of the container. + Sandbox pulumi.StringPtrInput // The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. SecretEnvironmentVariables pulumi.StringMapInput // The container status. @@ -370,6 +376,8 @@ type containerArgs struct { RegistryImage *string `pulumi:"registryImage"` // The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. RegistrySha256 *string `pulumi:"registrySha256"` + // Execution environment of the container. + Sandbox *string `pulumi:"sandbox"` // The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. SecretEnvironmentVariables map[string]string `pulumi:"secretEnvironmentVariables"` // The container status. @@ -420,6 +428,8 @@ type ContainerArgs struct { RegistryImage pulumi.StringPtrInput // The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. RegistrySha256 pulumi.StringPtrInput + // Execution environment of the container. + Sandbox pulumi.StringPtrInput // The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. SecretEnvironmentVariables pulumi.StringMapInput // The container status. @@ -621,6 +631,11 @@ func (o ContainerOutput) RegistrySha256() pulumi.StringPtrOutput { return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.RegistrySha256 }).(pulumi.StringPtrOutput) } +// Execution environment of the container. +func (o ContainerOutput) Sandbox() pulumi.StringOutput { + return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.Sandbox }).(pulumi.StringOutput) +} + // The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. func (o ContainerOutput) SecretEnvironmentVariables() pulumi.StringMapOutput { return o.ApplyT(func(v *Container) pulumi.StringMapOutput { return v.SecretEnvironmentVariables }).(pulumi.StringMapOutput) diff --git a/sdk/go/scaleway/function.go b/sdk/go/scaleway/function.go index bd08b755..225d24e9 100644 --- a/sdk/go/scaleway/function.go +++ b/sdk/go/scaleway/function.go @@ -99,6 +99,8 @@ type Function struct { Region pulumi.StringOutput `pulumi:"region"` // Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a Runtime pulumi.StringOutput `pulumi:"runtime"` + // Execution environment of the function. + Sandbox pulumi.StringOutput `pulumi:"sandbox"` // The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. SecretEnvironmentVariables pulumi.StringMapOutput `pulumi:"secretEnvironmentVariables"` // Holds the max duration (in seconds) the function is allowed for responding to a request @@ -193,6 +195,8 @@ type functionState struct { Region *string `pulumi:"region"` // Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a Runtime *string `pulumi:"runtime"` + // Execution environment of the function. + Sandbox *string `pulumi:"sandbox"` // The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. SecretEnvironmentVariables map[string]string `pulumi:"secretEnvironmentVariables"` // Holds the max duration (in seconds) the function is allowed for responding to a request @@ -239,6 +243,8 @@ type FunctionState struct { Region pulumi.StringPtrInput // Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a Runtime pulumi.StringPtrInput + // Execution environment of the function. + Sandbox pulumi.StringPtrInput // The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. SecretEnvironmentVariables pulumi.StringMapInput // Holds the max duration (in seconds) the function is allowed for responding to a request @@ -283,6 +289,8 @@ type functionArgs struct { Region *string `pulumi:"region"` // Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a Runtime string `pulumi:"runtime"` + // Execution environment of the function. + Sandbox *string `pulumi:"sandbox"` // The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. SecretEnvironmentVariables map[string]string `pulumi:"secretEnvironmentVariables"` // Holds the max duration (in seconds) the function is allowed for responding to a request @@ -324,6 +332,8 @@ type FunctionArgs struct { Region pulumi.StringPtrInput // Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a Runtime pulumi.StringInput + // Execution environment of the function. + Sandbox pulumi.StringPtrInput // The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. SecretEnvironmentVariables pulumi.StringMapInput // Holds the max duration (in seconds) the function is allowed for responding to a request @@ -507,6 +517,11 @@ func (o FunctionOutput) Runtime() pulumi.StringOutput { return o.ApplyT(func(v *Function) pulumi.StringOutput { return v.Runtime }).(pulumi.StringOutput) } +// Execution environment of the function. +func (o FunctionOutput) Sandbox() pulumi.StringOutput { + return o.ApplyT(func(v *Function) pulumi.StringOutput { return v.Sandbox }).(pulumi.StringOutput) +} + // The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. func (o FunctionOutput) SecretEnvironmentVariables() pulumi.StringMapOutput { return o.ApplyT(func(v *Function) pulumi.StringMapOutput { return v.SecretEnvironmentVariables }).(pulumi.StringMapOutput) diff --git a/sdk/go/scaleway/getContainer.go b/sdk/go/scaleway/getContainer.go index a74220ad..91f153f3 100644 --- a/sdk/go/scaleway/getContainer.go +++ b/sdk/go/scaleway/getContainer.go @@ -123,7 +123,9 @@ type LookupContainerResult struct { // The registry image address. e.g: **"rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE"**. RegistryImage string `pulumi:"registryImage"` // The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. - RegistrySha256 string `pulumi:"registrySha256"` + RegistrySha256 string `pulumi:"registrySha256"` + // (Optional) Execution environment of the container. + Sandbox string `pulumi:"sandbox"` SecretEnvironmentVariables map[string]string `pulumi:"secretEnvironmentVariables"` // The container status. Status string `pulumi:"status"` @@ -288,6 +290,11 @@ func (o LookupContainerResultOutput) RegistrySha256() pulumi.StringOutput { return o.ApplyT(func(v LookupContainerResult) string { return v.RegistrySha256 }).(pulumi.StringOutput) } +// (Optional) Execution environment of the container. +func (o LookupContainerResultOutput) Sandbox() pulumi.StringOutput { + return o.ApplyT(func(v LookupContainerResult) string { return v.Sandbox }).(pulumi.StringOutput) +} + func (o LookupContainerResultOutput) SecretEnvironmentVariables() pulumi.StringMapOutput { return o.ApplyT(func(v LookupContainerResult) map[string]string { return v.SecretEnvironmentVariables }).(pulumi.StringMapOutput) } diff --git a/sdk/go/scaleway/getFunction.go b/sdk/go/scaleway/getFunction.go index 8e6ca8f9..34205c44 100644 --- a/sdk/go/scaleway/getFunction.go +++ b/sdk/go/scaleway/getFunction.go @@ -85,6 +85,7 @@ type LookupFunctionResult struct { ProjectId *string `pulumi:"projectId"` Region *string `pulumi:"region"` Runtime string `pulumi:"runtime"` + Sandbox string `pulumi:"sandbox"` SecretEnvironmentVariables map[string]string `pulumi:"secretEnvironmentVariables"` Timeout int `pulumi:"timeout"` ZipFile string `pulumi:"zipFile"` @@ -214,6 +215,10 @@ func (o LookupFunctionResultOutput) Runtime() pulumi.StringOutput { return o.ApplyT(func(v LookupFunctionResult) string { return v.Runtime }).(pulumi.StringOutput) } +func (o LookupFunctionResultOutput) Sandbox() pulumi.StringOutput { + return o.ApplyT(func(v LookupFunctionResult) string { return v.Sandbox }).(pulumi.StringOutput) +} + func (o LookupFunctionResultOutput) SecretEnvironmentVariables() pulumi.StringMapOutput { return o.ApplyT(func(v LookupFunctionResult) map[string]string { return v.SecretEnvironmentVariables }).(pulumi.StringMapOutput) } diff --git a/sdk/go/scaleway/getIamApiKey.go b/sdk/go/scaleway/getIamApiKey.go new file mode 100644 index 00000000..c7eedbec --- /dev/null +++ b/sdk/go/scaleway/getIamApiKey.go @@ -0,0 +1,158 @@ +// 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 scaleway + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/internal" +) + +// Gets information about an existing IAM API key. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae). +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := scaleway.LookupIamApiKey(ctx, &scaleway.LookupIamApiKeyArgs{ +// AccessKey: "SCWABCDEFGHIJKLMNOPQ", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +func LookupIamApiKey(ctx *pulumi.Context, args *LookupIamApiKeyArgs, opts ...pulumi.InvokeOption) (*LookupIamApiKeyResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv LookupIamApiKeyResult + err := ctx.Invoke("scaleway:index/getIamApiKey:getIamApiKey", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getIamApiKey. +type LookupIamApiKeyArgs struct { + // The access key of the IAM API key which is also the ID of the API key. + AccessKey string `pulumi:"accessKey"` +} + +// A collection of values returned by getIamApiKey. +type LookupIamApiKeyResult struct { + AccessKey string `pulumi:"accessKey"` + ApplicationId string `pulumi:"applicationId"` + CreatedAt string `pulumi:"createdAt"` + CreationIp string `pulumi:"creationIp"` + DefaultProjectId string `pulumi:"defaultProjectId"` + Description string `pulumi:"description"` + Editable bool `pulumi:"editable"` + ExpiresAt string `pulumi:"expiresAt"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + UpdatedAt string `pulumi:"updatedAt"` + UserId string `pulumi:"userId"` +} + +func LookupIamApiKeyOutput(ctx *pulumi.Context, args LookupIamApiKeyOutputArgs, opts ...pulumi.InvokeOption) LookupIamApiKeyResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (LookupIamApiKeyResult, error) { + args := v.(LookupIamApiKeyArgs) + r, err := LookupIamApiKey(ctx, &args, opts...) + var s LookupIamApiKeyResult + if r != nil { + s = *r + } + return s, err + }).(LookupIamApiKeyResultOutput) +} + +// A collection of arguments for invoking getIamApiKey. +type LookupIamApiKeyOutputArgs struct { + // The access key of the IAM API key which is also the ID of the API key. + AccessKey pulumi.StringInput `pulumi:"accessKey"` +} + +func (LookupIamApiKeyOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LookupIamApiKeyArgs)(nil)).Elem() +} + +// A collection of values returned by getIamApiKey. +type LookupIamApiKeyResultOutput struct{ *pulumi.OutputState } + +func (LookupIamApiKeyResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LookupIamApiKeyResult)(nil)).Elem() +} + +func (o LookupIamApiKeyResultOutput) ToLookupIamApiKeyResultOutput() LookupIamApiKeyResultOutput { + return o +} + +func (o LookupIamApiKeyResultOutput) ToLookupIamApiKeyResultOutputWithContext(ctx context.Context) LookupIamApiKeyResultOutput { + return o +} + +func (o LookupIamApiKeyResultOutput) AccessKey() pulumi.StringOutput { + return o.ApplyT(func(v LookupIamApiKeyResult) string { return v.AccessKey }).(pulumi.StringOutput) +} + +func (o LookupIamApiKeyResultOutput) ApplicationId() pulumi.StringOutput { + return o.ApplyT(func(v LookupIamApiKeyResult) string { return v.ApplicationId }).(pulumi.StringOutput) +} + +func (o LookupIamApiKeyResultOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v LookupIamApiKeyResult) string { return v.CreatedAt }).(pulumi.StringOutput) +} + +func (o LookupIamApiKeyResultOutput) CreationIp() pulumi.StringOutput { + return o.ApplyT(func(v LookupIamApiKeyResult) string { return v.CreationIp }).(pulumi.StringOutput) +} + +func (o LookupIamApiKeyResultOutput) DefaultProjectId() pulumi.StringOutput { + return o.ApplyT(func(v LookupIamApiKeyResult) string { return v.DefaultProjectId }).(pulumi.StringOutput) +} + +func (o LookupIamApiKeyResultOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v LookupIamApiKeyResult) string { return v.Description }).(pulumi.StringOutput) +} + +func (o LookupIamApiKeyResultOutput) Editable() pulumi.BoolOutput { + return o.ApplyT(func(v LookupIamApiKeyResult) bool { return v.Editable }).(pulumi.BoolOutput) +} + +func (o LookupIamApiKeyResultOutput) ExpiresAt() pulumi.StringOutput { + return o.ApplyT(func(v LookupIamApiKeyResult) string { return v.ExpiresAt }).(pulumi.StringOutput) +} + +// The provider-assigned unique ID for this managed resource. +func (o LookupIamApiKeyResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v LookupIamApiKeyResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o LookupIamApiKeyResultOutput) UpdatedAt() pulumi.StringOutput { + return o.ApplyT(func(v LookupIamApiKeyResult) string { return v.UpdatedAt }).(pulumi.StringOutput) +} + +func (o LookupIamApiKeyResultOutput) UserId() pulumi.StringOutput { + return o.ApplyT(func(v LookupIamApiKeyResult) string { return v.UserId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(LookupIamApiKeyResultOutput{}) +} diff --git a/sdk/go/scaleway/getLbIps.go b/sdk/go/scaleway/getLbIps.go index af1fd084..bfabaa2a 100644 --- a/sdk/go/scaleway/getLbIps.go +++ b/sdk/go/scaleway/getLbIps.go @@ -36,6 +36,15 @@ import ( // if err != nil { // return err // } +// _, err = scaleway.GetLbIps(ctx, &scaleway.GetLbIpsArgs{ +// IpType: pulumi.StringRef("ipv4"), +// Tags: []string{ +// "a tag", +// }, +// }, nil) +// if err != nil { +// return err +// } // return nil // }) // } @@ -55,8 +64,12 @@ func GetLbIps(ctx *pulumi.Context, args *GetLbIpsArgs, opts ...pulumi.InvokeOpti type GetLbIpsArgs struct { // The IP CIDR range to filter for. IPs within a matching CIDR block are listed. IpCidrRange *string `pulumi:"ipCidrRange"` + // The IP type used as a filter. + IpType *string `pulumi:"ipType"` // The ID of the Project the Load Balancer is associated with. ProjectId *string `pulumi:"projectId"` + // List of tags used as filter. IPs with these exact tags are listed. + Tags []string `pulumi:"tags"` // `zone`) The zone in which the IPs exist. Zone *string `pulumi:"zone"` } @@ -66,12 +79,14 @@ type GetLbIpsResult struct { // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` IpCidrRange *string `pulumi:"ipCidrRange"` + IpType *string `pulumi:"ipType"` // List of retrieved IPs Ips []GetLbIpsIp `pulumi:"ips"` // The ID of the Organization the Load Balancer is associated with. OrganizationId string `pulumi:"organizationId"` // The ID of the Project the Load Balancer is associated with. - ProjectId string `pulumi:"projectId"` + ProjectId string `pulumi:"projectId"` + Tags []string `pulumi:"tags"` // The zone of the Load Balancer. Zone string `pulumi:"zone"` } @@ -93,8 +108,12 @@ func GetLbIpsOutput(ctx *pulumi.Context, args GetLbIpsOutputArgs, opts ...pulumi type GetLbIpsOutputArgs struct { // The IP CIDR range to filter for. IPs within a matching CIDR block are listed. IpCidrRange pulumi.StringPtrInput `pulumi:"ipCidrRange"` + // The IP type used as a filter. + IpType pulumi.StringPtrInput `pulumi:"ipType"` // The ID of the Project the Load Balancer is associated with. ProjectId pulumi.StringPtrInput `pulumi:"projectId"` + // List of tags used as filter. IPs with these exact tags are listed. + Tags pulumi.StringArrayInput `pulumi:"tags"` // `zone`) The zone in which the IPs exist. Zone pulumi.StringPtrInput `pulumi:"zone"` } @@ -127,6 +146,10 @@ func (o GetLbIpsResultOutput) IpCidrRange() pulumi.StringPtrOutput { return o.ApplyT(func(v GetLbIpsResult) *string { return v.IpCidrRange }).(pulumi.StringPtrOutput) } +func (o GetLbIpsResultOutput) IpType() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetLbIpsResult) *string { return v.IpType }).(pulumi.StringPtrOutput) +} + // List of retrieved IPs func (o GetLbIpsResultOutput) Ips() GetLbIpsIpArrayOutput { return o.ApplyT(func(v GetLbIpsResult) []GetLbIpsIp { return v.Ips }).(GetLbIpsIpArrayOutput) @@ -142,6 +165,10 @@ func (o GetLbIpsResultOutput) ProjectId() pulumi.StringOutput { return o.ApplyT(func(v GetLbIpsResult) string { return v.ProjectId }).(pulumi.StringOutput) } +func (o GetLbIpsResultOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetLbIpsResult) []string { return v.Tags }).(pulumi.StringArrayOutput) +} + // The zone of the Load Balancer. func (o GetLbIpsResultOutput) Zone() pulumi.StringOutput { return o.ApplyT(func(v GetLbIpsResult) string { return v.Zone }).(pulumi.StringOutput) diff --git a/sdk/go/scaleway/getLoadbalancerIp.go b/sdk/go/scaleway/getLoadbalancerIp.go index 316d66f3..25724de6 100644 --- a/sdk/go/scaleway/getLoadbalancerIp.go +++ b/sdk/go/scaleway/getLoadbalancerIp.go @@ -77,7 +77,9 @@ type LookupLoadbalancerIpResult struct { Region string `pulumi:"region"` // The reverse domain associated with this IP. Reverse string `pulumi:"reverse"` - Zone string `pulumi:"zone"` + // The tags associated with this IP. + Tags []string `pulumi:"tags"` + Zone string `pulumi:"zone"` } func LookupLoadbalancerIpOutput(ctx *pulumi.Context, args LookupLoadbalancerIpOutputArgs, opts ...pulumi.InvokeOption) LookupLoadbalancerIpResultOutput { @@ -164,6 +166,11 @@ func (o LookupLoadbalancerIpResultOutput) Reverse() pulumi.StringOutput { return o.ApplyT(func(v LookupLoadbalancerIpResult) string { return v.Reverse }).(pulumi.StringOutput) } +// The tags associated with this IP. +func (o LookupLoadbalancerIpResultOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v LookupLoadbalancerIpResult) []string { return v.Tags }).(pulumi.StringArrayOutput) +} + func (o LookupLoadbalancerIpResultOutput) Zone() pulumi.StringOutput { return o.ApplyT(func(v LookupLoadbalancerIpResult) string { return v.Zone }).(pulumi.StringOutput) } diff --git a/sdk/go/scaleway/getMarketplaceImage.go b/sdk/go/scaleway/getMarketplaceImage.go index a10a6def..71b2dcb8 100644 --- a/sdk/go/scaleway/getMarketplaceImage.go +++ b/sdk/go/scaleway/getMarketplaceImage.go @@ -53,7 +53,7 @@ type GetMarketplaceImageArgs struct { // The instance type the image is compatible with. // You find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/). InstanceType *string `pulumi:"instanceType"` - // Exact label of the desired image. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + // Exact label of the desired image. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) // to find the right `label`. Label string `pulumi:"label"` // `zone`) The zone in which the image exists. @@ -87,7 +87,7 @@ type GetMarketplaceImageOutputArgs struct { // The instance type the image is compatible with. // You find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/). InstanceType pulumi.StringPtrInput `pulumi:"instanceType"` - // Exact label of the desired image. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + // Exact label of the desired image. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) // to find the right `label`. Label pulumi.StringInput `pulumi:"label"` // `zone`) The zone in which the image exists. diff --git a/sdk/go/scaleway/getVpcRoutes.go b/sdk/go/scaleway/getVpcRoutes.go new file mode 100644 index 00000000..4bb39e8c --- /dev/null +++ b/sdk/go/scaleway/getVpcRoutes.go @@ -0,0 +1,148 @@ +// 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 scaleway + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/internal" +) + +// Gets information about multiple VPC routes. +func GetVpcRoutes(ctx *pulumi.Context, args *GetVpcRoutesArgs, opts ...pulumi.InvokeOption) (*GetVpcRoutesResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetVpcRoutesResult + err := ctx.Invoke("scaleway:index/getVpcRoutes:getVpcRoutes", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getVpcRoutes. +type GetVpcRoutesArgs struct { + // Routes with an IPv6 destination will be listed. + IsIpv6 *bool `pulumi:"isIpv6"` + // The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + NexthopPrivateNetworkId *string `pulumi:"nexthopPrivateNetworkId"` + // The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + NexthopResourceId *string `pulumi:"nexthopResourceId"` + // The next hop resource type to filter for. routes with a similar next hop resource type are listed. + NexthopResourceType *string `pulumi:"nexthopResourceType"` + // `region`). The region in which the routes exist. + Region *string `pulumi:"region"` + // List of tags to filter for. routes with these exact tags are listed. + Tags []string `pulumi:"tags"` + // The VPC ID to filter for. routes with a similar VPC ID are listed. + VpcId *string `pulumi:"vpcId"` +} + +// A collection of values returned by getVpcRoutes. +type GetVpcRoutesResult struct { + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + IsIpv6 *bool `pulumi:"isIpv6"` + NexthopPrivateNetworkId *string `pulumi:"nexthopPrivateNetworkId"` + NexthopResourceId *string `pulumi:"nexthopResourceId"` + NexthopResourceType *string `pulumi:"nexthopResourceType"` + Region string `pulumi:"region"` + // List of retrieved routes + Routes []GetVpcRoutesRoute `pulumi:"routes"` + Tags []string `pulumi:"tags"` + VpcId *string `pulumi:"vpcId"` +} + +func GetVpcRoutesOutput(ctx *pulumi.Context, args GetVpcRoutesOutputArgs, opts ...pulumi.InvokeOption) GetVpcRoutesResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetVpcRoutesResult, error) { + args := v.(GetVpcRoutesArgs) + r, err := GetVpcRoutes(ctx, &args, opts...) + var s GetVpcRoutesResult + if r != nil { + s = *r + } + return s, err + }).(GetVpcRoutesResultOutput) +} + +// A collection of arguments for invoking getVpcRoutes. +type GetVpcRoutesOutputArgs struct { + // Routes with an IPv6 destination will be listed. + IsIpv6 pulumi.BoolPtrInput `pulumi:"isIpv6"` + // The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + NexthopPrivateNetworkId pulumi.StringPtrInput `pulumi:"nexthopPrivateNetworkId"` + // The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + NexthopResourceId pulumi.StringPtrInput `pulumi:"nexthopResourceId"` + // The next hop resource type to filter for. routes with a similar next hop resource type are listed. + NexthopResourceType pulumi.StringPtrInput `pulumi:"nexthopResourceType"` + // `region`). The region in which the routes exist. + Region pulumi.StringPtrInput `pulumi:"region"` + // List of tags to filter for. routes with these exact tags are listed. + Tags pulumi.StringArrayInput `pulumi:"tags"` + // The VPC ID to filter for. routes with a similar VPC ID are listed. + VpcId pulumi.StringPtrInput `pulumi:"vpcId"` +} + +func (GetVpcRoutesOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetVpcRoutesArgs)(nil)).Elem() +} + +// A collection of values returned by getVpcRoutes. +type GetVpcRoutesResultOutput struct{ *pulumi.OutputState } + +func (GetVpcRoutesResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetVpcRoutesResult)(nil)).Elem() +} + +func (o GetVpcRoutesResultOutput) ToGetVpcRoutesResultOutput() GetVpcRoutesResultOutput { + return o +} + +func (o GetVpcRoutesResultOutput) ToGetVpcRoutesResultOutputWithContext(ctx context.Context) GetVpcRoutesResultOutput { + return o +} + +// The provider-assigned unique ID for this managed resource. +func (o GetVpcRoutesResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesResult) string { return v.Id }).(pulumi.StringOutput) +} + +func (o GetVpcRoutesResultOutput) IsIpv6() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetVpcRoutesResult) *bool { return v.IsIpv6 }).(pulumi.BoolPtrOutput) +} + +func (o GetVpcRoutesResultOutput) NexthopPrivateNetworkId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetVpcRoutesResult) *string { return v.NexthopPrivateNetworkId }).(pulumi.StringPtrOutput) +} + +func (o GetVpcRoutesResultOutput) NexthopResourceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetVpcRoutesResult) *string { return v.NexthopResourceId }).(pulumi.StringPtrOutput) +} + +func (o GetVpcRoutesResultOutput) NexthopResourceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetVpcRoutesResult) *string { return v.NexthopResourceType }).(pulumi.StringPtrOutput) +} + +func (o GetVpcRoutesResultOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesResult) string { return v.Region }).(pulumi.StringOutput) +} + +// List of retrieved routes +func (o GetVpcRoutesResultOutput) Routes() GetVpcRoutesRouteArrayOutput { + return o.ApplyT(func(v GetVpcRoutesResult) []GetVpcRoutesRoute { return v.Routes }).(GetVpcRoutesRouteArrayOutput) +} + +func (o GetVpcRoutesResultOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetVpcRoutesResult) []string { return v.Tags }).(pulumi.StringArrayOutput) +} + +func (o GetVpcRoutesResultOutput) VpcId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetVpcRoutesResult) *string { return v.VpcId }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(GetVpcRoutesResultOutput{}) +} diff --git a/sdk/go/scaleway/instanceServer.go b/sdk/go/scaleway/instanceServer.go index bd359235..9291562b 100644 --- a/sdk/go/scaleway/instanceServer.go +++ b/sdk/go/scaleway/instanceServer.go @@ -382,7 +382,7 @@ type InstanceServer struct { EnableDynamicIp pulumi.BoolPtrOutput `pulumi:"enableDynamicIp"` // Determines if IPv6 is enabled for the server. Useful only with `routedIpEnabled` as false, otherwise ipv6 is always supported. EnableIpv6 pulumi.BoolPtrOutput `pulumi:"enableIpv6"` - // The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + // The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) // to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. // // You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -504,7 +504,7 @@ type instanceServerState struct { EnableDynamicIp *bool `pulumi:"enableDynamicIp"` // Determines if IPv6 is enabled for the server. Useful only with `routedIpEnabled` as false, otherwise ipv6 is always supported. EnableIpv6 *bool `pulumi:"enableIpv6"` - // The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + // The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) // to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. // // You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -594,7 +594,7 @@ type InstanceServerState struct { EnableDynamicIp pulumi.BoolPtrInput // Determines if IPv6 is enabled for the server. Useful only with `routedIpEnabled` as false, otherwise ipv6 is always supported. EnableIpv6 pulumi.BoolPtrInput - // The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + // The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) // to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. // // You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -688,7 +688,7 @@ type instanceServerArgs struct { EnableDynamicIp *bool `pulumi:"enableDynamicIp"` // Determines if IPv6 is enabled for the server. Useful only with `routedIpEnabled` as false, otherwise ipv6 is always supported. EnableIpv6 *bool `pulumi:"enableIpv6"` - // The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + // The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) // to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. // // You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -765,7 +765,7 @@ type InstanceServerArgs struct { EnableDynamicIp pulumi.BoolPtrInput // Determines if IPv6 is enabled for the server. Useful only with `routedIpEnabled` as false, otherwise ipv6 is always supported. EnableIpv6 pulumi.BoolPtrInput - // The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + // The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) // to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. // // You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -945,7 +945,7 @@ func (o InstanceServerOutput) EnableIpv6() pulumi.BoolPtrOutput { return o.ApplyT(func(v *InstanceServer) pulumi.BoolPtrOutput { return v.EnableIpv6 }).(pulumi.BoolPtrOutput) } -// The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) +// The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) // to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. // // You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` diff --git a/sdk/go/scaleway/loadbalancerIp.go b/sdk/go/scaleway/loadbalancerIp.go index c5e172ae..778c1557 100644 --- a/sdk/go/scaleway/loadbalancerIp.go +++ b/sdk/go/scaleway/loadbalancerIp.go @@ -95,6 +95,8 @@ type LoadbalancerIp struct { Region pulumi.StringOutput `pulumi:"region"` // The reverse domain associated with this IP. Reverse pulumi.StringOutput `pulumi:"reverse"` + // The tags associated with this IP. + Tags pulumi.StringArrayOutput `pulumi:"tags"` // `zone`) The zone in which the IP should be reserved. Zone pulumi.StringOutput `pulumi:"zone"` } @@ -143,6 +145,8 @@ type loadbalancerIpState struct { Region *string `pulumi:"region"` // The reverse domain associated with this IP. Reverse *string `pulumi:"reverse"` + // The tags associated with this IP. + Tags []string `pulumi:"tags"` // `zone`) The zone in which the IP should be reserved. Zone *string `pulumi:"zone"` } @@ -162,6 +166,8 @@ type LoadbalancerIpState struct { Region pulumi.StringPtrInput // The reverse domain associated with this IP. Reverse pulumi.StringPtrInput + // The tags associated with this IP. + Tags pulumi.StringArrayInput // `zone`) The zone in which the IP should be reserved. Zone pulumi.StringPtrInput } @@ -177,6 +183,8 @@ type loadbalancerIpArgs struct { ProjectId *string `pulumi:"projectId"` // The reverse domain associated with this IP. Reverse *string `pulumi:"reverse"` + // The tags associated with this IP. + Tags []string `pulumi:"tags"` // `zone`) The zone in which the IP should be reserved. Zone *string `pulumi:"zone"` } @@ -189,6 +197,8 @@ type LoadbalancerIpArgs struct { ProjectId pulumi.StringPtrInput // The reverse domain associated with this IP. Reverse pulumi.StringPtrInput + // The tags associated with this IP. + Tags pulumi.StringArrayInput // `zone`) The zone in which the IP should be reserved. Zone pulumi.StringPtrInput } @@ -315,6 +325,11 @@ func (o LoadbalancerIpOutput) Reverse() pulumi.StringOutput { return o.ApplyT(func(v *LoadbalancerIp) pulumi.StringOutput { return v.Reverse }).(pulumi.StringOutput) } +// The tags associated with this IP. +func (o LoadbalancerIpOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v *LoadbalancerIp) pulumi.StringArrayOutput { return v.Tags }).(pulumi.StringArrayOutput) +} + // `zone`) The zone in which the IP should be reserved. func (o LoadbalancerIpOutput) Zone() pulumi.StringOutput { return o.ApplyT(func(v *LoadbalancerIp) pulumi.StringOutput { return v.Zone }).(pulumi.StringOutput) diff --git a/sdk/go/scaleway/pulumiTypes.go b/sdk/go/scaleway/pulumiTypes.go index ff5909e4..40b040ee 100644 --- a/sdk/go/scaleway/pulumiTypes.go +++ b/sdk/go/scaleway/pulumiTypes.go @@ -10976,9 +10976,11 @@ func (o LoadbalancerFrontendAclMatchOutput) IpSubnets() pulumi.StringArrayOutput type LoadbalancerPrivateNetwork struct { // (Optional) Set to `true` if you want to let DHCP assign IP addresses. See below. DhcpConfig *bool `pulumi:"dhcpConfig"` + // (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. + IpamIds *string `pulumi:"ipamIds"` // (Required) The ID of the Private Network to attach to. PrivateNetworkId string `pulumi:"privateNetworkId"` - // (Deprecated) Please use `dhcpConfig`. Define a local ip address of your choice for the load balancer instance. + // (Deprecated) Please use `ipamIds`. Define a local ip address of your choice for the load balancer instance. // // Deprecated: static_config field is deprecated, please use dhcpConfig instead StaticConfig *string `pulumi:"staticConfig"` @@ -11002,9 +11004,11 @@ type LoadbalancerPrivateNetworkInput interface { type LoadbalancerPrivateNetworkArgs struct { // (Optional) Set to `true` if you want to let DHCP assign IP addresses. See below. DhcpConfig pulumi.BoolPtrInput `pulumi:"dhcpConfig"` + // (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. + IpamIds pulumi.StringPtrInput `pulumi:"ipamIds"` // (Required) The ID of the Private Network to attach to. PrivateNetworkId pulumi.StringInput `pulumi:"privateNetworkId"` - // (Deprecated) Please use `dhcpConfig`. Define a local ip address of your choice for the load balancer instance. + // (Deprecated) Please use `ipamIds`. Define a local ip address of your choice for the load balancer instance. // // Deprecated: static_config field is deprecated, please use dhcpConfig instead StaticConfig pulumi.StringPtrInput `pulumi:"staticConfig"` @@ -11070,12 +11074,17 @@ func (o LoadbalancerPrivateNetworkOutput) DhcpConfig() pulumi.BoolPtrOutput { return o.ApplyT(func(v LoadbalancerPrivateNetwork) *bool { return v.DhcpConfig }).(pulumi.BoolPtrOutput) } +// (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. +func (o LoadbalancerPrivateNetworkOutput) IpamIds() pulumi.StringPtrOutput { + return o.ApplyT(func(v LoadbalancerPrivateNetwork) *string { return v.IpamIds }).(pulumi.StringPtrOutput) +} + // (Required) The ID of the Private Network to attach to. func (o LoadbalancerPrivateNetworkOutput) PrivateNetworkId() pulumi.StringOutput { return o.ApplyT(func(v LoadbalancerPrivateNetwork) string { return v.PrivateNetworkId }).(pulumi.StringOutput) } -// (Deprecated) Please use `dhcpConfig`. Define a local ip address of your choice for the load balancer instance. +// (Deprecated) Please use `ipamIds`. Define a local ip address of your choice for the load balancer instance. // // Deprecated: static_config field is deprecated, please use dhcpConfig instead func (o LoadbalancerPrivateNetworkOutput) StaticConfig() pulumi.StringPtrOutput { @@ -22835,6 +22844,8 @@ type GetLbIpsIp struct { ProjectId string `pulumi:"projectId"` // The reverse domain associated with this IP. Reverse string `pulumi:"reverse"` + // List of tags used as filter. IPs with these exact tags are listed. + Tags []string `pulumi:"tags"` // `zone`) The zone in which the IPs exist. Zone string `pulumi:"zone"` } @@ -22863,6 +22874,8 @@ type GetLbIpsIpArgs struct { ProjectId pulumi.StringInput `pulumi:"projectId"` // The reverse domain associated with this IP. Reverse pulumi.StringInput `pulumi:"reverse"` + // List of tags used as filter. IPs with these exact tags are listed. + Tags pulumi.StringArrayInput `pulumi:"tags"` // `zone`) The zone in which the IPs exist. Zone pulumi.StringInput `pulumi:"zone"` } @@ -22948,6 +22961,11 @@ func (o GetLbIpsIpOutput) Reverse() pulumi.StringOutput { return o.ApplyT(func(v GetLbIpsIp) string { return v.Reverse }).(pulumi.StringOutput) } +// List of tags used as filter. IPs with these exact tags are listed. +func (o GetLbIpsIpOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetLbIpsIp) []string { return v.Tags }).(pulumi.StringArrayOutput) +} + // `zone`) The zone in which the IPs exist. func (o GetLbIpsIpOutput) Zone() pulumi.StringOutput { return o.ApplyT(func(v GetLbIpsIp) string { return v.Zone }).(pulumi.StringOutput) @@ -23870,6 +23888,8 @@ func (o GetLoadbalancerCertificateLetsencryptArrayOutput) Index(i pulumi.IntInpu type GetLoadbalancerPrivateNetwork struct { // Set to true if you want to let DHCP assign IP addresses DhcpConfig bool `pulumi:"dhcpConfig"` + // IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network + IpamIds []string `pulumi:"ipamIds"` // The Private Network ID PrivateNetworkId string `pulumi:"privateNetworkId"` // Define an IP address in the subnet of your private network that will be assigned to your load balancer instance @@ -23894,6 +23914,8 @@ type GetLoadbalancerPrivateNetworkInput interface { type GetLoadbalancerPrivateNetworkArgs struct { // Set to true if you want to let DHCP assign IP addresses DhcpConfig pulumi.BoolInput `pulumi:"dhcpConfig"` + // IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network + IpamIds pulumi.StringArrayInput `pulumi:"ipamIds"` // The Private Network ID PrivateNetworkId pulumi.StringInput `pulumi:"privateNetworkId"` // Define an IP address in the subnet of your private network that will be assigned to your load balancer instance @@ -23960,6 +23982,11 @@ func (o GetLoadbalancerPrivateNetworkOutput) DhcpConfig() pulumi.BoolOutput { return o.ApplyT(func(v GetLoadbalancerPrivateNetwork) bool { return v.DhcpConfig }).(pulumi.BoolOutput) } +// IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network +func (o GetLoadbalancerPrivateNetworkOutput) IpamIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetLoadbalancerPrivateNetwork) []string { return v.IpamIds }).(pulumi.StringArrayOutput) +} + // The Private Network ID func (o GetLoadbalancerPrivateNetworkOutput) PrivateNetworkId() pulumi.StringOutput { return o.ApplyT(func(v GetLoadbalancerPrivateNetwork) string { return v.PrivateNetworkId }).(pulumi.StringOutput) @@ -25461,6 +25488,205 @@ func (o GetVpcPrivateNetworkIpv6SubnetArrayOutput) Index(i pulumi.IntInput) GetV }).(GetVpcPrivateNetworkIpv6SubnetOutput) } +type GetVpcRoutesRoute struct { + // The date on which the route was created (RFC 3339 format). + CreatedAt string `pulumi:"createdAt"` + // The description of the route. + Description string `pulumi:"description"` + // The destination IP or IP range of the route. + Destination string `pulumi:"destination"` + // The ID of the route. + // > **Important:** route IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111 + Id string `pulumi:"id"` + // The IP of the route's next hop. + NexthopIp string `pulumi:"nexthopIp"` + // The name of the route's next hop. + NexthopName string `pulumi:"nexthopName"` + // The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + NexthopPrivateNetworkId string `pulumi:"nexthopPrivateNetworkId"` + // The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + NexthopResourceId string `pulumi:"nexthopResourceId"` + // The next hop resource type to filter for. routes with a similar next hop resource type are listed. + NexthopResourceType string `pulumi:"nexthopResourceType"` + // `region`). The region in which the routes exist. + Region string `pulumi:"region"` + // List of tags to filter for. routes with these exact tags are listed. + Tags []string `pulumi:"tags"` + // The VPC ID to filter for. routes with a similar VPC ID are listed. + VpcId string `pulumi:"vpcId"` +} + +// GetVpcRoutesRouteInput is an input type that accepts GetVpcRoutesRouteArgs and GetVpcRoutesRouteOutput values. +// You can construct a concrete instance of `GetVpcRoutesRouteInput` via: +// +// GetVpcRoutesRouteArgs{...} +type GetVpcRoutesRouteInput interface { + pulumi.Input + + ToGetVpcRoutesRouteOutput() GetVpcRoutesRouteOutput + ToGetVpcRoutesRouteOutputWithContext(context.Context) GetVpcRoutesRouteOutput +} + +type GetVpcRoutesRouteArgs struct { + // The date on which the route was created (RFC 3339 format). + CreatedAt pulumi.StringInput `pulumi:"createdAt"` + // The description of the route. + Description pulumi.StringInput `pulumi:"description"` + // The destination IP or IP range of the route. + Destination pulumi.StringInput `pulumi:"destination"` + // The ID of the route. + // > **Important:** route IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111 + Id pulumi.StringInput `pulumi:"id"` + // The IP of the route's next hop. + NexthopIp pulumi.StringInput `pulumi:"nexthopIp"` + // The name of the route's next hop. + NexthopName pulumi.StringInput `pulumi:"nexthopName"` + // The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + NexthopPrivateNetworkId pulumi.StringInput `pulumi:"nexthopPrivateNetworkId"` + // The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + NexthopResourceId pulumi.StringInput `pulumi:"nexthopResourceId"` + // The next hop resource type to filter for. routes with a similar next hop resource type are listed. + NexthopResourceType pulumi.StringInput `pulumi:"nexthopResourceType"` + // `region`). The region in which the routes exist. + Region pulumi.StringInput `pulumi:"region"` + // List of tags to filter for. routes with these exact tags are listed. + Tags pulumi.StringArrayInput `pulumi:"tags"` + // The VPC ID to filter for. routes with a similar VPC ID are listed. + VpcId pulumi.StringInput `pulumi:"vpcId"` +} + +func (GetVpcRoutesRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetVpcRoutesRoute)(nil)).Elem() +} + +func (i GetVpcRoutesRouteArgs) ToGetVpcRoutesRouteOutput() GetVpcRoutesRouteOutput { + return i.ToGetVpcRoutesRouteOutputWithContext(context.Background()) +} + +func (i GetVpcRoutesRouteArgs) ToGetVpcRoutesRouteOutputWithContext(ctx context.Context) GetVpcRoutesRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetVpcRoutesRouteOutput) +} + +// GetVpcRoutesRouteArrayInput is an input type that accepts GetVpcRoutesRouteArray and GetVpcRoutesRouteArrayOutput values. +// You can construct a concrete instance of `GetVpcRoutesRouteArrayInput` via: +// +// GetVpcRoutesRouteArray{ GetVpcRoutesRouteArgs{...} } +type GetVpcRoutesRouteArrayInput interface { + pulumi.Input + + ToGetVpcRoutesRouteArrayOutput() GetVpcRoutesRouteArrayOutput + ToGetVpcRoutesRouteArrayOutputWithContext(context.Context) GetVpcRoutesRouteArrayOutput +} + +type GetVpcRoutesRouteArray []GetVpcRoutesRouteInput + +func (GetVpcRoutesRouteArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetVpcRoutesRoute)(nil)).Elem() +} + +func (i GetVpcRoutesRouteArray) ToGetVpcRoutesRouteArrayOutput() GetVpcRoutesRouteArrayOutput { + return i.ToGetVpcRoutesRouteArrayOutputWithContext(context.Background()) +} + +func (i GetVpcRoutesRouteArray) ToGetVpcRoutesRouteArrayOutputWithContext(ctx context.Context) GetVpcRoutesRouteArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetVpcRoutesRouteArrayOutput) +} + +type GetVpcRoutesRouteOutput struct{ *pulumi.OutputState } + +func (GetVpcRoutesRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetVpcRoutesRoute)(nil)).Elem() +} + +func (o GetVpcRoutesRouteOutput) ToGetVpcRoutesRouteOutput() GetVpcRoutesRouteOutput { + return o +} + +func (o GetVpcRoutesRouteOutput) ToGetVpcRoutesRouteOutputWithContext(ctx context.Context) GetVpcRoutesRouteOutput { + return o +} + +// The date on which the route was created (RFC 3339 format). +func (o GetVpcRoutesRouteOutput) CreatedAt() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) string { return v.CreatedAt }).(pulumi.StringOutput) +} + +// The description of the route. +func (o GetVpcRoutesRouteOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) string { return v.Description }).(pulumi.StringOutput) +} + +// The destination IP or IP range of the route. +func (o GetVpcRoutesRouteOutput) Destination() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) string { return v.Destination }).(pulumi.StringOutput) +} + +// The ID of the route. +// > **Important:** route IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111 +func (o GetVpcRoutesRouteOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) string { return v.Id }).(pulumi.StringOutput) +} + +// The IP of the route's next hop. +func (o GetVpcRoutesRouteOutput) NexthopIp() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) string { return v.NexthopIp }).(pulumi.StringOutput) +} + +// The name of the route's next hop. +func (o GetVpcRoutesRouteOutput) NexthopName() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) string { return v.NexthopName }).(pulumi.StringOutput) +} + +// The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. +func (o GetVpcRoutesRouteOutput) NexthopPrivateNetworkId() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) string { return v.NexthopPrivateNetworkId }).(pulumi.StringOutput) +} + +// The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. +func (o GetVpcRoutesRouteOutput) NexthopResourceId() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) string { return v.NexthopResourceId }).(pulumi.StringOutput) +} + +// The next hop resource type to filter for. routes with a similar next hop resource type are listed. +func (o GetVpcRoutesRouteOutput) NexthopResourceType() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) string { return v.NexthopResourceType }).(pulumi.StringOutput) +} + +// `region`). The region in which the routes exist. +func (o GetVpcRoutesRouteOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) string { return v.Region }).(pulumi.StringOutput) +} + +// List of tags to filter for. routes with these exact tags are listed. +func (o GetVpcRoutesRouteOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) []string { return v.Tags }).(pulumi.StringArrayOutput) +} + +// The VPC ID to filter for. routes with a similar VPC ID are listed. +func (o GetVpcRoutesRouteOutput) VpcId() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcRoutesRoute) string { return v.VpcId }).(pulumi.StringOutput) +} + +type GetVpcRoutesRouteArrayOutput struct{ *pulumi.OutputState } + +func (GetVpcRoutesRouteArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetVpcRoutesRoute)(nil)).Elem() +} + +func (o GetVpcRoutesRouteArrayOutput) ToGetVpcRoutesRouteArrayOutput() GetVpcRoutesRouteArrayOutput { + return o +} + +func (o GetVpcRoutesRouteArrayOutput) ToGetVpcRoutesRouteArrayOutputWithContext(ctx context.Context) GetVpcRoutesRouteArrayOutput { + return o +} + +func (o GetVpcRoutesRouteArrayOutput) Index(i pulumi.IntInput) GetVpcRoutesRouteOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetVpcRoutesRoute { + return vs[0].([]GetVpcRoutesRoute)[vs[1].(int)] + }).(GetVpcRoutesRouteOutput) +} + type GetVpcsVpc struct { // Date and time of VPC's creation (RFC 3339 format). CreatedAt string `pulumi:"createdAt"` @@ -26341,6 +26567,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetVpcPrivateNetworkIpv4SubnetArrayInput)(nil)).Elem(), GetVpcPrivateNetworkIpv4SubnetArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetVpcPrivateNetworkIpv6SubnetInput)(nil)).Elem(), GetVpcPrivateNetworkIpv6SubnetArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetVpcPrivateNetworkIpv6SubnetArrayInput)(nil)).Elem(), GetVpcPrivateNetworkIpv6SubnetArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetVpcRoutesRouteInput)(nil)).Elem(), GetVpcRoutesRouteArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetVpcRoutesRouteArrayInput)(nil)).Elem(), GetVpcRoutesRouteArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetVpcsVpcInput)(nil)).Elem(), GetVpcsVpcArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetVpcsVpcArrayInput)(nil)).Elem(), GetVpcsVpcArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetWebHostOfferProductInput)(nil)).Elem(), GetWebHostOfferProductArgs{}) @@ -26690,6 +26918,8 @@ func init() { pulumi.RegisterOutputType(GetVpcPrivateNetworkIpv4SubnetArrayOutput{}) pulumi.RegisterOutputType(GetVpcPrivateNetworkIpv6SubnetOutput{}) pulumi.RegisterOutputType(GetVpcPrivateNetworkIpv6SubnetArrayOutput{}) + pulumi.RegisterOutputType(GetVpcRoutesRouteOutput{}) + pulumi.RegisterOutputType(GetVpcRoutesRouteArrayOutput{}) pulumi.RegisterOutputType(GetVpcsVpcOutput{}) pulumi.RegisterOutputType(GetVpcsVpcArrayOutput{}) pulumi.RegisterOutputType(GetWebHostOfferProductOutput{}) diff --git a/sdk/nodejs/container.ts b/sdk/nodejs/container.ts index 606dc25d..fb396edb 100644 --- a/sdk/nodejs/container.ts +++ b/sdk/nodejs/container.ts @@ -203,6 +203,10 @@ export class Container extends pulumi.CustomResource { * The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. */ public readonly registrySha256!: pulumi.Output; + /** + * Execution environment of the container. + */ + public readonly sandbox!: pulumi.Output; /** * The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. */ @@ -249,6 +253,7 @@ export class Container extends pulumi.CustomResource { resourceInputs["region"] = state ? state.region : undefined; resourceInputs["registryImage"] = state ? state.registryImage : undefined; resourceInputs["registrySha256"] = state ? state.registrySha256 : undefined; + resourceInputs["sandbox"] = state ? state.sandbox : undefined; resourceInputs["secretEnvironmentVariables"] = state ? state.secretEnvironmentVariables : undefined; resourceInputs["status"] = state ? state.status : undefined; resourceInputs["timeout"] = state ? state.timeout : undefined; @@ -274,6 +279,7 @@ export class Container extends pulumi.CustomResource { resourceInputs["region"] = args ? args.region : undefined; resourceInputs["registryImage"] = args ? args.registryImage : undefined; resourceInputs["registrySha256"] = args ? args.registrySha256 : undefined; + resourceInputs["sandbox"] = args ? args.sandbox : undefined; resourceInputs["secretEnvironmentVariables"] = args?.secretEnvironmentVariables ? pulumi.secret(args.secretEnvironmentVariables) : undefined; resourceInputs["status"] = args ? args.status : undefined; resourceInputs["timeout"] = args ? args.timeout : undefined; @@ -378,6 +384,10 @@ export interface ContainerState { * The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. */ registrySha256?: pulumi.Input; + /** + * Execution environment of the container. + */ + sandbox?: pulumi.Input; /** * The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. */ @@ -470,6 +480,10 @@ export interface ContainerArgs { * The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. */ registrySha256?: pulumi.Input; + /** + * Execution environment of the container. + */ + sandbox?: pulumi.Input; /** * The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. */ diff --git a/sdk/nodejs/function.ts b/sdk/nodejs/function.ts index 9883210f..d18f2e31 100644 --- a/sdk/nodejs/function.ts +++ b/sdk/nodejs/function.ts @@ -130,6 +130,10 @@ export class Function extends pulumi.CustomResource { * Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a */ public readonly runtime!: pulumi.Output; + /** + * Execution environment of the function. + */ + public readonly sandbox!: pulumi.Output; /** * The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. */ @@ -177,6 +181,7 @@ export class Function extends pulumi.CustomResource { resourceInputs["projectId"] = state ? state.projectId : undefined; resourceInputs["region"] = state ? state.region : undefined; resourceInputs["runtime"] = state ? state.runtime : undefined; + resourceInputs["sandbox"] = state ? state.sandbox : undefined; resourceInputs["secretEnvironmentVariables"] = state ? state.secretEnvironmentVariables : undefined; resourceInputs["timeout"] = state ? state.timeout : undefined; resourceInputs["zipFile"] = state ? state.zipFile : undefined; @@ -209,6 +214,7 @@ export class Function extends pulumi.CustomResource { resourceInputs["projectId"] = args ? args.projectId : undefined; resourceInputs["region"] = args ? args.region : undefined; resourceInputs["runtime"] = args ? args.runtime : undefined; + resourceInputs["sandbox"] = args ? args.sandbox : undefined; resourceInputs["secretEnvironmentVariables"] = args?.secretEnvironmentVariables ? pulumi.secret(args.secretEnvironmentVariables) : undefined; resourceInputs["timeout"] = args ? args.timeout : undefined; resourceInputs["zipFile"] = args ? args.zipFile : undefined; @@ -295,6 +301,10 @@ export interface FunctionState { * Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a */ runtime?: pulumi.Input; + /** + * Execution environment of the function. + */ + sandbox?: pulumi.Input; /** * The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. */ @@ -372,6 +382,10 @@ export interface FunctionArgs { * Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a */ runtime: pulumi.Input; + /** + * Execution environment of the function. + */ + sandbox?: pulumi.Input; /** * The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. */ diff --git a/sdk/nodejs/getContainer.ts b/sdk/nodejs/getContainer.ts index e4512ee9..296101a5 100644 --- a/sdk/nodejs/getContainer.ts +++ b/sdk/nodejs/getContainer.ts @@ -150,6 +150,10 @@ export interface GetContainerResult { * The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. */ readonly registrySha256: string; + /** + * (Optional) Execution environment of the container. + */ + readonly sandbox: string; readonly secretEnvironmentVariables: {[key: string]: string}; /** * The container status. diff --git a/sdk/nodejs/getFunction.ts b/sdk/nodejs/getFunction.ts index d38cf566..cf8cbbe4 100644 --- a/sdk/nodejs/getFunction.ts +++ b/sdk/nodejs/getFunction.ts @@ -83,6 +83,7 @@ export interface GetFunctionResult { readonly projectId?: string; readonly region?: string; readonly runtime: string; + readonly sandbox: string; readonly secretEnvironmentVariables: {[key: string]: string}; readonly timeout: number; readonly zipFile: string; diff --git a/sdk/nodejs/getIamApiKey.ts b/sdk/nodejs/getIamApiKey.ts new file mode 100644 index 00000000..80832412 --- /dev/null +++ b/sdk/nodejs/getIamApiKey.ts @@ -0,0 +1,84 @@ +// *** 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"; + +/** + * Gets information about an existing IAM API key. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae). + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as scaleway from "@pulumi/scaleway"; + * + * const main = scaleway.getIamApiKey({ + * accessKey: "SCWABCDEFGHIJKLMNOPQ", + * }); + * ``` + */ +export function getIamApiKey(args: GetIamApiKeyArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("scaleway:index/getIamApiKey:getIamApiKey", { + "accessKey": args.accessKey, + }, opts); +} + +/** + * A collection of arguments for invoking getIamApiKey. + */ +export interface GetIamApiKeyArgs { + /** + * The access key of the IAM API key which is also the ID of the API key. + */ + accessKey: string; +} + +/** + * A collection of values returned by getIamApiKey. + */ +export interface GetIamApiKeyResult { + readonly accessKey: string; + readonly applicationId: string; + readonly createdAt: string; + readonly creationIp: string; + readonly defaultProjectId: string; + readonly description: string; + readonly editable: boolean; + readonly expiresAt: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly updatedAt: string; + readonly userId: string; +} +/** + * Gets information about an existing IAM API key. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae). + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as scaleway from "@pulumi/scaleway"; + * + * const main = scaleway.getIamApiKey({ + * accessKey: "SCWABCDEFGHIJKLMNOPQ", + * }); + * ``` + */ +export function getIamApiKeyOutput(args: GetIamApiKeyOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getIamApiKey(a, opts)) +} + +/** + * A collection of arguments for invoking getIamApiKey. + */ +export interface GetIamApiKeyOutputArgs { + /** + * The access key of the IAM API key which is also the ID of the API key. + */ + accessKey: pulumi.Input; +} diff --git a/sdk/nodejs/getLbIps.ts b/sdk/nodejs/getLbIps.ts index 8ea64ab3..9f99f3d1 100644 --- a/sdk/nodejs/getLbIps.ts +++ b/sdk/nodejs/getLbIps.ts @@ -21,6 +21,10 @@ import * as utilities from "./utilities"; * ipCidrRange: "0.0.0.0/0", * zone: "fr-par-2", * }); + * const ipsByTagsAndType = scaleway.getLbIps({ + * ipType: "ipv4", + * tags: ["a tag"], + * }); * ``` */ export function getLbIps(args?: GetLbIpsArgs, opts?: pulumi.InvokeOptions): Promise { @@ -29,7 +33,9 @@ export function getLbIps(args?: GetLbIpsArgs, opts?: pulumi.InvokeOptions): Prom opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invoke("scaleway:index/getLbIps:getLbIps", { "ipCidrRange": args.ipCidrRange, + "ipType": args.ipType, "projectId": args.projectId, + "tags": args.tags, "zone": args.zone, }, opts); } @@ -42,10 +48,18 @@ export interface GetLbIpsArgs { * The IP CIDR range to filter for. IPs within a matching CIDR block are listed. */ ipCidrRange?: string; + /** + * The IP type used as a filter. + */ + ipType?: string; /** * The ID of the Project the Load Balancer is associated with. */ projectId?: string; + /** + * List of tags used as filter. IPs with these exact tags are listed. + */ + tags?: string[]; /** * `zone`) The zone in which the IPs exist. */ @@ -61,6 +75,7 @@ export interface GetLbIpsResult { */ readonly id: string; readonly ipCidrRange?: string; + readonly ipType?: string; /** * List of retrieved IPs */ @@ -73,6 +88,7 @@ export interface GetLbIpsResult { * The ID of the Project the Load Balancer is associated with. */ readonly projectId: string; + readonly tags?: string[]; /** * The zone of the Load Balancer. */ @@ -93,6 +109,10 @@ export interface GetLbIpsResult { * ipCidrRange: "0.0.0.0/0", * zone: "fr-par-2", * }); + * const ipsByTagsAndType = scaleway.getLbIps({ + * ipType: "ipv4", + * tags: ["a tag"], + * }); * ``` */ export function getLbIpsOutput(args?: GetLbIpsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { @@ -107,10 +127,18 @@ export interface GetLbIpsOutputArgs { * The IP CIDR range to filter for. IPs within a matching CIDR block are listed. */ ipCidrRange?: pulumi.Input; + /** + * The IP type used as a filter. + */ + ipType?: pulumi.Input; /** * The ID of the Project the Load Balancer is associated with. */ projectId?: pulumi.Input; + /** + * List of tags used as filter. IPs with these exact tags are listed. + */ + tags?: pulumi.Input[]>; /** * `zone`) The zone in which the IPs exist. */ diff --git a/sdk/nodejs/getLoadbalancerIp.ts b/sdk/nodejs/getLoadbalancerIp.ts index 38b9b390..59d6fb85 100644 --- a/sdk/nodejs/getLoadbalancerIp.ts +++ b/sdk/nodejs/getLoadbalancerIp.ts @@ -76,6 +76,10 @@ export interface GetLoadbalancerIpResult { * The reverse domain associated with this IP. */ readonly reverse: string; + /** + * The tags associated with this IP. + */ + readonly tags: string[]; readonly zone: string; } /** diff --git a/sdk/nodejs/getMarketplaceImage.ts b/sdk/nodejs/getMarketplaceImage.ts index 55d9da17..f4b36d6a 100644 --- a/sdk/nodejs/getMarketplaceImage.ts +++ b/sdk/nodejs/getMarketplaceImage.ts @@ -38,7 +38,7 @@ export interface GetMarketplaceImageArgs { */ instanceType?: string; /** - * Exact label of the desired image. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + * Exact label of the desired image. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) * to find the right `label`. */ label: string; @@ -88,7 +88,7 @@ export interface GetMarketplaceImageOutputArgs { */ instanceType?: pulumi.Input; /** - * Exact label of the desired image. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + * Exact label of the desired image. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) * to find the right `label`. */ label: pulumi.Input; diff --git a/sdk/nodejs/getVpcRoutes.ts b/sdk/nodejs/getVpcRoutes.ts new file mode 100644 index 00000000..16fa67d6 --- /dev/null +++ b/sdk/nodejs/getVpcRoutes.ts @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +/** + * Gets information about multiple VPC routes. + */ +export function getVpcRoutes(args?: GetVpcRoutesArgs, opts?: pulumi.InvokeOptions): Promise { + args = args || {}; + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("scaleway:index/getVpcRoutes:getVpcRoutes", { + "isIpv6": args.isIpv6, + "nexthopPrivateNetworkId": args.nexthopPrivateNetworkId, + "nexthopResourceId": args.nexthopResourceId, + "nexthopResourceType": args.nexthopResourceType, + "region": args.region, + "tags": args.tags, + "vpcId": args.vpcId, + }, opts); +} + +/** + * A collection of arguments for invoking getVpcRoutes. + */ +export interface GetVpcRoutesArgs { + /** + * Routes with an IPv6 destination will be listed. + */ + isIpv6?: boolean; + /** + * The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + */ + nexthopPrivateNetworkId?: string; + /** + * The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + */ + nexthopResourceId?: string; + /** + * The next hop resource type to filter for. routes with a similar next hop resource type are listed. + */ + nexthopResourceType?: string; + /** + * `region`). The region in which the routes exist. + */ + region?: string; + /** + * List of tags to filter for. routes with these exact tags are listed. + */ + tags?: string[]; + /** + * The VPC ID to filter for. routes with a similar VPC ID are listed. + */ + vpcId?: string; +} + +/** + * A collection of values returned by getVpcRoutes. + */ +export interface GetVpcRoutesResult { + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly isIpv6?: boolean; + readonly nexthopPrivateNetworkId?: string; + readonly nexthopResourceId?: string; + readonly nexthopResourceType?: string; + readonly region: string; + /** + * List of retrieved routes + */ + readonly routes: outputs.GetVpcRoutesRoute[]; + readonly tags?: string[]; + readonly vpcId?: string; +} +/** + * Gets information about multiple VPC routes. + */ +export function getVpcRoutesOutput(args?: GetVpcRoutesOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getVpcRoutes(a, opts)) +} + +/** + * A collection of arguments for invoking getVpcRoutes. + */ +export interface GetVpcRoutesOutputArgs { + /** + * Routes with an IPv6 destination will be listed. + */ + isIpv6?: pulumi.Input; + /** + * The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + */ + nexthopPrivateNetworkId?: pulumi.Input; + /** + * The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + */ + nexthopResourceId?: pulumi.Input; + /** + * The next hop resource type to filter for. routes with a similar next hop resource type are listed. + */ + nexthopResourceType?: pulumi.Input; + /** + * `region`). The region in which the routes exist. + */ + region?: pulumi.Input; + /** + * List of tags to filter for. routes with these exact tags are listed. + */ + tags?: pulumi.Input[]>; + /** + * The VPC ID to filter for. routes with a similar VPC ID are listed. + */ + vpcId?: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 11ff14e3..cef67761 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -355,6 +355,11 @@ export const getFunctionNamespace: typeof import("./getFunctionNamespace").getFu export const getFunctionNamespaceOutput: typeof import("./getFunctionNamespace").getFunctionNamespaceOutput = null as any; utilities.lazyLoad(exports, ["getFunctionNamespace","getFunctionNamespaceOutput"], () => require("./getFunctionNamespace")); +export { GetIamApiKeyArgs, GetIamApiKeyResult, GetIamApiKeyOutputArgs } from "./getIamApiKey"; +export const getIamApiKey: typeof import("./getIamApiKey").getIamApiKey = null as any; +export const getIamApiKeyOutput: typeof import("./getIamApiKey").getIamApiKeyOutput = null as any; +utilities.lazyLoad(exports, ["getIamApiKey","getIamApiKeyOutput"], () => require("./getIamApiKey")); + export { GetIamApplicationArgs, GetIamApplicationResult, GetIamApplicationOutputArgs } from "./getIamApplication"; export const getIamApplication: typeof import("./getIamApplication").getIamApplication = null as any; export const getIamApplicationOutput: typeof import("./getIamApplication").getIamApplicationOutput = null as any; @@ -605,6 +610,11 @@ export const getVpcPublicPatRule: typeof import("./getVpcPublicPatRule").getVpcP export const getVpcPublicPatRuleOutput: typeof import("./getVpcPublicPatRule").getVpcPublicPatRuleOutput = null as any; utilities.lazyLoad(exports, ["getVpcPublicPatRule","getVpcPublicPatRuleOutput"], () => require("./getVpcPublicPatRule")); +export { GetVpcRoutesArgs, GetVpcRoutesResult, GetVpcRoutesOutputArgs } from "./getVpcRoutes"; +export const getVpcRoutes: typeof import("./getVpcRoutes").getVpcRoutes = null as any; +export const getVpcRoutesOutput: typeof import("./getVpcRoutes").getVpcRoutesOutput = null as any; +utilities.lazyLoad(exports, ["getVpcRoutes","getVpcRoutesOutput"], () => require("./getVpcRoutes")); + export { GetVpcsArgs, GetVpcsResult, GetVpcsOutputArgs } from "./getVpcs"; export const getVpcs: typeof import("./getVpcs").getVpcs = null as any; export const getVpcsOutput: typeof import("./getVpcs").getVpcsOutput = null as any; diff --git a/sdk/nodejs/instanceServer.ts b/sdk/nodejs/instanceServer.ts index 22aa0e5e..a59630f9 100644 --- a/sdk/nodejs/instanceServer.ts +++ b/sdk/nodejs/instanceServer.ts @@ -260,7 +260,7 @@ export class InstanceServer extends pulumi.CustomResource { */ public readonly enableIpv6!: pulumi.Output; /** - * The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + * The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) * to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. * * You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -497,7 +497,7 @@ export interface InstanceServerState { */ enableIpv6?: pulumi.Input; /** - * The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + * The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) * to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. * * You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -651,7 +651,7 @@ export interface InstanceServerArgs { */ enableIpv6?: pulumi.Input; /** - * The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + * The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) * to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. * * You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` diff --git a/sdk/nodejs/loadbalancerIp.ts b/sdk/nodejs/loadbalancerIp.ts index 167afa7f..665e8d88 100644 --- a/sdk/nodejs/loadbalancerIp.ts +++ b/sdk/nodejs/loadbalancerIp.ts @@ -95,6 +95,10 @@ export class LoadbalancerIp extends pulumi.CustomResource { * The reverse domain associated with this IP. */ public readonly reverse!: pulumi.Output; + /** + * The tags associated with this IP. + */ + public readonly tags!: pulumi.Output; /** * `zone`) The zone in which the IP should be reserved. */ @@ -120,12 +124,14 @@ export class LoadbalancerIp extends pulumi.CustomResource { resourceInputs["projectId"] = state ? state.projectId : undefined; resourceInputs["region"] = state ? state.region : undefined; resourceInputs["reverse"] = state ? state.reverse : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["zone"] = state ? state.zone : undefined; } else { const args = argsOrState as LoadbalancerIpArgs | undefined; resourceInputs["isIpv6"] = args ? args.isIpv6 : undefined; resourceInputs["projectId"] = args ? args.projectId : undefined; resourceInputs["reverse"] = args ? args.reverse : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["zone"] = args ? args.zone : undefined; resourceInputs["ipAddress"] = undefined /*out*/; resourceInputs["lbId"] = undefined /*out*/; @@ -169,6 +175,10 @@ export interface LoadbalancerIpState { * The reverse domain associated with this IP. */ reverse?: pulumi.Input; + /** + * The tags associated with this IP. + */ + tags?: pulumi.Input[]>; /** * `zone`) The zone in which the IP should be reserved. */ @@ -191,6 +201,10 @@ export interface LoadbalancerIpArgs { * The reverse domain associated with this IP. */ reverse?: pulumi.Input; + /** + * The tags associated with this IP. + */ + tags?: pulumi.Input[]>; /** * `zone`) The zone in which the IP should be reserved. */ diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 4251b3c9..2c915b52 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -85,6 +85,7 @@ "getFlexibleIps.ts", "getFunction.ts", "getFunctionNamespace.ts", + "getIamApiKey.ts", "getIamApplication.ts", "getIamGroup.ts", "getIamSshKey.ts", @@ -135,6 +136,7 @@ "getVpcPublicGatewayDhcpReservation.ts", "getVpcPublicGatewayIp.ts", "getVpcPublicPatRule.ts", + "getVpcRoutes.ts", "getVpcs.ts", "getWebHostOffer.ts", "getWebhosting.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 972489f5..9b90e188 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -652,7 +652,7 @@ export interface IamPolicyRule { * **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g: * * ```shell - * $ scw IAM permission-set list + * scw IAM permission-set list * ``` */ permissionSetNames: pulumi.Input[]>; @@ -1418,12 +1418,16 @@ export interface LoadbalancerPrivateNetwork { * (Optional) Set to `true` if you want to let DHCP assign IP addresses. See below. */ dhcpConfig?: pulumi.Input; + /** + * (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. + */ + ipamIds?: pulumi.Input; /** * (Required) The ID of the Private Network to attach to. */ privateNetworkId: pulumi.Input; /** - * (Deprecated) Please use `dhcpConfig`. Define a local ip address of your choice for the load balancer instance. + * (Deprecated) Please use `ipamIds`. Define a local ip address of your choice for the load balancer instance. * * @deprecated static_config field is deprecated, please use dhcpConfig instead */ diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 72a6adf7..e3701719 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -2003,6 +2003,10 @@ export interface GetLbIpsIp { * The reverse domain associated with this IP. */ reverse: string; + /** + * List of tags used as filter. IPs with these exact tags are listed. + */ + tags: string[]; /** * `zone`) The zone in which the IPs exist. */ @@ -2188,6 +2192,10 @@ export interface GetLoadbalancerPrivateNetwork { * Set to true if you want to let DHCP assign IP addresses */ dhcpConfig: boolean; + /** + * IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network + */ + ipamIds: string[]; /** * The Private Network ID */ @@ -2412,6 +2420,58 @@ export interface GetVpcPrivateNetworkIpv6Subnet { updatedAt: string; } +export interface GetVpcRoutesRoute { + /** + * The date on which the route was created (RFC 3339 format). + */ + createdAt: string; + /** + * The description of the route. + */ + description: string; + /** + * The destination IP or IP range of the route. + */ + destination: string; + /** + * The ID of the route. + * > **Important:** route IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111 + */ + id: string; + /** + * The IP of the route's next hop. + */ + nexthopIp: string; + /** + * The name of the route's next hop. + */ + nexthopName: string; + /** + * The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + */ + nexthopPrivateNetworkId: string; + /** + * The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + */ + nexthopResourceId: string; + /** + * The next hop resource type to filter for. routes with a similar next hop resource type are listed. + */ + nexthopResourceType: string; + /** + * `region`). The region in which the routes exist. + */ + region: string; + /** + * List of tags to filter for. routes with these exact tags are listed. + */ + tags: string[]; + /** + * The VPC ID to filter for. routes with a similar VPC ID are listed. + */ + vpcId: string; +} + export interface GetVpcsVpc { /** * Date and time of VPC's creation (RFC 3339 format). @@ -2509,7 +2569,7 @@ export interface IamPolicyRule { * **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g: * * ```shell - * $ scw IAM permission-set list + * scw IAM permission-set list * ``` */ permissionSetNames: string[]; @@ -3275,12 +3335,16 @@ export interface LoadbalancerPrivateNetwork { * (Optional) Set to `true` if you want to let DHCP assign IP addresses. See below. */ dhcpConfig: boolean; + /** + * (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. + */ + ipamIds: string; /** * (Required) The ID of the Private Network to attach to. */ privateNetworkId: string; /** - * (Deprecated) Please use `dhcpConfig`. Define a local ip address of your choice for the load balancer instance. + * (Deprecated) Please use `ipamIds`. Define a local ip address of your choice for the load balancer instance. * * @deprecated static_config field is deprecated, please use dhcpConfig instead */ diff --git a/sdk/python/pulumiverse_scaleway/__init__.py b/sdk/python/pulumiverse_scaleway/__init__.py index d0c556cf..7f04ee5f 100644 --- a/sdk/python/pulumiverse_scaleway/__init__.py +++ b/sdk/python/pulumiverse_scaleway/__init__.py @@ -75,6 +75,7 @@ from .get_flexible_ips import * from .get_function import * from .get_function_namespace import * +from .get_iam_api_key import * from .get_iam_application import * from .get_iam_group import * from .get_iam_ssh_key import * @@ -125,6 +126,7 @@ from .get_vpc_public_gateway_dhcp_reservation import * from .get_vpc_public_gateway_ip import * from .get_vpc_public_pat_rule import * +from .get_vpc_routes import * from .get_vpcs import * from .get_web_host_offer import * from .get_webhosting import * diff --git a/sdk/python/pulumiverse_scaleway/_inputs.py b/sdk/python/pulumiverse_scaleway/_inputs.py index 56bf84bf..9cbd433d 100644 --- a/sdk/python/pulumiverse_scaleway/_inputs.py +++ b/sdk/python/pulumiverse_scaleway/_inputs.py @@ -2245,7 +2245,7 @@ def __init__(__self__, *, **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g: ```shell - $ scw IAM permission-set list + scw IAM permission-set list ``` :param pulumi.Input[str] organization_id: ID of organization scoped to the rule, this can be used to create a rule for all projects in an organization. :param pulumi.Input[Sequence[pulumi.Input[str]]] project_ids: List of project IDs scoped to the rule. @@ -2267,7 +2267,7 @@ def permission_set_names(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g: ```shell - $ scw IAM permission-set list + scw IAM permission-set list ``` """ return pulumi.get(self, "permission_set_names") @@ -5025,19 +5025,23 @@ class LoadbalancerPrivateNetworkArgs: def __init__(__self__, *, private_network_id: pulumi.Input[str], dhcp_config: Optional[pulumi.Input[bool]] = None, + ipam_ids: Optional[pulumi.Input[str]] = None, static_config: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None, zone: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] private_network_id: (Required) The ID of the Private Network to attach to. :param pulumi.Input[bool] dhcp_config: (Optional) Set to `true` if you want to let DHCP assign IP addresses. See below. - :param pulumi.Input[str] static_config: (Deprecated) Please use `dhcp_config`. Define a local ip address of your choice for the load balancer instance. + :param pulumi.Input[str] ipam_ids: (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. + :param pulumi.Input[str] static_config: (Deprecated) Please use `ipam_ids`. Define a local ip address of your choice for the load balancer instance. :param pulumi.Input[str] status: The status of private network connection :param pulumi.Input[str] zone: `zone`) The zone of the Load Balancer. """ pulumi.set(__self__, "private_network_id", private_network_id) if dhcp_config is not None: pulumi.set(__self__, "dhcp_config", dhcp_config) + if ipam_ids is not None: + pulumi.set(__self__, "ipam_ids", ipam_ids) if static_config is not None: warnings.warn("""static_config field is deprecated, please use dhcp_config instead""", DeprecationWarning) pulumi.log.warn("""static_config is deprecated: static_config field is deprecated, please use dhcp_config instead""") @@ -5072,12 +5076,24 @@ def dhcp_config(self) -> Optional[pulumi.Input[bool]]: def dhcp_config(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "dhcp_config", value) + @property + @pulumi.getter(name="ipamIds") + def ipam_ids(self) -> Optional[pulumi.Input[str]]: + """ + (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. + """ + return pulumi.get(self, "ipam_ids") + + @ipam_ids.setter + def ipam_ids(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ipam_ids", value) + @property @pulumi.getter(name="staticConfig") @_utilities.deprecated("""static_config field is deprecated, please use dhcp_config instead""") def static_config(self) -> Optional[pulumi.Input[str]]: """ - (Deprecated) Please use `dhcp_config`. Define a local ip address of your choice for the load balancer instance. + (Deprecated) Please use `ipam_ids`. Define a local ip address of your choice for the load balancer instance. """ return pulumi.get(self, "static_config") diff --git a/sdk/python/pulumiverse_scaleway/container.py b/sdk/python/pulumiverse_scaleway/container.py index 6e7b240b..e4b4d59f 100644 --- a/sdk/python/pulumiverse_scaleway/container.py +++ b/sdk/python/pulumiverse_scaleway/container.py @@ -31,6 +31,7 @@ def __init__(__self__, *, region: Optional[pulumi.Input[str]] = None, registry_image: Optional[pulumi.Input[str]] = None, registry_sha256: Optional[pulumi.Input[str]] = None, + sandbox: Optional[pulumi.Input[str]] = None, secret_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, status: Optional[pulumi.Input[str]] = None, timeout: Optional[pulumi.Input[int]] = None): @@ -59,6 +60,7 @@ def __init__(__self__, *, :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the container was created. :param pulumi.Input[str] registry_image: The registry image address. e.g: **"rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE"**. :param pulumi.Input[str] registry_sha256: The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. + :param pulumi.Input[str] sandbox: Execution environment of the container. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] secret_environment_variables: The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. :param pulumi.Input[str] status: The container status. :param pulumi.Input[int] timeout: The maximum amount of time in seconds during which your container can process a request before we stop it. Defaults to 300s. @@ -96,6 +98,8 @@ def __init__(__self__, *, pulumi.set(__self__, "registry_image", registry_image) if registry_sha256 is not None: pulumi.set(__self__, "registry_sha256", registry_sha256) + if sandbox is not None: + pulumi.set(__self__, "sandbox", sandbox) if secret_environment_variables is not None: pulumi.set(__self__, "secret_environment_variables", secret_environment_variables) if status is not None: @@ -313,6 +317,18 @@ def registry_sha256(self) -> Optional[pulumi.Input[str]]: def registry_sha256(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "registry_sha256", value) + @property + @pulumi.getter + def sandbox(self) -> Optional[pulumi.Input[str]]: + """ + Execution environment of the container. + """ + return pulumi.get(self, "sandbox") + + @sandbox.setter + def sandbox(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sandbox", value) + @property @pulumi.getter(name="secretEnvironmentVariables") def secret_environment_variables(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -373,6 +389,7 @@ def __init__(__self__, *, region: Optional[pulumi.Input[str]] = None, registry_image: Optional[pulumi.Input[str]] = None, registry_sha256: Optional[pulumi.Input[str]] = None, + sandbox: Optional[pulumi.Input[str]] = None, secret_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, status: Optional[pulumi.Input[str]] = None, timeout: Optional[pulumi.Input[int]] = None): @@ -404,6 +421,7 @@ def __init__(__self__, *, :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the container was created. :param pulumi.Input[str] registry_image: The registry image address. e.g: **"rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE"**. :param pulumi.Input[str] registry_sha256: The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. + :param pulumi.Input[str] sandbox: Execution environment of the container. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] secret_environment_variables: The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. :param pulumi.Input[str] status: The container status. :param pulumi.Input[int] timeout: The maximum amount of time in seconds during which your container can process a request before we stop it. Defaults to 300s. @@ -448,6 +466,8 @@ def __init__(__self__, *, pulumi.set(__self__, "registry_image", registry_image) if registry_sha256 is not None: pulumi.set(__self__, "registry_sha256", registry_sha256) + if sandbox is not None: + pulumi.set(__self__, "sandbox", sandbox) if secret_environment_variables is not None: pulumi.set(__self__, "secret_environment_variables", secret_environment_variables) if status is not None: @@ -701,6 +721,18 @@ def registry_sha256(self) -> Optional[pulumi.Input[str]]: def registry_sha256(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "registry_sha256", value) + @property + @pulumi.getter + def sandbox(self) -> Optional[pulumi.Input[str]]: + """ + Execution environment of the container. + """ + return pulumi.get(self, "sandbox") + + @sandbox.setter + def sandbox(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sandbox", value) + @property @pulumi.getter(name="secretEnvironmentVariables") def secret_environment_variables(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -760,6 +792,7 @@ def __init__(__self__, region: Optional[pulumi.Input[str]] = None, registry_image: Optional[pulumi.Input[str]] = None, registry_sha256: Optional[pulumi.Input[str]] = None, + sandbox: Optional[pulumi.Input[str]] = None, secret_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, status: Optional[pulumi.Input[str]] = None, timeout: Optional[pulumi.Input[int]] = None, @@ -873,6 +906,7 @@ def __init__(__self__, :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the container was created. :param pulumi.Input[str] registry_image: The registry image address. e.g: **"rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE"**. :param pulumi.Input[str] registry_sha256: The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. + :param pulumi.Input[str] sandbox: Execution environment of the container. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] secret_environment_variables: The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. :param pulumi.Input[str] status: The container status. :param pulumi.Input[int] timeout: The maximum amount of time in seconds during which your container can process a request before we stop it. Defaults to 300s. @@ -999,6 +1033,7 @@ def _internal_init(__self__, region: Optional[pulumi.Input[str]] = None, registry_image: Optional[pulumi.Input[str]] = None, registry_sha256: Optional[pulumi.Input[str]] = None, + sandbox: Optional[pulumi.Input[str]] = None, secret_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, status: Optional[pulumi.Input[str]] = None, timeout: Optional[pulumi.Input[int]] = None, @@ -1030,6 +1065,7 @@ def _internal_init(__self__, __props__.__dict__["region"] = region __props__.__dict__["registry_image"] = registry_image __props__.__dict__["registry_sha256"] = registry_sha256 + __props__.__dict__["sandbox"] = sandbox __props__.__dict__["secret_environment_variables"] = None if secret_environment_variables is None else pulumi.Output.secret(secret_environment_variables) __props__.__dict__["status"] = status __props__.__dict__["timeout"] = timeout @@ -1068,6 +1104,7 @@ def get(resource_name: str, region: Optional[pulumi.Input[str]] = None, registry_image: Optional[pulumi.Input[str]] = None, registry_sha256: Optional[pulumi.Input[str]] = None, + sandbox: Optional[pulumi.Input[str]] = None, secret_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, status: Optional[pulumi.Input[str]] = None, timeout: Optional[pulumi.Input[int]] = None) -> 'Container': @@ -1104,6 +1141,7 @@ def get(resource_name: str, :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the container was created. :param pulumi.Input[str] registry_image: The registry image address. e.g: **"rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE"**. :param pulumi.Input[str] registry_sha256: The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string. + :param pulumi.Input[str] sandbox: Execution environment of the container. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] secret_environment_variables: The [secret environment](https://www.scaleway.com/en/docs/compute/containers/concepts/#secrets) variables of the container. :param pulumi.Input[str] status: The container status. :param pulumi.Input[int] timeout: The maximum amount of time in seconds during which your container can process a request before we stop it. Defaults to 300s. @@ -1132,6 +1170,7 @@ def get(resource_name: str, __props__.__dict__["region"] = region __props__.__dict__["registry_image"] = registry_image __props__.__dict__["registry_sha256"] = registry_sha256 + __props__.__dict__["sandbox"] = sandbox __props__.__dict__["secret_environment_variables"] = secret_environment_variables __props__.__dict__["status"] = status __props__.__dict__["timeout"] = timeout @@ -1303,6 +1342,14 @@ def registry_sha256(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "registry_sha256") + @property + @pulumi.getter + def sandbox(self) -> pulumi.Output[str]: + """ + Execution environment of the container. + """ + return pulumi.get(self, "sandbox") + @property @pulumi.getter(name="secretEnvironmentVariables") def secret_environment_variables(self) -> pulumi.Output[Optional[Mapping[str, str]]]: diff --git a/sdk/python/pulumiverse_scaleway/function.py b/sdk/python/pulumiverse_scaleway/function.py index d2ffd88c..81ab541a 100644 --- a/sdk/python/pulumiverse_scaleway/function.py +++ b/sdk/python/pulumiverse_scaleway/function.py @@ -28,6 +28,7 @@ def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, + sandbox: Optional[pulumi.Input[str]] = None, secret_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, timeout: Optional[pulumi.Input[int]] = None, zip_file: Optional[pulumi.Input[str]] = None, @@ -49,6 +50,7 @@ def __init__(__self__, *, > **Important** Updates to `name` will recreate the function. :param pulumi.Input[str] project_id: `project_id`) The ID of the project the namespace is associated with. :param pulumi.Input[str] region: `region`). The region in which the namespace should be created. + :param pulumi.Input[str] sandbox: Execution environment of the function. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] secret_environment_variables: The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. :param pulumi.Input[int] timeout: Holds the max duration (in seconds) the function is allowed for responding to a request :param pulumi.Input[str] zip_file: Location of the zip file to upload containing your function sources @@ -78,6 +80,8 @@ def __init__(__self__, *, pulumi.set(__self__, "project_id", project_id) if region is not None: pulumi.set(__self__, "region", region) + if sandbox is not None: + pulumi.set(__self__, "sandbox", sandbox) if secret_environment_variables is not None: pulumi.set(__self__, "secret_environment_variables", secret_environment_variables) if timeout is not None: @@ -254,6 +258,18 @@ def region(self) -> Optional[pulumi.Input[str]]: def region(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "region", value) + @property + @pulumi.getter + def sandbox(self) -> Optional[pulumi.Input[str]]: + """ + Execution environment of the function. + """ + return pulumi.get(self, "sandbox") + + @sandbox.setter + def sandbox(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sandbox", value) + @property @pulumi.getter(name="secretEnvironmentVariables") def secret_environment_variables(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -323,6 +339,7 @@ def __init__(__self__, *, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, runtime: Optional[pulumi.Input[str]] = None, + sandbox: Optional[pulumi.Input[str]] = None, secret_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, timeout: Optional[pulumi.Input[int]] = None, zip_file: Optional[pulumi.Input[str]] = None, @@ -347,6 +364,7 @@ def __init__(__self__, *, :param pulumi.Input[str] project_id: `project_id`) The ID of the project the namespace is associated with. :param pulumi.Input[str] region: `region`). The region in which the namespace should be created. :param pulumi.Input[str] runtime: Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a + :param pulumi.Input[str] sandbox: Execution environment of the function. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] secret_environment_variables: The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. :param pulumi.Input[int] timeout: Holds the max duration (in seconds) the function is allowed for responding to a request :param pulumi.Input[str] zip_file: Location of the zip file to upload containing your function sources @@ -386,6 +404,8 @@ def __init__(__self__, *, pulumi.set(__self__, "region", region) if runtime is not None: pulumi.set(__self__, "runtime", runtime) + if sandbox is not None: + pulumi.set(__self__, "sandbox", sandbox) if secret_environment_variables is not None: pulumi.set(__self__, "secret_environment_variables", secret_environment_variables) if timeout is not None: @@ -598,6 +618,18 @@ def runtime(self) -> Optional[pulumi.Input[str]]: def runtime(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "runtime", value) + @property + @pulumi.getter + def sandbox(self) -> Optional[pulumi.Input[str]]: + """ + Execution environment of the function. + """ + return pulumi.get(self, "sandbox") + + @sandbox.setter + def sandbox(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sandbox", value) + @property @pulumi.getter(name="secretEnvironmentVariables") def secret_environment_variables(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -666,6 +698,7 @@ def __init__(__self__, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, runtime: Optional[pulumi.Input[str]] = None, + sandbox: Optional[pulumi.Input[str]] = None, secret_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, timeout: Optional[pulumi.Input[int]] = None, zip_file: Optional[pulumi.Input[str]] = None, @@ -718,6 +751,7 @@ def __init__(__self__, :param pulumi.Input[str] project_id: `project_id`) The ID of the project the namespace is associated with. :param pulumi.Input[str] region: `region`). The region in which the namespace should be created. :param pulumi.Input[str] runtime: Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a + :param pulumi.Input[str] sandbox: Execution environment of the function. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] secret_environment_variables: The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. :param pulumi.Input[int] timeout: Holds the max duration (in seconds) the function is allowed for responding to a request :param pulumi.Input[str] zip_file: Location of the zip file to upload containing your function sources @@ -788,6 +822,7 @@ def _internal_init(__self__, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, runtime: Optional[pulumi.Input[str]] = None, + sandbox: Optional[pulumi.Input[str]] = None, secret_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, timeout: Optional[pulumi.Input[int]] = None, zip_file: Optional[pulumi.Input[str]] = None, @@ -823,6 +858,7 @@ def _internal_init(__self__, if runtime is None and not opts.urn: raise TypeError("Missing required property 'runtime'") __props__.__dict__["runtime"] = runtime + __props__.__dict__["sandbox"] = sandbox __props__.__dict__["secret_environment_variables"] = None if secret_environment_variables is None else pulumi.Output.secret(secret_environment_variables) __props__.__dict__["timeout"] = timeout __props__.__dict__["zip_file"] = zip_file @@ -859,6 +895,7 @@ def get(resource_name: str, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, runtime: Optional[pulumi.Input[str]] = None, + sandbox: Optional[pulumi.Input[str]] = None, secret_environment_variables: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, timeout: Optional[pulumi.Input[int]] = None, zip_file: Optional[pulumi.Input[str]] = None, @@ -888,6 +925,7 @@ def get(resource_name: str, :param pulumi.Input[str] project_id: `project_id`) The ID of the project the namespace is associated with. :param pulumi.Input[str] region: `region`). The region in which the namespace should be created. :param pulumi.Input[str] runtime: Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#get-f7de6a + :param pulumi.Input[str] sandbox: Execution environment of the function. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] secret_environment_variables: The [secret environment](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) variables of the function. :param pulumi.Input[int] timeout: Holds the max duration (in seconds) the function is allowed for responding to a request :param pulumi.Input[str] zip_file: Location of the zip file to upload containing your function sources @@ -914,6 +952,7 @@ def get(resource_name: str, __props__.__dict__["project_id"] = project_id __props__.__dict__["region"] = region __props__.__dict__["runtime"] = runtime + __props__.__dict__["sandbox"] = sandbox __props__.__dict__["secret_environment_variables"] = secret_environment_variables __props__.__dict__["timeout"] = timeout __props__.__dict__["zip_file"] = zip_file @@ -1055,6 +1094,14 @@ def runtime(self) -> pulumi.Output[str]: """ return pulumi.get(self, "runtime") + @property + @pulumi.getter + def sandbox(self) -> pulumi.Output[str]: + """ + Execution environment of the function. + """ + return pulumi.get(self, "sandbox") + @property @pulumi.getter(name="secretEnvironmentVariables") def secret_environment_variables(self) -> pulumi.Output[Optional[Mapping[str, str]]]: diff --git a/sdk/python/pulumiverse_scaleway/get_container.py b/sdk/python/pulumiverse_scaleway/get_container.py index ae5be90b..005d3e51 100644 --- a/sdk/python/pulumiverse_scaleway/get_container.py +++ b/sdk/python/pulumiverse_scaleway/get_container.py @@ -21,7 +21,7 @@ class GetContainerResult: """ A collection of values returned by getContainer. """ - def __init__(__self__, container_id=None, cpu_limit=None, cron_status=None, deploy=None, description=None, domain_name=None, environment_variables=None, error_message=None, http_option=None, id=None, max_concurrency=None, max_scale=None, memory_limit=None, min_scale=None, name=None, namespace_id=None, port=None, privacy=None, project_id=None, protocol=None, region=None, registry_image=None, registry_sha256=None, secret_environment_variables=None, status=None, timeout=None): + def __init__(__self__, container_id=None, cpu_limit=None, cron_status=None, deploy=None, description=None, domain_name=None, environment_variables=None, error_message=None, http_option=None, id=None, max_concurrency=None, max_scale=None, memory_limit=None, min_scale=None, name=None, namespace_id=None, port=None, privacy=None, project_id=None, protocol=None, region=None, registry_image=None, registry_sha256=None, sandbox=None, secret_environment_variables=None, status=None, timeout=None): if container_id and not isinstance(container_id, str): raise TypeError("Expected argument 'container_id' to be a str") pulumi.set(__self__, "container_id", container_id) @@ -91,6 +91,9 @@ def __init__(__self__, container_id=None, cpu_limit=None, cron_status=None, depl if registry_sha256 and not isinstance(registry_sha256, str): raise TypeError("Expected argument 'registry_sha256' to be a str") pulumi.set(__self__, "registry_sha256", registry_sha256) + if sandbox and not isinstance(sandbox, str): + raise TypeError("Expected argument 'sandbox' to be a str") + pulumi.set(__self__, "sandbox", sandbox) if secret_environment_variables and not isinstance(secret_environment_variables, dict): raise TypeError("Expected argument 'secret_environment_variables' to be a dict") pulumi.set(__self__, "secret_environment_variables", secret_environment_variables) @@ -270,6 +273,14 @@ def registry_sha256(self) -> str: """ return pulumi.get(self, "registry_sha256") + @property + @pulumi.getter + def sandbox(self) -> str: + """ + (Optional) Execution environment of the container. + """ + return pulumi.get(self, "sandbox") + @property @pulumi.getter(name="secretEnvironmentVariables") def secret_environment_variables(self) -> Mapping[str, str]: @@ -321,6 +332,7 @@ def __await__(self): region=self.region, registry_image=self.registry_image, registry_sha256=self.registry_sha256, + sandbox=self.sandbox, secret_environment_variables=self.secret_environment_variables, status=self.status, timeout=self.timeout) @@ -397,6 +409,7 @@ def get_container(container_id: Optional[str] = None, region=pulumi.get(__ret__, 'region'), registry_image=pulumi.get(__ret__, 'registry_image'), registry_sha256=pulumi.get(__ret__, 'registry_sha256'), + sandbox=pulumi.get(__ret__, 'sandbox'), secret_environment_variables=pulumi.get(__ret__, 'secret_environment_variables'), status=pulumi.get(__ret__, 'status'), timeout=pulumi.get(__ret__, 'timeout')) diff --git a/sdk/python/pulumiverse_scaleway/get_function.py b/sdk/python/pulumiverse_scaleway/get_function.py index 7a99dece..0350c28e 100644 --- a/sdk/python/pulumiverse_scaleway/get_function.py +++ b/sdk/python/pulumiverse_scaleway/get_function.py @@ -21,7 +21,7 @@ class GetFunctionResult: """ A collection of values returned by getFunction. """ - def __init__(__self__, cpu_limit=None, deploy=None, description=None, domain_name=None, environment_variables=None, function_id=None, handler=None, http_option=None, id=None, max_scale=None, memory_limit=None, min_scale=None, name=None, namespace_id=None, organization_id=None, privacy=None, project_id=None, region=None, runtime=None, secret_environment_variables=None, timeout=None, zip_file=None, zip_hash=None): + def __init__(__self__, cpu_limit=None, deploy=None, description=None, domain_name=None, environment_variables=None, function_id=None, handler=None, http_option=None, id=None, max_scale=None, memory_limit=None, min_scale=None, name=None, namespace_id=None, organization_id=None, privacy=None, project_id=None, region=None, runtime=None, sandbox=None, secret_environment_variables=None, timeout=None, zip_file=None, zip_hash=None): if cpu_limit and not isinstance(cpu_limit, int): raise TypeError("Expected argument 'cpu_limit' to be a int") pulumi.set(__self__, "cpu_limit", cpu_limit) @@ -79,6 +79,9 @@ def __init__(__self__, cpu_limit=None, deploy=None, description=None, domain_nam if runtime and not isinstance(runtime, str): raise TypeError("Expected argument 'runtime' to be a str") pulumi.set(__self__, "runtime", runtime) + if sandbox and not isinstance(sandbox, str): + raise TypeError("Expected argument 'sandbox' to be a str") + pulumi.set(__self__, "sandbox", sandbox) if secret_environment_variables and not isinstance(secret_environment_variables, dict): raise TypeError("Expected argument 'secret_environment_variables' to be a dict") pulumi.set(__self__, "secret_environment_variables", secret_environment_variables) @@ -190,6 +193,11 @@ def region(self) -> Optional[str]: def runtime(self) -> str: return pulumi.get(self, "runtime") + @property + @pulumi.getter + def sandbox(self) -> str: + return pulumi.get(self, "sandbox") + @property @pulumi.getter(name="secretEnvironmentVariables") def secret_environment_variables(self) -> Mapping[str, str]: @@ -236,6 +244,7 @@ def __await__(self): project_id=self.project_id, region=self.region, runtime=self.runtime, + sandbox=self.sandbox, secret_environment_variables=self.secret_environment_variables, timeout=self.timeout, zip_file=self.zip_file, @@ -297,6 +306,7 @@ def get_function(function_id: Optional[str] = None, project_id=pulumi.get(__ret__, 'project_id'), region=pulumi.get(__ret__, 'region'), runtime=pulumi.get(__ret__, 'runtime'), + sandbox=pulumi.get(__ret__, 'sandbox'), secret_environment_variables=pulumi.get(__ret__, 'secret_environment_variables'), timeout=pulumi.get(__ret__, 'timeout'), zip_file=pulumi.get(__ret__, 'zip_file'), diff --git a/sdk/python/pulumiverse_scaleway/get_iam_api_key.py b/sdk/python/pulumiverse_scaleway/get_iam_api_key.py new file mode 100644 index 00000000..f271f94c --- /dev/null +++ b/sdk/python/pulumiverse_scaleway/get_iam_api_key.py @@ -0,0 +1,191 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities + +__all__ = [ + 'GetIamApiKeyResult', + 'AwaitableGetIamApiKeyResult', + 'get_iam_api_key', + 'get_iam_api_key_output', +] + +@pulumi.output_type +class GetIamApiKeyResult: + """ + A collection of values returned by getIamApiKey. + """ + def __init__(__self__, access_key=None, application_id=None, created_at=None, creation_ip=None, default_project_id=None, description=None, editable=None, expires_at=None, id=None, updated_at=None, user_id=None): + if access_key and not isinstance(access_key, str): + raise TypeError("Expected argument 'access_key' to be a str") + pulumi.set(__self__, "access_key", access_key) + if application_id and not isinstance(application_id, str): + raise TypeError("Expected argument 'application_id' to be a str") + pulumi.set(__self__, "application_id", application_id) + 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 creation_ip and not isinstance(creation_ip, str): + raise TypeError("Expected argument 'creation_ip' to be a str") + pulumi.set(__self__, "creation_ip", creation_ip) + if default_project_id and not isinstance(default_project_id, str): + raise TypeError("Expected argument 'default_project_id' to be a str") + pulumi.set(__self__, "default_project_id", default_project_id) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if editable and not isinstance(editable, bool): + raise TypeError("Expected argument 'editable' to be a bool") + pulumi.set(__self__, "editable", editable) + if expires_at and not isinstance(expires_at, str): + raise TypeError("Expected argument 'expires_at' to be a str") + pulumi.set(__self__, "expires_at", expires_at) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + 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) + if user_id and not isinstance(user_id, str): + raise TypeError("Expected argument 'user_id' to be a str") + pulumi.set(__self__, "user_id", user_id) + + @property + @pulumi.getter(name="accessKey") + def access_key(self) -> str: + return pulumi.get(self, "access_key") + + @property + @pulumi.getter(name="applicationId") + def application_id(self) -> str: + return pulumi.get(self, "application_id") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> str: + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="creationIp") + def creation_ip(self) -> str: + return pulumi.get(self, "creation_ip") + + @property + @pulumi.getter(name="defaultProjectId") + def default_project_id(self) -> str: + return pulumi.get(self, "default_project_id") + + @property + @pulumi.getter + def description(self) -> str: + return pulumi.get(self, "description") + + @property + @pulumi.getter + def editable(self) -> bool: + return pulumi.get(self, "editable") + + @property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> str: + return pulumi.get(self, "expires_at") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> str: + return pulumi.get(self, "updated_at") + + @property + @pulumi.getter(name="userId") + def user_id(self) -> str: + return pulumi.get(self, "user_id") + + +class AwaitableGetIamApiKeyResult(GetIamApiKeyResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetIamApiKeyResult( + access_key=self.access_key, + application_id=self.application_id, + created_at=self.created_at, + creation_ip=self.creation_ip, + default_project_id=self.default_project_id, + description=self.description, + editable=self.editable, + expires_at=self.expires_at, + id=self.id, + updated_at=self.updated_at, + user_id=self.user_id) + + +def get_iam_api_key(access_key: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetIamApiKeyResult: + """ + Gets information about an existing IAM API key. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae). + + ## Example Usage + + ```python + import pulumi + import pulumi_scaleway as scaleway + + main = scaleway.get_iam_api_key(access_key="SCWABCDEFGHIJKLMNOPQ") + ``` + + + :param str access_key: The access key of the IAM API key which is also the ID of the API key. + """ + __args__ = dict() + __args__['accessKey'] = access_key + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('scaleway:index/getIamApiKey:getIamApiKey', __args__, opts=opts, typ=GetIamApiKeyResult).value + + return AwaitableGetIamApiKeyResult( + access_key=pulumi.get(__ret__, 'access_key'), + application_id=pulumi.get(__ret__, 'application_id'), + created_at=pulumi.get(__ret__, 'created_at'), + creation_ip=pulumi.get(__ret__, 'creation_ip'), + default_project_id=pulumi.get(__ret__, 'default_project_id'), + description=pulumi.get(__ret__, 'description'), + editable=pulumi.get(__ret__, 'editable'), + expires_at=pulumi.get(__ret__, 'expires_at'), + id=pulumi.get(__ret__, 'id'), + updated_at=pulumi.get(__ret__, 'updated_at'), + user_id=pulumi.get(__ret__, 'user_id')) + + +@_utilities.lift_output_func(get_iam_api_key) +def get_iam_api_key_output(access_key: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetIamApiKeyResult]: + """ + Gets information about an existing IAM API key. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae). + + ## Example Usage + + ```python + import pulumi + import pulumi_scaleway as scaleway + + main = scaleway.get_iam_api_key(access_key="SCWABCDEFGHIJKLMNOPQ") + ``` + + + :param str access_key: The access key of the IAM API key which is also the ID of the API key. + """ + ... diff --git a/sdk/python/pulumiverse_scaleway/get_lb_ips.py b/sdk/python/pulumiverse_scaleway/get_lb_ips.py index 75750d72..b09b0b80 100644 --- a/sdk/python/pulumiverse_scaleway/get_lb_ips.py +++ b/sdk/python/pulumiverse_scaleway/get_lb_ips.py @@ -22,13 +22,16 @@ class GetLbIpsResult: """ A collection of values returned by getLbIps. """ - def __init__(__self__, id=None, ip_cidr_range=None, ips=None, organization_id=None, project_id=None, zone=None): + def __init__(__self__, id=None, ip_cidr_range=None, ip_type=None, ips=None, organization_id=None, project_id=None, tags=None, zone=None): if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) if ip_cidr_range and not isinstance(ip_cidr_range, str): raise TypeError("Expected argument 'ip_cidr_range' to be a str") pulumi.set(__self__, "ip_cidr_range", ip_cidr_range) + if ip_type and not isinstance(ip_type, str): + raise TypeError("Expected argument 'ip_type' to be a str") + pulumi.set(__self__, "ip_type", ip_type) if ips and not isinstance(ips, list): raise TypeError("Expected argument 'ips' to be a list") pulumi.set(__self__, "ips", ips) @@ -38,6 +41,9 @@ def __init__(__self__, id=None, ip_cidr_range=None, ips=None, organization_id=No if project_id and not isinstance(project_id, str): raise TypeError("Expected argument 'project_id' to be a str") pulumi.set(__self__, "project_id", project_id) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) if zone and not isinstance(zone, str): raise TypeError("Expected argument 'zone' to be a str") pulumi.set(__self__, "zone", zone) @@ -55,6 +61,11 @@ def id(self) -> str: def ip_cidr_range(self) -> Optional[str]: return pulumi.get(self, "ip_cidr_range") + @property + @pulumi.getter(name="ipType") + def ip_type(self) -> Optional[str]: + return pulumi.get(self, "ip_type") + @property @pulumi.getter def ips(self) -> Sequence['outputs.GetLbIpsIpResult']: @@ -79,6 +90,11 @@ def project_id(self) -> str: """ return pulumi.get(self, "project_id") + @property + @pulumi.getter + def tags(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "tags") + @property @pulumi.getter def zone(self) -> str: @@ -96,14 +112,18 @@ def __await__(self): return GetLbIpsResult( id=self.id, ip_cidr_range=self.ip_cidr_range, + ip_type=self.ip_type, ips=self.ips, organization_id=self.organization_id, project_id=self.project_id, + tags=self.tags, zone=self.zone) def get_lb_ips(ip_cidr_range: Optional[str] = None, + ip_type: Optional[str] = None, project_id: Optional[str] = None, + tags: Optional[Sequence[str]] = None, zone: Optional[str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetLbIpsResult: """ @@ -119,16 +139,22 @@ def get_lb_ips(ip_cidr_range: Optional[str] = None, my_key = scaleway.get_lb_ips(ip_cidr_range="0.0.0.0/0", zone="fr-par-2") + ips_by_tags_and_type = scaleway.get_lb_ips(ip_type="ipv4", + tags=["a tag"]) ``` :param str ip_cidr_range: The IP CIDR range to filter for. IPs within a matching CIDR block are listed. + :param str ip_type: The IP type used as a filter. :param str project_id: The ID of the Project the Load Balancer is associated with. + :param Sequence[str] tags: List of tags used as filter. IPs with these exact tags are listed. :param str zone: `zone`) The zone in which the IPs exist. """ __args__ = dict() __args__['ipCidrRange'] = ip_cidr_range + __args__['ipType'] = ip_type __args__['projectId'] = project_id + __args__['tags'] = tags __args__['zone'] = zone opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke('scaleway:index/getLbIps:getLbIps', __args__, opts=opts, typ=GetLbIpsResult).value @@ -136,15 +162,19 @@ def get_lb_ips(ip_cidr_range: Optional[str] = None, return AwaitableGetLbIpsResult( id=pulumi.get(__ret__, 'id'), ip_cidr_range=pulumi.get(__ret__, 'ip_cidr_range'), + ip_type=pulumi.get(__ret__, 'ip_type'), ips=pulumi.get(__ret__, 'ips'), organization_id=pulumi.get(__ret__, 'organization_id'), project_id=pulumi.get(__ret__, 'project_id'), + tags=pulumi.get(__ret__, 'tags'), zone=pulumi.get(__ret__, 'zone')) @_utilities.lift_output_func(get_lb_ips) def get_lb_ips_output(ip_cidr_range: Optional[pulumi.Input[Optional[str]]] = None, + ip_type: Optional[pulumi.Input[Optional[str]]] = None, project_id: Optional[pulumi.Input[Optional[str]]] = None, + tags: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, zone: Optional[pulumi.Input[Optional[str]]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetLbIpsResult]: """ @@ -160,11 +190,15 @@ def get_lb_ips_output(ip_cidr_range: Optional[pulumi.Input[Optional[str]]] = Non my_key = scaleway.get_lb_ips(ip_cidr_range="0.0.0.0/0", zone="fr-par-2") + ips_by_tags_and_type = scaleway.get_lb_ips(ip_type="ipv4", + tags=["a tag"]) ``` :param str ip_cidr_range: The IP CIDR range to filter for. IPs within a matching CIDR block are listed. + :param str ip_type: The IP type used as a filter. :param str project_id: The ID of the Project the Load Balancer is associated with. + :param Sequence[str] tags: List of tags used as filter. IPs with these exact tags are listed. :param str zone: `zone`) The zone in which the IPs exist. """ ... diff --git a/sdk/python/pulumiverse_scaleway/get_loadbalancer_ip.py b/sdk/python/pulumiverse_scaleway/get_loadbalancer_ip.py index 7aae20cf..72b4798a 100644 --- a/sdk/python/pulumiverse_scaleway/get_loadbalancer_ip.py +++ b/sdk/python/pulumiverse_scaleway/get_loadbalancer_ip.py @@ -21,7 +21,7 @@ class GetLoadbalancerIpResult: """ A collection of values returned by getLoadbalancerIp. """ - def __init__(__self__, id=None, ip_address=None, ip_id=None, is_ipv6=None, lb_id=None, organization_id=None, project_id=None, region=None, reverse=None, zone=None): + def __init__(__self__, id=None, ip_address=None, ip_id=None, is_ipv6=None, lb_id=None, organization_id=None, project_id=None, region=None, reverse=None, tags=None, zone=None): if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) @@ -49,6 +49,9 @@ def __init__(__self__, id=None, ip_address=None, ip_id=None, is_ipv6=None, lb_id if reverse and not isinstance(reverse, str): raise TypeError("Expected argument 'reverse' to be a str") pulumi.set(__self__, "reverse", reverse) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) if zone and not isinstance(zone, str): raise TypeError("Expected argument 'zone' to be a str") pulumi.set(__self__, "zone", zone) @@ -110,6 +113,14 @@ def reverse(self) -> str: """ return pulumi.get(self, "reverse") + @property + @pulumi.getter + def tags(self) -> Sequence[str]: + """ + The tags associated with this IP. + """ + return pulumi.get(self, "tags") + @property @pulumi.getter def zone(self) -> str: @@ -131,6 +142,7 @@ def __await__(self): project_id=self.project_id, region=self.region, reverse=self.reverse, + tags=self.tags, zone=self.zone) @@ -176,6 +188,7 @@ def get_loadbalancer_ip(ip_address: Optional[str] = None, project_id=pulumi.get(__ret__, 'project_id'), region=pulumi.get(__ret__, 'region'), reverse=pulumi.get(__ret__, 'reverse'), + tags=pulumi.get(__ret__, 'tags'), zone=pulumi.get(__ret__, 'zone')) diff --git a/sdk/python/pulumiverse_scaleway/get_marketplace_image.py b/sdk/python/pulumiverse_scaleway/get_marketplace_image.py index 97ee5778..b1c3dce7 100644 --- a/sdk/python/pulumiverse_scaleway/get_marketplace_image.py +++ b/sdk/python/pulumiverse_scaleway/get_marketplace_image.py @@ -90,7 +90,7 @@ def get_marketplace_image(instance_type: Optional[str] = None, :param str instance_type: The instance type the image is compatible with. You find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/). - :param str label: Exact label of the desired image. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + :param str label: Exact label of the desired image. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) to find the right `label`. :param str zone: `zone`) The zone in which the image exists. """ @@ -128,7 +128,7 @@ def get_marketplace_image_output(instance_type: Optional[pulumi.Input[Optional[s :param str instance_type: The instance type the image is compatible with. You find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/). - :param str label: Exact label of the desired image. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + :param str label: Exact label of the desired image. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) to find the right `label`. :param str zone: `zone`) The zone in which the image exists. """ diff --git a/sdk/python/pulumiverse_scaleway/get_vpc_routes.py b/sdk/python/pulumiverse_scaleway/get_vpc_routes.py new file mode 100644 index 00000000..cd7f5a38 --- /dev/null +++ b/sdk/python/pulumiverse_scaleway/get_vpc_routes.py @@ -0,0 +1,187 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from . import _utilities +from . import outputs + +__all__ = [ + 'GetVpcRoutesResult', + 'AwaitableGetVpcRoutesResult', + 'get_vpc_routes', + 'get_vpc_routes_output', +] + +@pulumi.output_type +class GetVpcRoutesResult: + """ + A collection of values returned by getVpcRoutes. + """ + def __init__(__self__, id=None, is_ipv6=None, nexthop_private_network_id=None, nexthop_resource_id=None, nexthop_resource_type=None, region=None, routes=None, tags=None, vpc_id=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if is_ipv6 and not isinstance(is_ipv6, bool): + raise TypeError("Expected argument 'is_ipv6' to be a bool") + pulumi.set(__self__, "is_ipv6", is_ipv6) + if nexthop_private_network_id and not isinstance(nexthop_private_network_id, str): + raise TypeError("Expected argument 'nexthop_private_network_id' to be a str") + pulumi.set(__self__, "nexthop_private_network_id", nexthop_private_network_id) + if nexthop_resource_id and not isinstance(nexthop_resource_id, str): + raise TypeError("Expected argument 'nexthop_resource_id' to be a str") + pulumi.set(__self__, "nexthop_resource_id", nexthop_resource_id) + if nexthop_resource_type and not isinstance(nexthop_resource_type, str): + raise TypeError("Expected argument 'nexthop_resource_type' to be a str") + pulumi.set(__self__, "nexthop_resource_type", nexthop_resource_type) + if region and not isinstance(region, str): + raise TypeError("Expected argument 'region' to be a str") + pulumi.set(__self__, "region", region) + if routes and not isinstance(routes, list): + raise TypeError("Expected argument 'routes' to be a list") + pulumi.set(__self__, "routes", routes) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + if vpc_id and not isinstance(vpc_id, str): + raise TypeError("Expected argument 'vpc_id' to be a str") + pulumi.set(__self__, "vpc_id", vpc_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(name="isIpv6") + def is_ipv6(self) -> Optional[bool]: + return pulumi.get(self, "is_ipv6") + + @property + @pulumi.getter(name="nexthopPrivateNetworkId") + def nexthop_private_network_id(self) -> Optional[str]: + return pulumi.get(self, "nexthop_private_network_id") + + @property + @pulumi.getter(name="nexthopResourceId") + def nexthop_resource_id(self) -> Optional[str]: + return pulumi.get(self, "nexthop_resource_id") + + @property + @pulumi.getter(name="nexthopResourceType") + def nexthop_resource_type(self) -> Optional[str]: + return pulumi.get(self, "nexthop_resource_type") + + @property + @pulumi.getter + def region(self) -> str: + return pulumi.get(self, "region") + + @property + @pulumi.getter + def routes(self) -> Sequence['outputs.GetVpcRoutesRouteResult']: + """ + List of retrieved routes + """ + return pulumi.get(self, "routes") + + @property + @pulumi.getter + def tags(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="vpcId") + def vpc_id(self) -> Optional[str]: + return pulumi.get(self, "vpc_id") + + +class AwaitableGetVpcRoutesResult(GetVpcRoutesResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetVpcRoutesResult( + id=self.id, + is_ipv6=self.is_ipv6, + nexthop_private_network_id=self.nexthop_private_network_id, + nexthop_resource_id=self.nexthop_resource_id, + nexthop_resource_type=self.nexthop_resource_type, + region=self.region, + routes=self.routes, + tags=self.tags, + vpc_id=self.vpc_id) + + +def get_vpc_routes(is_ipv6: Optional[bool] = None, + nexthop_private_network_id: Optional[str] = None, + nexthop_resource_id: Optional[str] = None, + nexthop_resource_type: Optional[str] = None, + region: Optional[str] = None, + tags: Optional[Sequence[str]] = None, + vpc_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetVpcRoutesResult: + """ + Gets information about multiple VPC routes. + + + :param bool is_ipv6: Routes with an IPv6 destination will be listed. + :param str nexthop_private_network_id: The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + :param str nexthop_resource_id: The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + :param str nexthop_resource_type: The next hop resource type to filter for. routes with a similar next hop resource type are listed. + :param str region: `region`). The region in which the routes exist. + :param Sequence[str] tags: List of tags to filter for. routes with these exact tags are listed. + :param str vpc_id: The VPC ID to filter for. routes with a similar VPC ID are listed. + """ + __args__ = dict() + __args__['isIpv6'] = is_ipv6 + __args__['nexthopPrivateNetworkId'] = nexthop_private_network_id + __args__['nexthopResourceId'] = nexthop_resource_id + __args__['nexthopResourceType'] = nexthop_resource_type + __args__['region'] = region + __args__['tags'] = tags + __args__['vpcId'] = vpc_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('scaleway:index/getVpcRoutes:getVpcRoutes', __args__, opts=opts, typ=GetVpcRoutesResult).value + + return AwaitableGetVpcRoutesResult( + id=pulumi.get(__ret__, 'id'), + is_ipv6=pulumi.get(__ret__, 'is_ipv6'), + nexthop_private_network_id=pulumi.get(__ret__, 'nexthop_private_network_id'), + nexthop_resource_id=pulumi.get(__ret__, 'nexthop_resource_id'), + nexthop_resource_type=pulumi.get(__ret__, 'nexthop_resource_type'), + region=pulumi.get(__ret__, 'region'), + routes=pulumi.get(__ret__, 'routes'), + tags=pulumi.get(__ret__, 'tags'), + vpc_id=pulumi.get(__ret__, 'vpc_id')) + + +@_utilities.lift_output_func(get_vpc_routes) +def get_vpc_routes_output(is_ipv6: Optional[pulumi.Input[Optional[bool]]] = None, + nexthop_private_network_id: Optional[pulumi.Input[Optional[str]]] = None, + nexthop_resource_id: Optional[pulumi.Input[Optional[str]]] = None, + nexthop_resource_type: Optional[pulumi.Input[Optional[str]]] = None, + region: Optional[pulumi.Input[Optional[str]]] = None, + tags: Optional[pulumi.Input[Optional[Sequence[str]]]] = None, + vpc_id: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetVpcRoutesResult]: + """ + Gets information about multiple VPC routes. + + + :param bool is_ipv6: Routes with an IPv6 destination will be listed. + :param str nexthop_private_network_id: The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + :param str nexthop_resource_id: The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + :param str nexthop_resource_type: The next hop resource type to filter for. routes with a similar next hop resource type are listed. + :param str region: `region`). The region in which the routes exist. + :param Sequence[str] tags: List of tags to filter for. routes with these exact tags are listed. + :param str vpc_id: The VPC ID to filter for. routes with a similar VPC ID are listed. + """ + ... diff --git a/sdk/python/pulumiverse_scaleway/instance_server.py b/sdk/python/pulumiverse_scaleway/instance_server.py index 7565de89..ea0f0b92 100644 --- a/sdk/python/pulumiverse_scaleway/instance_server.py +++ b/sdk/python/pulumiverse_scaleway/instance_server.py @@ -58,7 +58,7 @@ def __init__(__self__, *, :param pulumi.Input[str] cloud_init: The cloud init script associated with this server :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server. :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported. - :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -237,7 +237,7 @@ def enable_ipv6(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def image(self) -> Optional[pulumi.Input[str]]: """ - The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -490,7 +490,7 @@ def __init__(__self__, *, :param pulumi.Input[str] cloud_init: The cloud init script associated with this server :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server. :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported. - :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -680,7 +680,7 @@ def enable_ipv6(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def image(self) -> Optional[pulumi.Input[str]]: """ - The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -1212,7 +1212,7 @@ def __init__(__self__, :param pulumi.Input[str] cloud_init: The cloud init script associated with this server :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server. :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported. - :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -1578,7 +1578,7 @@ def get(resource_name: str, :param pulumi.Input[str] cloud_init: The cloud init script associated with this server :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server. :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported. - :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + :param pulumi.Input[str] image: The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` @@ -1719,7 +1719,7 @@ def enable_ipv6(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter def image(self) -> pulumi.Output[Optional[str]]: """ - The UUID or the label of the base image used by the server. You can use [this endpoint](https://api-marketplace.scaleway.com/images?page=1&per_page=100) + The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images) to find either the right `label` or the right local image `ID` for a given `type`. Optional when creating an instance with an existing root volume. You can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list``` diff --git a/sdk/python/pulumiverse_scaleway/loadbalancer_ip.py b/sdk/python/pulumiverse_scaleway/loadbalancer_ip.py index 9b9d05d0..a4e3bb34 100644 --- a/sdk/python/pulumiverse_scaleway/loadbalancer_ip.py +++ b/sdk/python/pulumiverse_scaleway/loadbalancer_ip.py @@ -17,12 +17,14 @@ def __init__(__self__, *, is_ipv6: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, reverse: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, zone: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a LoadbalancerIp resource. :param pulumi.Input[bool] is_ipv6: If true, creates a flexible IP with an IPv6 address. :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the IP is associated with. :param pulumi.Input[str] reverse: The reverse domain associated with this IP. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with this IP. :param pulumi.Input[str] zone: `zone`) The zone in which the IP should be reserved. """ if is_ipv6 is not None: @@ -31,6 +33,8 @@ def __init__(__self__, *, pulumi.set(__self__, "project_id", project_id) if reverse is not None: pulumi.set(__self__, "reverse", reverse) + if tags is not None: + pulumi.set(__self__, "tags", tags) if zone is not None: pulumi.set(__self__, "zone", zone) @@ -70,6 +74,18 @@ def reverse(self) -> Optional[pulumi.Input[str]]: def reverse(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "reverse", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The tags associated with this IP. + """ + 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 def zone(self) -> Optional[pulumi.Input[str]]: @@ -93,6 +109,7 @@ def __init__(__self__, *, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, reverse: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, zone: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering LoadbalancerIp resources. @@ -103,6 +120,7 @@ def __init__(__self__, *, :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the IP is associated with. :param pulumi.Input[str] region: The region of the resource :param pulumi.Input[str] reverse: The reverse domain associated with this IP. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with this IP. :param pulumi.Input[str] zone: `zone`) The zone in which the IP should be reserved. """ if ip_address is not None: @@ -119,6 +137,8 @@ def __init__(__self__, *, pulumi.set(__self__, "region", region) if reverse is not None: pulumi.set(__self__, "reverse", reverse) + if tags is not None: + pulumi.set(__self__, "tags", tags) if zone is not None: pulumi.set(__self__, "zone", zone) @@ -206,6 +226,18 @@ def reverse(self) -> Optional[pulumi.Input[str]]: def reverse(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "reverse", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The tags associated with this IP. + """ + 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 def zone(self) -> Optional[pulumi.Input[str]]: @@ -227,6 +259,7 @@ def __init__(__self__, is_ipv6: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, reverse: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, zone: Optional[pulumi.Input[str]] = None, __props__=None): """ @@ -269,6 +302,7 @@ def __init__(__self__, :param pulumi.Input[bool] is_ipv6: If true, creates a flexible IP with an IPv6 address. :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the IP is associated with. :param pulumi.Input[str] reverse: The reverse domain associated with this IP. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with this IP. :param pulumi.Input[str] zone: `zone`) The zone in which the IP should be reserved. """ ... @@ -330,6 +364,7 @@ def _internal_init(__self__, is_ipv6: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, reverse: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, zone: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -343,6 +378,7 @@ def _internal_init(__self__, __props__.__dict__["is_ipv6"] = is_ipv6 __props__.__dict__["project_id"] = project_id __props__.__dict__["reverse"] = reverse + __props__.__dict__["tags"] = tags __props__.__dict__["zone"] = zone __props__.__dict__["ip_address"] = None __props__.__dict__["lb_id"] = None @@ -365,6 +401,7 @@ def get(resource_name: str, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, reverse: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, zone: Optional[pulumi.Input[str]] = None) -> 'LoadbalancerIp': """ Get an existing LoadbalancerIp resource's state with the given name, id, and optional extra @@ -380,6 +417,7 @@ def get(resource_name: str, :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the IP is associated with. :param pulumi.Input[str] region: The region of the resource :param pulumi.Input[str] reverse: The reverse domain associated with this IP. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with this IP. :param pulumi.Input[str] zone: `zone`) The zone in which the IP should be reserved. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -393,6 +431,7 @@ def get(resource_name: str, __props__.__dict__["project_id"] = project_id __props__.__dict__["region"] = region __props__.__dict__["reverse"] = reverse + __props__.__dict__["tags"] = tags __props__.__dict__["zone"] = zone return LoadbalancerIp(resource_name, opts=opts, __props__=__props__) @@ -452,6 +491,14 @@ def reverse(self) -> pulumi.Output[str]: """ return pulumi.get(self, "reverse") + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The tags associated with this IP. + """ + return pulumi.get(self, "tags") + @property @pulumi.getter def zone(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumiverse_scaleway/outputs.py b/sdk/python/pulumiverse_scaleway/outputs.py index 64d41576..08ebf8af 100644 --- a/sdk/python/pulumiverse_scaleway/outputs.py +++ b/sdk/python/pulumiverse_scaleway/outputs.py @@ -183,6 +183,7 @@ 'GetVpcGatewayNetworkIpamConfigResult', 'GetVpcPrivateNetworkIpv4SubnetResult', 'GetVpcPrivateNetworkIpv6SubnetResult', + 'GetVpcRoutesRouteResult', 'GetVpcsVpcResult', 'GetWebHostOfferProductResult', 'GetWebhostingCpanelUrlResult', @@ -2221,7 +2222,7 @@ def __init__(__self__, *, **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g: ```shell - $ scw IAM permission-set list + scw IAM permission-set list ``` :param str organization_id: ID of organization scoped to the rule, this can be used to create a rule for all projects in an organization. :param Sequence[str] project_ids: List of project IDs scoped to the rule. @@ -2243,7 +2244,7 @@ def permission_set_names(self) -> Sequence[str]: **_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g: ```shell - $ scw IAM permission-set list + scw IAM permission-set list ``` """ return pulumi.get(self, "permission_set_names") @@ -4844,6 +4845,8 @@ def __key_warning(key: str): suggest = "private_network_id" elif key == "dhcpConfig": suggest = "dhcp_config" + elif key == "ipamIds": + suggest = "ipam_ids" elif key == "staticConfig": suggest = "static_config" @@ -4861,19 +4864,23 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, private_network_id: str, dhcp_config: Optional[bool] = None, + ipam_ids: Optional[str] = None, static_config: Optional[str] = None, status: Optional[str] = None, zone: Optional[str] = None): """ :param str private_network_id: (Required) The ID of the Private Network to attach to. :param bool dhcp_config: (Optional) Set to `true` if you want to let DHCP assign IP addresses. See below. - :param str static_config: (Deprecated) Please use `dhcp_config`. Define a local ip address of your choice for the load balancer instance. + :param str ipam_ids: (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. + :param str static_config: (Deprecated) Please use `ipam_ids`. Define a local ip address of your choice for the load balancer instance. :param str status: The status of private network connection :param str zone: `zone`) The zone of the Load Balancer. """ pulumi.set(__self__, "private_network_id", private_network_id) if dhcp_config is not None: pulumi.set(__self__, "dhcp_config", dhcp_config) + if ipam_ids is not None: + pulumi.set(__self__, "ipam_ids", ipam_ids) if static_config is not None: pulumi.set(__self__, "static_config", static_config) if status is not None: @@ -4897,12 +4904,20 @@ def dhcp_config(self) -> Optional[bool]: """ return pulumi.get(self, "dhcp_config") + @property + @pulumi.getter(name="ipamIds") + def ipam_ids(self) -> Optional[str]: + """ + (Optional) IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network. + """ + return pulumi.get(self, "ipam_ids") + @property @pulumi.getter(name="staticConfig") @_utilities.deprecated("""static_config field is deprecated, please use dhcp_config instead""") def static_config(self) -> Optional[str]: """ - (Deprecated) Please use `dhcp_config`. Define a local ip address of your choice for the load balancer instance. + (Deprecated) Please use `ipam_ids`. Define a local ip address of your choice for the load balancer instance. """ return pulumi.get(self, "static_config") @@ -10038,6 +10053,7 @@ def __init__(__self__, *, organization_id: str, project_id: str, reverse: str, + tags: Sequence[str], zone: str): """ :param str id: The ID of the associated IP. @@ -10046,6 +10062,7 @@ def __init__(__self__, *, :param str organization_id: The ID of the Organization the Load Balancer is associated with. :param str project_id: The ID of the Project the Load Balancer is associated with. :param str reverse: The reverse domain associated with this IP. + :param Sequence[str] tags: List of tags used as filter. IPs with these exact tags are listed. :param str zone: `zone`) The zone in which the IPs exist. """ pulumi.set(__self__, "id", id) @@ -10054,6 +10071,7 @@ def __init__(__self__, *, pulumi.set(__self__, "organization_id", organization_id) pulumi.set(__self__, "project_id", project_id) pulumi.set(__self__, "reverse", reverse) + pulumi.set(__self__, "tags", tags) pulumi.set(__self__, "zone", zone) @property @@ -10104,6 +10122,14 @@ def reverse(self) -> str: """ return pulumi.get(self, "reverse") + @property + @pulumi.getter + def tags(self) -> Sequence[str]: + """ + List of tags used as filter. IPs with these exact tags are listed. + """ + return pulumi.get(self, "tags") + @property @pulumi.getter def zone(self) -> str: @@ -10605,18 +10631,21 @@ def subject_alternative_names(self) -> Sequence[str]: class GetLoadbalancerPrivateNetworkResult(dict): def __init__(__self__, *, dhcp_config: bool, + ipam_ids: Sequence[str], private_network_id: str, static_configs: Sequence[str], status: str, zone: str): """ :param bool dhcp_config: Set to true if you want to let DHCP assign IP addresses + :param Sequence[str] ipam_ids: IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network :param str private_network_id: The Private Network ID :param Sequence[str] static_configs: Define an IP address in the subnet of your private network that will be assigned to your load balancer instance :param str status: The status of private network connection :param str zone: (Defaults to provider `zone`) The zone in which the Load Balancer exists. """ pulumi.set(__self__, "dhcp_config", dhcp_config) + pulumi.set(__self__, "ipam_ids", ipam_ids) pulumi.set(__self__, "private_network_id", private_network_id) pulumi.set(__self__, "static_configs", static_configs) pulumi.set(__self__, "status", status) @@ -10630,6 +10659,14 @@ def dhcp_config(self) -> bool: """ return pulumi.get(self, "dhcp_config") + @property + @pulumi.getter(name="ipamIds") + def ipam_ids(self) -> Sequence[str]: + """ + IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network + """ + return pulumi.get(self, "ipam_ids") + @property @pulumi.getter(name="privateNetworkId") def private_network_id(self) -> str: @@ -11238,6 +11275,147 @@ def updated_at(self) -> str: return pulumi.get(self, "updated_at") +@pulumi.output_type +class GetVpcRoutesRouteResult(dict): + def __init__(__self__, *, + created_at: str, + description: str, + destination: str, + id: str, + nexthop_ip: str, + nexthop_name: str, + nexthop_private_network_id: str, + nexthop_resource_id: str, + nexthop_resource_type: str, + region: str, + tags: Sequence[str], + vpc_id: str): + """ + :param str created_at: The date on which the route was created (RFC 3339 format). + :param str description: The description of the route. + :param str destination: The destination IP or IP range of the route. + :param str id: The ID of the route. + > **Important:** route IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111 + :param str nexthop_ip: The IP of the route's next hop. + :param str nexthop_name: The name of the route's next hop. + :param str nexthop_private_network_id: The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + :param str nexthop_resource_id: The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + :param str nexthop_resource_type: The next hop resource type to filter for. routes with a similar next hop resource type are listed. + :param str region: `region`). The region in which the routes exist. + :param Sequence[str] tags: List of tags to filter for. routes with these exact tags are listed. + :param str vpc_id: The VPC ID to filter for. routes with a similar VPC ID are listed. + """ + pulumi.set(__self__, "created_at", created_at) + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "destination", destination) + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "nexthop_ip", nexthop_ip) + pulumi.set(__self__, "nexthop_name", nexthop_name) + pulumi.set(__self__, "nexthop_private_network_id", nexthop_private_network_id) + pulumi.set(__self__, "nexthop_resource_id", nexthop_resource_id) + pulumi.set(__self__, "nexthop_resource_type", nexthop_resource_type) + pulumi.set(__self__, "region", region) + pulumi.set(__self__, "tags", tags) + pulumi.set(__self__, "vpc_id", vpc_id) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> str: + """ + The date on which the route was created (RFC 3339 format). + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def description(self) -> str: + """ + The description of the route. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def destination(self) -> str: + """ + The destination IP or IP range of the route. + """ + return pulumi.get(self, "destination") + + @property + @pulumi.getter + def id(self) -> str: + """ + The ID of the route. + > **Important:** route IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111 + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="nexthopIp") + def nexthop_ip(self) -> str: + """ + The IP of the route's next hop. + """ + return pulumi.get(self, "nexthop_ip") + + @property + @pulumi.getter(name="nexthopName") + def nexthop_name(self) -> str: + """ + The name of the route's next hop. + """ + return pulumi.get(self, "nexthop_name") + + @property + @pulumi.getter(name="nexthopPrivateNetworkId") + def nexthop_private_network_id(self) -> str: + """ + The next hop private network ID to filter for. routes with a similar next hop private network ID are listed. + """ + return pulumi.get(self, "nexthop_private_network_id") + + @property + @pulumi.getter(name="nexthopResourceId") + def nexthop_resource_id(self) -> str: + """ + The next hop resource ID to filter for. routes with a similar next hop resource ID are listed. + """ + return pulumi.get(self, "nexthop_resource_id") + + @property + @pulumi.getter(name="nexthopResourceType") + def nexthop_resource_type(self) -> str: + """ + The next hop resource type to filter for. routes with a similar next hop resource type are listed. + """ + return pulumi.get(self, "nexthop_resource_type") + + @property + @pulumi.getter + def region(self) -> str: + """ + `region`). The region in which the routes exist. + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter + def tags(self) -> Sequence[str]: + """ + List of tags to filter for. routes with these exact tags are listed. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="vpcId") + def vpc_id(self) -> str: + """ + The VPC ID to filter for. routes with a similar VPC ID are listed. + """ + return pulumi.get(self, "vpc_id") + + @pulumi.output_type class GetVpcsVpcResult(dict): def __init__(__self__, *,