diff --git a/examples/go.mod b/examples/go.mod
index 64631aa0..33bac9dd 100644
--- a/examples/go.mod
+++ b/examples/go.mod
@@ -4,7 +4,7 @@ go 1.22
toolchain go1.22.4
-require github.com/pulumi/pulumi/pkg/v3 v3.136.1
+require github.com/pulumi/pulumi/pkg/v3 v3.137.0
require (
cloud.google.com/go v0.112.1 // indirect
@@ -125,7 +125,7 @@ require (
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.10.0 // indirect
- github.com/pulumi/pulumi/sdk/v3 v3.136.1 // indirect
+ github.com/pulumi/pulumi/sdk/v3 v3.137.0 // indirect
github.com/rivo/uniseg v0.4.4 // indirect
github.com/rogpeppe/go-internal v1.12.0 // indirect
github.com/ryanuber/go-glob v1.0.0 // indirect
diff --git a/examples/go.sum b/examples/go.sum
index 408d628c..e9c44d84 100644
--- a/examples/go.sum
+++ b/examples/go.sum
@@ -342,10 +342,10 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE=
github.com/pulumi/esc v0.10.0/go.mod h1:2Bfa+FWj/xl8CKqRTWbWgDX0SOD4opdQgvYSURTGK2c=
-github.com/pulumi/pulumi/pkg/v3 v3.136.1 h1:zA8aJZ7qI0QgZkBKjjQaYHEcigK6pZfrbfG38imXzWo=
-github.com/pulumi/pulumi/pkg/v3 v3.136.1/go.mod h1:Iz8QIs07AbEdrO52hEIEM5C4VBDUYFH2NdM9u2xxBxY=
-github.com/pulumi/pulumi/sdk/v3 v3.136.1 h1:VJWTgdBrLvvzIkMbGq/epNEfT65P9gTvw14UF/I7hTI=
-github.com/pulumi/pulumi/sdk/v3 v3.136.1/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI=
+github.com/pulumi/pulumi/pkg/v3 v3.137.0 h1:/KPFQQaB5W0/GhVxSTGnEzv3ZW5uieGN5Q2q+Lsr+Zw=
+github.com/pulumi/pulumi/pkg/v3 v3.137.0/go.mod h1:ZQXJUTysDwq/mtilutRBKguH6DI+3b2WgNcOrs0whJ0=
+github.com/pulumi/pulumi/sdk/v3 v3.137.0 h1:bxhYpOY7Z4xt+VmezEpHuhjpOekkaMqOjzxFg/1OhCw=
+github.com/pulumi/pulumi/sdk/v3 v3.137.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
diff --git a/provider/cmd/pulumi-resource-scaleway/schema.json b/provider/cmd/pulumi-resource-scaleway/schema.json
index 8a7582b0..3c0cbea6 100644
--- a/provider/cmd/pulumi-resource-scaleway/schema.json
+++ b/provider/cmd/pulumi-resource-scaleway/schema.json
@@ -258,6 +258,13 @@
"type": "string",
"description": "The id of the private network to attach.\n"
},
+ "ipamIpIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of IPAM IP IDs to assign to the server in the requested private network.\n"
+ },
"status": {
"type": "string",
"description": "The private network status.\n"
@@ -280,6 +287,7 @@
"requiredOutputs": [
"createdAt",
"id",
+ "ipamIpIds",
"status",
"updatedAt",
"vlan"
@@ -952,6 +960,64 @@
"permissionSetNames"
]
},
+ "scaleway:index/InferenceDeploymentPrivateEndpoint:InferenceDeploymentPrivateEndpoint": {
+ "properties": {
+ "disableAuth": {
+ "type": "boolean",
+ "description": "Disable the authentication on the endpoint.\n"
+ },
+ "id": {
+ "type": "string",
+ "description": "(Optional) The id of the public endpoint.\n"
+ },
+ "privateNetworkId": {
+ "type": "string",
+ "description": "The ID of the private network to use.\n"
+ },
+ "url": {
+ "type": "string",
+ "description": "(Optional) The URL of the endpoint.\n"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "id",
+ "url"
+ ]
+ }
+ }
+ },
+ "scaleway:index/InferenceDeploymentPublicEndpoint:InferenceDeploymentPublicEndpoint": {
+ "properties": {
+ "disableAuth": {
+ "type": "boolean",
+ "description": "Disable the authentication on the endpoint.\n"
+ },
+ "id": {
+ "type": "string",
+ "description": "(Optional) The id of the public endpoint.\n"
+ },
+ "isEnabled": {
+ "type": "boolean",
+ "description": "Enable or disable public endpoint.\n"
+ },
+ "url": {
+ "type": "string",
+ "description": "(Optional) The URL of the endpoint.\n"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "id",
+ "url"
+ ]
+ }
+ }
+ },
"scaleway:index/InstanceImageAdditionalVolume:InstanceImageAdditionalVolume": {
"properties": {
"creationDate": {
@@ -1462,6 +1528,22 @@
"strategy"
]
},
+ "scaleway:index/IpamIpCustomResource:IpamIpCustomResource": {
+ "properties": {
+ "macAddress": {
+ "type": "string",
+ "description": "The MAC address of the resource the IP is attached to.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the resource the IP is attached to.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "macAddress"
+ ]
+ },
"scaleway:index/IpamIpResource:IpamIpResource": {
"properties": {
"id": {
@@ -1871,6 +1953,7 @@
"certificateChain": {
"type": "string",
"description": "The full PEM-formatted certificate chain\n",
+ "secret": true,
"willReplaceOnChanges": true
}
},
@@ -2108,6 +2191,32 @@
}
}
},
+ "scaleway:index/MongoDbInstancePublicNetwork:MongoDbInstancePublicNetwork": {
+ "properties": {
+ "dnsRecord": {
+ "type": "string",
+ "description": "The DNS record of your endpoint\n"
+ },
+ "id": {
+ "type": "string",
+ "description": "The ID of the MongoDB® instance.\n"
+ },
+ "port": {
+ "type": "integer",
+ "description": "TCP port of the endpoint\n"
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "dnsRecord",
+ "id",
+ "port"
+ ]
+ }
+ }
+ },
"scaleway:index/ObjectBucketAclAccessControlPolicy:ObjectBucketAclAccessControlPolicy": {
"properties": {
"grants": {
@@ -2912,6 +3021,13 @@
"type": "string",
"description": "The ID of the server.\n"
},
+ "ipamIpIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of IPAM IP IDs to attach to the server\n"
+ },
"status": {
"type": "string",
"description": "The private network status\n"
@@ -2929,6 +3045,7 @@
"required": [
"createdAt",
"id",
+ "ipamIpIds",
"status",
"updatedAt",
"vlan"
@@ -3761,7 +3878,6 @@
},
"bootscriptId": {
"type": "string",
- "description": "The ID of the bootscript.\n",
"deprecationMessage": "bootscript are not supported"
},
"enableDynamicIp": {
@@ -5387,6 +5503,33 @@
}
}
},
+ "scaleway:index/getMongoDbInstancePublicNetwork:getMongoDbInstancePublicNetwork": {
+ "properties": {
+ "dnsRecord": {
+ "type": "string",
+ "description": "The DNS record of your endpoint\n"
+ },
+ "id": {
+ "type": "string",
+ "description": "The ID of the MongoDB® Instance.\n"
+ },
+ "port": {
+ "type": "integer",
+ "description": "TCP port of the endpoint\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "dnsRecord",
+ "id",
+ "port"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
"scaleway:index/getObjectBucketCorsRule:getObjectBucketCorsRule": {
"properties": {
"allowedHeaders": {
@@ -6469,7 +6612,7 @@
}
},
"scaleway:index/baremetalServer:BaremetalServer": {
- "description": "Creates and manages Scaleway Compute Baremetal servers. For more information, see [the documentation](https://www.scaleway.com/en/developers/api/elastic-metal/).\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 \"@pulumi/scaleway\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = scaleway.getAccountSshKey({\n name: \"main\",\n});\nconst base = new scaleway.BaremetalServer(\"base\", {\n zone: \"fr-par-2\",\n offer: \"GP-BM1-S\",\n os: \"d17d6872-0412-45d9-a198-af82c34d3c5c\",\n sshKeyIds: [main.then(main =\u003e main.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.get_account_ssh_key(name=\"main\")\nbase = scaleway.BaremetalServer(\"base\",\n zone=\"fr-par-2\",\n offer=\"GP-BM1-S\",\n os=\"d17d6872-0412-45d9-a198-af82c34d3c5c\",\n ssh_key_ids=[main.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = Scaleway.GetAccountSshKey.Invoke(new()\n {\n Name = \"main\",\n });\n\n var @base = new Scaleway.BaremetalServer(\"base\", new()\n {\n Zone = \"fr-par-2\",\n Offer = \"GP-BM1-S\",\n Os = \"d17d6872-0412-45d9-a198-af82c34d3c5c\",\n SshKeyIds = new[]\n {\n main.Apply(getAccountSshKeyResult =\u003e getAccountSshKeyResult.Id),\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\tmain, err := scaleway.LookupAccountSshKey(ctx, \u0026scaleway.LookupAccountSshKeyArgs{\n\t\t\tName: pulumi.StringRef(\"main\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewBaremetalServer(ctx, \"base\", \u0026scaleway.BaremetalServerArgs{\n\t\t\tZone: pulumi.String(\"fr-par-2\"),\n\t\t\tOffer: pulumi.String(\"GP-BM1-S\"),\n\t\t\tOs: pulumi.String(\"d17d6872-0412-45d9-a198-af82c34d3c5c\"),\n\t\t\tSshKeyIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(main.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetAccountSshKeyArgs;\nimport com.pulumi.scaleway.BaremetalServer;\nimport com.pulumi.scaleway.BaremetalServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\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.getAccountSshKey(GetAccountSshKeyArgs.builder()\n .name(\"main\")\n .build());\n\n var base = new BaremetalServer(\"base\", BaremetalServerArgs.builder()\n .zone(\"fr-par-2\")\n .offer(\"GP-BM1-S\")\n .os(\"d17d6872-0412-45d9-a198-af82c34d3c5c\")\n .sshKeyIds(main.applyValue(getAccountSshKeyResult -\u003e getAccountSshKeyResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n base:\n type: scaleway:BaremetalServer\n properties:\n zone: fr-par-2\n offer: GP-BM1-S\n os: d17d6872-0412-45d9-a198-af82c34d3c5c\n sshKeyIds:\n - ${main.id}\nvariables:\n main:\n fn::invoke:\n Function: scaleway:getAccountSshKey\n Arguments:\n name: main\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With option\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = scaleway.getAccountSshKey({\n name: \"main\",\n});\nconst myOs = scaleway.getBaremetalOs({\n zone: \"fr-par-2\",\n name: \"Ubuntu\",\n version: \"22.04 LTS (Jammy Jellyfish)\",\n});\nconst myOffer = scaleway.getBaremetalOffer({\n zone: \"fr-par-2\",\n name: \"EM-B112X-SSD\",\n});\nconst privateNetwork = scaleway.getBaremetalOption({\n zone: \"fr-par-2\",\n name: \"Private Network\",\n});\nconst remoteAccess = scaleway.getBaremetalOption({\n zone: \"fr-par-2\",\n name: \"Remote Access\",\n});\nconst base = new scaleway.BaremetalServer(\"base\", {\n zone: \"fr-par-2\",\n offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n os: myOs.then(myOs =\u003e myOs.osId),\n sshKeyIds: [main.then(main =\u003e main.id)],\n options: [\n {\n id: privateNetwork.then(privateNetwork =\u003e privateNetwork.optionId),\n },\n {\n id: remoteAccess.then(remoteAccess =\u003e remoteAccess.optionId),\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.get_account_ssh_key(name=\"main\")\nmy_os = scaleway.get_baremetal_os(zone=\"fr-par-2\",\n name=\"Ubuntu\",\n version=\"22.04 LTS (Jammy Jellyfish)\")\nmy_offer = scaleway.get_baremetal_offer(zone=\"fr-par-2\",\n name=\"EM-B112X-SSD\")\nprivate_network = scaleway.get_baremetal_option(zone=\"fr-par-2\",\n name=\"Private Network\")\nremote_access = scaleway.get_baremetal_option(zone=\"fr-par-2\",\n name=\"Remote Access\")\nbase = scaleway.BaremetalServer(\"base\",\n zone=\"fr-par-2\",\n offer=my_offer.offer_id,\n os=my_os.os_id,\n ssh_key_ids=[main.id],\n options=[\n {\n \"id\": private_network.option_id,\n },\n {\n \"id\": remote_access.option_id,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = Scaleway.GetAccountSshKey.Invoke(new()\n {\n Name = \"main\",\n });\n\n var myOs = Scaleway.GetBaremetalOs.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"Ubuntu\",\n Version = \"22.04 LTS (Jammy Jellyfish)\",\n });\n\n var myOffer = Scaleway.GetBaremetalOffer.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"EM-B112X-SSD\",\n });\n\n var privateNetwork = Scaleway.GetBaremetalOption.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"Private Network\",\n });\n\n var remoteAccess = Scaleway.GetBaremetalOption.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"Remote Access\",\n });\n\n var @base = new Scaleway.BaremetalServer(\"base\", new()\n {\n Zone = \"fr-par-2\",\n Offer = myOffer.Apply(getBaremetalOfferResult =\u003e getBaremetalOfferResult.OfferId),\n Os = myOs.Apply(getBaremetalOsResult =\u003e getBaremetalOsResult.OsId),\n SshKeyIds = new[]\n {\n main.Apply(getAccountSshKeyResult =\u003e getAccountSshKeyResult.Id),\n },\n Options = new[]\n {\n new Scaleway.Inputs.BaremetalServerOptionArgs\n {\n Id = privateNetwork.Apply(getBaremetalOptionResult =\u003e getBaremetalOptionResult.OptionId),\n },\n new Scaleway.Inputs.BaremetalServerOptionArgs\n {\n Id = remoteAccess.Apply(getBaremetalOptionResult =\u003e getBaremetalOptionResult.OptionId),\n },\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\tmain, err := scaleway.LookupAccountSshKey(ctx, \u0026scaleway.LookupAccountSshKeyArgs{\n\t\t\tName: pulumi.StringRef(\"main\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOs, err := scaleway.GetBaremetalOs(ctx, \u0026scaleway.GetBaremetalOsArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"Ubuntu\"),\n\t\t\tVersion: pulumi.StringRef(\"22.04 LTS (Jammy Jellyfish)\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOffer, err := scaleway.GetBaremetalOffer(ctx, \u0026scaleway.GetBaremetalOfferArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"EM-B112X-SSD\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateNetwork, err := scaleway.GetBaremetalOption(ctx, \u0026scaleway.GetBaremetalOptionArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"Private Network\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tremoteAccess, err := scaleway.GetBaremetalOption(ctx, \u0026scaleway.GetBaremetalOptionArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"Remote Access\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewBaremetalServer(ctx, \"base\", \u0026scaleway.BaremetalServerArgs{\n\t\t\tZone: pulumi.String(\"fr-par-2\"),\n\t\t\tOffer: pulumi.String(myOffer.OfferId),\n\t\t\tOs: pulumi.String(myOs.OsId),\n\t\t\tSshKeyIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(main.Id),\n\t\t\t},\n\t\t\tOptions: scaleway.BaremetalServerOptionArray{\n\t\t\t\t\u0026scaleway.BaremetalServerOptionArgs{\n\t\t\t\t\tId: pulumi.String(privateNetwork.OptionId),\n\t\t\t\t},\n\t\t\t\t\u0026scaleway.BaremetalServerOptionArgs{\n\t\t\t\t\tId: pulumi.String(remoteAccess.OptionId),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetAccountSshKeyArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOsArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOfferArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOptionArgs;\nimport com.pulumi.scaleway.BaremetalServer;\nimport com.pulumi.scaleway.BaremetalServerArgs;\nimport com.pulumi.scaleway.inputs.BaremetalServerOptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\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.getAccountSshKey(GetAccountSshKeyArgs.builder()\n .name(\"main\")\n .build());\n\n final var myOs = ScalewayFunctions.getBaremetalOs(GetBaremetalOsArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"Ubuntu\")\n .version(\"22.04 LTS (Jammy Jellyfish)\")\n .build());\n\n final var myOffer = ScalewayFunctions.getBaremetalOffer(GetBaremetalOfferArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"EM-B112X-SSD\")\n .build());\n\n final var privateNetwork = ScalewayFunctions.getBaremetalOption(GetBaremetalOptionArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"Private Network\")\n .build());\n\n final var remoteAccess = ScalewayFunctions.getBaremetalOption(GetBaremetalOptionArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"Remote Access\")\n .build());\n\n var base = new BaremetalServer(\"base\", BaremetalServerArgs.builder()\n .zone(\"fr-par-2\")\n .offer(myOffer.applyValue(getBaremetalOfferResult -\u003e getBaremetalOfferResult.offerId()))\n .os(myOs.applyValue(getBaremetalOsResult -\u003e getBaremetalOsResult.osId()))\n .sshKeyIds(main.applyValue(getAccountSshKeyResult -\u003e getAccountSshKeyResult.id()))\n .options( \n BaremetalServerOptionArgs.builder()\n .id(privateNetwork.applyValue(getBaremetalOptionResult -\u003e getBaremetalOptionResult.optionId()))\n .build(),\n BaremetalServerOptionArgs.builder()\n .id(remoteAccess.applyValue(getBaremetalOptionResult -\u003e getBaremetalOptionResult.optionId()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n base:\n type: scaleway:BaremetalServer\n properties:\n zone: fr-par-2\n offer: ${myOffer.offerId}\n os: ${myOs.osId}\n sshKeyIds:\n - ${main.id}\n options:\n - id: ${privateNetwork.optionId}\n - id: ${remoteAccess.optionId}\nvariables:\n main:\n fn::invoke:\n Function: scaleway:getAccountSshKey\n Arguments:\n name: main\n myOs:\n fn::invoke:\n Function: scaleway:getBaremetalOs\n Arguments:\n zone: fr-par-2\n name: Ubuntu\n version: 22.04 LTS (Jammy Jellyfish)\n myOffer:\n fn::invoke:\n Function: scaleway:getBaremetalOffer\n Arguments:\n zone: fr-par-2\n name: EM-B112X-SSD\n privateNetwork:\n fn::invoke:\n Function: scaleway:getBaremetalOption\n Arguments:\n zone: fr-par-2\n name: Private Network\n remoteAccess:\n fn::invoke:\n Function: scaleway:getBaremetalOption\n Arguments:\n zone: fr-par-2\n name: Remote Access\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With private network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = scaleway.getAccountSshKey({\n name: \"main\",\n});\nconst myOs = scaleway.getBaremetalOs({\n zone: \"fr-par-2\",\n name: \"Ubuntu\",\n version: \"22.04 LTS (Jammy Jellyfish)\",\n});\nconst myOffer = scaleway.getBaremetalOffer({\n zone: \"fr-par-2\",\n name: \"EM-B112X-SSD\",\n});\nconst privateNetwork = scaleway.getBaremetalOption({\n zone: \"fr-par-2\",\n name: \"Private Network\",\n});\nconst pn = new scaleway.VpcPrivateNetwork(\"pn\", {\n region: \"fr-par\",\n name: \"baremetal_private_network\",\n});\nconst base = new scaleway.BaremetalServer(\"base\", {\n zone: \"fr-par-2\",\n offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n os: myOs.then(myOs =\u003e myOs.osId),\n sshKeyIds: [main.then(main =\u003e main.id)],\n options: [{\n id: privateNetwork.then(privateNetwork =\u003e privateNetwork.optionId),\n }],\n privateNetworks: [{\n id: pn.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.get_account_ssh_key(name=\"main\")\nmy_os = scaleway.get_baremetal_os(zone=\"fr-par-2\",\n name=\"Ubuntu\",\n version=\"22.04 LTS (Jammy Jellyfish)\")\nmy_offer = scaleway.get_baremetal_offer(zone=\"fr-par-2\",\n name=\"EM-B112X-SSD\")\nprivate_network = scaleway.get_baremetal_option(zone=\"fr-par-2\",\n name=\"Private Network\")\npn = scaleway.VpcPrivateNetwork(\"pn\",\n region=\"fr-par\",\n name=\"baremetal_private_network\")\nbase = scaleway.BaremetalServer(\"base\",\n zone=\"fr-par-2\",\n offer=my_offer.offer_id,\n os=my_os.os_id,\n ssh_key_ids=[main.id],\n options=[{\n \"id\": private_network.option_id,\n }],\n private_networks=[{\n \"id\": pn.id,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = Scaleway.GetAccountSshKey.Invoke(new()\n {\n Name = \"main\",\n });\n\n var myOs = Scaleway.GetBaremetalOs.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"Ubuntu\",\n Version = \"22.04 LTS (Jammy Jellyfish)\",\n });\n\n var myOffer = Scaleway.GetBaremetalOffer.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"EM-B112X-SSD\",\n });\n\n var privateNetwork = Scaleway.GetBaremetalOption.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"Private Network\",\n });\n\n var pn = new Scaleway.VpcPrivateNetwork(\"pn\", new()\n {\n Region = \"fr-par\",\n Name = \"baremetal_private_network\",\n });\n\n var @base = new Scaleway.BaremetalServer(\"base\", new()\n {\n Zone = \"fr-par-2\",\n Offer = myOffer.Apply(getBaremetalOfferResult =\u003e getBaremetalOfferResult.OfferId),\n Os = myOs.Apply(getBaremetalOsResult =\u003e getBaremetalOsResult.OsId),\n SshKeyIds = new[]\n {\n main.Apply(getAccountSshKeyResult =\u003e getAccountSshKeyResult.Id),\n },\n Options = new[]\n {\n new Scaleway.Inputs.BaremetalServerOptionArgs\n {\n Id = privateNetwork.Apply(getBaremetalOptionResult =\u003e getBaremetalOptionResult.OptionId),\n },\n },\n PrivateNetworks = new[]\n {\n new Scaleway.Inputs.BaremetalServerPrivateNetworkArgs\n {\n Id = pn.Id,\n },\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\tmain, err := scaleway.LookupAccountSshKey(ctx, \u0026scaleway.LookupAccountSshKeyArgs{\n\t\t\tName: pulumi.StringRef(\"main\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOs, err := scaleway.GetBaremetalOs(ctx, \u0026scaleway.GetBaremetalOsArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"Ubuntu\"),\n\t\t\tVersion: pulumi.StringRef(\"22.04 LTS (Jammy Jellyfish)\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOffer, err := scaleway.GetBaremetalOffer(ctx, \u0026scaleway.GetBaremetalOfferArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"EM-B112X-SSD\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateNetwork, err := scaleway.GetBaremetalOption(ctx, \u0026scaleway.GetBaremetalOptionArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"Private Network\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn\", \u0026scaleway.VpcPrivateNetworkArgs{\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t\tName: pulumi.String(\"baremetal_private_network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewBaremetalServer(ctx, \"base\", \u0026scaleway.BaremetalServerArgs{\n\t\t\tZone: pulumi.String(\"fr-par-2\"),\n\t\t\tOffer: pulumi.String(myOffer.OfferId),\n\t\t\tOs: pulumi.String(myOs.OsId),\n\t\t\tSshKeyIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(main.Id),\n\t\t\t},\n\t\t\tOptions: scaleway.BaremetalServerOptionArray{\n\t\t\t\t\u0026scaleway.BaremetalServerOptionArgs{\n\t\t\t\t\tId: pulumi.String(privateNetwork.OptionId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPrivateNetworks: scaleway.BaremetalServerPrivateNetworkArray{\n\t\t\t\t\u0026scaleway.BaremetalServerPrivateNetworkArgs{\n\t\t\t\t\tId: pn.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\treturn nil\n\t})\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.GetAccountSshKeyArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOsArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOfferArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOptionArgs;\nimport com.pulumi.scaleway.VpcPrivateNetwork;\nimport com.pulumi.scaleway.VpcPrivateNetworkArgs;\nimport com.pulumi.scaleway.BaremetalServer;\nimport com.pulumi.scaleway.BaremetalServerArgs;\nimport com.pulumi.scaleway.inputs.BaremetalServerOptionArgs;\nimport com.pulumi.scaleway.inputs.BaremetalServerPrivateNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\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.getAccountSshKey(GetAccountSshKeyArgs.builder()\n .name(\"main\")\n .build());\n\n final var myOs = ScalewayFunctions.getBaremetalOs(GetBaremetalOsArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"Ubuntu\")\n .version(\"22.04 LTS (Jammy Jellyfish)\")\n .build());\n\n final var myOffer = ScalewayFunctions.getBaremetalOffer(GetBaremetalOfferArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"EM-B112X-SSD\")\n .build());\n\n final var privateNetwork = ScalewayFunctions.getBaremetalOption(GetBaremetalOptionArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"Private Network\")\n .build());\n\n var pn = new VpcPrivateNetwork(\"pn\", VpcPrivateNetworkArgs.builder()\n .region(\"fr-par\")\n .name(\"baremetal_private_network\")\n .build());\n\n var base = new BaremetalServer(\"base\", BaremetalServerArgs.builder()\n .zone(\"fr-par-2\")\n .offer(myOffer.applyValue(getBaremetalOfferResult -\u003e getBaremetalOfferResult.offerId()))\n .os(myOs.applyValue(getBaremetalOsResult -\u003e getBaremetalOsResult.osId()))\n .sshKeyIds(main.applyValue(getAccountSshKeyResult -\u003e getAccountSshKeyResult.id()))\n .options(BaremetalServerOptionArgs.builder()\n .id(privateNetwork.applyValue(getBaremetalOptionResult -\u003e getBaremetalOptionResult.optionId()))\n .build())\n .privateNetworks(BaremetalServerPrivateNetworkArgs.builder()\n .id(pn.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pn:\n type: scaleway:VpcPrivateNetwork\n properties:\n region: fr-par\n name: baremetal_private_network\n base:\n type: scaleway:BaremetalServer\n properties:\n zone: fr-par-2\n offer: ${myOffer.offerId}\n os: ${myOs.osId}\n sshKeyIds:\n - ${main.id}\n options:\n - id: ${privateNetwork.optionId}\n privateNetworks:\n - id: ${pn.id}\nvariables:\n main:\n fn::invoke:\n Function: scaleway:getAccountSshKey\n Arguments:\n name: main\n myOs:\n fn::invoke:\n Function: scaleway:getBaremetalOs\n Arguments:\n zone: fr-par-2\n name: Ubuntu\n version: 22.04 LTS (Jammy Jellyfish)\n myOffer:\n fn::invoke:\n Function: scaleway:getBaremetalOffer\n Arguments:\n zone: fr-par-2\n name: EM-B112X-SSD\n privateNetwork:\n fn::invoke:\n Function: scaleway:getBaremetalOption\n Arguments:\n zone: fr-par-2\n name: Private Network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Without install config\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst myOffer = scaleway.getBaremetalOffer({\n zone: \"fr-par-2\",\n name: \"EM-B112X-SSD\",\n});\nconst base = new scaleway.BaremetalServer(\"base\", {\n zone: \"fr-par-2\",\n offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n installConfigAfterward: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmy_offer = scaleway.get_baremetal_offer(zone=\"fr-par-2\",\n name=\"EM-B112X-SSD\")\nbase = scaleway.BaremetalServer(\"base\",\n zone=\"fr-par-2\",\n offer=my_offer.offer_id,\n install_config_afterward=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myOffer = Scaleway.GetBaremetalOffer.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"EM-B112X-SSD\",\n });\n\n var @base = new Scaleway.BaremetalServer(\"base\", new()\n {\n Zone = \"fr-par-2\",\n Offer = myOffer.Apply(getBaremetalOfferResult =\u003e getBaremetalOfferResult.OfferId),\n InstallConfigAfterward = true,\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\tmyOffer, err := scaleway.GetBaremetalOffer(ctx, \u0026scaleway.GetBaremetalOfferArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"EM-B112X-SSD\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewBaremetalServer(ctx, \"base\", \u0026scaleway.BaremetalServerArgs{\n\t\t\tZone: pulumi.String(\"fr-par-2\"),\n\t\t\tOffer: pulumi.String(myOffer.OfferId),\n\t\t\tInstallConfigAfterward: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetBaremetalOfferArgs;\nimport com.pulumi.scaleway.BaremetalServer;\nimport com.pulumi.scaleway.BaremetalServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myOffer = ScalewayFunctions.getBaremetalOffer(GetBaremetalOfferArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"EM-B112X-SSD\")\n .build());\n\n var base = new BaremetalServer(\"base\", BaremetalServerArgs.builder()\n .zone(\"fr-par-2\")\n .offer(myOffer.applyValue(getBaremetalOfferResult -\u003e getBaremetalOfferResult.offerId()))\n .installConfigAfterward(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n base:\n type: scaleway:BaremetalServer\n properties:\n zone: fr-par-2\n offer: ${myOffer.offerId}\n installConfigAfterward: true\nvariables:\n myOffer:\n fn::invoke:\n Function: scaleway:getBaremetalOffer\n Arguments:\n zone: fr-par-2\n name: EM-B112X-SSD\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBaremetal servers can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/baremetalServer:BaremetalServer web fr-par-2/11111111-1111-1111-1111-111111111111\n```\n\n",
+ "description": "Creates and manages Scaleway Compute Baremetal servers. For more information, see [the documentation](https://www.scaleway.com/en/developers/api/elastic-metal/).\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 \"@pulumi/scaleway\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = scaleway.getIamSshKey({\n name: \"main\",\n});\nconst base = new scaleway.BaremetalServer(\"base\", {\n zone: \"fr-par-2\",\n offer: \"GP-BM1-S\",\n os: \"d17d6872-0412-45d9-a198-af82c34d3c5c\",\n sshKeyIds: [mainScalewayAccountSshKey.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.get_iam_ssh_key(name=\"main\")\nbase = scaleway.BaremetalServer(\"base\",\n zone=\"fr-par-2\",\n offer=\"GP-BM1-S\",\n os=\"d17d6872-0412-45d9-a198-af82c34d3c5c\",\n ssh_key_ids=[main_scaleway_account_ssh_key[\"id\"]])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = Scaleway.GetIamSshKey.Invoke(new()\n {\n Name = \"main\",\n });\n\n var @base = new Scaleway.BaremetalServer(\"base\", new()\n {\n Zone = \"fr-par-2\",\n Offer = \"GP-BM1-S\",\n Os = \"d17d6872-0412-45d9-a198-af82c34d3c5c\",\n SshKeyIds = new[]\n {\n mainScalewayAccountSshKey.Id,\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.LookupIamSshKey(ctx, \u0026scaleway.LookupIamSshKeyArgs{\n\t\t\tName: pulumi.StringRef(\"main\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewBaremetalServer(ctx, \"base\", \u0026scaleway.BaremetalServerArgs{\n\t\t\tZone: pulumi.String(\"fr-par-2\"),\n\t\t\tOffer: pulumi.String(\"GP-BM1-S\"),\n\t\t\tOs: pulumi.String(\"d17d6872-0412-45d9-a198-af82c34d3c5c\"),\n\t\t\tSshKeyIds: pulumi.StringArray{\n\t\t\t\tmainScalewayAccountSshKey.Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetIamSshKeyArgs;\nimport com.pulumi.scaleway.BaremetalServer;\nimport com.pulumi.scaleway.BaremetalServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\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.getIamSshKey(GetIamSshKeyArgs.builder()\n .name(\"main\")\n .build());\n\n var base = new BaremetalServer(\"base\", BaremetalServerArgs.builder()\n .zone(\"fr-par-2\")\n .offer(\"GP-BM1-S\")\n .os(\"d17d6872-0412-45d9-a198-af82c34d3c5c\")\n .sshKeyIds(mainScalewayAccountSshKey.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n base:\n type: scaleway:BaremetalServer\n properties:\n zone: fr-par-2\n offer: GP-BM1-S\n os: d17d6872-0412-45d9-a198-af82c34d3c5c\n sshKeyIds:\n - ${mainScalewayAccountSshKey.id}\nvariables:\n main:\n fn::invoke:\n Function: scaleway:getIamSshKey\n Arguments:\n name: main\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With option\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = scaleway.getIamSshKey({\n name: \"main\",\n});\nconst myOs = scaleway.getBaremetalOs({\n zone: \"fr-par-2\",\n name: \"Ubuntu\",\n version: \"22.04 LTS (Jammy Jellyfish)\",\n});\nconst myOffer = scaleway.getBaremetalOffer({\n zone: \"fr-par-2\",\n name: \"EM-B112X-SSD\",\n});\nconst privateNetwork = scaleway.getBaremetalOption({\n zone: \"fr-par-2\",\n name: \"Private Network\",\n});\nconst remoteAccess = scaleway.getBaremetalOption({\n zone: \"fr-par-2\",\n name: \"Remote Access\",\n});\nconst base = new scaleway.BaremetalServer(\"base\", {\n zone: \"fr-par-2\",\n offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n os: myOs.then(myOs =\u003e myOs.osId),\n sshKeyIds: [mainScalewayAccountSshKey.id],\n options: [\n {\n id: privateNetwork.then(privateNetwork =\u003e privateNetwork.optionId),\n },\n {\n id: remoteAccess.then(remoteAccess =\u003e remoteAccess.optionId),\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.get_iam_ssh_key(name=\"main\")\nmy_os = scaleway.get_baremetal_os(zone=\"fr-par-2\",\n name=\"Ubuntu\",\n version=\"22.04 LTS (Jammy Jellyfish)\")\nmy_offer = scaleway.get_baremetal_offer(zone=\"fr-par-2\",\n name=\"EM-B112X-SSD\")\nprivate_network = scaleway.get_baremetal_option(zone=\"fr-par-2\",\n name=\"Private Network\")\nremote_access = scaleway.get_baremetal_option(zone=\"fr-par-2\",\n name=\"Remote Access\")\nbase = scaleway.BaremetalServer(\"base\",\n zone=\"fr-par-2\",\n offer=my_offer.offer_id,\n os=my_os.os_id,\n ssh_key_ids=[main_scaleway_account_ssh_key[\"id\"]],\n options=[\n {\n \"id\": private_network.option_id,\n },\n {\n \"id\": remote_access.option_id,\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = Scaleway.GetIamSshKey.Invoke(new()\n {\n Name = \"main\",\n });\n\n var myOs = Scaleway.GetBaremetalOs.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"Ubuntu\",\n Version = \"22.04 LTS (Jammy Jellyfish)\",\n });\n\n var myOffer = Scaleway.GetBaremetalOffer.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"EM-B112X-SSD\",\n });\n\n var privateNetwork = Scaleway.GetBaremetalOption.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"Private Network\",\n });\n\n var remoteAccess = Scaleway.GetBaremetalOption.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"Remote Access\",\n });\n\n var @base = new Scaleway.BaremetalServer(\"base\", new()\n {\n Zone = \"fr-par-2\",\n Offer = myOffer.Apply(getBaremetalOfferResult =\u003e getBaremetalOfferResult.OfferId),\n Os = myOs.Apply(getBaremetalOsResult =\u003e getBaremetalOsResult.OsId),\n SshKeyIds = new[]\n {\n mainScalewayAccountSshKey.Id,\n },\n Options = new[]\n {\n new Scaleway.Inputs.BaremetalServerOptionArgs\n {\n Id = privateNetwork.Apply(getBaremetalOptionResult =\u003e getBaremetalOptionResult.OptionId),\n },\n new Scaleway.Inputs.BaremetalServerOptionArgs\n {\n Id = remoteAccess.Apply(getBaremetalOptionResult =\u003e getBaremetalOptionResult.OptionId),\n },\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.LookupIamSshKey(ctx, \u0026scaleway.LookupIamSshKeyArgs{\n\t\t\tName: pulumi.StringRef(\"main\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOs, err := scaleway.GetBaremetalOs(ctx, \u0026scaleway.GetBaremetalOsArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"Ubuntu\"),\n\t\t\tVersion: pulumi.StringRef(\"22.04 LTS (Jammy Jellyfish)\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOffer, err := scaleway.GetBaremetalOffer(ctx, \u0026scaleway.GetBaremetalOfferArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"EM-B112X-SSD\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateNetwork, err := scaleway.GetBaremetalOption(ctx, \u0026scaleway.GetBaremetalOptionArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"Private Network\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tremoteAccess, err := scaleway.GetBaremetalOption(ctx, \u0026scaleway.GetBaremetalOptionArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"Remote Access\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewBaremetalServer(ctx, \"base\", \u0026scaleway.BaremetalServerArgs{\n\t\t\tZone: pulumi.String(\"fr-par-2\"),\n\t\t\tOffer: pulumi.String(myOffer.OfferId),\n\t\t\tOs: pulumi.String(myOs.OsId),\n\t\t\tSshKeyIds: pulumi.StringArray{\n\t\t\t\tmainScalewayAccountSshKey.Id,\n\t\t\t},\n\t\t\tOptions: scaleway.BaremetalServerOptionArray{\n\t\t\t\t\u0026scaleway.BaremetalServerOptionArgs{\n\t\t\t\t\tId: pulumi.String(privateNetwork.OptionId),\n\t\t\t\t},\n\t\t\t\t\u0026scaleway.BaremetalServerOptionArgs{\n\t\t\t\t\tId: pulumi.String(remoteAccess.OptionId),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetIamSshKeyArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOsArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOfferArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOptionArgs;\nimport com.pulumi.scaleway.BaremetalServer;\nimport com.pulumi.scaleway.BaremetalServerArgs;\nimport com.pulumi.scaleway.inputs.BaremetalServerOptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\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.getIamSshKey(GetIamSshKeyArgs.builder()\n .name(\"main\")\n .build());\n\n final var myOs = ScalewayFunctions.getBaremetalOs(GetBaremetalOsArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"Ubuntu\")\n .version(\"22.04 LTS (Jammy Jellyfish)\")\n .build());\n\n final var myOffer = ScalewayFunctions.getBaremetalOffer(GetBaremetalOfferArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"EM-B112X-SSD\")\n .build());\n\n final var privateNetwork = ScalewayFunctions.getBaremetalOption(GetBaremetalOptionArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"Private Network\")\n .build());\n\n final var remoteAccess = ScalewayFunctions.getBaremetalOption(GetBaremetalOptionArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"Remote Access\")\n .build());\n\n var base = new BaremetalServer(\"base\", BaremetalServerArgs.builder()\n .zone(\"fr-par-2\")\n .offer(myOffer.applyValue(getBaremetalOfferResult -\u003e getBaremetalOfferResult.offerId()))\n .os(myOs.applyValue(getBaremetalOsResult -\u003e getBaremetalOsResult.osId()))\n .sshKeyIds(mainScalewayAccountSshKey.id())\n .options( \n BaremetalServerOptionArgs.builder()\n .id(privateNetwork.applyValue(getBaremetalOptionResult -\u003e getBaremetalOptionResult.optionId()))\n .build(),\n BaremetalServerOptionArgs.builder()\n .id(remoteAccess.applyValue(getBaremetalOptionResult -\u003e getBaremetalOptionResult.optionId()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n base:\n type: scaleway:BaremetalServer\n properties:\n zone: fr-par-2\n offer: ${myOffer.offerId}\n os: ${myOs.osId}\n sshKeyIds:\n - ${mainScalewayAccountSshKey.id}\n options:\n - id: ${privateNetwork.optionId}\n - id: ${remoteAccess.optionId}\nvariables:\n main:\n fn::invoke:\n Function: scaleway:getIamSshKey\n Arguments:\n name: main\n myOs:\n fn::invoke:\n Function: scaleway:getBaremetalOs\n Arguments:\n zone: fr-par-2\n name: Ubuntu\n version: 22.04 LTS (Jammy Jellyfish)\n myOffer:\n fn::invoke:\n Function: scaleway:getBaremetalOffer\n Arguments:\n zone: fr-par-2\n name: EM-B112X-SSD\n privateNetwork:\n fn::invoke:\n Function: scaleway:getBaremetalOption\n Arguments:\n zone: fr-par-2\n name: Private Network\n remoteAccess:\n fn::invoke:\n Function: scaleway:getBaremetalOption\n Arguments:\n zone: fr-par-2\n name: Remote Access\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With private network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = scaleway.getIamSshKey({\n name: \"main\",\n});\nconst myOs = scaleway.getBaremetalOs({\n zone: \"fr-par-2\",\n name: \"Ubuntu\",\n version: \"22.04 LTS (Jammy Jellyfish)\",\n});\nconst myOffer = scaleway.getBaremetalOffer({\n zone: \"fr-par-2\",\n name: \"EM-B112X-SSD\",\n});\nconst privateNetwork = scaleway.getBaremetalOption({\n zone: \"fr-par-2\",\n name: \"Private Network\",\n});\nconst pn = new scaleway.VpcPrivateNetwork(\"pn\", {\n region: \"fr-par\",\n name: \"baremetal_private_network\",\n});\nconst base = new scaleway.BaremetalServer(\"base\", {\n zone: \"fr-par-2\",\n offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n os: myOs.then(myOs =\u003e myOs.osId),\n sshKeyIds: [mainScalewayAccountSshKey.id],\n options: [{\n id: privateNetwork.then(privateNetwork =\u003e privateNetwork.optionId),\n }],\n privateNetworks: [{\n id: pn.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.get_iam_ssh_key(name=\"main\")\nmy_os = scaleway.get_baremetal_os(zone=\"fr-par-2\",\n name=\"Ubuntu\",\n version=\"22.04 LTS (Jammy Jellyfish)\")\nmy_offer = scaleway.get_baremetal_offer(zone=\"fr-par-2\",\n name=\"EM-B112X-SSD\")\nprivate_network = scaleway.get_baremetal_option(zone=\"fr-par-2\",\n name=\"Private Network\")\npn = scaleway.VpcPrivateNetwork(\"pn\",\n region=\"fr-par\",\n name=\"baremetal_private_network\")\nbase = scaleway.BaremetalServer(\"base\",\n zone=\"fr-par-2\",\n offer=my_offer.offer_id,\n os=my_os.os_id,\n ssh_key_ids=[main_scaleway_account_ssh_key[\"id\"]],\n options=[{\n \"id\": private_network.option_id,\n }],\n private_networks=[{\n \"id\": pn.id,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = Scaleway.GetIamSshKey.Invoke(new()\n {\n Name = \"main\",\n });\n\n var myOs = Scaleway.GetBaremetalOs.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"Ubuntu\",\n Version = \"22.04 LTS (Jammy Jellyfish)\",\n });\n\n var myOffer = Scaleway.GetBaremetalOffer.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"EM-B112X-SSD\",\n });\n\n var privateNetwork = Scaleway.GetBaremetalOption.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"Private Network\",\n });\n\n var pn = new Scaleway.VpcPrivateNetwork(\"pn\", new()\n {\n Region = \"fr-par\",\n Name = \"baremetal_private_network\",\n });\n\n var @base = new Scaleway.BaremetalServer(\"base\", new()\n {\n Zone = \"fr-par-2\",\n Offer = myOffer.Apply(getBaremetalOfferResult =\u003e getBaremetalOfferResult.OfferId),\n Os = myOs.Apply(getBaremetalOsResult =\u003e getBaremetalOsResult.OsId),\n SshKeyIds = new[]\n {\n mainScalewayAccountSshKey.Id,\n },\n Options = new[]\n {\n new Scaleway.Inputs.BaremetalServerOptionArgs\n {\n Id = privateNetwork.Apply(getBaremetalOptionResult =\u003e getBaremetalOptionResult.OptionId),\n },\n },\n PrivateNetworks = new[]\n {\n new Scaleway.Inputs.BaremetalServerPrivateNetworkArgs\n {\n Id = pn.Id,\n },\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.LookupIamSshKey(ctx, \u0026scaleway.LookupIamSshKeyArgs{\n\t\t\tName: pulumi.StringRef(\"main\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOs, err := scaleway.GetBaremetalOs(ctx, \u0026scaleway.GetBaremetalOsArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"Ubuntu\"),\n\t\t\tVersion: pulumi.StringRef(\"22.04 LTS (Jammy Jellyfish)\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOffer, err := scaleway.GetBaremetalOffer(ctx, \u0026scaleway.GetBaremetalOfferArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"EM-B112X-SSD\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateNetwork, err := scaleway.GetBaremetalOption(ctx, \u0026scaleway.GetBaremetalOptionArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"Private Network\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn\", \u0026scaleway.VpcPrivateNetworkArgs{\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t\tName: pulumi.String(\"baremetal_private_network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewBaremetalServer(ctx, \"base\", \u0026scaleway.BaremetalServerArgs{\n\t\t\tZone: pulumi.String(\"fr-par-2\"),\n\t\t\tOffer: pulumi.String(myOffer.OfferId),\n\t\t\tOs: pulumi.String(myOs.OsId),\n\t\t\tSshKeyIds: pulumi.StringArray{\n\t\t\t\tmainScalewayAccountSshKey.Id,\n\t\t\t},\n\t\t\tOptions: scaleway.BaremetalServerOptionArray{\n\t\t\t\t\u0026scaleway.BaremetalServerOptionArgs{\n\t\t\t\t\tId: pulumi.String(privateNetwork.OptionId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPrivateNetworks: scaleway.BaremetalServerPrivateNetworkArray{\n\t\t\t\t\u0026scaleway.BaremetalServerPrivateNetworkArgs{\n\t\t\t\t\tId: pn.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\treturn nil\n\t})\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.GetIamSshKeyArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOsArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOfferArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOptionArgs;\nimport com.pulumi.scaleway.VpcPrivateNetwork;\nimport com.pulumi.scaleway.VpcPrivateNetworkArgs;\nimport com.pulumi.scaleway.BaremetalServer;\nimport com.pulumi.scaleway.BaremetalServerArgs;\nimport com.pulumi.scaleway.inputs.BaremetalServerOptionArgs;\nimport com.pulumi.scaleway.inputs.BaremetalServerPrivateNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\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.getIamSshKey(GetIamSshKeyArgs.builder()\n .name(\"main\")\n .build());\n\n final var myOs = ScalewayFunctions.getBaremetalOs(GetBaremetalOsArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"Ubuntu\")\n .version(\"22.04 LTS (Jammy Jellyfish)\")\n .build());\n\n final var myOffer = ScalewayFunctions.getBaremetalOffer(GetBaremetalOfferArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"EM-B112X-SSD\")\n .build());\n\n final var privateNetwork = ScalewayFunctions.getBaremetalOption(GetBaremetalOptionArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"Private Network\")\n .build());\n\n var pn = new VpcPrivateNetwork(\"pn\", VpcPrivateNetworkArgs.builder()\n .region(\"fr-par\")\n .name(\"baremetal_private_network\")\n .build());\n\n var base = new BaremetalServer(\"base\", BaremetalServerArgs.builder()\n .zone(\"fr-par-2\")\n .offer(myOffer.applyValue(getBaremetalOfferResult -\u003e getBaremetalOfferResult.offerId()))\n .os(myOs.applyValue(getBaremetalOsResult -\u003e getBaremetalOsResult.osId()))\n .sshKeyIds(mainScalewayAccountSshKey.id())\n .options(BaremetalServerOptionArgs.builder()\n .id(privateNetwork.applyValue(getBaremetalOptionResult -\u003e getBaremetalOptionResult.optionId()))\n .build())\n .privateNetworks(BaremetalServerPrivateNetworkArgs.builder()\n .id(pn.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pn:\n type: scaleway:VpcPrivateNetwork\n properties:\n region: fr-par\n name: baremetal_private_network\n base:\n type: scaleway:BaremetalServer\n properties:\n zone: fr-par-2\n offer: ${myOffer.offerId}\n os: ${myOs.osId}\n sshKeyIds:\n - ${mainScalewayAccountSshKey.id}\n options:\n - id: ${privateNetwork.optionId}\n privateNetworks:\n - id: ${pn.id}\nvariables:\n main:\n fn::invoke:\n Function: scaleway:getIamSshKey\n Arguments:\n name: main\n myOs:\n fn::invoke:\n Function: scaleway:getBaremetalOs\n Arguments:\n zone: fr-par-2\n name: Ubuntu\n version: 22.04 LTS (Jammy Jellyfish)\n myOffer:\n fn::invoke:\n Function: scaleway:getBaremetalOffer\n Arguments:\n zone: fr-par-2\n name: EM-B112X-SSD\n privateNetwork:\n fn::invoke:\n Function: scaleway:getBaremetalOption\n Arguments:\n zone: fr-par-2\n name: Private Network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPAM IP IDs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst vpc01 = new scaleway.Vpc(\"vpc01\", {name: \"vpc_baremetal\"});\nconst pn01 = new scaleway.VpcPrivateNetwork(\"pn01\", {\n name: \"private_network_baremetal\",\n ipv4Subnet: {\n subnet: \"172.16.64.0/22\",\n },\n vpcId: vpc01.id,\n});\nconst ip01 = new scaleway.IpamIp(\"ip01\", {\n address: \"172.16.64.7\",\n sources: [{\n privateNetworkId: pn01.id,\n }],\n});\nconst myKey = scaleway.getIamSshKey({\n name: \"main\",\n});\nconst myOs = scaleway.getBaremetalOs({\n zone: \"fr-par-1\",\n name: \"Ubuntu\",\n version: \"22.04 LTS (Jammy Jellyfish)\",\n});\nconst myOffer = scaleway.getBaremetalOffer({\n zone: \"fr-par-1\",\n name: \"EM-A115X-SSD\",\n});\nconst privateNetwork = scaleway.getBaremetalOption({\n zone: \"fr-par-1\",\n name: \"Private Network\",\n});\nconst base = new scaleway.BaremetalServer(\"base\", {\n zone: \"fr-par-2\",\n offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n os: myOs.then(myOs =\u003e myOs.osId),\n sshKeyIds: [myKeyScalewayAccountSshKey.id],\n options: [{\n id: privateNetwork.then(privateNetwork =\u003e privateNetwork.optionId),\n }],\n privateNetworks: [{\n id: pn01.id,\n ipamIpIds: [ip01.id],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.Vpc(\"vpc01\", name=\"vpc_baremetal\")\npn01 = scaleway.VpcPrivateNetwork(\"pn01\",\n name=\"private_network_baremetal\",\n ipv4_subnet={\n \"subnet\": \"172.16.64.0/22\",\n },\n vpc_id=vpc01.id)\nip01 = scaleway.IpamIp(\"ip01\",\n address=\"172.16.64.7\",\n sources=[{\n \"private_network_id\": pn01.id,\n }])\nmy_key = scaleway.get_iam_ssh_key(name=\"main\")\nmy_os = scaleway.get_baremetal_os(zone=\"fr-par-1\",\n name=\"Ubuntu\",\n version=\"22.04 LTS (Jammy Jellyfish)\")\nmy_offer = scaleway.get_baremetal_offer(zone=\"fr-par-1\",\n name=\"EM-A115X-SSD\")\nprivate_network = scaleway.get_baremetal_option(zone=\"fr-par-1\",\n name=\"Private Network\")\nbase = scaleway.BaremetalServer(\"base\",\n zone=\"fr-par-2\",\n offer=my_offer.offer_id,\n os=my_os.os_id,\n ssh_key_ids=[my_key_scaleway_account_ssh_key[\"id\"]],\n options=[{\n \"id\": private_network.option_id,\n }],\n private_networks=[{\n \"id\": pn01.id,\n \"ipam_ip_ids\": [ip01.id],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vpc01 = new Scaleway.Vpc(\"vpc01\", new()\n {\n Name = \"vpc_baremetal\",\n });\n\n var pn01 = new Scaleway.VpcPrivateNetwork(\"pn01\", new()\n {\n Name = \"private_network_baremetal\",\n Ipv4Subnet = new Scaleway.Inputs.VpcPrivateNetworkIpv4SubnetArgs\n {\n Subnet = \"172.16.64.0/22\",\n },\n VpcId = vpc01.Id,\n });\n\n var ip01 = new Scaleway.IpamIp(\"ip01\", new()\n {\n Address = \"172.16.64.7\",\n Sources = new[]\n {\n new Scaleway.Inputs.IpamIpSourceArgs\n {\n PrivateNetworkId = pn01.Id,\n },\n },\n });\n\n var myKey = Scaleway.GetIamSshKey.Invoke(new()\n {\n Name = \"main\",\n });\n\n var myOs = Scaleway.GetBaremetalOs.Invoke(new()\n {\n Zone = \"fr-par-1\",\n Name = \"Ubuntu\",\n Version = \"22.04 LTS (Jammy Jellyfish)\",\n });\n\n var myOffer = Scaleway.GetBaremetalOffer.Invoke(new()\n {\n Zone = \"fr-par-1\",\n Name = \"EM-A115X-SSD\",\n });\n\n var privateNetwork = Scaleway.GetBaremetalOption.Invoke(new()\n {\n Zone = \"fr-par-1\",\n Name = \"Private Network\",\n });\n\n var @base = new Scaleway.BaremetalServer(\"base\", new()\n {\n Zone = \"fr-par-2\",\n Offer = myOffer.Apply(getBaremetalOfferResult =\u003e getBaremetalOfferResult.OfferId),\n Os = myOs.Apply(getBaremetalOsResult =\u003e getBaremetalOsResult.OsId),\n SshKeyIds = new[]\n {\n myKeyScalewayAccountSshKey.Id,\n },\n Options = new[]\n {\n new Scaleway.Inputs.BaremetalServerOptionArgs\n {\n Id = privateNetwork.Apply(getBaremetalOptionResult =\u003e getBaremetalOptionResult.OptionId),\n },\n },\n PrivateNetworks = new[]\n {\n new Scaleway.Inputs.BaremetalServerPrivateNetworkArgs\n {\n Id = pn01.Id,\n IpamIpIds = new[]\n {\n ip01.Id,\n },\n },\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\tvpc01, err := scaleway.NewVpc(ctx, \"vpc01\", \u0026scaleway.VpcArgs{\n\t\t\tName: pulumi.String(\"vpc_baremetal\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn01\", \u0026scaleway.VpcPrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"private_network_baremetal\"),\n\t\t\tIpv4Subnet: \u0026scaleway.VpcPrivateNetworkIpv4SubnetArgs{\n\t\t\t\tSubnet: pulumi.String(\"172.16.64.0/22\"),\n\t\t\t},\n\t\t\tVpcId: vpc01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tip01, err := scaleway.NewIpamIp(ctx, \"ip01\", \u0026scaleway.IpamIpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.64.7\"),\n\t\t\tSources: scaleway.IpamIpSourceArray{\n\t\t\t\t\u0026scaleway.IpamIpSourceArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.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_, err = scaleway.LookupIamSshKey(ctx, \u0026scaleway.LookupIamSshKeyArgs{\n\t\t\tName: pulumi.StringRef(\"main\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOs, err := scaleway.GetBaremetalOs(ctx, \u0026scaleway.GetBaremetalOsArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-1\"),\n\t\t\tName: pulumi.StringRef(\"Ubuntu\"),\n\t\t\tVersion: pulumi.StringRef(\"22.04 LTS (Jammy Jellyfish)\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOffer, err := scaleway.GetBaremetalOffer(ctx, \u0026scaleway.GetBaremetalOfferArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-1\"),\n\t\t\tName: pulumi.StringRef(\"EM-A115X-SSD\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateNetwork, err := scaleway.GetBaremetalOption(ctx, \u0026scaleway.GetBaremetalOptionArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-1\"),\n\t\t\tName: pulumi.StringRef(\"Private Network\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewBaremetalServer(ctx, \"base\", \u0026scaleway.BaremetalServerArgs{\n\t\t\tZone: pulumi.String(\"fr-par-2\"),\n\t\t\tOffer: pulumi.String(myOffer.OfferId),\n\t\t\tOs: pulumi.String(myOs.OsId),\n\t\t\tSshKeyIds: pulumi.StringArray{\n\t\t\t\tmyKeyScalewayAccountSshKey.Id,\n\t\t\t},\n\t\t\tOptions: scaleway.BaremetalServerOptionArray{\n\t\t\t\t\u0026scaleway.BaremetalServerOptionArgs{\n\t\t\t\t\tId: pulumi.String(privateNetwork.OptionId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPrivateNetworks: scaleway.BaremetalServerPrivateNetworkArray{\n\t\t\t\t\u0026scaleway.BaremetalServerPrivateNetworkArgs{\n\t\t\t\t\tId: pn01.ID(),\n\t\t\t\t\tIpamIpIds: pulumi.StringArray{\n\t\t\t\t\t\tip01.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.Vpc;\nimport com.pulumi.scaleway.VpcArgs;\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.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetIamSshKeyArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOsArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOfferArgs;\nimport com.pulumi.scaleway.inputs.GetBaremetalOptionArgs;\nimport com.pulumi.scaleway.BaremetalServer;\nimport com.pulumi.scaleway.BaremetalServerArgs;\nimport com.pulumi.scaleway.inputs.BaremetalServerOptionArgs;\nimport com.pulumi.scaleway.inputs.BaremetalServerPrivateNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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\", VpcArgs.builder()\n .name(\"vpc_baremetal\")\n .build());\n\n var pn01 = new VpcPrivateNetwork(\"pn01\", VpcPrivateNetworkArgs.builder()\n .name(\"private_network_baremetal\")\n .ipv4Subnet(VpcPrivateNetworkIpv4SubnetArgs.builder()\n .subnet(\"172.16.64.0/22\")\n .build())\n .vpcId(vpc01.id())\n .build());\n\n var ip01 = new IpamIp(\"ip01\", IpamIpArgs.builder()\n .address(\"172.16.64.7\")\n .sources(IpamIpSourceArgs.builder()\n .privateNetworkId(pn01.id())\n .build())\n .build());\n\n final var myKey = ScalewayFunctions.getIamSshKey(GetIamSshKeyArgs.builder()\n .name(\"main\")\n .build());\n\n final var myOs = ScalewayFunctions.getBaremetalOs(GetBaremetalOsArgs.builder()\n .zone(\"fr-par-1\")\n .name(\"Ubuntu\")\n .version(\"22.04 LTS (Jammy Jellyfish)\")\n .build());\n\n final var myOffer = ScalewayFunctions.getBaremetalOffer(GetBaremetalOfferArgs.builder()\n .zone(\"fr-par-1\")\n .name(\"EM-A115X-SSD\")\n .build());\n\n final var privateNetwork = ScalewayFunctions.getBaremetalOption(GetBaremetalOptionArgs.builder()\n .zone(\"fr-par-1\")\n .name(\"Private Network\")\n .build());\n\n var base = new BaremetalServer(\"base\", BaremetalServerArgs.builder()\n .zone(\"fr-par-2\")\n .offer(myOffer.applyValue(getBaremetalOfferResult -\u003e getBaremetalOfferResult.offerId()))\n .os(myOs.applyValue(getBaremetalOsResult -\u003e getBaremetalOsResult.osId()))\n .sshKeyIds(myKeyScalewayAccountSshKey.id())\n .options(BaremetalServerOptionArgs.builder()\n .id(privateNetwork.applyValue(getBaremetalOptionResult -\u003e getBaremetalOptionResult.optionId()))\n .build())\n .privateNetworks(BaremetalServerPrivateNetworkArgs.builder()\n .id(pn01.id())\n .ipamIpIds(ip01.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vpc01:\n type: scaleway:Vpc\n properties:\n name: vpc_baremetal\n pn01:\n type: scaleway:VpcPrivateNetwork\n properties:\n name: private_network_baremetal\n ipv4Subnet:\n subnet: 172.16.64.0/22\n vpcId: ${vpc01.id}\n ip01:\n type: scaleway:IpamIp\n properties:\n address: 172.16.64.7\n sources:\n - privateNetworkId: ${pn01.id}\n base:\n type: scaleway:BaremetalServer\n properties:\n zone: fr-par-2\n offer: ${myOffer.offerId}\n os: ${myOs.osId}\n sshKeyIds:\n - ${myKeyScalewayAccountSshKey.id}\n options:\n - id: ${privateNetwork.optionId}\n privateNetworks:\n - id: ${pn01.id}\n ipamIpIds:\n - ${ip01.id}\nvariables:\n myKey:\n fn::invoke:\n Function: scaleway:getIamSshKey\n Arguments:\n name: main\n myOs:\n fn::invoke:\n Function: scaleway:getBaremetalOs\n Arguments:\n zone: fr-par-1\n name: Ubuntu\n version: 22.04 LTS (Jammy Jellyfish)\n myOffer:\n fn::invoke:\n Function: scaleway:getBaremetalOffer\n Arguments:\n zone: fr-par-1\n name: EM-A115X-SSD\n privateNetwork:\n fn::invoke:\n Function: scaleway:getBaremetalOption\n Arguments:\n zone: fr-par-1\n name: Private Network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Without install config\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst myOffer = scaleway.getBaremetalOffer({\n zone: \"fr-par-2\",\n name: \"EM-B112X-SSD\",\n});\nconst base = new scaleway.BaremetalServer(\"base\", {\n zone: \"fr-par-2\",\n offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n installConfigAfterward: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmy_offer = scaleway.get_baremetal_offer(zone=\"fr-par-2\",\n name=\"EM-B112X-SSD\")\nbase = scaleway.BaremetalServer(\"base\",\n zone=\"fr-par-2\",\n offer=my_offer.offer_id,\n install_config_afterward=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myOffer = Scaleway.GetBaremetalOffer.Invoke(new()\n {\n Zone = \"fr-par-2\",\n Name = \"EM-B112X-SSD\",\n });\n\n var @base = new Scaleway.BaremetalServer(\"base\", new()\n {\n Zone = \"fr-par-2\",\n Offer = myOffer.Apply(getBaremetalOfferResult =\u003e getBaremetalOfferResult.OfferId),\n InstallConfigAfterward = true,\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\tmyOffer, err := scaleway.GetBaremetalOffer(ctx, \u0026scaleway.GetBaremetalOfferArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"EM-B112X-SSD\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewBaremetalServer(ctx, \"base\", \u0026scaleway.BaremetalServerArgs{\n\t\t\tZone: pulumi.String(\"fr-par-2\"),\n\t\t\tOffer: pulumi.String(myOffer.OfferId),\n\t\t\tInstallConfigAfterward: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetBaremetalOfferArgs;\nimport com.pulumi.scaleway.BaremetalServer;\nimport com.pulumi.scaleway.BaremetalServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myOffer = ScalewayFunctions.getBaremetalOffer(GetBaremetalOfferArgs.builder()\n .zone(\"fr-par-2\")\n .name(\"EM-B112X-SSD\")\n .build());\n\n var base = new BaremetalServer(\"base\", BaremetalServerArgs.builder()\n .zone(\"fr-par-2\")\n .offer(myOffer.applyValue(getBaremetalOfferResult -\u003e getBaremetalOfferResult.offerId()))\n .installConfigAfterward(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n base:\n type: scaleway:BaremetalServer\n properties:\n zone: fr-par-2\n offer: ${myOffer.offerId}\n installConfigAfterward: true\nvariables:\n myOffer:\n fn::invoke:\n Function: scaleway:getBaremetalOffer\n Arguments:\n zone: fr-par-2\n name: EM-B112X-SSD\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBaremetal servers can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/baremetalServer:BaremetalServer web fr-par-2/11111111-1111-1111-1111-111111111111\n```\n\n",
"properties": {
"description": {
"type": "string",
@@ -11631,180 +11774,396 @@
"type": "object"
}
},
- "scaleway:index/instanceImage:InstanceImage": {
- "description": "Creates and manages Scaleway Compute Images.\nFor more information, see [the documentation](https://www.scaleway.com/en/developers/api/instance/#path-images-list-instance-images).\n\n## Example Usage\n\n### From a volume\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst volume = new scaleway.InstanceVolume(\"volume\", {\n type: \"b_ssd\",\n sizeInGb: 20,\n});\nconst volumeSnapshot = new scaleway.InstanceSnapshot(\"volume_snapshot\", {volumeId: volume.id});\nconst volumeImage = new scaleway.InstanceImage(\"volume_image\", {\n name: \"image_from_volume\",\n rootVolumeId: volumeSnapshot.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvolume = scaleway.InstanceVolume(\"volume\",\n type=\"b_ssd\",\n size_in_gb=20)\nvolume_snapshot = scaleway.InstanceSnapshot(\"volume_snapshot\", volume_id=volume.id)\nvolume_image = scaleway.InstanceImage(\"volume_image\",\n name=\"image_from_volume\",\n root_volume_id=volume_snapshot.id)\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 volume = new Scaleway.InstanceVolume(\"volume\", new()\n {\n Type = \"b_ssd\",\n SizeInGb = 20,\n });\n\n var volumeSnapshot = new Scaleway.InstanceSnapshot(\"volume_snapshot\", new()\n {\n VolumeId = volume.Id,\n });\n\n var volumeImage = new Scaleway.InstanceImage(\"volume_image\", new()\n {\n Name = \"image_from_volume\",\n RootVolumeId = volumeSnapshot.Id,\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\tvolume, err := scaleway.NewInstanceVolume(ctx, \"volume\", \u0026scaleway.InstanceVolumeArgs{\n\t\t\tType: pulumi.String(\"b_ssd\"),\n\t\t\tSizeInGb: pulumi.Int(20),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvolumeSnapshot, err := scaleway.NewInstanceSnapshot(ctx, \"volume_snapshot\", \u0026scaleway.InstanceSnapshotArgs{\n\t\t\tVolumeId: volume.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewInstanceImage(ctx, \"volume_image\", \u0026scaleway.InstanceImageArgs{\n\t\t\tName: pulumi.String(\"image_from_volume\"),\n\t\t\tRootVolumeId: volumeSnapshot.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.InstanceVolume;\nimport com.pulumi.scaleway.InstanceVolumeArgs;\nimport com.pulumi.scaleway.InstanceSnapshot;\nimport com.pulumi.scaleway.InstanceSnapshotArgs;\nimport com.pulumi.scaleway.InstanceImage;\nimport com.pulumi.scaleway.InstanceImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume = new InstanceVolume(\"volume\", InstanceVolumeArgs.builder()\n .type(\"b_ssd\")\n .sizeInGb(20)\n .build());\n\n var volumeSnapshot = new InstanceSnapshot(\"volumeSnapshot\", InstanceSnapshotArgs.builder()\n .volumeId(volume.id())\n .build());\n\n var volumeImage = new InstanceImage(\"volumeImage\", InstanceImageArgs.builder()\n .name(\"image_from_volume\")\n .rootVolumeId(volumeSnapshot.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume:\n type: scaleway:InstanceVolume\n properties:\n type: b_ssd\n sizeInGb: 20\n volumeSnapshot:\n type: scaleway:InstanceSnapshot\n name: volume_snapshot\n properties:\n volumeId: ${volume.id}\n volumeImage:\n type: scaleway:InstanceImage\n name: volume_image\n properties:\n name: image_from_volume\n rootVolumeId: ${volumeSnapshot.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### From a server\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst server = new scaleway.InstanceServer(\"server\", {\n image: \"ubuntu_jammy\",\n type: \"DEV1-S\",\n});\nconst serverSnapshot = new scaleway.InstanceSnapshot(\"server_snapshot\", {volumeId: main.rootVolume[0].volumeId});\nconst serverImage = new scaleway.InstanceImage(\"server_image\", {\n name: \"image_from_server\",\n rootVolumeId: serverSnapshot.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver = scaleway.InstanceServer(\"server\",\n image=\"ubuntu_jammy\",\n type=\"DEV1-S\")\nserver_snapshot = scaleway.InstanceSnapshot(\"server_snapshot\", volume_id=main[\"rootVolume\"][0][\"volumeId\"])\nserver_image = scaleway.InstanceImage(\"server_image\",\n name=\"image_from_server\",\n root_volume_id=server_snapshot.id)\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 server = new Scaleway.InstanceServer(\"server\", new()\n {\n Image = \"ubuntu_jammy\",\n Type = \"DEV1-S\",\n });\n\n var serverSnapshot = new Scaleway.InstanceSnapshot(\"server_snapshot\", new()\n {\n VolumeId = main.RootVolume[0].VolumeId,\n });\n\n var serverImage = new Scaleway.InstanceImage(\"server_image\", new()\n {\n Name = \"image_from_server\",\n RootVolumeId = serverSnapshot.Id,\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.NewInstanceServer(ctx, \"server\", \u0026scaleway.InstanceServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType: pulumi.String(\"DEV1-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserverSnapshot, err := scaleway.NewInstanceSnapshot(ctx, \"server_snapshot\", \u0026scaleway.InstanceSnapshotArgs{\n\t\t\tVolumeId: pulumi.Any(main.RootVolume[0].VolumeId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewInstanceImage(ctx, \"server_image\", \u0026scaleway.InstanceImageArgs{\n\t\t\tName: pulumi.String(\"image_from_server\"),\n\t\t\tRootVolumeId: serverSnapshot.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.InstanceServer;\nimport com.pulumi.scaleway.InstanceServerArgs;\nimport com.pulumi.scaleway.InstanceSnapshot;\nimport com.pulumi.scaleway.InstanceSnapshotArgs;\nimport com.pulumi.scaleway.InstanceImage;\nimport com.pulumi.scaleway.InstanceImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 server = new InstanceServer(\"server\", InstanceServerArgs.builder()\n .image(\"ubuntu_jammy\")\n .type(\"DEV1-S\")\n .build());\n\n var serverSnapshot = new InstanceSnapshot(\"serverSnapshot\", InstanceSnapshotArgs.builder()\n .volumeId(main.rootVolume()[0].volumeId())\n .build());\n\n var serverImage = new InstanceImage(\"serverImage\", InstanceImageArgs.builder()\n .name(\"image_from_server\")\n .rootVolumeId(serverSnapshot.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n server:\n type: scaleway:InstanceServer\n properties:\n image: ubuntu_jammy\n type: DEV1-S\n serverSnapshot:\n type: scaleway:InstanceSnapshot\n name: server_snapshot\n properties:\n volumeId: ${main.rootVolume[0].volumeId}\n serverImage:\n type: scaleway:InstanceImage\n name: server_image\n properties:\n name: image_from_server\n rootVolumeId: ${serverSnapshot.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With additional volumes\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n server:\n type: scaleway:InstanceServer\n properties:\n image: ubuntu_jammy\n type: DEV1-S\n volume:\n type: scaleway:InstanceVolume\n properties:\n type: b_ssd\n sizeInGb: 20\n volumeSnapshot:\n type: scaleway:InstanceSnapshot\n name: volume_snapshot\n properties:\n volumeId: ${volume.id}\n serverSnapshot:\n type: scaleway:InstanceSnapshot\n name: server_snapshot\n properties:\n volumeId: ${main.rootVolume[0].volumeId}\n image:\n type: scaleway:InstanceImage\n properties:\n name: image_with_extra_volumes\n rootVolumeId: ${serverSnapshot.id}\n additionalVolumes:\n - ${volumeSnapshot.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImages can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instanceImage:InstanceImage main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n",
+ "scaleway:index/inferenceDeployment:InferenceDeployment": {
+ "description": "Creates and manages Scaleway Managed Inference deployments.\nFor more information, see [the documentation](https://www.scaleway.com/en/developers/api/inference/).\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 deployment = new scaleway.InferenceDeployment(\"deployment\", {\n name: \"tf-inference-deployment\",\n nodeType: \"L4\",\n modelName: \"meta/llama-3.1-8b-instruct:fp8\",\n publicEndpoint: {\n isEnabled: true,\n },\n acceptEula: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ndeployment = scaleway.InferenceDeployment(\"deployment\",\n name=\"tf-inference-deployment\",\n node_type=\"L4\",\n model_name=\"meta/llama-3.1-8b-instruct:fp8\",\n public_endpoint={\n \"is_enabled\": True,\n },\n accept_eula=True)\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 deployment = new Scaleway.InferenceDeployment(\"deployment\", new()\n {\n Name = \"tf-inference-deployment\",\n NodeType = \"L4\",\n ModelName = \"meta/llama-3.1-8b-instruct:fp8\",\n PublicEndpoint = new Scaleway.Inputs.InferenceDeploymentPublicEndpointArgs\n {\n IsEnabled = true,\n },\n AcceptEula = true,\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.NewInferenceDeployment(ctx, \"deployment\", \u0026scaleway.InferenceDeploymentArgs{\n\t\t\tName: pulumi.String(\"tf-inference-deployment\"),\n\t\t\tNodeType: pulumi.String(\"L4\"),\n\t\t\tModelName: pulumi.String(\"meta/llama-3.1-8b-instruct:fp8\"),\n\t\t\tPublicEndpoint: \u0026scaleway.InferenceDeploymentPublicEndpointArgs{\n\t\t\t\tIsEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t\tAcceptEula: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.InferenceDeployment;\nimport com.pulumi.scaleway.InferenceDeploymentArgs;\nimport com.pulumi.scaleway.inputs.InferenceDeploymentPublicEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 deployment = new InferenceDeployment(\"deployment\", InferenceDeploymentArgs.builder()\n .name(\"tf-inference-deployment\")\n .nodeType(\"L4\")\n .modelName(\"meta/llama-3.1-8b-instruct:fp8\")\n .publicEndpoint(InferenceDeploymentPublicEndpointArgs.builder()\n .isEnabled(true)\n .build())\n .acceptEula(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n deployment:\n type: scaleway:InferenceDeployment\n properties:\n name: tf-inference-deployment\n nodeType: L4\n modelName: meta/llama-3.1-8b-instruct:fp8\n publicEndpoint:\n isEnabled: true\n acceptEula: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFunctions can be imported using, `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/inferenceDeployment:InferenceDeployment deployment fr-par/11111111-1111-1111-1111-111111111111\n```\n\n",
"properties": {
- "additionalVolumeIds": {
- "type": "string",
- "description": "List of IDs of the snapshots of the additional volumes to be attached to the image.\n\n\u003e **Important:** For now it is only possible to have 1 additional_volume.\n"
- },
- "additionalVolumes": {
- "type": "array",
- "items": {
- "$ref": "#/types/scaleway:index/InstanceImageAdditionalVolume:InstanceImageAdditionalVolume"
- },
- "description": "The description of the extra volumes attached to the image.\n"
+ "acceptEula": {
+ "type": "boolean",
+ "description": "Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.\n"
},
- "architecture": {
+ "createdAt": {
"type": "string",
- "description": "The architecture the image is compatible with. Possible values are: `x86_64` or `arm`.\n"
+ "description": "The date and time of the creation of the deployment.\n"
},
- "creationDate": {
- "type": "string",
- "description": "Date of the volume creation.\n"
+ "maxSize": {
+ "type": "integer",
+ "description": "The maximum size of the pool.\n"
},
- "fromServerId": {
+ "minSize": {
+ "type": "integer",
+ "description": "The minimum size of the pool.\n"
+ },
+ "modelId": {
"type": "string",
- "description": "ID of the server the image is based on (in case it is a backup).\n"
+ "description": "The model id used for the deployment.\n"
},
- "modificationDate": {
+ "modelName": {
"type": "string",
- "description": "Date of volume latest update.\n"
+ "description": "The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)\n"
},
"name": {
"type": "string",
- "description": "The name of the image. If not provided it will be randomly generated.\n"
+ "description": "The deployment name.\n"
},
- "organizationId": {
+ "nodeType": {
"type": "string",
- "description": "The organization ID the image is associated with.\n"
+ "description": "The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)\n"
+ },
+ "privateEndpoint": {
+ "$ref": "#/types/scaleway:index/InferenceDeploymentPrivateEndpoint:InferenceDeploymentPrivateEndpoint",
+ "description": "Configuration of the deployment's private endpoint.\n"
},
"projectId": {
"type": "string",
- "description": "The ID of the project the image is associated with.\n"
+ "description": "`project_id`) The ID of the project the deployment is associated with.\n"
},
- "public": {
- "type": "boolean",
- "description": "Set to `true` if the image is public.\n"
+ "publicEndpoint": {
+ "$ref": "#/types/scaleway:index/InferenceDeploymentPublicEndpoint:InferenceDeploymentPublicEndpoint",
+ "description": "Configuration of the deployment's public endpoint.\n"
},
- "rootVolumeId": {
+ "region": {
"type": "string",
- "description": "The ID of the snapshot of the volume to be used as root in the image.\n"
+ "description": "`region`) The region in which the deployment is created.\n"
},
- "state": {
+ "size": {
+ "type": "integer",
+ "description": "The size of the pool.\n"
+ },
+ "status": {
"type": "string",
- "description": "State of the volume.\n"
+ "description": "The status of the deployment.\n"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
- "description": "A list of tags to apply to the image.\n"
+ "description": "The tags associated with the deployment.\n"
},
- "zone": {
+ "updatedAt": {
"type": "string",
- "description": "The zone in which the image should be created.\n"
+ "description": "The date and time of the last update of the deployment.\n"
}
},
"required": [
- "additionalVolumes",
- "creationDate",
- "fromServerId",
- "modificationDate",
+ "createdAt",
+ "maxSize",
+ "minSize",
+ "modelId",
+ "modelName",
"name",
- "organizationId",
+ "nodeType",
"projectId",
- "rootVolumeId",
- "state",
- "zone"
+ "region",
+ "size",
+ "status",
+ "updatedAt"
],
"inputProperties": {
- "additionalVolumeIds": {
- "type": "string",
- "description": "List of IDs of the snapshots of the additional volumes to be attached to the image.\n\n\u003e **Important:** For now it is only possible to have 1 additional_volume.\n"
+ "acceptEula": {
+ "type": "boolean",
+ "description": "Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.\n"
},
- "architecture": {
+ "maxSize": {
+ "type": "integer",
+ "description": "The maximum size of the pool.\n"
+ },
+ "minSize": {
+ "type": "integer",
+ "description": "The minimum size of the pool.\n"
+ },
+ "modelName": {
"type": "string",
- "description": "The architecture the image is compatible with. Possible values are: `x86_64` or `arm`.\n"
+ "description": "The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)\n"
},
"name": {
"type": "string",
- "description": "The name of the image. If not provided it will be randomly generated.\n"
+ "description": "The deployment name.\n"
+ },
+ "nodeType": {
+ "type": "string",
+ "description": "The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)\n"
+ },
+ "privateEndpoint": {
+ "$ref": "#/types/scaleway:index/InferenceDeploymentPrivateEndpoint:InferenceDeploymentPrivateEndpoint",
+ "description": "Configuration of the deployment's private endpoint.\n"
},
"projectId": {
"type": "string",
- "description": "The ID of the project the image is associated with.\n",
+ "description": "`project_id`) The ID of the project the deployment is associated with.\n",
"willReplaceOnChanges": true
},
- "public": {
- "type": "boolean",
- "description": "Set to `true` if the image is public.\n"
+ "publicEndpoint": {
+ "$ref": "#/types/scaleway:index/InferenceDeploymentPublicEndpoint:InferenceDeploymentPublicEndpoint",
+ "description": "Configuration of the deployment's public endpoint.\n"
},
- "rootVolumeId": {
+ "region": {
"type": "string",
- "description": "The ID of the snapshot of the volume to be used as root in the image.\n"
+ "description": "`region`) The region in which the deployment is created.\n",
+ "willReplaceOnChanges": true
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
- "description": "A list of tags to apply to the image.\n"
- },
- "zone": {
- "type": "string",
- "description": "The zone in which the image should be created.\n",
- "willReplaceOnChanges": true
+ "description": "The tags associated with the deployment.\n"
}
},
"requiredInputs": [
- "rootVolumeId"
+ "modelName",
+ "nodeType"
],
"stateInputs": {
- "description": "Input properties used for looking up and filtering InstanceImage resources.\n",
+ "description": "Input properties used for looking up and filtering InferenceDeployment resources.\n",
"properties": {
- "additionalVolumeIds": {
- "type": "string",
- "description": "List of IDs of the snapshots of the additional volumes to be attached to the image.\n\n\u003e **Important:** For now it is only possible to have 1 additional_volume.\n"
- },
- "additionalVolumes": {
- "type": "array",
- "items": {
- "$ref": "#/types/scaleway:index/InstanceImageAdditionalVolume:InstanceImageAdditionalVolume"
- },
- "description": "The description of the extra volumes attached to the image.\n"
+ "acceptEula": {
+ "type": "boolean",
+ "description": "Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.\n"
},
- "architecture": {
+ "createdAt": {
"type": "string",
- "description": "The architecture the image is compatible with. Possible values are: `x86_64` or `arm`.\n"
+ "description": "The date and time of the creation of the deployment.\n"
},
- "creationDate": {
- "type": "string",
- "description": "Date of the volume creation.\n"
+ "maxSize": {
+ "type": "integer",
+ "description": "The maximum size of the pool.\n"
},
- "fromServerId": {
+ "minSize": {
+ "type": "integer",
+ "description": "The minimum size of the pool.\n"
+ },
+ "modelId": {
"type": "string",
- "description": "ID of the server the image is based on (in case it is a backup).\n"
+ "description": "The model id used for the deployment.\n"
},
- "modificationDate": {
+ "modelName": {
"type": "string",
- "description": "Date of volume latest update.\n"
+ "description": "The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)\n"
},
"name": {
"type": "string",
- "description": "The name of the image. If not provided it will be randomly generated.\n"
+ "description": "The deployment name.\n"
},
- "organizationId": {
+ "nodeType": {
"type": "string",
- "description": "The organization ID the image is associated with.\n"
+ "description": "The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)\n"
+ },
+ "privateEndpoint": {
+ "$ref": "#/types/scaleway:index/InferenceDeploymentPrivateEndpoint:InferenceDeploymentPrivateEndpoint",
+ "description": "Configuration of the deployment's private endpoint.\n"
},
"projectId": {
"type": "string",
- "description": "The ID of the project the image is associated with.\n",
+ "description": "`project_id`) The ID of the project the deployment is associated with.\n",
"willReplaceOnChanges": true
},
- "public": {
- "type": "boolean",
- "description": "Set to `true` if the image is public.\n"
- },
- "rootVolumeId": {
- "type": "string",
- "description": "The ID of the snapshot of the volume to be used as root in the image.\n"
+ "publicEndpoint": {
+ "$ref": "#/types/scaleway:index/InferenceDeploymentPublicEndpoint:InferenceDeploymentPublicEndpoint",
+ "description": "Configuration of the deployment's public endpoint.\n"
},
- "state": {
+ "region": {
"type": "string",
- "description": "State of the volume.\n"
+ "description": "`region`) The region in which the deployment is created.\n",
+ "willReplaceOnChanges": true
+ },
+ "size": {
+ "type": "integer",
+ "description": "The size of the pool.\n"
+ },
+ "status": {
+ "type": "string",
+ "description": "The status of the deployment.\n"
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The tags associated with the deployment.\n"
+ },
+ "updatedAt": {
+ "type": "string",
+ "description": "The date and time of the last update of the deployment.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "scaleway:index/instanceImage:InstanceImage": {
+ "description": "Creates and manages Scaleway Compute Images.\nFor more information, see [the documentation](https://www.scaleway.com/en/developers/api/instance/#path-images-list-instance-images).\n\n## Example Usage\n\n### From a volume\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst volume = new scaleway.InstanceVolume(\"volume\", {\n type: \"b_ssd\",\n sizeInGb: 20,\n});\nconst volumeSnapshot = new scaleway.InstanceSnapshot(\"volume_snapshot\", {volumeId: volume.id});\nconst volumeImage = new scaleway.InstanceImage(\"volume_image\", {\n name: \"image_from_volume\",\n rootVolumeId: volumeSnapshot.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvolume = scaleway.InstanceVolume(\"volume\",\n type=\"b_ssd\",\n size_in_gb=20)\nvolume_snapshot = scaleway.InstanceSnapshot(\"volume_snapshot\", volume_id=volume.id)\nvolume_image = scaleway.InstanceImage(\"volume_image\",\n name=\"image_from_volume\",\n root_volume_id=volume_snapshot.id)\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 volume = new Scaleway.InstanceVolume(\"volume\", new()\n {\n Type = \"b_ssd\",\n SizeInGb = 20,\n });\n\n var volumeSnapshot = new Scaleway.InstanceSnapshot(\"volume_snapshot\", new()\n {\n VolumeId = volume.Id,\n });\n\n var volumeImage = new Scaleway.InstanceImage(\"volume_image\", new()\n {\n Name = \"image_from_volume\",\n RootVolumeId = volumeSnapshot.Id,\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\tvolume, err := scaleway.NewInstanceVolume(ctx, \"volume\", \u0026scaleway.InstanceVolumeArgs{\n\t\t\tType: pulumi.String(\"b_ssd\"),\n\t\t\tSizeInGb: pulumi.Int(20),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvolumeSnapshot, err := scaleway.NewInstanceSnapshot(ctx, \"volume_snapshot\", \u0026scaleway.InstanceSnapshotArgs{\n\t\t\tVolumeId: volume.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewInstanceImage(ctx, \"volume_image\", \u0026scaleway.InstanceImageArgs{\n\t\t\tName: pulumi.String(\"image_from_volume\"),\n\t\t\tRootVolumeId: volumeSnapshot.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.InstanceVolume;\nimport com.pulumi.scaleway.InstanceVolumeArgs;\nimport com.pulumi.scaleway.InstanceSnapshot;\nimport com.pulumi.scaleway.InstanceSnapshotArgs;\nimport com.pulumi.scaleway.InstanceImage;\nimport com.pulumi.scaleway.InstanceImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var volume = new InstanceVolume(\"volume\", InstanceVolumeArgs.builder()\n .type(\"b_ssd\")\n .sizeInGb(20)\n .build());\n\n var volumeSnapshot = new InstanceSnapshot(\"volumeSnapshot\", InstanceSnapshotArgs.builder()\n .volumeId(volume.id())\n .build());\n\n var volumeImage = new InstanceImage(\"volumeImage\", InstanceImageArgs.builder()\n .name(\"image_from_volume\")\n .rootVolumeId(volumeSnapshot.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n volume:\n type: scaleway:InstanceVolume\n properties:\n type: b_ssd\n sizeInGb: 20\n volumeSnapshot:\n type: scaleway:InstanceSnapshot\n name: volume_snapshot\n properties:\n volumeId: ${volume.id}\n volumeImage:\n type: scaleway:InstanceImage\n name: volume_image\n properties:\n name: image_from_volume\n rootVolumeId: ${volumeSnapshot.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### From a server\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst server = new scaleway.InstanceServer(\"server\", {\n image: \"ubuntu_jammy\",\n type: \"DEV1-S\",\n});\nconst serverSnapshot = new scaleway.InstanceSnapshot(\"server_snapshot\", {volumeId: main.rootVolume[0].volumeId});\nconst serverImage = new scaleway.InstanceImage(\"server_image\", {\n name: \"image_from_server\",\n rootVolumeId: serverSnapshot.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver = scaleway.InstanceServer(\"server\",\n image=\"ubuntu_jammy\",\n type=\"DEV1-S\")\nserver_snapshot = scaleway.InstanceSnapshot(\"server_snapshot\", volume_id=main[\"rootVolume\"][0][\"volumeId\"])\nserver_image = scaleway.InstanceImage(\"server_image\",\n name=\"image_from_server\",\n root_volume_id=server_snapshot.id)\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 server = new Scaleway.InstanceServer(\"server\", new()\n {\n Image = \"ubuntu_jammy\",\n Type = \"DEV1-S\",\n });\n\n var serverSnapshot = new Scaleway.InstanceSnapshot(\"server_snapshot\", new()\n {\n VolumeId = main.RootVolume[0].VolumeId,\n });\n\n var serverImage = new Scaleway.InstanceImage(\"server_image\", new()\n {\n Name = \"image_from_server\",\n RootVolumeId = serverSnapshot.Id,\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.NewInstanceServer(ctx, \"server\", \u0026scaleway.InstanceServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType: pulumi.String(\"DEV1-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserverSnapshot, err := scaleway.NewInstanceSnapshot(ctx, \"server_snapshot\", \u0026scaleway.InstanceSnapshotArgs{\n\t\t\tVolumeId: pulumi.Any(main.RootVolume[0].VolumeId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewInstanceImage(ctx, \"server_image\", \u0026scaleway.InstanceImageArgs{\n\t\t\tName: pulumi.String(\"image_from_server\"),\n\t\t\tRootVolumeId: serverSnapshot.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.InstanceServer;\nimport com.pulumi.scaleway.InstanceServerArgs;\nimport com.pulumi.scaleway.InstanceSnapshot;\nimport com.pulumi.scaleway.InstanceSnapshotArgs;\nimport com.pulumi.scaleway.InstanceImage;\nimport com.pulumi.scaleway.InstanceImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 server = new InstanceServer(\"server\", InstanceServerArgs.builder()\n .image(\"ubuntu_jammy\")\n .type(\"DEV1-S\")\n .build());\n\n var serverSnapshot = new InstanceSnapshot(\"serverSnapshot\", InstanceSnapshotArgs.builder()\n .volumeId(main.rootVolume()[0].volumeId())\n .build());\n\n var serverImage = new InstanceImage(\"serverImage\", InstanceImageArgs.builder()\n .name(\"image_from_server\")\n .rootVolumeId(serverSnapshot.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n server:\n type: scaleway:InstanceServer\n properties:\n image: ubuntu_jammy\n type: DEV1-S\n serverSnapshot:\n type: scaleway:InstanceSnapshot\n name: server_snapshot\n properties:\n volumeId: ${main.rootVolume[0].volumeId}\n serverImage:\n type: scaleway:InstanceImage\n name: server_image\n properties:\n name: image_from_server\n rootVolumeId: ${serverSnapshot.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With additional volumes\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n server:\n type: scaleway:InstanceServer\n properties:\n image: ubuntu_jammy\n type: DEV1-S\n volume:\n type: scaleway:InstanceVolume\n properties:\n type: b_ssd\n sizeInGb: 20\n volumeSnapshot:\n type: scaleway:InstanceSnapshot\n name: volume_snapshot\n properties:\n volumeId: ${volume.id}\n serverSnapshot:\n type: scaleway:InstanceSnapshot\n name: server_snapshot\n properties:\n volumeId: ${main.rootVolume[0].volumeId}\n image:\n type: scaleway:InstanceImage\n properties:\n name: image_with_extra_volumes\n rootVolumeId: ${serverSnapshot.id}\n additionalVolumes:\n - ${volumeSnapshot.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImages can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instanceImage:InstanceImage main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n",
+ "properties": {
+ "additionalVolumeIds": {
+ "type": "string",
+ "description": "List of IDs of the snapshots of the additional volumes to be attached to the image.\n\n\u003e **Important:** For now it is only possible to have 1 additional_volume.\n"
+ },
+ "additionalVolumes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/scaleway:index/InstanceImageAdditionalVolume:InstanceImageAdditionalVolume"
+ },
+ "description": "The description of the extra volumes attached to the image.\n"
+ },
+ "architecture": {
+ "type": "string",
+ "description": "The architecture the image is compatible with. Possible values are: `x86_64` or `arm`.\n"
+ },
+ "creationDate": {
+ "type": "string",
+ "description": "Date of the volume creation.\n"
+ },
+ "fromServerId": {
+ "type": "string",
+ "description": "ID of the server the image is based on (in case it is a backup).\n"
+ },
+ "modificationDate": {
+ "type": "string",
+ "description": "Date of volume latest update.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the image. If not provided it will be randomly generated.\n"
+ },
+ "organizationId": {
+ "type": "string",
+ "description": "The organization ID the image is associated with.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The ID of the project the image is associated with.\n"
+ },
+ "public": {
+ "type": "boolean",
+ "description": "Set to `true` if the image is public.\n"
+ },
+ "rootVolumeId": {
+ "type": "string",
+ "description": "The ID of the snapshot of the volume to be used as root in the image.\n"
+ },
+ "state": {
+ "type": "string",
+ "description": "State of the volume.\n"
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of tags to apply to the image.\n"
+ },
+ "zone": {
+ "type": "string",
+ "description": "The zone in which the image should be created.\n"
+ }
+ },
+ "required": [
+ "additionalVolumes",
+ "creationDate",
+ "fromServerId",
+ "modificationDate",
+ "name",
+ "organizationId",
+ "projectId",
+ "rootVolumeId",
+ "state",
+ "zone"
+ ],
+ "inputProperties": {
+ "additionalVolumeIds": {
+ "type": "string",
+ "description": "List of IDs of the snapshots of the additional volumes to be attached to the image.\n\n\u003e **Important:** For now it is only possible to have 1 additional_volume.\n"
+ },
+ "architecture": {
+ "type": "string",
+ "description": "The architecture the image is compatible with. Possible values are: `x86_64` or `arm`.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the image. If not provided it will be randomly generated.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The ID of the project the image is associated with.\n",
+ "willReplaceOnChanges": true
+ },
+ "public": {
+ "type": "boolean",
+ "description": "Set to `true` if the image is public.\n"
+ },
+ "rootVolumeId": {
+ "type": "string",
+ "description": "The ID of the snapshot of the volume to be used as root in the image.\n"
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of tags to apply to the image.\n"
+ },
+ "zone": {
+ "type": "string",
+ "description": "The zone in which the image should be created.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "requiredInputs": [
+ "rootVolumeId"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering InstanceImage resources.\n",
+ "properties": {
+ "additionalVolumeIds": {
+ "type": "string",
+ "description": "List of IDs of the snapshots of the additional volumes to be attached to the image.\n\n\u003e **Important:** For now it is only possible to have 1 additional_volume.\n"
+ },
+ "additionalVolumes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/scaleway:index/InstanceImageAdditionalVolume:InstanceImageAdditionalVolume"
+ },
+ "description": "The description of the extra volumes attached to the image.\n"
+ },
+ "architecture": {
+ "type": "string",
+ "description": "The architecture the image is compatible with. Possible values are: `x86_64` or `arm`.\n"
+ },
+ "creationDate": {
+ "type": "string",
+ "description": "Date of the volume creation.\n"
+ },
+ "fromServerId": {
+ "type": "string",
+ "description": "ID of the server the image is based on (in case it is a backup).\n"
+ },
+ "modificationDate": {
+ "type": "string",
+ "description": "Date of volume latest update.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the image. If not provided it will be randomly generated.\n"
+ },
+ "organizationId": {
+ "type": "string",
+ "description": "The organization ID the image is associated with.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The ID of the project the image is associated with.\n",
+ "willReplaceOnChanges": true
+ },
+ "public": {
+ "type": "boolean",
+ "description": "Set to `true` if the image is public.\n"
+ },
+ "rootVolumeId": {
+ "type": "string",
+ "description": "The ID of the snapshot of the volume to be used as root in the image.\n"
+ },
+ "state": {
+ "type": "string",
+ "description": "State of the volume.\n"
},
"tags": {
"type": "array",
@@ -12560,7 +12919,7 @@
},
"bootscriptId": {
"type": "string",
- "description": "The ID of the bootscript to use (set boot_type to `bootscript`).\n",
+ "description": "ID of the target bootscript (set boot_type to bootscript)\n",
"deprecationMessage": "bootscript is not supported anymore."
},
"cloudInit": {
@@ -12603,7 +12962,8 @@
},
"ipv6PrefixLength": {
"type": "integer",
- "description": "The prefix length of the ipv6 subnet routed to the server. ( Only set when enable_ipv6 is set to true )\nDeprecated: Please use a scaleway.InstanceIp with a `routed_ipv6` type.\n"
+ "description": "The prefix length of the ipv6 subnet routed to the server. ( Only set when enable_ipv6 is set to true )\nDeprecated: Please use a scaleway.InstanceIp with a `routed_ipv6` type.\n",
+ "deprecationMessage": "Please use a scaleway.InstanceIp with a `routed_ipv6` type"
},
"name": {
"type": "string",
@@ -12658,7 +13018,8 @@
},
"routedIpEnabled": {
"type": "boolean",
- "description": "If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.\n\n\u003e **Important:** Enabling routed ip will restart the server\n"
+ "description": "If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.\n\n\u003e **Important:** Enabling routed ip will restart the server\n",
+ "deprecationMessage": "Routed IP is the default configuration, it should always be true"
},
"securityGroupId": {
"type": "string",
@@ -12725,7 +13086,7 @@
},
"bootscriptId": {
"type": "string",
- "description": "The ID of the bootscript to use (set boot_type to `bootscript`).\n",
+ "description": "ID of the target bootscript (set boot_type to bootscript)\n",
"deprecationMessage": "bootscript is not supported anymore."
},
"cloudInit": {
@@ -12793,7 +13154,8 @@
},
"routedIpEnabled": {
"type": "boolean",
- "description": "If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.\n\n\u003e **Important:** Enabling routed ip will restart the server\n"
+ "description": "If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.\n\n\u003e **Important:** Enabling routed ip will restart the server\n",
+ "deprecationMessage": "Routed IP is the default configuration, it should always be true"
},
"securityGroupId": {
"type": "string",
@@ -12846,7 +13208,7 @@
},
"bootscriptId": {
"type": "string",
- "description": "The ID of the bootscript to use (set boot_type to `bootscript`).\n",
+ "description": "ID of the target bootscript (set boot_type to bootscript)\n",
"deprecationMessage": "bootscript is not supported anymore."
},
"cloudInit": {
@@ -12889,7 +13251,8 @@
},
"ipv6PrefixLength": {
"type": "integer",
- "description": "The prefix length of the ipv6 subnet routed to the server. ( Only set when enable_ipv6 is set to true )\nDeprecated: Please use a scaleway.InstanceIp with a `routed_ipv6` type.\n"
+ "description": "The prefix length of the ipv6 subnet routed to the server. ( Only set when enable_ipv6 is set to true )\nDeprecated: Please use a scaleway.InstanceIp with a `routed_ipv6` type.\n",
+ "deprecationMessage": "Please use a scaleway.InstanceIp with a `routed_ipv6` type"
},
"name": {
"type": "string",
@@ -12945,7 +13308,8 @@
},
"routedIpEnabled": {
"type": "boolean",
- "description": "If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.\n\n\u003e **Important:** Enabling routed ip will restart the server\n"
+ "description": "If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.\n\n\u003e **Important:** Enabling routed ip will restart the server\n",
+ "deprecationMessage": "Routed IP is the default configuration, it should always be true"
},
"securityGroupId": {
"type": "string",
@@ -13761,6 +14125,10 @@
"type": "string",
"description": "The name of the IoT Network you want to create (e.g. `my-net`).\n"
},
+ "region": {
+ "type": "string",
+ "description": "(Defaults to provider `region`) The region in which the Network is attached to.\n"
+ },
"secret": {
"type": "string",
"description": "The endpoint key to keep secret.\n",
@@ -13780,6 +14148,7 @@
"endpoint",
"hubId",
"name",
+ "region",
"secret",
"type"
],
@@ -13794,6 +14163,11 @@
"description": "The name of the IoT Network you want to create (e.g. `my-net`).\n",
"willReplaceOnChanges": true
},
+ "region": {
+ "type": "string",
+ "description": "(Defaults to provider `region`) The region in which the Network is attached to.\n",
+ "willReplaceOnChanges": true
+ },
"topicPrefix": {
"type": "string",
"description": "The prefix that will be prepended to all topics for this Network.\n",
@@ -13830,6 +14204,11 @@
"description": "The name of the IoT Network you want to create (e.g. `my-net`).\n",
"willReplaceOnChanges": true
},
+ "region": {
+ "type": "string",
+ "description": "(Defaults to provider `region`) The region in which the Network is attached to.\n",
+ "willReplaceOnChanges": true
+ },
"secret": {
"type": "string",
"description": "The endpoint key to keep secret.\n",
@@ -13850,7 +14229,7 @@
}
},
"scaleway:index/iotRoute:IotRoute": {
- "description": "## Example Usage\n\n### Database Route\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainIotHub = new scaleway.IotHub(\"main\", {\n name: \"main\",\n productPlan: \"plan_shared\",\n});\nconst iot = new scaleway.DatabaseInstance(\"iot\", {\n name: \"iot\",\n nodeType: \"db-dev-s\",\n engine: \"PostgreSQL-12\",\n userName: \"root\",\n password: \"T3stP4ssw0rdD0N0tUs3!\",\n});\nconst main = new scaleway.IotRoute(\"main\", {\n name: \"default\",\n hubId: mainIotHub.id,\n topic: \"#\",\n database: {\n query: `INSERT INTO measurements(\n\\x09push_time,\n\\x09report_time,\n\\x09station_id,\n\\x09temperature,\n\\x09humidity\n) VALUES (\n\\x09NOW(),\n\\x09TIMESTAMP 'epoch' + ((PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n\\x09(PAYLOAD::jsonb-\u003e'station_id')::uuid,\n\\x09(PAYLOAD::jsonb-\u003e'temperature')::decimal,\n\\x09(PAYLOAD::jsonb-\u003e'humidity'):decimal:\n);\n`,\n host: iot.endpointIp,\n port: iot.endpointPort,\n dbname: \"rdb\",\n username: iot.userName,\n password: iot.password,\n },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_iot_hub = scaleway.IotHub(\"main\",\n name=\"main\",\n product_plan=\"plan_shared\")\niot = scaleway.DatabaseInstance(\"iot\",\n name=\"iot\",\n node_type=\"db-dev-s\",\n engine=\"PostgreSQL-12\",\n user_name=\"root\",\n password=\"T3stP4ssw0rdD0N0tUs3!\")\nmain = scaleway.IotRoute(\"main\",\n name=\"default\",\n hub_id=main_iot_hub.id,\n topic=\"#\",\n database={\n \"query\": \"\"\"INSERT INTO measurements(\n\\x09push_time,\n\\x09report_time,\n\\x09station_id,\n\\x09temperature,\n\\x09humidity\n) VALUES (\n\\x09NOW(),\n\\x09TIMESTAMP 'epoch' + (($PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n\\x09($PAYLOAD::jsonb-\u003e'station_id')::uuid,\n\\x09($PAYLOAD::jsonb-\u003e'temperature')::decimal,\n\\x09($PAYLOAD::jsonb-\u003e'humidity'):decimal:\n);\n\"\"\",\n \"host\": iot.endpoint_ip,\n \"port\": iot.endpoint_port,\n \"dbname\": \"rdb\",\n \"username\": iot.user_name,\n \"password\": iot.password,\n })\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 mainIotHub = new Scaleway.IotHub(\"main\", new()\n {\n Name = \"main\",\n ProductPlan = \"plan_shared\",\n });\n\n var iot = new Scaleway.DatabaseInstance(\"iot\", new()\n {\n Name = \"iot\",\n NodeType = \"db-dev-s\",\n Engine = \"PostgreSQL-12\",\n UserName = \"root\",\n Password = \"T3stP4ssw0rdD0N0tUs3!\",\n });\n\n var main = new Scaleway.IotRoute(\"main\", new()\n {\n Name = \"default\",\n HubId = mainIotHub.Id,\n Topic = \"#\",\n Database = new Scaleway.Inputs.IotRouteDatabaseArgs\n {\n Query = @\"INSERT INTO measurements(\n\tpush_time,\n\treport_time,\n\tstation_id,\n\ttemperature,\n\thumidity\n) VALUES (\n\tNOW(),\n\tTIMESTAMP 'epoch' + (($PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n\t($PAYLOAD::jsonb-\u003e'station_id')::uuid,\n\t($PAYLOAD::jsonb-\u003e'temperature')::decimal,\n\t($PAYLOAD::jsonb-\u003e'humidity'):decimal:\n);\n\",\n Host = iot.EndpointIp,\n Port = iot.EndpointPort,\n Dbname = \"rdb\",\n Username = iot.UserName,\n Password = iot.Password,\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\tmainIotHub, err := scaleway.NewIotHub(ctx, \"main\", \u0026scaleway.IotHubArgs{\n\t\t\tName: pulumi.String(\"main\"),\n\t\t\tProductPlan: pulumi.String(\"plan_shared\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tiot, err := scaleway.NewDatabaseInstance(ctx, \"iot\", \u0026scaleway.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"iot\"),\n\t\t\tNodeType: pulumi.String(\"db-dev-s\"),\n\t\t\tEngine: pulumi.String(\"PostgreSQL-12\"),\n\t\t\tUserName: pulumi.String(\"root\"),\n\t\t\tPassword: pulumi.String(\"T3stP4ssw0rdD0N0tUs3!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewIotRoute(ctx, \"main\", \u0026scaleway.IotRouteArgs{\n\t\t\tName: pulumi.String(\"default\"),\n\t\t\tHubId: mainIotHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tDatabase: \u0026scaleway.IotRouteDatabaseArgs{\n\t\t\t\tQuery: pulumi.String(`INSERT INTO measurements(\n\tpush_time,\n\treport_time,\n\tstation_id,\n\ttemperature,\n\thumidity\n) VALUES (\n\tNOW(),\n\tTIMESTAMP 'epoch' + (($PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n\t($PAYLOAD::jsonb-\u003e'station_id')::uuid,\n\t($PAYLOAD::jsonb-\u003e'temperature')::decimal,\n\t($PAYLOAD::jsonb-\u003e'humidity'):decimal:\n);\n`),\n\t\t\t\tHost: iot.EndpointIp,\n\t\t\t\tPort: iot.EndpointPort,\n\t\t\t\tDbname: pulumi.String(\"rdb\"),\n\t\t\t\tUsername: iot.UserName,\n\t\t\t\tPassword: iot.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.IotHub;\nimport com.pulumi.scaleway.IotHubArgs;\nimport com.pulumi.scaleway.DatabaseInstance;\nimport com.pulumi.scaleway.DatabaseInstanceArgs;\nimport com.pulumi.scaleway.IotRoute;\nimport com.pulumi.scaleway.IotRouteArgs;\nimport com.pulumi.scaleway.inputs.IotRouteDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mainIotHub = new IotHub(\"mainIotHub\", IotHubArgs.builder()\n .name(\"main\")\n .productPlan(\"plan_shared\")\n .build());\n\n var iot = new DatabaseInstance(\"iot\", DatabaseInstanceArgs.builder()\n .name(\"iot\")\n .nodeType(\"db-dev-s\")\n .engine(\"PostgreSQL-12\")\n .userName(\"root\")\n .password(\"T3stP4ssw0rdD0N0tUs3!\")\n .build());\n\n var main = new IotRoute(\"main\", IotRouteArgs.builder()\n .name(\"default\")\n .hubId(mainIotHub.id())\n .topic(\"#\")\n .database(IotRouteDatabaseArgs.builder()\n .query(\"\"\"\nINSERT INTO measurements(\n\tpush_time,\n\treport_time,\n\tstation_id,\n\ttemperature,\n\thumidity\n) VALUES (\n\tNOW(),\n\tTIMESTAMP 'epoch' + (($PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n\t($PAYLOAD::jsonb-\u003e'station_id')::uuid,\n\t($PAYLOAD::jsonb-\u003e'temperature')::decimal,\n\t($PAYLOAD::jsonb-\u003e'humidity'):decimal:\n);\n \"\"\")\n .host(iot.endpointIp())\n .port(iot.endpointPort())\n .dbname(\"rdb\")\n .username(iot.userName())\n .password(iot.password())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:IotRoute\n properties:\n name: default\n hubId: ${mainIotHub.id}\n topic: '#'\n database:\n query: |\n INSERT INTO measurements(\n \tpush_time,\n \treport_time,\n \tstation_id,\n \ttemperature,\n \thumidity\n ) VALUES (\n \tNOW(),\n \tTIMESTAMP 'epoch' + (($PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n \t($PAYLOAD::jsonb-\u003e'station_id')::uuid,\n \t($PAYLOAD::jsonb-\u003e'temperature')::decimal,\n \t($PAYLOAD::jsonb-\u003e'humidity'):decimal:\n );\n host: ${iot.endpointIp}\n port: ${iot.endpointPort}\n dbname: rdb\n username: ${iot.userName}\n password: ${iot.password}\n mainIotHub:\n type: scaleway:IotHub\n name: main\n properties:\n name: main\n productPlan: plan_shared\n iot:\n type: scaleway:DatabaseInstance\n properties:\n name: iot\n nodeType: db-dev-s\n engine: PostgreSQL-12\n userName: root\n password: T3stP4ssw0rdD0N0tUs3!\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### S3 Route\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainIotHub = new scaleway.IotHub(\"main\", {\n name: \"main\",\n productPlan: \"plan_shared\",\n});\nconst mainObjectBucket = new scaleway.ObjectBucket(\"main\", {\n region: \"fr-par\",\n name: \"my_awesome-bucket\",\n});\nconst main = new scaleway.IotRoute(\"main\", {\n name: \"main\",\n hubId: mainIotHub.id,\n topic: \"#\",\n s3: {\n bucketRegion: mainObjectBucket.region,\n bucketName: mainObjectBucket.name,\n objectPrefix: \"foo\",\n strategy: \"per_topic\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_iot_hub = scaleway.IotHub(\"main\",\n name=\"main\",\n product_plan=\"plan_shared\")\nmain_object_bucket = scaleway.ObjectBucket(\"main\",\n region=\"fr-par\",\n name=\"my_awesome-bucket\")\nmain = scaleway.IotRoute(\"main\",\n name=\"main\",\n hub_id=main_iot_hub.id,\n topic=\"#\",\n s3={\n \"bucket_region\": main_object_bucket.region,\n \"bucket_name\": main_object_bucket.name,\n \"object_prefix\": \"foo\",\n \"strategy\": \"per_topic\",\n })\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 mainIotHub = new Scaleway.IotHub(\"main\", new()\n {\n Name = \"main\",\n ProductPlan = \"plan_shared\",\n });\n\n var mainObjectBucket = new Scaleway.ObjectBucket(\"main\", new()\n {\n Region = \"fr-par\",\n Name = \"my_awesome-bucket\",\n });\n\n var main = new Scaleway.IotRoute(\"main\", new()\n {\n Name = \"main\",\n HubId = mainIotHub.Id,\n Topic = \"#\",\n S3 = new Scaleway.Inputs.IotRouteS3Args\n {\n BucketRegion = mainObjectBucket.Region,\n BucketName = mainObjectBucket.Name,\n ObjectPrefix = \"foo\",\n Strategy = \"per_topic\",\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\tmainIotHub, err := scaleway.NewIotHub(ctx, \"main\", \u0026scaleway.IotHubArgs{\n\t\t\tName: pulumi.String(\"main\"),\n\t\t\tProductPlan: pulumi.String(\"plan_shared\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainObjectBucket, err := scaleway.NewObjectBucket(ctx, \"main\", \u0026scaleway.ObjectBucketArgs{\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t\tName: pulumi.String(\"my_awesome-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewIotRoute(ctx, \"main\", \u0026scaleway.IotRouteArgs{\n\t\t\tName: pulumi.String(\"main\"),\n\t\t\tHubId: mainIotHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tS3: \u0026scaleway.IotRouteS3Args{\n\t\t\t\tBucketRegion: mainObjectBucket.Region,\n\t\t\t\tBucketName: mainObjectBucket.Name,\n\t\t\t\tObjectPrefix: pulumi.String(\"foo\"),\n\t\t\t\tStrategy: pulumi.String(\"per_topic\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.IotHub;\nimport com.pulumi.scaleway.IotHubArgs;\nimport com.pulumi.scaleway.ObjectBucket;\nimport com.pulumi.scaleway.ObjectBucketArgs;\nimport com.pulumi.scaleway.IotRoute;\nimport com.pulumi.scaleway.IotRouteArgs;\nimport com.pulumi.scaleway.inputs.IotRouteS3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mainIotHub = new IotHub(\"mainIotHub\", IotHubArgs.builder()\n .name(\"main\")\n .productPlan(\"plan_shared\")\n .build());\n\n var mainObjectBucket = new ObjectBucket(\"mainObjectBucket\", ObjectBucketArgs.builder()\n .region(\"fr-par\")\n .name(\"my_awesome-bucket\")\n .build());\n\n var main = new IotRoute(\"main\", IotRouteArgs.builder()\n .name(\"main\")\n .hubId(mainIotHub.id())\n .topic(\"#\")\n .s3(IotRouteS3Args.builder()\n .bucketRegion(mainObjectBucket.region())\n .bucketName(mainObjectBucket.name())\n .objectPrefix(\"foo\")\n .strategy(\"per_topic\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:IotRoute\n properties:\n name: main\n hubId: ${mainIotHub.id}\n topic: '#'\n s3:\n bucketRegion: ${mainObjectBucket.region}\n bucketName: ${mainObjectBucket.name}\n objectPrefix: foo\n strategy: per_topic\n mainIotHub:\n type: scaleway:IotHub\n name: main\n properties:\n name: main\n productPlan: plan_shared\n mainObjectBucket:\n type: scaleway:ObjectBucket\n name: main\n properties:\n region: fr-par\n name: my_awesome-bucket\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Rest Route\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainIotHub = new scaleway.IotHub(\"main\", {\n name: \"main\",\n productPlan: \"plan_shared\",\n});\nconst main = new scaleway.IotRoute(\"main\", {\n name: \"main\",\n hubId: mainIotHub.id,\n topic: \"#\",\n rest: {\n verb: \"get\",\n uri: \"http://scaleway.com\",\n headers: {\n \"X-awesome-header\": \"my-awesome-value\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_iot_hub = scaleway.IotHub(\"main\",\n name=\"main\",\n product_plan=\"plan_shared\")\nmain = scaleway.IotRoute(\"main\",\n name=\"main\",\n hub_id=main_iot_hub.id,\n topic=\"#\",\n rest={\n \"verb\": \"get\",\n \"uri\": \"http://scaleway.com\",\n \"headers\": {\n \"x_awesome_header\": \"my-awesome-value\",\n },\n })\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 mainIotHub = new Scaleway.IotHub(\"main\", new()\n {\n Name = \"main\",\n ProductPlan = \"plan_shared\",\n });\n\n var main = new Scaleway.IotRoute(\"main\", new()\n {\n Name = \"main\",\n HubId = mainIotHub.Id,\n Topic = \"#\",\n Rest = new Scaleway.Inputs.IotRouteRestArgs\n {\n Verb = \"get\",\n Uri = \"http://scaleway.com\",\n Headers = \n {\n { \"X-awesome-header\", \"my-awesome-value\" },\n },\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\tmainIotHub, err := scaleway.NewIotHub(ctx, \"main\", \u0026scaleway.IotHubArgs{\n\t\t\tName: pulumi.String(\"main\"),\n\t\t\tProductPlan: pulumi.String(\"plan_shared\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewIotRoute(ctx, \"main\", \u0026scaleway.IotRouteArgs{\n\t\t\tName: pulumi.String(\"main\"),\n\t\t\tHubId: mainIotHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tRest: \u0026scaleway.IotRouteRestArgs{\n\t\t\t\tVerb: pulumi.String(\"get\"),\n\t\t\t\tUri: pulumi.String(\"http://scaleway.com\"),\n\t\t\t\tHeaders: pulumi.StringMap{\n\t\t\t\t\t\"X-awesome-header\": pulumi.String(\"my-awesome-value\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.IotHub;\nimport com.pulumi.scaleway.IotHubArgs;\nimport com.pulumi.scaleway.IotRoute;\nimport com.pulumi.scaleway.IotRouteArgs;\nimport com.pulumi.scaleway.inputs.IotRouteRestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mainIotHub = new IotHub(\"mainIotHub\", IotHubArgs.builder()\n .name(\"main\")\n .productPlan(\"plan_shared\")\n .build());\n\n var main = new IotRoute(\"main\", IotRouteArgs.builder()\n .name(\"main\")\n .hubId(mainIotHub.id())\n .topic(\"#\")\n .rest(IotRouteRestArgs.builder()\n .verb(\"get\")\n .uri(\"http://scaleway.com\")\n .headers(Map.of(\"X-awesome-header\", \"my-awesome-value\"))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:IotRoute\n properties:\n name: main\n hubId: ${mainIotHub.id}\n topic: '#'\n rest:\n verb: get\n uri: http://scaleway.com\n headers:\n X-awesome-header: my-awesome-value\n mainIotHub:\n type: scaleway:IotHub\n name: main\n properties:\n name: main\n productPlan: plan_shared\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIoT Routes can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iotRoute:IotRoute route01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n",
+ "description": "## Example Usage\n\n### Database Route\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainIotHub = new scaleway.IotHub(\"main\", {\n name: \"main\",\n productPlan: \"plan_shared\",\n});\nconst iot = new scaleway.DatabaseInstance(\"iot\", {\n name: \"iot\",\n nodeType: \"db-dev-s\",\n engine: \"PostgreSQL-12\",\n userName: \"root\",\n password: \"T3stP4ssw0rdD0N0tUs3!\",\n});\nconst main = new scaleway.IotRoute(\"main\", {\n name: \"default\",\n hubId: mainIotHub.id,\n topic: \"#\",\n database: {\n query: `INSERT INTO measurements(\n\\x09push_time,\n\\x09report_time,\n\\x09station_id,\n\\x09temperature,\n\\x09humidity\n) VALUES (\n\\x09NOW(),\n\\x09TIMESTAMP 'epoch' + ((PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n\\x09(PAYLOAD::jsonb-\u003e'station_id')::uuid,\n\\x09(PAYLOAD::jsonb-\u003e'temperature')::decimal,\n\\x09(PAYLOAD::jsonb-\u003e'humidity'):decimal:\n);\n`,\n host: iot.endpointIp,\n port: iot.endpointPort,\n dbname: \"rdb\",\n username: iot.userName,\n password: iot.password,\n },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_iot_hub = scaleway.IotHub(\"main\",\n name=\"main\",\n product_plan=\"plan_shared\")\niot = scaleway.DatabaseInstance(\"iot\",\n name=\"iot\",\n node_type=\"db-dev-s\",\n engine=\"PostgreSQL-12\",\n user_name=\"root\",\n password=\"T3stP4ssw0rdD0N0tUs3!\")\nmain = scaleway.IotRoute(\"main\",\n name=\"default\",\n hub_id=main_iot_hub.id,\n topic=\"#\",\n database={\n \"query\": \"\"\"INSERT INTO measurements(\n\\x09push_time,\n\\x09report_time,\n\\x09station_id,\n\\x09temperature,\n\\x09humidity\n) VALUES (\n\\x09NOW(),\n\\x09TIMESTAMP 'epoch' + (($PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n\\x09($PAYLOAD::jsonb-\u003e'station_id')::uuid,\n\\x09($PAYLOAD::jsonb-\u003e'temperature')::decimal,\n\\x09($PAYLOAD::jsonb-\u003e'humidity'):decimal:\n);\n\"\"\",\n \"host\": iot.endpoint_ip,\n \"port\": iot.endpoint_port,\n \"dbname\": \"rdb\",\n \"username\": iot.user_name,\n \"password\": iot.password,\n })\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 mainIotHub = new Scaleway.IotHub(\"main\", new()\n {\n Name = \"main\",\n ProductPlan = \"plan_shared\",\n });\n\n var iot = new Scaleway.DatabaseInstance(\"iot\", new()\n {\n Name = \"iot\",\n NodeType = \"db-dev-s\",\n Engine = \"PostgreSQL-12\",\n UserName = \"root\",\n Password = \"T3stP4ssw0rdD0N0tUs3!\",\n });\n\n var main = new Scaleway.IotRoute(\"main\", new()\n {\n Name = \"default\",\n HubId = mainIotHub.Id,\n Topic = \"#\",\n Database = new Scaleway.Inputs.IotRouteDatabaseArgs\n {\n Query = @\"INSERT INTO measurements(\n\tpush_time,\n\treport_time,\n\tstation_id,\n\ttemperature,\n\thumidity\n) VALUES (\n\tNOW(),\n\tTIMESTAMP 'epoch' + (($PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n\t($PAYLOAD::jsonb-\u003e'station_id')::uuid,\n\t($PAYLOAD::jsonb-\u003e'temperature')::decimal,\n\t($PAYLOAD::jsonb-\u003e'humidity'):decimal:\n);\n\",\n Host = iot.EndpointIp,\n Port = iot.EndpointPort,\n Dbname = \"rdb\",\n Username = iot.UserName,\n Password = iot.Password,\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\tmainIotHub, err := scaleway.NewIotHub(ctx, \"main\", \u0026scaleway.IotHubArgs{\n\t\t\tName: pulumi.String(\"main\"),\n\t\t\tProductPlan: pulumi.String(\"plan_shared\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tiot, err := scaleway.NewDatabaseInstance(ctx, \"iot\", \u0026scaleway.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"iot\"),\n\t\t\tNodeType: pulumi.String(\"db-dev-s\"),\n\t\t\tEngine: pulumi.String(\"PostgreSQL-12\"),\n\t\t\tUserName: pulumi.String(\"root\"),\n\t\t\tPassword: pulumi.String(\"T3stP4ssw0rdD0N0tUs3!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewIotRoute(ctx, \"main\", \u0026scaleway.IotRouteArgs{\n\t\t\tName: pulumi.String(\"default\"),\n\t\t\tHubId: mainIotHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tDatabase: \u0026scaleway.IotRouteDatabaseArgs{\n\t\t\t\tQuery: pulumi.String(`INSERT INTO measurements(\n\tpush_time,\n\treport_time,\n\tstation_id,\n\ttemperature,\n\thumidity\n) VALUES (\n\tNOW(),\n\tTIMESTAMP 'epoch' + (($PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n\t($PAYLOAD::jsonb-\u003e'station_id')::uuid,\n\t($PAYLOAD::jsonb-\u003e'temperature')::decimal,\n\t($PAYLOAD::jsonb-\u003e'humidity'):decimal:\n);\n`),\n\t\t\t\tHost: iot.EndpointIp,\n\t\t\t\tPort: iot.EndpointPort,\n\t\t\t\tDbname: pulumi.String(\"rdb\"),\n\t\t\t\tUsername: iot.UserName,\n\t\t\t\tPassword: iot.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.IotHub;\nimport com.pulumi.scaleway.IotHubArgs;\nimport com.pulumi.scaleway.DatabaseInstance;\nimport com.pulumi.scaleway.DatabaseInstanceArgs;\nimport com.pulumi.scaleway.IotRoute;\nimport com.pulumi.scaleway.IotRouteArgs;\nimport com.pulumi.scaleway.inputs.IotRouteDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mainIotHub = new IotHub(\"mainIotHub\", IotHubArgs.builder()\n .name(\"main\")\n .productPlan(\"plan_shared\")\n .build());\n\n var iot = new DatabaseInstance(\"iot\", DatabaseInstanceArgs.builder()\n .name(\"iot\")\n .nodeType(\"db-dev-s\")\n .engine(\"PostgreSQL-12\")\n .userName(\"root\")\n .password(\"T3stP4ssw0rdD0N0tUs3!\")\n .build());\n\n var main = new IotRoute(\"main\", IotRouteArgs.builder()\n .name(\"default\")\n .hubId(mainIotHub.id())\n .topic(\"#\")\n .database(IotRouteDatabaseArgs.builder()\n .query(\"\"\"\nINSERT INTO measurements(\n\tpush_time,\n\treport_time,\n\tstation_id,\n\ttemperature,\n\thumidity\n) VALUES (\n\tNOW(),\n\tTIMESTAMP 'epoch' + (($PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n\t($PAYLOAD::jsonb-\u003e'station_id')::uuid,\n\t($PAYLOAD::jsonb-\u003e'temperature')::decimal,\n\t($PAYLOAD::jsonb-\u003e'humidity'):decimal:\n);\n \"\"\")\n .host(iot.endpointIp())\n .port(iot.endpointPort())\n .dbname(\"rdb\")\n .username(iot.userName())\n .password(iot.password())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:IotRoute\n properties:\n name: default\n hubId: ${mainIotHub.id}\n topic: '#'\n database:\n query: |\n INSERT INTO measurements(\n \tpush_time,\n \treport_time,\n \tstation_id,\n \ttemperature,\n \thumidity\n ) VALUES (\n \tNOW(),\n \tTIMESTAMP 'epoch' + (($PAYLOAD::jsonb-\u003e'last_reported')::integer * INTERVAL '1 second'),\n \t($PAYLOAD::jsonb-\u003e'station_id')::uuid,\n \t($PAYLOAD::jsonb-\u003e'temperature')::decimal,\n \t($PAYLOAD::jsonb-\u003e'humidity'):decimal:\n );\n host: ${iot.endpointIp}\n port: ${iot.endpointPort}\n dbname: rdb\n username: ${iot.userName}\n password: ${iot.password}\n mainIotHub:\n type: scaleway:IotHub\n name: main\n properties:\n name: main\n productPlan: plan_shared\n iot:\n type: scaleway:DatabaseInstance\n properties:\n name: iot\n nodeType: db-dev-s\n engine: PostgreSQL-12\n userName: root\n password: T3stP4ssw0rdD0N0tUs3!\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### S3 Route\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainIotHub = new scaleway.IotHub(\"main\", {\n name: \"main\",\n productPlan: \"plan_shared\",\n});\nconst mainObjectBucket = new scaleway.ObjectBucket(\"main\", {\n region: \"fr-par\",\n name: \"my_awesome-bucket\",\n});\nconst main = new scaleway.IotRoute(\"main\", {\n name: \"main\",\n hubId: mainIotHub.id,\n topic: \"#\",\n s3: {\n bucketRegion: mainObjectBucket.region,\n bucketName: mainObjectBucket.name,\n objectPrefix: \"foo\",\n strategy: \"per_topic\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_iot_hub = scaleway.IotHub(\"main\",\n name=\"main\",\n product_plan=\"plan_shared\")\nmain_object_bucket = scaleway.ObjectBucket(\"main\",\n region=\"fr-par\",\n name=\"my_awesome-bucket\")\nmain = scaleway.IotRoute(\"main\",\n name=\"main\",\n hub_id=main_iot_hub.id,\n topic=\"#\",\n s3={\n \"bucket_region\": main_object_bucket.region,\n \"bucket_name\": main_object_bucket.name,\n \"object_prefix\": \"foo\",\n \"strategy\": \"per_topic\",\n })\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 mainIotHub = new Scaleway.IotHub(\"main\", new()\n {\n Name = \"main\",\n ProductPlan = \"plan_shared\",\n });\n\n var mainObjectBucket = new Scaleway.ObjectBucket(\"main\", new()\n {\n Region = \"fr-par\",\n Name = \"my_awesome-bucket\",\n });\n\n var main = new Scaleway.IotRoute(\"main\", new()\n {\n Name = \"main\",\n HubId = mainIotHub.Id,\n Topic = \"#\",\n S3 = new Scaleway.Inputs.IotRouteS3Args\n {\n BucketRegion = mainObjectBucket.Region,\n BucketName = mainObjectBucket.Name,\n ObjectPrefix = \"foo\",\n Strategy = \"per_topic\",\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\tmainIotHub, err := scaleway.NewIotHub(ctx, \"main\", \u0026scaleway.IotHubArgs{\n\t\t\tName: pulumi.String(\"main\"),\n\t\t\tProductPlan: pulumi.String(\"plan_shared\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainObjectBucket, err := scaleway.NewObjectBucket(ctx, \"main\", \u0026scaleway.ObjectBucketArgs{\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t\tName: pulumi.String(\"my_awesome-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewIotRoute(ctx, \"main\", \u0026scaleway.IotRouteArgs{\n\t\t\tName: pulumi.String(\"main\"),\n\t\t\tHubId: mainIotHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tS3: \u0026scaleway.IotRouteS3Args{\n\t\t\t\tBucketRegion: mainObjectBucket.Region,\n\t\t\t\tBucketName: mainObjectBucket.Name,\n\t\t\t\tObjectPrefix: pulumi.String(\"foo\"),\n\t\t\t\tStrategy: pulumi.String(\"per_topic\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.IotHub;\nimport com.pulumi.scaleway.IotHubArgs;\nimport com.pulumi.scaleway.ObjectBucket;\nimport com.pulumi.scaleway.ObjectBucketArgs;\nimport com.pulumi.scaleway.IotRoute;\nimport com.pulumi.scaleway.IotRouteArgs;\nimport com.pulumi.scaleway.inputs.IotRouteS3Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mainIotHub = new IotHub(\"mainIotHub\", IotHubArgs.builder()\n .name(\"main\")\n .productPlan(\"plan_shared\")\n .build());\n\n var mainObjectBucket = new ObjectBucket(\"mainObjectBucket\", ObjectBucketArgs.builder()\n .region(\"fr-par\")\n .name(\"my_awesome-bucket\")\n .build());\n\n var main = new IotRoute(\"main\", IotRouteArgs.builder()\n .name(\"main\")\n .hubId(mainIotHub.id())\n .topic(\"#\")\n .s3(IotRouteS3Args.builder()\n .bucketRegion(mainObjectBucket.region())\n .bucketName(mainObjectBucket.name())\n .objectPrefix(\"foo\")\n .strategy(\"per_topic\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:IotRoute\n properties:\n name: main\n hubId: ${mainIotHub.id}\n topic: '#'\n s3:\n bucketRegion: ${mainObjectBucket.region}\n bucketName: ${mainObjectBucket.name}\n objectPrefix: foo\n strategy: per_topic\n mainIotHub:\n type: scaleway:IotHub\n name: main\n properties:\n name: main\n productPlan: plan_shared\n mainObjectBucket:\n type: scaleway:ObjectBucket\n name: main\n properties:\n region: fr-par\n name: my_awesome-bucket\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Rest Route\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainIotHub = new scaleway.IotHub(\"main\", {\n name: \"main\",\n productPlan: \"plan_shared\",\n});\nconst main = new scaleway.IotRoute(\"main\", {\n name: \"main\",\n hubId: mainIotHub.id,\n topic: \"#\",\n rest: {\n verb: \"get\",\n uri: \"http://scaleway.com\",\n headers: {\n \"X-awesome-header\": \"my-awesome-value\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_iot_hub = scaleway.IotHub(\"main\",\n name=\"main\",\n product_plan=\"plan_shared\")\nmain = scaleway.IotRoute(\"main\",\n name=\"main\",\n hub_id=main_iot_hub.id,\n topic=\"#\",\n rest={\n \"verb\": \"get\",\n \"uri\": \"http://scaleway.com\",\n \"headers\": {\n \"X-awesome-header\": \"my-awesome-value\",\n },\n })\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 mainIotHub = new Scaleway.IotHub(\"main\", new()\n {\n Name = \"main\",\n ProductPlan = \"plan_shared\",\n });\n\n var main = new Scaleway.IotRoute(\"main\", new()\n {\n Name = \"main\",\n HubId = mainIotHub.Id,\n Topic = \"#\",\n Rest = new Scaleway.Inputs.IotRouteRestArgs\n {\n Verb = \"get\",\n Uri = \"http://scaleway.com\",\n Headers = \n {\n { \"X-awesome-header\", \"my-awesome-value\" },\n },\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\tmainIotHub, err := scaleway.NewIotHub(ctx, \"main\", \u0026scaleway.IotHubArgs{\n\t\t\tName: pulumi.String(\"main\"),\n\t\t\tProductPlan: pulumi.String(\"plan_shared\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewIotRoute(ctx, \"main\", \u0026scaleway.IotRouteArgs{\n\t\t\tName: pulumi.String(\"main\"),\n\t\t\tHubId: mainIotHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tRest: \u0026scaleway.IotRouteRestArgs{\n\t\t\t\tVerb: pulumi.String(\"get\"),\n\t\t\t\tUri: pulumi.String(\"http://scaleway.com\"),\n\t\t\t\tHeaders: pulumi.StringMap{\n\t\t\t\t\t\"X-awesome-header\": pulumi.String(\"my-awesome-value\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.IotHub;\nimport com.pulumi.scaleway.IotHubArgs;\nimport com.pulumi.scaleway.IotRoute;\nimport com.pulumi.scaleway.IotRouteArgs;\nimport com.pulumi.scaleway.inputs.IotRouteRestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 mainIotHub = new IotHub(\"mainIotHub\", IotHubArgs.builder()\n .name(\"main\")\n .productPlan(\"plan_shared\")\n .build());\n\n var main = new IotRoute(\"main\", IotRouteArgs.builder()\n .name(\"main\")\n .hubId(mainIotHub.id())\n .topic(\"#\")\n .rest(IotRouteRestArgs.builder()\n .verb(\"get\")\n .uri(\"http://scaleway.com\")\n .headers(Map.of(\"X-awesome-header\", \"my-awesome-value\"))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:IotRoute\n properties:\n name: main\n hubId: ${mainIotHub.id}\n topic: '#'\n rest:\n verb: get\n uri: http://scaleway.com\n headers:\n X-awesome-header: my-awesome-value\n mainIotHub:\n type: scaleway:IotHub\n name: main\n properties:\n name: main\n productPlan: plan_shared\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIoT Routes can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iotRoute:IotRoute route01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n",
"properties": {
"createdAt": {
"type": "string",
@@ -13980,7 +14359,7 @@
}
},
"scaleway:index/ipamIp:IpamIp": {
- "description": "Books and manages IPAM IPs.\n\nFor more information about IPAM, see the main [documentation](https://www.scaleway.com/en/docs/network/vpc/concepts/#ipam).\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 vpc01 = new scaleway.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.VpcPrivateNetwork(\"pn01\", {\n vpcId: vpc01.id,\n ipv4Subnet: {\n subnet: \"172.16.32.0/22\",\n },\n});\nconst ip01 = new scaleway.IpamIp(\"ip01\", {sources: [{\n privateNetworkId: pn01.id,\n}]});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.VpcPrivateNetwork(\"pn01\",\n vpc_id=vpc01.id,\n ipv4_subnet={\n \"subnet\": \"172.16.32.0/22\",\n })\nip01 = scaleway.IpamIp(\"ip01\", sources=[{\n \"private_network_id\": pn01.id,\n}])\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 vpc01 = new Scaleway.Vpc(\"vpc01\", new()\n {\n Name = \"my vpc\",\n });\n\n var pn01 = new Scaleway.VpcPrivateNetwork(\"pn01\", new()\n {\n VpcId = vpc01.Id,\n Ipv4Subnet = new Scaleway.Inputs.VpcPrivateNetworkIpv4SubnetArgs\n {\n Subnet = \"172.16.32.0/22\",\n },\n });\n\n var ip01 = new Scaleway.IpamIp(\"ip01\", new()\n {\n Sources = new[]\n {\n new Scaleway.Inputs.IpamIpSourceArgs\n {\n PrivateNetworkId = pn01.Id,\n },\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\tvpc01, err := scaleway.NewVpc(ctx, \"vpc01\", \u0026scaleway.VpcArgs{\n\t\t\tName: pulumi.String(\"my vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn01\", \u0026scaleway.VpcPrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026scaleway.VpcPrivateNetworkIpv4SubnetArgs{\n\t\t\t\tSubnet: pulumi.String(\"172.16.32.0/22\"),\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.NewIpamIp(ctx, \"ip01\", \u0026scaleway.IpamIpArgs{\n\t\t\tSources: scaleway.IpamIpSourceArray{\n\t\t\t\t\u0026scaleway.IpamIpSourceArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.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\treturn nil\n\t})\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.Vpc;\nimport com.pulumi.scaleway.VpcArgs;\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 java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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\", VpcArgs.builder()\n .name(\"my vpc\")\n .build());\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 .sources(IpamIpSourceArgs.builder()\n .privateNetworkId(pn01.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vpc01:\n type: scaleway:Vpc\n properties:\n name: my 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 sources:\n - privateNetworkId: ${pn01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Request a specific IPv4 address\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst vpc01 = new scaleway.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.VpcPrivateNetwork(\"pn01\", {\n vpcId: vpc01.id,\n ipv4Subnet: {\n subnet: \"172.16.32.0/22\",\n },\n});\nconst ip01 = new scaleway.IpamIp(\"ip01\", {\n address: \"172.16.32.7\",\n sources: [{\n privateNetworkId: pn01.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.VpcPrivateNetwork(\"pn01\",\n vpc_id=vpc01.id,\n ipv4_subnet={\n \"subnet\": \"172.16.32.0/22\",\n })\nip01 = scaleway.IpamIp(\"ip01\",\n address=\"172.16.32.7\",\n sources=[{\n \"private_network_id\": pn01.id,\n }])\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 vpc01 = new Scaleway.Vpc(\"vpc01\", new()\n {\n Name = \"my vpc\",\n });\n\n var pn01 = new Scaleway.VpcPrivateNetwork(\"pn01\", new()\n {\n VpcId = vpc01.Id,\n Ipv4Subnet = new Scaleway.Inputs.VpcPrivateNetworkIpv4SubnetArgs\n {\n Subnet = \"172.16.32.0/22\",\n },\n });\n\n var ip01 = new Scaleway.IpamIp(\"ip01\", new()\n {\n Address = \"172.16.32.7\",\n Sources = new[]\n {\n new Scaleway.Inputs.IpamIpSourceArgs\n {\n PrivateNetworkId = pn01.Id,\n },\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\tvpc01, err := scaleway.NewVpc(ctx, \"vpc01\", \u0026scaleway.VpcArgs{\n\t\t\tName: pulumi.String(\"my vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn01\", \u0026scaleway.VpcPrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026scaleway.VpcPrivateNetworkIpv4SubnetArgs{\n\t\t\t\tSubnet: pulumi.String(\"172.16.32.0/22\"),\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.NewIpamIp(ctx, \"ip01\", \u0026scaleway.IpamIpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.32.7\"),\n\t\t\tSources: scaleway.IpamIpSourceArray{\n\t\t\t\t\u0026scaleway.IpamIpSourceArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.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\treturn nil\n\t})\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.Vpc;\nimport com.pulumi.scaleway.VpcArgs;\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 java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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\", VpcArgs.builder()\n .name(\"my vpc\")\n .build());\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 }\n}\n```\n```yaml\nresources:\n vpc01:\n type: scaleway:Vpc\n properties:\n name: my 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```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Request an IPv6 address\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst vpc01 = new scaleway.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.VpcPrivateNetwork(\"pn01\", {\n vpcId: vpc01.id,\n ipv6Subnets: [{\n subnet: \"fd46:78ab:30b8:177c::/64\",\n }],\n});\nconst ip01 = new scaleway.IpamIp(\"ip01\", {\n isIpv6: true,\n sources: [{\n privateNetworkId: pn01.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.VpcPrivateNetwork(\"pn01\",\n vpc_id=vpc01.id,\n ipv6_subnets=[{\n \"subnet\": \"fd46:78ab:30b8:177c::/64\",\n }])\nip01 = scaleway.IpamIp(\"ip01\",\n is_ipv6=True,\n sources=[{\n \"private_network_id\": pn01.id,\n }])\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 vpc01 = new Scaleway.Vpc(\"vpc01\", new()\n {\n Name = \"my vpc\",\n });\n\n var pn01 = new Scaleway.VpcPrivateNetwork(\"pn01\", new()\n {\n VpcId = vpc01.Id,\n Ipv6Subnets = new[]\n {\n new Scaleway.Inputs.VpcPrivateNetworkIpv6SubnetArgs\n {\n Subnet = \"fd46:78ab:30b8:177c::/64\",\n },\n },\n });\n\n var ip01 = new Scaleway.IpamIp(\"ip01\", new()\n {\n IsIpv6 = true,\n Sources = new[]\n {\n new Scaleway.Inputs.IpamIpSourceArgs\n {\n PrivateNetworkId = pn01.Id,\n },\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\tvpc01, err := scaleway.NewVpc(ctx, \"vpc01\", \u0026scaleway.VpcArgs{\n\t\t\tName: pulumi.String(\"my vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn01\", \u0026scaleway.VpcPrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv6Subnets: scaleway.VpcPrivateNetworkIpv6SubnetArray{\n\t\t\t\t\u0026scaleway.VpcPrivateNetworkIpv6SubnetArgs{\n\t\t\t\t\tSubnet: pulumi.String(\"fd46:78ab:30b8:177c::/64\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewIpamIp(ctx, \"ip01\", \u0026scaleway.IpamIpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t\tSources: scaleway.IpamIpSourceArray{\n\t\t\t\t\u0026scaleway.IpamIpSourceArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.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\treturn nil\n\t})\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.Vpc;\nimport com.pulumi.scaleway.VpcArgs;\nimport com.pulumi.scaleway.VpcPrivateNetwork;\nimport com.pulumi.scaleway.VpcPrivateNetworkArgs;\nimport com.pulumi.scaleway.inputs.VpcPrivateNetworkIpv6SubnetArgs;\nimport com.pulumi.scaleway.IpamIp;\nimport com.pulumi.scaleway.IpamIpArgs;\nimport com.pulumi.scaleway.inputs.IpamIpSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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\", VpcArgs.builder()\n .name(\"my vpc\")\n .build());\n\n var pn01 = new VpcPrivateNetwork(\"pn01\", VpcPrivateNetworkArgs.builder()\n .vpcId(vpc01.id())\n .ipv6Subnets(VpcPrivateNetworkIpv6SubnetArgs.builder()\n .subnet(\"fd46:78ab:30b8:177c::/64\")\n .build())\n .build());\n\n var ip01 = new IpamIp(\"ip01\", IpamIpArgs.builder()\n .isIpv6(true)\n .sources(IpamIpSourceArgs.builder()\n .privateNetworkId(pn01.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vpc01:\n type: scaleway:Vpc\n properties:\n name: my vpc\n pn01:\n type: scaleway:VpcPrivateNetwork\n properties:\n vpcId: ${vpc01.id}\n ipv6Subnets:\n - subnet: fd46:78ab:30b8:177c::/64\n ip01:\n type: scaleway:IpamIp\n properties:\n isIpv6: true\n sources:\n - privateNetworkId: ${pn01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIPAM IPs can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/ipamIp:IpamIp ip_demo fr-par/11111111-1111-1111-1111-111111111111\n```\n\n",
+ "description": "Books and manages IPAM IPs.\n\nFor more information about IPAM, see the main [documentation](https://www.scaleway.com/en/docs/network/vpc/concepts/#ipam).\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 vpc01 = new scaleway.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.VpcPrivateNetwork(\"pn01\", {\n vpcId: vpc01.id,\n ipv4Subnet: {\n subnet: \"172.16.32.0/22\",\n },\n});\nconst ip01 = new scaleway.IpamIp(\"ip01\", {sources: [{\n privateNetworkId: pn01.id,\n}]});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.VpcPrivateNetwork(\"pn01\",\n vpc_id=vpc01.id,\n ipv4_subnet={\n \"subnet\": \"172.16.32.0/22\",\n })\nip01 = scaleway.IpamIp(\"ip01\", sources=[{\n \"private_network_id\": pn01.id,\n}])\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 vpc01 = new Scaleway.Vpc(\"vpc01\", new()\n {\n Name = \"my vpc\",\n });\n\n var pn01 = new Scaleway.VpcPrivateNetwork(\"pn01\", new()\n {\n VpcId = vpc01.Id,\n Ipv4Subnet = new Scaleway.Inputs.VpcPrivateNetworkIpv4SubnetArgs\n {\n Subnet = \"172.16.32.0/22\",\n },\n });\n\n var ip01 = new Scaleway.IpamIp(\"ip01\", new()\n {\n Sources = new[]\n {\n new Scaleway.Inputs.IpamIpSourceArgs\n {\n PrivateNetworkId = pn01.Id,\n },\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\tvpc01, err := scaleway.NewVpc(ctx, \"vpc01\", \u0026scaleway.VpcArgs{\n\t\t\tName: pulumi.String(\"my vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn01\", \u0026scaleway.VpcPrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026scaleway.VpcPrivateNetworkIpv4SubnetArgs{\n\t\t\t\tSubnet: pulumi.String(\"172.16.32.0/22\"),\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.NewIpamIp(ctx, \"ip01\", \u0026scaleway.IpamIpArgs{\n\t\t\tSources: scaleway.IpamIpSourceArray{\n\t\t\t\t\u0026scaleway.IpamIpSourceArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.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\treturn nil\n\t})\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.Vpc;\nimport com.pulumi.scaleway.VpcArgs;\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 java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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\", VpcArgs.builder()\n .name(\"my vpc\")\n .build());\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 .sources(IpamIpSourceArgs.builder()\n .privateNetworkId(pn01.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vpc01:\n type: scaleway:Vpc\n properties:\n name: my 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 sources:\n - privateNetworkId: ${pn01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Request a specific IPv4 address\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst vpc01 = new scaleway.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.VpcPrivateNetwork(\"pn01\", {\n vpcId: vpc01.id,\n ipv4Subnet: {\n subnet: \"172.16.32.0/22\",\n },\n});\nconst ip01 = new scaleway.IpamIp(\"ip01\", {\n address: \"172.16.32.7\",\n sources: [{\n privateNetworkId: pn01.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.VpcPrivateNetwork(\"pn01\",\n vpc_id=vpc01.id,\n ipv4_subnet={\n \"subnet\": \"172.16.32.0/22\",\n })\nip01 = scaleway.IpamIp(\"ip01\",\n address=\"172.16.32.7\",\n sources=[{\n \"private_network_id\": pn01.id,\n }])\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 vpc01 = new Scaleway.Vpc(\"vpc01\", new()\n {\n Name = \"my vpc\",\n });\n\n var pn01 = new Scaleway.VpcPrivateNetwork(\"pn01\", new()\n {\n VpcId = vpc01.Id,\n Ipv4Subnet = new Scaleway.Inputs.VpcPrivateNetworkIpv4SubnetArgs\n {\n Subnet = \"172.16.32.0/22\",\n },\n });\n\n var ip01 = new Scaleway.IpamIp(\"ip01\", new()\n {\n Address = \"172.16.32.7\",\n Sources = new[]\n {\n new Scaleway.Inputs.IpamIpSourceArgs\n {\n PrivateNetworkId = pn01.Id,\n },\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\tvpc01, err := scaleway.NewVpc(ctx, \"vpc01\", \u0026scaleway.VpcArgs{\n\t\t\tName: pulumi.String(\"my vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn01\", \u0026scaleway.VpcPrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026scaleway.VpcPrivateNetworkIpv4SubnetArgs{\n\t\t\t\tSubnet: pulumi.String(\"172.16.32.0/22\"),\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.NewIpamIp(ctx, \"ip01\", \u0026scaleway.IpamIpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.32.7\"),\n\t\t\tSources: scaleway.IpamIpSourceArray{\n\t\t\t\t\u0026scaleway.IpamIpSourceArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.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\treturn nil\n\t})\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.Vpc;\nimport com.pulumi.scaleway.VpcArgs;\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 java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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\", VpcArgs.builder()\n .name(\"my vpc\")\n .build());\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 }\n}\n```\n```yaml\nresources:\n vpc01:\n type: scaleway:Vpc\n properties:\n name: my 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```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Request an IPv6 address\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst vpc01 = new scaleway.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.VpcPrivateNetwork(\"pn01\", {\n vpcId: vpc01.id,\n ipv6Subnets: [{\n subnet: \"fd46:78ab:30b8:177c::/64\",\n }],\n});\nconst ip01 = new scaleway.IpamIp(\"ip01\", {\n isIpv6: true,\n sources: [{\n privateNetworkId: pn01.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.VpcPrivateNetwork(\"pn01\",\n vpc_id=vpc01.id,\n ipv6_subnets=[{\n \"subnet\": \"fd46:78ab:30b8:177c::/64\",\n }])\nip01 = scaleway.IpamIp(\"ip01\",\n is_ipv6=True,\n sources=[{\n \"private_network_id\": pn01.id,\n }])\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 vpc01 = new Scaleway.Vpc(\"vpc01\", new()\n {\n Name = \"my vpc\",\n });\n\n var pn01 = new Scaleway.VpcPrivateNetwork(\"pn01\", new()\n {\n VpcId = vpc01.Id,\n Ipv6Subnets = new[]\n {\n new Scaleway.Inputs.VpcPrivateNetworkIpv6SubnetArgs\n {\n Subnet = \"fd46:78ab:30b8:177c::/64\",\n },\n },\n });\n\n var ip01 = new Scaleway.IpamIp(\"ip01\", new()\n {\n IsIpv6 = true,\n Sources = new[]\n {\n new Scaleway.Inputs.IpamIpSourceArgs\n {\n PrivateNetworkId = pn01.Id,\n },\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\tvpc01, err := scaleway.NewVpc(ctx, \"vpc01\", \u0026scaleway.VpcArgs{\n\t\t\tName: pulumi.String(\"my vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn01\", \u0026scaleway.VpcPrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv6Subnets: scaleway.VpcPrivateNetworkIpv6SubnetArray{\n\t\t\t\t\u0026scaleway.VpcPrivateNetworkIpv6SubnetArgs{\n\t\t\t\t\tSubnet: pulumi.String(\"fd46:78ab:30b8:177c::/64\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = scaleway.NewIpamIp(ctx, \"ip01\", \u0026scaleway.IpamIpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t\tSources: scaleway.IpamIpSourceArray{\n\t\t\t\t\u0026scaleway.IpamIpSourceArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.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\treturn nil\n\t})\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.Vpc;\nimport com.pulumi.scaleway.VpcArgs;\nimport com.pulumi.scaleway.VpcPrivateNetwork;\nimport com.pulumi.scaleway.VpcPrivateNetworkArgs;\nimport com.pulumi.scaleway.inputs.VpcPrivateNetworkIpv6SubnetArgs;\nimport com.pulumi.scaleway.IpamIp;\nimport com.pulumi.scaleway.IpamIpArgs;\nimport com.pulumi.scaleway.inputs.IpamIpSourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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\", VpcArgs.builder()\n .name(\"my vpc\")\n .build());\n\n var pn01 = new VpcPrivateNetwork(\"pn01\", VpcPrivateNetworkArgs.builder()\n .vpcId(vpc01.id())\n .ipv6Subnets(VpcPrivateNetworkIpv6SubnetArgs.builder()\n .subnet(\"fd46:78ab:30b8:177c::/64\")\n .build())\n .build());\n\n var ip01 = new IpamIp(\"ip01\", IpamIpArgs.builder()\n .isIpv6(true)\n .sources(IpamIpSourceArgs.builder()\n .privateNetworkId(pn01.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vpc01:\n type: scaleway:Vpc\n properties:\n name: my vpc\n pn01:\n type: scaleway:VpcPrivateNetwork\n properties:\n vpcId: ${vpc01.id}\n ipv6Subnets:\n - subnet: fd46:78ab:30b8:177c::/64\n ip01:\n type: scaleway:IpamIp\n properties:\n isIpv6: true\n sources:\n - privateNetworkId: ${pn01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Book an IP for a custom resource\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst vpc01 = new scaleway.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.VpcPrivateNetwork(\"pn01\", {\n vpcId: vpc01.id,\n ipv4Subnet: {\n subnet: \"172.16.32.0/22\",\n },\n});\nconst ip01 = new scaleway.IpamIp(\"ip01\", {\n address: \"172.16.32.7\",\n sources: [{\n privateNetworkId: pn01.id,\n }],\n customResources: [{\n macAddress: \"bc:24:11:74:d0:6a\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.VpcPrivateNetwork(\"pn01\",\n vpc_id=vpc01.id,\n ipv4_subnet={\n \"subnet\": \"172.16.32.0/22\",\n })\nip01 = scaleway.IpamIp(\"ip01\",\n address=\"172.16.32.7\",\n sources=[{\n \"private_network_id\": pn01.id,\n }],\n custom_resources=[{\n \"mac_address\": \"bc:24:11:74:d0:6a\",\n }])\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 vpc01 = new Scaleway.Vpc(\"vpc01\", new()\n {\n Name = \"my vpc\",\n });\n\n var pn01 = new Scaleway.VpcPrivateNetwork(\"pn01\", new()\n {\n VpcId = vpc01.Id,\n Ipv4Subnet = new Scaleway.Inputs.VpcPrivateNetworkIpv4SubnetArgs\n {\n Subnet = \"172.16.32.0/22\",\n },\n });\n\n var ip01 = new Scaleway.IpamIp(\"ip01\", new()\n {\n Address = \"172.16.32.7\",\n Sources = new[]\n {\n new Scaleway.Inputs.IpamIpSourceArgs\n {\n PrivateNetworkId = pn01.Id,\n },\n },\n CustomResources = new[]\n {\n new Scaleway.Inputs.IpamIpCustomResourceArgs\n {\n MacAddress = \"bc:24:11:74:d0:6a\",\n },\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\tvpc01, err := scaleway.NewVpc(ctx, \"vpc01\", \u0026scaleway.VpcArgs{\n\t\t\tName: pulumi.String(\"my vpc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := scaleway.NewVpcPrivateNetwork(ctx, \"pn01\", \u0026scaleway.VpcPrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026scaleway.VpcPrivateNetworkIpv4SubnetArgs{\n\t\t\t\tSubnet: pulumi.String(\"172.16.32.0/22\"),\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.NewIpamIp(ctx, \"ip01\", \u0026scaleway.IpamIpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.32.7\"),\n\t\t\tSources: scaleway.IpamIpSourceArray{\n\t\t\t\t\u0026scaleway.IpamIpSourceArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCustomResources: scaleway.IpamIpCustomResourceArray{\n\t\t\t\t\u0026scaleway.IpamIpCustomResourceArgs{\n\t\t\t\t\tMacAddress: pulumi.String(\"bc:24:11:74:d0:6a\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.Vpc;\nimport com.pulumi.scaleway.VpcArgs;\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.inputs.IpamIpCustomResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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\", VpcArgs.builder()\n .name(\"my vpc\")\n .build());\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 .customResources(IpamIpCustomResourceArgs.builder()\n .macAddress(\"bc:24:11:74:d0:6a\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vpc01:\n type: scaleway:Vpc\n properties:\n name: my 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 customResources:\n - macAddress: bc:24:11:74:d0:6a\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIPAM IPs can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/ipamIp:IpamIp ip_demo fr-par/11111111-1111-1111-1111-111111111111\n```\n\n",
"properties": {
"address": {
"type": "string",
@@ -13990,6 +14369,13 @@
"type": "string",
"description": "Date and time of IP's creation (RFC 3339 format).\n"
},
+ "customResources": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/scaleway:index/IpamIpCustomResource:IpamIpCustomResource"
+ },
+ "description": "The custom resource in which to book the IP\n"
+ },
"isIpv6": {
"type": "boolean",
"description": "Defines whether to request an IPv6 address instead of IPv4.\n"
@@ -14056,6 +14442,13 @@
"description": "Request a specific IP in the requested source pool\n",
"willReplaceOnChanges": true
},
+ "customResources": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/scaleway:index/IpamIpCustomResource:IpamIpCustomResource"
+ },
+ "description": "The custom resource in which to book the IP\n"
+ },
"isIpv6": {
"type": "boolean",
"description": "Defines whether to request an IPv6 address instead of IPv4.\n",
@@ -14101,6 +14494,13 @@
"type": "string",
"description": "Date and time of IP's creation (RFC 3339 format).\n"
},
+ "customResources": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/scaleway:index/IpamIpCustomResource:IpamIpCustomResource"
+ },
+ "description": "The custom resource in which to book the IP\n"
+ },
"isIpv6": {
"type": "boolean",
"description": "Defines whether to request an IPv6 address instead of IPv4.\n",
@@ -17186,188 +17586,555 @@
},
"name": {
"type": "string",
- "description": "The unique name of the SQS queue. Either `name` or `name_prefix` is required. Conflicts with `name_prefix`.\n"
+ "description": "The unique name of the SQS queue. Either `name` or `name_prefix` is required. Conflicts with `name_prefix`.\n"
+ },
+ "namePrefix": {
+ "type": "string",
+ "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "`project_id`) The ID of the Project in which SQS is enabled.\n"
+ },
+ "receiveWaitTimeSeconds": {
+ "type": "integer",
+ "description": "The number of seconds to wait for a message to arrive in the queue before returning. Must be between 0 and 20. Defaults to 0.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "`region`). The region in which SQS is enabled.\n"
+ },
+ "secretKey": {
+ "type": "string",
+ "description": "The secret key of the SQS queue.\n",
+ "secret": true
+ },
+ "sqsEndpoint": {
+ "type": "string",
+ "description": "The endpoint of the SQS queue. Can contain a {region} placeholder. Defaults to `https://sqs.mnq.{region}.scaleway.com`.\n"
+ },
+ "url": {
+ "type": "string",
+ "description": "The URL of the queue.\n"
+ },
+ "visibilityTimeoutSeconds": {
+ "type": "integer",
+ "description": "The number of seconds a message is hidden from other consumers. Must be between 0 and 43_200. Defaults to 30.\n"
+ }
+ },
+ "required": [
+ "accessKey",
+ "contentBasedDeduplication",
+ "fifoQueue",
+ "name",
+ "namePrefix",
+ "projectId",
+ "region",
+ "secretKey",
+ "url"
+ ],
+ "inputProperties": {
+ "accessKey": {
+ "type": "string",
+ "description": "The access key of the SQS queue.\n",
+ "secret": true
+ },
+ "contentBasedDeduplication": {
+ "type": "boolean",
+ "description": "Specifies whether to enable content-based deduplication. Defaults to `false`.\n"
+ },
+ "fifoQueue": {
+ "type": "boolean",
+ "description": "Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.\n"
+ },
+ "messageMaxAge": {
+ "type": "integer",
+ "description": "The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.\n"
+ },
+ "messageMaxSize": {
+ "type": "integer",
+ "description": "The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The unique name of the SQS queue. Either `name` or `name_prefix` is required. Conflicts with `name_prefix`.\n",
+ "willReplaceOnChanges": true
+ },
+ "namePrefix": {
+ "type": "string",
+ "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n",
+ "willReplaceOnChanges": true
+ },
+ "projectId": {
+ "type": "string",
+ "description": "`project_id`) The ID of the Project in which SQS is enabled.\n",
+ "willReplaceOnChanges": true
+ },
+ "receiveWaitTimeSeconds": {
+ "type": "integer",
+ "description": "The number of seconds to wait for a message to arrive in the queue before returning. Must be between 0 and 20. Defaults to 0.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "`region`). The region in which SQS is enabled.\n",
+ "willReplaceOnChanges": true
+ },
+ "secretKey": {
+ "type": "string",
+ "description": "The secret key of the SQS queue.\n",
+ "secret": true
+ },
+ "sqsEndpoint": {
+ "type": "string",
+ "description": "The endpoint of the SQS queue. Can contain a {region} placeholder. Defaults to `https://sqs.mnq.{region}.scaleway.com`.\n"
+ },
+ "visibilityTimeoutSeconds": {
+ "type": "integer",
+ "description": "The number of seconds a message is hidden from other consumers. Must be between 0 and 43_200. Defaults to 30.\n"
+ }
+ },
+ "requiredInputs": [
+ "accessKey",
+ "secretKey"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering MnqSqsQueue resources.\n",
+ "properties": {
+ "accessKey": {
+ "type": "string",
+ "description": "The access key of the SQS queue.\n",
+ "secret": true
+ },
+ "contentBasedDeduplication": {
+ "type": "boolean",
+ "description": "Specifies whether to enable content-based deduplication. Defaults to `false`.\n"
+ },
+ "fifoQueue": {
+ "type": "boolean",
+ "description": "Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.\n"
+ },
+ "messageMaxAge": {
+ "type": "integer",
+ "description": "The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.\n"
+ },
+ "messageMaxSize": {
+ "type": "integer",
+ "description": "The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The unique name of the SQS queue. Either `name` or `name_prefix` is required. Conflicts with `name_prefix`.\n",
+ "willReplaceOnChanges": true
+ },
+ "namePrefix": {
+ "type": "string",
+ "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n",
+ "willReplaceOnChanges": true
+ },
+ "projectId": {
+ "type": "string",
+ "description": "`project_id`) The ID of the Project in which SQS is enabled.\n",
+ "willReplaceOnChanges": true
+ },
+ "receiveWaitTimeSeconds": {
+ "type": "integer",
+ "description": "The number of seconds to wait for a message to arrive in the queue before returning. Must be between 0 and 20. Defaults to 0.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "`region`). The region in which SQS is enabled.\n",
+ "willReplaceOnChanges": true
+ },
+ "secretKey": {
+ "type": "string",
+ "description": "The secret key of the SQS queue.\n",
+ "secret": true
+ },
+ "sqsEndpoint": {
+ "type": "string",
+ "description": "The endpoint of the SQS queue. Can contain a {region} placeholder. Defaults to `https://sqs.mnq.{region}.scaleway.com`.\n"
+ },
+ "url": {
+ "type": "string",
+ "description": "The URL of the queue.\n"
+ },
+ "visibilityTimeoutSeconds": {
+ "type": "integer",
+ "description": "The number of seconds a message is hidden from other consumers. Must be between 0 and 43_200. Defaults to 30.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "scaleway:index/mongoDbInstance:MongoDbInstance": {
+ "description": "Creates and manages Scaleway MongoDB® instance.\nFor more information refer to [the API documentation](https://www.scaleway.com/en/docs/managed-databases/mongodb/).\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.MongoDbInstance(\"main\", {\n name: \"test-mongodb-basic1\",\n version: \"7.0.12\",\n nodeType: \"MGDB-PLAY2-NANO\",\n nodeNumber: 1,\n userName: \"my_initial_user\",\n password: \"thiZ_is_v\u0026ry_s3cret\",\n volumeSizeInGb: 5,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.MongoDbInstance(\"main\",\n name=\"test-mongodb-basic1\",\n version=\"7.0.12\",\n node_type=\"MGDB-PLAY2-NANO\",\n node_number=1,\n user_name=\"my_initial_user\",\n password=\"thiZ_is_v\u0026ry_s3cret\",\n volume_size_in_gb=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 main = new Scaleway.MongoDbInstance(\"main\", new()\n {\n Name = \"test-mongodb-basic1\",\n Version = \"7.0.12\",\n NodeType = \"MGDB-PLAY2-NANO\",\n NodeNumber = 1,\n UserName = \"my_initial_user\",\n Password = \"thiZ_is_v\u0026ry_s3cret\",\n VolumeSizeInGb = 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\t_, err := scaleway.NewMongoDbInstance(ctx, \"main\", \u0026scaleway.MongoDbInstanceArgs{\n\t\t\tName: pulumi.String(\"test-mongodb-basic1\"),\n\t\t\tVersion: pulumi.String(\"7.0.12\"),\n\t\t\tNodeType: pulumi.String(\"MGDB-PLAY2-NANO\"),\n\t\t\tNodeNumber: pulumi.Int(1),\n\t\t\tUserName: pulumi.String(\"my_initial_user\"),\n\t\t\tPassword: pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tVolumeSizeInGb: 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.MongoDbInstance;\nimport com.pulumi.scaleway.MongoDbInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 MongoDbInstance(\"main\", MongoDbInstanceArgs.builder()\n .name(\"test-mongodb-basic1\")\n .version(\"7.0.12\")\n .nodeType(\"MGDB-PLAY2-NANO\")\n .nodeNumber(1)\n .userName(\"my_initial_user\")\n .password(\"thiZ_is_v\u0026ry_s3cret\")\n .volumeSizeInGb(5)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:MongoDbInstance\n properties:\n name: test-mongodb-basic1\n version: 7.0.12\n nodeType: MGDB-PLAY2-NANO\n nodeNumber: 1\n userName: my_initial_user\n password: thiZ_is_v\u0026ry_s3cret\n volumeSizeInGb: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### Restore From Snapshot\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst restoredInstance = new scaleway.MongoDbInstance(\"restored_instance\", {\n snapshotId: pn.idscalewayMongodbSnapshot.mainSnapshot.id,\n name: \"restored-mongodb-from-snapshot\",\n nodeType: \"MGDB-PLAY2-NANO\",\n nodeNumber: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nrestored_instance = scaleway.MongoDbInstance(\"restored_instance\",\n snapshot_id=pn[\"idscalewayMongodbSnapshot\"][\"mainSnapshot\"][\"id\"],\n name=\"restored-mongodb-from-snapshot\",\n node_type=\"MGDB-PLAY2-NANO\",\n node_number=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 restoredInstance = new Scaleway.MongoDbInstance(\"restored_instance\", new()\n {\n SnapshotId = pn.IdscalewayMongodbSnapshot.MainSnapshot.Id,\n Name = \"restored-mongodb-from-snapshot\",\n NodeType = \"MGDB-PLAY2-NANO\",\n NodeNumber = 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.NewMongoDbInstance(ctx, \"restored_instance\", \u0026scaleway.MongoDbInstanceArgs{\n\t\t\tSnapshotId: pulumi.Any(pn.IdscalewayMongodbSnapshot.MainSnapshot.Id),\n\t\t\tName: pulumi.String(\"restored-mongodb-from-snapshot\"),\n\t\t\tNodeType: pulumi.String(\"MGDB-PLAY2-NANO\"),\n\t\t\tNodeNumber: 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.MongoDbInstance;\nimport com.pulumi.scaleway.MongoDbInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 restoredInstance = new MongoDbInstance(\"restoredInstance\", MongoDbInstanceArgs.builder()\n .snapshotId(pn.idscalewayMongodbSnapshot().mainSnapshot().id())\n .name(\"restored-mongodb-from-snapshot\")\n .nodeType(\"MGDB-PLAY2-NANO\")\n .nodeNumber(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n restoredInstance:\n type: scaleway:MongoDbInstance\n name: restored_instance\n properties:\n snapshotId: ${pn.idscalewayMongodbSnapshot.mainSnapshot.id}\n name: restored-mongodb-from-snapshot\n nodeType: MGDB-PLAY2-NANO\n nodeNumber: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nMongoDB® instance can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/mongoDbInstance:MongoDbInstance main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n",
+ "properties": {
+ "createdAt": {
+ "type": "string",
+ "description": "The date and time of the creation of the MongoDB® instance.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the MongoDB® instance.\n"
+ },
+ "nodeNumber": {
+ "type": "integer",
+ "description": "Number of nodes in the instance\n"
+ },
+ "nodeType": {
+ "type": "string",
+ "description": "The type of MongoDB® intance to create.\n"
+ },
+ "password": {
+ "type": "string",
+ "description": "Password of the user.\n",
+ "secret": true
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The project_id you want to attach the resource to\n"
+ },
+ "publicNetwork": {
+ "$ref": "#/types/scaleway:index/MongoDbInstancePublicNetwork:MongoDbInstancePublicNetwork",
+ "description": "Public network specs details.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "The region you want to attach the resource to\n"
+ },
+ "settings": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Map of settings to define for the instance.\n"
+ },
+ "snapshotId": {
+ "type": "string",
+ "description": "Snapshot ID to restore the MongoDB® instance from.\n"
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of tags attached to the MongoDB® instance.\n"
+ },
+ "updatedAt": {
+ "type": "string",
+ "description": "The date and time of the last update of the MongoDB® instance.\n"
+ },
+ "userName": {
+ "type": "string",
+ "description": "Name of the user created when the intance is created.\n"
+ },
+ "version": {
+ "type": "string",
+ "description": "MongoDB® version of the instance.\n"
+ },
+ "volumeSizeInGb": {
+ "type": "integer",
+ "description": "Volume size in GB.\n"
+ },
+ "volumeType": {
+ "type": "string",
+ "description": "Volume type of the instance.\n"
+ }
+ },
+ "required": [
+ "createdAt",
+ "name",
+ "nodeNumber",
+ "nodeType",
+ "projectId",
+ "publicNetwork",
+ "region",
+ "updatedAt",
+ "version",
+ "volumeSizeInGb"
+ ],
+ "inputProperties": {
+ "name": {
+ "type": "string",
+ "description": "Name of the MongoDB® instance.\n"
+ },
+ "nodeNumber": {
+ "type": "integer",
+ "description": "Number of nodes in the instance\n"
+ },
+ "nodeType": {
+ "type": "string",
+ "description": "The type of MongoDB® intance to create.\n"
+ },
+ "password": {
+ "type": "string",
+ "description": "Password of the user.\n",
+ "secret": true
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The project_id you want to attach the resource to\n",
+ "willReplaceOnChanges": true
+ },
+ "publicNetwork": {
+ "$ref": "#/types/scaleway:index/MongoDbInstancePublicNetwork:MongoDbInstancePublicNetwork",
+ "description": "Public network specs details.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "The region you want to attach the resource to\n",
+ "willReplaceOnChanges": true
+ },
+ "settings": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Map of settings to define for the instance.\n"
+ },
+ "snapshotId": {
+ "type": "string",
+ "description": "Snapshot ID to restore the MongoDB® instance from.\n",
+ "willReplaceOnChanges": true
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of tags attached to the MongoDB® instance.\n"
+ },
+ "userName": {
+ "type": "string",
+ "description": "Name of the user created when the intance is created.\n"
+ },
+ "version": {
+ "type": "string",
+ "description": "MongoDB® version of the instance.\n"
+ },
+ "volumeSizeInGb": {
+ "type": "integer",
+ "description": "Volume size in GB.\n"
+ },
+ "volumeType": {
+ "type": "string",
+ "description": "Volume type of the instance.\n"
+ }
+ },
+ "requiredInputs": [
+ "nodeNumber",
+ "nodeType"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering MongoDbInstance resources.\n",
+ "properties": {
+ "createdAt": {
+ "type": "string",
+ "description": "The date and time of the creation of the MongoDB® instance.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the MongoDB® instance.\n"
+ },
+ "nodeNumber": {
+ "type": "integer",
+ "description": "Number of nodes in the instance\n"
+ },
+ "nodeType": {
+ "type": "string",
+ "description": "The type of MongoDB® intance to create.\n"
+ },
+ "password": {
+ "type": "string",
+ "description": "Password of the user.\n",
+ "secret": true
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The project_id you want to attach the resource to\n",
+ "willReplaceOnChanges": true
+ },
+ "publicNetwork": {
+ "$ref": "#/types/scaleway:index/MongoDbInstancePublicNetwork:MongoDbInstancePublicNetwork",
+ "description": "Public network specs details.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "The region you want to attach the resource to\n",
+ "willReplaceOnChanges": true
+ },
+ "settings": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Map of settings to define for the instance.\n"
+ },
+ "snapshotId": {
+ "type": "string",
+ "description": "Snapshot ID to restore the MongoDB® instance from.\n",
+ "willReplaceOnChanges": true
+ },
+ "tags": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of tags attached to the MongoDB® instance.\n"
+ },
+ "updatedAt": {
+ "type": "string",
+ "description": "The date and time of the last update of the MongoDB® instance.\n"
+ },
+ "userName": {
+ "type": "string",
+ "description": "Name of the user created when the intance is created.\n"
+ },
+ "version": {
+ "type": "string",
+ "description": "MongoDB® version of the instance.\n"
+ },
+ "volumeSizeInGb": {
+ "type": "integer",
+ "description": "Volume size in GB.\n"
+ },
+ "volumeType": {
+ "type": "string",
+ "description": "Volume type of the instance.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "scaleway:index/mongoDbSnapshot:MongoDbSnapshot": {
+ "description": "Creates and manages Scaleway MongoDB® snapshots.\nFor more information refer to [the API documentation](https://www.scaleway.com/en/docs/managed-databases/mongodb/).\n\n## Example Usage\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.MongoDbSnapshot(\"main\", {\n instanceId: mainScalewayMongodbInstance.id,\n name: \"name-snapshot\",\n expiresAt: \"2024-12-31T23:59:59Z\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.MongoDbSnapshot(\"main\",\n instance_id=main_scaleway_mongodb_instance[\"id\"],\n name=\"name-snapshot\",\n expires_at=\"2024-12-31T23:59:59Z\")\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.MongoDbSnapshot(\"main\", new()\n {\n InstanceId = mainScalewayMongodbInstance.Id,\n Name = \"name-snapshot\",\n ExpiresAt = \"2024-12-31T23:59:59Z\",\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.NewMongoDbSnapshot(ctx, \"main\", \u0026scaleway.MongoDbSnapshotArgs{\n\t\t\tInstanceId: pulumi.Any(mainScalewayMongodbInstance.Id),\n\t\t\tName: pulumi.String(\"name-snapshot\"),\n\t\t\tExpiresAt: pulumi.String(\"2024-12-31T23:59:59Z\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.MongoDbSnapshot;\nimport com.pulumi.scaleway.MongoDbSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 MongoDbSnapshot(\"main\", MongoDbSnapshotArgs.builder()\n .instanceId(mainScalewayMongodbInstance.id())\n .name(\"name-snapshot\")\n .expiresAt(\"2024-12-31T23:59:59Z\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:MongoDbSnapshot\n properties:\n instanceId: ${mainScalewayMongodbInstance.id}\n name: name-snapshot\n expiresAt: 2024-12-31T23:59:59Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nMongoDB® snapshots can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/mongoDbSnapshot:MongoDbSnapshot main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n",
+ "properties": {
+ "createdAt": {
+ "type": "string",
+ "description": "The date and time when the MongoDB® snapshot was created.\n"
+ },
+ "expiresAt": {
+ "type": "string",
+ "description": "The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).\n\n\u003e **Important:** Once set, `expires_at` cannot be removed.\n"
+ },
+ "instanceId": {
+ "type": "string",
+ "description": "The ID of the MongoDB® instance from which the snapshot was created.\n"
},
- "namePrefix": {
+ "instanceName": {
"type": "string",
- "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n"
+ "description": "The name of the MongoDB® instance from which the snapshot was created.\n"
},
- "projectId": {
+ "name": {
"type": "string",
- "description": "`project_id`) The ID of the Project in which SQS is enabled.\n"
+ "description": "The name of the MongoDB® snapshot.\n"
},
- "receiveWaitTimeSeconds": {
- "type": "integer",
- "description": "The number of seconds to wait for a message to arrive in the queue before returning. Must be between 0 and 20. Defaults to 0.\n"
+ "nodeType": {
+ "type": "string",
+ "description": "The type of node associated with the MongoDB® snapshot.\n"
},
"region": {
"type": "string",
- "description": "`region`). The region in which SQS is enabled.\n"
+ "description": "`region`) The region in which the MongoDB® snapshot should be created.\n"
},
- "secretKey": {
- "type": "string",
- "description": "The secret key of the SQS queue.\n",
- "secret": true
+ "size": {
+ "type": "integer",
+ "description": "The size of the MongoDB® snapshot in bytes.\n"
},
- "sqsEndpoint": {
+ "updatedAt": {
"type": "string",
- "description": "The endpoint of the SQS queue. Can contain a {region} placeholder. Defaults to `https://sqs.mnq.{region}.scaleway.com`.\n"
+ "description": "The date and time of the last update of the MongoDB® snapshot.\n"
},
- "url": {
+ "volumeType": {
"type": "string",
- "description": "The URL of the queue.\n"
- },
- "visibilityTimeoutSeconds": {
- "type": "integer",
- "description": "The number of seconds a message is hidden from other consumers. Must be between 0 and 43_200. Defaults to 30.\n"
+ "description": "The type of volume used for the MongoDB® snapshot.\n"
}
},
"required": [
- "accessKey",
- "contentBasedDeduplication",
- "fifoQueue",
+ "createdAt",
+ "expiresAt",
+ "instanceId",
+ "instanceName",
"name",
- "namePrefix",
- "projectId",
+ "nodeType",
"region",
- "secretKey",
- "url"
+ "size",
+ "updatedAt",
+ "volumeType"
],
"inputProperties": {
- "accessKey": {
- "type": "string",
- "description": "The access key of the SQS queue.\n",
- "secret": true
- },
- "contentBasedDeduplication": {
- "type": "boolean",
- "description": "Specifies whether to enable content-based deduplication. Defaults to `false`.\n"
- },
- "fifoQueue": {
- "type": "boolean",
- "description": "Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.\n"
- },
- "messageMaxAge": {
- "type": "integer",
- "description": "The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.\n"
- },
- "messageMaxSize": {
- "type": "integer",
- "description": "The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.\n"
- },
- "name": {
+ "expiresAt": {
"type": "string",
- "description": "The unique name of the SQS queue. Either `name` or `name_prefix` is required. Conflicts with `name_prefix`.\n",
- "willReplaceOnChanges": true
+ "description": "The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).\n\n\u003e **Important:** Once set, `expires_at` cannot be removed.\n"
},
- "namePrefix": {
+ "instanceId": {
"type": "string",
- "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n",
- "willReplaceOnChanges": true
+ "description": "The ID of the MongoDB® instance from which the snapshot was created.\n"
},
- "projectId": {
+ "name": {
"type": "string",
- "description": "`project_id`) The ID of the Project in which SQS is enabled.\n",
- "willReplaceOnChanges": true
- },
- "receiveWaitTimeSeconds": {
- "type": "integer",
- "description": "The number of seconds to wait for a message to arrive in the queue before returning. Must be between 0 and 20. Defaults to 0.\n"
+ "description": "The name of the MongoDB® snapshot.\n"
},
"region": {
"type": "string",
- "description": "`region`). The region in which SQS is enabled.\n",
+ "description": "`region`) The region in which the MongoDB® snapshot should be created.\n",
"willReplaceOnChanges": true
- },
- "secretKey": {
- "type": "string",
- "description": "The secret key of the SQS queue.\n",
- "secret": true
- },
- "sqsEndpoint": {
- "type": "string",
- "description": "The endpoint of the SQS queue. Can contain a {region} placeholder. Defaults to `https://sqs.mnq.{region}.scaleway.com`.\n"
- },
- "visibilityTimeoutSeconds": {
- "type": "integer",
- "description": "The number of seconds a message is hidden from other consumers. Must be between 0 and 43_200. Defaults to 30.\n"
}
},
"requiredInputs": [
- "accessKey",
- "secretKey"
+ "expiresAt",
+ "instanceId"
],
"stateInputs": {
- "description": "Input properties used for looking up and filtering MnqSqsQueue resources.\n",
+ "description": "Input properties used for looking up and filtering MongoDbSnapshot resources.\n",
"properties": {
- "accessKey": {
+ "createdAt": {
"type": "string",
- "description": "The access key of the SQS queue.\n",
- "secret": true
- },
- "contentBasedDeduplication": {
- "type": "boolean",
- "description": "Specifies whether to enable content-based deduplication. Defaults to `false`.\n"
- },
- "fifoQueue": {
- "type": "boolean",
- "description": "Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.\n"
- },
- "messageMaxAge": {
- "type": "integer",
- "description": "The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.\n"
+ "description": "The date and time when the MongoDB® snapshot was created.\n"
},
- "messageMaxSize": {
- "type": "integer",
- "description": "The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.\n"
+ "expiresAt": {
+ "type": "string",
+ "description": "The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).\n\n\u003e **Important:** Once set, `expires_at` cannot be removed.\n"
},
- "name": {
+ "instanceId": {
"type": "string",
- "description": "The unique name of the SQS queue. Either `name` or `name_prefix` is required. Conflicts with `name_prefix`.\n",
- "willReplaceOnChanges": true
+ "description": "The ID of the MongoDB® instance from which the snapshot was created.\n"
},
- "namePrefix": {
+ "instanceName": {
"type": "string",
- "description": "Creates a unique name beginning with the specified prefix. Conflicts with `name`.\n",
- "willReplaceOnChanges": true
+ "description": "The name of the MongoDB® instance from which the snapshot was created.\n"
},
- "projectId": {
+ "name": {
"type": "string",
- "description": "`project_id`) The ID of the Project in which SQS is enabled.\n",
- "willReplaceOnChanges": true
+ "description": "The name of the MongoDB® snapshot.\n"
},
- "receiveWaitTimeSeconds": {
- "type": "integer",
- "description": "The number of seconds to wait for a message to arrive in the queue before returning. Must be between 0 and 20. Defaults to 0.\n"
+ "nodeType": {
+ "type": "string",
+ "description": "The type of node associated with the MongoDB® snapshot.\n"
},
"region": {
"type": "string",
- "description": "`region`). The region in which SQS is enabled.\n",
+ "description": "`region`) The region in which the MongoDB® snapshot should be created.\n",
"willReplaceOnChanges": true
},
- "secretKey": {
- "type": "string",
- "description": "The secret key of the SQS queue.\n",
- "secret": true
+ "size": {
+ "type": "integer",
+ "description": "The size of the MongoDB® snapshot in bytes.\n"
},
- "sqsEndpoint": {
+ "updatedAt": {
"type": "string",
- "description": "The endpoint of the SQS queue. Can contain a {region} placeholder. Defaults to `https://sqs.mnq.{region}.scaleway.com`.\n"
+ "description": "The date and time of the last update of the MongoDB® snapshot.\n"
},
- "url": {
+ "volumeType": {
"type": "string",
- "description": "The URL of the queue.\n"
- },
- "visibilityTimeoutSeconds": {
- "type": "integer",
- "description": "The number of seconds a message is hidden from other consumers. Must be between 0 and 43_200. Defaults to 30.\n"
+ "description": "The type of volume used for the MongoDB® snapshot.\n"
}
},
"type": "object"
}
},
"scaleway:index/objectBucket:ObjectBucket": {
- "description": "The `scaleway.ObjectBucket` resource allows you to create and manage buckets for [Scaleway Object storage](https://www.scaleway.com/en/docs/storage/object/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/storage/object/how-to/create-a-bucket/) for more information on Object Storage buckets.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst someBucket = new scaleway.ObjectBucket(\"some_bucket\", {\n name: \"some-unique-name\",\n tags: {\n key: \"value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsome_bucket = scaleway.ObjectBucket(\"some_bucket\",\n name=\"some-unique-name\",\n tags={\n \"key\": \"value\",\n })\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 someBucket = new Scaleway.ObjectBucket(\"some_bucket\", new()\n {\n Name = \"some-unique-name\",\n Tags = \n {\n { \"key\", \"value\" },\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.NewObjectBucket(ctx, \"some_bucket\", \u0026scaleway.ObjectBucketArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ObjectBucket;\nimport com.pulumi.scaleway.ObjectBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 someBucket = new ObjectBucket(\"someBucket\", ObjectBucketArgs.builder()\n .name(\"some-unique-name\")\n .tags(Map.of(\"key\", \"value\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n someBucket:\n type: scaleway:ObjectBucket\n name: some_bucket\n properties:\n name: some-unique-name\n tags:\n key: value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating the bucket in a specific project\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst someBucket = new scaleway.ObjectBucket(\"some_bucket\", {\n name: \"some-unique-name\",\n projectId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsome_bucket = scaleway.ObjectBucket(\"some_bucket\",\n name=\"some-unique-name\",\n project_id=\"11111111-1111-1111-1111-111111111111\")\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 someBucket = new Scaleway.ObjectBucket(\"some_bucket\", new()\n {\n Name = \"some-unique-name\",\n ProjectId = \"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.NewObjectBucket(ctx, \"some_bucket\", \u0026scaleway.ObjectBucketArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t\tProjectId: pulumi.String(\"11111111-1111-1111-1111-111111111111\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.ObjectBucket;\nimport com.pulumi.scaleway.ObjectBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 someBucket = new ObjectBucket(\"someBucket\", ObjectBucketArgs.builder()\n .name(\"some-unique-name\")\n .projectId(\"11111111-1111-1111-1111-111111111111\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n someBucket:\n type: scaleway:ObjectBucket\n name: some_bucket\n properties:\n name: some-unique-name\n projectId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using object lifecycle\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.ObjectBucket(\"main\", {\n name: \"mybuckectid\",\n region: \"fr-par\",\n lifecycleRules: [\n {\n id: \"id1\",\n prefix: \"path1/\",\n enabled: true,\n expiration: {\n days: 365,\n },\n transitions: [{\n days: 120,\n storageClass: \"GLACIER\",\n }],\n },\n {\n id: \"id2\",\n prefix: \"path2/\",\n enabled: true,\n expiration: {\n days: 50,\n },\n },\n {\n id: \"id3\",\n prefix: \"path3/\",\n enabled: false,\n tags: {\n tagKey: \"tagValue\",\n terraform: \"hashicorp\",\n },\n expiration: {\n days: 1,\n },\n },\n {\n id: \"id4\",\n enabled: true,\n tags: {\n tag1: \"value1\",\n },\n transitions: [{\n days: 1,\n storageClass: \"GLACIER\",\n }],\n },\n {\n enabled: true,\n abortIncompleteMultipartUploadDays: 30,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.ObjectBucket(\"main\",\n name=\"mybuckectid\",\n region=\"fr-par\",\n lifecycle_rules=[\n {\n \"id\": \"id1\",\n \"prefix\": \"path1/\",\n \"enabled\": True,\n \"expiration\": {\n \"days\": 365,\n },\n \"transitions\": [{\n \"days\": 120,\n \"storage_class\": \"GLACIER\",\n }],\n },\n {\n \"id\": \"id2\",\n \"prefix\": \"path2/\",\n \"enabled\": True,\n \"expiration\": {\n \"days\": 50,\n },\n },\n {\n \"id\": \"id3\",\n \"prefix\": \"path3/\",\n \"enabled\": False,\n \"tags\": {\n \"tag_key\": \"tagValue\",\n \"terraform\": \"hashicorp\",\n },\n \"expiration\": {\n \"days\": 1,\n },\n },\n {\n \"id\": \"id4\",\n \"enabled\": True,\n \"tags\": {\n \"tag1\": \"value1\",\n },\n \"transitions\": [{\n \"days\": 1,\n \"storage_class\": \"GLACIER\",\n }],\n },\n {\n \"enabled\": True,\n \"abort_incomplete_multipart_upload_days\": 30,\n },\n ])\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.ObjectBucket(\"main\", new()\n {\n Name = \"mybuckectid\",\n Region = \"fr-par\",\n LifecycleRules = new[]\n {\n new Scaleway.Inputs.ObjectBucketLifecycleRuleArgs\n {\n Id = \"id1\",\n Prefix = \"path1/\",\n Enabled = true,\n Expiration = new Scaleway.Inputs.ObjectBucketLifecycleRuleExpirationArgs\n {\n Days = 365,\n },\n Transitions = new[]\n {\n new Scaleway.Inputs.ObjectBucketLifecycleRuleTransitionArgs\n {\n Days = 120,\n StorageClass = \"GLACIER\",\n },\n },\n },\n new Scaleway.Inputs.ObjectBucketLifecycleRuleArgs\n {\n Id = \"id2\",\n Prefix = \"path2/\",\n Enabled = true,\n Expiration = new Scaleway.Inputs.ObjectBucketLifecycleRuleExpirationArgs\n {\n Days = 50,\n },\n },\n new Scaleway.Inputs.ObjectBucketLifecycleRuleArgs\n {\n Id = \"id3\",\n Prefix = \"path3/\",\n Enabled = false,\n Tags = \n {\n { \"tagKey\", \"tagValue\" },\n { \"terraform\", \"hashicorp\" },\n },\n Expiration = new Scaleway.Inputs.ObjectBucketLifecycleRuleExpirationArgs\n {\n Days = 1,\n },\n },\n new Scaleway.Inputs.ObjectBucketLifecycleRuleArgs\n {\n Id = \"id4\",\n Enabled = true,\n Tags = \n {\n { \"tag1\", \"value1\" },\n },\n Transitions = new[]\n {\n new Scaleway.Inputs.ObjectBucketLifecycleRuleTransitionArgs\n {\n Days = 1,\n StorageClass = \"GLACIER\",\n },\n },\n },\n new Scaleway.Inputs.ObjectBucketLifecycleRuleArgs\n {\n Enabled = true,\n AbortIncompleteMultipartUploadDays = 30,\n },\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.NewObjectBucket(ctx, \"main\", \u0026scaleway.ObjectBucketArgs{\n\t\t\tName: pulumi.String(\"mybuckectid\"),\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t\tLifecycleRules: scaleway.ObjectBucketLifecycleRuleArray{\n\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleArgs{\n\t\t\t\t\tId: pulumi.String(\"id1\"),\n\t\t\t\t\tPrefix: pulumi.String(\"path1/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpiration: \u0026scaleway.ObjectBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(365),\n\t\t\t\t\t},\n\t\t\t\t\tTransitions: scaleway.ObjectBucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(120),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"GLACIER\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleArgs{\n\t\t\t\t\tId: pulumi.String(\"id2\"),\n\t\t\t\t\tPrefix: pulumi.String(\"path2/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpiration: \u0026scaleway.ObjectBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(50),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleArgs{\n\t\t\t\t\tId: pulumi.String(\"id3\"),\n\t\t\t\t\tPrefix: pulumi.String(\"path3/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\t\"tagKey\": pulumi.String(\"tagValue\"),\n\t\t\t\t\t\t\"terraform\": pulumi.String(\"hashicorp\"),\n\t\t\t\t\t},\n\t\t\t\t\tExpiration: \u0026scaleway.ObjectBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleArgs{\n\t\t\t\t\tId: pulumi.String(\"id4\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\t\"tag1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\tTransitions: scaleway.ObjectBucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(1),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"GLACIER\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tAbortIncompleteMultipartUploadDays: pulumi.Int(30),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ObjectBucket;\nimport com.pulumi.scaleway.ObjectBucketArgs;\nimport com.pulumi.scaleway.inputs.ObjectBucketLifecycleRuleArgs;\nimport com.pulumi.scaleway.inputs.ObjectBucketLifecycleRuleExpirationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 ObjectBucket(\"main\", ObjectBucketArgs.builder()\n .name(\"mybuckectid\")\n .region(\"fr-par\")\n .lifecycleRules( \n ObjectBucketLifecycleRuleArgs.builder()\n .id(\"id1\")\n .prefix(\"path1/\")\n .enabled(true)\n .expiration(ObjectBucketLifecycleRuleExpirationArgs.builder()\n .days(365)\n .build())\n .transitions(ObjectBucketLifecycleRuleTransitionArgs.builder()\n .days(120)\n .storageClass(\"GLACIER\")\n .build())\n .build(),\n ObjectBucketLifecycleRuleArgs.builder()\n .id(\"id2\")\n .prefix(\"path2/\")\n .enabled(true)\n .expiration(ObjectBucketLifecycleRuleExpirationArgs.builder()\n .days(\"50\")\n .build())\n .build(),\n ObjectBucketLifecycleRuleArgs.builder()\n .id(\"id3\")\n .prefix(\"path3/\")\n .enabled(false)\n .tags(Map.ofEntries(\n Map.entry(\"tagKey\", \"tagValue\"),\n Map.entry(\"terraform\", \"hashicorp\")\n ))\n .expiration(ObjectBucketLifecycleRuleExpirationArgs.builder()\n .days(\"1\")\n .build())\n .build(),\n ObjectBucketLifecycleRuleArgs.builder()\n .id(\"id4\")\n .enabled(true)\n .tags(Map.of(\"tag1\", \"value1\"))\n .transitions(ObjectBucketLifecycleRuleTransitionArgs.builder()\n .days(1)\n .storageClass(\"GLACIER\")\n .build())\n .build(),\n ObjectBucketLifecycleRuleArgs.builder()\n .enabled(true)\n .abortIncompleteMultipartUploadDays(30)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:ObjectBucket\n properties:\n name: mybuckectid\n region: fr-par\n lifecycleRules:\n - id: id1\n prefix: path1/\n enabled: true\n expiration:\n days: 365\n transitions:\n - days: 120\n storageClass: GLACIER\n - id: id2\n prefix: path2/\n enabled: true\n expiration:\n days: '50'\n - id: id3\n prefix: path3/\n enabled: false\n tags:\n tagKey: tagValue\n terraform: hashicorp\n expiration:\n days: '1'\n - id: id4\n enabled: true\n tags:\n tag1: value1\n transitions:\n - days: 1\n storageClass: GLACIER\n - enabled: true\n abortIncompleteMultipartUploadDays: 30\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBuckets can be imported using the `{region}/{bucketName}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/objectBucket:ObjectBucket some_bucket fr-par/some-bucket\n```\n\n~\u003e **Important:** The `project_id` attribute has a particular behavior with s3 products because the s3 API is scoped by project.\n\nIf you are using a project different from the default one, you have to specify the project ID at the end of the import command.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/objectBucket:ObjectBucket some_bucket fr-par/some-bucket@11111111-1111-1111-1111-111111111111\n```\n\n",
+ "description": "The `scaleway.ObjectBucket` resource allows you to create and manage buckets for [Scaleway Object storage](https://www.scaleway.com/en/docs/storage/object/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/storage/object/how-to/create-a-bucket/) for more information on Object Storage buckets.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst someBucket = new scaleway.ObjectBucket(\"some_bucket\", {\n name: \"some-unique-name\",\n tags: {\n key: \"value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsome_bucket = scaleway.ObjectBucket(\"some_bucket\",\n name=\"some-unique-name\",\n tags={\n \"key\": \"value\",\n })\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 someBucket = new Scaleway.ObjectBucket(\"some_bucket\", new()\n {\n Name = \"some-unique-name\",\n Tags = \n {\n { \"key\", \"value\" },\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.NewObjectBucket(ctx, \"some_bucket\", \u0026scaleway.ObjectBucketArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ObjectBucket;\nimport com.pulumi.scaleway.ObjectBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 someBucket = new ObjectBucket(\"someBucket\", ObjectBucketArgs.builder()\n .name(\"some-unique-name\")\n .tags(Map.of(\"key\", \"value\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n someBucket:\n type: scaleway:ObjectBucket\n name: some_bucket\n properties:\n name: some-unique-name\n tags:\n key: value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating the bucket in a specific project\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst someBucket = new scaleway.ObjectBucket(\"some_bucket\", {\n name: \"some-unique-name\",\n projectId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsome_bucket = scaleway.ObjectBucket(\"some_bucket\",\n name=\"some-unique-name\",\n project_id=\"11111111-1111-1111-1111-111111111111\")\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 someBucket = new Scaleway.ObjectBucket(\"some_bucket\", new()\n {\n Name = \"some-unique-name\",\n ProjectId = \"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.NewObjectBucket(ctx, \"some_bucket\", \u0026scaleway.ObjectBucketArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t\tProjectId: pulumi.String(\"11111111-1111-1111-1111-111111111111\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\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.ObjectBucket;\nimport com.pulumi.scaleway.ObjectBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 someBucket = new ObjectBucket(\"someBucket\", ObjectBucketArgs.builder()\n .name(\"some-unique-name\")\n .projectId(\"11111111-1111-1111-1111-111111111111\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n someBucket:\n type: scaleway:ObjectBucket\n name: some_bucket\n properties:\n name: some-unique-name\n projectId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using object lifecycle\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.ObjectBucket(\"main\", {\n name: \"mybuckectid\",\n region: \"fr-par\",\n lifecycleRules: [\n {\n id: \"id1\",\n prefix: \"path1/\",\n enabled: true,\n expiration: {\n days: 365,\n },\n transitions: [{\n days: 120,\n storageClass: \"GLACIER\",\n }],\n },\n {\n id: \"id2\",\n prefix: \"path2/\",\n enabled: true,\n expiration: {\n days: 50,\n },\n },\n {\n id: \"id3\",\n prefix: \"path3/\",\n enabled: false,\n tags: {\n tagKey: \"tagValue\",\n terraform: \"hashicorp\",\n },\n expiration: {\n days: 1,\n },\n },\n {\n id: \"id4\",\n enabled: true,\n tags: {\n tag1: \"value1\",\n },\n transitions: [{\n days: 1,\n storageClass: \"GLACIER\",\n }],\n },\n {\n enabled: true,\n abortIncompleteMultipartUploadDays: 30,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.ObjectBucket(\"main\",\n name=\"mybuckectid\",\n region=\"fr-par\",\n lifecycle_rules=[\n {\n \"id\": \"id1\",\n \"prefix\": \"path1/\",\n \"enabled\": True,\n \"expiration\": {\n \"days\": 365,\n },\n \"transitions\": [{\n \"days\": 120,\n \"storage_class\": \"GLACIER\",\n }],\n },\n {\n \"id\": \"id2\",\n \"prefix\": \"path2/\",\n \"enabled\": True,\n \"expiration\": {\n \"days\": 50,\n },\n },\n {\n \"id\": \"id3\",\n \"prefix\": \"path3/\",\n \"enabled\": False,\n \"tags\": {\n \"tagKey\": \"tagValue\",\n \"terraform\": \"hashicorp\",\n },\n \"expiration\": {\n \"days\": 1,\n },\n },\n {\n \"id\": \"id4\",\n \"enabled\": True,\n \"tags\": {\n \"tag1\": \"value1\",\n },\n \"transitions\": [{\n \"days\": 1,\n \"storage_class\": \"GLACIER\",\n }],\n },\n {\n \"enabled\": True,\n \"abort_incomplete_multipart_upload_days\": 30,\n },\n ])\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.ObjectBucket(\"main\", new()\n {\n Name = \"mybuckectid\",\n Region = \"fr-par\",\n LifecycleRules = new[]\n {\n new Scaleway.Inputs.ObjectBucketLifecycleRuleArgs\n {\n Id = \"id1\",\n Prefix = \"path1/\",\n Enabled = true,\n Expiration = new Scaleway.Inputs.ObjectBucketLifecycleRuleExpirationArgs\n {\n Days = 365,\n },\n Transitions = new[]\n {\n new Scaleway.Inputs.ObjectBucketLifecycleRuleTransitionArgs\n {\n Days = 120,\n StorageClass = \"GLACIER\",\n },\n },\n },\n new Scaleway.Inputs.ObjectBucketLifecycleRuleArgs\n {\n Id = \"id2\",\n Prefix = \"path2/\",\n Enabled = true,\n Expiration = new Scaleway.Inputs.ObjectBucketLifecycleRuleExpirationArgs\n {\n Days = 50,\n },\n },\n new Scaleway.Inputs.ObjectBucketLifecycleRuleArgs\n {\n Id = \"id3\",\n Prefix = \"path3/\",\n Enabled = false,\n Tags = \n {\n { \"tagKey\", \"tagValue\" },\n { \"terraform\", \"hashicorp\" },\n },\n Expiration = new Scaleway.Inputs.ObjectBucketLifecycleRuleExpirationArgs\n {\n Days = 1,\n },\n },\n new Scaleway.Inputs.ObjectBucketLifecycleRuleArgs\n {\n Id = \"id4\",\n Enabled = true,\n Tags = \n {\n { \"tag1\", \"value1\" },\n },\n Transitions = new[]\n {\n new Scaleway.Inputs.ObjectBucketLifecycleRuleTransitionArgs\n {\n Days = 1,\n StorageClass = \"GLACIER\",\n },\n },\n },\n new Scaleway.Inputs.ObjectBucketLifecycleRuleArgs\n {\n Enabled = true,\n AbortIncompleteMultipartUploadDays = 30,\n },\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.NewObjectBucket(ctx, \"main\", \u0026scaleway.ObjectBucketArgs{\n\t\t\tName: pulumi.String(\"mybuckectid\"),\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t\tLifecycleRules: scaleway.ObjectBucketLifecycleRuleArray{\n\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleArgs{\n\t\t\t\t\tId: pulumi.String(\"id1\"),\n\t\t\t\t\tPrefix: pulumi.String(\"path1/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpiration: \u0026scaleway.ObjectBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(365),\n\t\t\t\t\t},\n\t\t\t\t\tTransitions: scaleway.ObjectBucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(120),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"GLACIER\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleArgs{\n\t\t\t\t\tId: pulumi.String(\"id2\"),\n\t\t\t\t\tPrefix: pulumi.String(\"path2/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tExpiration: \u0026scaleway.ObjectBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(50),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleArgs{\n\t\t\t\t\tId: pulumi.String(\"id3\"),\n\t\t\t\t\tPrefix: pulumi.String(\"path3/\"),\n\t\t\t\t\tEnabled: pulumi.Bool(false),\n\t\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\t\"tagKey\": pulumi.String(\"tagValue\"),\n\t\t\t\t\t\t\"terraform\": pulumi.String(\"hashicorp\"),\n\t\t\t\t\t},\n\t\t\t\t\tExpiration: \u0026scaleway.ObjectBucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleArgs{\n\t\t\t\t\tId: pulumi.String(\"id4\"),\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\t\t\"tag1\": pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\tTransitions: scaleway.ObjectBucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleTransitionArgs{\n\t\t\t\t\t\t\tDays: pulumi.Int(1),\n\t\t\t\t\t\t\tStorageClass: pulumi.String(\"GLACIER\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026scaleway.ObjectBucketLifecycleRuleArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tAbortIncompleteMultipartUploadDays: pulumi.Int(30),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ObjectBucket;\nimport com.pulumi.scaleway.ObjectBucketArgs;\nimport com.pulumi.scaleway.inputs.ObjectBucketLifecycleRuleArgs;\nimport com.pulumi.scaleway.inputs.ObjectBucketLifecycleRuleExpirationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 ObjectBucket(\"main\", ObjectBucketArgs.builder()\n .name(\"mybuckectid\")\n .region(\"fr-par\")\n .lifecycleRules( \n ObjectBucketLifecycleRuleArgs.builder()\n .id(\"id1\")\n .prefix(\"path1/\")\n .enabled(true)\n .expiration(ObjectBucketLifecycleRuleExpirationArgs.builder()\n .days(365)\n .build())\n .transitions(ObjectBucketLifecycleRuleTransitionArgs.builder()\n .days(120)\n .storageClass(\"GLACIER\")\n .build())\n .build(),\n ObjectBucketLifecycleRuleArgs.builder()\n .id(\"id2\")\n .prefix(\"path2/\")\n .enabled(true)\n .expiration(ObjectBucketLifecycleRuleExpirationArgs.builder()\n .days(\"50\")\n .build())\n .build(),\n ObjectBucketLifecycleRuleArgs.builder()\n .id(\"id3\")\n .prefix(\"path3/\")\n .enabled(false)\n .tags(Map.ofEntries(\n Map.entry(\"tagKey\", \"tagValue\"),\n Map.entry(\"terraform\", \"hashicorp\")\n ))\n .expiration(ObjectBucketLifecycleRuleExpirationArgs.builder()\n .days(\"1\")\n .build())\n .build(),\n ObjectBucketLifecycleRuleArgs.builder()\n .id(\"id4\")\n .enabled(true)\n .tags(Map.of(\"tag1\", \"value1\"))\n .transitions(ObjectBucketLifecycleRuleTransitionArgs.builder()\n .days(1)\n .storageClass(\"GLACIER\")\n .build())\n .build(),\n ObjectBucketLifecycleRuleArgs.builder()\n .enabled(true)\n .abortIncompleteMultipartUploadDays(30)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:ObjectBucket\n properties:\n name: mybuckectid\n region: fr-par\n lifecycleRules:\n - id: id1\n prefix: path1/\n enabled: true\n expiration:\n days: 365\n transitions:\n - days: 120\n storageClass: GLACIER\n - id: id2\n prefix: path2/\n enabled: true\n expiration:\n days: '50'\n - id: id3\n prefix: path3/\n enabled: false\n tags:\n tagKey: tagValue\n terraform: hashicorp\n expiration:\n days: '1'\n - id: id4\n enabled: true\n tags:\n tag1: value1\n transitions:\n - days: 1\n storageClass: GLACIER\n - enabled: true\n abortIncompleteMultipartUploadDays: 30\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBuckets can be imported using the `{region}/{bucketName}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/objectBucket:ObjectBucket some_bucket fr-par/some-bucket\n```\n\n~\u003e **Important:** The `project_id` attribute has a particular behavior with s3 products because the s3 API is scoped by project.\n\nIf you are using a project different from the default one, you have to specify the project ID at the end of the import command.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/objectBucket:ObjectBucket some_bucket fr-par/some-bucket@11111111-1111-1111-1111-111111111111\n```\n\n",
"properties": {
"acl": {
"type": "string",
@@ -17390,7 +18157,7 @@
},
"forceDestroy": {
"type": "boolean",
- "description": "Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable\n"
+ "description": "Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.\n"
},
"lifecycleRules": {
"type": "array",
@@ -17449,7 +18216,7 @@
},
"forceDestroy": {
"type": "boolean",
- "description": "Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable\n"
+ "description": "Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.\n"
},
"lifecycleRules": {
"type": "array",
@@ -17514,7 +18281,7 @@
},
"forceDestroy": {
"type": "boolean",
- "description": "Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable\n"
+ "description": "Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.\n"
},
"lifecycleRules": {
"type": "array",
@@ -26508,6 +27275,127 @@
"type": "object"
}
},
+ "scaleway:index/getMongoDbInstance:getMongoDbInstance": {
+ "description": "Gets information about a MongoDB® Instance.\n\nFor further information refer to the Managed Databases for MongoDB® [API documentation](https://developers.scaleway.com/en/products/mongodb/api/)\n\n",
+ "inputs": {
+ "description": "A collection of arguments for invoking getMongoDbInstance.\n",
+ "properties": {
+ "instanceId": {
+ "type": "string",
+ "description": "The MongoDB® instance ID.\n\n\u003e **Note** You must specify at least one: `name` or `instance_id`.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the MongoDB® instance.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The ID of the project the MongoDB® instance is in. Can be used to filter instances when using `name`.\n"
+ },
+ "region": {
+ "type": "string",
+ "description": "`region`) The region in which the MongoDB® Instance exists.\n"
+ }
+ },
+ "type": "object"
+ },
+ "outputs": {
+ "description": "A collection of values returned by getMongoDbInstance.\n",
+ "properties": {
+ "createdAt": {
+ "description": "The date and time the MongoDB® instance was created.\n",
+ "type": "string"
+ },
+ "id": {
+ "description": "The provider-assigned unique ID for this managed resource.\n",
+ "type": "string"
+ },
+ "instanceId": {
+ "type": "string"
+ },
+ "name": {
+ "description": "The name of the MongoDB® instance.\n",
+ "type": "string"
+ },
+ "nodeNumber": {
+ "description": "The number of nodes in the MongoDB® cluster.\n",
+ "type": "integer"
+ },
+ "nodeType": {
+ "description": "The type of MongoDB® node.\n",
+ "type": "string"
+ },
+ "password": {
+ "type": "string"
+ },
+ "projectId": {
+ "description": "The ID of the project the instance belongs to.\n",
+ "type": "string"
+ },
+ "publicNetworks": {
+ "description": "The details of the public network configuration, if applicable.\n",
+ "items": {
+ "$ref": "#/types/scaleway:index/getMongoDbInstancePublicNetwork:getMongoDbInstancePublicNetwork"
+ },
+ "type": "array"
+ },
+ "region": {
+ "type": "string"
+ },
+ "settings": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "snapshotId": {
+ "type": "string"
+ },
+ "tags": {
+ "description": "A list of tags attached to the MongoDB® instance.\n",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "updatedAt": {
+ "type": "string"
+ },
+ "userName": {
+ "type": "string"
+ },
+ "version": {
+ "description": "The version of MongoDB® running on the instance.\n",
+ "type": "string"
+ },
+ "volumeSizeInGb": {
+ "description": "The size of the attached volume, in GB.\n",
+ "type": "integer"
+ },
+ "volumeType": {
+ "description": "The type of volume attached to the MongoDB® instance.\n",
+ "type": "string"
+ }
+ },
+ "required": [
+ "createdAt",
+ "nodeNumber",
+ "nodeType",
+ "password",
+ "publicNetworks",
+ "settings",
+ "snapshotId",
+ "tags",
+ "updatedAt",
+ "userName",
+ "version",
+ "volumeSizeInGb",
+ "volumeType",
+ "id"
+ ],
+ "type": "object"
+ }
+ },
"scaleway:index/getObjectBucket:getObjectBucket": {
"description": "The `scaleway.ObjectBucket` data source is used to retrieve information about an Object Storage bucket.\n\nRefer to the Object Storage [documentation](https://www.scaleway.com/en/docs/storage/object/how-to/create-a-bucket/) for more information.\n\n## Retrieve an Object Storage bucket\n\nThe following commands allow you to:\n\n- retrieve a bucket by its name\n- retrieve a bucket by its ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.ObjectBucket(\"main\", {\n name: \"bucket.test.com\",\n tags: {\n foo: \"bar\",\n },\n});\nconst selected = scaleway.getObjectBucketOutput({\n name: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.ObjectBucket(\"main\",\n name=\"bucket.test.com\",\n tags={\n \"foo\": \"bar\",\n })\nselected = scaleway.get_object_bucket_output(name=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Scaleway.ObjectBucket(\"main\", new()\n {\n Name = \"bucket.test.com\",\n Tags = \n {\n { \"foo\", \"bar\" },\n },\n });\n\n var selected = Scaleway.GetObjectBucket.Invoke(new()\n {\n Name = main.Id,\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.NewObjectBucket(ctx, \"main\", \u0026scaleway.ObjectBucketArgs{\n\t\t\tName: pulumi.String(\"bucket.test.com\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = scaleway.LookupObjectBucketOutput(ctx, scaleway.GetObjectBucketOutputArgs{\n\t\t\tName: main.ID(),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ObjectBucket;\nimport com.pulumi.scaleway.ObjectBucketArgs;\nimport com.pulumi.scaleway.ScalewayFunctions;\nimport com.pulumi.scaleway.inputs.GetObjectBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 ObjectBucket(\"main\", ObjectBucketArgs.builder()\n .name(\"bucket.test.com\")\n .tags(Map.of(\"foo\", \"bar\"))\n .build());\n\n final var selected = ScalewayFunctions.getObjectBucket(GetObjectBucketArgs.builder()\n .name(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: scaleway:ObjectBucket\n properties:\n name: bucket.test.com\n tags:\n foo: bar\nvariables:\n selected:\n fn::invoke:\n Function: scaleway:getObjectBucket\n Arguments:\n name: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Retrieve a bucket from a specific project\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumi/scaleway\";\n\nconst selected = scaleway.getObjectBucket({\n name: \"bucket.test.com\",\n projectId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nselected = scaleway.get_object_bucket(name=\"bucket.test.com\",\n project_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 selected = Scaleway.GetObjectBucket.Invoke(new()\n {\n Name = \"bucket.test.com\",\n ProjectId = \"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.LookupObjectBucket(ctx, \u0026scaleway.LookupObjectBucketArgs{\n\t\t\tName: pulumi.StringRef(\"bucket.test.com\"),\n\t\t\tProjectId: 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.GetObjectBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var selected = ScalewayFunctions.getObjectBucket(GetObjectBucketArgs.builder()\n .name(\"bucket.test.com\")\n .projectId(\"11111111-1111-1111-1111-111111111111\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n selected:\n fn::invoke:\n Function: scaleway:getObjectBucket\n Arguments:\n name: bucket.test.com\n projectId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
"inputs": {
diff --git a/provider/go.mod b/provider/go.mod
index 722db5d6..8a8b9629 100644
--- a/provider/go.mod
+++ b/provider/go.mod
@@ -5,8 +5,8 @@ go 1.22.0
toolchain go1.23.2
require (
- github.com/pulumi/pulumi-terraform-bridge/v3 v3.93.1
- github.com/pulumi/pulumi/sdk/v3 v3.136.1
+ github.com/pulumi/pulumi-terraform-bridge/v3 v3.94.0
+ github.com/pulumi/pulumi/sdk/v3 v3.137.0
github.com/scaleway/terraform-provider-scaleway/v2/shim v0.0.0-00010101000000-000000000000
)
@@ -17,19 +17,10 @@ replace (
require (
cloud.google.com/go v0.112.1 // indirect
- cloud.google.com/go/compute/metadata v0.3.0 // indirect
+ cloud.google.com/go/compute/metadata v0.5.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
- cloud.google.com/go/longrunning v0.5.5 // indirect
cloud.google.com/go/storage v1.39.1 // indirect
dario.cat/mergo v1.0.0 // indirect
- github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 // indirect
- github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 // indirect
- github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 // indirect
- github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect
- github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect
- github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
github.com/BurntSushi/toml v1.2.1 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver v1.5.0 // indirect
@@ -44,25 +35,10 @@ require (
github.com/armon/go-radix v1.0.0 // indirect
github.com/atotto/clipboard v0.1.4 // indirect
github.com/aws/aws-sdk-go v1.55.5 // 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
- github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
- github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
- github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
- github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
- github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 // indirect
- github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect
- github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect
- github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect
- github.com/aws/smithy-go v1.20.2 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
github.com/bgentry/speakeasy v0.1.0 // indirect
github.com/blang/semver v3.5.1+incompatible // indirect
- github.com/cenkalti/backoff/v3 v3.2.2 // indirect
github.com/charmbracelet/bubbles v0.16.1 // indirect
github.com/charmbracelet/bubbletea v0.25.0 // indirect
github.com/charmbracelet/lipgloss v0.7.1 // indirect
@@ -70,7 +46,6 @@ require (
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
github.com/deckarep/golang-set/v2 v2.5.0 // indirect
github.com/djherbis/times v1.5.0 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
@@ -82,24 +57,18 @@ require (
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.5.0 // indirect
github.com/go-git/go-git/v5 v5.12.0 // indirect
- github.com/go-jose/go-jose/v3 v3.0.3 // indirect
github.com/go-logr/logr v1.4.1 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
- 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.1 // indirect
+ github.com/golang/glog v1.2.2 // 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
- github.com/google/go-querystring v1.1.0 // indirect
github.com/google/s2a-go v0.1.7 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.6.0 // indirect
- github.com/google/wire v0.6.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
github.com/googleapis/gax-go/v2 v2.12.2 // indirect
- github.com/gorilla/mux v1.8.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/aws-sdk-go-base v1.1.0 // indirect
github.com/hashicorp/awspolicyequivalence v1.6.0 // indirect
@@ -110,13 +79,9 @@ 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.1 // indirect
+ github.com/hashicorp/go-plugin v1.6.2 // 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
- github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect
- 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.7.0 // indirect
github.com/hashicorp/hc-install v0.7.0 // indirect
@@ -126,12 +91,11 @@ require (
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
- github.com/hashicorp/terraform-plugin-go v0.24.0 // indirect
+ github.com/hashicorp/terraform-plugin-go v0.25.0 // indirect
github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect
github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 // indirect
github.com/hashicorp/terraform-registry-address v0.2.3 // indirect
github.com/hashicorp/terraform-svchost v0.1.1 // indirect
- github.com/hashicorp/vault/api v1.12.0 // indirect
github.com/hashicorp/yamux v0.1.1 // indirect
github.com/huandu/xstrings v1.3.3 // indirect
github.com/iancoleman/strcase v0.2.0 // indirect
@@ -142,7 +106,6 @@ require (
github.com/json-iterator/go v1.1.12 // indirect
github.com/kevinburke/ssh_config v1.2.0 // 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
github.com/mattn/go-isatty v0.0.20 // indirect
@@ -164,7 +127,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.8 // indirect
+ github.com/nats-io/jwt/v2 v2.7.0 // indirect
github.com/nats-io/nats.go v1.37.0 // indirect
github.com/nats-io/nkeys v0.4.7 // indirect
github.com/nats-io/nuid v1.0.1 // indirect
@@ -174,28 +137,25 @@ require (
github.com/pgavlin/fx v0.1.6 // indirect
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect
github.com/pjbgf/sha1cd v0.3.0 // indirect
- github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pkg/term v1.1.0 // indirect
- github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/posener/complete v1.2.3 // indirect
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect
github.com/pulumi/esc v0.10.0 // indirect
github.com/pulumi/inflector v0.1.1 // indirect
github.com/pulumi/pulumi-java/pkg v0.16.1 // indirect
- github.com/pulumi/pulumi-yaml v1.10.3 // indirect
- github.com/pulumi/pulumi/pkg/v3 v3.136.1 // indirect
+ github.com/pulumi/pulumi-yaml v1.11.1 // indirect
+ github.com/pulumi/pulumi/pkg/v3 v3.137.0 // indirect
github.com/pulumi/schema-tools v0.1.2 // indirect
github.com/pulumi/terraform-diff-reader v0.0.2 // indirect
github.com/rivo/uniseg v0.4.4 // indirect
github.com/robfig/cron/v3 v3.0.1 // indirect
github.com/rogpeppe/go-internal v1.12.0 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
- 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.30 // indirect
- github.com/scaleway/terraform-provider-scaleway/v2 v2.46.0 // indirect
+ github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30.0.20241021115642-2d127a2d76c7 // indirect
+ github.com/scaleway/terraform-provider-scaleway/v2 v2.47.0 // 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
@@ -205,7 +165,7 @@ require (
github.com/spf13/cast v1.5.0 // indirect
github.com/spf13/cobra v1.8.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
- github.com/stretchr/testify v1.9.0 // indirect
+ github.com/stretchr/objx v0.5.2 // indirect
github.com/teekennedy/goldmark-markdown v0.3.0 // indirect
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
@@ -215,9 +175,6 @@ require (
github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect
github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
- 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/yuin/goldmark v1.7.4 // indirect
github.com/zclconf/go-cty v1.15.0 // indirect
go.opencensus.io v0.24.0 // indirect
@@ -227,27 +184,24 @@ require (
go.opentelemetry.io/otel/metric v1.24.0 // indirect
go.opentelemetry.io/otel/trace v1.24.0 // indirect
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.26.0 // indirect
+ golang.org/x/crypto v0.27.0 // indirect
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect
golang.org/x/mod v0.19.0 // indirect
- golang.org/x/net v0.27.0 // indirect
- golang.org/x/oauth2 v0.21.0 // indirect
+ golang.org/x/net v0.28.0 // indirect
+ golang.org/x/oauth2 v0.22.0 // indirect
golang.org/x/sync v0.8.0 // indirect
- golang.org/x/sys v0.23.0 // indirect
- golang.org/x/term v0.23.0 // indirect
- golang.org/x/text v0.17.0 // indirect
+ golang.org/x/sys v0.25.0 // indirect
+ golang.org/x/term v0.24.0 // indirect
+ golang.org/x/text v0.19.0 // indirect
golang.org/x/time v0.5.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-20240604185151-ef581f913117 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20240725223205-93522f1f2a9f // indirect
- google.golang.org/grpc v1.66.2 // indirect
- google.golang.org/protobuf v1.34.2 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect
+ google.golang.org/grpc v1.67.1 // indirect
+ google.golang.org/protobuf v1.35.1 // 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 285ea10f..53c62b3d 100644
--- a/provider/go.sum
+++ b/provider/go.sum
@@ -308,8 +308,8 @@ cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZ
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/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/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY=
+cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY=
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=
@@ -1232,38 +1232,24 @@ github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU
github.com/aws/aws-sdk-go v1.55.5/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=
-github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg=
github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA=
github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE=
github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs=
github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4=
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg=
-github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo=
-github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg=
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0=
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
-github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU=
-github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0=
-github.com/aws/aws-sdk-go-v2/service/iam v1.31.4 h1:eVm30ZIDv//r6Aogat9I88b5YX1xASSLcEDqHYRPVl0=
-github.com/aws/aws-sdk-go-v2/service/iam v1.31.4/go.mod h1:aXWImQV0uTW35LM0A/T4wEg6R1/ReXUu4SM6/lUHYK0=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg=
-github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es=
-github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk=
-github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys=
-github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ=
github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 h1:SBn4I0fJXF9FYOVRSVMWuhvEKoAHDikjGpS3wlmw5DE=
github.com/aws/aws-sdk-go-v2/service/kms v1.30.1/go.mod h1:2snWQJQUKsbN66vAawJuOGX7dr37pfOq9hb0tZDGIqQ=
-github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc=
-github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o=
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w=
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE=
@@ -1343,8 +1329,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 v27.2.0+incompatible h1:Rk9nIVdfH3+Vz4cyI/uhbINhEZ/oLmc+CBXmH6fbNk4=
-github.com/docker/docker v27.2.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI=
+github.com/docker/docker v27.3.1+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=
@@ -1450,8 +1436,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.1 h1:OptwRhECazUx5ix5TTWC3EZhsZEHWcYWY4FQHTIubm4=
-github.com/golang/glog v1.2.1/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
+github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY=
+github.com/golang/glog v1.2.2/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=
@@ -1514,10 +1500,6 @@ github.com/google/go-pkcs11 v0.2.0/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMc
github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY=
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
-github.com/google/go-replayers/grpcreplay v1.1.0 h1:S5+I3zYyZ+GQz68OfbURDdt/+cSMqCK1wrvNx7WBzTE=
-github.com/google/go-replayers/grpcreplay v1.1.0/go.mod h1:qzAvJ8/wi57zq7gWqaE6AwLM6miiXUQwP1S+I9icmhk=
-github.com/google/go-replayers/httpreplay v1.2.0 h1:VM1wEyyjaoU53BwrOnaf9VhAyQQEEioJvFYxYcLRKzk=
-github.com/google/go-replayers/httpreplay v1.2.0/go.mod h1:WahEFFZZ7a1P4VM1qEeHy+tME4bwyqPcwWbNlUI1Mcg=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
@@ -1550,7 +1532,6 @@ github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
-github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -1625,8 +1606,8 @@ github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+l
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/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-plugin v1.6.2 h1:zdGAEd0V1lCaU0u+MxWQhtSDQmahpkwOun8U8EiRVog=
+github.com/hashicorp/go-plugin v1.6.2/go.mod h1:CkgLQ5CZqNmdL9U9JzM532t8ZiYQ35+pj3b1FD37R0Q=
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=
@@ -1675,8 +1656,8 @@ github.com/hashicorp/terraform-json v0.21.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2D
github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec=
github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A=
github.com/hashicorp/terraform-plugin-go v0.22.0/go.mod h1:mPULV91VKss7sik6KFEcEu7HuTogMLLO/EvWCuFkRVE=
-github.com/hashicorp/terraform-plugin-go v0.24.0 h1:2WpHhginCdVhFIrWHxDEg6RBn3YaWzR2o6qUeIEat2U=
-github.com/hashicorp/terraform-plugin-go v0.24.0/go.mod h1:tUQ53lAsOyYSckFGEefGC5C8BAaO0ENqzFd3bQeuYQg=
+github.com/hashicorp/terraform-plugin-go v0.25.0 h1:oi13cx7xXA6QciMcpcFi/rwA974rdTxjqEhXJjbAyks=
+github.com/hashicorp/terraform-plugin-go v0.25.0/go.mod h1:+SYagMYadJP86Kvn+TGeV+ofr/R3g4/If0O5sO96MVw=
github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0=
github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow=
github.com/hashicorp/terraform-plugin-sdk v1.7.0 h1:B//oq0ZORG+EkVrIJy0uPGSonvmXqxSzXe8+GhknoW0=
@@ -1845,8 +1826,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.8 h1:uvdSzwWiEGWGXf+0Q+70qv6AQdvcvxrv9hPM0RiPamE=
-github.com/nats-io/jwt/v2 v2.5.8/go.mod h1:ZdWS1nZa6WMZfFwwgpEaqBV8EPGVgOTDHN/wTbz0Y5A=
+github.com/nats-io/jwt/v2 v2.7.0 h1:J+ZnaaMGQi3xSB8iOhVM5ipiWCDrQvgEoitTwWFyOYw=
+github.com/nats-io/jwt/v2 v2.7.0/go.mod h1:ZdWS1nZa6WMZfFwwgpEaqBV8EPGVgOTDHN/wTbz0Y5A=
github.com/nats-io/nats.go v1.37.0 h1:07rauXbVnnJvv1gfIyghFEo6lUcYRY0WXc3x7x0vUxE=
github.com/nats-io/nats.go v1.37.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8=
github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI=
@@ -1942,18 +1923,18 @@ github.com/pulumi/esc v0.10.0 h1:jzBKzkLVW0mePeanDRfqSQoCJ5yrkux0jIwAkUxpRKE=
github.com/pulumi/esc v0.10.0/go.mod h1:2Bfa+FWj/xl8CKqRTWbWgDX0SOD4opdQgvYSURTGK2c=
github.com/pulumi/inflector v0.1.1 h1:dvlxlWtXwOJTUUtcYDvwnl6Mpg33prhK+7mzeF+SobA=
github.com/pulumi/inflector v0.1.1/go.mod h1:HUFCjcPTz96YtTuUlwG3i3EZG4WlniBvR9bd+iJxCUY=
-github.com/pulumi/providertest v0.1.2 h1:9pJS9MeNkMyGwyNeHmvh8QqLgJy39Nk2/ym5u7r13ng=
-github.com/pulumi/providertest v0.1.2/go.mod h1:GcsqEGgSngwaNOD+kICJPIUQlnA911fGBU8HDlJvVL0=
+github.com/pulumi/providertest v0.1.3 h1:GpNKRy/haNjRHiUA9bi4diU4Op2zf3axYXbga5AepHg=
+github.com/pulumi/providertest v0.1.3/go.mod h1:GcsqEGgSngwaNOD+kICJPIUQlnA911fGBU8HDlJvVL0=
github.com/pulumi/pulumi-java/pkg v0.16.1 h1:orHnDWFbpOERwaBLry9f+6nqPX7x0MsrIkaa5QDGAns=
github.com/pulumi/pulumi-java/pkg v0.16.1/go.mod h1:QH0DihZkWYle9XFc+LJ76m4hUo+fA3RdyaM90pqOaSM=
-github.com/pulumi/pulumi-terraform-bridge/v3 v3.93.1 h1:EEf5W3buVR5pcCKTXGouDS1/oY6TqVUIRKLksl5h4Es=
-github.com/pulumi/pulumi-terraform-bridge/v3 v3.93.1/go.mod h1:jNpOSGkfTeZSnSjpGBHHiyllciCEDRqFaZhLUpQPlpo=
-github.com/pulumi/pulumi-yaml v1.10.3 h1:j5cjPiE32ILmjrWnC1cfZ0MWdqCZ8fg9wlaWk7HOtM4=
-github.com/pulumi/pulumi-yaml v1.10.3/go.mod h1:MFMQXkaUP5YQUKVJ6Z/aagZDl2f8hdU9oGaJfTcMf1Y=
-github.com/pulumi/pulumi/pkg/v3 v3.136.1 h1:zA8aJZ7qI0QgZkBKjjQaYHEcigK6pZfrbfG38imXzWo=
-github.com/pulumi/pulumi/pkg/v3 v3.136.1/go.mod h1:Iz8QIs07AbEdrO52hEIEM5C4VBDUYFH2NdM9u2xxBxY=
-github.com/pulumi/pulumi/sdk/v3 v3.136.1 h1:VJWTgdBrLvvzIkMbGq/epNEfT65P9gTvw14UF/I7hTI=
-github.com/pulumi/pulumi/sdk/v3 v3.136.1/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI=
+github.com/pulumi/pulumi-terraform-bridge/v3 v3.94.0 h1:wRJxFAQVV5Bg+BUVKpsNTWDIBSPCZUnbtxTyujZiM2o=
+github.com/pulumi/pulumi-terraform-bridge/v3 v3.94.0/go.mod h1:S7rLe9paLUP2U7iwJhNJslwQszlgUfND83KRVCogbog=
+github.com/pulumi/pulumi-yaml v1.11.1 h1:ULUL9fpb2Bwgf3jJHx0FamKYm0ld0KxBQr/uSAslRLk=
+github.com/pulumi/pulumi-yaml v1.11.1/go.mod h1:RdXRBupRGGAD1kbYNG1V1h6pyFnXisvQsl0AANvVjGI=
+github.com/pulumi/pulumi/pkg/v3 v3.137.0 h1:/KPFQQaB5W0/GhVxSTGnEzv3ZW5uieGN5Q2q+Lsr+Zw=
+github.com/pulumi/pulumi/pkg/v3 v3.137.0/go.mod h1:ZQXJUTysDwq/mtilutRBKguH6DI+3b2WgNcOrs0whJ0=
+github.com/pulumi/pulumi/sdk/v3 v3.137.0 h1:bxhYpOY7Z4xt+VmezEpHuhjpOekkaMqOjzxFg/1OhCw=
+github.com/pulumi/pulumi/sdk/v3 v3.137.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI=
github.com/pulumi/schema-tools v0.1.2 h1:Fd9xvUjgck4NA+7/jSk7InqCUT4Kj940+EcnbQKpfZo=
github.com/pulumi/schema-tools v0.1.2/go.mod h1:62lgj52Tzq11eqWTIaKd+EVyYAu5dEcDJxMhTjvMO/k=
github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abqkI3OhJ0G04LLI=
@@ -1988,10 +1969,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.30 h1:yoKAVkEVwAqbGbR8n87rHQ1dulL25rKloGadb3vm770=
-github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30/go.mod h1:sH0u6fq6x4R5M7WxkoQFY/o7UaiItec0o1LinLCJNq8=
-github.com/scaleway/terraform-provider-scaleway/v2 v2.46.0 h1:VD9V/t43In0CDmjzcZv0gLcMmGprd0eZP/ZIs91vbxs=
-github.com/scaleway/terraform-provider-scaleway/v2 v2.46.0/go.mod h1:UIl6/JpUkO30efjRsV5fh+WU3Bcg0j0LA+qc6E+bhlU=
+github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30.0.20241021115642-2d127a2d76c7 h1:mWi3yS37Lhf73OP2Z4CboKtXJM4mWDAUWFHKSx2WK7k=
+github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30.0.20241021115642-2d127a2d76c7/go.mod h1:3jrRJM7638J+P33hKy9MBvfOBxNo8pEGNQQoIv65Ihg=
+github.com/scaleway/terraform-provider-scaleway/v2 v2.47.0 h1:d4kcZpxykr5Ynqbh4VOCz5wY7bc7l6Z1/7L01a6seUk=
+github.com/scaleway/terraform-provider-scaleway/v2 v2.47.0/go.mod h1:3dR2hJcWAA/54UNsttn8o09A03wCS5Q6oEs0LcCbQTI=
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=
@@ -2161,10 +2142,9 @@ golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf
golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g=
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
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.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
-golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
+golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A=
+golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
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=
@@ -2309,9 +2289,8 @@ golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
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.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
-golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
+golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
+golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
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=
@@ -2347,8 +2326,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.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs=
-golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
+golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA=
+golang.org/x/oauth2 v0.22.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=
@@ -2369,7 +2348,6 @@ golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -2481,8 +2459,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.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM=
-golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
+golang.org/x/sys v0.25.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=
@@ -2501,10 +2479,9 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
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.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU=
-golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk=
+golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM=
+golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8=
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=
@@ -2526,8 +2503,8 @@ golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
-golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
+golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
+golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -2609,7 +2586,6 @@ golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc=
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.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=
@@ -2877,8 +2853,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-20240604185151-ef581f913117 h1:+rdxYoE3E5htTEWIe15GlN6IfvbURM//Jt0mmkmm6ZU=
-google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117/go.mod h1:OimBR/bc1wPO9iV4NC2bpyjy3VnAwZh5EBPQdtaE5oo=
+google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8=
+google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo=
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=
@@ -2899,8 +2875,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-20240725223205-93522f1f2a9f h1:RARaIm8pxYuxyNPbBQf5igT7XdOyCNtat1qAT2ZxjU4=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240725223205-93522f1f2a9f/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU=
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=
@@ -2951,8 +2927,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.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo=
-google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
+google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E=
+google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA=
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=
@@ -2974,8 +2950,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.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
-google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
+google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
+google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
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 2cdb89af..3aaaa724 100644
--- a/provider/resources.go
+++ b/provider/resources.go
@@ -317,6 +317,12 @@ func Provider() tfbridge.ProviderInfo {
Source: "iam_user.md",
},
},
+ "scaleway_inference_deployment": {
+ Tok: scalewayResource(scalewayMod, "InferenceDeployment"),
+ Docs: &tfbridge.DocInfo{
+ Source: "inference_deployment.md",
+ },
+ },
"scaleway_instance_image": {
Tok: scalewayResource(scalewayMod, "InstanceImage"),
Docs: &tfbridge.DocInfo{
@@ -527,6 +533,18 @@ func Provider() tfbridge.ProviderInfo {
Source: "mnq_sqs_queue.md",
},
},
+ "scaleway_mongodb_instance": {
+ Tok: scalewayResource(scalewayMod, "MongoDbInstance"),
+ Docs: &tfbridge.DocInfo{
+ Source: "mongodb_instance.md",
+ },
+ },
+ "scaleway_mongodb_snapshot": {
+ Tok: scalewayResource(scalewayMod, "MongoDbSnapshot"),
+ Docs: &tfbridge.DocInfo{
+ Source: "mongodb_snapshot.md",
+ },
+ },
"scaleway_object": {
Tok: scalewayResource(scalewayMod, "ObjectItem"),
Docs: &tfbridge.DocInfo{
@@ -1075,6 +1093,12 @@ func Provider() tfbridge.ProviderInfo {
Source: "mnq_sqs.md",
},
},
+ "scaleway_mongodb_instance": {
+ Tok: scalewayDataSource(scalewayMod, "getMongoDbInstance"),
+ Docs: &tfbridge.DocInfo{
+ Source: "mongodb_instance.md",
+ },
+ },
"scaleway_rdb_acl": {
Tok: scalewayDataSource(scalewayMod, "getDatabaseAcl"),
Docs: &tfbridge.DocInfo{
diff --git a/provider/shim/go.mod b/provider/shim/go.mod
index 305408f4..288aa225 100644
--- a/provider/shim/go.mod
+++ b/provider/shim/go.mod
@@ -1,10 +1,12 @@
module github.com/scaleway/terraform-provider-scaleway/v2/shim
-go 1.22
+go 1.22.0
+
+toolchain go1.23.2
require (
github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0
- github.com/scaleway/terraform-provider-scaleway/v2 v2.46.0
+ github.com/scaleway/terraform-provider-scaleway/v2 v2.47.0
)
require (
@@ -34,7 +36,7 @@ require (
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
- github.com/hashicorp/terraform-plugin-go v0.23.0 // indirect
+ github.com/hashicorp/terraform-plugin-go v0.24.0 // indirect
github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect
github.com/hashicorp/terraform-registry-address v0.2.3 // indirect
github.com/hashicorp/terraform-svchost v0.1.1 // indirect
@@ -48,29 +50,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.8 // indirect
+ github.com/nats-io/jwt/v2 v2.7.0 // indirect
github.com/nats-io/nats.go v1.37.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.30 // indirect
+ github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30.0.20241021115642-2d127a2d76c7 // 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.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.26.0 // indirect
+ golang.org/x/crypto v0.27.0 // indirect
golang.org/x/mod v0.19.0 // indirect
golang.org/x/net v0.27.0 // indirect
golang.org/x/sync v0.8.0 // indirect
- golang.org/x/sys v0.23.0 // indirect
- golang.org/x/text v0.17.0 // indirect
+ golang.org/x/sys v0.25.0 // indirect
+ golang.org/x/text v0.19.0 // 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-20240725223205-93522f1f2a9f // indirect
- google.golang.org/grpc v1.65.0 // indirect
+ google.golang.org/grpc v1.66.2 // 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 9411c70d..a9027901 100644
--- a/provider/shim/go.sum
+++ b/provider/shim/go.sum
@@ -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 v27.2.0+incompatible h1:Rk9nIVdfH3+Vz4cyI/uhbINhEZ/oLmc+CBXmH6fbNk4=
-github.com/docker/docker v27.2.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI=
+github.com/docker/docker v27.3.1+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=
@@ -104,8 +104,8 @@ github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVW
github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf4fYUmB923Wzbq1ICg=
github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec=
github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A=
-github.com/hashicorp/terraform-plugin-go v0.23.0 h1:AALVuU1gD1kPb48aPQUjug9Ir/125t+AAurhqphJ2Co=
-github.com/hashicorp/terraform-plugin-go v0.23.0/go.mod h1:1E3Cr9h2vMlahWMbsSEcNrOCxovCZhOOIXjFHbjc/lQ=
+github.com/hashicorp/terraform-plugin-go v0.24.0 h1:2WpHhginCdVhFIrWHxDEg6RBn3YaWzR2o6qUeIEat2U=
+github.com/hashicorp/terraform-plugin-go v0.24.0/go.mod h1:tUQ53lAsOyYSckFGEefGC5C8BAaO0ENqzFd3bQeuYQg=
github.com/hashicorp/terraform-plugin-log v0.9.0 h1:i7hOA+vdAItN1/7UrfBqBwvYPQ9TFvymaRGZED3FCV0=
github.com/hashicorp/terraform-plugin-log v0.9.0/go.mod h1:rKL8egZQ/eXSyDqzLUuwUYLVdlYeamldAHSxjUFADow=
github.com/hashicorp/terraform-plugin-sdk/v2 v2.34.0 h1:kJiWGx2kiQVo97Y5IOGR4EMcZ8DtMswHhUuFibsCQQE=
@@ -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.8 h1:uvdSzwWiEGWGXf+0Q+70qv6AQdvcvxrv9hPM0RiPamE=
-github.com/nats-io/jwt/v2 v2.5.8/go.mod h1:ZdWS1nZa6WMZfFwwgpEaqBV8EPGVgOTDHN/wTbz0Y5A=
+github.com/nats-io/jwt/v2 v2.7.0 h1:J+ZnaaMGQi3xSB8iOhVM5ipiWCDrQvgEoitTwWFyOYw=
+github.com/nats-io/jwt/v2 v2.7.0/go.mod h1:ZdWS1nZa6WMZfFwwgpEaqBV8EPGVgOTDHN/wTbz0Y5A=
github.com/nats-io/nats.go v1.37.0 h1:07rauXbVnnJvv1gfIyghFEo6lUcYRY0WXc3x7x0vUxE=
github.com/nats-io/nats.go v1.37.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.30 h1:yoKAVkEVwAqbGbR8n87rHQ1dulL25rKloGadb3vm770=
-github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30/go.mod h1:sH0u6fq6x4R5M7WxkoQFY/o7UaiItec0o1LinLCJNq8=
-github.com/scaleway/terraform-provider-scaleway/v2 v2.46.0 h1:VD9V/t43In0CDmjzcZv0gLcMmGprd0eZP/ZIs91vbxs=
-github.com/scaleway/terraform-provider-scaleway/v2 v2.46.0/go.mod h1:UIl6/JpUkO30efjRsV5fh+WU3Bcg0j0LA+qc6E+bhlU=
+github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30.0.20241021115642-2d127a2d76c7 h1:mWi3yS37Lhf73OP2Z4CboKtXJM4mWDAUWFHKSx2WK7k=
+github.com/scaleway/scaleway-sdk-go v1.0.0-beta.30.0.20241021115642-2d127a2d76c7/go.mod h1:3jrRJM7638J+P33hKy9MBvfOBxNo8pEGNQQoIv65Ihg=
+github.com/scaleway/terraform-provider-scaleway/v2 v2.47.0 h1:d4kcZpxykr5Ynqbh4VOCz5wY7bc7l6Z1/7L01a6seUk=
+github.com/scaleway/terraform-provider-scaleway/v2 v2.47.0/go.mod h1:3dR2hJcWAA/54UNsttn8o09A03wCS5Q6oEs0LcCbQTI=
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=
@@ -215,8 +215,8 @@ 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.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
-golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
+golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A=
+golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8=
golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
@@ -244,19 +244,19 @@ 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.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM=
-golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
+golang.org/x/sys v0.25.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.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU=
-golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk=
+golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM=
+golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8=
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=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
-golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
-golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
+golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
+golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
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=
@@ -269,8 +269,8 @@ google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAs
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
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/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo=
+google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
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.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
diff --git a/sdk/dotnet/BaremetalServer.cs b/sdk/dotnet/BaremetalServer.cs
index 58b88c36..447277a5 100644
--- a/sdk/dotnet/BaremetalServer.cs
+++ b/sdk/dotnet/BaremetalServer.cs
@@ -26,7 +26,7 @@ namespace Pulumiverse.Scaleway
///
/// return await Deployment.RunAsync(() =>
/// {
- /// var main = Scaleway.GetAccountSshKey.Invoke(new()
+ /// var main = Scaleway.GetIamSshKey.Invoke(new()
/// {
/// Name = "main",
/// });
@@ -38,7 +38,7 @@ namespace Pulumiverse.Scaleway
/// Os = "d17d6872-0412-45d9-a198-af82c34d3c5c",
/// SshKeyIds = new[]
/// {
- /// main.Apply(getAccountSshKeyResult => getAccountSshKeyResult.Id),
+ /// mainScalewayAccountSshKey.Id,
/// },
/// });
///
@@ -56,7 +56,7 @@ namespace Pulumiverse.Scaleway
///
/// return await Deployment.RunAsync(() =>
/// {
- /// var main = Scaleway.GetAccountSshKey.Invoke(new()
+ /// var main = Scaleway.GetIamSshKey.Invoke(new()
/// {
/// Name = "main",
/// });
@@ -93,7 +93,7 @@ namespace Pulumiverse.Scaleway
/// Os = myOs.Apply(getBaremetalOsResult => getBaremetalOsResult.OsId),
/// SshKeyIds = new[]
/// {
- /// main.Apply(getAccountSshKeyResult => getAccountSshKeyResult.Id),
+ /// mainScalewayAccountSshKey.Id,
/// },
/// Options = new[]
/// {
@@ -122,7 +122,7 @@ namespace Pulumiverse.Scaleway
///
/// return await Deployment.RunAsync(() =>
/// {
- /// var main = Scaleway.GetAccountSshKey.Invoke(new()
+ /// var main = Scaleway.GetIamSshKey.Invoke(new()
/// {
/// Name = "main",
/// });
@@ -159,7 +159,7 @@ namespace Pulumiverse.Scaleway
/// Os = myOs.Apply(getBaremetalOsResult => getBaremetalOsResult.OsId),
/// SshKeyIds = new[]
/// {
- /// main.Apply(getAccountSshKeyResult => getAccountSshKeyResult.Id),
+ /// mainScalewayAccountSshKey.Id,
/// },
/// Options = new[]
/// {
@@ -180,6 +180,100 @@ namespace Pulumiverse.Scaleway
/// });
/// ```
///
+ /// ### With IPAM IP IDs
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Scaleway = Pulumi.Scaleway;
+ /// using Scaleway = Pulumiverse.Scaleway;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var vpc01 = new Scaleway.Vpc("vpc01", new()
+ /// {
+ /// Name = "vpc_baremetal",
+ /// });
+ ///
+ /// var pn01 = new Scaleway.VpcPrivateNetwork("pn01", new()
+ /// {
+ /// Name = "private_network_baremetal",
+ /// Ipv4Subnet = new Scaleway.Inputs.VpcPrivateNetworkIpv4SubnetArgs
+ /// {
+ /// Subnet = "172.16.64.0/22",
+ /// },
+ /// VpcId = vpc01.Id,
+ /// });
+ ///
+ /// var ip01 = new Scaleway.IpamIp("ip01", new()
+ /// {
+ /// Address = "172.16.64.7",
+ /// Sources = new[]
+ /// {
+ /// new Scaleway.Inputs.IpamIpSourceArgs
+ /// {
+ /// PrivateNetworkId = pn01.Id,
+ /// },
+ /// },
+ /// });
+ ///
+ /// var myKey = Scaleway.GetIamSshKey.Invoke(new()
+ /// {
+ /// Name = "main",
+ /// });
+ ///
+ /// var myOs = Scaleway.GetBaremetalOs.Invoke(new()
+ /// {
+ /// Zone = "fr-par-1",
+ /// Name = "Ubuntu",
+ /// Version = "22.04 LTS (Jammy Jellyfish)",
+ /// });
+ ///
+ /// var myOffer = Scaleway.GetBaremetalOffer.Invoke(new()
+ /// {
+ /// Zone = "fr-par-1",
+ /// Name = "EM-A115X-SSD",
+ /// });
+ ///
+ /// var privateNetwork = Scaleway.GetBaremetalOption.Invoke(new()
+ /// {
+ /// Zone = "fr-par-1",
+ /// Name = "Private Network",
+ /// });
+ ///
+ /// var @base = new Scaleway.BaremetalServer("base", new()
+ /// {
+ /// Zone = "fr-par-2",
+ /// Offer = myOffer.Apply(getBaremetalOfferResult => getBaremetalOfferResult.OfferId),
+ /// Os = myOs.Apply(getBaremetalOsResult => getBaremetalOsResult.OsId),
+ /// SshKeyIds = new[]
+ /// {
+ /// myKeyScalewayAccountSshKey.Id,
+ /// },
+ /// Options = new[]
+ /// {
+ /// new Scaleway.Inputs.BaremetalServerOptionArgs
+ /// {
+ /// Id = privateNetwork.Apply(getBaremetalOptionResult => getBaremetalOptionResult.OptionId),
+ /// },
+ /// },
+ /// PrivateNetworks = new[]
+ /// {
+ /// new Scaleway.Inputs.BaremetalServerPrivateNetworkArgs
+ /// {
+ /// Id = pn01.Id,
+ /// IpamIpIds = new[]
+ /// {
+ /// ip01.Id,
+ /// },
+ /// },
+ /// },
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
/// ### Without install config
///
/// ```csharp
diff --git a/sdk/dotnet/GetMongoDbInstance.cs b/sdk/dotnet/GetMongoDbInstance.cs
new file mode 100644
index 00000000..1ae745db
--- /dev/null
+++ b/sdk/dotnet/GetMongoDbInstance.cs
@@ -0,0 +1,215 @@
+// *** 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 GetMongoDbInstance
+ {
+ ///
+ /// Gets information about a MongoDB® Instance.
+ ///
+ /// For further information refer to the Managed Databases for MongoDB® [API documentation](https://developers.scaleway.com/en/products/mongodb/api/)
+ ///
+ public static Task InvokeAsync(GetMongoDbInstanceArgs? args = null, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("scaleway:index/getMongoDbInstance:getMongoDbInstance", args ?? new GetMongoDbInstanceArgs(), options.WithDefaults());
+
+ ///
+ /// Gets information about a MongoDB® Instance.
+ ///
+ /// For further information refer to the Managed Databases for MongoDB® [API documentation](https://developers.scaleway.com/en/products/mongodb/api/)
+ ///
+ public static Output Invoke(GetMongoDbInstanceInvokeArgs? args = null, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("scaleway:index/getMongoDbInstance:getMongoDbInstance", args ?? new GetMongoDbInstanceInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetMongoDbInstanceArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// The MongoDB® instance ID.
+ ///
+ /// > **Note** You must specify at least one: `name` or `instance_id`.
+ ///
+ [Input("instanceId")]
+ public string? InstanceId { get; set; }
+
+ ///
+ /// The name of the MongoDB® instance.
+ ///
+ [Input("name")]
+ public string? Name { get; set; }
+
+ ///
+ /// The ID of the project the MongoDB® instance is in. Can be used to filter instances when using `name`.
+ ///
+ [Input("projectId")]
+ public string? ProjectId { get; set; }
+
+ ///
+ /// `region`) The region in which the MongoDB® Instance exists.
+ ///
+ [Input("region")]
+ public string? Region { get; set; }
+
+ public GetMongoDbInstanceArgs()
+ {
+ }
+ public static new GetMongoDbInstanceArgs Empty => new GetMongoDbInstanceArgs();
+ }
+
+ public sealed class GetMongoDbInstanceInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ ///
+ /// The MongoDB® instance ID.
+ ///
+ /// > **Note** You must specify at least one: `name` or `instance_id`.
+ ///
+ [Input("instanceId")]
+ public Input? InstanceId { get; set; }
+
+ ///
+ /// The name of the MongoDB® instance.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The ID of the project the MongoDB® instance is in. Can be used to filter instances when using `name`.
+ ///
+ [Input("projectId")]
+ public Input? ProjectId { get; set; }
+
+ ///
+ /// `region`) The region in which the MongoDB® Instance exists.
+ ///
+ [Input("region")]
+ public Input? Region { get; set; }
+
+ public GetMongoDbInstanceInvokeArgs()
+ {
+ }
+ public static new GetMongoDbInstanceInvokeArgs Empty => new GetMongoDbInstanceInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetMongoDbInstanceResult
+ {
+ ///
+ /// The date and time the MongoDB® instance was created.
+ ///
+ public readonly string CreatedAt;
+ ///
+ /// The provider-assigned unique ID for this managed resource.
+ ///
+ public readonly string Id;
+ public readonly string? InstanceId;
+ ///
+ /// The name of the MongoDB® instance.
+ ///
+ public readonly string? Name;
+ ///
+ /// The number of nodes in the MongoDB® cluster.
+ ///
+ public readonly int NodeNumber;
+ ///
+ /// The type of MongoDB® node.
+ ///
+ public readonly string NodeType;
+ public readonly string Password;
+ ///
+ /// The ID of the project the instance belongs to.
+ ///
+ public readonly string? ProjectId;
+ ///
+ /// The details of the public network configuration, if applicable.
+ ///
+ public readonly ImmutableArray PublicNetworks;
+ public readonly string? Region;
+ public readonly ImmutableDictionary Settings;
+ public readonly string SnapshotId;
+ ///
+ /// A list of tags attached to the MongoDB® instance.
+ ///
+ public readonly ImmutableArray Tags;
+ public readonly string UpdatedAt;
+ public readonly string UserName;
+ ///
+ /// The version of MongoDB® running on the instance.
+ ///
+ public readonly string Version;
+ ///
+ /// The size of the attached volume, in GB.
+ ///
+ public readonly int VolumeSizeInGb;
+ ///
+ /// The type of volume attached to the MongoDB® instance.
+ ///
+ public readonly string VolumeType;
+
+ [OutputConstructor]
+ private GetMongoDbInstanceResult(
+ string createdAt,
+
+ string id,
+
+ string? instanceId,
+
+ string? name,
+
+ int nodeNumber,
+
+ string nodeType,
+
+ string password,
+
+ string? projectId,
+
+ ImmutableArray publicNetworks,
+
+ string? region,
+
+ ImmutableDictionary settings,
+
+ string snapshotId,
+
+ ImmutableArray tags,
+
+ string updatedAt,
+
+ string userName,
+
+ string version,
+
+ int volumeSizeInGb,
+
+ string volumeType)
+ {
+ CreatedAt = createdAt;
+ Id = id;
+ InstanceId = instanceId;
+ Name = name;
+ NodeNumber = nodeNumber;
+ NodeType = nodeType;
+ Password = password;
+ ProjectId = projectId;
+ PublicNetworks = publicNetworks;
+ Region = region;
+ Settings = settings;
+ SnapshotId = snapshotId;
+ Tags = tags;
+ UpdatedAt = updatedAt;
+ UserName = userName;
+ Version = version;
+ VolumeSizeInGb = volumeSizeInGb;
+ VolumeType = volumeType;
+ }
+ }
+}
diff --git a/sdk/dotnet/InferenceDeployment.cs b/sdk/dotnet/InferenceDeployment.cs
new file mode 100644
index 00000000..9e4835b3
--- /dev/null
+++ b/sdk/dotnet/InferenceDeployment.cs
@@ -0,0 +1,387 @@
+// *** 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
+{
+ ///
+ /// Creates and manages Scaleway Managed Inference deployments.
+ /// For more information, see [the documentation](https://www.scaleway.com/en/developers/api/inference/).
+ ///
+ /// ## Example Usage
+ ///
+ /// ### Basic
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Scaleway = Pulumiverse.Scaleway;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var deployment = new Scaleway.InferenceDeployment("deployment", new()
+ /// {
+ /// Name = "tf-inference-deployment",
+ /// NodeType = "L4",
+ /// ModelName = "meta/llama-3.1-8b-instruct:fp8",
+ /// PublicEndpoint = new Scaleway.Inputs.InferenceDeploymentPublicEndpointArgs
+ /// {
+ /// IsEnabled = true,
+ /// },
+ /// AcceptEula = true,
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ /// ## Import
+ ///
+ /// Functions can be imported using, `{region}/{id}`, as shown below:
+ ///
+ /// bash
+ ///
+ /// ```sh
+ /// $ pulumi import scaleway:index/inferenceDeployment:InferenceDeployment deployment fr-par/11111111-1111-1111-1111-111111111111
+ /// ```
+ ///
+ [ScalewayResourceType("scaleway:index/inferenceDeployment:InferenceDeployment")]
+ public partial class InferenceDeployment : global::Pulumi.CustomResource
+ {
+ ///
+ /// Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
+ ///
+ [Output("acceptEula")]
+ public Output AcceptEula { get; private set; } = null!;
+
+ ///
+ /// The date and time of the creation of the deployment.
+ ///
+ [Output("createdAt")]
+ public Output CreatedAt { get; private set; } = null!;
+
+ ///
+ /// The maximum size of the pool.
+ ///
+ [Output("maxSize")]
+ public Output MaxSize { get; private set; } = null!;
+
+ ///
+ /// The minimum size of the pool.
+ ///
+ [Output("minSize")]
+ public Output MinSize { get; private set; } = null!;
+
+ ///
+ /// The model id used for the deployment.
+ ///
+ [Output("modelId")]
+ public Output ModelId { get; private set; } = null!;
+
+ ///
+ /// The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
+ ///
+ [Output("modelName")]
+ public Output ModelName { get; private set; } = null!;
+
+ ///
+ /// The deployment name.
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
+ ///
+ [Output("nodeType")]
+ public Output NodeType { get; private set; } = null!;
+
+ ///
+ /// Configuration of the deployment's private endpoint.
+ ///
+ [Output("privateEndpoint")]
+ public Output PrivateEndpoint { get; private set; } = null!;
+
+ ///
+ /// `project_id`) The ID of the project the deployment is associated with.
+ ///
+ [Output("projectId")]
+ public Output ProjectId { get; private set; } = null!;
+
+ ///
+ /// Configuration of the deployment's public endpoint.
+ ///
+ [Output("publicEndpoint")]
+ public Output PublicEndpoint { get; private set; } = null!;
+
+ ///
+ /// `region`) The region in which the deployment is created.
+ ///
+ [Output("region")]
+ public Output Region { get; private set; } = null!;
+
+ ///
+ /// The size of the pool.
+ ///
+ [Output("size")]
+ public Output Size { get; private set; } = null!;
+
+ ///
+ /// The status of the deployment.
+ ///
+ [Output("status")]
+ public Output Status { get; private set; } = null!;
+
+ ///
+ /// The tags associated with the deployment.
+ ///
+ [Output("tags")]
+ public Output> Tags { get; private set; } = null!;
+
+ ///
+ /// The date and time of the last update of the deployment.
+ ///
+ [Output("updatedAt")]
+ public Output UpdatedAt { get; private set; } = null!;
+
+
+ ///
+ /// Create a InferenceDeployment resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public InferenceDeployment(string name, InferenceDeploymentArgs args, CustomResourceOptions? options = null)
+ : base("scaleway:index/inferenceDeployment:InferenceDeployment", name, args ?? new InferenceDeploymentArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private InferenceDeployment(string name, Input id, InferenceDeploymentState? state = null, CustomResourceOptions? options = null)
+ : base("scaleway:index/inferenceDeployment:InferenceDeployment", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ PluginDownloadURL = "github://api.github.com/pulumiverse",
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing InferenceDeployment resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static InferenceDeployment Get(string name, Input id, InferenceDeploymentState? state = null, CustomResourceOptions? options = null)
+ {
+ return new InferenceDeployment(name, id, state, options);
+ }
+ }
+
+ public sealed class InferenceDeploymentArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
+ ///
+ [Input("acceptEula")]
+ public Input? AcceptEula { get; set; }
+
+ ///
+ /// The maximum size of the pool.
+ ///
+ [Input("maxSize")]
+ public Input? MaxSize { get; set; }
+
+ ///
+ /// The minimum size of the pool.
+ ///
+ [Input("minSize")]
+ public Input? MinSize { get; set; }
+
+ ///
+ /// The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
+ ///
+ [Input("modelName", required: true)]
+ public Input ModelName { get; set; } = null!;
+
+ ///
+ /// The deployment name.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
+ ///
+ [Input("nodeType", required: true)]
+ public Input NodeType { get; set; } = null!;
+
+ ///
+ /// Configuration of the deployment's private endpoint.
+ ///
+ [Input("privateEndpoint")]
+ public Input? PrivateEndpoint { get; set; }
+
+ ///
+ /// `project_id`) The ID of the project the deployment is associated with.
+ ///
+ [Input("projectId")]
+ public Input? ProjectId { get; set; }
+
+ ///
+ /// Configuration of the deployment's public endpoint.
+ ///
+ [Input("publicEndpoint")]
+ public Input? PublicEndpoint { get; set; }
+
+ ///
+ /// `region`) The region in which the deployment is created.
+ ///
+ [Input("region")]
+ public Input? Region { get; set; }
+
+ [Input("tags")]
+ private InputList? _tags;
+
+ ///
+ /// The tags associated with the deployment.
+ ///
+ public InputList Tags
+ {
+ get => _tags ?? (_tags = new InputList());
+ set => _tags = value;
+ }
+
+ public InferenceDeploymentArgs()
+ {
+ }
+ public static new InferenceDeploymentArgs Empty => new InferenceDeploymentArgs();
+ }
+
+ public sealed class InferenceDeploymentState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
+ ///
+ [Input("acceptEula")]
+ public Input? AcceptEula { get; set; }
+
+ ///
+ /// The date and time of the creation of the deployment.
+ ///
+ [Input("createdAt")]
+ public Input? CreatedAt { get; set; }
+
+ ///
+ /// The maximum size of the pool.
+ ///
+ [Input("maxSize")]
+ public Input? MaxSize { get; set; }
+
+ ///
+ /// The minimum size of the pool.
+ ///
+ [Input("minSize")]
+ public Input? MinSize { get; set; }
+
+ ///
+ /// The model id used for the deployment.
+ ///
+ [Input("modelId")]
+ public Input? ModelId { get; set; }
+
+ ///
+ /// The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
+ ///
+ [Input("modelName")]
+ public Input? ModelName { get; set; }
+
+ ///
+ /// The deployment name.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
+ ///
+ [Input("nodeType")]
+ public Input? NodeType { get; set; }
+
+ ///
+ /// Configuration of the deployment's private endpoint.
+ ///
+ [Input("privateEndpoint")]
+ public Input? PrivateEndpoint { get; set; }
+
+ ///
+ /// `project_id`) The ID of the project the deployment is associated with.
+ ///
+ [Input("projectId")]
+ public Input? ProjectId { get; set; }
+
+ ///
+ /// Configuration of the deployment's public endpoint.
+ ///
+ [Input("publicEndpoint")]
+ public Input? PublicEndpoint { get; set; }
+
+ ///
+ /// `region`) The region in which the deployment is created.
+ ///
+ [Input("region")]
+ public Input? Region { get; set; }
+
+ ///
+ /// The size of the pool.
+ ///
+ [Input("size")]
+ public Input? Size { get; set; }
+
+ ///
+ /// The status of the deployment.
+ ///
+ [Input("status")]
+ public Input? Status { get; set; }
+
+ [Input("tags")]
+ private InputList? _tags;
+
+ ///
+ /// The tags associated with the deployment.
+ ///
+ public InputList Tags
+ {
+ get => _tags ?? (_tags = new InputList());
+ set => _tags = value;
+ }
+
+ ///
+ /// The date and time of the last update of the deployment.
+ ///
+ [Input("updatedAt")]
+ public Input? UpdatedAt { get; set; }
+
+ public InferenceDeploymentState()
+ {
+ }
+ public static new InferenceDeploymentState Empty => new InferenceDeploymentState();
+ }
+}
diff --git a/sdk/dotnet/Inputs/BaremetalServerPrivateNetworkArgs.cs b/sdk/dotnet/Inputs/BaremetalServerPrivateNetworkArgs.cs
index fde4c487..399eaa9d 100644
--- a/sdk/dotnet/Inputs/BaremetalServerPrivateNetworkArgs.cs
+++ b/sdk/dotnet/Inputs/BaremetalServerPrivateNetworkArgs.cs
@@ -25,6 +25,18 @@ public sealed class BaremetalServerPrivateNetworkArgs : global::Pulumi.ResourceA
[Input("id", required: true)]
public Input Id { get; set; } = null!;
+ [Input("ipamIpIds")]
+ private InputList? _ipamIpIds;
+
+ ///
+ /// List of IPAM IP IDs to assign to the server in the requested private network.
+ ///
+ public InputList IpamIpIds
+ {
+ get => _ipamIpIds ?? (_ipamIpIds = new InputList());
+ set => _ipamIpIds = value;
+ }
+
///
/// The private network status.
///
diff --git a/sdk/dotnet/Inputs/BaremetalServerPrivateNetworkGetArgs.cs b/sdk/dotnet/Inputs/BaremetalServerPrivateNetworkGetArgs.cs
index bbde8c98..a3222e9b 100644
--- a/sdk/dotnet/Inputs/BaremetalServerPrivateNetworkGetArgs.cs
+++ b/sdk/dotnet/Inputs/BaremetalServerPrivateNetworkGetArgs.cs
@@ -25,6 +25,18 @@ public sealed class BaremetalServerPrivateNetworkGetArgs : global::Pulumi.Resour
[Input("id", required: true)]
public Input Id { get; set; } = null!;
+ [Input("ipamIpIds")]
+ private InputList? _ipamIpIds;
+
+ ///
+ /// List of IPAM IP IDs to assign to the server in the requested private network.
+ ///
+ public InputList IpamIpIds
+ {
+ get => _ipamIpIds ?? (_ipamIpIds = new InputList());
+ set => _ipamIpIds = value;
+ }
+
///
/// The private network status.
///
diff --git a/sdk/dotnet/Inputs/InferenceDeploymentPrivateEndpointArgs.cs b/sdk/dotnet/Inputs/InferenceDeploymentPrivateEndpointArgs.cs
new file mode 100644
index 00000000..f7024d8b
--- /dev/null
+++ b/sdk/dotnet/Inputs/InferenceDeploymentPrivateEndpointArgs.cs
@@ -0,0 +1,45 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Scaleway.Inputs
+{
+
+ public sealed class InferenceDeploymentPrivateEndpointArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Disable the authentication on the endpoint.
+ ///
+ [Input("disableAuth")]
+ public Input? DisableAuth { get; set; }
+
+ ///
+ /// (Optional) The id of the public endpoint.
+ ///
+ [Input("id")]
+ public Input? Id { get; set; }
+
+ ///
+ /// The ID of the private network to use.
+ ///
+ [Input("privateNetworkId")]
+ public Input? PrivateNetworkId { get; set; }
+
+ ///
+ /// (Optional) The URL of the endpoint.
+ ///
+ [Input("url")]
+ public Input? Url { get; set; }
+
+ public InferenceDeploymentPrivateEndpointArgs()
+ {
+ }
+ public static new InferenceDeploymentPrivateEndpointArgs Empty => new InferenceDeploymentPrivateEndpointArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/InferenceDeploymentPrivateEndpointGetArgs.cs b/sdk/dotnet/Inputs/InferenceDeploymentPrivateEndpointGetArgs.cs
new file mode 100644
index 00000000..0752024a
--- /dev/null
+++ b/sdk/dotnet/Inputs/InferenceDeploymentPrivateEndpointGetArgs.cs
@@ -0,0 +1,45 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Scaleway.Inputs
+{
+
+ public sealed class InferenceDeploymentPrivateEndpointGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Disable the authentication on the endpoint.
+ ///
+ [Input("disableAuth")]
+ public Input? DisableAuth { get; set; }
+
+ ///
+ /// (Optional) The id of the public endpoint.
+ ///
+ [Input("id")]
+ public Input? Id { get; set; }
+
+ ///
+ /// The ID of the private network to use.
+ ///
+ [Input("privateNetworkId")]
+ public Input? PrivateNetworkId { get; set; }
+
+ ///
+ /// (Optional) The URL of the endpoint.
+ ///
+ [Input("url")]
+ public Input? Url { get; set; }
+
+ public InferenceDeploymentPrivateEndpointGetArgs()
+ {
+ }
+ public static new InferenceDeploymentPrivateEndpointGetArgs Empty => new InferenceDeploymentPrivateEndpointGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/InferenceDeploymentPublicEndpointArgs.cs b/sdk/dotnet/Inputs/InferenceDeploymentPublicEndpointArgs.cs
new file mode 100644
index 00000000..429253a4
--- /dev/null
+++ b/sdk/dotnet/Inputs/InferenceDeploymentPublicEndpointArgs.cs
@@ -0,0 +1,45 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Scaleway.Inputs
+{
+
+ public sealed class InferenceDeploymentPublicEndpointArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Disable the authentication on the endpoint.
+ ///
+ [Input("disableAuth")]
+ public Input? DisableAuth { get; set; }
+
+ ///
+ /// (Optional) The id of the public endpoint.
+ ///
+ [Input("id")]
+ public Input? Id { get; set; }
+
+ ///
+ /// Enable or disable public endpoint.
+ ///
+ [Input("isEnabled")]
+ public Input? IsEnabled { get; set; }
+
+ ///
+ /// (Optional) The URL of the endpoint.
+ ///
+ [Input("url")]
+ public Input? Url { get; set; }
+
+ public InferenceDeploymentPublicEndpointArgs()
+ {
+ }
+ public static new InferenceDeploymentPublicEndpointArgs Empty => new InferenceDeploymentPublicEndpointArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/InferenceDeploymentPublicEndpointGetArgs.cs b/sdk/dotnet/Inputs/InferenceDeploymentPublicEndpointGetArgs.cs
new file mode 100644
index 00000000..4113f3db
--- /dev/null
+++ b/sdk/dotnet/Inputs/InferenceDeploymentPublicEndpointGetArgs.cs
@@ -0,0 +1,45 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Scaleway.Inputs
+{
+
+ public sealed class InferenceDeploymentPublicEndpointGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Disable the authentication on the endpoint.
+ ///
+ [Input("disableAuth")]
+ public Input? DisableAuth { get; set; }
+
+ ///
+ /// (Optional) The id of the public endpoint.
+ ///
+ [Input("id")]
+ public Input? Id { get; set; }
+
+ ///
+ /// Enable or disable public endpoint.
+ ///
+ [Input("isEnabled")]
+ public Input? IsEnabled { get; set; }
+
+ ///
+ /// (Optional) The URL of the endpoint.
+ ///
+ [Input("url")]
+ public Input? Url { get; set; }
+
+ public InferenceDeploymentPublicEndpointGetArgs()
+ {
+ }
+ public static new InferenceDeploymentPublicEndpointGetArgs Empty => new InferenceDeploymentPublicEndpointGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/IpamIpCustomResourceArgs.cs b/sdk/dotnet/Inputs/IpamIpCustomResourceArgs.cs
new file mode 100644
index 00000000..6e6d648c
--- /dev/null
+++ b/sdk/dotnet/Inputs/IpamIpCustomResourceArgs.cs
@@ -0,0 +1,33 @@
+// *** 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.Inputs
+{
+
+ public sealed class IpamIpCustomResourceArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The MAC address of the resource the IP is attached to.
+ ///
+ [Input("macAddress", required: true)]
+ public Input MacAddress { get; set; } = null!;
+
+ ///
+ /// The name of the resource the IP is attached to.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ public IpamIpCustomResourceArgs()
+ {
+ }
+ public static new IpamIpCustomResourceArgs Empty => new IpamIpCustomResourceArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/IpamIpCustomResourceGetArgs.cs b/sdk/dotnet/Inputs/IpamIpCustomResourceGetArgs.cs
new file mode 100644
index 00000000..1b6b3f6e
--- /dev/null
+++ b/sdk/dotnet/Inputs/IpamIpCustomResourceGetArgs.cs
@@ -0,0 +1,33 @@
+// *** 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.Inputs
+{
+
+ public sealed class IpamIpCustomResourceGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The MAC address of the resource the IP is attached to.
+ ///
+ [Input("macAddress", required: true)]
+ public Input MacAddress { get; set; } = null!;
+
+ ///
+ /// The name of the resource the IP is attached to.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ public IpamIpCustomResourceGetArgs()
+ {
+ }
+ public static new IpamIpCustomResourceGetArgs Empty => new IpamIpCustomResourceGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/LoadbalancerCertificateCustomCertificateArgs.cs b/sdk/dotnet/Inputs/LoadbalancerCertificateCustomCertificateArgs.cs
index 25b2b189..55d07358 100644
--- a/sdk/dotnet/Inputs/LoadbalancerCertificateCustomCertificateArgs.cs
+++ b/sdk/dotnet/Inputs/LoadbalancerCertificateCustomCertificateArgs.cs
@@ -13,11 +13,21 @@ namespace Pulumiverse.Scaleway.Inputs
public sealed class LoadbalancerCertificateCustomCertificateArgs : global::Pulumi.ResourceArgs
{
+ [Input("certificateChain", required: true)]
+ private Input? _certificateChain;
+
///
/// The full PEM-formatted certificate chain
///
- [Input("certificateChain", required: true)]
- public Input CertificateChain { get; set; } = null!;
+ public Input? CertificateChain
+ {
+ get => _certificateChain;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _certificateChain = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
public LoadbalancerCertificateCustomCertificateArgs()
{
diff --git a/sdk/dotnet/Inputs/LoadbalancerCertificateCustomCertificateGetArgs.cs b/sdk/dotnet/Inputs/LoadbalancerCertificateCustomCertificateGetArgs.cs
index b817a183..8a8d1f76 100644
--- a/sdk/dotnet/Inputs/LoadbalancerCertificateCustomCertificateGetArgs.cs
+++ b/sdk/dotnet/Inputs/LoadbalancerCertificateCustomCertificateGetArgs.cs
@@ -13,11 +13,21 @@ namespace Pulumiverse.Scaleway.Inputs
public sealed class LoadbalancerCertificateCustomCertificateGetArgs : global::Pulumi.ResourceArgs
{
+ [Input("certificateChain", required: true)]
+ private Input? _certificateChain;
+
///
/// The full PEM-formatted certificate chain
///
- [Input("certificateChain", required: true)]
- public Input CertificateChain { get; set; } = null!;
+ public Input? CertificateChain
+ {
+ get => _certificateChain;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _certificateChain = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
public LoadbalancerCertificateCustomCertificateGetArgs()
{
diff --git a/sdk/dotnet/Inputs/MongoDbInstancePublicNetworkArgs.cs b/sdk/dotnet/Inputs/MongoDbInstancePublicNetworkArgs.cs
new file mode 100644
index 00000000..65779264
--- /dev/null
+++ b/sdk/dotnet/Inputs/MongoDbInstancePublicNetworkArgs.cs
@@ -0,0 +1,39 @@
+// *** 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.Inputs
+{
+
+ public sealed class MongoDbInstancePublicNetworkArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The DNS record of your endpoint
+ ///
+ [Input("dnsRecord")]
+ public Input? DnsRecord { get; set; }
+
+ ///
+ /// The ID of the MongoDB® instance.
+ ///
+ [Input("id")]
+ public Input? Id { get; set; }
+
+ ///
+ /// TCP port of the endpoint
+ ///
+ [Input("port")]
+ public Input? Port { get; set; }
+
+ public MongoDbInstancePublicNetworkArgs()
+ {
+ }
+ public static new MongoDbInstancePublicNetworkArgs Empty => new MongoDbInstancePublicNetworkArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/MongoDbInstancePublicNetworkGetArgs.cs b/sdk/dotnet/Inputs/MongoDbInstancePublicNetworkGetArgs.cs
new file mode 100644
index 00000000..8530bbe4
--- /dev/null
+++ b/sdk/dotnet/Inputs/MongoDbInstancePublicNetworkGetArgs.cs
@@ -0,0 +1,39 @@
+// *** 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.Inputs
+{
+
+ public sealed class MongoDbInstancePublicNetworkGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The DNS record of your endpoint
+ ///
+ [Input("dnsRecord")]
+ public Input? DnsRecord { get; set; }
+
+ ///
+ /// The ID of the MongoDB® instance.
+ ///
+ [Input("id")]
+ public Input? Id { get; set; }
+
+ ///
+ /// TCP port of the endpoint
+ ///
+ [Input("port")]
+ public Input? Port { get; set; }
+
+ public MongoDbInstancePublicNetworkGetArgs()
+ {
+ }
+ public static new MongoDbInstancePublicNetworkGetArgs Empty => new MongoDbInstancePublicNetworkGetArgs();
+ }
+}
diff --git a/sdk/dotnet/InstanceServer.cs b/sdk/dotnet/InstanceServer.cs
index 9f7a0bba..c49e9a6c 100644
--- a/sdk/dotnet/InstanceServer.cs
+++ b/sdk/dotnet/InstanceServer.cs
@@ -318,7 +318,7 @@ public partial class InstanceServer : global::Pulumi.CustomResource
public Output BootType { get; private set; } = null!;
///
- /// The ID of the bootscript to use (set boot_type to `bootscript`).
+ /// ID of the target bootscript (set boot_type to bootscript)
///
[Output("bootscriptId")]
public Output BootscriptId { get; private set; } = null!;
@@ -583,7 +583,7 @@ public InputList AdditionalVolumeIds
public Input? BootType { get; set; }
///
- /// The ID of the bootscript to use (set boot_type to `bootscript`).
+ /// ID of the target bootscript (set boot_type to bootscript)
///
[Input("bootscriptId")]
public Input? BootscriptId { get; set; }
@@ -794,7 +794,7 @@ public InputList AdditionalVolumeIds
public Input? BootType { get; set; }
///
- /// The ID of the bootscript to use (set boot_type to `bootscript`).
+ /// ID of the target bootscript (set boot_type to bootscript)
///
[Input("bootscriptId")]
public Input? BootscriptId { get; set; }
diff --git a/sdk/dotnet/IotNetwork.cs b/sdk/dotnet/IotNetwork.cs
index 243ade88..0e43c6af 100644
--- a/sdk/dotnet/IotNetwork.cs
+++ b/sdk/dotnet/IotNetwork.cs
@@ -74,6 +74,12 @@ public partial class IotNetwork : global::Pulumi.CustomResource
[Output("name")]
public Output Name { get; private set; } = null!;
+ ///
+ /// (Defaults to provider `region`) The region in which the Network is attached to.
+ ///
+ [Output("region")]
+ public Output Region { get; private set; } = null!;
+
///
/// The endpoint key to keep secret.
///
@@ -155,6 +161,12 @@ public sealed class IotNetworkArgs : global::Pulumi.ResourceArgs
[Input("name")]
public Input? Name { get; set; }
+ ///
+ /// (Defaults to provider `region`) The region in which the Network is attached to.
+ ///
+ [Input("region")]
+ public Input? Region { get; set; }
+
///
/// The prefix that will be prepended to all topics for this Network.
///
@@ -199,6 +211,12 @@ public sealed class IotNetworkState : global::Pulumi.ResourceArgs
[Input("name")]
public Input? Name { get; set; }
+ ///
+ /// (Defaults to provider `region`) The region in which the Network is attached to.
+ ///
+ [Input("region")]
+ public Input? Region { get; set; }
+
[Input("secret")]
private Input? _secret;
diff --git a/sdk/dotnet/IpamIp.cs b/sdk/dotnet/IpamIp.cs
index 04a8dc5a..e777ad05 100644
--- a/sdk/dotnet/IpamIp.cs
+++ b/sdk/dotnet/IpamIp.cs
@@ -136,6 +136,52 @@ namespace Pulumiverse.Scaleway
/// });
/// ```
///
+ /// ### Book an IP for a custom resource
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Scaleway = Pulumiverse.Scaleway;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var vpc01 = new Scaleway.Vpc("vpc01", new()
+ /// {
+ /// Name = "my vpc",
+ /// });
+ ///
+ /// var pn01 = new Scaleway.VpcPrivateNetwork("pn01", new()
+ /// {
+ /// VpcId = vpc01.Id,
+ /// Ipv4Subnet = new Scaleway.Inputs.VpcPrivateNetworkIpv4SubnetArgs
+ /// {
+ /// Subnet = "172.16.32.0/22",
+ /// },
+ /// });
+ ///
+ /// var ip01 = new Scaleway.IpamIp("ip01", new()
+ /// {
+ /// Address = "172.16.32.7",
+ /// Sources = new[]
+ /// {
+ /// new Scaleway.Inputs.IpamIpSourceArgs
+ /// {
+ /// PrivateNetworkId = pn01.Id,
+ /// },
+ /// },
+ /// CustomResources = new[]
+ /// {
+ /// new Scaleway.Inputs.IpamIpCustomResourceArgs
+ /// {
+ /// MacAddress = "bc:24:11:74:d0:6a",
+ /// },
+ /// },
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
/// ## Import
///
/// IPAM IPs can be imported using `{region}/{id}`, e.g.
@@ -161,6 +207,12 @@ public partial class IpamIp : global::Pulumi.CustomResource
[Output("createdAt")]
public Output CreatedAt { get; private set; } = null!;
+ ///
+ /// The custom resource in which to book the IP
+ ///
+ [Output("customResources")]
+ public Output> CustomResources { get; private set; } = null!;
+
///
/// Defines whether to request an IPv6 address instead of IPv4.
///
@@ -268,6 +320,18 @@ public sealed class IpamIpArgs : global::Pulumi.ResourceArgs
[Input("address")]
public Input? Address { get; set; }
+ [Input("customResources")]
+ private InputList? _customResources;
+
+ ///
+ /// The custom resource in which to book the IP
+ ///
+ public InputList CustomResources
+ {
+ get => _customResources ?? (_customResources = new InputList());
+ set => _customResources = value;
+ }
+
///
/// Defines whether to request an IPv6 address instead of IPv4.
///
@@ -330,6 +394,18 @@ public sealed class IpamIpState : global::Pulumi.ResourceArgs
[Input("createdAt")]
public Input? CreatedAt { get; set; }
+ [Input("customResources")]
+ private InputList? _customResources;
+
+ ///
+ /// The custom resource in which to book the IP
+ ///
+ public InputList CustomResources
+ {
+ get => _customResources ?? (_customResources = new InputList());
+ set => _customResources = value;
+ }
+
///
/// Defines whether to request an IPv6 address instead of IPv4.
///
diff --git a/sdk/dotnet/MongoDbInstance.cs b/sdk/dotnet/MongoDbInstance.cs
new file mode 100644
index 00000000..cb6e9ea1
--- /dev/null
+++ b/sdk/dotnet/MongoDbInstance.cs
@@ -0,0 +1,461 @@
+// *** 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
+{
+ ///
+ /// Creates and manages Scaleway MongoDB® instance.
+ /// For more information refer to [the API documentation](https://www.scaleway.com/en/docs/managed-databases/mongodb/).
+ ///
+ /// ## Example Usage
+ ///
+ /// ### Basic
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Scaleway = Pulumiverse.Scaleway;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var main = new Scaleway.MongoDbInstance("main", new()
+ /// {
+ /// Name = "test-mongodb-basic1",
+ /// Version = "7.0.12",
+ /// NodeType = "MGDB-PLAY2-NANO",
+ /// NodeNumber = 1,
+ /// UserName = "my_initial_user",
+ /// Password = "thiZ_is_v&ry_s3cret",
+ /// VolumeSizeInGb = 5,
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ /// ### Restore From Snapshot
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Scaleway = Pulumiverse.Scaleway;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var restoredInstance = new Scaleway.MongoDbInstance("restored_instance", new()
+ /// {
+ /// SnapshotId = pn.IdscalewayMongodbSnapshot.MainSnapshot.Id,
+ /// Name = "restored-mongodb-from-snapshot",
+ /// NodeType = "MGDB-PLAY2-NANO",
+ /// NodeNumber = 1,
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ /// ## Import
+ ///
+ /// MongoDB® instance can be imported using the `id`, e.g.
+ ///
+ /// bash
+ ///
+ /// ```sh
+ /// $ pulumi import scaleway:index/mongoDbInstance:MongoDbInstance main fr-par-1/11111111-1111-1111-1111-111111111111
+ /// ```
+ ///
+ [ScalewayResourceType("scaleway:index/mongoDbInstance:MongoDbInstance")]
+ public partial class MongoDbInstance : global::Pulumi.CustomResource
+ {
+ ///
+ /// The date and time of the creation of the MongoDB® instance.
+ ///
+ [Output("createdAt")]
+ public Output CreatedAt { get; private set; } = null!;
+
+ ///
+ /// Name of the MongoDB® instance.
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// Number of nodes in the instance
+ ///
+ [Output("nodeNumber")]
+ public Output NodeNumber { get; private set; } = null!;
+
+ ///
+ /// The type of MongoDB® intance to create.
+ ///
+ [Output("nodeType")]
+ public Output NodeType { get; private set; } = null!;
+
+ ///
+ /// Password of the user.
+ ///
+ [Output("password")]
+ public Output Password { get; private set; } = null!;
+
+ ///
+ /// The project_id you want to attach the resource to
+ ///
+ [Output("projectId")]
+ public Output ProjectId { get; private set; } = null!;
+
+ ///
+ /// Public network specs details.
+ ///
+ [Output("publicNetwork")]
+ public Output PublicNetwork { get; private set; } = null!;
+
+ ///
+ /// The region you want to attach the resource to
+ ///
+ [Output("region")]
+ public Output Region { get; private set; } = null!;
+
+ ///
+ /// Map of settings to define for the instance.
+ ///
+ [Output("settings")]
+ public Output?> Settings { get; private set; } = null!;
+
+ ///
+ /// Snapshot ID to restore the MongoDB® instance from.
+ ///
+ [Output("snapshotId")]
+ public Output SnapshotId { get; private set; } = null!;
+
+ ///
+ /// List of tags attached to the MongoDB® instance.
+ ///
+ [Output("tags")]
+ public Output> Tags { get; private set; } = null!;
+
+ ///
+ /// The date and time of the last update of the MongoDB® instance.
+ ///
+ [Output("updatedAt")]
+ public Output UpdatedAt { get; private set; } = null!;
+
+ ///
+ /// Name of the user created when the intance is created.
+ ///
+ [Output("userName")]
+ public Output UserName { get; private set; } = null!;
+
+ ///
+ /// MongoDB® version of the instance.
+ ///
+ [Output("version")]
+ public Output Version { get; private set; } = null!;
+
+ ///
+ /// Volume size in GB.
+ ///
+ [Output("volumeSizeInGb")]
+ public Output VolumeSizeInGb { get; private set; } = null!;
+
+ ///
+ /// Volume type of the instance.
+ ///
+ [Output("volumeType")]
+ public Output VolumeType { get; private set; } = null!;
+
+
+ ///
+ /// Create a MongoDbInstance resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public MongoDbInstance(string name, MongoDbInstanceArgs args, CustomResourceOptions? options = null)
+ : base("scaleway:index/mongoDbInstance:MongoDbInstance", name, args ?? new MongoDbInstanceArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private MongoDbInstance(string name, Input id, MongoDbInstanceState? state = null, CustomResourceOptions? options = null)
+ : base("scaleway:index/mongoDbInstance:MongoDbInstance", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ PluginDownloadURL = "github://api.github.com/pulumiverse",
+ AdditionalSecretOutputs =
+ {
+ "password",
+ },
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing MongoDbInstance resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static MongoDbInstance Get(string name, Input id, MongoDbInstanceState? state = null, CustomResourceOptions? options = null)
+ {
+ return new MongoDbInstance(name, id, state, options);
+ }
+ }
+
+ public sealed class MongoDbInstanceArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Name of the MongoDB® instance.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// Number of nodes in the instance
+ ///
+ [Input("nodeNumber", required: true)]
+ public Input NodeNumber { get; set; } = null!;
+
+ ///
+ /// The type of MongoDB® intance to create.
+ ///
+ [Input("nodeType", required: true)]
+ public Input NodeType { get; set; } = null!;
+
+ [Input("password")]
+ private Input? _password;
+
+ ///
+ /// Password of the user.
+ ///
+ public Input? Password
+ {
+ get => _password;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _password = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
+
+ ///
+ /// The project_id you want to attach the resource to
+ ///
+ [Input("projectId")]
+ public Input? ProjectId { get; set; }
+
+ ///
+ /// Public network specs details.
+ ///
+ [Input("publicNetwork")]
+ public Input? PublicNetwork { get; set; }
+
+ ///
+ /// The region you want to attach the resource to
+ ///
+ [Input("region")]
+ public Input? Region { get; set; }
+
+ [Input("settings")]
+ private InputMap? _settings;
+
+ ///
+ /// Map of settings to define for the instance.
+ ///
+ public InputMap Settings
+ {
+ get => _settings ?? (_settings = new InputMap());
+ set => _settings = value;
+ }
+
+ ///
+ /// Snapshot ID to restore the MongoDB® instance from.
+ ///
+ [Input("snapshotId")]
+ public Input? SnapshotId { get; set; }
+
+ [Input("tags")]
+ private InputList? _tags;
+
+ ///
+ /// List of tags attached to the MongoDB® instance.
+ ///
+ public InputList Tags
+ {
+ get => _tags ?? (_tags = new InputList());
+ set => _tags = value;
+ }
+
+ ///
+ /// Name of the user created when the intance is created.
+ ///
+ [Input("userName")]
+ public Input? UserName { get; set; }
+
+ ///
+ /// MongoDB® version of the instance.
+ ///
+ [Input("version")]
+ public Input? Version { get; set; }
+
+ ///
+ /// Volume size in GB.
+ ///
+ [Input("volumeSizeInGb")]
+ public Input? VolumeSizeInGb { get; set; }
+
+ ///
+ /// Volume type of the instance.
+ ///
+ [Input("volumeType")]
+ public Input? VolumeType { get; set; }
+
+ public MongoDbInstanceArgs()
+ {
+ }
+ public static new MongoDbInstanceArgs Empty => new MongoDbInstanceArgs();
+ }
+
+ public sealed class MongoDbInstanceState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The date and time of the creation of the MongoDB® instance.
+ ///
+ [Input("createdAt")]
+ public Input? CreatedAt { get; set; }
+
+ ///
+ /// Name of the MongoDB® instance.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// Number of nodes in the instance
+ ///
+ [Input("nodeNumber")]
+ public Input? NodeNumber { get; set; }
+
+ ///
+ /// The type of MongoDB® intance to create.
+ ///
+ [Input("nodeType")]
+ public Input? NodeType { get; set; }
+
+ [Input("password")]
+ private Input? _password;
+
+ ///
+ /// Password of the user.
+ ///
+ public Input? Password
+ {
+ get => _password;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _password = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
+
+ ///
+ /// The project_id you want to attach the resource to
+ ///
+ [Input("projectId")]
+ public Input? ProjectId { get; set; }
+
+ ///
+ /// Public network specs details.
+ ///
+ [Input("publicNetwork")]
+ public Input? PublicNetwork { get; set; }
+
+ ///
+ /// The region you want to attach the resource to
+ ///
+ [Input("region")]
+ public Input? Region { get; set; }
+
+ [Input("settings")]
+ private InputMap? _settings;
+
+ ///
+ /// Map of settings to define for the instance.
+ ///
+ public InputMap Settings
+ {
+ get => _settings ?? (_settings = new InputMap());
+ set => _settings = value;
+ }
+
+ ///
+ /// Snapshot ID to restore the MongoDB® instance from.
+ ///
+ [Input("snapshotId")]
+ public Input? SnapshotId { get; set; }
+
+ [Input("tags")]
+ private InputList? _tags;
+
+ ///
+ /// List of tags attached to the MongoDB® instance.
+ ///
+ public InputList Tags
+ {
+ get => _tags ?? (_tags = new InputList());
+ set => _tags = value;
+ }
+
+ ///
+ /// The date and time of the last update of the MongoDB® instance.
+ ///
+ [Input("updatedAt")]
+ public Input? UpdatedAt { get; set; }
+
+ ///
+ /// Name of the user created when the intance is created.
+ ///
+ [Input("userName")]
+ public Input? UserName { get; set; }
+
+ ///
+ /// MongoDB® version of the instance.
+ ///
+ [Input("version")]
+ public Input? Version { get; set; }
+
+ ///
+ /// Volume size in GB.
+ ///
+ [Input("volumeSizeInGb")]
+ public Input? VolumeSizeInGb { get; set; }
+
+ ///
+ /// Volume type of the instance.
+ ///
+ [Input("volumeType")]
+ public Input? VolumeType { get; set; }
+
+ public MongoDbInstanceState()
+ {
+ }
+ public static new MongoDbInstanceState Empty => new MongoDbInstanceState();
+ }
+}
diff --git a/sdk/dotnet/MongoDbSnapshot.cs b/sdk/dotnet/MongoDbSnapshot.cs
new file mode 100644
index 00000000..47412a6e
--- /dev/null
+++ b/sdk/dotnet/MongoDbSnapshot.cs
@@ -0,0 +1,260 @@
+// *** 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
+{
+ ///
+ /// Creates and manages Scaleway MongoDB® snapshots.
+ /// For more information refer to [the API documentation](https://www.scaleway.com/en/docs/managed-databases/mongodb/).
+ ///
+ /// ## Example Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Scaleway = Pulumiverse.Scaleway;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var main = new Scaleway.MongoDbSnapshot("main", new()
+ /// {
+ /// InstanceId = mainScalewayMongodbInstance.Id,
+ /// Name = "name-snapshot",
+ /// ExpiresAt = "2024-12-31T23:59:59Z",
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ /// ## Import
+ ///
+ /// MongoDB® snapshots can be imported using the `{region}/{id}`, e.g.
+ ///
+ /// bash
+ ///
+ /// ```sh
+ /// $ pulumi import scaleway:index/mongoDbSnapshot:MongoDbSnapshot main fr-par-1/11111111-1111-1111-1111-111111111111
+ /// ```
+ ///
+ [ScalewayResourceType("scaleway:index/mongoDbSnapshot:MongoDbSnapshot")]
+ public partial class MongoDbSnapshot : global::Pulumi.CustomResource
+ {
+ ///
+ /// The date and time when the MongoDB® snapshot was created.
+ ///
+ [Output("createdAt")]
+ public Output CreatedAt { get; private set; } = null!;
+
+ ///
+ /// The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).
+ ///
+ /// > **Important:** Once set, `expires_at` cannot be removed.
+ ///
+ [Output("expiresAt")]
+ public Output ExpiresAt { get; private set; } = null!;
+
+ ///
+ /// The ID of the MongoDB® instance from which the snapshot was created.
+ ///
+ [Output("instanceId")]
+ public Output InstanceId { get; private set; } = null!;
+
+ ///
+ /// The name of the MongoDB® instance from which the snapshot was created.
+ ///
+ [Output("instanceName")]
+ public Output InstanceName { get; private set; } = null!;
+
+ ///
+ /// The name of the MongoDB® snapshot.
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// The type of node associated with the MongoDB® snapshot.
+ ///
+ [Output("nodeType")]
+ public Output NodeType { get; private set; } = null!;
+
+ ///
+ /// `region`) The region in which the MongoDB® snapshot should be created.
+ ///
+ [Output("region")]
+ public Output Region { get; private set; } = null!;
+
+ ///
+ /// The size of the MongoDB® snapshot in bytes.
+ ///
+ [Output("size")]
+ public Output Size { get; private set; } = null!;
+
+ ///
+ /// The date and time of the last update of the MongoDB® snapshot.
+ ///
+ [Output("updatedAt")]
+ public Output UpdatedAt { get; private set; } = null!;
+
+ ///
+ /// The type of volume used for the MongoDB® snapshot.
+ ///
+ [Output("volumeType")]
+ public Output VolumeType { get; private set; } = null!;
+
+
+ ///
+ /// Create a MongoDbSnapshot resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public MongoDbSnapshot(string name, MongoDbSnapshotArgs args, CustomResourceOptions? options = null)
+ : base("scaleway:index/mongoDbSnapshot:MongoDbSnapshot", name, args ?? new MongoDbSnapshotArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private MongoDbSnapshot(string name, Input id, MongoDbSnapshotState? state = null, CustomResourceOptions? options = null)
+ : base("scaleway:index/mongoDbSnapshot:MongoDbSnapshot", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ PluginDownloadURL = "github://api.github.com/pulumiverse",
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing MongoDbSnapshot resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static MongoDbSnapshot Get(string name, Input id, MongoDbSnapshotState? state = null, CustomResourceOptions? options = null)
+ {
+ return new MongoDbSnapshot(name, id, state, options);
+ }
+ }
+
+ public sealed class MongoDbSnapshotArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).
+ ///
+ /// > **Important:** Once set, `expires_at` cannot be removed.
+ ///
+ [Input("expiresAt", required: true)]
+ public Input ExpiresAt { get; set; } = null!;
+
+ ///
+ /// The ID of the MongoDB® instance from which the snapshot was created.
+ ///
+ [Input("instanceId", required: true)]
+ public Input InstanceId { get; set; } = null!;
+
+ ///
+ /// The name of the MongoDB® snapshot.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// `region`) The region in which the MongoDB® snapshot should be created.
+ ///
+ [Input("region")]
+ public Input? Region { get; set; }
+
+ public MongoDbSnapshotArgs()
+ {
+ }
+ public static new MongoDbSnapshotArgs Empty => new MongoDbSnapshotArgs();
+ }
+
+ public sealed class MongoDbSnapshotState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The date and time when the MongoDB® snapshot was created.
+ ///
+ [Input("createdAt")]
+ public Input? CreatedAt { get; set; }
+
+ ///
+ /// The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).
+ ///
+ /// > **Important:** Once set, `expires_at` cannot be removed.
+ ///
+ [Input("expiresAt")]
+ public Input? ExpiresAt { get; set; }
+
+ ///
+ /// The ID of the MongoDB® instance from which the snapshot was created.
+ ///
+ [Input("instanceId")]
+ public Input? InstanceId { get; set; }
+
+ ///
+ /// The name of the MongoDB® instance from which the snapshot was created.
+ ///
+ [Input("instanceName")]
+ public Input? InstanceName { get; set; }
+
+ ///
+ /// The name of the MongoDB® snapshot.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The type of node associated with the MongoDB® snapshot.
+ ///
+ [Input("nodeType")]
+ public Input? NodeType { get; set; }
+
+ ///
+ /// `region`) The region in which the MongoDB® snapshot should be created.
+ ///
+ [Input("region")]
+ public Input? Region { get; set; }
+
+ ///
+ /// The size of the MongoDB® snapshot in bytes.
+ ///
+ [Input("size")]
+ public Input? Size { get; set; }
+
+ ///
+ /// The date and time of the last update of the MongoDB® snapshot.
+ ///
+ [Input("updatedAt")]
+ public Input? UpdatedAt { get; set; }
+
+ ///
+ /// The type of volume used for the MongoDB® snapshot.
+ ///
+ [Input("volumeType")]
+ public Input? VolumeType { get; set; }
+
+ public MongoDbSnapshotState()
+ {
+ }
+ public static new MongoDbSnapshotState Empty => new MongoDbSnapshotState();
+ }
+}
diff --git a/sdk/dotnet/ObjectBucket.cs b/sdk/dotnet/ObjectBucket.cs
index cfc456d6..a48e2ccb 100644
--- a/sdk/dotnet/ObjectBucket.cs
+++ b/sdk/dotnet/ObjectBucket.cs
@@ -190,7 +190,7 @@ public partial class ObjectBucket : global::Pulumi.CustomResource
public Output Endpoint { get; private set; } = null!;
///
- /// Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable
+ /// Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.
///
[Output("forceDestroy")]
public Output ForceDestroy { get; private set; } = null!;
@@ -304,7 +304,7 @@ public InputList CorsRules
}
///
- /// Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable
+ /// Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.
///
[Input("forceDestroy")]
public Input? ForceDestroy { get; set; }
@@ -403,7 +403,7 @@ public InputList CorsRules
public Input? Endpoint { get; set; }
///
- /// Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable
+ /// Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.
///
[Input("forceDestroy")]
public Input? ForceDestroy { get; set; }
diff --git a/sdk/dotnet/Outputs/BaremetalServerPrivateNetwork.cs b/sdk/dotnet/Outputs/BaremetalServerPrivateNetwork.cs
index 20708ed0..d9ddccd3 100644
--- a/sdk/dotnet/Outputs/BaremetalServerPrivateNetwork.cs
+++ b/sdk/dotnet/Outputs/BaremetalServerPrivateNetwork.cs
@@ -23,6 +23,10 @@ public sealed class BaremetalServerPrivateNetwork
///
public readonly string Id;
///
+ /// List of IPAM IP IDs to assign to the server in the requested private network.
+ ///
+ public readonly ImmutableArray IpamIpIds;
+ ///
/// The private network status.
///
public readonly string? Status;
@@ -41,6 +45,8 @@ private BaremetalServerPrivateNetwork(
string id,
+ ImmutableArray ipamIpIds,
+
string? status,
string? updatedAt,
@@ -49,6 +55,7 @@ private BaremetalServerPrivateNetwork(
{
CreatedAt = createdAt;
Id = id;
+ IpamIpIds = ipamIpIds;
Status = status;
UpdatedAt = updatedAt;
Vlan = vlan;
diff --git a/sdk/dotnet/Outputs/GetBaremetalServerPrivateNetworkResult.cs b/sdk/dotnet/Outputs/GetBaremetalServerPrivateNetworkResult.cs
index befaabd8..6e75d2b1 100644
--- a/sdk/dotnet/Outputs/GetBaremetalServerPrivateNetworkResult.cs
+++ b/sdk/dotnet/Outputs/GetBaremetalServerPrivateNetworkResult.cs
@@ -23,6 +23,10 @@ public sealed class GetBaremetalServerPrivateNetworkResult
///
public readonly string Id;
///
+ /// List of IPAM IP IDs to attach to the server
+ ///
+ public readonly ImmutableArray IpamIpIds;
+ ///
/// The private network status
///
public readonly string Status;
@@ -41,6 +45,8 @@ private GetBaremetalServerPrivateNetworkResult(
string id,
+ ImmutableArray ipamIpIds,
+
string status,
string updatedAt,
@@ -49,6 +55,7 @@ private GetBaremetalServerPrivateNetworkResult(
{
CreatedAt = createdAt;
Id = id;
+ IpamIpIds = ipamIpIds;
Status = status;
UpdatedAt = updatedAt;
Vlan = vlan;
diff --git a/sdk/dotnet/Outputs/GetInstanceServersServerResult.cs b/sdk/dotnet/Outputs/GetInstanceServersServerResult.cs
index 2da70354..096ef44f 100644
--- a/sdk/dotnet/Outputs/GetInstanceServersServerResult.cs
+++ b/sdk/dotnet/Outputs/GetInstanceServersServerResult.cs
@@ -18,9 +18,6 @@ public sealed class GetInstanceServersServerResult
/// The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
///
public readonly string BootType;
- ///
- /// The ID of the bootscript.
- ///
public readonly string BootscriptId;
///
/// If true a dynamic IP will be attached to the server.
diff --git a/sdk/dotnet/Outputs/GetMongoDbInstancePublicNetworkResult.cs b/sdk/dotnet/Outputs/GetMongoDbInstancePublicNetworkResult.cs
new file mode 100644
index 00000000..3129b9f4
--- /dev/null
+++ b/sdk/dotnet/Outputs/GetMongoDbInstancePublicNetworkResult.cs
@@ -0,0 +1,43 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Scaleway.Outputs
+{
+
+ [OutputType]
+ public sealed class GetMongoDbInstancePublicNetworkResult
+ {
+ ///
+ /// The DNS record of your endpoint
+ ///
+ public readonly string DnsRecord;
+ ///
+ /// The ID of the MongoDB® Instance.
+ ///
+ public readonly string Id;
+ ///
+ /// TCP port of the endpoint
+ ///
+ public readonly int Port;
+
+ [OutputConstructor]
+ private GetMongoDbInstancePublicNetworkResult(
+ string dnsRecord,
+
+ string id,
+
+ int port)
+ {
+ DnsRecord = dnsRecord;
+ Id = id;
+ Port = port;
+ }
+ }
+}
diff --git a/sdk/dotnet/Outputs/InferenceDeploymentPrivateEndpoint.cs b/sdk/dotnet/Outputs/InferenceDeploymentPrivateEndpoint.cs
new file mode 100644
index 00000000..be6e56d0
--- /dev/null
+++ b/sdk/dotnet/Outputs/InferenceDeploymentPrivateEndpoint.cs
@@ -0,0 +1,50 @@
+// *** 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 InferenceDeploymentPrivateEndpoint
+ {
+ ///
+ /// Disable the authentication on the endpoint.
+ ///
+ public readonly bool? DisableAuth;
+ ///
+ /// (Optional) The id of the public endpoint.
+ ///
+ public readonly string? Id;
+ ///
+ /// The ID of the private network to use.
+ ///
+ public readonly string? PrivateNetworkId;
+ ///
+ /// (Optional) The URL of the endpoint.
+ ///
+ public readonly string? Url;
+
+ [OutputConstructor]
+ private InferenceDeploymentPrivateEndpoint(
+ bool? disableAuth,
+
+ string? id,
+
+ string? privateNetworkId,
+
+ string? url)
+ {
+ DisableAuth = disableAuth;
+ Id = id;
+ PrivateNetworkId = privateNetworkId;
+ Url = url;
+ }
+ }
+}
diff --git a/sdk/dotnet/Outputs/InferenceDeploymentPublicEndpoint.cs b/sdk/dotnet/Outputs/InferenceDeploymentPublicEndpoint.cs
new file mode 100644
index 00000000..1bfede59
--- /dev/null
+++ b/sdk/dotnet/Outputs/InferenceDeploymentPublicEndpoint.cs
@@ -0,0 +1,50 @@
+// *** 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 InferenceDeploymentPublicEndpoint
+ {
+ ///
+ /// Disable the authentication on the endpoint.
+ ///
+ public readonly bool? DisableAuth;
+ ///
+ /// (Optional) The id of the public endpoint.
+ ///
+ public readonly string? Id;
+ ///
+ /// Enable or disable public endpoint.
+ ///
+ public readonly bool? IsEnabled;
+ ///
+ /// (Optional) The URL of the endpoint.
+ ///
+ public readonly string? Url;
+
+ [OutputConstructor]
+ private InferenceDeploymentPublicEndpoint(
+ bool? disableAuth,
+
+ string? id,
+
+ bool? isEnabled,
+
+ string? url)
+ {
+ DisableAuth = disableAuth;
+ Id = id;
+ IsEnabled = isEnabled;
+ Url = url;
+ }
+ }
+}
diff --git a/sdk/dotnet/Outputs/IpamIpCustomResource.cs b/sdk/dotnet/Outputs/IpamIpCustomResource.cs
new file mode 100644
index 00000000..50c7a3fe
--- /dev/null
+++ b/sdk/dotnet/Outputs/IpamIpCustomResource.cs
@@ -0,0 +1,36 @@
+// *** 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 IpamIpCustomResource
+ {
+ ///
+ /// The MAC address of the resource the IP is attached to.
+ ///
+ public readonly string MacAddress;
+ ///
+ /// The name of the resource the IP is attached to.
+ ///
+ public readonly string? Name;
+
+ [OutputConstructor]
+ private IpamIpCustomResource(
+ string macAddress,
+
+ string? name)
+ {
+ MacAddress = macAddress;
+ Name = name;
+ }
+ }
+}
diff --git a/sdk/dotnet/Outputs/MongoDbInstancePublicNetwork.cs b/sdk/dotnet/Outputs/MongoDbInstancePublicNetwork.cs
new file mode 100644
index 00000000..bec2a33c
--- /dev/null
+++ b/sdk/dotnet/Outputs/MongoDbInstancePublicNetwork.cs
@@ -0,0 +1,43 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Scaleway.Outputs
+{
+
+ [OutputType]
+ public sealed class MongoDbInstancePublicNetwork
+ {
+ ///
+ /// The DNS record of your endpoint
+ ///
+ public readonly string? DnsRecord;
+ ///
+ /// The ID of the MongoDB® instance.
+ ///
+ public readonly string? Id;
+ ///
+ /// TCP port of the endpoint
+ ///
+ public readonly int? Port;
+
+ [OutputConstructor]
+ private MongoDbInstancePublicNetwork(
+ string? dnsRecord,
+
+ string? id,
+
+ int? port)
+ {
+ DnsRecord = dnsRecord;
+ Id = id;
+ Port = port;
+ }
+ }
+}
diff --git a/sdk/go.mod b/sdk/go.mod
index c978fb77..c0987d7e 100644
--- a/sdk/go.mod
+++ b/sdk/go.mod
@@ -6,7 +6,7 @@ toolchain go1.22.4
require (
github.com/blang/semver v3.5.1+incompatible
- github.com/pulumi/pulumi/sdk/v3 v3.136.1
+ github.com/pulumi/pulumi/sdk/v3 v3.137.0
)
require (
diff --git a/sdk/go.sum b/sdk/go.sum
index ecce3b21..bc694dec 100644
--- a/sdk/go.sum
+++ b/sdk/go.sum
@@ -150,8 +150,8 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE=
github.com/pulumi/esc v0.9.1 h1:HH5eEv8sgyxSpY5a8yePyqFXzA8cvBvapfH8457+mIs=
github.com/pulumi/esc v0.9.1/go.mod h1:oEJ6bOsjYlQUpjf70GiX+CXn3VBmpwFDxUTlmtUN84c=
-github.com/pulumi/pulumi/sdk/v3 v3.136.1 h1:VJWTgdBrLvvzIkMbGq/epNEfT65P9gTvw14UF/I7hTI=
-github.com/pulumi/pulumi/sdk/v3 v3.136.1/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI=
+github.com/pulumi/pulumi/sdk/v3 v3.137.0 h1:bxhYpOY7Z4xt+VmezEpHuhjpOekkaMqOjzxFg/1OhCw=
+github.com/pulumi/pulumi/sdk/v3 v3.137.0/go.mod h1:PvKsX88co8XuwuPdzolMvew5lZV+4JmZfkeSjj7A6dI=
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis=
diff --git a/sdk/go/scaleway/baremetalServer.go b/sdk/go/scaleway/baremetalServer.go
index e9c70037..2874a728 100644
--- a/sdk/go/scaleway/baremetalServer.go
+++ b/sdk/go/scaleway/baremetalServer.go
@@ -30,7 +30,7 @@ import (
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
-// main, err := scaleway.LookupAccountSshKey(ctx, &scaleway.LookupAccountSshKeyArgs{
+// _, err := scaleway.LookupIamSshKey(ctx, &scaleway.LookupIamSshKeyArgs{
// Name: pulumi.StringRef("main"),
// }, nil)
// if err != nil {
@@ -41,7 +41,7 @@ import (
// Offer: pulumi.String("GP-BM1-S"),
// Os: pulumi.String("d17d6872-0412-45d9-a198-af82c34d3c5c"),
// SshKeyIds: pulumi.StringArray{
-// pulumi.String(main.Id),
+// mainScalewayAccountSshKey.Id,
// },
// })
// if err != nil {
@@ -67,7 +67,7 @@ import (
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
-// main, err := scaleway.LookupAccountSshKey(ctx, &scaleway.LookupAccountSshKeyArgs{
+// _, err := scaleway.LookupIamSshKey(ctx, &scaleway.LookupIamSshKeyArgs{
// Name: pulumi.StringRef("main"),
// }, nil)
// if err != nil {
@@ -107,7 +107,7 @@ import (
// Offer: pulumi.String(myOffer.OfferId),
// Os: pulumi.String(myOs.OsId),
// SshKeyIds: pulumi.StringArray{
-// pulumi.String(main.Id),
+// mainScalewayAccountSshKey.Id,
// },
// Options: scaleway.BaremetalServerOptionArray{
// &scaleway.BaremetalServerOptionArgs{
@@ -141,7 +141,7 @@ import (
//
// func main() {
// pulumi.Run(func(ctx *pulumi.Context) error {
-// main, err := scaleway.LookupAccountSshKey(ctx, &scaleway.LookupAccountSshKeyArgs{
+// _, err := scaleway.LookupIamSshKey(ctx, &scaleway.LookupIamSshKeyArgs{
// Name: pulumi.StringRef("main"),
// }, nil)
// if err != nil {
@@ -181,7 +181,7 @@ import (
// Offer: pulumi.String(myOffer.OfferId),
// Os: pulumi.String(myOs.OsId),
// SshKeyIds: pulumi.StringArray{
-// pulumi.String(main.Id),
+// mainScalewayAccountSshKey.Id,
// },
// Options: scaleway.BaremetalServerOptionArray{
// &scaleway.BaremetalServerOptionArgs{
@@ -203,6 +203,105 @@ import (
//
// ```
//
+// ### With IPAM IP IDs
+//
+// ```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 {
+// vpc01, err := scaleway.NewVpc(ctx, "vpc01", &scaleway.VpcArgs{
+// Name: pulumi.String("vpc_baremetal"),
+// })
+// if err != nil {
+// return err
+// }
+// pn01, err := scaleway.NewVpcPrivateNetwork(ctx, "pn01", &scaleway.VpcPrivateNetworkArgs{
+// Name: pulumi.String("private_network_baremetal"),
+// Ipv4Subnet: &scaleway.VpcPrivateNetworkIpv4SubnetArgs{
+// Subnet: pulumi.String("172.16.64.0/22"),
+// },
+// VpcId: vpc01.ID(),
+// })
+// if err != nil {
+// return err
+// }
+// ip01, err := scaleway.NewIpamIp(ctx, "ip01", &scaleway.IpamIpArgs{
+// Address: pulumi.String("172.16.64.7"),
+// Sources: scaleway.IpamIpSourceArray{
+// &scaleway.IpamIpSourceArgs{
+// PrivateNetworkId: pn01.ID(),
+// },
+// },
+// })
+// if err != nil {
+// return err
+// }
+// _, err = scaleway.LookupIamSshKey(ctx, &scaleway.LookupIamSshKeyArgs{
+// Name: pulumi.StringRef("main"),
+// }, nil)
+// if err != nil {
+// return err
+// }
+// myOs, err := scaleway.GetBaremetalOs(ctx, &scaleway.GetBaremetalOsArgs{
+// Zone: pulumi.StringRef("fr-par-1"),
+// Name: pulumi.StringRef("Ubuntu"),
+// Version: pulumi.StringRef("22.04 LTS (Jammy Jellyfish)"),
+// }, nil)
+// if err != nil {
+// return err
+// }
+// myOffer, err := scaleway.GetBaremetalOffer(ctx, &scaleway.GetBaremetalOfferArgs{
+// Zone: pulumi.StringRef("fr-par-1"),
+// Name: pulumi.StringRef("EM-A115X-SSD"),
+// }, nil)
+// if err != nil {
+// return err
+// }
+// privateNetwork, err := scaleway.GetBaremetalOption(ctx, &scaleway.GetBaremetalOptionArgs{
+// Zone: pulumi.StringRef("fr-par-1"),
+// Name: pulumi.StringRef("Private Network"),
+// }, nil)
+// if err != nil {
+// return err
+// }
+// _, err = scaleway.NewBaremetalServer(ctx, "base", &scaleway.BaremetalServerArgs{
+// Zone: pulumi.String("fr-par-2"),
+// Offer: pulumi.String(myOffer.OfferId),
+// Os: pulumi.String(myOs.OsId),
+// SshKeyIds: pulumi.StringArray{
+// myKeyScalewayAccountSshKey.Id,
+// },
+// Options: scaleway.BaremetalServerOptionArray{
+// &scaleway.BaremetalServerOptionArgs{
+// Id: pulumi.String(privateNetwork.OptionId),
+// },
+// },
+// PrivateNetworks: scaleway.BaremetalServerPrivateNetworkArray{
+// &scaleway.BaremetalServerPrivateNetworkArgs{
+// Id: pn01.ID(),
+// IpamIpIds: pulumi.StringArray{
+// ip01.ID(),
+// },
+// },
+// },
+// })
+// if err != nil {
+// return err
+// }
+// return nil
+// })
+// }
+//
+// ```
+//
// ### Without install config
//
// ```go
diff --git a/sdk/go/scaleway/getMongoDbInstance.go b/sdk/go/scaleway/getMongoDbInstance.go
new file mode 100644
index 00000000..ce94ac36
--- /dev/null
+++ b/sdk/go/scaleway/getMongoDbInstance.go
@@ -0,0 +1,211 @@
+// 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 a MongoDB® Instance.
+//
+// For further information refer to the Managed Databases for MongoDB® [API documentation](https://developers.scaleway.com/en/products/mongodb/api/)
+func LookupMongoDbInstance(ctx *pulumi.Context, args *LookupMongoDbInstanceArgs, opts ...pulumi.InvokeOption) (*LookupMongoDbInstanceResult, error) {
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupMongoDbInstanceResult
+ err := ctx.Invoke("scaleway:index/getMongoDbInstance:getMongoDbInstance", args, &rv, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &rv, nil
+}
+
+// A collection of arguments for invoking getMongoDbInstance.
+type LookupMongoDbInstanceArgs struct {
+ // The MongoDB® instance ID.
+ //
+ // > **Note** You must specify at least one: `name` or `instanceId`.
+ InstanceId *string `pulumi:"instanceId"`
+ // The name of the MongoDB® instance.
+ Name *string `pulumi:"name"`
+ // The ID of the project the MongoDB® instance is in. Can be used to filter instances when using `name`.
+ ProjectId *string `pulumi:"projectId"`
+ // `region`) The region in which the MongoDB® Instance exists.
+ Region *string `pulumi:"region"`
+}
+
+// A collection of values returned by getMongoDbInstance.
+type LookupMongoDbInstanceResult struct {
+ // The date and time the MongoDB® instance was created.
+ CreatedAt string `pulumi:"createdAt"`
+ // The provider-assigned unique ID for this managed resource.
+ Id string `pulumi:"id"`
+ InstanceId *string `pulumi:"instanceId"`
+ // The name of the MongoDB® instance.
+ Name *string `pulumi:"name"`
+ // The number of nodes in the MongoDB® cluster.
+ NodeNumber int `pulumi:"nodeNumber"`
+ // The type of MongoDB® node.
+ NodeType string `pulumi:"nodeType"`
+ Password string `pulumi:"password"`
+ // The ID of the project the instance belongs to.
+ ProjectId *string `pulumi:"projectId"`
+ // The details of the public network configuration, if applicable.
+ PublicNetworks []GetMongoDbInstancePublicNetwork `pulumi:"publicNetworks"`
+ Region *string `pulumi:"region"`
+ Settings map[string]string `pulumi:"settings"`
+ SnapshotId string `pulumi:"snapshotId"`
+ // A list of tags attached to the MongoDB® instance.
+ Tags []string `pulumi:"tags"`
+ UpdatedAt string `pulumi:"updatedAt"`
+ UserName string `pulumi:"userName"`
+ // The version of MongoDB® running on the instance.
+ Version string `pulumi:"version"`
+ // The size of the attached volume, in GB.
+ VolumeSizeInGb int `pulumi:"volumeSizeInGb"`
+ // The type of volume attached to the MongoDB® instance.
+ VolumeType string `pulumi:"volumeType"`
+}
+
+func LookupMongoDbInstanceOutput(ctx *pulumi.Context, args LookupMongoDbInstanceOutputArgs, opts ...pulumi.InvokeOption) LookupMongoDbInstanceResultOutput {
+ return pulumi.ToOutputWithContext(context.Background(), args).
+ ApplyT(func(v interface{}) (LookupMongoDbInstanceResultOutput, error) {
+ args := v.(LookupMongoDbInstanceArgs)
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupMongoDbInstanceResult
+ secret, err := ctx.InvokePackageRaw("scaleway:index/getMongoDbInstance:getMongoDbInstance", args, &rv, "", opts...)
+ if err != nil {
+ return LookupMongoDbInstanceResultOutput{}, err
+ }
+
+ output := pulumi.ToOutput(rv).(LookupMongoDbInstanceResultOutput)
+ if secret {
+ return pulumi.ToSecret(output).(LookupMongoDbInstanceResultOutput), nil
+ }
+ return output, nil
+ }).(LookupMongoDbInstanceResultOutput)
+}
+
+// A collection of arguments for invoking getMongoDbInstance.
+type LookupMongoDbInstanceOutputArgs struct {
+ // The MongoDB® instance ID.
+ //
+ // > **Note** You must specify at least one: `name` or `instanceId`.
+ InstanceId pulumi.StringPtrInput `pulumi:"instanceId"`
+ // The name of the MongoDB® instance.
+ Name pulumi.StringPtrInput `pulumi:"name"`
+ // The ID of the project the MongoDB® instance is in. Can be used to filter instances when using `name`.
+ ProjectId pulumi.StringPtrInput `pulumi:"projectId"`
+ // `region`) The region in which the MongoDB® Instance exists.
+ Region pulumi.StringPtrInput `pulumi:"region"`
+}
+
+func (LookupMongoDbInstanceOutputArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupMongoDbInstanceArgs)(nil)).Elem()
+}
+
+// A collection of values returned by getMongoDbInstance.
+type LookupMongoDbInstanceResultOutput struct{ *pulumi.OutputState }
+
+func (LookupMongoDbInstanceResultOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupMongoDbInstanceResult)(nil)).Elem()
+}
+
+func (o LookupMongoDbInstanceResultOutput) ToLookupMongoDbInstanceResultOutput() LookupMongoDbInstanceResultOutput {
+ return o
+}
+
+func (o LookupMongoDbInstanceResultOutput) ToLookupMongoDbInstanceResultOutputWithContext(ctx context.Context) LookupMongoDbInstanceResultOutput {
+ return o
+}
+
+// The date and time the MongoDB® instance was created.
+func (o LookupMongoDbInstanceResultOutput) CreatedAt() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) string { return v.CreatedAt }).(pulumi.StringOutput)
+}
+
+// The provider-assigned unique ID for this managed resource.
+func (o LookupMongoDbInstanceResultOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) string { return v.Id }).(pulumi.StringOutput)
+}
+
+func (o LookupMongoDbInstanceResultOutput) InstanceId() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) *string { return v.InstanceId }).(pulumi.StringPtrOutput)
+}
+
+// The name of the MongoDB® instance.
+func (o LookupMongoDbInstanceResultOutput) Name() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) *string { return v.Name }).(pulumi.StringPtrOutput)
+}
+
+// The number of nodes in the MongoDB® cluster.
+func (o LookupMongoDbInstanceResultOutput) NodeNumber() pulumi.IntOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) int { return v.NodeNumber }).(pulumi.IntOutput)
+}
+
+// The type of MongoDB® node.
+func (o LookupMongoDbInstanceResultOutput) NodeType() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) string { return v.NodeType }).(pulumi.StringOutput)
+}
+
+func (o LookupMongoDbInstanceResultOutput) Password() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) string { return v.Password }).(pulumi.StringOutput)
+}
+
+// The ID of the project the instance belongs to.
+func (o LookupMongoDbInstanceResultOutput) ProjectId() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) *string { return v.ProjectId }).(pulumi.StringPtrOutput)
+}
+
+// The details of the public network configuration, if applicable.
+func (o LookupMongoDbInstanceResultOutput) PublicNetworks() GetMongoDbInstancePublicNetworkArrayOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) []GetMongoDbInstancePublicNetwork { return v.PublicNetworks }).(GetMongoDbInstancePublicNetworkArrayOutput)
+}
+
+func (o LookupMongoDbInstanceResultOutput) Region() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) *string { return v.Region }).(pulumi.StringPtrOutput)
+}
+
+func (o LookupMongoDbInstanceResultOutput) Settings() pulumi.StringMapOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) map[string]string { return v.Settings }).(pulumi.StringMapOutput)
+}
+
+func (o LookupMongoDbInstanceResultOutput) SnapshotId() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) string { return v.SnapshotId }).(pulumi.StringOutput)
+}
+
+// A list of tags attached to the MongoDB® instance.
+func (o LookupMongoDbInstanceResultOutput) Tags() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) []string { return v.Tags }).(pulumi.StringArrayOutput)
+}
+
+func (o LookupMongoDbInstanceResultOutput) UpdatedAt() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) string { return v.UpdatedAt }).(pulumi.StringOutput)
+}
+
+func (o LookupMongoDbInstanceResultOutput) UserName() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) string { return v.UserName }).(pulumi.StringOutput)
+}
+
+// The version of MongoDB® running on the instance.
+func (o LookupMongoDbInstanceResultOutput) Version() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) string { return v.Version }).(pulumi.StringOutput)
+}
+
+// The size of the attached volume, in GB.
+func (o LookupMongoDbInstanceResultOutput) VolumeSizeInGb() pulumi.IntOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) int { return v.VolumeSizeInGb }).(pulumi.IntOutput)
+}
+
+// The type of volume attached to the MongoDB® instance.
+func (o LookupMongoDbInstanceResultOutput) VolumeType() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupMongoDbInstanceResult) string { return v.VolumeType }).(pulumi.StringOutput)
+}
+
+func init() {
+ pulumi.RegisterOutputType(LookupMongoDbInstanceResultOutput{})
+}
diff --git a/sdk/go/scaleway/inferenceDeployment.go b/sdk/go/scaleway/inferenceDeployment.go
new file mode 100644
index 00000000..88535055
--- /dev/null
+++ b/sdk/go/scaleway/inferenceDeployment.go
@@ -0,0 +1,472 @@
+// 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"
+
+ "errors"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/internal"
+)
+
+// Creates and manages Scaleway Managed Inference deployments.
+// For more information, see [the documentation](https://www.scaleway.com/en/developers/api/inference/).
+//
+// ## Example Usage
+//
+// ### Basic
+//
+// ```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.NewInferenceDeployment(ctx, "deployment", &scaleway.InferenceDeploymentArgs{
+// Name: pulumi.String("tf-inference-deployment"),
+// NodeType: pulumi.String("L4"),
+// ModelName: pulumi.String("meta/llama-3.1-8b-instruct:fp8"),
+// PublicEndpoint: &scaleway.InferenceDeploymentPublicEndpointArgs{
+// IsEnabled: pulumi.Bool(true),
+// },
+// AcceptEula: pulumi.Bool(true),
+// })
+// if err != nil {
+// return err
+// }
+// return nil
+// })
+// }
+//
+// ```
+//
+// ## Import
+//
+// Functions can be imported using, `{region}/{id}`, as shown below:
+//
+// bash
+//
+// ```sh
+// $ pulumi import scaleway:index/inferenceDeployment:InferenceDeployment deployment fr-par/11111111-1111-1111-1111-111111111111
+// ```
+type InferenceDeployment struct {
+ pulumi.CustomResourceState
+
+ // Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
+ AcceptEula pulumi.BoolPtrOutput `pulumi:"acceptEula"`
+ // The date and time of the creation of the deployment.
+ CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
+ // The maximum size of the pool.
+ MaxSize pulumi.IntOutput `pulumi:"maxSize"`
+ // The minimum size of the pool.
+ MinSize pulumi.IntOutput `pulumi:"minSize"`
+ // The model id used for the deployment.
+ ModelId pulumi.StringOutput `pulumi:"modelId"`
+ // The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
+ ModelName pulumi.StringOutput `pulumi:"modelName"`
+ // The deployment name.
+ Name pulumi.StringOutput `pulumi:"name"`
+ // The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
+ NodeType pulumi.StringOutput `pulumi:"nodeType"`
+ // Configuration of the deployment's private endpoint.
+ PrivateEndpoint InferenceDeploymentPrivateEndpointPtrOutput `pulumi:"privateEndpoint"`
+ // `projectId`) The ID of the project the deployment is associated with.
+ ProjectId pulumi.StringOutput `pulumi:"projectId"`
+ // Configuration of the deployment's public endpoint.
+ PublicEndpoint InferenceDeploymentPublicEndpointPtrOutput `pulumi:"publicEndpoint"`
+ // `region`) The region in which the deployment is created.
+ Region pulumi.StringOutput `pulumi:"region"`
+ // The size of the pool.
+ Size pulumi.IntOutput `pulumi:"size"`
+ // The status of the deployment.
+ Status pulumi.StringOutput `pulumi:"status"`
+ // The tags associated with the deployment.
+ Tags pulumi.StringArrayOutput `pulumi:"tags"`
+ // The date and time of the last update of the deployment.
+ UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"`
+}
+
+// NewInferenceDeployment registers a new resource with the given unique name, arguments, and options.
+func NewInferenceDeployment(ctx *pulumi.Context,
+ name string, args *InferenceDeploymentArgs, opts ...pulumi.ResourceOption) (*InferenceDeployment, error) {
+ if args == nil {
+ return nil, errors.New("missing one or more required arguments")
+ }
+
+ if args.ModelName == nil {
+ return nil, errors.New("invalid value for required argument 'ModelName'")
+ }
+ if args.NodeType == nil {
+ return nil, errors.New("invalid value for required argument 'NodeType'")
+ }
+ opts = internal.PkgResourceDefaultOpts(opts)
+ var resource InferenceDeployment
+ err := ctx.RegisterResource("scaleway:index/inferenceDeployment:InferenceDeployment", name, args, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// GetInferenceDeployment gets an existing InferenceDeployment resource's state with the given name, ID, and optional
+// state properties that are used to uniquely qualify the lookup (nil if not required).
+func GetInferenceDeployment(ctx *pulumi.Context,
+ name string, id pulumi.IDInput, state *InferenceDeploymentState, opts ...pulumi.ResourceOption) (*InferenceDeployment, error) {
+ var resource InferenceDeployment
+ err := ctx.ReadResource("scaleway:index/inferenceDeployment:InferenceDeployment", name, id, state, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// Input properties used for looking up and filtering InferenceDeployment resources.
+type inferenceDeploymentState struct {
+ // Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
+ AcceptEula *bool `pulumi:"acceptEula"`
+ // The date and time of the creation of the deployment.
+ CreatedAt *string `pulumi:"createdAt"`
+ // The maximum size of the pool.
+ MaxSize *int `pulumi:"maxSize"`
+ // The minimum size of the pool.
+ MinSize *int `pulumi:"minSize"`
+ // The model id used for the deployment.
+ ModelId *string `pulumi:"modelId"`
+ // The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
+ ModelName *string `pulumi:"modelName"`
+ // The deployment name.
+ Name *string `pulumi:"name"`
+ // The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
+ NodeType *string `pulumi:"nodeType"`
+ // Configuration of the deployment's private endpoint.
+ PrivateEndpoint *InferenceDeploymentPrivateEndpoint `pulumi:"privateEndpoint"`
+ // `projectId`) The ID of the project the deployment is associated with.
+ ProjectId *string `pulumi:"projectId"`
+ // Configuration of the deployment's public endpoint.
+ PublicEndpoint *InferenceDeploymentPublicEndpoint `pulumi:"publicEndpoint"`
+ // `region`) The region in which the deployment is created.
+ Region *string `pulumi:"region"`
+ // The size of the pool.
+ Size *int `pulumi:"size"`
+ // The status of the deployment.
+ Status *string `pulumi:"status"`
+ // The tags associated with the deployment.
+ Tags []string `pulumi:"tags"`
+ // The date and time of the last update of the deployment.
+ UpdatedAt *string `pulumi:"updatedAt"`
+}
+
+type InferenceDeploymentState struct {
+ // Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
+ AcceptEula pulumi.BoolPtrInput
+ // The date and time of the creation of the deployment.
+ CreatedAt pulumi.StringPtrInput
+ // The maximum size of the pool.
+ MaxSize pulumi.IntPtrInput
+ // The minimum size of the pool.
+ MinSize pulumi.IntPtrInput
+ // The model id used for the deployment.
+ ModelId pulumi.StringPtrInput
+ // The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
+ ModelName pulumi.StringPtrInput
+ // The deployment name.
+ Name pulumi.StringPtrInput
+ // The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
+ NodeType pulumi.StringPtrInput
+ // Configuration of the deployment's private endpoint.
+ PrivateEndpoint InferenceDeploymentPrivateEndpointPtrInput
+ // `projectId`) The ID of the project the deployment is associated with.
+ ProjectId pulumi.StringPtrInput
+ // Configuration of the deployment's public endpoint.
+ PublicEndpoint InferenceDeploymentPublicEndpointPtrInput
+ // `region`) The region in which the deployment is created.
+ Region pulumi.StringPtrInput
+ // The size of the pool.
+ Size pulumi.IntPtrInput
+ // The status of the deployment.
+ Status pulumi.StringPtrInput
+ // The tags associated with the deployment.
+ Tags pulumi.StringArrayInput
+ // The date and time of the last update of the deployment.
+ UpdatedAt pulumi.StringPtrInput
+}
+
+func (InferenceDeploymentState) ElementType() reflect.Type {
+ return reflect.TypeOf((*inferenceDeploymentState)(nil)).Elem()
+}
+
+type inferenceDeploymentArgs struct {
+ // Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
+ AcceptEula *bool `pulumi:"acceptEula"`
+ // The maximum size of the pool.
+ MaxSize *int `pulumi:"maxSize"`
+ // The minimum size of the pool.
+ MinSize *int `pulumi:"minSize"`
+ // The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
+ ModelName string `pulumi:"modelName"`
+ // The deployment name.
+ Name *string `pulumi:"name"`
+ // The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
+ NodeType string `pulumi:"nodeType"`
+ // Configuration of the deployment's private endpoint.
+ PrivateEndpoint *InferenceDeploymentPrivateEndpoint `pulumi:"privateEndpoint"`
+ // `projectId`) The ID of the project the deployment is associated with.
+ ProjectId *string `pulumi:"projectId"`
+ // Configuration of the deployment's public endpoint.
+ PublicEndpoint *InferenceDeploymentPublicEndpoint `pulumi:"publicEndpoint"`
+ // `region`) The region in which the deployment is created.
+ Region *string `pulumi:"region"`
+ // The tags associated with the deployment.
+ Tags []string `pulumi:"tags"`
+}
+
+// The set of arguments for constructing a InferenceDeployment resource.
+type InferenceDeploymentArgs struct {
+ // Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
+ AcceptEula pulumi.BoolPtrInput
+ // The maximum size of the pool.
+ MaxSize pulumi.IntPtrInput
+ // The minimum size of the pool.
+ MinSize pulumi.IntPtrInput
+ // The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
+ ModelName pulumi.StringInput
+ // The deployment name.
+ Name pulumi.StringPtrInput
+ // The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
+ NodeType pulumi.StringInput
+ // Configuration of the deployment's private endpoint.
+ PrivateEndpoint InferenceDeploymentPrivateEndpointPtrInput
+ // `projectId`) The ID of the project the deployment is associated with.
+ ProjectId pulumi.StringPtrInput
+ // Configuration of the deployment's public endpoint.
+ PublicEndpoint InferenceDeploymentPublicEndpointPtrInput
+ // `region`) The region in which the deployment is created.
+ Region pulumi.StringPtrInput
+ // The tags associated with the deployment.
+ Tags pulumi.StringArrayInput
+}
+
+func (InferenceDeploymentArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*inferenceDeploymentArgs)(nil)).Elem()
+}
+
+type InferenceDeploymentInput interface {
+ pulumi.Input
+
+ ToInferenceDeploymentOutput() InferenceDeploymentOutput
+ ToInferenceDeploymentOutputWithContext(ctx context.Context) InferenceDeploymentOutput
+}
+
+func (*InferenceDeployment) ElementType() reflect.Type {
+ return reflect.TypeOf((**InferenceDeployment)(nil)).Elem()
+}
+
+func (i *InferenceDeployment) ToInferenceDeploymentOutput() InferenceDeploymentOutput {
+ return i.ToInferenceDeploymentOutputWithContext(context.Background())
+}
+
+func (i *InferenceDeployment) ToInferenceDeploymentOutputWithContext(ctx context.Context) InferenceDeploymentOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(InferenceDeploymentOutput)
+}
+
+// InferenceDeploymentArrayInput is an input type that accepts InferenceDeploymentArray and InferenceDeploymentArrayOutput values.
+// You can construct a concrete instance of `InferenceDeploymentArrayInput` via:
+//
+// InferenceDeploymentArray{ InferenceDeploymentArgs{...} }
+type InferenceDeploymentArrayInput interface {
+ pulumi.Input
+
+ ToInferenceDeploymentArrayOutput() InferenceDeploymentArrayOutput
+ ToInferenceDeploymentArrayOutputWithContext(context.Context) InferenceDeploymentArrayOutput
+}
+
+type InferenceDeploymentArray []InferenceDeploymentInput
+
+func (InferenceDeploymentArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*InferenceDeployment)(nil)).Elem()
+}
+
+func (i InferenceDeploymentArray) ToInferenceDeploymentArrayOutput() InferenceDeploymentArrayOutput {
+ return i.ToInferenceDeploymentArrayOutputWithContext(context.Background())
+}
+
+func (i InferenceDeploymentArray) ToInferenceDeploymentArrayOutputWithContext(ctx context.Context) InferenceDeploymentArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(InferenceDeploymentArrayOutput)
+}
+
+// InferenceDeploymentMapInput is an input type that accepts InferenceDeploymentMap and InferenceDeploymentMapOutput values.
+// You can construct a concrete instance of `InferenceDeploymentMapInput` via:
+//
+// InferenceDeploymentMap{ "key": InferenceDeploymentArgs{...} }
+type InferenceDeploymentMapInput interface {
+ pulumi.Input
+
+ ToInferenceDeploymentMapOutput() InferenceDeploymentMapOutput
+ ToInferenceDeploymentMapOutputWithContext(context.Context) InferenceDeploymentMapOutput
+}
+
+type InferenceDeploymentMap map[string]InferenceDeploymentInput
+
+func (InferenceDeploymentMap) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*InferenceDeployment)(nil)).Elem()
+}
+
+func (i InferenceDeploymentMap) ToInferenceDeploymentMapOutput() InferenceDeploymentMapOutput {
+ return i.ToInferenceDeploymentMapOutputWithContext(context.Background())
+}
+
+func (i InferenceDeploymentMap) ToInferenceDeploymentMapOutputWithContext(ctx context.Context) InferenceDeploymentMapOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(InferenceDeploymentMapOutput)
+}
+
+type InferenceDeploymentOutput struct{ *pulumi.OutputState }
+
+func (InferenceDeploymentOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**InferenceDeployment)(nil)).Elem()
+}
+
+func (o InferenceDeploymentOutput) ToInferenceDeploymentOutput() InferenceDeploymentOutput {
+ return o
+}
+
+func (o InferenceDeploymentOutput) ToInferenceDeploymentOutputWithContext(ctx context.Context) InferenceDeploymentOutput {
+ return o
+}
+
+// Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
+func (o InferenceDeploymentOutput) AcceptEula() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.BoolPtrOutput { return v.AcceptEula }).(pulumi.BoolPtrOutput)
+}
+
+// The date and time of the creation of the deployment.
+func (o InferenceDeploymentOutput) CreatedAt() pulumi.StringOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
+}
+
+// The maximum size of the pool.
+func (o InferenceDeploymentOutput) MaxSize() pulumi.IntOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.IntOutput { return v.MaxSize }).(pulumi.IntOutput)
+}
+
+// The minimum size of the pool.
+func (o InferenceDeploymentOutput) MinSize() pulumi.IntOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.IntOutput { return v.MinSize }).(pulumi.IntOutput)
+}
+
+// The model id used for the deployment.
+func (o InferenceDeploymentOutput) ModelId() pulumi.StringOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.StringOutput { return v.ModelId }).(pulumi.StringOutput)
+}
+
+// The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
+func (o InferenceDeploymentOutput) ModelName() pulumi.StringOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.StringOutput { return v.ModelName }).(pulumi.StringOutput)
+}
+
+// The deployment name.
+func (o InferenceDeploymentOutput) Name() pulumi.StringOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
+}
+
+// The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
+func (o InferenceDeploymentOutput) NodeType() pulumi.StringOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.StringOutput { return v.NodeType }).(pulumi.StringOutput)
+}
+
+// Configuration of the deployment's private endpoint.
+func (o InferenceDeploymentOutput) PrivateEndpoint() InferenceDeploymentPrivateEndpointPtrOutput {
+ return o.ApplyT(func(v *InferenceDeployment) InferenceDeploymentPrivateEndpointPtrOutput { return v.PrivateEndpoint }).(InferenceDeploymentPrivateEndpointPtrOutput)
+}
+
+// `projectId`) The ID of the project the deployment is associated with.
+func (o InferenceDeploymentOutput) ProjectId() pulumi.StringOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput)
+}
+
+// Configuration of the deployment's public endpoint.
+func (o InferenceDeploymentOutput) PublicEndpoint() InferenceDeploymentPublicEndpointPtrOutput {
+ return o.ApplyT(func(v *InferenceDeployment) InferenceDeploymentPublicEndpointPtrOutput { return v.PublicEndpoint }).(InferenceDeploymentPublicEndpointPtrOutput)
+}
+
+// `region`) The region in which the deployment is created.
+func (o InferenceDeploymentOutput) Region() pulumi.StringOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput)
+}
+
+// The size of the pool.
+func (o InferenceDeploymentOutput) Size() pulumi.IntOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.IntOutput { return v.Size }).(pulumi.IntOutput)
+}
+
+// The status of the deployment.
+func (o InferenceDeploymentOutput) Status() pulumi.StringOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
+}
+
+// The tags associated with the deployment.
+func (o InferenceDeploymentOutput) Tags() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.StringArrayOutput { return v.Tags }).(pulumi.StringArrayOutput)
+}
+
+// The date and time of the last update of the deployment.
+func (o InferenceDeploymentOutput) UpdatedAt() pulumi.StringOutput {
+ return o.ApplyT(func(v *InferenceDeployment) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput)
+}
+
+type InferenceDeploymentArrayOutput struct{ *pulumi.OutputState }
+
+func (InferenceDeploymentArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*InferenceDeployment)(nil)).Elem()
+}
+
+func (o InferenceDeploymentArrayOutput) ToInferenceDeploymentArrayOutput() InferenceDeploymentArrayOutput {
+ return o
+}
+
+func (o InferenceDeploymentArrayOutput) ToInferenceDeploymentArrayOutputWithContext(ctx context.Context) InferenceDeploymentArrayOutput {
+ return o
+}
+
+func (o InferenceDeploymentArrayOutput) Index(i pulumi.IntInput) InferenceDeploymentOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) *InferenceDeployment {
+ return vs[0].([]*InferenceDeployment)[vs[1].(int)]
+ }).(InferenceDeploymentOutput)
+}
+
+type InferenceDeploymentMapOutput struct{ *pulumi.OutputState }
+
+func (InferenceDeploymentMapOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*InferenceDeployment)(nil)).Elem()
+}
+
+func (o InferenceDeploymentMapOutput) ToInferenceDeploymentMapOutput() InferenceDeploymentMapOutput {
+ return o
+}
+
+func (o InferenceDeploymentMapOutput) ToInferenceDeploymentMapOutputWithContext(ctx context.Context) InferenceDeploymentMapOutput {
+ return o
+}
+
+func (o InferenceDeploymentMapOutput) MapIndex(k pulumi.StringInput) InferenceDeploymentOutput {
+ return pulumi.All(o, k).ApplyT(func(vs []interface{}) *InferenceDeployment {
+ return vs[0].(map[string]*InferenceDeployment)[vs[1].(string)]
+ }).(InferenceDeploymentOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*InferenceDeploymentInput)(nil)).Elem(), &InferenceDeployment{})
+ pulumi.RegisterInputType(reflect.TypeOf((*InferenceDeploymentArrayInput)(nil)).Elem(), InferenceDeploymentArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*InferenceDeploymentMapInput)(nil)).Elem(), InferenceDeploymentMap{})
+ pulumi.RegisterOutputType(InferenceDeploymentOutput{})
+ pulumi.RegisterOutputType(InferenceDeploymentArrayOutput{})
+ pulumi.RegisterOutputType(InferenceDeploymentMapOutput{})
+}
diff --git a/sdk/go/scaleway/init.go b/sdk/go/scaleway/init.go
index 838342e3..bade3ad9 100644
--- a/sdk/go/scaleway/init.go
+++ b/sdk/go/scaleway/init.go
@@ -103,6 +103,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi
r = &IamSshKey{}
case "scaleway:index/iamUser:IamUser":
r = &IamUser{}
+ case "scaleway:index/inferenceDeployment:InferenceDeployment":
+ r = &InferenceDeployment{}
case "scaleway:index/instanceImage:InstanceImage":
r = &InstanceImage{}
case "scaleway:index/instanceIp:InstanceIp":
@@ -175,6 +177,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi
r = &MnqSqsCredentials{}
case "scaleway:index/mnqSqsQueue:MnqSqsQueue":
r = &MnqSqsQueue{}
+ case "scaleway:index/mongoDbInstance:MongoDbInstance":
+ r = &MongoDbInstance{}
+ case "scaleway:index/mongoDbSnapshot:MongoDbSnapshot":
+ r = &MongoDbSnapshot{}
case "scaleway:index/objectBucket:ObjectBucket":
r = &ObjectBucket{}
case "scaleway:index/objectBucketAcl:ObjectBucketAcl":
@@ -461,6 +467,11 @@ func init() {
"index/iamUser",
&module{version},
)
+ pulumi.RegisterResourceModule(
+ "scaleway",
+ "index/inferenceDeployment",
+ &module{version},
+ )
pulumi.RegisterResourceModule(
"scaleway",
"index/instanceImage",
@@ -641,6 +652,16 @@ func init() {
"index/mnqSqsQueue",
&module{version},
)
+ pulumi.RegisterResourceModule(
+ "scaleway",
+ "index/mongoDbInstance",
+ &module{version},
+ )
+ pulumi.RegisterResourceModule(
+ "scaleway",
+ "index/mongoDbSnapshot",
+ &module{version},
+ )
pulumi.RegisterResourceModule(
"scaleway",
"index/objectBucket",
diff --git a/sdk/go/scaleway/instanceServer.go b/sdk/go/scaleway/instanceServer.go
index 97d91218..ec617c01 100644
--- a/sdk/go/scaleway/instanceServer.go
+++ b/sdk/go/scaleway/instanceServer.go
@@ -366,7 +366,7 @@ type InstanceServer struct {
AdditionalVolumeIds pulumi.StringArrayOutput `pulumi:"additionalVolumeIds"`
// The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
BootType pulumi.StringPtrOutput `pulumi:"bootType"`
- // The ID of the bootscript to use (set bootType to `bootscript`).
+ // ID of the target bootscript (set bootType to bootscript)
//
// Deprecated: bootscript is not supported anymore.
BootscriptId pulumi.StringOutput `pulumi:"bootscriptId"`
@@ -404,6 +404,8 @@ type InstanceServer struct {
Ipv6Gateway pulumi.StringOutput `pulumi:"ipv6Gateway"`
// The prefix length of the ipv6 subnet routed to the server. ( Only set when enableIpv6 is set to true )
// Deprecated: Please use a InstanceIp with a `routedIpv6` type.
+ //
+ // Deprecated: Please use a InstanceIp with a `routedIpv6` type
Ipv6PrefixLength pulumi.IntOutput `pulumi:"ipv6PrefixLength"`
// The name of the server.
Name pulumi.StringOutput `pulumi:"name"`
@@ -435,6 +437,8 @@ type InstanceServer struct {
// If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.
//
// > **Important:** Enabling routed ip will restart the server
+ //
+ // Deprecated: Routed IP is the default configuration, it should always be true
RoutedIpEnabled pulumi.BoolOutput `pulumi:"routedIpEnabled"`
// The [security group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group9) the server is attached to.
SecurityGroupId pulumi.StringOutput `pulumi:"securityGroupId"`
@@ -502,7 +506,7 @@ type instanceServerState struct {
AdditionalVolumeIds []string `pulumi:"additionalVolumeIds"`
// The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
BootType *string `pulumi:"bootType"`
- // The ID of the bootscript to use (set bootType to `bootscript`).
+ // ID of the target bootscript (set bootType to bootscript)
//
// Deprecated: bootscript is not supported anymore.
BootscriptId *string `pulumi:"bootscriptId"`
@@ -540,6 +544,8 @@ type instanceServerState struct {
Ipv6Gateway *string `pulumi:"ipv6Gateway"`
// The prefix length of the ipv6 subnet routed to the server. ( Only set when enableIpv6 is set to true )
// Deprecated: Please use a InstanceIp with a `routedIpv6` type.
+ //
+ // Deprecated: Please use a InstanceIp with a `routedIpv6` type
Ipv6PrefixLength *int `pulumi:"ipv6PrefixLength"`
// The name of the server.
Name *string `pulumi:"name"`
@@ -571,6 +577,8 @@ type instanceServerState struct {
// If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.
//
// > **Important:** Enabling routed ip will restart the server
+ //
+ // Deprecated: Routed IP is the default configuration, it should always be true
RoutedIpEnabled *bool `pulumi:"routedIpEnabled"`
// The [security group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group9) the server is attached to.
SecurityGroupId *string `pulumi:"securityGroupId"`
@@ -606,7 +614,7 @@ type InstanceServerState struct {
AdditionalVolumeIds pulumi.StringArrayInput
// The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
BootType pulumi.StringPtrInput
- // The ID of the bootscript to use (set bootType to `bootscript`).
+ // ID of the target bootscript (set bootType to bootscript)
//
// Deprecated: bootscript is not supported anymore.
BootscriptId pulumi.StringPtrInput
@@ -644,6 +652,8 @@ type InstanceServerState struct {
Ipv6Gateway pulumi.StringPtrInput
// The prefix length of the ipv6 subnet routed to the server. ( Only set when enableIpv6 is set to true )
// Deprecated: Please use a InstanceIp with a `routedIpv6` type.
+ //
+ // Deprecated: Please use a InstanceIp with a `routedIpv6` type
Ipv6PrefixLength pulumi.IntPtrInput
// The name of the server.
Name pulumi.StringPtrInput
@@ -675,6 +685,8 @@ type InstanceServerState struct {
// If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.
//
// > **Important:** Enabling routed ip will restart the server
+ //
+ // Deprecated: Routed IP is the default configuration, it should always be true
RoutedIpEnabled pulumi.BoolPtrInput
// The [security group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group9) the server is attached to.
SecurityGroupId pulumi.StringPtrInput
@@ -714,7 +726,7 @@ type instanceServerArgs struct {
AdditionalVolumeIds []string `pulumi:"additionalVolumeIds"`
// The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
BootType *string `pulumi:"bootType"`
- // The ID of the bootscript to use (set bootType to `bootscript`).
+ // ID of the target bootscript (set bootType to bootscript)
//
// Deprecated: bootscript is not supported anymore.
BootscriptId *string `pulumi:"bootscriptId"`
@@ -760,6 +772,8 @@ type instanceServerArgs struct {
// If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.
//
// > **Important:** Enabling routed ip will restart the server
+ //
+ // Deprecated: Routed IP is the default configuration, it should always be true
RoutedIpEnabled *bool `pulumi:"routedIpEnabled"`
// The [security group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group9) the server is attached to.
SecurityGroupId *string `pulumi:"securityGroupId"`
@@ -796,7 +810,7 @@ type InstanceServerArgs struct {
AdditionalVolumeIds pulumi.StringArrayInput
// The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
BootType pulumi.StringPtrInput
- // The ID of the bootscript to use (set bootType to `bootscript`).
+ // ID of the target bootscript (set bootType to bootscript)
//
// Deprecated: bootscript is not supported anymore.
BootscriptId pulumi.StringPtrInput
@@ -842,6 +856,8 @@ type InstanceServerArgs struct {
// If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.
//
// > **Important:** Enabling routed ip will restart the server
+ //
+ // Deprecated: Routed IP is the default configuration, it should always be true
RoutedIpEnabled pulumi.BoolPtrInput
// The [security group](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group9) the server is attached to.
SecurityGroupId pulumi.StringPtrInput
@@ -969,7 +985,7 @@ func (o InstanceServerOutput) BootType() pulumi.StringPtrOutput {
return o.ApplyT(func(v *InstanceServer) pulumi.StringPtrOutput { return v.BootType }).(pulumi.StringPtrOutput)
}
-// The ID of the bootscript to use (set bootType to `bootscript`).
+// ID of the target bootscript (set bootType to bootscript)
//
// Deprecated: bootscript is not supported anymore.
func (o InstanceServerOutput) BootscriptId() pulumi.StringOutput {
@@ -1034,6 +1050,8 @@ func (o InstanceServerOutput) Ipv6Gateway() pulumi.StringOutput {
// The prefix length of the ipv6 subnet routed to the server. ( Only set when enableIpv6 is set to true )
// Deprecated: Please use a InstanceIp with a `routedIpv6` type.
+//
+// Deprecated: Please use a InstanceIp with a `routedIpv6` type
func (o InstanceServerOutput) Ipv6PrefixLength() pulumi.IntOutput {
return o.ApplyT(func(v *InstanceServer) pulumi.IntOutput { return v.Ipv6PrefixLength }).(pulumi.IntOutput)
}
@@ -1101,6 +1119,8 @@ func (o InstanceServerOutput) RootVolume() InstanceServerRootVolumeOutput {
// If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type.
//
// > **Important:** Enabling routed ip will restart the server
+//
+// Deprecated: Routed IP is the default configuration, it should always be true
func (o InstanceServerOutput) RoutedIpEnabled() pulumi.BoolOutput {
return o.ApplyT(func(v *InstanceServer) pulumi.BoolOutput { return v.RoutedIpEnabled }).(pulumi.BoolOutput)
}
diff --git a/sdk/go/scaleway/iotNetwork.go b/sdk/go/scaleway/iotNetwork.go
index 473cdb03..a6771184 100644
--- a/sdk/go/scaleway/iotNetwork.go
+++ b/sdk/go/scaleway/iotNetwork.go
@@ -67,6 +67,8 @@ type IotNetwork struct {
HubId pulumi.StringOutput `pulumi:"hubId"`
// The name of the IoT Network you want to create (e.g. `my-net`).
Name pulumi.StringOutput `pulumi:"name"`
+ // (Defaults to provider `region`) The region in which the Network is attached to.
+ Region pulumi.StringOutput `pulumi:"region"`
// The endpoint key to keep secret.
Secret pulumi.StringOutput `pulumi:"secret"`
// The prefix that will be prepended to all topics for this Network.
@@ -123,6 +125,8 @@ type iotNetworkState struct {
HubId *string `pulumi:"hubId"`
// The name of the IoT Network you want to create (e.g. `my-net`).
Name *string `pulumi:"name"`
+ // (Defaults to provider `region`) The region in which the Network is attached to.
+ Region *string `pulumi:"region"`
// The endpoint key to keep secret.
Secret *string `pulumi:"secret"`
// The prefix that will be prepended to all topics for this Network.
@@ -140,6 +144,8 @@ type IotNetworkState struct {
HubId pulumi.StringPtrInput
// The name of the IoT Network you want to create (e.g. `my-net`).
Name pulumi.StringPtrInput
+ // (Defaults to provider `region`) The region in which the Network is attached to.
+ Region pulumi.StringPtrInput
// The endpoint key to keep secret.
Secret pulumi.StringPtrInput
// The prefix that will be prepended to all topics for this Network.
@@ -157,6 +163,8 @@ type iotNetworkArgs struct {
HubId string `pulumi:"hubId"`
// The name of the IoT Network you want to create (e.g. `my-net`).
Name *string `pulumi:"name"`
+ // (Defaults to provider `region`) The region in which the Network is attached to.
+ Region *string `pulumi:"region"`
// The prefix that will be prepended to all topics for this Network.
TopicPrefix *string `pulumi:"topicPrefix"`
// The network type to create (e.g. `sigfox`).
@@ -169,6 +177,8 @@ type IotNetworkArgs struct {
HubId pulumi.StringInput
// The name of the IoT Network you want to create (e.g. `my-net`).
Name pulumi.StringPtrInput
+ // (Defaults to provider `region`) The region in which the Network is attached to.
+ Region pulumi.StringPtrInput
// The prefix that will be prepended to all topics for this Network.
TopicPrefix pulumi.StringPtrInput
// The network type to create (e.g. `sigfox`).
@@ -282,6 +292,11 @@ func (o IotNetworkOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v *IotNetwork) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
}
+// (Defaults to provider `region`) The region in which the Network is attached to.
+func (o IotNetworkOutput) Region() pulumi.StringOutput {
+ return o.ApplyT(func(v *IotNetwork) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput)
+}
+
// The endpoint key to keep secret.
func (o IotNetworkOutput) Secret() pulumi.StringOutput {
return o.ApplyT(func(v *IotNetwork) pulumi.StringOutput { return v.Secret }).(pulumi.StringOutput)
diff --git a/sdk/go/scaleway/ipamIp.go b/sdk/go/scaleway/ipamIp.go
index 686bd8e1..08a6158d 100644
--- a/sdk/go/scaleway/ipamIp.go
+++ b/sdk/go/scaleway/ipamIp.go
@@ -157,6 +157,57 @@ import (
//
// ```
//
+// ### Book an IP for a custom resource
+//
+// ```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 {
+// vpc01, err := scaleway.NewVpc(ctx, "vpc01", &scaleway.VpcArgs{
+// Name: pulumi.String("my vpc"),
+// })
+// if err != nil {
+// return err
+// }
+// pn01, err := scaleway.NewVpcPrivateNetwork(ctx, "pn01", &scaleway.VpcPrivateNetworkArgs{
+// VpcId: vpc01.ID(),
+// Ipv4Subnet: &scaleway.VpcPrivateNetworkIpv4SubnetArgs{
+// Subnet: pulumi.String("172.16.32.0/22"),
+// },
+// })
+// if err != nil {
+// return err
+// }
+// _, err = scaleway.NewIpamIp(ctx, "ip01", &scaleway.IpamIpArgs{
+// Address: pulumi.String("172.16.32.7"),
+// Sources: scaleway.IpamIpSourceArray{
+// &scaleway.IpamIpSourceArgs{
+// PrivateNetworkId: pn01.ID(),
+// },
+// },
+// CustomResources: scaleway.IpamIpCustomResourceArray{
+// &scaleway.IpamIpCustomResourceArgs{
+// MacAddress: pulumi.String("bc:24:11:74:d0:6a"),
+// },
+// },
+// })
+// if err != nil {
+// return err
+// }
+// return nil
+// })
+// }
+//
+// ```
+//
// ## Import
//
// IPAM IPs can be imported using `{region}/{id}`, e.g.
@@ -173,6 +224,8 @@ type IpamIp struct {
Address pulumi.StringOutput `pulumi:"address"`
// Date and time of IP's creation (RFC 3339 format).
CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
+ // The custom resource in which to book the IP
+ CustomResources IpamIpCustomResourceArrayOutput `pulumi:"customResources"`
// Defines whether to request an IPv6 address instead of IPv4.
IsIpv6 pulumi.BoolPtrOutput `pulumi:"isIpv6"`
// `projectId`) The ID of the Project the IP is associated with.
@@ -230,6 +283,8 @@ type ipamIpState struct {
Address *string `pulumi:"address"`
// Date and time of IP's creation (RFC 3339 format).
CreatedAt *string `pulumi:"createdAt"`
+ // The custom resource in which to book the IP
+ CustomResources []IpamIpCustomResource `pulumi:"customResources"`
// Defines whether to request an IPv6 address instead of IPv4.
IsIpv6 *bool `pulumi:"isIpv6"`
// `projectId`) The ID of the Project the IP is associated with.
@@ -255,6 +310,8 @@ type IpamIpState struct {
Address pulumi.StringPtrInput
// Date and time of IP's creation (RFC 3339 format).
CreatedAt pulumi.StringPtrInput
+ // The custom resource in which to book the IP
+ CustomResources IpamIpCustomResourceArrayInput
// Defines whether to request an IPv6 address instead of IPv4.
IsIpv6 pulumi.BoolPtrInput
// `projectId`) The ID of the Project the IP is associated with.
@@ -282,6 +339,8 @@ func (IpamIpState) ElementType() reflect.Type {
type ipamIpArgs struct {
// Request a specific IP in the requested source pool
Address *string `pulumi:"address"`
+ // The custom resource in which to book the IP
+ CustomResources []IpamIpCustomResource `pulumi:"customResources"`
// Defines whether to request an IPv6 address instead of IPv4.
IsIpv6 *bool `pulumi:"isIpv6"`
// `projectId`) The ID of the Project the IP is associated with.
@@ -298,6 +357,8 @@ type ipamIpArgs struct {
type IpamIpArgs struct {
// Request a specific IP in the requested source pool
Address pulumi.StringPtrInput
+ // The custom resource in which to book the IP
+ CustomResources IpamIpCustomResourceArrayInput
// Defines whether to request an IPv6 address instead of IPv4.
IsIpv6 pulumi.BoolPtrInput
// `projectId`) The ID of the Project the IP is associated with.
@@ -407,6 +468,11 @@ func (o IpamIpOutput) CreatedAt() pulumi.StringOutput {
return o.ApplyT(func(v *IpamIp) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
}
+// The custom resource in which to book the IP
+func (o IpamIpOutput) CustomResources() IpamIpCustomResourceArrayOutput {
+ return o.ApplyT(func(v *IpamIp) IpamIpCustomResourceArrayOutput { return v.CustomResources }).(IpamIpCustomResourceArrayOutput)
+}
+
// Defines whether to request an IPv6 address instead of IPv4.
func (o IpamIpOutput) IsIpv6() pulumi.BoolPtrOutput {
return o.ApplyT(func(v *IpamIp) pulumi.BoolPtrOutput { return v.IsIpv6 }).(pulumi.BoolPtrOutput)
diff --git a/sdk/go/scaleway/mongoDbInstance.go b/sdk/go/scaleway/mongoDbInstance.go
new file mode 100644
index 00000000..9bec2073
--- /dev/null
+++ b/sdk/go/scaleway/mongoDbInstance.go
@@ -0,0 +1,520 @@
+// 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"
+
+ "errors"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/internal"
+)
+
+// Creates and manages Scaleway MongoDB® instance.
+// For more information refer to [the API documentation](https://www.scaleway.com/en/docs/managed-databases/mongodb/).
+//
+// ## Example Usage
+//
+// ### Basic
+//
+// ```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.NewMongoDbInstance(ctx, "main", &scaleway.MongoDbInstanceArgs{
+// Name: pulumi.String("test-mongodb-basic1"),
+// Version: pulumi.String("7.0.12"),
+// NodeType: pulumi.String("MGDB-PLAY2-NANO"),
+// NodeNumber: pulumi.Int(1),
+// UserName: pulumi.String("my_initial_user"),
+// Password: pulumi.String("thiZ_is_v&ry_s3cret"),
+// VolumeSizeInGb: pulumi.Int(5),
+// })
+// if err != nil {
+// return err
+// }
+// return nil
+// })
+// }
+//
+// ```
+//
+// ### Restore From Snapshot
+//
+// ```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.NewMongoDbInstance(ctx, "restored_instance", &scaleway.MongoDbInstanceArgs{
+// SnapshotId: pulumi.Any(pn.IdscalewayMongodbSnapshot.MainSnapshot.Id),
+// Name: pulumi.String("restored-mongodb-from-snapshot"),
+// NodeType: pulumi.String("MGDB-PLAY2-NANO"),
+// NodeNumber: pulumi.Int(1),
+// })
+// if err != nil {
+// return err
+// }
+// return nil
+// })
+// }
+//
+// ```
+//
+// ## Import
+//
+// MongoDB® instance can be imported using the `id`, e.g.
+//
+// bash
+//
+// ```sh
+// $ pulumi import scaleway:index/mongoDbInstance:MongoDbInstance main fr-par-1/11111111-1111-1111-1111-111111111111
+// ```
+type MongoDbInstance struct {
+ pulumi.CustomResourceState
+
+ // The date and time of the creation of the MongoDB® instance.
+ CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
+ // Name of the MongoDB® instance.
+ Name pulumi.StringOutput `pulumi:"name"`
+ // Number of nodes in the instance
+ NodeNumber pulumi.IntOutput `pulumi:"nodeNumber"`
+ // The type of MongoDB® intance to create.
+ NodeType pulumi.StringOutput `pulumi:"nodeType"`
+ // Password of the user.
+ Password pulumi.StringPtrOutput `pulumi:"password"`
+ // The projectId you want to attach the resource to
+ ProjectId pulumi.StringOutput `pulumi:"projectId"`
+ // Public network specs details.
+ PublicNetwork MongoDbInstancePublicNetworkOutput `pulumi:"publicNetwork"`
+ // The region you want to attach the resource to
+ Region pulumi.StringOutput `pulumi:"region"`
+ // Map of settings to define for the instance.
+ Settings pulumi.StringMapOutput `pulumi:"settings"`
+ // Snapshot ID to restore the MongoDB® instance from.
+ SnapshotId pulumi.StringPtrOutput `pulumi:"snapshotId"`
+ // List of tags attached to the MongoDB® instance.
+ Tags pulumi.StringArrayOutput `pulumi:"tags"`
+ // The date and time of the last update of the MongoDB® instance.
+ UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"`
+ // Name of the user created when the intance is created.
+ UserName pulumi.StringPtrOutput `pulumi:"userName"`
+ // MongoDB® version of the instance.
+ Version pulumi.StringOutput `pulumi:"version"`
+ // Volume size in GB.
+ VolumeSizeInGb pulumi.IntOutput `pulumi:"volumeSizeInGb"`
+ // Volume type of the instance.
+ VolumeType pulumi.StringPtrOutput `pulumi:"volumeType"`
+}
+
+// NewMongoDbInstance registers a new resource with the given unique name, arguments, and options.
+func NewMongoDbInstance(ctx *pulumi.Context,
+ name string, args *MongoDbInstanceArgs, opts ...pulumi.ResourceOption) (*MongoDbInstance, error) {
+ if args == nil {
+ return nil, errors.New("missing one or more required arguments")
+ }
+
+ if args.NodeNumber == nil {
+ return nil, errors.New("invalid value for required argument 'NodeNumber'")
+ }
+ if args.NodeType == nil {
+ return nil, errors.New("invalid value for required argument 'NodeType'")
+ }
+ if args.Password != nil {
+ args.Password = pulumi.ToSecret(args.Password).(pulumi.StringPtrInput)
+ }
+ secrets := pulumi.AdditionalSecretOutputs([]string{
+ "password",
+ })
+ opts = append(opts, secrets)
+ opts = internal.PkgResourceDefaultOpts(opts)
+ var resource MongoDbInstance
+ err := ctx.RegisterResource("scaleway:index/mongoDbInstance:MongoDbInstance", name, args, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// GetMongoDbInstance gets an existing MongoDbInstance resource's state with the given name, ID, and optional
+// state properties that are used to uniquely qualify the lookup (nil if not required).
+func GetMongoDbInstance(ctx *pulumi.Context,
+ name string, id pulumi.IDInput, state *MongoDbInstanceState, opts ...pulumi.ResourceOption) (*MongoDbInstance, error) {
+ var resource MongoDbInstance
+ err := ctx.ReadResource("scaleway:index/mongoDbInstance:MongoDbInstance", name, id, state, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// Input properties used for looking up and filtering MongoDbInstance resources.
+type mongoDbInstanceState struct {
+ // The date and time of the creation of the MongoDB® instance.
+ CreatedAt *string `pulumi:"createdAt"`
+ // Name of the MongoDB® instance.
+ Name *string `pulumi:"name"`
+ // Number of nodes in the instance
+ NodeNumber *int `pulumi:"nodeNumber"`
+ // The type of MongoDB® intance to create.
+ NodeType *string `pulumi:"nodeType"`
+ // Password of the user.
+ Password *string `pulumi:"password"`
+ // The projectId you want to attach the resource to
+ ProjectId *string `pulumi:"projectId"`
+ // Public network specs details.
+ PublicNetwork *MongoDbInstancePublicNetwork `pulumi:"publicNetwork"`
+ // The region you want to attach the resource to
+ Region *string `pulumi:"region"`
+ // Map of settings to define for the instance.
+ Settings map[string]string `pulumi:"settings"`
+ // Snapshot ID to restore the MongoDB® instance from.
+ SnapshotId *string `pulumi:"snapshotId"`
+ // List of tags attached to the MongoDB® instance.
+ Tags []string `pulumi:"tags"`
+ // The date and time of the last update of the MongoDB® instance.
+ UpdatedAt *string `pulumi:"updatedAt"`
+ // Name of the user created when the intance is created.
+ UserName *string `pulumi:"userName"`
+ // MongoDB® version of the instance.
+ Version *string `pulumi:"version"`
+ // Volume size in GB.
+ VolumeSizeInGb *int `pulumi:"volumeSizeInGb"`
+ // Volume type of the instance.
+ VolumeType *string `pulumi:"volumeType"`
+}
+
+type MongoDbInstanceState struct {
+ // The date and time of the creation of the MongoDB® instance.
+ CreatedAt pulumi.StringPtrInput
+ // Name of the MongoDB® instance.
+ Name pulumi.StringPtrInput
+ // Number of nodes in the instance
+ NodeNumber pulumi.IntPtrInput
+ // The type of MongoDB® intance to create.
+ NodeType pulumi.StringPtrInput
+ // Password of the user.
+ Password pulumi.StringPtrInput
+ // The projectId you want to attach the resource to
+ ProjectId pulumi.StringPtrInput
+ // Public network specs details.
+ PublicNetwork MongoDbInstancePublicNetworkPtrInput
+ // The region you want to attach the resource to
+ Region pulumi.StringPtrInput
+ // Map of settings to define for the instance.
+ Settings pulumi.StringMapInput
+ // Snapshot ID to restore the MongoDB® instance from.
+ SnapshotId pulumi.StringPtrInput
+ // List of tags attached to the MongoDB® instance.
+ Tags pulumi.StringArrayInput
+ // The date and time of the last update of the MongoDB® instance.
+ UpdatedAt pulumi.StringPtrInput
+ // Name of the user created when the intance is created.
+ UserName pulumi.StringPtrInput
+ // MongoDB® version of the instance.
+ Version pulumi.StringPtrInput
+ // Volume size in GB.
+ VolumeSizeInGb pulumi.IntPtrInput
+ // Volume type of the instance.
+ VolumeType pulumi.StringPtrInput
+}
+
+func (MongoDbInstanceState) ElementType() reflect.Type {
+ return reflect.TypeOf((*mongoDbInstanceState)(nil)).Elem()
+}
+
+type mongoDbInstanceArgs struct {
+ // Name of the MongoDB® instance.
+ Name *string `pulumi:"name"`
+ // Number of nodes in the instance
+ NodeNumber int `pulumi:"nodeNumber"`
+ // The type of MongoDB® intance to create.
+ NodeType string `pulumi:"nodeType"`
+ // Password of the user.
+ Password *string `pulumi:"password"`
+ // The projectId you want to attach the resource to
+ ProjectId *string `pulumi:"projectId"`
+ // Public network specs details.
+ PublicNetwork *MongoDbInstancePublicNetwork `pulumi:"publicNetwork"`
+ // The region you want to attach the resource to
+ Region *string `pulumi:"region"`
+ // Map of settings to define for the instance.
+ Settings map[string]string `pulumi:"settings"`
+ // Snapshot ID to restore the MongoDB® instance from.
+ SnapshotId *string `pulumi:"snapshotId"`
+ // List of tags attached to the MongoDB® instance.
+ Tags []string `pulumi:"tags"`
+ // Name of the user created when the intance is created.
+ UserName *string `pulumi:"userName"`
+ // MongoDB® version of the instance.
+ Version *string `pulumi:"version"`
+ // Volume size in GB.
+ VolumeSizeInGb *int `pulumi:"volumeSizeInGb"`
+ // Volume type of the instance.
+ VolumeType *string `pulumi:"volumeType"`
+}
+
+// The set of arguments for constructing a MongoDbInstance resource.
+type MongoDbInstanceArgs struct {
+ // Name of the MongoDB® instance.
+ Name pulumi.StringPtrInput
+ // Number of nodes in the instance
+ NodeNumber pulumi.IntInput
+ // The type of MongoDB® intance to create.
+ NodeType pulumi.StringInput
+ // Password of the user.
+ Password pulumi.StringPtrInput
+ // The projectId you want to attach the resource to
+ ProjectId pulumi.StringPtrInput
+ // Public network specs details.
+ PublicNetwork MongoDbInstancePublicNetworkPtrInput
+ // The region you want to attach the resource to
+ Region pulumi.StringPtrInput
+ // Map of settings to define for the instance.
+ Settings pulumi.StringMapInput
+ // Snapshot ID to restore the MongoDB® instance from.
+ SnapshotId pulumi.StringPtrInput
+ // List of tags attached to the MongoDB® instance.
+ Tags pulumi.StringArrayInput
+ // Name of the user created when the intance is created.
+ UserName pulumi.StringPtrInput
+ // MongoDB® version of the instance.
+ Version pulumi.StringPtrInput
+ // Volume size in GB.
+ VolumeSizeInGb pulumi.IntPtrInput
+ // Volume type of the instance.
+ VolumeType pulumi.StringPtrInput
+}
+
+func (MongoDbInstanceArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*mongoDbInstanceArgs)(nil)).Elem()
+}
+
+type MongoDbInstanceInput interface {
+ pulumi.Input
+
+ ToMongoDbInstanceOutput() MongoDbInstanceOutput
+ ToMongoDbInstanceOutputWithContext(ctx context.Context) MongoDbInstanceOutput
+}
+
+func (*MongoDbInstance) ElementType() reflect.Type {
+ return reflect.TypeOf((**MongoDbInstance)(nil)).Elem()
+}
+
+func (i *MongoDbInstance) ToMongoDbInstanceOutput() MongoDbInstanceOutput {
+ return i.ToMongoDbInstanceOutputWithContext(context.Background())
+}
+
+func (i *MongoDbInstance) ToMongoDbInstanceOutputWithContext(ctx context.Context) MongoDbInstanceOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(MongoDbInstanceOutput)
+}
+
+// MongoDbInstanceArrayInput is an input type that accepts MongoDbInstanceArray and MongoDbInstanceArrayOutput values.
+// You can construct a concrete instance of `MongoDbInstanceArrayInput` via:
+//
+// MongoDbInstanceArray{ MongoDbInstanceArgs{...} }
+type MongoDbInstanceArrayInput interface {
+ pulumi.Input
+
+ ToMongoDbInstanceArrayOutput() MongoDbInstanceArrayOutput
+ ToMongoDbInstanceArrayOutputWithContext(context.Context) MongoDbInstanceArrayOutput
+}
+
+type MongoDbInstanceArray []MongoDbInstanceInput
+
+func (MongoDbInstanceArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*MongoDbInstance)(nil)).Elem()
+}
+
+func (i MongoDbInstanceArray) ToMongoDbInstanceArrayOutput() MongoDbInstanceArrayOutput {
+ return i.ToMongoDbInstanceArrayOutputWithContext(context.Background())
+}
+
+func (i MongoDbInstanceArray) ToMongoDbInstanceArrayOutputWithContext(ctx context.Context) MongoDbInstanceArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(MongoDbInstanceArrayOutput)
+}
+
+// MongoDbInstanceMapInput is an input type that accepts MongoDbInstanceMap and MongoDbInstanceMapOutput values.
+// You can construct a concrete instance of `MongoDbInstanceMapInput` via:
+//
+// MongoDbInstanceMap{ "key": MongoDbInstanceArgs{...} }
+type MongoDbInstanceMapInput interface {
+ pulumi.Input
+
+ ToMongoDbInstanceMapOutput() MongoDbInstanceMapOutput
+ ToMongoDbInstanceMapOutputWithContext(context.Context) MongoDbInstanceMapOutput
+}
+
+type MongoDbInstanceMap map[string]MongoDbInstanceInput
+
+func (MongoDbInstanceMap) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*MongoDbInstance)(nil)).Elem()
+}
+
+func (i MongoDbInstanceMap) ToMongoDbInstanceMapOutput() MongoDbInstanceMapOutput {
+ return i.ToMongoDbInstanceMapOutputWithContext(context.Background())
+}
+
+func (i MongoDbInstanceMap) ToMongoDbInstanceMapOutputWithContext(ctx context.Context) MongoDbInstanceMapOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(MongoDbInstanceMapOutput)
+}
+
+type MongoDbInstanceOutput struct{ *pulumi.OutputState }
+
+func (MongoDbInstanceOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**MongoDbInstance)(nil)).Elem()
+}
+
+func (o MongoDbInstanceOutput) ToMongoDbInstanceOutput() MongoDbInstanceOutput {
+ return o
+}
+
+func (o MongoDbInstanceOutput) ToMongoDbInstanceOutputWithContext(ctx context.Context) MongoDbInstanceOutput {
+ return o
+}
+
+// The date and time of the creation of the MongoDB® instance.
+func (o MongoDbInstanceOutput) CreatedAt() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
+}
+
+// Name of the MongoDB® instance.
+func (o MongoDbInstanceOutput) Name() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
+}
+
+// Number of nodes in the instance
+func (o MongoDbInstanceOutput) NodeNumber() pulumi.IntOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.IntOutput { return v.NodeNumber }).(pulumi.IntOutput)
+}
+
+// The type of MongoDB® intance to create.
+func (o MongoDbInstanceOutput) NodeType() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringOutput { return v.NodeType }).(pulumi.StringOutput)
+}
+
+// Password of the user.
+func (o MongoDbInstanceOutput) Password() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringPtrOutput { return v.Password }).(pulumi.StringPtrOutput)
+}
+
+// The projectId you want to attach the resource to
+func (o MongoDbInstanceOutput) ProjectId() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput)
+}
+
+// Public network specs details.
+func (o MongoDbInstanceOutput) PublicNetwork() MongoDbInstancePublicNetworkOutput {
+ return o.ApplyT(func(v *MongoDbInstance) MongoDbInstancePublicNetworkOutput { return v.PublicNetwork }).(MongoDbInstancePublicNetworkOutput)
+}
+
+// The region you want to attach the resource to
+func (o MongoDbInstanceOutput) Region() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput)
+}
+
+// Map of settings to define for the instance.
+func (o MongoDbInstanceOutput) Settings() pulumi.StringMapOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringMapOutput { return v.Settings }).(pulumi.StringMapOutput)
+}
+
+// Snapshot ID to restore the MongoDB® instance from.
+func (o MongoDbInstanceOutput) SnapshotId() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringPtrOutput { return v.SnapshotId }).(pulumi.StringPtrOutput)
+}
+
+// List of tags attached to the MongoDB® instance.
+func (o MongoDbInstanceOutput) Tags() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringArrayOutput { return v.Tags }).(pulumi.StringArrayOutput)
+}
+
+// The date and time of the last update of the MongoDB® instance.
+func (o MongoDbInstanceOutput) UpdatedAt() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput)
+}
+
+// Name of the user created when the intance is created.
+func (o MongoDbInstanceOutput) UserName() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringPtrOutput { return v.UserName }).(pulumi.StringPtrOutput)
+}
+
+// MongoDB® version of the instance.
+func (o MongoDbInstanceOutput) Version() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringOutput { return v.Version }).(pulumi.StringOutput)
+}
+
+// Volume size in GB.
+func (o MongoDbInstanceOutput) VolumeSizeInGb() pulumi.IntOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.IntOutput { return v.VolumeSizeInGb }).(pulumi.IntOutput)
+}
+
+// Volume type of the instance.
+func (o MongoDbInstanceOutput) VolumeType() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *MongoDbInstance) pulumi.StringPtrOutput { return v.VolumeType }).(pulumi.StringPtrOutput)
+}
+
+type MongoDbInstanceArrayOutput struct{ *pulumi.OutputState }
+
+func (MongoDbInstanceArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*MongoDbInstance)(nil)).Elem()
+}
+
+func (o MongoDbInstanceArrayOutput) ToMongoDbInstanceArrayOutput() MongoDbInstanceArrayOutput {
+ return o
+}
+
+func (o MongoDbInstanceArrayOutput) ToMongoDbInstanceArrayOutputWithContext(ctx context.Context) MongoDbInstanceArrayOutput {
+ return o
+}
+
+func (o MongoDbInstanceArrayOutput) Index(i pulumi.IntInput) MongoDbInstanceOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MongoDbInstance {
+ return vs[0].([]*MongoDbInstance)[vs[1].(int)]
+ }).(MongoDbInstanceOutput)
+}
+
+type MongoDbInstanceMapOutput struct{ *pulumi.OutputState }
+
+func (MongoDbInstanceMapOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*MongoDbInstance)(nil)).Elem()
+}
+
+func (o MongoDbInstanceMapOutput) ToMongoDbInstanceMapOutput() MongoDbInstanceMapOutput {
+ return o
+}
+
+func (o MongoDbInstanceMapOutput) ToMongoDbInstanceMapOutputWithContext(ctx context.Context) MongoDbInstanceMapOutput {
+ return o
+}
+
+func (o MongoDbInstanceMapOutput) MapIndex(k pulumi.StringInput) MongoDbInstanceOutput {
+ return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MongoDbInstance {
+ return vs[0].(map[string]*MongoDbInstance)[vs[1].(string)]
+ }).(MongoDbInstanceOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*MongoDbInstanceInput)(nil)).Elem(), &MongoDbInstance{})
+ pulumi.RegisterInputType(reflect.TypeOf((*MongoDbInstanceArrayInput)(nil)).Elem(), MongoDbInstanceArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*MongoDbInstanceMapInput)(nil)).Elem(), MongoDbInstanceMap{})
+ pulumi.RegisterOutputType(MongoDbInstanceOutput{})
+ pulumi.RegisterOutputType(MongoDbInstanceArrayOutput{})
+ pulumi.RegisterOutputType(MongoDbInstanceMapOutput{})
+}
diff --git a/sdk/go/scaleway/mongoDbSnapshot.go b/sdk/go/scaleway/mongoDbSnapshot.go
new file mode 100644
index 00000000..ff233873
--- /dev/null
+++ b/sdk/go/scaleway/mongoDbSnapshot.go
@@ -0,0 +1,384 @@
+// 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"
+
+ "errors"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/internal"
+)
+
+// Creates and manages Scaleway MongoDB® snapshots.
+// For more information refer to [the API documentation](https://www.scaleway.com/en/docs/managed-databases/mongodb/).
+//
+// ## 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.NewMongoDbSnapshot(ctx, "main", &scaleway.MongoDbSnapshotArgs{
+// InstanceId: pulumi.Any(mainScalewayMongodbInstance.Id),
+// Name: pulumi.String("name-snapshot"),
+// ExpiresAt: pulumi.String("2024-12-31T23:59:59Z"),
+// })
+// if err != nil {
+// return err
+// }
+// return nil
+// })
+// }
+//
+// ```
+//
+// ## Import
+//
+// MongoDB® snapshots can be imported using the `{region}/{id}`, e.g.
+//
+// bash
+//
+// ```sh
+// $ pulumi import scaleway:index/mongoDbSnapshot:MongoDbSnapshot main fr-par-1/11111111-1111-1111-1111-111111111111
+// ```
+type MongoDbSnapshot struct {
+ pulumi.CustomResourceState
+
+ // The date and time when the MongoDB® snapshot was created.
+ CreatedAt pulumi.StringOutput `pulumi:"createdAt"`
+ // The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).
+ //
+ // > **Important:** Once set, `expiresAt` cannot be removed.
+ ExpiresAt pulumi.StringOutput `pulumi:"expiresAt"`
+ // The ID of the MongoDB® instance from which the snapshot was created.
+ InstanceId pulumi.StringOutput `pulumi:"instanceId"`
+ // The name of the MongoDB® instance from which the snapshot was created.
+ InstanceName pulumi.StringOutput `pulumi:"instanceName"`
+ // The name of the MongoDB® snapshot.
+ Name pulumi.StringOutput `pulumi:"name"`
+ // The type of node associated with the MongoDB® snapshot.
+ NodeType pulumi.StringOutput `pulumi:"nodeType"`
+ // `region`) The region in which the MongoDB® snapshot should be created.
+ Region pulumi.StringOutput `pulumi:"region"`
+ // The size of the MongoDB® snapshot in bytes.
+ Size pulumi.IntOutput `pulumi:"size"`
+ // The date and time of the last update of the MongoDB® snapshot.
+ UpdatedAt pulumi.StringOutput `pulumi:"updatedAt"`
+ // The type of volume used for the MongoDB® snapshot.
+ VolumeType pulumi.StringOutput `pulumi:"volumeType"`
+}
+
+// NewMongoDbSnapshot registers a new resource with the given unique name, arguments, and options.
+func NewMongoDbSnapshot(ctx *pulumi.Context,
+ name string, args *MongoDbSnapshotArgs, opts ...pulumi.ResourceOption) (*MongoDbSnapshot, error) {
+ if args == nil {
+ return nil, errors.New("missing one or more required arguments")
+ }
+
+ if args.ExpiresAt == nil {
+ return nil, errors.New("invalid value for required argument 'ExpiresAt'")
+ }
+ if args.InstanceId == nil {
+ return nil, errors.New("invalid value for required argument 'InstanceId'")
+ }
+ opts = internal.PkgResourceDefaultOpts(opts)
+ var resource MongoDbSnapshot
+ err := ctx.RegisterResource("scaleway:index/mongoDbSnapshot:MongoDbSnapshot", name, args, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// GetMongoDbSnapshot gets an existing MongoDbSnapshot resource's state with the given name, ID, and optional
+// state properties that are used to uniquely qualify the lookup (nil if not required).
+func GetMongoDbSnapshot(ctx *pulumi.Context,
+ name string, id pulumi.IDInput, state *MongoDbSnapshotState, opts ...pulumi.ResourceOption) (*MongoDbSnapshot, error) {
+ var resource MongoDbSnapshot
+ err := ctx.ReadResource("scaleway:index/mongoDbSnapshot:MongoDbSnapshot", name, id, state, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// Input properties used for looking up and filtering MongoDbSnapshot resources.
+type mongoDbSnapshotState struct {
+ // The date and time when the MongoDB® snapshot was created.
+ CreatedAt *string `pulumi:"createdAt"`
+ // The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).
+ //
+ // > **Important:** Once set, `expiresAt` cannot be removed.
+ ExpiresAt *string `pulumi:"expiresAt"`
+ // The ID of the MongoDB® instance from which the snapshot was created.
+ InstanceId *string `pulumi:"instanceId"`
+ // The name of the MongoDB® instance from which the snapshot was created.
+ InstanceName *string `pulumi:"instanceName"`
+ // The name of the MongoDB® snapshot.
+ Name *string `pulumi:"name"`
+ // The type of node associated with the MongoDB® snapshot.
+ NodeType *string `pulumi:"nodeType"`
+ // `region`) The region in which the MongoDB® snapshot should be created.
+ Region *string `pulumi:"region"`
+ // The size of the MongoDB® snapshot in bytes.
+ Size *int `pulumi:"size"`
+ // The date and time of the last update of the MongoDB® snapshot.
+ UpdatedAt *string `pulumi:"updatedAt"`
+ // The type of volume used for the MongoDB® snapshot.
+ VolumeType *string `pulumi:"volumeType"`
+}
+
+type MongoDbSnapshotState struct {
+ // The date and time when the MongoDB® snapshot was created.
+ CreatedAt pulumi.StringPtrInput
+ // The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).
+ //
+ // > **Important:** Once set, `expiresAt` cannot be removed.
+ ExpiresAt pulumi.StringPtrInput
+ // The ID of the MongoDB® instance from which the snapshot was created.
+ InstanceId pulumi.StringPtrInput
+ // The name of the MongoDB® instance from which the snapshot was created.
+ InstanceName pulumi.StringPtrInput
+ // The name of the MongoDB® snapshot.
+ Name pulumi.StringPtrInput
+ // The type of node associated with the MongoDB® snapshot.
+ NodeType pulumi.StringPtrInput
+ // `region`) The region in which the MongoDB® snapshot should be created.
+ Region pulumi.StringPtrInput
+ // The size of the MongoDB® snapshot in bytes.
+ Size pulumi.IntPtrInput
+ // The date and time of the last update of the MongoDB® snapshot.
+ UpdatedAt pulumi.StringPtrInput
+ // The type of volume used for the MongoDB® snapshot.
+ VolumeType pulumi.StringPtrInput
+}
+
+func (MongoDbSnapshotState) ElementType() reflect.Type {
+ return reflect.TypeOf((*mongoDbSnapshotState)(nil)).Elem()
+}
+
+type mongoDbSnapshotArgs struct {
+ // The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).
+ //
+ // > **Important:** Once set, `expiresAt` cannot be removed.
+ ExpiresAt string `pulumi:"expiresAt"`
+ // The ID of the MongoDB® instance from which the snapshot was created.
+ InstanceId string `pulumi:"instanceId"`
+ // The name of the MongoDB® snapshot.
+ Name *string `pulumi:"name"`
+ // `region`) The region in which the MongoDB® snapshot should be created.
+ Region *string `pulumi:"region"`
+}
+
+// The set of arguments for constructing a MongoDbSnapshot resource.
+type MongoDbSnapshotArgs struct {
+ // The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).
+ //
+ // > **Important:** Once set, `expiresAt` cannot be removed.
+ ExpiresAt pulumi.StringInput
+ // The ID of the MongoDB® instance from which the snapshot was created.
+ InstanceId pulumi.StringInput
+ // The name of the MongoDB® snapshot.
+ Name pulumi.StringPtrInput
+ // `region`) The region in which the MongoDB® snapshot should be created.
+ Region pulumi.StringPtrInput
+}
+
+func (MongoDbSnapshotArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*mongoDbSnapshotArgs)(nil)).Elem()
+}
+
+type MongoDbSnapshotInput interface {
+ pulumi.Input
+
+ ToMongoDbSnapshotOutput() MongoDbSnapshotOutput
+ ToMongoDbSnapshotOutputWithContext(ctx context.Context) MongoDbSnapshotOutput
+}
+
+func (*MongoDbSnapshot) ElementType() reflect.Type {
+ return reflect.TypeOf((**MongoDbSnapshot)(nil)).Elem()
+}
+
+func (i *MongoDbSnapshot) ToMongoDbSnapshotOutput() MongoDbSnapshotOutput {
+ return i.ToMongoDbSnapshotOutputWithContext(context.Background())
+}
+
+func (i *MongoDbSnapshot) ToMongoDbSnapshotOutputWithContext(ctx context.Context) MongoDbSnapshotOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(MongoDbSnapshotOutput)
+}
+
+// MongoDbSnapshotArrayInput is an input type that accepts MongoDbSnapshotArray and MongoDbSnapshotArrayOutput values.
+// You can construct a concrete instance of `MongoDbSnapshotArrayInput` via:
+//
+// MongoDbSnapshotArray{ MongoDbSnapshotArgs{...} }
+type MongoDbSnapshotArrayInput interface {
+ pulumi.Input
+
+ ToMongoDbSnapshotArrayOutput() MongoDbSnapshotArrayOutput
+ ToMongoDbSnapshotArrayOutputWithContext(context.Context) MongoDbSnapshotArrayOutput
+}
+
+type MongoDbSnapshotArray []MongoDbSnapshotInput
+
+func (MongoDbSnapshotArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*MongoDbSnapshot)(nil)).Elem()
+}
+
+func (i MongoDbSnapshotArray) ToMongoDbSnapshotArrayOutput() MongoDbSnapshotArrayOutput {
+ return i.ToMongoDbSnapshotArrayOutputWithContext(context.Background())
+}
+
+func (i MongoDbSnapshotArray) ToMongoDbSnapshotArrayOutputWithContext(ctx context.Context) MongoDbSnapshotArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(MongoDbSnapshotArrayOutput)
+}
+
+// MongoDbSnapshotMapInput is an input type that accepts MongoDbSnapshotMap and MongoDbSnapshotMapOutput values.
+// You can construct a concrete instance of `MongoDbSnapshotMapInput` via:
+//
+// MongoDbSnapshotMap{ "key": MongoDbSnapshotArgs{...} }
+type MongoDbSnapshotMapInput interface {
+ pulumi.Input
+
+ ToMongoDbSnapshotMapOutput() MongoDbSnapshotMapOutput
+ ToMongoDbSnapshotMapOutputWithContext(context.Context) MongoDbSnapshotMapOutput
+}
+
+type MongoDbSnapshotMap map[string]MongoDbSnapshotInput
+
+func (MongoDbSnapshotMap) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*MongoDbSnapshot)(nil)).Elem()
+}
+
+func (i MongoDbSnapshotMap) ToMongoDbSnapshotMapOutput() MongoDbSnapshotMapOutput {
+ return i.ToMongoDbSnapshotMapOutputWithContext(context.Background())
+}
+
+func (i MongoDbSnapshotMap) ToMongoDbSnapshotMapOutputWithContext(ctx context.Context) MongoDbSnapshotMapOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(MongoDbSnapshotMapOutput)
+}
+
+type MongoDbSnapshotOutput struct{ *pulumi.OutputState }
+
+func (MongoDbSnapshotOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**MongoDbSnapshot)(nil)).Elem()
+}
+
+func (o MongoDbSnapshotOutput) ToMongoDbSnapshotOutput() MongoDbSnapshotOutput {
+ return o
+}
+
+func (o MongoDbSnapshotOutput) ToMongoDbSnapshotOutputWithContext(ctx context.Context) MongoDbSnapshotOutput {
+ return o
+}
+
+// The date and time when the MongoDB® snapshot was created.
+func (o MongoDbSnapshotOutput) CreatedAt() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbSnapshot) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput)
+}
+
+// The expiration date of the MongoDB® snapshot in ISO 8601 format (e.g. `2024-12-31T23:59:59Z`).
+//
+// > **Important:** Once set, `expiresAt` cannot be removed.
+func (o MongoDbSnapshotOutput) ExpiresAt() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbSnapshot) pulumi.StringOutput { return v.ExpiresAt }).(pulumi.StringOutput)
+}
+
+// The ID of the MongoDB® instance from which the snapshot was created.
+func (o MongoDbSnapshotOutput) InstanceId() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbSnapshot) pulumi.StringOutput { return v.InstanceId }).(pulumi.StringOutput)
+}
+
+// The name of the MongoDB® instance from which the snapshot was created.
+func (o MongoDbSnapshotOutput) InstanceName() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbSnapshot) pulumi.StringOutput { return v.InstanceName }).(pulumi.StringOutput)
+}
+
+// The name of the MongoDB® snapshot.
+func (o MongoDbSnapshotOutput) Name() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbSnapshot) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
+}
+
+// The type of node associated with the MongoDB® snapshot.
+func (o MongoDbSnapshotOutput) NodeType() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbSnapshot) pulumi.StringOutput { return v.NodeType }).(pulumi.StringOutput)
+}
+
+// `region`) The region in which the MongoDB® snapshot should be created.
+func (o MongoDbSnapshotOutput) Region() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbSnapshot) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput)
+}
+
+// The size of the MongoDB® snapshot in bytes.
+func (o MongoDbSnapshotOutput) Size() pulumi.IntOutput {
+ return o.ApplyT(func(v *MongoDbSnapshot) pulumi.IntOutput { return v.Size }).(pulumi.IntOutput)
+}
+
+// The date and time of the last update of the MongoDB® snapshot.
+func (o MongoDbSnapshotOutput) UpdatedAt() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbSnapshot) pulumi.StringOutput { return v.UpdatedAt }).(pulumi.StringOutput)
+}
+
+// The type of volume used for the MongoDB® snapshot.
+func (o MongoDbSnapshotOutput) VolumeType() pulumi.StringOutput {
+ return o.ApplyT(func(v *MongoDbSnapshot) pulumi.StringOutput { return v.VolumeType }).(pulumi.StringOutput)
+}
+
+type MongoDbSnapshotArrayOutput struct{ *pulumi.OutputState }
+
+func (MongoDbSnapshotArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*MongoDbSnapshot)(nil)).Elem()
+}
+
+func (o MongoDbSnapshotArrayOutput) ToMongoDbSnapshotArrayOutput() MongoDbSnapshotArrayOutput {
+ return o
+}
+
+func (o MongoDbSnapshotArrayOutput) ToMongoDbSnapshotArrayOutputWithContext(ctx context.Context) MongoDbSnapshotArrayOutput {
+ return o
+}
+
+func (o MongoDbSnapshotArrayOutput) Index(i pulumi.IntInput) MongoDbSnapshotOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MongoDbSnapshot {
+ return vs[0].([]*MongoDbSnapshot)[vs[1].(int)]
+ }).(MongoDbSnapshotOutput)
+}
+
+type MongoDbSnapshotMapOutput struct{ *pulumi.OutputState }
+
+func (MongoDbSnapshotMapOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*MongoDbSnapshot)(nil)).Elem()
+}
+
+func (o MongoDbSnapshotMapOutput) ToMongoDbSnapshotMapOutput() MongoDbSnapshotMapOutput {
+ return o
+}
+
+func (o MongoDbSnapshotMapOutput) ToMongoDbSnapshotMapOutputWithContext(ctx context.Context) MongoDbSnapshotMapOutput {
+ return o
+}
+
+func (o MongoDbSnapshotMapOutput) MapIndex(k pulumi.StringInput) MongoDbSnapshotOutput {
+ return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MongoDbSnapshot {
+ return vs[0].(map[string]*MongoDbSnapshot)[vs[1].(string)]
+ }).(MongoDbSnapshotOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*MongoDbSnapshotInput)(nil)).Elem(), &MongoDbSnapshot{})
+ pulumi.RegisterInputType(reflect.TypeOf((*MongoDbSnapshotArrayInput)(nil)).Elem(), MongoDbSnapshotArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*MongoDbSnapshotMapInput)(nil)).Elem(), MongoDbSnapshotMap{})
+ pulumi.RegisterOutputType(MongoDbSnapshotOutput{})
+ pulumi.RegisterOutputType(MongoDbSnapshotArrayOutput{})
+ pulumi.RegisterOutputType(MongoDbSnapshotMapOutput{})
+}
diff --git a/sdk/go/scaleway/objectBucket.go b/sdk/go/scaleway/objectBucket.go
index 6c0f834e..db1785e7 100644
--- a/sdk/go/scaleway/objectBucket.go
+++ b/sdk/go/scaleway/objectBucket.go
@@ -184,7 +184,7 @@ type ObjectBucket struct {
CorsRules ObjectBucketCorsRuleArrayOutput `pulumi:"corsRules"`
// The endpoint URL of the bucket.
Endpoint pulumi.StringOutput `pulumi:"endpoint"`
- // Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable
+ // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.
ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"`
// Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects
LifecycleRules ObjectBucketLifecycleRuleArrayOutput `pulumi:"lifecycleRules"`
@@ -246,7 +246,7 @@ type objectBucketState struct {
CorsRules []ObjectBucketCorsRule `pulumi:"corsRules"`
// The endpoint URL of the bucket.
Endpoint *string `pulumi:"endpoint"`
- // Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable
+ // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.
ForceDestroy *bool `pulumi:"forceDestroy"`
// Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects
LifecycleRules []ObjectBucketLifecycleRule `pulumi:"lifecycleRules"`
@@ -279,7 +279,7 @@ type ObjectBucketState struct {
CorsRules ObjectBucketCorsRuleArrayInput
// The endpoint URL of the bucket.
Endpoint pulumi.StringPtrInput
- // Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable
+ // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.
ForceDestroy pulumi.BoolPtrInput
// Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects
LifecycleRules ObjectBucketLifecycleRuleArrayInput
@@ -312,7 +312,7 @@ type objectBucketArgs struct {
// Deprecated: ACL attribute is deprecated. Please use the resource ObjectBucketAcl instead.
Acl *string `pulumi:"acl"`
CorsRules []ObjectBucketCorsRule `pulumi:"corsRules"`
- // Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable
+ // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.
ForceDestroy *bool `pulumi:"forceDestroy"`
// Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects
LifecycleRules []ObjectBucketLifecycleRule `pulumi:"lifecycleRules"`
@@ -342,7 +342,7 @@ type ObjectBucketArgs struct {
// Deprecated: ACL attribute is deprecated. Please use the resource ObjectBucketAcl instead.
Acl pulumi.StringPtrInput
CorsRules ObjectBucketCorsRuleArrayInput
- // Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable
+ // Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.
ForceDestroy pulumi.BoolPtrInput
// Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects
LifecycleRules ObjectBucketLifecycleRuleArrayInput
@@ -473,7 +473,7 @@ func (o ObjectBucketOutput) Endpoint() pulumi.StringOutput {
return o.ApplyT(func(v *ObjectBucket) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
}
-// Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable
+// Whether to allow the object to be deleted by removing any legal hold on any object version. Default is false. This value should be set to true only if the bucket has object lock enabled.
func (o ObjectBucketOutput) ForceDestroy() pulumi.BoolPtrOutput {
return o.ApplyT(func(v *ObjectBucket) pulumi.BoolPtrOutput { return v.ForceDestroy }).(pulumi.BoolPtrOutput)
}
diff --git a/sdk/go/scaleway/pulumiTypes.go b/sdk/go/scaleway/pulumiTypes.go
index 7d0e0ce4..9c06d4cf 100644
--- a/sdk/go/scaleway/pulumiTypes.go
+++ b/sdk/go/scaleway/pulumiTypes.go
@@ -505,6 +505,8 @@ type BaremetalServerPrivateNetwork struct {
CreatedAt *string `pulumi:"createdAt"`
// The id of the private network to attach.
Id string `pulumi:"id"`
+ // List of IPAM IP IDs to assign to the server in the requested private network.
+ IpamIpIds []string `pulumi:"ipamIpIds"`
// The private network status.
Status *string `pulumi:"status"`
// The date and time of the last update of the private network.
@@ -529,6 +531,8 @@ type BaremetalServerPrivateNetworkArgs struct {
CreatedAt pulumi.StringPtrInput `pulumi:"createdAt"`
// The id of the private network to attach.
Id pulumi.StringInput `pulumi:"id"`
+ // List of IPAM IP IDs to assign to the server in the requested private network.
+ IpamIpIds pulumi.StringArrayInput `pulumi:"ipamIpIds"`
// The private network status.
Status pulumi.StringPtrInput `pulumi:"status"`
// The date and time of the last update of the private network.
@@ -598,6 +602,11 @@ func (o BaremetalServerPrivateNetworkOutput) Id() pulumi.StringOutput {
return o.ApplyT(func(v BaremetalServerPrivateNetwork) string { return v.Id }).(pulumi.StringOutput)
}
+// List of IPAM IP IDs to assign to the server in the requested private network.
+func (o BaremetalServerPrivateNetworkOutput) IpamIpIds() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v BaremetalServerPrivateNetwork) []string { return v.IpamIpIds }).(pulumi.StringArrayOutput)
+}
+
// The private network status.
func (o BaremetalServerPrivateNetworkOutput) Status() pulumi.StringPtrOutput {
return o.ApplyT(func(v BaremetalServerPrivateNetwork) *string { return v.Status }).(pulumi.StringPtrOutput)
@@ -4172,6 +4181,394 @@ func (o IamPolicyRuleArrayOutput) Index(i pulumi.IntInput) IamPolicyRuleOutput {
}).(IamPolicyRuleOutput)
}
+type InferenceDeploymentPrivateEndpoint struct {
+ // Disable the authentication on the endpoint.
+ DisableAuth *bool `pulumi:"disableAuth"`
+ // (Optional) The id of the public endpoint.
+ Id *string `pulumi:"id"`
+ // The ID of the private network to use.
+ PrivateNetworkId *string `pulumi:"privateNetworkId"`
+ // (Optional) The URL of the endpoint.
+ Url *string `pulumi:"url"`
+}
+
+// InferenceDeploymentPrivateEndpointInput is an input type that accepts InferenceDeploymentPrivateEndpointArgs and InferenceDeploymentPrivateEndpointOutput values.
+// You can construct a concrete instance of `InferenceDeploymentPrivateEndpointInput` via:
+//
+// InferenceDeploymentPrivateEndpointArgs{...}
+type InferenceDeploymentPrivateEndpointInput interface {
+ pulumi.Input
+
+ ToInferenceDeploymentPrivateEndpointOutput() InferenceDeploymentPrivateEndpointOutput
+ ToInferenceDeploymentPrivateEndpointOutputWithContext(context.Context) InferenceDeploymentPrivateEndpointOutput
+}
+
+type InferenceDeploymentPrivateEndpointArgs struct {
+ // Disable the authentication on the endpoint.
+ DisableAuth pulumi.BoolPtrInput `pulumi:"disableAuth"`
+ // (Optional) The id of the public endpoint.
+ Id pulumi.StringPtrInput `pulumi:"id"`
+ // The ID of the private network to use.
+ PrivateNetworkId pulumi.StringPtrInput `pulumi:"privateNetworkId"`
+ // (Optional) The URL of the endpoint.
+ Url pulumi.StringPtrInput `pulumi:"url"`
+}
+
+func (InferenceDeploymentPrivateEndpointArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*InferenceDeploymentPrivateEndpoint)(nil)).Elem()
+}
+
+func (i InferenceDeploymentPrivateEndpointArgs) ToInferenceDeploymentPrivateEndpointOutput() InferenceDeploymentPrivateEndpointOutput {
+ return i.ToInferenceDeploymentPrivateEndpointOutputWithContext(context.Background())
+}
+
+func (i InferenceDeploymentPrivateEndpointArgs) ToInferenceDeploymentPrivateEndpointOutputWithContext(ctx context.Context) InferenceDeploymentPrivateEndpointOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(InferenceDeploymentPrivateEndpointOutput)
+}
+
+func (i InferenceDeploymentPrivateEndpointArgs) ToInferenceDeploymentPrivateEndpointPtrOutput() InferenceDeploymentPrivateEndpointPtrOutput {
+ return i.ToInferenceDeploymentPrivateEndpointPtrOutputWithContext(context.Background())
+}
+
+func (i InferenceDeploymentPrivateEndpointArgs) ToInferenceDeploymentPrivateEndpointPtrOutputWithContext(ctx context.Context) InferenceDeploymentPrivateEndpointPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(InferenceDeploymentPrivateEndpointOutput).ToInferenceDeploymentPrivateEndpointPtrOutputWithContext(ctx)
+}
+
+// InferenceDeploymentPrivateEndpointPtrInput is an input type that accepts InferenceDeploymentPrivateEndpointArgs, InferenceDeploymentPrivateEndpointPtr and InferenceDeploymentPrivateEndpointPtrOutput values.
+// You can construct a concrete instance of `InferenceDeploymentPrivateEndpointPtrInput` via:
+//
+// InferenceDeploymentPrivateEndpointArgs{...}
+//
+// or:
+//
+// nil
+type InferenceDeploymentPrivateEndpointPtrInput interface {
+ pulumi.Input
+
+ ToInferenceDeploymentPrivateEndpointPtrOutput() InferenceDeploymentPrivateEndpointPtrOutput
+ ToInferenceDeploymentPrivateEndpointPtrOutputWithContext(context.Context) InferenceDeploymentPrivateEndpointPtrOutput
+}
+
+type inferenceDeploymentPrivateEndpointPtrType InferenceDeploymentPrivateEndpointArgs
+
+func InferenceDeploymentPrivateEndpointPtr(v *InferenceDeploymentPrivateEndpointArgs) InferenceDeploymentPrivateEndpointPtrInput {
+ return (*inferenceDeploymentPrivateEndpointPtrType)(v)
+}
+
+func (*inferenceDeploymentPrivateEndpointPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**InferenceDeploymentPrivateEndpoint)(nil)).Elem()
+}
+
+func (i *inferenceDeploymentPrivateEndpointPtrType) ToInferenceDeploymentPrivateEndpointPtrOutput() InferenceDeploymentPrivateEndpointPtrOutput {
+ return i.ToInferenceDeploymentPrivateEndpointPtrOutputWithContext(context.Background())
+}
+
+func (i *inferenceDeploymentPrivateEndpointPtrType) ToInferenceDeploymentPrivateEndpointPtrOutputWithContext(ctx context.Context) InferenceDeploymentPrivateEndpointPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(InferenceDeploymentPrivateEndpointPtrOutput)
+}
+
+type InferenceDeploymentPrivateEndpointOutput struct{ *pulumi.OutputState }
+
+func (InferenceDeploymentPrivateEndpointOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*InferenceDeploymentPrivateEndpoint)(nil)).Elem()
+}
+
+func (o InferenceDeploymentPrivateEndpointOutput) ToInferenceDeploymentPrivateEndpointOutput() InferenceDeploymentPrivateEndpointOutput {
+ return o
+}
+
+func (o InferenceDeploymentPrivateEndpointOutput) ToInferenceDeploymentPrivateEndpointOutputWithContext(ctx context.Context) InferenceDeploymentPrivateEndpointOutput {
+ return o
+}
+
+func (o InferenceDeploymentPrivateEndpointOutput) ToInferenceDeploymentPrivateEndpointPtrOutput() InferenceDeploymentPrivateEndpointPtrOutput {
+ return o.ToInferenceDeploymentPrivateEndpointPtrOutputWithContext(context.Background())
+}
+
+func (o InferenceDeploymentPrivateEndpointOutput) ToInferenceDeploymentPrivateEndpointPtrOutputWithContext(ctx context.Context) InferenceDeploymentPrivateEndpointPtrOutput {
+ return o.ApplyTWithContext(ctx, func(_ context.Context, v InferenceDeploymentPrivateEndpoint) *InferenceDeploymentPrivateEndpoint {
+ return &v
+ }).(InferenceDeploymentPrivateEndpointPtrOutput)
+}
+
+// Disable the authentication on the endpoint.
+func (o InferenceDeploymentPrivateEndpointOutput) DisableAuth() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v InferenceDeploymentPrivateEndpoint) *bool { return v.DisableAuth }).(pulumi.BoolPtrOutput)
+}
+
+// (Optional) The id of the public endpoint.
+func (o InferenceDeploymentPrivateEndpointOutput) Id() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v InferenceDeploymentPrivateEndpoint) *string { return v.Id }).(pulumi.StringPtrOutput)
+}
+
+// The ID of the private network to use.
+func (o InferenceDeploymentPrivateEndpointOutput) PrivateNetworkId() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v InferenceDeploymentPrivateEndpoint) *string { return v.PrivateNetworkId }).(pulumi.StringPtrOutput)
+}
+
+// (Optional) The URL of the endpoint.
+func (o InferenceDeploymentPrivateEndpointOutput) Url() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v InferenceDeploymentPrivateEndpoint) *string { return v.Url }).(pulumi.StringPtrOutput)
+}
+
+type InferenceDeploymentPrivateEndpointPtrOutput struct{ *pulumi.OutputState }
+
+func (InferenceDeploymentPrivateEndpointPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**InferenceDeploymentPrivateEndpoint)(nil)).Elem()
+}
+
+func (o InferenceDeploymentPrivateEndpointPtrOutput) ToInferenceDeploymentPrivateEndpointPtrOutput() InferenceDeploymentPrivateEndpointPtrOutput {
+ return o
+}
+
+func (o InferenceDeploymentPrivateEndpointPtrOutput) ToInferenceDeploymentPrivateEndpointPtrOutputWithContext(ctx context.Context) InferenceDeploymentPrivateEndpointPtrOutput {
+ return o
+}
+
+func (o InferenceDeploymentPrivateEndpointPtrOutput) Elem() InferenceDeploymentPrivateEndpointOutput {
+ return o.ApplyT(func(v *InferenceDeploymentPrivateEndpoint) InferenceDeploymentPrivateEndpoint {
+ if v != nil {
+ return *v
+ }
+ var ret InferenceDeploymentPrivateEndpoint
+ return ret
+ }).(InferenceDeploymentPrivateEndpointOutput)
+}
+
+// Disable the authentication on the endpoint.
+func (o InferenceDeploymentPrivateEndpointPtrOutput) DisableAuth() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v *InferenceDeploymentPrivateEndpoint) *bool {
+ if v == nil {
+ return nil
+ }
+ return v.DisableAuth
+ }).(pulumi.BoolPtrOutput)
+}
+
+// (Optional) The id of the public endpoint.
+func (o InferenceDeploymentPrivateEndpointPtrOutput) Id() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *InferenceDeploymentPrivateEndpoint) *string {
+ if v == nil {
+ return nil
+ }
+ return v.Id
+ }).(pulumi.StringPtrOutput)
+}
+
+// The ID of the private network to use.
+func (o InferenceDeploymentPrivateEndpointPtrOutput) PrivateNetworkId() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *InferenceDeploymentPrivateEndpoint) *string {
+ if v == nil {
+ return nil
+ }
+ return v.PrivateNetworkId
+ }).(pulumi.StringPtrOutput)
+}
+
+// (Optional) The URL of the endpoint.
+func (o InferenceDeploymentPrivateEndpointPtrOutput) Url() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *InferenceDeploymentPrivateEndpoint) *string {
+ if v == nil {
+ return nil
+ }
+ return v.Url
+ }).(pulumi.StringPtrOutput)
+}
+
+type InferenceDeploymentPublicEndpoint struct {
+ // Disable the authentication on the endpoint.
+ DisableAuth *bool `pulumi:"disableAuth"`
+ // (Optional) The id of the public endpoint.
+ Id *string `pulumi:"id"`
+ // Enable or disable public endpoint.
+ IsEnabled *bool `pulumi:"isEnabled"`
+ // (Optional) The URL of the endpoint.
+ Url *string `pulumi:"url"`
+}
+
+// InferenceDeploymentPublicEndpointInput is an input type that accepts InferenceDeploymentPublicEndpointArgs and InferenceDeploymentPublicEndpointOutput values.
+// You can construct a concrete instance of `InferenceDeploymentPublicEndpointInput` via:
+//
+// InferenceDeploymentPublicEndpointArgs{...}
+type InferenceDeploymentPublicEndpointInput interface {
+ pulumi.Input
+
+ ToInferenceDeploymentPublicEndpointOutput() InferenceDeploymentPublicEndpointOutput
+ ToInferenceDeploymentPublicEndpointOutputWithContext(context.Context) InferenceDeploymentPublicEndpointOutput
+}
+
+type InferenceDeploymentPublicEndpointArgs struct {
+ // Disable the authentication on the endpoint.
+ DisableAuth pulumi.BoolPtrInput `pulumi:"disableAuth"`
+ // (Optional) The id of the public endpoint.
+ Id pulumi.StringPtrInput `pulumi:"id"`
+ // Enable or disable public endpoint.
+ IsEnabled pulumi.BoolPtrInput `pulumi:"isEnabled"`
+ // (Optional) The URL of the endpoint.
+ Url pulumi.StringPtrInput `pulumi:"url"`
+}
+
+func (InferenceDeploymentPublicEndpointArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*InferenceDeploymentPublicEndpoint)(nil)).Elem()
+}
+
+func (i InferenceDeploymentPublicEndpointArgs) ToInferenceDeploymentPublicEndpointOutput() InferenceDeploymentPublicEndpointOutput {
+ return i.ToInferenceDeploymentPublicEndpointOutputWithContext(context.Background())
+}
+
+func (i InferenceDeploymentPublicEndpointArgs) ToInferenceDeploymentPublicEndpointOutputWithContext(ctx context.Context) InferenceDeploymentPublicEndpointOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(InferenceDeploymentPublicEndpointOutput)
+}
+
+func (i InferenceDeploymentPublicEndpointArgs) ToInferenceDeploymentPublicEndpointPtrOutput() InferenceDeploymentPublicEndpointPtrOutput {
+ return i.ToInferenceDeploymentPublicEndpointPtrOutputWithContext(context.Background())
+}
+
+func (i InferenceDeploymentPublicEndpointArgs) ToInferenceDeploymentPublicEndpointPtrOutputWithContext(ctx context.Context) InferenceDeploymentPublicEndpointPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(InferenceDeploymentPublicEndpointOutput).ToInferenceDeploymentPublicEndpointPtrOutputWithContext(ctx)
+}
+
+// InferenceDeploymentPublicEndpointPtrInput is an input type that accepts InferenceDeploymentPublicEndpointArgs, InferenceDeploymentPublicEndpointPtr and InferenceDeploymentPublicEndpointPtrOutput values.
+// You can construct a concrete instance of `InferenceDeploymentPublicEndpointPtrInput` via:
+//
+// InferenceDeploymentPublicEndpointArgs{...}
+//
+// or:
+//
+// nil
+type InferenceDeploymentPublicEndpointPtrInput interface {
+ pulumi.Input
+
+ ToInferenceDeploymentPublicEndpointPtrOutput() InferenceDeploymentPublicEndpointPtrOutput
+ ToInferenceDeploymentPublicEndpointPtrOutputWithContext(context.Context) InferenceDeploymentPublicEndpointPtrOutput
+}
+
+type inferenceDeploymentPublicEndpointPtrType InferenceDeploymentPublicEndpointArgs
+
+func InferenceDeploymentPublicEndpointPtr(v *InferenceDeploymentPublicEndpointArgs) InferenceDeploymentPublicEndpointPtrInput {
+ return (*inferenceDeploymentPublicEndpointPtrType)(v)
+}
+
+func (*inferenceDeploymentPublicEndpointPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**InferenceDeploymentPublicEndpoint)(nil)).Elem()
+}
+
+func (i *inferenceDeploymentPublicEndpointPtrType) ToInferenceDeploymentPublicEndpointPtrOutput() InferenceDeploymentPublicEndpointPtrOutput {
+ return i.ToInferenceDeploymentPublicEndpointPtrOutputWithContext(context.Background())
+}
+
+func (i *inferenceDeploymentPublicEndpointPtrType) ToInferenceDeploymentPublicEndpointPtrOutputWithContext(ctx context.Context) InferenceDeploymentPublicEndpointPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(InferenceDeploymentPublicEndpointPtrOutput)
+}
+
+type InferenceDeploymentPublicEndpointOutput struct{ *pulumi.OutputState }
+
+func (InferenceDeploymentPublicEndpointOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*InferenceDeploymentPublicEndpoint)(nil)).Elem()
+}
+
+func (o InferenceDeploymentPublicEndpointOutput) ToInferenceDeploymentPublicEndpointOutput() InferenceDeploymentPublicEndpointOutput {
+ return o
+}
+
+func (o InferenceDeploymentPublicEndpointOutput) ToInferenceDeploymentPublicEndpointOutputWithContext(ctx context.Context) InferenceDeploymentPublicEndpointOutput {
+ return o
+}
+
+func (o InferenceDeploymentPublicEndpointOutput) ToInferenceDeploymentPublicEndpointPtrOutput() InferenceDeploymentPublicEndpointPtrOutput {
+ return o.ToInferenceDeploymentPublicEndpointPtrOutputWithContext(context.Background())
+}
+
+func (o InferenceDeploymentPublicEndpointOutput) ToInferenceDeploymentPublicEndpointPtrOutputWithContext(ctx context.Context) InferenceDeploymentPublicEndpointPtrOutput {
+ return o.ApplyTWithContext(ctx, func(_ context.Context, v InferenceDeploymentPublicEndpoint) *InferenceDeploymentPublicEndpoint {
+ return &v
+ }).(InferenceDeploymentPublicEndpointPtrOutput)
+}
+
+// Disable the authentication on the endpoint.
+func (o InferenceDeploymentPublicEndpointOutput) DisableAuth() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v InferenceDeploymentPublicEndpoint) *bool { return v.DisableAuth }).(pulumi.BoolPtrOutput)
+}
+
+// (Optional) The id of the public endpoint.
+func (o InferenceDeploymentPublicEndpointOutput) Id() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v InferenceDeploymentPublicEndpoint) *string { return v.Id }).(pulumi.StringPtrOutput)
+}
+
+// Enable or disable public endpoint.
+func (o InferenceDeploymentPublicEndpointOutput) IsEnabled() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v InferenceDeploymentPublicEndpoint) *bool { return v.IsEnabled }).(pulumi.BoolPtrOutput)
+}
+
+// (Optional) The URL of the endpoint.
+func (o InferenceDeploymentPublicEndpointOutput) Url() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v InferenceDeploymentPublicEndpoint) *string { return v.Url }).(pulumi.StringPtrOutput)
+}
+
+type InferenceDeploymentPublicEndpointPtrOutput struct{ *pulumi.OutputState }
+
+func (InferenceDeploymentPublicEndpointPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**InferenceDeploymentPublicEndpoint)(nil)).Elem()
+}
+
+func (o InferenceDeploymentPublicEndpointPtrOutput) ToInferenceDeploymentPublicEndpointPtrOutput() InferenceDeploymentPublicEndpointPtrOutput {
+ return o
+}
+
+func (o InferenceDeploymentPublicEndpointPtrOutput) ToInferenceDeploymentPublicEndpointPtrOutputWithContext(ctx context.Context) InferenceDeploymentPublicEndpointPtrOutput {
+ return o
+}
+
+func (o InferenceDeploymentPublicEndpointPtrOutput) Elem() InferenceDeploymentPublicEndpointOutput {
+ return o.ApplyT(func(v *InferenceDeploymentPublicEndpoint) InferenceDeploymentPublicEndpoint {
+ if v != nil {
+ return *v
+ }
+ var ret InferenceDeploymentPublicEndpoint
+ return ret
+ }).(InferenceDeploymentPublicEndpointOutput)
+}
+
+// Disable the authentication on the endpoint.
+func (o InferenceDeploymentPublicEndpointPtrOutput) DisableAuth() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v *InferenceDeploymentPublicEndpoint) *bool {
+ if v == nil {
+ return nil
+ }
+ return v.DisableAuth
+ }).(pulumi.BoolPtrOutput)
+}
+
+// (Optional) The id of the public endpoint.
+func (o InferenceDeploymentPublicEndpointPtrOutput) Id() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *InferenceDeploymentPublicEndpoint) *string {
+ if v == nil {
+ return nil
+ }
+ return v.Id
+ }).(pulumi.StringPtrOutput)
+}
+
+// Enable or disable public endpoint.
+func (o InferenceDeploymentPublicEndpointPtrOutput) IsEnabled() pulumi.BoolPtrOutput {
+ return o.ApplyT(func(v *InferenceDeploymentPublicEndpoint) *bool {
+ if v == nil {
+ return nil
+ }
+ return v.IsEnabled
+ }).(pulumi.BoolPtrOutput)
+}
+
+// (Optional) The URL of the endpoint.
+func (o InferenceDeploymentPublicEndpointPtrOutput) Url() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *InferenceDeploymentPublicEndpoint) *string {
+ if v == nil {
+ return nil
+ }
+ return v.Url
+ }).(pulumi.StringPtrOutput)
+}
+
type InstanceImageAdditionalVolume struct {
// Date of the volume creation.
CreationDate *string `pulumi:"creationDate"`
@@ -6884,6 +7281,112 @@ func (o IotRouteS3PtrOutput) Strategy() pulumi.StringPtrOutput {
}).(pulumi.StringPtrOutput)
}
+type IpamIpCustomResource struct {
+ // The MAC address of the resource the IP is attached to.
+ MacAddress string `pulumi:"macAddress"`
+ // The name of the resource the IP is attached to.
+ Name *string `pulumi:"name"`
+}
+
+// IpamIpCustomResourceInput is an input type that accepts IpamIpCustomResourceArgs and IpamIpCustomResourceOutput values.
+// You can construct a concrete instance of `IpamIpCustomResourceInput` via:
+//
+// IpamIpCustomResourceArgs{...}
+type IpamIpCustomResourceInput interface {
+ pulumi.Input
+
+ ToIpamIpCustomResourceOutput() IpamIpCustomResourceOutput
+ ToIpamIpCustomResourceOutputWithContext(context.Context) IpamIpCustomResourceOutput
+}
+
+type IpamIpCustomResourceArgs struct {
+ // The MAC address of the resource the IP is attached to.
+ MacAddress pulumi.StringInput `pulumi:"macAddress"`
+ // The name of the resource the IP is attached to.
+ Name pulumi.StringPtrInput `pulumi:"name"`
+}
+
+func (IpamIpCustomResourceArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*IpamIpCustomResource)(nil)).Elem()
+}
+
+func (i IpamIpCustomResourceArgs) ToIpamIpCustomResourceOutput() IpamIpCustomResourceOutput {
+ return i.ToIpamIpCustomResourceOutputWithContext(context.Background())
+}
+
+func (i IpamIpCustomResourceArgs) ToIpamIpCustomResourceOutputWithContext(ctx context.Context) IpamIpCustomResourceOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(IpamIpCustomResourceOutput)
+}
+
+// IpamIpCustomResourceArrayInput is an input type that accepts IpamIpCustomResourceArray and IpamIpCustomResourceArrayOutput values.
+// You can construct a concrete instance of `IpamIpCustomResourceArrayInput` via:
+//
+// IpamIpCustomResourceArray{ IpamIpCustomResourceArgs{...} }
+type IpamIpCustomResourceArrayInput interface {
+ pulumi.Input
+
+ ToIpamIpCustomResourceArrayOutput() IpamIpCustomResourceArrayOutput
+ ToIpamIpCustomResourceArrayOutputWithContext(context.Context) IpamIpCustomResourceArrayOutput
+}
+
+type IpamIpCustomResourceArray []IpamIpCustomResourceInput
+
+func (IpamIpCustomResourceArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]IpamIpCustomResource)(nil)).Elem()
+}
+
+func (i IpamIpCustomResourceArray) ToIpamIpCustomResourceArrayOutput() IpamIpCustomResourceArrayOutput {
+ return i.ToIpamIpCustomResourceArrayOutputWithContext(context.Background())
+}
+
+func (i IpamIpCustomResourceArray) ToIpamIpCustomResourceArrayOutputWithContext(ctx context.Context) IpamIpCustomResourceArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(IpamIpCustomResourceArrayOutput)
+}
+
+type IpamIpCustomResourceOutput struct{ *pulumi.OutputState }
+
+func (IpamIpCustomResourceOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*IpamIpCustomResource)(nil)).Elem()
+}
+
+func (o IpamIpCustomResourceOutput) ToIpamIpCustomResourceOutput() IpamIpCustomResourceOutput {
+ return o
+}
+
+func (o IpamIpCustomResourceOutput) ToIpamIpCustomResourceOutputWithContext(ctx context.Context) IpamIpCustomResourceOutput {
+ return o
+}
+
+// The MAC address of the resource the IP is attached to.
+func (o IpamIpCustomResourceOutput) MacAddress() pulumi.StringOutput {
+ return o.ApplyT(func(v IpamIpCustomResource) string { return v.MacAddress }).(pulumi.StringOutput)
+}
+
+// The name of the resource the IP is attached to.
+func (o IpamIpCustomResourceOutput) Name() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v IpamIpCustomResource) *string { return v.Name }).(pulumi.StringPtrOutput)
+}
+
+type IpamIpCustomResourceArrayOutput struct{ *pulumi.OutputState }
+
+func (IpamIpCustomResourceArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]IpamIpCustomResource)(nil)).Elem()
+}
+
+func (o IpamIpCustomResourceArrayOutput) ToIpamIpCustomResourceArrayOutput() IpamIpCustomResourceArrayOutput {
+ return o
+}
+
+func (o IpamIpCustomResourceArrayOutput) ToIpamIpCustomResourceArrayOutputWithContext(ctx context.Context) IpamIpCustomResourceArrayOutput {
+ return o
+}
+
+func (o IpamIpCustomResourceArrayOutput) Index(i pulumi.IntInput) IpamIpCustomResourceOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) IpamIpCustomResource {
+ return vs[0].([]IpamIpCustomResource)[vs[1].(int)]
+ }).(IpamIpCustomResourceOutput)
+}
+
type IpamIpResource struct {
// The ID of the resource that the IP is attached to.
Id *string `pulumi:"id"`
@@ -10775,6 +11278,181 @@ func (o MnqSqsCredentialsPermissionsPtrOutput) CanReceive() pulumi.BoolPtrOutput
}).(pulumi.BoolPtrOutput)
}
+type MongoDbInstancePublicNetwork struct {
+ // The DNS record of your endpoint
+ DnsRecord *string `pulumi:"dnsRecord"`
+ // The ID of the MongoDB® instance.
+ Id *string `pulumi:"id"`
+ // TCP port of the endpoint
+ Port *int `pulumi:"port"`
+}
+
+// MongoDbInstancePublicNetworkInput is an input type that accepts MongoDbInstancePublicNetworkArgs and MongoDbInstancePublicNetworkOutput values.
+// You can construct a concrete instance of `MongoDbInstancePublicNetworkInput` via:
+//
+// MongoDbInstancePublicNetworkArgs{...}
+type MongoDbInstancePublicNetworkInput interface {
+ pulumi.Input
+
+ ToMongoDbInstancePublicNetworkOutput() MongoDbInstancePublicNetworkOutput
+ ToMongoDbInstancePublicNetworkOutputWithContext(context.Context) MongoDbInstancePublicNetworkOutput
+}
+
+type MongoDbInstancePublicNetworkArgs struct {
+ // The DNS record of your endpoint
+ DnsRecord pulumi.StringPtrInput `pulumi:"dnsRecord"`
+ // The ID of the MongoDB® instance.
+ Id pulumi.StringPtrInput `pulumi:"id"`
+ // TCP port of the endpoint
+ Port pulumi.IntPtrInput `pulumi:"port"`
+}
+
+func (MongoDbInstancePublicNetworkArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*MongoDbInstancePublicNetwork)(nil)).Elem()
+}
+
+func (i MongoDbInstancePublicNetworkArgs) ToMongoDbInstancePublicNetworkOutput() MongoDbInstancePublicNetworkOutput {
+ return i.ToMongoDbInstancePublicNetworkOutputWithContext(context.Background())
+}
+
+func (i MongoDbInstancePublicNetworkArgs) ToMongoDbInstancePublicNetworkOutputWithContext(ctx context.Context) MongoDbInstancePublicNetworkOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(MongoDbInstancePublicNetworkOutput)
+}
+
+func (i MongoDbInstancePublicNetworkArgs) ToMongoDbInstancePublicNetworkPtrOutput() MongoDbInstancePublicNetworkPtrOutput {
+ return i.ToMongoDbInstancePublicNetworkPtrOutputWithContext(context.Background())
+}
+
+func (i MongoDbInstancePublicNetworkArgs) ToMongoDbInstancePublicNetworkPtrOutputWithContext(ctx context.Context) MongoDbInstancePublicNetworkPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(MongoDbInstancePublicNetworkOutput).ToMongoDbInstancePublicNetworkPtrOutputWithContext(ctx)
+}
+
+// MongoDbInstancePublicNetworkPtrInput is an input type that accepts MongoDbInstancePublicNetworkArgs, MongoDbInstancePublicNetworkPtr and MongoDbInstancePublicNetworkPtrOutput values.
+// You can construct a concrete instance of `MongoDbInstancePublicNetworkPtrInput` via:
+//
+// MongoDbInstancePublicNetworkArgs{...}
+//
+// or:
+//
+// nil
+type MongoDbInstancePublicNetworkPtrInput interface {
+ pulumi.Input
+
+ ToMongoDbInstancePublicNetworkPtrOutput() MongoDbInstancePublicNetworkPtrOutput
+ ToMongoDbInstancePublicNetworkPtrOutputWithContext(context.Context) MongoDbInstancePublicNetworkPtrOutput
+}
+
+type mongoDbInstancePublicNetworkPtrType MongoDbInstancePublicNetworkArgs
+
+func MongoDbInstancePublicNetworkPtr(v *MongoDbInstancePublicNetworkArgs) MongoDbInstancePublicNetworkPtrInput {
+ return (*mongoDbInstancePublicNetworkPtrType)(v)
+}
+
+func (*mongoDbInstancePublicNetworkPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**MongoDbInstancePublicNetwork)(nil)).Elem()
+}
+
+func (i *mongoDbInstancePublicNetworkPtrType) ToMongoDbInstancePublicNetworkPtrOutput() MongoDbInstancePublicNetworkPtrOutput {
+ return i.ToMongoDbInstancePublicNetworkPtrOutputWithContext(context.Background())
+}
+
+func (i *mongoDbInstancePublicNetworkPtrType) ToMongoDbInstancePublicNetworkPtrOutputWithContext(ctx context.Context) MongoDbInstancePublicNetworkPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(MongoDbInstancePublicNetworkPtrOutput)
+}
+
+type MongoDbInstancePublicNetworkOutput struct{ *pulumi.OutputState }
+
+func (MongoDbInstancePublicNetworkOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*MongoDbInstancePublicNetwork)(nil)).Elem()
+}
+
+func (o MongoDbInstancePublicNetworkOutput) ToMongoDbInstancePublicNetworkOutput() MongoDbInstancePublicNetworkOutput {
+ return o
+}
+
+func (o MongoDbInstancePublicNetworkOutput) ToMongoDbInstancePublicNetworkOutputWithContext(ctx context.Context) MongoDbInstancePublicNetworkOutput {
+ return o
+}
+
+func (o MongoDbInstancePublicNetworkOutput) ToMongoDbInstancePublicNetworkPtrOutput() MongoDbInstancePublicNetworkPtrOutput {
+ return o.ToMongoDbInstancePublicNetworkPtrOutputWithContext(context.Background())
+}
+
+func (o MongoDbInstancePublicNetworkOutput) ToMongoDbInstancePublicNetworkPtrOutputWithContext(ctx context.Context) MongoDbInstancePublicNetworkPtrOutput {
+ return o.ApplyTWithContext(ctx, func(_ context.Context, v MongoDbInstancePublicNetwork) *MongoDbInstancePublicNetwork {
+ return &v
+ }).(MongoDbInstancePublicNetworkPtrOutput)
+}
+
+// The DNS record of your endpoint
+func (o MongoDbInstancePublicNetworkOutput) DnsRecord() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v MongoDbInstancePublicNetwork) *string { return v.DnsRecord }).(pulumi.StringPtrOutput)
+}
+
+// The ID of the MongoDB® instance.
+func (o MongoDbInstancePublicNetworkOutput) Id() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v MongoDbInstancePublicNetwork) *string { return v.Id }).(pulumi.StringPtrOutput)
+}
+
+// TCP port of the endpoint
+func (o MongoDbInstancePublicNetworkOutput) Port() pulumi.IntPtrOutput {
+ return o.ApplyT(func(v MongoDbInstancePublicNetwork) *int { return v.Port }).(pulumi.IntPtrOutput)
+}
+
+type MongoDbInstancePublicNetworkPtrOutput struct{ *pulumi.OutputState }
+
+func (MongoDbInstancePublicNetworkPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**MongoDbInstancePublicNetwork)(nil)).Elem()
+}
+
+func (o MongoDbInstancePublicNetworkPtrOutput) ToMongoDbInstancePublicNetworkPtrOutput() MongoDbInstancePublicNetworkPtrOutput {
+ return o
+}
+
+func (o MongoDbInstancePublicNetworkPtrOutput) ToMongoDbInstancePublicNetworkPtrOutputWithContext(ctx context.Context) MongoDbInstancePublicNetworkPtrOutput {
+ return o
+}
+
+func (o MongoDbInstancePublicNetworkPtrOutput) Elem() MongoDbInstancePublicNetworkOutput {
+ return o.ApplyT(func(v *MongoDbInstancePublicNetwork) MongoDbInstancePublicNetwork {
+ if v != nil {
+ return *v
+ }
+ var ret MongoDbInstancePublicNetwork
+ return ret
+ }).(MongoDbInstancePublicNetworkOutput)
+}
+
+// The DNS record of your endpoint
+func (o MongoDbInstancePublicNetworkPtrOutput) DnsRecord() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *MongoDbInstancePublicNetwork) *string {
+ if v == nil {
+ return nil
+ }
+ return v.DnsRecord
+ }).(pulumi.StringPtrOutput)
+}
+
+// The ID of the MongoDB® instance.
+func (o MongoDbInstancePublicNetworkPtrOutput) Id() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *MongoDbInstancePublicNetwork) *string {
+ if v == nil {
+ return nil
+ }
+ return v.Id
+ }).(pulumi.StringPtrOutput)
+}
+
+// TCP port of the endpoint
+func (o MongoDbInstancePublicNetworkPtrOutput) Port() pulumi.IntPtrOutput {
+ return o.ApplyT(func(v *MongoDbInstancePublicNetwork) *int {
+ if v == nil {
+ return nil
+ }
+ return v.Port
+ }).(pulumi.IntPtrOutput)
+}
+
type ObjectBucketAclAccessControlPolicy struct {
Grants []ObjectBucketAclAccessControlPolicyGrant `pulumi:"grants"`
// Configuration block of the bucket project owner's display organization ID.
@@ -14895,6 +15573,8 @@ type GetBaremetalServerPrivateNetwork struct {
CreatedAt string `pulumi:"createdAt"`
// The ID of the server.
Id string `pulumi:"id"`
+ // List of IPAM IP IDs to attach to the server
+ IpamIpIds []string `pulumi:"ipamIpIds"`
// The private network status
Status string `pulumi:"status"`
// The date and time of the last update of the private network
@@ -14919,6 +15599,8 @@ type GetBaremetalServerPrivateNetworkArgs struct {
CreatedAt pulumi.StringInput `pulumi:"createdAt"`
// The ID of the server.
Id pulumi.StringInput `pulumi:"id"`
+ // List of IPAM IP IDs to attach to the server
+ IpamIpIds pulumi.StringArrayInput `pulumi:"ipamIpIds"`
// The private network status
Status pulumi.StringInput `pulumi:"status"`
// The date and time of the last update of the private network
@@ -14988,6 +15670,11 @@ func (o GetBaremetalServerPrivateNetworkOutput) Id() pulumi.StringOutput {
return o.ApplyT(func(v GetBaremetalServerPrivateNetwork) string { return v.Id }).(pulumi.StringOutput)
}
+// List of IPAM IP IDs to attach to the server
+func (o GetBaremetalServerPrivateNetworkOutput) IpamIpIds() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v GetBaremetalServerPrivateNetwork) []string { return v.IpamIpIds }).(pulumi.StringArrayOutput)
+}
+
// The private network status
func (o GetBaremetalServerPrivateNetworkOutput) Status() pulumi.StringOutput {
return o.ApplyT(func(v GetBaremetalServerPrivateNetwork) string { return v.Status }).(pulumi.StringOutput)
@@ -17864,8 +18551,6 @@ func (o GetInstanceServerRootVolumeArrayOutput) Index(i pulumi.IntInput) GetInst
type GetInstanceServersServer struct {
// The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
BootType string `pulumi:"bootType"`
- // The ID of the bootscript.
- //
// Deprecated: bootscript are not supported
BootscriptId string `pulumi:"bootscriptId"`
// If true a dynamic IP will be attached to the server.
@@ -17927,8 +18612,6 @@ type GetInstanceServersServerInput interface {
type GetInstanceServersServerArgs struct {
// The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`.
BootType pulumi.StringInput `pulumi:"bootType"`
- // The ID of the bootscript.
- //
// Deprecated: bootscript are not supported
BootscriptId pulumi.StringInput `pulumi:"bootscriptId"`
// If true a dynamic IP will be attached to the server.
@@ -18032,8 +18715,6 @@ func (o GetInstanceServersServerOutput) BootType() pulumi.StringOutput {
return o.ApplyT(func(v GetInstanceServersServer) string { return v.BootType }).(pulumi.StringOutput)
}
-// The ID of the bootscript.
-//
// Deprecated: bootscript are not supported
func (o GetInstanceServersServerOutput) BootscriptId() pulumi.StringOutput {
return o.ApplyT(func(v GetInstanceServersServer) string { return v.BootscriptId }).(pulumi.StringOutput)
@@ -23414,6 +24095,121 @@ func (o GetLoadbalancerPrivateNetworkArrayOutput) Index(i pulumi.IntInput) GetLo
}).(GetLoadbalancerPrivateNetworkOutput)
}
+type GetMongoDbInstancePublicNetwork struct {
+ // The DNS record of your endpoint
+ DnsRecord string `pulumi:"dnsRecord"`
+ // The ID of the MongoDB® Instance.
+ Id string `pulumi:"id"`
+ // TCP port of the endpoint
+ Port int `pulumi:"port"`
+}
+
+// GetMongoDbInstancePublicNetworkInput is an input type that accepts GetMongoDbInstancePublicNetworkArgs and GetMongoDbInstancePublicNetworkOutput values.
+// You can construct a concrete instance of `GetMongoDbInstancePublicNetworkInput` via:
+//
+// GetMongoDbInstancePublicNetworkArgs{...}
+type GetMongoDbInstancePublicNetworkInput interface {
+ pulumi.Input
+
+ ToGetMongoDbInstancePublicNetworkOutput() GetMongoDbInstancePublicNetworkOutput
+ ToGetMongoDbInstancePublicNetworkOutputWithContext(context.Context) GetMongoDbInstancePublicNetworkOutput
+}
+
+type GetMongoDbInstancePublicNetworkArgs struct {
+ // The DNS record of your endpoint
+ DnsRecord pulumi.StringInput `pulumi:"dnsRecord"`
+ // The ID of the MongoDB® Instance.
+ Id pulumi.StringInput `pulumi:"id"`
+ // TCP port of the endpoint
+ Port pulumi.IntInput `pulumi:"port"`
+}
+
+func (GetMongoDbInstancePublicNetworkArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetMongoDbInstancePublicNetwork)(nil)).Elem()
+}
+
+func (i GetMongoDbInstancePublicNetworkArgs) ToGetMongoDbInstancePublicNetworkOutput() GetMongoDbInstancePublicNetworkOutput {
+ return i.ToGetMongoDbInstancePublicNetworkOutputWithContext(context.Background())
+}
+
+func (i GetMongoDbInstancePublicNetworkArgs) ToGetMongoDbInstancePublicNetworkOutputWithContext(ctx context.Context) GetMongoDbInstancePublicNetworkOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetMongoDbInstancePublicNetworkOutput)
+}
+
+// GetMongoDbInstancePublicNetworkArrayInput is an input type that accepts GetMongoDbInstancePublicNetworkArray and GetMongoDbInstancePublicNetworkArrayOutput values.
+// You can construct a concrete instance of `GetMongoDbInstancePublicNetworkArrayInput` via:
+//
+// GetMongoDbInstancePublicNetworkArray{ GetMongoDbInstancePublicNetworkArgs{...} }
+type GetMongoDbInstancePublicNetworkArrayInput interface {
+ pulumi.Input
+
+ ToGetMongoDbInstancePublicNetworkArrayOutput() GetMongoDbInstancePublicNetworkArrayOutput
+ ToGetMongoDbInstancePublicNetworkArrayOutputWithContext(context.Context) GetMongoDbInstancePublicNetworkArrayOutput
+}
+
+type GetMongoDbInstancePublicNetworkArray []GetMongoDbInstancePublicNetworkInput
+
+func (GetMongoDbInstancePublicNetworkArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]GetMongoDbInstancePublicNetwork)(nil)).Elem()
+}
+
+func (i GetMongoDbInstancePublicNetworkArray) ToGetMongoDbInstancePublicNetworkArrayOutput() GetMongoDbInstancePublicNetworkArrayOutput {
+ return i.ToGetMongoDbInstancePublicNetworkArrayOutputWithContext(context.Background())
+}
+
+func (i GetMongoDbInstancePublicNetworkArray) ToGetMongoDbInstancePublicNetworkArrayOutputWithContext(ctx context.Context) GetMongoDbInstancePublicNetworkArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetMongoDbInstancePublicNetworkArrayOutput)
+}
+
+type GetMongoDbInstancePublicNetworkOutput struct{ *pulumi.OutputState }
+
+func (GetMongoDbInstancePublicNetworkOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetMongoDbInstancePublicNetwork)(nil)).Elem()
+}
+
+func (o GetMongoDbInstancePublicNetworkOutput) ToGetMongoDbInstancePublicNetworkOutput() GetMongoDbInstancePublicNetworkOutput {
+ return o
+}
+
+func (o GetMongoDbInstancePublicNetworkOutput) ToGetMongoDbInstancePublicNetworkOutputWithContext(ctx context.Context) GetMongoDbInstancePublicNetworkOutput {
+ return o
+}
+
+// The DNS record of your endpoint
+func (o GetMongoDbInstancePublicNetworkOutput) DnsRecord() pulumi.StringOutput {
+ return o.ApplyT(func(v GetMongoDbInstancePublicNetwork) string { return v.DnsRecord }).(pulumi.StringOutput)
+}
+
+// The ID of the MongoDB® Instance.
+func (o GetMongoDbInstancePublicNetworkOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v GetMongoDbInstancePublicNetwork) string { return v.Id }).(pulumi.StringOutput)
+}
+
+// TCP port of the endpoint
+func (o GetMongoDbInstancePublicNetworkOutput) Port() pulumi.IntOutput {
+ return o.ApplyT(func(v GetMongoDbInstancePublicNetwork) int { return v.Port }).(pulumi.IntOutput)
+}
+
+type GetMongoDbInstancePublicNetworkArrayOutput struct{ *pulumi.OutputState }
+
+func (GetMongoDbInstancePublicNetworkArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]GetMongoDbInstancePublicNetwork)(nil)).Elem()
+}
+
+func (o GetMongoDbInstancePublicNetworkArrayOutput) ToGetMongoDbInstancePublicNetworkArrayOutput() GetMongoDbInstancePublicNetworkArrayOutput {
+ return o
+}
+
+func (o GetMongoDbInstancePublicNetworkArrayOutput) ToGetMongoDbInstancePublicNetworkArrayOutputWithContext(ctx context.Context) GetMongoDbInstancePublicNetworkArrayOutput {
+ return o
+}
+
+func (o GetMongoDbInstancePublicNetworkArrayOutput) Index(i pulumi.IntInput) GetMongoDbInstancePublicNetworkOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetMongoDbInstancePublicNetwork {
+ return vs[0].([]GetMongoDbInstancePublicNetwork)[vs[1].(int)]
+ }).(GetMongoDbInstancePublicNetworkOutput)
+}
+
type GetObjectBucketCorsRule struct {
AllowedHeaders []string `pulumi:"allowedHeaders"`
AllowedMethods []string `pulumi:"allowedMethods"`
@@ -25780,6 +26576,10 @@ func init() {
pulumi.RegisterInputType(reflect.TypeOf((*FunctionTriggerSqsPtrInput)(nil)).Elem(), FunctionTriggerSqsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*IamPolicyRuleInput)(nil)).Elem(), IamPolicyRuleArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*IamPolicyRuleArrayInput)(nil)).Elem(), IamPolicyRuleArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*InferenceDeploymentPrivateEndpointInput)(nil)).Elem(), InferenceDeploymentPrivateEndpointArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*InferenceDeploymentPrivateEndpointPtrInput)(nil)).Elem(), InferenceDeploymentPrivateEndpointArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*InferenceDeploymentPublicEndpointInput)(nil)).Elem(), InferenceDeploymentPublicEndpointArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*InferenceDeploymentPublicEndpointPtrInput)(nil)).Elem(), InferenceDeploymentPublicEndpointArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*InstanceImageAdditionalVolumeInput)(nil)).Elem(), InstanceImageAdditionalVolumeArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*InstanceImageAdditionalVolumeArrayInput)(nil)).Elem(), InstanceImageAdditionalVolumeArray{})
pulumi.RegisterInputType(reflect.TypeOf((*InstanceSecurityGroupInboundRuleInput)(nil)).Elem(), InstanceSecurityGroupInboundRuleArgs{})
@@ -25812,6 +26612,8 @@ func init() {
pulumi.RegisterInputType(reflect.TypeOf((*IotRouteRestPtrInput)(nil)).Elem(), IotRouteRestArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*IotRouteS3Input)(nil)).Elem(), IotRouteS3Args{})
pulumi.RegisterInputType(reflect.TypeOf((*IotRouteS3PtrInput)(nil)).Elem(), IotRouteS3Args{})
+ pulumi.RegisterInputType(reflect.TypeOf((*IpamIpCustomResourceInput)(nil)).Elem(), IpamIpCustomResourceArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*IpamIpCustomResourceArrayInput)(nil)).Elem(), IpamIpCustomResourceArray{})
pulumi.RegisterInputType(reflect.TypeOf((*IpamIpResourceInput)(nil)).Elem(), IpamIpResourceArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*IpamIpResourceArrayInput)(nil)).Elem(), IpamIpResourceArray{})
pulumi.RegisterInputType(reflect.TypeOf((*IpamIpReverseInput)(nil)).Elem(), IpamIpReverseArgs{})
@@ -25860,6 +26662,8 @@ func init() {
pulumi.RegisterInputType(reflect.TypeOf((*MnqSnsCredentialsPermissionsPtrInput)(nil)).Elem(), MnqSnsCredentialsPermissionsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*MnqSqsCredentialsPermissionsInput)(nil)).Elem(), MnqSqsCredentialsPermissionsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*MnqSqsCredentialsPermissionsPtrInput)(nil)).Elem(), MnqSqsCredentialsPermissionsArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*MongoDbInstancePublicNetworkInput)(nil)).Elem(), MongoDbInstancePublicNetworkArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*MongoDbInstancePublicNetworkPtrInput)(nil)).Elem(), MongoDbInstancePublicNetworkArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*ObjectBucketAclAccessControlPolicyInput)(nil)).Elem(), ObjectBucketAclAccessControlPolicyArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*ObjectBucketAclAccessControlPolicyPtrInput)(nil)).Elem(), ObjectBucketAclAccessControlPolicyArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*ObjectBucketAclAccessControlPolicyGrantInput)(nil)).Elem(), ObjectBucketAclAccessControlPolicyGrantArgs{})
@@ -26041,6 +26845,8 @@ func init() {
pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerCertificateLetsencryptArrayInput)(nil)).Elem(), GetLoadbalancerCertificateLetsencryptArray{})
pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerPrivateNetworkInput)(nil)).Elem(), GetLoadbalancerPrivateNetworkArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetLoadbalancerPrivateNetworkArrayInput)(nil)).Elem(), GetLoadbalancerPrivateNetworkArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetMongoDbInstancePublicNetworkInput)(nil)).Elem(), GetMongoDbInstancePublicNetworkArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetMongoDbInstancePublicNetworkArrayInput)(nil)).Elem(), GetMongoDbInstancePublicNetworkArray{})
pulumi.RegisterInputType(reflect.TypeOf((*GetObjectBucketCorsRuleInput)(nil)).Elem(), GetObjectBucketCorsRuleArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetObjectBucketCorsRuleArrayInput)(nil)).Elem(), GetObjectBucketCorsRuleArray{})
pulumi.RegisterInputType(reflect.TypeOf((*GetObjectBucketLifecycleRuleInput)(nil)).Elem(), GetObjectBucketLifecycleRuleArgs{})
@@ -26129,6 +26935,10 @@ func init() {
pulumi.RegisterOutputType(FunctionTriggerSqsPtrOutput{})
pulumi.RegisterOutputType(IamPolicyRuleOutput{})
pulumi.RegisterOutputType(IamPolicyRuleArrayOutput{})
+ pulumi.RegisterOutputType(InferenceDeploymentPrivateEndpointOutput{})
+ pulumi.RegisterOutputType(InferenceDeploymentPrivateEndpointPtrOutput{})
+ pulumi.RegisterOutputType(InferenceDeploymentPublicEndpointOutput{})
+ pulumi.RegisterOutputType(InferenceDeploymentPublicEndpointPtrOutput{})
pulumi.RegisterOutputType(InstanceImageAdditionalVolumeOutput{})
pulumi.RegisterOutputType(InstanceImageAdditionalVolumeArrayOutput{})
pulumi.RegisterOutputType(InstanceSecurityGroupInboundRuleOutput{})
@@ -26161,6 +26971,8 @@ func init() {
pulumi.RegisterOutputType(IotRouteRestPtrOutput{})
pulumi.RegisterOutputType(IotRouteS3Output{})
pulumi.RegisterOutputType(IotRouteS3PtrOutput{})
+ pulumi.RegisterOutputType(IpamIpCustomResourceOutput{})
+ pulumi.RegisterOutputType(IpamIpCustomResourceArrayOutput{})
pulumi.RegisterOutputType(IpamIpResourceOutput{})
pulumi.RegisterOutputType(IpamIpResourceArrayOutput{})
pulumi.RegisterOutputType(IpamIpReverseOutput{})
@@ -26209,6 +27021,8 @@ func init() {
pulumi.RegisterOutputType(MnqSnsCredentialsPermissionsPtrOutput{})
pulumi.RegisterOutputType(MnqSqsCredentialsPermissionsOutput{})
pulumi.RegisterOutputType(MnqSqsCredentialsPermissionsPtrOutput{})
+ pulumi.RegisterOutputType(MongoDbInstancePublicNetworkOutput{})
+ pulumi.RegisterOutputType(MongoDbInstancePublicNetworkPtrOutput{})
pulumi.RegisterOutputType(ObjectBucketAclAccessControlPolicyOutput{})
pulumi.RegisterOutputType(ObjectBucketAclAccessControlPolicyPtrOutput{})
pulumi.RegisterOutputType(ObjectBucketAclAccessControlPolicyGrantOutput{})
@@ -26390,6 +27204,8 @@ func init() {
pulumi.RegisterOutputType(GetLoadbalancerCertificateLetsencryptArrayOutput{})
pulumi.RegisterOutputType(GetLoadbalancerPrivateNetworkOutput{})
pulumi.RegisterOutputType(GetLoadbalancerPrivateNetworkArrayOutput{})
+ pulumi.RegisterOutputType(GetMongoDbInstancePublicNetworkOutput{})
+ pulumi.RegisterOutputType(GetMongoDbInstancePublicNetworkArrayOutput{})
pulumi.RegisterOutputType(GetObjectBucketCorsRuleOutput{})
pulumi.RegisterOutputType(GetObjectBucketCorsRuleArrayOutput{})
pulumi.RegisterOutputType(GetObjectBucketLifecycleRuleOutput{})
diff --git a/sdk/nodejs/baremetalServer.ts b/sdk/nodejs/baremetalServer.ts
index 590d6aaa..d05088fe 100644
--- a/sdk/nodejs/baremetalServer.ts
+++ b/sdk/nodejs/baremetalServer.ts
@@ -18,14 +18,14 @@ import * as utilities from "./utilities";
* import * as scaleway from "@pulumi/scaleway";
* import * as scaleway from "@pulumiverse/scaleway";
*
- * const main = scaleway.getAccountSshKey({
+ * const main = scaleway.getIamSshKey({
* name: "main",
* });
* const base = new scaleway.BaremetalServer("base", {
* zone: "fr-par-2",
* offer: "GP-BM1-S",
* os: "d17d6872-0412-45d9-a198-af82c34d3c5c",
- * sshKeyIds: [main.then(main => main.id)],
+ * sshKeyIds: [mainScalewayAccountSshKey.id],
* });
* ```
*
@@ -36,7 +36,7 @@ import * as utilities from "./utilities";
* import * as scaleway from "@pulumi/scaleway";
* import * as scaleway from "@pulumiverse/scaleway";
*
- * const main = scaleway.getAccountSshKey({
+ * const main = scaleway.getIamSshKey({
* name: "main",
* });
* const myOs = scaleway.getBaremetalOs({
@@ -60,7 +60,7 @@ import * as utilities from "./utilities";
* zone: "fr-par-2",
* offer: myOffer.then(myOffer => myOffer.offerId),
* os: myOs.then(myOs => myOs.osId),
- * sshKeyIds: [main.then(main => main.id)],
+ * sshKeyIds: [mainScalewayAccountSshKey.id],
* options: [
* {
* id: privateNetwork.then(privateNetwork => privateNetwork.optionId),
@@ -79,7 +79,7 @@ import * as utilities from "./utilities";
* import * as scaleway from "@pulumi/scaleway";
* import * as scaleway from "@pulumiverse/scaleway";
*
- * const main = scaleway.getAccountSshKey({
+ * const main = scaleway.getIamSshKey({
* name: "main",
* });
* const myOs = scaleway.getBaremetalOs({
@@ -103,7 +103,7 @@ import * as utilities from "./utilities";
* zone: "fr-par-2",
* offer: myOffer.then(myOffer => myOffer.offerId),
* os: myOs.then(myOs => myOs.osId),
- * sshKeyIds: [main.then(main => main.id)],
+ * sshKeyIds: [mainScalewayAccountSshKey.id],
* options: [{
* id: privateNetwork.then(privateNetwork => privateNetwork.optionId),
* }],
@@ -113,6 +113,58 @@ import * as utilities from "./utilities";
* });
* ```
*
+ * ### With IPAM IP IDs
+ *
+ * ```typescript
+ * import * as pulumi from "@pulumi/pulumi";
+ * import * as scaleway from "@pulumi/scaleway";
+ * import * as scaleway from "@pulumiverse/scaleway";
+ *
+ * const vpc01 = new scaleway.Vpc("vpc01", {name: "vpc_baremetal"});
+ * const pn01 = new scaleway.VpcPrivateNetwork("pn01", {
+ * name: "private_network_baremetal",
+ * ipv4Subnet: {
+ * subnet: "172.16.64.0/22",
+ * },
+ * vpcId: vpc01.id,
+ * });
+ * const ip01 = new scaleway.IpamIp("ip01", {
+ * address: "172.16.64.7",
+ * sources: [{
+ * privateNetworkId: pn01.id,
+ * }],
+ * });
+ * const myKey = scaleway.getIamSshKey({
+ * name: "main",
+ * });
+ * const myOs = scaleway.getBaremetalOs({
+ * zone: "fr-par-1",
+ * name: "Ubuntu",
+ * version: "22.04 LTS (Jammy Jellyfish)",
+ * });
+ * const myOffer = scaleway.getBaremetalOffer({
+ * zone: "fr-par-1",
+ * name: "EM-A115X-SSD",
+ * });
+ * const privateNetwork = scaleway.getBaremetalOption({
+ * zone: "fr-par-1",
+ * name: "Private Network",
+ * });
+ * const base = new scaleway.BaremetalServer("base", {
+ * zone: "fr-par-2",
+ * offer: myOffer.then(myOffer => myOffer.offerId),
+ * os: myOs.then(myOs => myOs.osId),
+ * sshKeyIds: [myKeyScalewayAccountSshKey.id],
+ * options: [{
+ * id: privateNetwork.then(privateNetwork => privateNetwork.optionId),
+ * }],
+ * privateNetworks: [{
+ * id: pn01.id,
+ * ipamIpIds: [ip01.id],
+ * }],
+ * });
+ * ```
+ *
* ### Without install config
*
* ```typescript
diff --git a/sdk/nodejs/getMongoDbInstance.ts b/sdk/nodejs/getMongoDbInstance.ts
new file mode 100644
index 00000000..99b768f7
--- /dev/null
+++ b/sdk/nodejs/getMongoDbInstance.ts
@@ -0,0 +1,143 @@
+// *** 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 a MongoDB® Instance.
+ *
+ * For further information refer to the Managed Databases for MongoDB® [API documentation](https://developers.scaleway.com/en/products/mongodb/api/)
+ */
+export function getMongoDbInstance(args?: GetMongoDbInstanceArgs, opts?: pulumi.InvokeOptions): Promise {
+ args = args || {};
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
+ return pulumi.runtime.invoke("scaleway:index/getMongoDbInstance:getMongoDbInstance", {
+ "instanceId": args.instanceId,
+ "name": args.name,
+ "projectId": args.projectId,
+ "region": args.region,
+ }, opts);
+}
+
+/**
+ * A collection of arguments for invoking getMongoDbInstance.
+ */
+export interface GetMongoDbInstanceArgs {
+ /**
+ * The MongoDB® instance ID.
+ *
+ * > **Note** You must specify at least one: `name` or `instanceId`.
+ */
+ instanceId?: string;
+ /**
+ * The name of the MongoDB® instance.
+ */
+ name?: string;
+ /**
+ * The ID of the project the MongoDB® instance is in. Can be used to filter instances when using `name`.
+ */
+ projectId?: string;
+ /**
+ * `region`) The region in which the MongoDB® Instance exists.
+ */
+ region?: string;
+}
+
+/**
+ * A collection of values returned by getMongoDbInstance.
+ */
+export interface GetMongoDbInstanceResult {
+ /**
+ * The date and time the MongoDB® instance was created.
+ */
+ readonly createdAt: string;
+ /**
+ * The provider-assigned unique ID for this managed resource.
+ */
+ readonly id: string;
+ readonly instanceId?: string;
+ /**
+ * The name of the MongoDB® instance.
+ */
+ readonly name?: string;
+ /**
+ * The number of nodes in the MongoDB® cluster.
+ */
+ readonly nodeNumber: number;
+ /**
+ * The type of MongoDB® node.
+ */
+ readonly nodeType: string;
+ readonly password: string;
+ /**
+ * The ID of the project the instance belongs to.
+ */
+ readonly projectId?: string;
+ /**
+ * The details of the public network configuration, if applicable.
+ */
+ readonly publicNetworks: outputs.GetMongoDbInstancePublicNetwork[];
+ readonly region?: string;
+ readonly settings: {[key: string]: string};
+ readonly snapshotId: string;
+ /**
+ * A list of tags attached to the MongoDB® instance.
+ */
+ readonly tags: string[];
+ readonly updatedAt: string;
+ readonly userName: string;
+ /**
+ * The version of MongoDB® running on the instance.
+ */
+ readonly version: string;
+ /**
+ * The size of the attached volume, in GB.
+ */
+ readonly volumeSizeInGb: number;
+ /**
+ * The type of volume attached to the MongoDB® instance.
+ */
+ readonly volumeType: string;
+}
+/**
+ * Gets information about a MongoDB® Instance.
+ *
+ * For further information refer to the Managed Databases for MongoDB® [API documentation](https://developers.scaleway.com/en/products/mongodb/api/)
+ */
+export function getMongoDbInstanceOutput(args?: GetMongoDbInstanceOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output {
+ args = args || {};
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
+ return pulumi.runtime.invokeOutput("scaleway:index/getMongoDbInstance:getMongoDbInstance", {
+ "instanceId": args.instanceId,
+ "name": args.name,
+ "projectId": args.projectId,
+ "region": args.region,
+ }, opts);
+}
+
+/**
+ * A collection of arguments for invoking getMongoDbInstance.
+ */
+export interface GetMongoDbInstanceOutputArgs {
+ /**
+ * The MongoDB® instance ID.
+ *
+ * > **Note** You must specify at least one: `name` or `instanceId`.
+ */
+ instanceId?: pulumi.Input;
+ /**
+ * The name of the MongoDB® instance.
+ */
+ name?: pulumi.Input;
+ /**
+ * The ID of the project the MongoDB® instance is in. Can be used to filter instances when using `name`.
+ */
+ projectId?: pulumi.Input;
+ /**
+ * `region`) The region in which the MongoDB® Instance exists.
+ */
+ region?: pulumi.Input;
+}
diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts
index 86f96cf9..383e01f9 100644
--- a/sdk/nodejs/index.ts
+++ b/sdk/nodejs/index.ts
@@ -490,6 +490,11 @@ export const getMnqSqs: typeof import("./getMnqSqs").getMnqSqs = null as any;
export const getMnqSqsOutput: typeof import("./getMnqSqs").getMnqSqsOutput = null as any;
utilities.lazyLoad(exports, ["getMnqSqs","getMnqSqsOutput"], () => require("./getMnqSqs"));
+export { GetMongoDbInstanceArgs, GetMongoDbInstanceResult, GetMongoDbInstanceOutputArgs } from "./getMongoDbInstance";
+export const getMongoDbInstance: typeof import("./getMongoDbInstance").getMongoDbInstance = null as any;
+export const getMongoDbInstanceOutput: typeof import("./getMongoDbInstance").getMongoDbInstanceOutput = null as any;
+utilities.lazyLoad(exports, ["getMongoDbInstance","getMongoDbInstanceOutput"], () => require("./getMongoDbInstance"));
+
export { GetObjectBucketArgs, GetObjectBucketResult, GetObjectBucketOutputArgs } from "./getObjectBucket";
export const getObjectBucket: typeof import("./getObjectBucket").getObjectBucket = null as any;
export const getObjectBucketOutput: typeof import("./getObjectBucket").getObjectBucketOutput = null as any;
@@ -630,6 +635,11 @@ export type IamUser = import("./iamUser").IamUser;
export const IamUser: typeof import("./iamUser").IamUser = null as any;
utilities.lazyLoad(exports, ["IamUser"], () => require("./iamUser"));
+export { InferenceDeploymentArgs, InferenceDeploymentState } from "./inferenceDeployment";
+export type InferenceDeployment = import("./inferenceDeployment").InferenceDeployment;
+export const InferenceDeployment: typeof import("./inferenceDeployment").InferenceDeployment = null as any;
+utilities.lazyLoad(exports, ["InferenceDeployment"], () => require("./inferenceDeployment"));
+
export { InstanceImageArgs, InstanceImageState } from "./instanceImage";
export type InstanceImage = import("./instanceImage").InstanceImage;
export const InstanceImage: typeof import("./instanceImage").InstanceImage = null as any;
@@ -810,6 +820,16 @@ export type MnqSqsQueue = import("./mnqSqsQueue").MnqSqsQueue;
export const MnqSqsQueue: typeof import("./mnqSqsQueue").MnqSqsQueue = null as any;
utilities.lazyLoad(exports, ["MnqSqsQueue"], () => require("./mnqSqsQueue"));
+export { MongoDbInstanceArgs, MongoDbInstanceState } from "./mongoDbInstance";
+export type MongoDbInstance = import("./mongoDbInstance").MongoDbInstance;
+export const MongoDbInstance: typeof import("./mongoDbInstance").MongoDbInstance = null as any;
+utilities.lazyLoad(exports, ["MongoDbInstance"], () => require("./mongoDbInstance"));
+
+export { MongoDbSnapshotArgs, MongoDbSnapshotState } from "./mongoDbSnapshot";
+export type MongoDbSnapshot = import("./mongoDbSnapshot").MongoDbSnapshot;
+export const MongoDbSnapshot: typeof import("./mongoDbSnapshot").MongoDbSnapshot = null as any;
+utilities.lazyLoad(exports, ["MongoDbSnapshot"], () => require("./mongoDbSnapshot"));
+
export { ObjectBucketArgs, ObjectBucketState } from "./objectBucket";
export type ObjectBucket = import("./objectBucket").ObjectBucket;
export const ObjectBucket: typeof import("./objectBucket").ObjectBucket = null as any;
@@ -1036,6 +1056,8 @@ const _module = {
return new IamSshKey(name, undefined, { urn })
case "scaleway:index/iamUser:IamUser":
return new IamUser(name, undefined, { urn })
+ case "scaleway:index/inferenceDeployment:InferenceDeployment":
+ return new InferenceDeployment(name, undefined, { urn })
case "scaleway:index/instanceImage:InstanceImage":
return new InstanceImage(name, undefined, { urn })
case "scaleway:index/instanceIp:InstanceIp":
@@ -1108,6 +1130,10 @@ const _module = {
return new MnqSqsCredentials(name, undefined, { urn })
case "scaleway:index/mnqSqsQueue:MnqSqsQueue":
return new MnqSqsQueue(name, undefined, { urn })
+ case "scaleway:index/mongoDbInstance:MongoDbInstance":
+ return new MongoDbInstance(name, undefined, { urn })
+ case "scaleway:index/mongoDbSnapshot:MongoDbSnapshot":
+ return new MongoDbSnapshot(name, undefined, { urn })
case "scaleway:index/objectBucket:ObjectBucket":
return new ObjectBucket(name, undefined, { urn })
case "scaleway:index/objectBucketAcl:ObjectBucketAcl":
@@ -1204,6 +1230,7 @@ pulumi.runtime.registerResourceModule("scaleway", "index/iamGroupMembership", _m
pulumi.runtime.registerResourceModule("scaleway", "index/iamPolicy", _module)
pulumi.runtime.registerResourceModule("scaleway", "index/iamSshKey", _module)
pulumi.runtime.registerResourceModule("scaleway", "index/iamUser", _module)
+pulumi.runtime.registerResourceModule("scaleway", "index/inferenceDeployment", _module)
pulumi.runtime.registerResourceModule("scaleway", "index/instanceImage", _module)
pulumi.runtime.registerResourceModule("scaleway", "index/instanceIp", _module)
pulumi.runtime.registerResourceModule("scaleway", "index/instanceIpReverseDns", _module)
@@ -1240,6 +1267,8 @@ pulumi.runtime.registerResourceModule("scaleway", "index/mnqSnsTopicSubscription
pulumi.runtime.registerResourceModule("scaleway", "index/mnqSqs", _module)
pulumi.runtime.registerResourceModule("scaleway", "index/mnqSqsCredentials", _module)
pulumi.runtime.registerResourceModule("scaleway", "index/mnqSqsQueue", _module)
+pulumi.runtime.registerResourceModule("scaleway", "index/mongoDbInstance", _module)
+pulumi.runtime.registerResourceModule("scaleway", "index/mongoDbSnapshot", _module)
pulumi.runtime.registerResourceModule("scaleway", "index/objectBucket", _module)
pulumi.runtime.registerResourceModule("scaleway", "index/objectBucketAcl", _module)
pulumi.runtime.registerResourceModule("scaleway", "index/objectBucketLockConfiguration", _module)
diff --git a/sdk/nodejs/inferenceDeployment.ts b/sdk/nodejs/inferenceDeployment.ts
new file mode 100644
index 00000000..6bb7aa56
--- /dev/null
+++ b/sdk/nodejs/inferenceDeployment.ts
@@ -0,0 +1,312 @@
+// *** 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";
+
+/**
+ * Creates and manages Scaleway Managed Inference deployments.
+ * For more information, see [the documentation](https://www.scaleway.com/en/developers/api/inference/).
+ *
+ * ## Example Usage
+ *
+ * ### Basic
+ *
+ * ```typescript
+ * import * as pulumi from "@pulumi/pulumi";
+ * import * as scaleway from "@pulumiverse/scaleway";
+ *
+ * const deployment = new scaleway.InferenceDeployment("deployment", {
+ * name: "tf-inference-deployment",
+ * nodeType: "L4",
+ * modelName: "meta/llama-3.1-8b-instruct:fp8",
+ * publicEndpoint: {
+ * isEnabled: true,
+ * },
+ * acceptEula: true,
+ * });
+ * ```
+ *
+ * ## Import
+ *
+ * Functions can be imported using, `{region}/{id}`, as shown below:
+ *
+ * bash
+ *
+ * ```sh
+ * $ pulumi import scaleway:index/inferenceDeployment:InferenceDeployment deployment fr-par/11111111-1111-1111-1111-111111111111
+ * ```
+ */
+export class InferenceDeployment extends pulumi.CustomResource {
+ /**
+ * Get an existing InferenceDeployment resource's state with the given name, ID, and optional extra
+ * properties used to qualify the lookup.
+ *
+ * @param name The _unique_ name of the resulting resource.
+ * @param id The _unique_ provider ID of the resource to lookup.
+ * @param state Any extra arguments used during the lookup.
+ * @param opts Optional settings to control the behavior of the CustomResource.
+ */
+ public static get(name: string, id: pulumi.Input, state?: InferenceDeploymentState, opts?: pulumi.CustomResourceOptions): InferenceDeployment {
+ return new InferenceDeployment(name, state, { ...opts, id: id });
+ }
+
+ /** @internal */
+ public static readonly __pulumiType = 'scaleway:index/inferenceDeployment:InferenceDeployment';
+
+ /**
+ * Returns true if the given object is an instance of InferenceDeployment. This is designed to work even
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
+ */
+ public static isInstance(obj: any): obj is InferenceDeployment {
+ if (obj === undefined || obj === null) {
+ return false;
+ }
+ return obj['__pulumiType'] === InferenceDeployment.__pulumiType;
+ }
+
+ /**
+ * Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept.
+ */
+ public readonly acceptEula!: pulumi.Output;
+ /**
+ * The date and time of the creation of the deployment.
+ */
+ public /*out*/ readonly createdAt!: pulumi.Output;
+ /**
+ * The maximum size of the pool.
+ */
+ public readonly maxSize!: pulumi.Output;
+ /**
+ * The minimum size of the pool.
+ */
+ public readonly minSize!: pulumi.Output;
+ /**
+ * The model id used for the deployment.
+ */
+ public /*out*/ readonly modelId!: pulumi.Output;
+ /**
+ * The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`)
+ */
+ public readonly modelName!: pulumi.Output;
+ /**
+ * The deployment name.
+ */
+ public readonly name!: pulumi.Output;
+ /**
+ * The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`)
+ */
+ public readonly nodeType!: pulumi.Output;
+ /**
+ * Configuration of the deployment's private endpoint.
+ */
+ public readonly privateEndpoint!: pulumi.Output;
+ /**
+ * `projectId`) The ID of the project the deployment is associated with.
+ */
+ public readonly projectId!: pulumi.Output;
+ /**
+ * Configuration of the deployment's public endpoint.
+ */
+ public readonly publicEndpoint!: pulumi.Output