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; + /** + * `region`) The region in which the deployment is created. + */ + public readonly region!: pulumi.Output; + /** + * The size of the pool. + */ + public /*out*/ readonly size!: pulumi.Output; + /** + * The status of the deployment. + */ + public /*out*/ readonly status!: pulumi.Output; + /** + * The tags associated with the deployment. + */ + public readonly tags!: pulumi.Output; + /** + * The date and time of the last update of the deployment. + */ + public /*out*/ readonly updatedAt!: pulumi.Output; + + /** + * Create a InferenceDeployment resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: InferenceDeploymentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: InferenceDeploymentArgs | InferenceDeploymentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as InferenceDeploymentState | undefined; + resourceInputs["acceptEula"] = state ? state.acceptEula : undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["maxSize"] = state ? state.maxSize : undefined; + resourceInputs["minSize"] = state ? state.minSize : undefined; + resourceInputs["modelId"] = state ? state.modelId : undefined; + resourceInputs["modelName"] = state ? state.modelName : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["nodeType"] = state ? state.nodeType : undefined; + resourceInputs["privateEndpoint"] = state ? state.privateEndpoint : undefined; + resourceInputs["projectId"] = state ? state.projectId : undefined; + resourceInputs["publicEndpoint"] = state ? state.publicEndpoint : undefined; + resourceInputs["region"] = state ? state.region : undefined; + resourceInputs["size"] = state ? state.size : undefined; + resourceInputs["status"] = state ? state.status : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["updatedAt"] = state ? state.updatedAt : undefined; + } else { + const args = argsOrState as InferenceDeploymentArgs | undefined; + if ((!args || args.modelName === undefined) && !opts.urn) { + throw new Error("Missing required property 'modelName'"); + } + if ((!args || args.nodeType === undefined) && !opts.urn) { + throw new Error("Missing required property 'nodeType'"); + } + resourceInputs["acceptEula"] = args ? args.acceptEula : undefined; + resourceInputs["maxSize"] = args ? args.maxSize : undefined; + resourceInputs["minSize"] = args ? args.minSize : undefined; + resourceInputs["modelName"] = args ? args.modelName : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["nodeType"] = args ? args.nodeType : undefined; + resourceInputs["privateEndpoint"] = args ? args.privateEndpoint : undefined; + resourceInputs["projectId"] = args ? args.projectId : undefined; + resourceInputs["publicEndpoint"] = args ? args.publicEndpoint : undefined; + resourceInputs["region"] = args ? args.region : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["modelId"] = undefined /*out*/; + resourceInputs["size"] = undefined /*out*/; + resourceInputs["status"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(InferenceDeployment.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering InferenceDeployment resources. + */ +export interface InferenceDeploymentState { + /** + * Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept. + */ + acceptEula?: pulumi.Input; + /** + * The date and time of the creation of the deployment. + */ + createdAt?: pulumi.Input; + /** + * The maximum size of the pool. + */ + maxSize?: pulumi.Input; + /** + * The minimum size of the pool. + */ + minSize?: pulumi.Input; + /** + * The model id used for the deployment. + */ + modelId?: pulumi.Input; + /** + * 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.Input; + /** + * The deployment name. + */ + name?: pulumi.Input; + /** + * The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`) + */ + nodeType?: pulumi.Input; + /** + * Configuration of the deployment's private endpoint. + */ + privateEndpoint?: pulumi.Input; + /** + * `projectId`) The ID of the project the deployment is associated with. + */ + projectId?: pulumi.Input; + /** + * Configuration of the deployment's public endpoint. + */ + publicEndpoint?: pulumi.Input; + /** + * `region`) The region in which the deployment is created. + */ + region?: pulumi.Input; + /** + * The size of the pool. + */ + size?: pulumi.Input; + /** + * The status of the deployment. + */ + status?: pulumi.Input; + /** + * The tags associated with the deployment. + */ + tags?: pulumi.Input[]>; + /** + * The date and time of the last update of the deployment. + */ + updatedAt?: pulumi.Input; +} + +/** + * The set of arguments for constructing a InferenceDeployment resource. + */ +export interface InferenceDeploymentArgs { + /** + * Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept. + */ + acceptEula?: pulumi.Input; + /** + * The maximum size of the pool. + */ + maxSize?: pulumi.Input; + /** + * The minimum size of the pool. + */ + minSize?: pulumi.Input; + /** + * 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.Input; + /** + * The deployment name. + */ + name?: pulumi.Input; + /** + * The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`) + */ + nodeType: pulumi.Input; + /** + * Configuration of the deployment's private endpoint. + */ + privateEndpoint?: pulumi.Input; + /** + * `projectId`) The ID of the project the deployment is associated with. + */ + projectId?: pulumi.Input; + /** + * Configuration of the deployment's public endpoint. + */ + publicEndpoint?: pulumi.Input; + /** + * `region`) The region in which the deployment is created. + */ + region?: pulumi.Input; + /** + * The tags associated with the deployment. + */ + tags?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/instanceServer.ts b/sdk/nodejs/instanceServer.ts index 9a007373..0a946bfe 100644 --- a/sdk/nodejs/instanceServer.ts +++ b/sdk/nodejs/instanceServer.ts @@ -244,7 +244,7 @@ export class InstanceServer extends pulumi.CustomResource { */ public readonly bootType!: pulumi.Output; /** - * 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. */ @@ -300,6 +300,8 @@ export class InstanceServer extends pulumi.CustomResource { /** * The prefix length of the ipv6 subnet routed to the server. ( Only set when enableIpv6 is set to true ) * Deprecated: Please use a scaleway.InstanceIp with a `routedIpv6` type. + * + * @deprecated Please use a scaleway.InstanceIp with a `routedIpv6` type */ public /*out*/ readonly ipv6PrefixLength!: pulumi.Output; /** @@ -356,6 +358,8 @@ export class InstanceServer extends pulumi.CustomResource { * 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 */ public readonly routedIpEnabled!: pulumi.Output; /** @@ -495,7 +499,7 @@ export interface InstanceServerState { */ bootType?: pulumi.Input; /** - * 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. */ @@ -551,6 +555,8 @@ export interface InstanceServerState { /** * The prefix length of the ipv6 subnet routed to the server. ( Only set when enableIpv6 is set to true ) * Deprecated: Please use a scaleway.InstanceIp with a `routedIpv6` type. + * + * @deprecated Please use a scaleway.InstanceIp with a `routedIpv6` type */ ipv6PrefixLength?: pulumi.Input; /** @@ -607,6 +613,8 @@ export interface InstanceServerState { * 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.Input; /** @@ -663,7 +671,7 @@ export interface InstanceServerArgs { */ bootType?: pulumi.Input; /** - * 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. */ @@ -738,6 +746,8 @@ export interface InstanceServerArgs { * 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.Input; /** diff --git a/sdk/nodejs/iotNetwork.ts b/sdk/nodejs/iotNetwork.ts index 915b21a2..2ca1f503 100644 --- a/sdk/nodejs/iotNetwork.ts +++ b/sdk/nodejs/iotNetwork.ts @@ -76,6 +76,10 @@ export class IotNetwork extends pulumi.CustomResource { * The name of the IoT Network you want to create (e.g. `my-net`). */ public readonly name!: pulumi.Output; + /** + * (Defaults to provider `region`) The region in which the Network is attached to. + */ + public readonly region!: pulumi.Output; /** * The endpoint key to keep secret. */ @@ -106,6 +110,7 @@ export class IotNetwork extends pulumi.CustomResource { resourceInputs["endpoint"] = state ? state.endpoint : undefined; resourceInputs["hubId"] = state ? state.hubId : undefined; resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["region"] = state ? state.region : undefined; resourceInputs["secret"] = state ? state.secret : undefined; resourceInputs["topicPrefix"] = state ? state.topicPrefix : undefined; resourceInputs["type"] = state ? state.type : undefined; @@ -119,6 +124,7 @@ export class IotNetwork extends pulumi.CustomResource { } resourceInputs["hubId"] = args ? args.hubId : undefined; resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["region"] = args ? args.region : undefined; resourceInputs["topicPrefix"] = args ? args.topicPrefix : undefined; resourceInputs["type"] = args ? args.type : undefined; resourceInputs["createdAt"] = undefined /*out*/; @@ -152,6 +158,10 @@ export interface IotNetworkState { * The name of the IoT Network you want to create (e.g. `my-net`). */ name?: pulumi.Input; + /** + * (Defaults to provider `region`) The region in which the Network is attached to. + */ + region?: pulumi.Input; /** * The endpoint key to keep secret. */ @@ -178,6 +188,10 @@ export interface IotNetworkArgs { * The name of the IoT Network you want to create (e.g. `my-net`). */ name?: pulumi.Input; + /** + * (Defaults to provider `region`) The region in which the Network is attached to. + */ + region?: pulumi.Input; /** * The prefix that will be prepended to all topics for this Network. */ diff --git a/sdk/nodejs/ipamIp.ts b/sdk/nodejs/ipamIp.ts index 3f293f70..df2700d5 100644 --- a/sdk/nodejs/ipamIp.ts +++ b/sdk/nodejs/ipamIp.ts @@ -73,6 +73,30 @@ import * as utilities from "./utilities"; * }); * ``` * + * ### Book an IP for a custom resource + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as scaleway from "@pulumiverse/scaleway"; + * + * const vpc01 = new scaleway.Vpc("vpc01", {name: "my vpc"}); + * const pn01 = new scaleway.VpcPrivateNetwork("pn01", { + * vpcId: vpc01.id, + * ipv4Subnet: { + * subnet: "172.16.32.0/22", + * }, + * }); + * const ip01 = new scaleway.IpamIp("ip01", { + * address: "172.16.32.7", + * sources: [{ + * privateNetworkId: pn01.id, + * }], + * customResources: [{ + * macAddress: "bc:24:11:74:d0:6a", + * }], + * }); + * ``` + * * ## Import * * IPAM IPs can be imported using `{region}/{id}`, e.g. @@ -119,6 +143,10 @@ export class IpamIp extends pulumi.CustomResource { * Date and time of IP's creation (RFC 3339 format). */ public /*out*/ readonly createdAt!: pulumi.Output; + /** + * The custom resource in which to book the IP + */ + public readonly customResources!: pulumi.Output; /** * Defines whether to request an IPv6 address instead of IPv4. */ @@ -171,6 +199,7 @@ export class IpamIp extends pulumi.CustomResource { const state = argsOrState as IpamIpState | undefined; resourceInputs["address"] = state ? state.address : undefined; resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["customResources"] = state ? state.customResources : undefined; resourceInputs["isIpv6"] = state ? state.isIpv6 : undefined; resourceInputs["projectId"] = state ? state.projectId : undefined; resourceInputs["region"] = state ? state.region : undefined; @@ -186,6 +215,7 @@ export class IpamIp extends pulumi.CustomResource { throw new Error("Missing required property 'sources'"); } resourceInputs["address"] = args ? args.address : undefined; + resourceInputs["customResources"] = args ? args.customResources : undefined; resourceInputs["isIpv6"] = args ? args.isIpv6 : undefined; resourceInputs["projectId"] = args ? args.projectId : undefined; resourceInputs["region"] = args ? args.region : undefined; @@ -214,6 +244,10 @@ export interface IpamIpState { * Date and time of IP's creation (RFC 3339 format). */ createdAt?: pulumi.Input; + /** + * The custom resource in which to book the IP + */ + customResources?: pulumi.Input[]>; /** * Defines whether to request an IPv6 address instead of IPv4. */ @@ -260,6 +294,10 @@ export interface IpamIpArgs { * Request a specific IP in the requested source pool */ address?: pulumi.Input; + /** + * The custom resource in which to book the IP + */ + customResources?: pulumi.Input[]>; /** * Defines whether to request an IPv6 address instead of IPv4. */ diff --git a/sdk/nodejs/mongoDbInstance.ts b/sdk/nodejs/mongoDbInstance.ts new file mode 100644 index 00000000..7c218cc4 --- /dev/null +++ b/sdk/nodejs/mongoDbInstance.ts @@ -0,0 +1,340 @@ +// *** 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 MongoDB® instance. + * For more information refer to [the API documentation](https://www.scaleway.com/en/docs/managed-databases/mongodb/). + * + * ## Example Usage + * + * ### Basic + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as scaleway from "@pulumiverse/scaleway"; + * + * const main = new scaleway.MongoDbInstance("main", { + * 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 + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as scaleway from "@pulumiverse/scaleway"; + * + * const restoredInstance = new scaleway.MongoDbInstance("restored_instance", { + * 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 + * ``` + */ +export class MongoDbInstance extends pulumi.CustomResource { + /** + * Get an existing MongoDbInstance 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?: MongoDbInstanceState, opts?: pulumi.CustomResourceOptions): MongoDbInstance { + return new MongoDbInstance(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'scaleway:index/mongoDbInstance:MongoDbInstance'; + + /** + * Returns true if the given object is an instance of MongoDbInstance. 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 MongoDbInstance { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MongoDbInstance.__pulumiType; + } + + /** + * The date and time of the creation of the MongoDB® instance. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * Name of the MongoDB® instance. + */ + public readonly name!: pulumi.Output; + /** + * Number of nodes in the instance + */ + public readonly nodeNumber!: pulumi.Output; + /** + * The type of MongoDB® intance to create. + */ + public readonly nodeType!: pulumi.Output; + /** + * Password of the user. + */ + public readonly password!: pulumi.Output; + /** + * The projectId you want to attach the resource to + */ + public readonly projectId!: pulumi.Output; + /** + * Public network specs details. + */ + public readonly publicNetwork!: pulumi.Output; + /** + * The region you want to attach the resource to + */ + public readonly region!: pulumi.Output; + /** + * Map of settings to define for the instance. + */ + public readonly settings!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Snapshot ID to restore the MongoDB® instance from. + */ + public readonly snapshotId!: pulumi.Output; + /** + * List of tags attached to the MongoDB® instance. + */ + public readonly tags!: pulumi.Output; + /** + * The date and time of the last update of the MongoDB® instance. + */ + public /*out*/ readonly updatedAt!: pulumi.Output; + /** + * Name of the user created when the intance is created. + */ + public readonly userName!: pulumi.Output; + /** + * MongoDB® version of the instance. + */ + public readonly version!: pulumi.Output; + /** + * Volume size in GB. + */ + public readonly volumeSizeInGb!: pulumi.Output; + /** + * Volume type of the instance. + */ + public readonly volumeType!: pulumi.Output; + + /** + * Create a MongoDbInstance resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: MongoDbInstanceArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: MongoDbInstanceArgs | MongoDbInstanceState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as MongoDbInstanceState | undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["nodeNumber"] = state ? state.nodeNumber : undefined; + resourceInputs["nodeType"] = state ? state.nodeType : undefined; + resourceInputs["password"] = state ? state.password : undefined; + resourceInputs["projectId"] = state ? state.projectId : undefined; + resourceInputs["publicNetwork"] = state ? state.publicNetwork : undefined; + resourceInputs["region"] = state ? state.region : undefined; + resourceInputs["settings"] = state ? state.settings : undefined; + resourceInputs["snapshotId"] = state ? state.snapshotId : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["updatedAt"] = state ? state.updatedAt : undefined; + resourceInputs["userName"] = state ? state.userName : undefined; + resourceInputs["version"] = state ? state.version : undefined; + resourceInputs["volumeSizeInGb"] = state ? state.volumeSizeInGb : undefined; + resourceInputs["volumeType"] = state ? state.volumeType : undefined; + } else { + const args = argsOrState as MongoDbInstanceArgs | undefined; + if ((!args || args.nodeNumber === undefined) && !opts.urn) { + throw new Error("Missing required property 'nodeNumber'"); + } + if ((!args || args.nodeType === undefined) && !opts.urn) { + throw new Error("Missing required property 'nodeType'"); + } + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["nodeNumber"] = args ? args.nodeNumber : undefined; + resourceInputs["nodeType"] = args ? args.nodeType : undefined; + resourceInputs["password"] = args?.password ? pulumi.secret(args.password) : undefined; + resourceInputs["projectId"] = args ? args.projectId : undefined; + resourceInputs["publicNetwork"] = args ? args.publicNetwork : undefined; + resourceInputs["region"] = args ? args.region : undefined; + resourceInputs["settings"] = args ? args.settings : undefined; + resourceInputs["snapshotId"] = args ? args.snapshotId : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["userName"] = args ? args.userName : undefined; + resourceInputs["version"] = args ? args.version : undefined; + resourceInputs["volumeSizeInGb"] = args ? args.volumeSizeInGb : undefined; + resourceInputs["volumeType"] = args ? args.volumeType : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["password"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(MongoDbInstance.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering MongoDbInstance resources. + */ +export interface MongoDbInstanceState { + /** + * The date and time of the creation of the MongoDB® instance. + */ + createdAt?: pulumi.Input; + /** + * Name of the MongoDB® instance. + */ + name?: pulumi.Input; + /** + * Number of nodes in the instance + */ + nodeNumber?: pulumi.Input; + /** + * The type of MongoDB® intance to create. + */ + nodeType?: pulumi.Input; + /** + * Password of the user. + */ + password?: pulumi.Input; + /** + * The projectId you want to attach the resource to + */ + projectId?: pulumi.Input; + /** + * Public network specs details. + */ + publicNetwork?: pulumi.Input; + /** + * The region you want to attach the resource to + */ + region?: pulumi.Input; + /** + * Map of settings to define for the instance. + */ + settings?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Snapshot ID to restore the MongoDB® instance from. + */ + snapshotId?: pulumi.Input; + /** + * List of tags attached to the MongoDB® instance. + */ + tags?: pulumi.Input[]>; + /** + * The date and time of the last update of the MongoDB® instance. + */ + updatedAt?: pulumi.Input; + /** + * Name of the user created when the intance is created. + */ + userName?: pulumi.Input; + /** + * MongoDB® version of the instance. + */ + version?: pulumi.Input; + /** + * Volume size in GB. + */ + volumeSizeInGb?: pulumi.Input; + /** + * Volume type of the instance. + */ + volumeType?: pulumi.Input; +} + +/** + * The set of arguments for constructing a MongoDbInstance resource. + */ +export interface MongoDbInstanceArgs { + /** + * Name of the MongoDB® instance. + */ + name?: pulumi.Input; + /** + * Number of nodes in the instance + */ + nodeNumber: pulumi.Input; + /** + * The type of MongoDB® intance to create. + */ + nodeType: pulumi.Input; + /** + * Password of the user. + */ + password?: pulumi.Input; + /** + * The projectId you want to attach the resource to + */ + projectId?: pulumi.Input; + /** + * Public network specs details. + */ + publicNetwork?: pulumi.Input; + /** + * The region you want to attach the resource to + */ + region?: pulumi.Input; + /** + * Map of settings to define for the instance. + */ + settings?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Snapshot ID to restore the MongoDB® instance from. + */ + snapshotId?: pulumi.Input; + /** + * List of tags attached to the MongoDB® instance. + */ + tags?: pulumi.Input[]>; + /** + * Name of the user created when the intance is created. + */ + userName?: pulumi.Input; + /** + * MongoDB® version of the instance. + */ + version?: pulumi.Input; + /** + * Volume size in GB. + */ + volumeSizeInGb?: pulumi.Input; + /** + * Volume type of the instance. + */ + volumeType?: pulumi.Input; +} diff --git a/sdk/nodejs/mongoDbSnapshot.ts b/sdk/nodejs/mongoDbSnapshot.ts new file mode 100644 index 00000000..172c5431 --- /dev/null +++ b/sdk/nodejs/mongoDbSnapshot.ts @@ -0,0 +1,222 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +/** + * 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 + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as scaleway from "@pulumiverse/scaleway"; + * + * const main = new scaleway.MongoDbSnapshot("main", { + * 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 + * ``` + */ +export class MongoDbSnapshot extends pulumi.CustomResource { + /** + * Get an existing MongoDbSnapshot 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?: MongoDbSnapshotState, opts?: pulumi.CustomResourceOptions): MongoDbSnapshot { + return new MongoDbSnapshot(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'scaleway:index/mongoDbSnapshot:MongoDbSnapshot'; + + /** + * Returns true if the given object is an instance of MongoDbSnapshot. 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 MongoDbSnapshot { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MongoDbSnapshot.__pulumiType; + } + + /** + * The date and time when the MongoDB® snapshot was created. + */ + public /*out*/ readonly createdAt!: pulumi.Output; + /** + * 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. + */ + public readonly expiresAt!: pulumi.Output; + /** + * The ID of the MongoDB® instance from which the snapshot was created. + */ + public readonly instanceId!: pulumi.Output; + /** + * The name of the MongoDB® instance from which the snapshot was created. + */ + public /*out*/ readonly instanceName!: pulumi.Output; + /** + * The name of the MongoDB® snapshot. + */ + public readonly name!: pulumi.Output; + /** + * The type of node associated with the MongoDB® snapshot. + */ + public /*out*/ readonly nodeType!: pulumi.Output; + /** + * `region`) The region in which the MongoDB® snapshot should be created. + */ + public readonly region!: pulumi.Output; + /** + * The size of the MongoDB® snapshot in bytes. + */ + public /*out*/ readonly size!: pulumi.Output; + /** + * The date and time of the last update of the MongoDB® snapshot. + */ + public /*out*/ readonly updatedAt!: pulumi.Output; + /** + * The type of volume used for the MongoDB® snapshot. + */ + public /*out*/ readonly volumeType!: pulumi.Output; + + /** + * Create a MongoDbSnapshot resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: MongoDbSnapshotArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: MongoDbSnapshotArgs | MongoDbSnapshotState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as MongoDbSnapshotState | undefined; + resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["expiresAt"] = state ? state.expiresAt : undefined; + resourceInputs["instanceId"] = state ? state.instanceId : undefined; + resourceInputs["instanceName"] = state ? state.instanceName : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["nodeType"] = state ? state.nodeType : undefined; + resourceInputs["region"] = state ? state.region : undefined; + resourceInputs["size"] = state ? state.size : undefined; + resourceInputs["updatedAt"] = state ? state.updatedAt : undefined; + resourceInputs["volumeType"] = state ? state.volumeType : undefined; + } else { + const args = argsOrState as MongoDbSnapshotArgs | undefined; + if ((!args || args.expiresAt === undefined) && !opts.urn) { + throw new Error("Missing required property 'expiresAt'"); + } + if ((!args || args.instanceId === undefined) && !opts.urn) { + throw new Error("Missing required property 'instanceId'"); + } + resourceInputs["expiresAt"] = args ? args.expiresAt : undefined; + resourceInputs["instanceId"] = args ? args.instanceId : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["region"] = args ? args.region : undefined; + resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["instanceName"] = undefined /*out*/; + resourceInputs["nodeType"] = undefined /*out*/; + resourceInputs["size"] = undefined /*out*/; + resourceInputs["updatedAt"] = undefined /*out*/; + resourceInputs["volumeType"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(MongoDbSnapshot.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering MongoDbSnapshot resources. + */ +export interface MongoDbSnapshotState { + /** + * The date and time when the MongoDB® snapshot was created. + */ + createdAt?: pulumi.Input; + /** + * 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.Input; + /** + * The ID of the MongoDB® instance from which the snapshot was created. + */ + instanceId?: pulumi.Input; + /** + * The name of the MongoDB® instance from which the snapshot was created. + */ + instanceName?: pulumi.Input; + /** + * The name of the MongoDB® snapshot. + */ + name?: pulumi.Input; + /** + * The type of node associated with the MongoDB® snapshot. + */ + nodeType?: pulumi.Input; + /** + * `region`) The region in which the MongoDB® snapshot should be created. + */ + region?: pulumi.Input; + /** + * The size of the MongoDB® snapshot in bytes. + */ + size?: pulumi.Input; + /** + * The date and time of the last update of the MongoDB® snapshot. + */ + updatedAt?: pulumi.Input; + /** + * The type of volume used for the MongoDB® snapshot. + */ + volumeType?: pulumi.Input; +} + +/** + * The set of arguments for constructing a MongoDbSnapshot resource. + */ +export interface MongoDbSnapshotArgs { + /** + * 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.Input; + /** + * The ID of the MongoDB® instance from which the snapshot was created. + */ + instanceId: pulumi.Input; + /** + * The name of the MongoDB® snapshot. + */ + name?: pulumi.Input; + /** + * `region`) The region in which the MongoDB® snapshot should be created. + */ + region?: pulumi.Input; +} diff --git a/sdk/nodejs/objectBucket.ts b/sdk/nodejs/objectBucket.ts index bc0100c9..d7688239 100644 --- a/sdk/nodejs/objectBucket.ts +++ b/sdk/nodejs/objectBucket.ts @@ -164,7 +164,7 @@ export class ObjectBucket extends pulumi.CustomResource { */ public /*out*/ readonly endpoint!: pulumi.Output; /** - * 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. */ public readonly forceDestroy!: pulumi.Output; /** @@ -266,7 +266,7 @@ export interface ObjectBucketState { */ endpoint?: pulumi.Input; /** - * 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.Input; /** @@ -316,7 +316,7 @@ export interface ObjectBucketArgs { acl?: pulumi.Input; corsRules?: pulumi.Input[]>; /** - * 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.Input; /** diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 5d8f38eb..ea2558a5 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -112,6 +112,7 @@ "getMarketplaceImage.ts", "getMnqSns.ts", "getMnqSqs.ts", + "getMongoDbInstance.ts", "getObjectBucket.ts", "getObjectBucketPolicy.ts", "getRedisCluster.ts", @@ -141,6 +142,7 @@ "iamSshKey.ts", "iamUser.ts", "index.ts", + "inferenceDeployment.ts", "instanceImage.ts", "instanceIp.ts", "instanceIpReverseDns.ts", @@ -177,6 +179,8 @@ "mnqSqs.ts", "mnqSqsCredentials.ts", "mnqSqsQueue.ts", + "mongoDbInstance.ts", + "mongoDbSnapshot.ts", "objectBucket.ts", "objectBucketAcl.ts", "objectBucketLockConfiguration.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 664a790c..3c8de831 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -86,6 +86,10 @@ export interface BaremetalServerPrivateNetwork { * The id of the private network to attach. */ id: pulumi.Input; + /** + * List of IPAM IP IDs to assign to the server in the requested private network. + */ + ipamIpIds?: pulumi.Input[]>; /** * The private network status. */ @@ -577,6 +581,44 @@ export interface IamPolicyRule { projectIds?: pulumi.Input[]>; } +export interface InferenceDeploymentPrivateEndpoint { + /** + * Disable the authentication on the endpoint. + */ + disableAuth?: pulumi.Input; + /** + * (Optional) The id of the public endpoint. + */ + id?: pulumi.Input; + /** + * The ID of the private network to use. + */ + privateNetworkId?: pulumi.Input; + /** + * (Optional) The URL of the endpoint. + */ + url?: pulumi.Input; +} + +export interface InferenceDeploymentPublicEndpoint { + /** + * Disable the authentication on the endpoint. + */ + disableAuth?: pulumi.Input; + /** + * (Optional) The id of the public endpoint. + */ + id?: pulumi.Input; + /** + * Enable or disable public endpoint. + */ + isEnabled?: pulumi.Input; + /** + * (Optional) The URL of the endpoint. + */ + url?: pulumi.Input; +} + export interface InstanceImageAdditionalVolume { /** * Date of the volume creation. @@ -940,6 +982,17 @@ export interface IotRouteS3 { strategy: pulumi.Input; } +export interface IpamIpCustomResource { + /** + * The MAC address of the resource the IP is attached to. + */ + macAddress: pulumi.Input; + /** + * The name of the resource the IP is attached to. + */ + name?: pulumi.Input; +} + export interface IpamIpResource { /** * The ID of the resource that the IP is attached to. @@ -1395,6 +1448,21 @@ export interface MnqSqsCredentialsPermissions { canReceive?: pulumi.Input; } +export interface MongoDbInstancePublicNetwork { + /** + * The DNS record of your endpoint + */ + dnsRecord?: pulumi.Input; + /** + * The ID of the MongoDB® instance. + */ + id?: pulumi.Input; + /** + * TCP port of the endpoint + */ + port?: pulumi.Input; +} + export interface ObjectBucketAclAccessControlPolicy { grants?: pulumi.Input[]>; /** diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 8fb08806..e6ac40e1 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -86,6 +86,10 @@ export interface BaremetalServerPrivateNetwork { * The id of the private network to attach. */ id: string; + /** + * List of IPAM IP IDs to assign to the server in the requested private network. + */ + ipamIpIds: string[]; /** * The private network status. */ @@ -620,6 +624,10 @@ export interface GetBaremetalServerPrivateNetwork { * The ID of the server. */ id: string; + /** + * List of IPAM IP IDs to attach to the server + */ + ipamIpIds: string[]; /** * The private network status */ @@ -1140,8 +1148,6 @@ export interface GetInstanceServersServer { */ bootType: string; /** - * The ID of the bootscript. - * * @deprecated bootscript are not supported */ bootscriptId: string; @@ -2129,6 +2135,21 @@ export interface GetLoadbalancerPrivateNetwork { zone: string; } +export interface GetMongoDbInstancePublicNetwork { + /** + * The DNS record of your endpoint + */ + dnsRecord: string; + /** + * The ID of the MongoDB® Instance. + */ + id: string; + /** + * TCP port of the endpoint + */ + port: number; +} + export interface GetObjectBucketCorsRule { allowedHeaders: string[]; allowedMethods: string[]; @@ -2515,6 +2536,44 @@ export interface IamPolicyRule { projectIds?: string[]; } +export interface InferenceDeploymentPrivateEndpoint { + /** + * Disable the authentication on the endpoint. + */ + disableAuth?: boolean; + /** + * (Optional) The id of the public endpoint. + */ + id: string; + /** + * The ID of the private network to use. + */ + privateNetworkId?: string; + /** + * (Optional) The URL of the endpoint. + */ + url: string; +} + +export interface InferenceDeploymentPublicEndpoint { + /** + * Disable the authentication on the endpoint. + */ + disableAuth?: boolean; + /** + * (Optional) The id of the public endpoint. + */ + id: string; + /** + * Enable or disable public endpoint. + */ + isEnabled?: boolean; + /** + * (Optional) The URL of the endpoint. + */ + url: string; +} + export interface InstanceImageAdditionalVolume { /** * Date of the volume creation. @@ -2878,6 +2937,17 @@ export interface IotRouteS3 { strategy: string; } +export interface IpamIpCustomResource { + /** + * The MAC address of the resource the IP is attached to. + */ + macAddress: string; + /** + * The name of the resource the IP is attached to. + */ + name?: string; +} + export interface IpamIpResource { /** * The ID of the resource that the IP is attached to. @@ -3333,6 +3403,21 @@ export interface MnqSqsCredentialsPermissions { canReceive: boolean; } +export interface MongoDbInstancePublicNetwork { + /** + * The DNS record of your endpoint + */ + dnsRecord: string; + /** + * The ID of the MongoDB® instance. + */ + id: string; + /** + * TCP port of the endpoint + */ + port: number; +} + export interface ObjectBucketAclAccessControlPolicy { grants?: outputs.ObjectBucketAclAccessControlPolicyGrant[]; /** diff --git a/sdk/python/pulumiverse_scaleway/__init__.py b/sdk/python/pulumiverse_scaleway/__init__.py index e2008b02..7004e1a4 100644 --- a/sdk/python/pulumiverse_scaleway/__init__.py +++ b/sdk/python/pulumiverse_scaleway/__init__.py @@ -102,6 +102,7 @@ from .get_marketplace_image import * from .get_mnq_sns import * from .get_mnq_sqs import * +from .get_mongo_db_instance import * from .get_object_bucket import * from .get_object_bucket_policy import * from .get_redis_cluster import * @@ -130,6 +131,7 @@ from .iam_policy import * from .iam_ssh_key import * from .iam_user import * +from .inference_deployment import * from .instance_image import * from .instance_ip import * from .instance_ip_reverse_dns import * @@ -166,6 +168,8 @@ from .mnq_sqs import * from .mnq_sqs_credentials import * from .mnq_sqs_queue import * +from .mongo_db_instance import * +from .mongo_db_snapshot import * from .object_bucket import * from .object_bucket_acl import * from .object_bucket_lock_configuration import * @@ -533,6 +537,14 @@ "scaleway:index/iamUser:IamUser": "IamUser" } }, + { + "pkg": "scaleway", + "mod": "index/inferenceDeployment", + "fqn": "pulumiverse_scaleway", + "classes": { + "scaleway:index/inferenceDeployment:InferenceDeployment": "InferenceDeployment" + } + }, { "pkg": "scaleway", "mod": "index/instanceImage", @@ -821,6 +833,22 @@ "scaleway:index/mnqSqsQueue:MnqSqsQueue": "MnqSqsQueue" } }, + { + "pkg": "scaleway", + "mod": "index/mongoDbInstance", + "fqn": "pulumiverse_scaleway", + "classes": { + "scaleway:index/mongoDbInstance:MongoDbInstance": "MongoDbInstance" + } + }, + { + "pkg": "scaleway", + "mod": "index/mongoDbSnapshot", + "fqn": "pulumiverse_scaleway", + "classes": { + "scaleway:index/mongoDbSnapshot:MongoDbSnapshot": "MongoDbSnapshot" + } + }, { "pkg": "scaleway", "mod": "index/objectBucket", diff --git a/sdk/python/pulumiverse_scaleway/_inputs.py b/sdk/python/pulumiverse_scaleway/_inputs.py index daac2bcf..76b3b8c8 100644 --- a/sdk/python/pulumiverse_scaleway/_inputs.py +++ b/sdk/python/pulumiverse_scaleway/_inputs.py @@ -67,6 +67,10 @@ 'FunctionTriggerSqsArgsDict', 'IamPolicyRuleArgs', 'IamPolicyRuleArgsDict', + 'InferenceDeploymentPrivateEndpointArgs', + 'InferenceDeploymentPrivateEndpointArgsDict', + 'InferenceDeploymentPublicEndpointArgs', + 'InferenceDeploymentPublicEndpointArgsDict', 'InstanceImageAdditionalVolumeArgs', 'InstanceImageAdditionalVolumeArgsDict', 'InstanceSecurityGroupInboundRuleArgs', @@ -99,6 +103,8 @@ 'IotRouteRestArgsDict', 'IotRouteS3Args', 'IotRouteS3ArgsDict', + 'IpamIpCustomResourceArgs', + 'IpamIpCustomResourceArgsDict', 'IpamIpResourceArgs', 'IpamIpResourceArgsDict', 'IpamIpReverseArgs', @@ -149,6 +155,8 @@ 'MnqSnsCredentialsPermissionsArgsDict', 'MnqSqsCredentialsPermissionsArgs', 'MnqSqsCredentialsPermissionsArgsDict', + 'MongoDbInstancePublicNetworkArgs', + 'MongoDbInstancePublicNetworkArgsDict', 'ObjectBucketAclAccessControlPolicyArgs', 'ObjectBucketAclAccessControlPolicyArgsDict', 'ObjectBucketAclAccessControlPolicyGrantArgs', @@ -560,6 +568,10 @@ class BaremetalServerPrivateNetworkArgsDict(TypedDict): """ The date and time of the creation of the private network. """ + ipam_ip_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + List of IPAM IP IDs to assign to the server in the requested private network. + """ status: NotRequired[pulumi.Input[str]] """ The private network status. @@ -580,12 +592,14 @@ class BaremetalServerPrivateNetworkArgs: def __init__(__self__, *, id: pulumi.Input[str], created_at: Optional[pulumi.Input[str]] = None, + ipam_ip_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, status: Optional[pulumi.Input[str]] = None, updated_at: Optional[pulumi.Input[str]] = None, vlan: Optional[pulumi.Input[int]] = None): """ :param pulumi.Input[str] id: The id of the private network to attach. :param pulumi.Input[str] created_at: The date and time of the creation of the private network. + :param pulumi.Input[Sequence[pulumi.Input[str]]] ipam_ip_ids: List of IPAM IP IDs to assign to the server in the requested private network. :param pulumi.Input[str] status: The private network status. :param pulumi.Input[str] updated_at: The date and time of the last update of the private network. :param pulumi.Input[int] vlan: The VLAN ID associated to the private network. @@ -593,6 +607,8 @@ def __init__(__self__, *, pulumi.set(__self__, "id", id) if created_at is not None: pulumi.set(__self__, "created_at", created_at) + if ipam_ip_ids is not None: + pulumi.set(__self__, "ipam_ip_ids", ipam_ip_ids) if status is not None: pulumi.set(__self__, "status", status) if updated_at is not None: @@ -624,6 +640,18 @@ def created_at(self) -> Optional[pulumi.Input[str]]: def created_at(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "created_at", value) + @property + @pulumi.getter(name="ipamIpIds") + def ipam_ip_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of IPAM IP IDs to assign to the server in the requested private network. + """ + return pulumi.get(self, "ipam_ip_ids") + + @ipam_ip_ids.setter + def ipam_ip_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "ipam_ip_ids", value) + @property @pulumi.getter def status(self) -> Optional[pulumi.Input[str]]: @@ -2633,6 +2661,190 @@ def project_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] pulumi.set(self, "project_ids", value) +if not MYPY: + class InferenceDeploymentPrivateEndpointArgsDict(TypedDict): + disable_auth: NotRequired[pulumi.Input[bool]] + """ + Disable the authentication on the endpoint. + """ + id: NotRequired[pulumi.Input[str]] + """ + (Optional) The id of the public endpoint. + """ + private_network_id: NotRequired[pulumi.Input[str]] + """ + The ID of the private network to use. + """ + url: NotRequired[pulumi.Input[str]] + """ + (Optional) The URL of the endpoint. + """ +elif False: + InferenceDeploymentPrivateEndpointArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class InferenceDeploymentPrivateEndpointArgs: + def __init__(__self__, *, + disable_auth: Optional[pulumi.Input[bool]] = None, + id: Optional[pulumi.Input[str]] = None, + private_network_id: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] disable_auth: Disable the authentication on the endpoint. + :param pulumi.Input[str] id: (Optional) The id of the public endpoint. + :param pulumi.Input[str] private_network_id: The ID of the private network to use. + :param pulumi.Input[str] url: (Optional) The URL of the endpoint. + """ + if disable_auth is not None: + pulumi.set(__self__, "disable_auth", disable_auth) + if id is not None: + pulumi.set(__self__, "id", id) + if private_network_id is not None: + pulumi.set(__self__, "private_network_id", private_network_id) + if url is not None: + pulumi.set(__self__, "url", url) + + @property + @pulumi.getter(name="disableAuth") + def disable_auth(self) -> Optional[pulumi.Input[bool]]: + """ + Disable the authentication on the endpoint. + """ + return pulumi.get(self, "disable_auth") + + @disable_auth.setter + def disable_auth(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "disable_auth", value) + + @property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[str]]: + """ + (Optional) The id of the public endpoint. + """ + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id", value) + + @property + @pulumi.getter(name="privateNetworkId") + def private_network_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the private network to use. + """ + return pulumi.get(self, "private_network_id") + + @private_network_id.setter + def private_network_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "private_network_id", value) + + @property + @pulumi.getter + def url(self) -> Optional[pulumi.Input[str]]: + """ + (Optional) The URL of the endpoint. + """ + return pulumi.get(self, "url") + + @url.setter + def url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "url", value) + + +if not MYPY: + class InferenceDeploymentPublicEndpointArgsDict(TypedDict): + disable_auth: NotRequired[pulumi.Input[bool]] + """ + Disable the authentication on the endpoint. + """ + id: NotRequired[pulumi.Input[str]] + """ + (Optional) The id of the public endpoint. + """ + is_enabled: NotRequired[pulumi.Input[bool]] + """ + Enable or disable public endpoint. + """ + url: NotRequired[pulumi.Input[str]] + """ + (Optional) The URL of the endpoint. + """ +elif False: + InferenceDeploymentPublicEndpointArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class InferenceDeploymentPublicEndpointArgs: + def __init__(__self__, *, + disable_auth: Optional[pulumi.Input[bool]] = None, + id: Optional[pulumi.Input[str]] = None, + is_enabled: Optional[pulumi.Input[bool]] = None, + url: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] disable_auth: Disable the authentication on the endpoint. + :param pulumi.Input[str] id: (Optional) The id of the public endpoint. + :param pulumi.Input[bool] is_enabled: Enable or disable public endpoint. + :param pulumi.Input[str] url: (Optional) The URL of the endpoint. + """ + if disable_auth is not None: + pulumi.set(__self__, "disable_auth", disable_auth) + if id is not None: + pulumi.set(__self__, "id", id) + if is_enabled is not None: + pulumi.set(__self__, "is_enabled", is_enabled) + if url is not None: + pulumi.set(__self__, "url", url) + + @property + @pulumi.getter(name="disableAuth") + def disable_auth(self) -> Optional[pulumi.Input[bool]]: + """ + Disable the authentication on the endpoint. + """ + return pulumi.get(self, "disable_auth") + + @disable_auth.setter + def disable_auth(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "disable_auth", value) + + @property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[str]]: + """ + (Optional) The id of the public endpoint. + """ + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id", value) + + @property + @pulumi.getter(name="isEnabled") + def is_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Enable or disable public endpoint. + """ + return pulumi.get(self, "is_enabled") + + @is_enabled.setter + def is_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "is_enabled", value) + + @property + @pulumi.getter + def url(self) -> Optional[pulumi.Input[str]]: + """ + (Optional) The URL of the endpoint. + """ + return pulumi.get(self, "url") + + @url.setter + def url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "url", value) + + if not MYPY: class InstanceImageAdditionalVolumeArgsDict(TypedDict): creation_date: NotRequired[pulumi.Input[str]] @@ -4335,6 +4547,57 @@ def object_prefix(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "object_prefix", value) +if not MYPY: + class IpamIpCustomResourceArgsDict(TypedDict): + mac_address: pulumi.Input[str] + """ + The MAC address of the resource the IP is attached to. + """ + name: NotRequired[pulumi.Input[str]] + """ + The name of the resource the IP is attached to. + """ +elif False: + IpamIpCustomResourceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class IpamIpCustomResourceArgs: + def __init__(__self__, *, + mac_address: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] mac_address: The MAC address of the resource the IP is attached to. + :param pulumi.Input[str] name: The name of the resource the IP is attached to. + """ + pulumi.set(__self__, "mac_address", mac_address) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="macAddress") + def mac_address(self) -> pulumi.Input[str]: + """ + The MAC address of the resource the IP is attached to. + """ + return pulumi.get(self, "mac_address") + + @mac_address.setter + def mac_address(self, value: pulumi.Input[str]): + pulumi.set(self, "mac_address", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the resource the IP is attached to. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + if not MYPY: class IpamIpResourceArgsDict(TypedDict): id: NotRequired[pulumi.Input[str]] @@ -6479,6 +6742,78 @@ def can_receive(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "can_receive", value) +if not MYPY: + class MongoDbInstancePublicNetworkArgsDict(TypedDict): + dns_record: NotRequired[pulumi.Input[str]] + """ + The DNS record of your endpoint + """ + id: NotRequired[pulumi.Input[str]] + """ + The ID of the MongoDB® instance. + """ + port: NotRequired[pulumi.Input[int]] + """ + TCP port of the endpoint + """ +elif False: + MongoDbInstancePublicNetworkArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MongoDbInstancePublicNetworkArgs: + def __init__(__self__, *, + dns_record: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[str] dns_record: The DNS record of your endpoint + :param pulumi.Input[str] id: The ID of the MongoDB® instance. + :param pulumi.Input[int] port: TCP port of the endpoint + """ + if dns_record is not None: + pulumi.set(__self__, "dns_record", dns_record) + if id is not None: + pulumi.set(__self__, "id", id) + if port is not None: + pulumi.set(__self__, "port", port) + + @property + @pulumi.getter(name="dnsRecord") + def dns_record(self) -> Optional[pulumi.Input[str]]: + """ + The DNS record of your endpoint + """ + return pulumi.get(self, "dns_record") + + @dns_record.setter + def dns_record(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "dns_record", value) + + @property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the MongoDB® instance. + """ + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id", value) + + @property + @pulumi.getter + def port(self) -> Optional[pulumi.Input[int]]: + """ + TCP port of the endpoint + """ + return pulumi.get(self, "port") + + @port.setter + def port(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "port", value) + + if not MYPY: class ObjectBucketAclAccessControlPolicyArgsDict(TypedDict): owner: pulumi.Input['ObjectBucketAclAccessControlPolicyOwnerArgsDict'] diff --git a/sdk/python/pulumiverse_scaleway/baremetal_server.py b/sdk/python/pulumiverse_scaleway/baremetal_server.py index 0dbbb93d..25ae87ba 100644 --- a/sdk/python/pulumiverse_scaleway/baremetal_server.py +++ b/sdk/python/pulumiverse_scaleway/baremetal_server.py @@ -768,12 +768,12 @@ def __init__(__self__, import pulumi_scaleway as scaleway import pulumiverse_scaleway as scaleway - main = scaleway.get_account_ssh_key(name="main") + main = scaleway.get_iam_ssh_key(name="main") base = scaleway.BaremetalServer("base", zone="fr-par-2", offer="GP-BM1-S", os="d17d6872-0412-45d9-a198-af82c34d3c5c", - ssh_key_ids=[main.id]) + ssh_key_ids=[main_scaleway_account_ssh_key["id"]]) ``` ### With option @@ -783,7 +783,7 @@ def __init__(__self__, import pulumi_scaleway as scaleway import pulumiverse_scaleway as scaleway - main = scaleway.get_account_ssh_key(name="main") + main = scaleway.get_iam_ssh_key(name="main") my_os = scaleway.get_baremetal_os(zone="fr-par-2", name="Ubuntu", version="22.04 LTS (Jammy Jellyfish)") @@ -797,7 +797,7 @@ def __init__(__self__, zone="fr-par-2", offer=my_offer.offer_id, os=my_os.os_id, - ssh_key_ids=[main.id], + ssh_key_ids=[main_scaleway_account_ssh_key["id"]], options=[ { "id": private_network.option_id, @@ -815,7 +815,7 @@ def __init__(__self__, import pulumi_scaleway as scaleway import pulumiverse_scaleway as scaleway - main = scaleway.get_account_ssh_key(name="main") + main = scaleway.get_iam_ssh_key(name="main") my_os = scaleway.get_baremetal_os(zone="fr-par-2", name="Ubuntu", version="22.04 LTS (Jammy Jellyfish)") @@ -830,7 +830,7 @@ def __init__(__self__, zone="fr-par-2", offer=my_offer.offer_id, os=my_os.os_id, - ssh_key_ids=[main.id], + ssh_key_ids=[main_scaleway_account_ssh_key["id"]], options=[{ "id": private_network.option_id, }], @@ -839,6 +839,47 @@ def __init__(__self__, }]) ``` + ### With IPAM IP IDs + + ```python + import pulumi + import pulumi_scaleway as scaleway + import pulumiverse_scaleway as scaleway + + vpc01 = scaleway.Vpc("vpc01", name="vpc_baremetal") + pn01 = scaleway.VpcPrivateNetwork("pn01", + name="private_network_baremetal", + ipv4_subnet={ + "subnet": "172.16.64.0/22", + }, + vpc_id=vpc01.id) + ip01 = scaleway.IpamIp("ip01", + address="172.16.64.7", + sources=[{ + "private_network_id": pn01.id, + }]) + my_key = scaleway.get_iam_ssh_key(name="main") + my_os = scaleway.get_baremetal_os(zone="fr-par-1", + name="Ubuntu", + version="22.04 LTS (Jammy Jellyfish)") + my_offer = scaleway.get_baremetal_offer(zone="fr-par-1", + name="EM-A115X-SSD") + private_network = scaleway.get_baremetal_option(zone="fr-par-1", + name="Private Network") + base = scaleway.BaremetalServer("base", + zone="fr-par-2", + offer=my_offer.offer_id, + os=my_os.os_id, + ssh_key_ids=[my_key_scaleway_account_ssh_key["id"]], + options=[{ + "id": private_network.option_id, + }], + private_networks=[{ + "id": pn01.id, + "ipam_ip_ids": [ip01.id], + }]) + ``` + ### Without install config ```python @@ -909,12 +950,12 @@ def __init__(__self__, import pulumi_scaleway as scaleway import pulumiverse_scaleway as scaleway - main = scaleway.get_account_ssh_key(name="main") + main = scaleway.get_iam_ssh_key(name="main") base = scaleway.BaremetalServer("base", zone="fr-par-2", offer="GP-BM1-S", os="d17d6872-0412-45d9-a198-af82c34d3c5c", - ssh_key_ids=[main.id]) + ssh_key_ids=[main_scaleway_account_ssh_key["id"]]) ``` ### With option @@ -924,7 +965,7 @@ def __init__(__self__, import pulumi_scaleway as scaleway import pulumiverse_scaleway as scaleway - main = scaleway.get_account_ssh_key(name="main") + main = scaleway.get_iam_ssh_key(name="main") my_os = scaleway.get_baremetal_os(zone="fr-par-2", name="Ubuntu", version="22.04 LTS (Jammy Jellyfish)") @@ -938,7 +979,7 @@ def __init__(__self__, zone="fr-par-2", offer=my_offer.offer_id, os=my_os.os_id, - ssh_key_ids=[main.id], + ssh_key_ids=[main_scaleway_account_ssh_key["id"]], options=[ { "id": private_network.option_id, @@ -956,7 +997,7 @@ def __init__(__self__, import pulumi_scaleway as scaleway import pulumiverse_scaleway as scaleway - main = scaleway.get_account_ssh_key(name="main") + main = scaleway.get_iam_ssh_key(name="main") my_os = scaleway.get_baremetal_os(zone="fr-par-2", name="Ubuntu", version="22.04 LTS (Jammy Jellyfish)") @@ -971,7 +1012,7 @@ def __init__(__self__, zone="fr-par-2", offer=my_offer.offer_id, os=my_os.os_id, - ssh_key_ids=[main.id], + ssh_key_ids=[main_scaleway_account_ssh_key["id"]], options=[{ "id": private_network.option_id, }], @@ -980,6 +1021,47 @@ def __init__(__self__, }]) ``` + ### With IPAM IP IDs + + ```python + import pulumi + import pulumi_scaleway as scaleway + import pulumiverse_scaleway as scaleway + + vpc01 = scaleway.Vpc("vpc01", name="vpc_baremetal") + pn01 = scaleway.VpcPrivateNetwork("pn01", + name="private_network_baremetal", + ipv4_subnet={ + "subnet": "172.16.64.0/22", + }, + vpc_id=vpc01.id) + ip01 = scaleway.IpamIp("ip01", + address="172.16.64.7", + sources=[{ + "private_network_id": pn01.id, + }]) + my_key = scaleway.get_iam_ssh_key(name="main") + my_os = scaleway.get_baremetal_os(zone="fr-par-1", + name="Ubuntu", + version="22.04 LTS (Jammy Jellyfish)") + my_offer = scaleway.get_baremetal_offer(zone="fr-par-1", + name="EM-A115X-SSD") + private_network = scaleway.get_baremetal_option(zone="fr-par-1", + name="Private Network") + base = scaleway.BaremetalServer("base", + zone="fr-par-2", + offer=my_offer.offer_id, + os=my_os.os_id, + ssh_key_ids=[my_key_scaleway_account_ssh_key["id"]], + options=[{ + "id": private_network.option_id, + }], + private_networks=[{ + "id": pn01.id, + "ipam_ip_ids": [ip01.id], + }]) + ``` + ### Without install config ```python diff --git a/sdk/python/pulumiverse_scaleway/get_mongo_db_instance.py b/sdk/python/pulumiverse_scaleway/get_mongo_db_instance.py new file mode 100644 index 00000000..72903cf3 --- /dev/null +++ b/sdk/python/pulumiverse_scaleway/get_mongo_db_instance.py @@ -0,0 +1,324 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs + +__all__ = [ + 'GetMongoDbInstanceResult', + 'AwaitableGetMongoDbInstanceResult', + 'get_mongo_db_instance', + 'get_mongo_db_instance_output', +] + +@pulumi.output_type +class GetMongoDbInstanceResult: + """ + A collection of values returned by getMongoDbInstance. + """ + def __init__(__self__, created_at=None, id=None, instance_id=None, name=None, node_number=None, node_type=None, password=None, project_id=None, public_networks=None, region=None, settings=None, snapshot_id=None, tags=None, updated_at=None, user_name=None, version=None, volume_size_in_gb=None, volume_type=None): + if created_at and not isinstance(created_at, str): + raise TypeError("Expected argument 'created_at' to be a str") + pulumi.set(__self__, "created_at", created_at) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if instance_id and not isinstance(instance_id, str): + raise TypeError("Expected argument 'instance_id' to be a str") + pulumi.set(__self__, "instance_id", instance_id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if node_number and not isinstance(node_number, int): + raise TypeError("Expected argument 'node_number' to be a int") + pulumi.set(__self__, "node_number", node_number) + if node_type and not isinstance(node_type, str): + raise TypeError("Expected argument 'node_type' to be a str") + pulumi.set(__self__, "node_type", node_type) + if password and not isinstance(password, str): + raise TypeError("Expected argument 'password' to be a str") + pulumi.set(__self__, "password", password) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if public_networks and not isinstance(public_networks, list): + raise TypeError("Expected argument 'public_networks' to be a list") + pulumi.set(__self__, "public_networks", public_networks) + if region and not isinstance(region, str): + raise TypeError("Expected argument 'region' to be a str") + pulumi.set(__self__, "region", region) + if settings and not isinstance(settings, dict): + raise TypeError("Expected argument 'settings' to be a dict") + pulumi.set(__self__, "settings", settings) + if snapshot_id and not isinstance(snapshot_id, str): + raise TypeError("Expected argument 'snapshot_id' to be a str") + pulumi.set(__self__, "snapshot_id", snapshot_id) + if tags and not isinstance(tags, list): + raise TypeError("Expected argument 'tags' to be a list") + pulumi.set(__self__, "tags", tags) + if updated_at and not isinstance(updated_at, str): + raise TypeError("Expected argument 'updated_at' to be a str") + pulumi.set(__self__, "updated_at", updated_at) + if user_name and not isinstance(user_name, str): + raise TypeError("Expected argument 'user_name' to be a str") + pulumi.set(__self__, "user_name", user_name) + if version and not isinstance(version, str): + raise TypeError("Expected argument 'version' to be a str") + pulumi.set(__self__, "version", version) + if volume_size_in_gb and not isinstance(volume_size_in_gb, int): + raise TypeError("Expected argument 'volume_size_in_gb' to be a int") + pulumi.set(__self__, "volume_size_in_gb", volume_size_in_gb) + if volume_type and not isinstance(volume_type, str): + raise TypeError("Expected argument 'volume_type' to be a str") + pulumi.set(__self__, "volume_type", volume_type) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> str: + """ + The date and time the MongoDB® instance was created. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="instanceId") + def instance_id(self) -> Optional[str]: + return pulumi.get(self, "instance_id") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the MongoDB® instance. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="nodeNumber") + def node_number(self) -> int: + """ + The number of nodes in the MongoDB® cluster. + """ + return pulumi.get(self, "node_number") + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> str: + """ + The type of MongoDB® node. + """ + return pulumi.get(self, "node_type") + + @property + @pulumi.getter + def password(self) -> str: + return pulumi.get(self, "password") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[str]: + """ + The ID of the project the instance belongs to. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter(name="publicNetworks") + def public_networks(self) -> Sequence['outputs.GetMongoDbInstancePublicNetworkResult']: + """ + The details of the public network configuration, if applicable. + """ + return pulumi.get(self, "public_networks") + + @property + @pulumi.getter + def region(self) -> Optional[str]: + return pulumi.get(self, "region") + + @property + @pulumi.getter + def settings(self) -> Mapping[str, str]: + return pulumi.get(self, "settings") + + @property + @pulumi.getter(name="snapshotId") + def snapshot_id(self) -> str: + return pulumi.get(self, "snapshot_id") + + @property + @pulumi.getter + def tags(self) -> Sequence[str]: + """ + A list of tags attached to the MongoDB® instance. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> str: + return pulumi.get(self, "updated_at") + + @property + @pulumi.getter(name="userName") + def user_name(self) -> str: + return pulumi.get(self, "user_name") + + @property + @pulumi.getter + def version(self) -> str: + """ + The version of MongoDB® running on the instance. + """ + return pulumi.get(self, "version") + + @property + @pulumi.getter(name="volumeSizeInGb") + def volume_size_in_gb(self) -> int: + """ + The size of the attached volume, in GB. + """ + return pulumi.get(self, "volume_size_in_gb") + + @property + @pulumi.getter(name="volumeType") + def volume_type(self) -> str: + """ + The type of volume attached to the MongoDB® instance. + """ + return pulumi.get(self, "volume_type") + + +class AwaitableGetMongoDbInstanceResult(GetMongoDbInstanceResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetMongoDbInstanceResult( + created_at=self.created_at, + id=self.id, + instance_id=self.instance_id, + name=self.name, + node_number=self.node_number, + node_type=self.node_type, + password=self.password, + project_id=self.project_id, + public_networks=self.public_networks, + region=self.region, + settings=self.settings, + snapshot_id=self.snapshot_id, + tags=self.tags, + updated_at=self.updated_at, + user_name=self.user_name, + version=self.version, + volume_size_in_gb=self.volume_size_in_gb, + volume_type=self.volume_type) + + +def get_mongo_db_instance(instance_id: Optional[str] = None, + name: Optional[str] = None, + project_id: Optional[str] = None, + region: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetMongoDbInstanceResult: + """ + 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/) + + + :param str instance_id: The MongoDB® instance ID. + + > **Note** You must specify at least one: `name` or `instance_id`. + :param str name: The name of the MongoDB® instance. + :param str project_id: The ID of the project the MongoDB® instance is in. Can be used to filter instances when using `name`. + :param str region: `region`) The region in which the MongoDB® Instance exists. + """ + __args__ = dict() + __args__['instanceId'] = instance_id + __args__['name'] = name + __args__['projectId'] = project_id + __args__['region'] = region + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('scaleway:index/getMongoDbInstance:getMongoDbInstance', __args__, opts=opts, typ=GetMongoDbInstanceResult).value + + return AwaitableGetMongoDbInstanceResult( + created_at=pulumi.get(__ret__, 'created_at'), + id=pulumi.get(__ret__, 'id'), + instance_id=pulumi.get(__ret__, 'instance_id'), + name=pulumi.get(__ret__, 'name'), + node_number=pulumi.get(__ret__, 'node_number'), + node_type=pulumi.get(__ret__, 'node_type'), + password=pulumi.get(__ret__, 'password'), + project_id=pulumi.get(__ret__, 'project_id'), + public_networks=pulumi.get(__ret__, 'public_networks'), + region=pulumi.get(__ret__, 'region'), + settings=pulumi.get(__ret__, 'settings'), + snapshot_id=pulumi.get(__ret__, 'snapshot_id'), + tags=pulumi.get(__ret__, 'tags'), + updated_at=pulumi.get(__ret__, 'updated_at'), + user_name=pulumi.get(__ret__, 'user_name'), + version=pulumi.get(__ret__, 'version'), + volume_size_in_gb=pulumi.get(__ret__, 'volume_size_in_gb'), + volume_type=pulumi.get(__ret__, 'volume_type')) +def get_mongo_db_instance_output(instance_id: Optional[pulumi.Input[Optional[str]]] = None, + name: Optional[pulumi.Input[Optional[str]]] = None, + project_id: Optional[pulumi.Input[Optional[str]]] = None, + region: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetMongoDbInstanceResult]: + """ + 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/) + + + :param str instance_id: The MongoDB® instance ID. + + > **Note** You must specify at least one: `name` or `instance_id`. + :param str name: The name of the MongoDB® instance. + :param str project_id: The ID of the project the MongoDB® instance is in. Can be used to filter instances when using `name`. + :param str region: `region`) The region in which the MongoDB® Instance exists. + """ + __args__ = dict() + __args__['instanceId'] = instance_id + __args__['name'] = name + __args__['projectId'] = project_id + __args__['region'] = region + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('scaleway:index/getMongoDbInstance:getMongoDbInstance', __args__, opts=opts, typ=GetMongoDbInstanceResult) + return __ret__.apply(lambda __response__: GetMongoDbInstanceResult( + created_at=pulumi.get(__response__, 'created_at'), + id=pulumi.get(__response__, 'id'), + instance_id=pulumi.get(__response__, 'instance_id'), + name=pulumi.get(__response__, 'name'), + node_number=pulumi.get(__response__, 'node_number'), + node_type=pulumi.get(__response__, 'node_type'), + password=pulumi.get(__response__, 'password'), + project_id=pulumi.get(__response__, 'project_id'), + public_networks=pulumi.get(__response__, 'public_networks'), + region=pulumi.get(__response__, 'region'), + settings=pulumi.get(__response__, 'settings'), + snapshot_id=pulumi.get(__response__, 'snapshot_id'), + tags=pulumi.get(__response__, 'tags'), + updated_at=pulumi.get(__response__, 'updated_at'), + user_name=pulumi.get(__response__, 'user_name'), + version=pulumi.get(__response__, 'version'), + volume_size_in_gb=pulumi.get(__response__, 'volume_size_in_gb'), + volume_type=pulumi.get(__response__, 'volume_type'))) diff --git a/sdk/python/pulumiverse_scaleway/inference_deployment.py b/sdk/python/pulumiverse_scaleway/inference_deployment.py new file mode 100644 index 00000000..36439ebc --- /dev/null +++ b/sdk/python/pulumiverse_scaleway/inference_deployment.py @@ -0,0 +1,822 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['InferenceDeploymentArgs', 'InferenceDeployment'] + +@pulumi.input_type +class InferenceDeploymentArgs: + def __init__(__self__, *, + model_name: pulumi.Input[str], + node_type: pulumi.Input[str], + accept_eula: Optional[pulumi.Input[bool]] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + name: Optional[pulumi.Input[str]] = None, + private_endpoint: Optional[pulumi.Input['InferenceDeploymentPrivateEndpointArgs']] = None, + project_id: Optional[pulumi.Input[str]] = None, + public_endpoint: Optional[pulumi.Input['InferenceDeploymentPublicEndpointArgs']] = None, + region: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a InferenceDeployment resource. + :param pulumi.Input[str] model_name: The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`) + :param pulumi.Input[str] node_type: The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`) + :param pulumi.Input[bool] accept_eula: Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept. + :param pulumi.Input[int] max_size: The maximum size of the pool. + :param pulumi.Input[int] min_size: The minimum size of the pool. + :param pulumi.Input[str] name: The deployment name. + :param pulumi.Input['InferenceDeploymentPrivateEndpointArgs'] private_endpoint: Configuration of the deployment's private endpoint. + :param pulumi.Input[str] project_id: `project_id`) The ID of the project the deployment is associated with. + :param pulumi.Input['InferenceDeploymentPublicEndpointArgs'] public_endpoint: Configuration of the deployment's public endpoint. + :param pulumi.Input[str] region: `region`) The region in which the deployment is created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the deployment. + """ + pulumi.set(__self__, "model_name", model_name) + pulumi.set(__self__, "node_type", node_type) + if accept_eula is not None: + pulumi.set(__self__, "accept_eula", accept_eula) + if max_size is not None: + pulumi.set(__self__, "max_size", max_size) + if min_size is not None: + pulumi.set(__self__, "min_size", min_size) + if name is not None: + pulumi.set(__self__, "name", name) + if private_endpoint is not None: + pulumi.set(__self__, "private_endpoint", private_endpoint) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if public_endpoint is not None: + pulumi.set(__self__, "public_endpoint", public_endpoint) + if region is not None: + pulumi.set(__self__, "region", region) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="modelName") + def model_name(self) -> pulumi.Input[str]: + """ + The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`) + """ + return pulumi.get(self, "model_name") + + @model_name.setter + def model_name(self, value: pulumi.Input[str]): + pulumi.set(self, "model_name", value) + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> pulumi.Input[str]: + """ + The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`) + """ + return pulumi.get(self, "node_type") + + @node_type.setter + def node_type(self, value: pulumi.Input[str]): + pulumi.set(self, "node_type", value) + + @property + @pulumi.getter(name="acceptEula") + def accept_eula(self) -> Optional[pulumi.Input[bool]]: + """ + Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept. + """ + return pulumi.get(self, "accept_eula") + + @accept_eula.setter + def accept_eula(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "accept_eula", value) + + @property + @pulumi.getter(name="maxSize") + def max_size(self) -> Optional[pulumi.Input[int]]: + """ + The maximum size of the pool. + """ + return pulumi.get(self, "max_size") + + @max_size.setter + def max_size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_size", value) + + @property + @pulumi.getter(name="minSize") + def min_size(self) -> Optional[pulumi.Input[int]]: + """ + The minimum size of the pool. + """ + return pulumi.get(self, "min_size") + + @min_size.setter + def min_size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_size", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The deployment name. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="privateEndpoint") + def private_endpoint(self) -> Optional[pulumi.Input['InferenceDeploymentPrivateEndpointArgs']]: + """ + Configuration of the deployment's private endpoint. + """ + return pulumi.get(self, "private_endpoint") + + @private_endpoint.setter + def private_endpoint(self, value: Optional[pulumi.Input['InferenceDeploymentPrivateEndpointArgs']]): + pulumi.set(self, "private_endpoint", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + `project_id`) The ID of the project the deployment is associated with. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter(name="publicEndpoint") + def public_endpoint(self) -> Optional[pulumi.Input['InferenceDeploymentPublicEndpointArgs']]: + """ + Configuration of the deployment's public endpoint. + """ + return pulumi.get(self, "public_endpoint") + + @public_endpoint.setter + def public_endpoint(self, value: Optional[pulumi.Input['InferenceDeploymentPublicEndpointArgs']]): + pulumi.set(self, "public_endpoint", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + `region`) The region in which the deployment is created. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The tags associated with the deployment. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + +@pulumi.input_type +class _InferenceDeploymentState: + def __init__(__self__, *, + accept_eula: Optional[pulumi.Input[bool]] = None, + created_at: Optional[pulumi.Input[str]] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + model_id: Optional[pulumi.Input[str]] = None, + model_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + private_endpoint: Optional[pulumi.Input['InferenceDeploymentPrivateEndpointArgs']] = None, + project_id: Optional[pulumi.Input[str]] = None, + public_endpoint: Optional[pulumi.Input['InferenceDeploymentPublicEndpointArgs']] = None, + region: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + updated_at: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering InferenceDeployment resources. + :param pulumi.Input[bool] accept_eula: Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept. + :param pulumi.Input[str] created_at: The date and time of the creation of the deployment. + :param pulumi.Input[int] max_size: The maximum size of the pool. + :param pulumi.Input[int] min_size: The minimum size of the pool. + :param pulumi.Input[str] model_id: The model id used for the deployment. + :param pulumi.Input[str] model_name: The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`) + :param pulumi.Input[str] name: The deployment name. + :param pulumi.Input[str] node_type: The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`) + :param pulumi.Input['InferenceDeploymentPrivateEndpointArgs'] private_endpoint: Configuration of the deployment's private endpoint. + :param pulumi.Input[str] project_id: `project_id`) The ID of the project the deployment is associated with. + :param pulumi.Input['InferenceDeploymentPublicEndpointArgs'] public_endpoint: Configuration of the deployment's public endpoint. + :param pulumi.Input[str] region: `region`) The region in which the deployment is created. + :param pulumi.Input[int] size: The size of the pool. + :param pulumi.Input[str] status: The status of the deployment. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the deployment. + :param pulumi.Input[str] updated_at: The date and time of the last update of the deployment. + """ + if accept_eula is not None: + pulumi.set(__self__, "accept_eula", accept_eula) + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if max_size is not None: + pulumi.set(__self__, "max_size", max_size) + if min_size is not None: + pulumi.set(__self__, "min_size", min_size) + if model_id is not None: + pulumi.set(__self__, "model_id", model_id) + if model_name is not None: + pulumi.set(__self__, "model_name", model_name) + if name is not None: + pulumi.set(__self__, "name", name) + if node_type is not None: + pulumi.set(__self__, "node_type", node_type) + if private_endpoint is not None: + pulumi.set(__self__, "private_endpoint", private_endpoint) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if public_endpoint is not None: + pulumi.set(__self__, "public_endpoint", public_endpoint) + if region is not None: + pulumi.set(__self__, "region", region) + if size is not None: + pulumi.set(__self__, "size", size) + if status is not None: + pulumi.set(__self__, "status", status) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if updated_at is not None: + pulumi.set(__self__, "updated_at", updated_at) + + @property + @pulumi.getter(name="acceptEula") + def accept_eula(self) -> Optional[pulumi.Input[bool]]: + """ + Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept. + """ + return pulumi.get(self, "accept_eula") + + @accept_eula.setter + def accept_eula(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "accept_eula", value) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + The date and time of the creation of the deployment. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter(name="maxSize") + def max_size(self) -> Optional[pulumi.Input[int]]: + """ + The maximum size of the pool. + """ + return pulumi.get(self, "max_size") + + @max_size.setter + def max_size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_size", value) + + @property + @pulumi.getter(name="minSize") + def min_size(self) -> Optional[pulumi.Input[int]]: + """ + The minimum size of the pool. + """ + return pulumi.get(self, "min_size") + + @min_size.setter + def min_size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_size", value) + + @property + @pulumi.getter(name="modelId") + def model_id(self) -> Optional[pulumi.Input[str]]: + """ + The model id used for the deployment. + """ + return pulumi.get(self, "model_id") + + @model_id.setter + def model_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "model_id", value) + + @property + @pulumi.getter(name="modelName") + def model_name(self) -> Optional[pulumi.Input[str]]: + """ + The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`) + """ + return pulumi.get(self, "model_name") + + @model_name.setter + def model_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "model_name", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The deployment name. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> Optional[pulumi.Input[str]]: + """ + The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`) + """ + return pulumi.get(self, "node_type") + + @node_type.setter + def node_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node_type", value) + + @property + @pulumi.getter(name="privateEndpoint") + def private_endpoint(self) -> Optional[pulumi.Input['InferenceDeploymentPrivateEndpointArgs']]: + """ + Configuration of the deployment's private endpoint. + """ + return pulumi.get(self, "private_endpoint") + + @private_endpoint.setter + def private_endpoint(self, value: Optional[pulumi.Input['InferenceDeploymentPrivateEndpointArgs']]): + pulumi.set(self, "private_endpoint", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + `project_id`) The ID of the project the deployment is associated with. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter(name="publicEndpoint") + def public_endpoint(self) -> Optional[pulumi.Input['InferenceDeploymentPublicEndpointArgs']]: + """ + Configuration of the deployment's public endpoint. + """ + return pulumi.get(self, "public_endpoint") + + @public_endpoint.setter + def public_endpoint(self, value: Optional[pulumi.Input['InferenceDeploymentPublicEndpointArgs']]): + pulumi.set(self, "public_endpoint", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + `region`) The region in which the deployment is created. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter + def size(self) -> Optional[pulumi.Input[int]]: + """ + The size of the pool. + """ + return pulumi.get(self, "size") + + @size.setter + def size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "size", value) + + @property + @pulumi.getter + def status(self) -> Optional[pulumi.Input[str]]: + """ + The status of the deployment. + """ + return pulumi.get(self, "status") + + @status.setter + def status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "status", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The tags associated with the deployment. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[pulumi.Input[str]]: + """ + The date and time of the last update of the deployment. + """ + return pulumi.get(self, "updated_at") + + @updated_at.setter + def updated_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "updated_at", value) + + +class InferenceDeployment(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + accept_eula: Optional[pulumi.Input[bool]] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + model_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + private_endpoint: Optional[pulumi.Input[Union['InferenceDeploymentPrivateEndpointArgs', 'InferenceDeploymentPrivateEndpointArgsDict']]] = None, + project_id: Optional[pulumi.Input[str]] = None, + public_endpoint: Optional[pulumi.Input[Union['InferenceDeploymentPublicEndpointArgs', 'InferenceDeploymentPublicEndpointArgsDict']]] = None, + region: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + __props__=None): + """ + Creates and manages Scaleway Managed Inference deployments. + For more information, see [the documentation](https://www.scaleway.com/en/developers/api/inference/). + + ## Example Usage + + ### Basic + + ```python + import pulumi + import pulumiverse_scaleway as scaleway + + deployment = scaleway.InferenceDeployment("deployment", + name="tf-inference-deployment", + node_type="L4", + model_name="meta/llama-3.1-8b-instruct:fp8", + public_endpoint={ + "is_enabled": True, + }, + accept_eula=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 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] accept_eula: Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept. + :param pulumi.Input[int] max_size: The maximum size of the pool. + :param pulumi.Input[int] min_size: The minimum size of the pool. + :param pulumi.Input[str] model_name: The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`) + :param pulumi.Input[str] name: The deployment name. + :param pulumi.Input[str] node_type: The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`) + :param pulumi.Input[Union['InferenceDeploymentPrivateEndpointArgs', 'InferenceDeploymentPrivateEndpointArgsDict']] private_endpoint: Configuration of the deployment's private endpoint. + :param pulumi.Input[str] project_id: `project_id`) The ID of the project the deployment is associated with. + :param pulumi.Input[Union['InferenceDeploymentPublicEndpointArgs', 'InferenceDeploymentPublicEndpointArgsDict']] public_endpoint: Configuration of the deployment's public endpoint. + :param pulumi.Input[str] region: `region`) The region in which the deployment is created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the deployment. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: InferenceDeploymentArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Creates and manages Scaleway Managed Inference deployments. + For more information, see [the documentation](https://www.scaleway.com/en/developers/api/inference/). + + ## Example Usage + + ### Basic + + ```python + import pulumi + import pulumiverse_scaleway as scaleway + + deployment = scaleway.InferenceDeployment("deployment", + name="tf-inference-deployment", + node_type="L4", + model_name="meta/llama-3.1-8b-instruct:fp8", + public_endpoint={ + "is_enabled": True, + }, + accept_eula=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 + ``` + + :param str resource_name: The name of the resource. + :param InferenceDeploymentArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(InferenceDeploymentArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + accept_eula: Optional[pulumi.Input[bool]] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + model_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + private_endpoint: Optional[pulumi.Input[Union['InferenceDeploymentPrivateEndpointArgs', 'InferenceDeploymentPrivateEndpointArgsDict']]] = None, + project_id: Optional[pulumi.Input[str]] = None, + public_endpoint: Optional[pulumi.Input[Union['InferenceDeploymentPublicEndpointArgs', 'InferenceDeploymentPublicEndpointArgsDict']]] = None, + region: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = InferenceDeploymentArgs.__new__(InferenceDeploymentArgs) + + __props__.__dict__["accept_eula"] = accept_eula + __props__.__dict__["max_size"] = max_size + __props__.__dict__["min_size"] = min_size + if model_name is None and not opts.urn: + raise TypeError("Missing required property 'model_name'") + __props__.__dict__["model_name"] = model_name + __props__.__dict__["name"] = name + if node_type is None and not opts.urn: + raise TypeError("Missing required property 'node_type'") + __props__.__dict__["node_type"] = node_type + __props__.__dict__["private_endpoint"] = private_endpoint + __props__.__dict__["project_id"] = project_id + __props__.__dict__["public_endpoint"] = public_endpoint + __props__.__dict__["region"] = region + __props__.__dict__["tags"] = tags + __props__.__dict__["created_at"] = None + __props__.__dict__["model_id"] = None + __props__.__dict__["size"] = None + __props__.__dict__["status"] = None + __props__.__dict__["updated_at"] = None + super(InferenceDeployment, __self__).__init__( + 'scaleway:index/inferenceDeployment:InferenceDeployment', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + accept_eula: Optional[pulumi.Input[bool]] = None, + created_at: Optional[pulumi.Input[str]] = None, + max_size: Optional[pulumi.Input[int]] = None, + min_size: Optional[pulumi.Input[int]] = None, + model_id: Optional[pulumi.Input[str]] = None, + model_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + private_endpoint: Optional[pulumi.Input[Union['InferenceDeploymentPrivateEndpointArgs', 'InferenceDeploymentPrivateEndpointArgsDict']]] = None, + project_id: Optional[pulumi.Input[str]] = None, + public_endpoint: Optional[pulumi.Input[Union['InferenceDeploymentPublicEndpointArgs', 'InferenceDeploymentPublicEndpointArgsDict']]] = None, + region: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + status: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + updated_at: Optional[pulumi.Input[str]] = None) -> 'InferenceDeployment': + """ + Get an existing InferenceDeployment resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] accept_eula: Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept. + :param pulumi.Input[str] created_at: The date and time of the creation of the deployment. + :param pulumi.Input[int] max_size: The maximum size of the pool. + :param pulumi.Input[int] min_size: The minimum size of the pool. + :param pulumi.Input[str] model_id: The model id used for the deployment. + :param pulumi.Input[str] model_name: The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`) + :param pulumi.Input[str] name: The deployment name. + :param pulumi.Input[str] node_type: The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`) + :param pulumi.Input[Union['InferenceDeploymentPrivateEndpointArgs', 'InferenceDeploymentPrivateEndpointArgsDict']] private_endpoint: Configuration of the deployment's private endpoint. + :param pulumi.Input[str] project_id: `project_id`) The ID of the project the deployment is associated with. + :param pulumi.Input[Union['InferenceDeploymentPublicEndpointArgs', 'InferenceDeploymentPublicEndpointArgsDict']] public_endpoint: Configuration of the deployment's public endpoint. + :param pulumi.Input[str] region: `region`) The region in which the deployment is created. + :param pulumi.Input[int] size: The size of the pool. + :param pulumi.Input[str] status: The status of the deployment. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The tags associated with the deployment. + :param pulumi.Input[str] updated_at: The date and time of the last update of the deployment. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _InferenceDeploymentState.__new__(_InferenceDeploymentState) + + __props__.__dict__["accept_eula"] = accept_eula + __props__.__dict__["created_at"] = created_at + __props__.__dict__["max_size"] = max_size + __props__.__dict__["min_size"] = min_size + __props__.__dict__["model_id"] = model_id + __props__.__dict__["model_name"] = model_name + __props__.__dict__["name"] = name + __props__.__dict__["node_type"] = node_type + __props__.__dict__["private_endpoint"] = private_endpoint + __props__.__dict__["project_id"] = project_id + __props__.__dict__["public_endpoint"] = public_endpoint + __props__.__dict__["region"] = region + __props__.__dict__["size"] = size + __props__.__dict__["status"] = status + __props__.__dict__["tags"] = tags + __props__.__dict__["updated_at"] = updated_at + return InferenceDeployment(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="acceptEula") + def accept_eula(self) -> pulumi.Output[Optional[bool]]: + """ + Some models (e.g Meta Llama) require end-user license agreements. Set `true` to accept. + """ + return pulumi.get(self, "accept_eula") + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + The date and time of the creation of the deployment. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="maxSize") + def max_size(self) -> pulumi.Output[int]: + """ + The maximum size of the pool. + """ + return pulumi.get(self, "max_size") + + @property + @pulumi.getter(name="minSize") + def min_size(self) -> pulumi.Output[int]: + """ + The minimum size of the pool. + """ + return pulumi.get(self, "min_size") + + @property + @pulumi.getter(name="modelId") + def model_id(self) -> pulumi.Output[str]: + """ + The model id used for the deployment. + """ + return pulumi.get(self, "model_id") + + @property + @pulumi.getter(name="modelName") + def model_name(self) -> pulumi.Output[str]: + """ + The model name to use for the deployment. Model names can be found in Console or using Scaleway's CLI (`scw inference model list`) + """ + return pulumi.get(self, "model_name") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The deployment name. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> pulumi.Output[str]: + """ + The node type to use for the deployment. Node types can be found using Scaleway's CLI (`scw inference node-type list`) + """ + return pulumi.get(self, "node_type") + + @property + @pulumi.getter(name="privateEndpoint") + def private_endpoint(self) -> pulumi.Output[Optional['outputs.InferenceDeploymentPrivateEndpoint']]: + """ + Configuration of the deployment's private endpoint. + """ + return pulumi.get(self, "private_endpoint") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[str]: + """ + `project_id`) The ID of the project the deployment is associated with. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter(name="publicEndpoint") + def public_endpoint(self) -> pulumi.Output[Optional['outputs.InferenceDeploymentPublicEndpoint']]: + """ + Configuration of the deployment's public endpoint. + """ + return pulumi.get(self, "public_endpoint") + + @property + @pulumi.getter + def region(self) -> pulumi.Output[str]: + """ + `region`) The region in which the deployment is created. + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter + def size(self) -> pulumi.Output[int]: + """ + The size of the pool. + """ + return pulumi.get(self, "size") + + @property + @pulumi.getter + def status(self) -> pulumi.Output[str]: + """ + The status of the deployment. + """ + return pulumi.get(self, "status") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The tags associated with the deployment. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + """ + The date and time of the last update of the deployment. + """ + return pulumi.get(self, "updated_at") + diff --git a/sdk/python/pulumiverse_scaleway/instance_server.py b/sdk/python/pulumiverse_scaleway/instance_server.py index 7bece07b..bfc26a49 100644 --- a/sdk/python/pulumiverse_scaleway/instance_server.py +++ b/sdk/python/pulumiverse_scaleway/instance_server.py @@ -59,7 +59,7 @@ def __init__(__self__, *, > **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply. :param pulumi.Input[str] boot_type: The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`. - :param pulumi.Input[str] bootscript_id: The ID of the bootscript to use (set boot_type to `bootscript`). + :param pulumi.Input[str] bootscript_id: ID of the target bootscript (set boot_type to bootscript) :param pulumi.Input[str] cloud_init: The cloud init script associated with this server :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server. :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported. @@ -138,6 +138,9 @@ def __init__(__self__, *, pulumi.set(__self__, "replace_on_type_change", replace_on_type_change) if root_volume is not None: pulumi.set(__self__, "root_volume", root_volume) + if routed_ip_enabled is not None: + warnings.warn("""Routed IP is the default configuration, it should always be true""", DeprecationWarning) + pulumi.log.warn("""routed_ip_enabled is deprecated: Routed IP is the default configuration, it should always be true""") if routed_ip_enabled is not None: pulumi.set(__self__, "routed_ip_enabled", routed_ip_enabled) if security_group_id is not None: @@ -202,7 +205,7 @@ def boot_type(self, value: Optional[pulumi.Input[str]]): @_utilities.deprecated("""bootscript is not supported anymore.""") def bootscript_id(self) -> Optional[pulumi.Input[str]]: """ - The ID of the bootscript to use (set boot_type to `bootscript`). + ID of the target bootscript (set boot_type to bootscript) """ return pulumi.get(self, "bootscript_id") @@ -381,6 +384,7 @@ def root_volume(self, value: Optional[pulumi.Input['InstanceServerRootVolumeArgs @property @pulumi.getter(name="routedIpEnabled") + @_utilities.deprecated("""Routed IP is the default configuration, it should always be true""") def routed_ip_enabled(self) -> Optional[pulumi.Input[bool]]: """ If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type. @@ -501,7 +505,7 @@ def __init__(__self__, *, > **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply. :param pulumi.Input[str] boot_type: The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`. - :param pulumi.Input[str] bootscript_id: The ID of the bootscript to use (set boot_type to `bootscript`). + :param pulumi.Input[str] bootscript_id: ID of the target bootscript (set boot_type to bootscript) :param pulumi.Input[str] cloud_init: The cloud init script associated with this server :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server. :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported. @@ -591,6 +595,9 @@ def __init__(__self__, *, pulumi.log.warn("""ipv6_gateway is deprecated: Please use a InstanceIp with a `routed_ipv6` type""") if ipv6_gateway is not None: pulumi.set(__self__, "ipv6_gateway", ipv6_gateway) + if ipv6_prefix_length is not None: + warnings.warn("""Please use a InstanceIp with a `routed_ipv6` type""", DeprecationWarning) + pulumi.log.warn("""ipv6_prefix_length is deprecated: Please use a InstanceIp with a `routed_ipv6` type""") if ipv6_prefix_length is not None: pulumi.set(__self__, "ipv6_prefix_length", ipv6_prefix_length) if name is not None: @@ -618,6 +625,9 @@ def __init__(__self__, *, pulumi.set(__self__, "replace_on_type_change", replace_on_type_change) if root_volume is not None: pulumi.set(__self__, "root_volume", root_volume) + if routed_ip_enabled is not None: + warnings.warn("""Routed IP is the default configuration, it should always be true""", DeprecationWarning) + pulumi.log.warn("""routed_ip_enabled is deprecated: Routed IP is the default configuration, it should always be true""") if routed_ip_enabled is not None: pulumi.set(__self__, "routed_ip_enabled", routed_ip_enabled) if security_group_id is not None: @@ -667,7 +677,7 @@ def boot_type(self, value: Optional[pulumi.Input[str]]): @_utilities.deprecated("""bootscript is not supported anymore.""") def bootscript_id(self) -> Optional[pulumi.Input[str]]: """ - The ID of the bootscript to use (set boot_type to `bootscript`). + ID of the target bootscript (set boot_type to bootscript) """ return pulumi.get(self, "bootscript_id") @@ -786,6 +796,7 @@ def ipv6_gateway(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="ipv6PrefixLength") + @_utilities.deprecated("""Please use a InstanceIp with a `routed_ipv6` type""") def ipv6_prefix_length(self) -> Optional[pulumi.Input[int]]: """ The prefix length of the ipv6 subnet routed to the server. ( Only set when enable_ipv6 is set to true ) @@ -936,6 +947,7 @@ def root_volume(self, value: Optional[pulumi.Input['InstanceServerRootVolumeArgs @property @pulumi.getter(name="routedIpEnabled") + @_utilities.deprecated("""Routed IP is the default configuration, it should always be true""") def routed_ip_enabled(self) -> Optional[pulumi.Input[bool]]: """ If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type. @@ -1252,7 +1264,7 @@ def __init__(__self__, > **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply. :param pulumi.Input[str] boot_type: The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`. - :param pulumi.Input[str] bootscript_id: The ID of the bootscript to use (set boot_type to `bootscript`). + :param pulumi.Input[str] bootscript_id: ID of the target bootscript (set boot_type to bootscript) :param pulumi.Input[str] cloud_init: The cloud init script associated with this server :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server. :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported. @@ -1620,7 +1632,7 @@ def get(resource_name: str, > **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply. :param pulumi.Input[str] boot_type: The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`. - :param pulumi.Input[str] bootscript_id: The ID of the bootscript to use (set boot_type to `bootscript`). + :param pulumi.Input[str] bootscript_id: ID of the target bootscript (set boot_type to bootscript) :param pulumi.Input[str] cloud_init: The cloud init script associated with this server :param pulumi.Input[bool] enable_dynamic_ip: If true a dynamic IP will be attached to the server. :param pulumi.Input[bool] enable_ipv6: Determines if IPv6 is enabled for the server. Useful only with `routed_ip_enabled` as false, otherwise ipv6 is always supported. @@ -1738,7 +1750,7 @@ def boot_type(self) -> pulumi.Output[Optional[str]]: @_utilities.deprecated("""bootscript is not supported anymore.""") def bootscript_id(self) -> pulumi.Output[str]: """ - The ID of the bootscript to use (set boot_type to `bootscript`). + ID of the target bootscript (set boot_type to bootscript) """ return pulumi.get(self, "bootscript_id") @@ -1821,6 +1833,7 @@ def ipv6_gateway(self) -> pulumi.Output[str]: @property @pulumi.getter(name="ipv6PrefixLength") + @_utilities.deprecated("""Please use a InstanceIp with a `routed_ipv6` type""") def ipv6_prefix_length(self) -> pulumi.Output[int]: """ The prefix length of the ipv6 subnet routed to the server. ( Only set when enable_ipv6 is set to true ) @@ -1923,6 +1936,7 @@ def root_volume(self) -> pulumi.Output['outputs.InstanceServerRootVolume']: @property @pulumi.getter(name="routedIpEnabled") + @_utilities.deprecated("""Routed IP is the default configuration, it should always be true""") def routed_ip_enabled(self) -> pulumi.Output[bool]: """ If true, the server will support routed ips only. Changing it to true will migrate the server and its IP to routed type. diff --git a/sdk/python/pulumiverse_scaleway/iot_network.py b/sdk/python/pulumiverse_scaleway/iot_network.py index e428e733..7652572a 100644 --- a/sdk/python/pulumiverse_scaleway/iot_network.py +++ b/sdk/python/pulumiverse_scaleway/iot_network.py @@ -22,18 +22,22 @@ def __init__(__self__, *, hub_id: pulumi.Input[str], type: pulumi.Input[str], name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, topic_prefix: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a IotNetwork resource. :param pulumi.Input[str] hub_id: The hub ID to which the Network will be attached to. :param pulumi.Input[str] type: The network type to create (e.g. `sigfox`). :param pulumi.Input[str] name: The name of the IoT Network you want to create (e.g. `my-net`). + :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the Network is attached to. :param pulumi.Input[str] topic_prefix: The prefix that will be prepended to all topics for this Network. """ pulumi.set(__self__, "hub_id", hub_id) pulumi.set(__self__, "type", type) if name is not None: pulumi.set(__self__, "name", name) + if region is not None: + pulumi.set(__self__, "region", region) if topic_prefix is not None: pulumi.set(__self__, "topic_prefix", topic_prefix) @@ -73,6 +77,18 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + (Defaults to provider `region`) The region in which the Network is attached to. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter(name="topicPrefix") def topic_prefix(self) -> Optional[pulumi.Input[str]]: @@ -93,6 +109,7 @@ def __init__(__self__, *, endpoint: Optional[pulumi.Input[str]] = None, hub_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, secret: Optional[pulumi.Input[str]] = None, topic_prefix: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None): @@ -102,6 +119,7 @@ def __init__(__self__, *, :param pulumi.Input[str] endpoint: The endpoint to use when interacting with the network. :param pulumi.Input[str] hub_id: The hub ID to which the Network will be attached to. :param pulumi.Input[str] name: The name of the IoT Network you want to create (e.g. `my-net`). + :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the Network is attached to. :param pulumi.Input[str] secret: The endpoint key to keep secret. :param pulumi.Input[str] topic_prefix: The prefix that will be prepended to all topics for this Network. :param pulumi.Input[str] type: The network type to create (e.g. `sigfox`). @@ -114,6 +132,8 @@ def __init__(__self__, *, pulumi.set(__self__, "hub_id", hub_id) if name is not None: pulumi.set(__self__, "name", name) + if region is not None: + pulumi.set(__self__, "region", region) if secret is not None: pulumi.set(__self__, "secret", secret) if topic_prefix is not None: @@ -169,6 +189,18 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + (Defaults to provider `region`) The region in which the Network is attached to. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + @property @pulumi.getter def secret(self) -> Optional[pulumi.Input[str]]: @@ -213,6 +245,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, hub_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, topic_prefix: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None, __props__=None): @@ -246,6 +279,7 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] hub_id: The hub ID to which the Network will be attached to. :param pulumi.Input[str] name: The name of the IoT Network you want to create (e.g. `my-net`). + :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the Network is attached to. :param pulumi.Input[str] topic_prefix: The prefix that will be prepended to all topics for this Network. :param pulumi.Input[str] type: The network type to create (e.g. `sigfox`). """ @@ -298,6 +332,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, hub_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, topic_prefix: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None, __props__=None): @@ -313,6 +348,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'hub_id'") __props__.__dict__["hub_id"] = hub_id __props__.__dict__["name"] = name + __props__.__dict__["region"] = region __props__.__dict__["topic_prefix"] = topic_prefix if type is None and not opts.urn: raise TypeError("Missing required property 'type'") @@ -336,6 +372,7 @@ def get(resource_name: str, endpoint: Optional[pulumi.Input[str]] = None, hub_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, secret: Optional[pulumi.Input[str]] = None, topic_prefix: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None) -> 'IotNetwork': @@ -350,6 +387,7 @@ def get(resource_name: str, :param pulumi.Input[str] endpoint: The endpoint to use when interacting with the network. :param pulumi.Input[str] hub_id: The hub ID to which the Network will be attached to. :param pulumi.Input[str] name: The name of the IoT Network you want to create (e.g. `my-net`). + :param pulumi.Input[str] region: (Defaults to provider `region`) The region in which the Network is attached to. :param pulumi.Input[str] secret: The endpoint key to keep secret. :param pulumi.Input[str] topic_prefix: The prefix that will be prepended to all topics for this Network. :param pulumi.Input[str] type: The network type to create (e.g. `sigfox`). @@ -362,6 +400,7 @@ def get(resource_name: str, __props__.__dict__["endpoint"] = endpoint __props__.__dict__["hub_id"] = hub_id __props__.__dict__["name"] = name + __props__.__dict__["region"] = region __props__.__dict__["secret"] = secret __props__.__dict__["topic_prefix"] = topic_prefix __props__.__dict__["type"] = type @@ -399,6 +438,14 @@ def name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "name") + @property + @pulumi.getter + def region(self) -> pulumi.Output[str]: + """ + (Defaults to provider `region`) The region in which the Network is attached to. + """ + return pulumi.get(self, "region") + @property @pulumi.getter def secret(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumiverse_scaleway/iot_route.py b/sdk/python/pulumiverse_scaleway/iot_route.py index a49fe587..e931ab5f 100644 --- a/sdk/python/pulumiverse_scaleway/iot_route.py +++ b/sdk/python/pulumiverse_scaleway/iot_route.py @@ -371,7 +371,7 @@ def __init__(__self__, "verb": "get", "uri": "http://scaleway.com", "headers": { - "x_awesome_header": "my-awesome-value", + "X-awesome-header": "my-awesome-value", }, }) ``` @@ -488,7 +488,7 @@ def __init__(__self__, "verb": "get", "uri": "http://scaleway.com", "headers": { - "x_awesome_header": "my-awesome-value", + "X-awesome-header": "my-awesome-value", }, }) ``` diff --git a/sdk/python/pulumiverse_scaleway/ipam_ip.py b/sdk/python/pulumiverse_scaleway/ipam_ip.py index f2d6749f..107c2e21 100644 --- a/sdk/python/pulumiverse_scaleway/ipam_ip.py +++ b/sdk/python/pulumiverse_scaleway/ipam_ip.py @@ -23,6 +23,7 @@ class IpamIpArgs: def __init__(__self__, *, sources: pulumi.Input[Sequence[pulumi.Input['IpamIpSourceArgs']]], address: Optional[pulumi.Input[str]] = None, + custom_resources: Optional[pulumi.Input[Sequence[pulumi.Input['IpamIpCustomResourceArgs']]]] = None, is_ipv6: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, @@ -31,6 +32,7 @@ def __init__(__self__, *, The set of arguments for constructing a IpamIp resource. :param pulumi.Input[Sequence[pulumi.Input['IpamIpSourceArgs']]] sources: The source in which to book the IP. :param pulumi.Input[str] address: Request a specific IP in the requested source pool + :param pulumi.Input[Sequence[pulumi.Input['IpamIpCustomResourceArgs']]] custom_resources: The custom resource in which to book the IP :param pulumi.Input[bool] is_ipv6: Defines whether to request an IPv6 address instead of IPv4. :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the IP is associated with. :param pulumi.Input[str] region: `region`) The region of the IP. @@ -39,6 +41,8 @@ def __init__(__self__, *, pulumi.set(__self__, "sources", sources) if address is not None: pulumi.set(__self__, "address", address) + if custom_resources is not None: + pulumi.set(__self__, "custom_resources", custom_resources) if is_ipv6 is not None: pulumi.set(__self__, "is_ipv6", is_ipv6) if project_id is not None: @@ -72,6 +76,18 @@ def address(self) -> Optional[pulumi.Input[str]]: def address(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "address", value) + @property + @pulumi.getter(name="customResources") + def custom_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['IpamIpCustomResourceArgs']]]]: + """ + The custom resource in which to book the IP + """ + return pulumi.get(self, "custom_resources") + + @custom_resources.setter + def custom_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['IpamIpCustomResourceArgs']]]]): + pulumi.set(self, "custom_resources", value) + @property @pulumi.getter(name="isIpv6") def is_ipv6(self) -> Optional[pulumi.Input[bool]]: @@ -126,6 +142,7 @@ class _IpamIpState: def __init__(__self__, *, address: Optional[pulumi.Input[str]] = None, created_at: Optional[pulumi.Input[str]] = None, + custom_resources: Optional[pulumi.Input[Sequence[pulumi.Input['IpamIpCustomResourceArgs']]]] = None, is_ipv6: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, @@ -139,6 +156,7 @@ def __init__(__self__, *, Input properties used for looking up and filtering IpamIp resources. :param pulumi.Input[str] address: Request a specific IP in the requested source pool :param pulumi.Input[str] created_at: Date and time of IP's creation (RFC 3339 format). + :param pulumi.Input[Sequence[pulumi.Input['IpamIpCustomResourceArgs']]] custom_resources: The custom resource in which to book the IP :param pulumi.Input[bool] is_ipv6: Defines whether to request an IPv6 address instead of IPv4. :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the IP is associated with. :param pulumi.Input[str] region: `region`) The region of the IP. @@ -153,6 +171,8 @@ def __init__(__self__, *, pulumi.set(__self__, "address", address) if created_at is not None: pulumi.set(__self__, "created_at", created_at) + if custom_resources is not None: + pulumi.set(__self__, "custom_resources", custom_resources) if is_ipv6 is not None: pulumi.set(__self__, "is_ipv6", is_ipv6) if project_id is not None: @@ -196,6 +216,18 @@ def created_at(self) -> Optional[pulumi.Input[str]]: def created_at(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "created_at", value) + @property + @pulumi.getter(name="customResources") + def custom_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['IpamIpCustomResourceArgs']]]]: + """ + The custom resource in which to book the IP + """ + return pulumi.get(self, "custom_resources") + + @custom_resources.setter + def custom_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['IpamIpCustomResourceArgs']]]]): + pulumi.set(self, "custom_resources", value) + @property @pulumi.getter(name="isIpv6") def is_ipv6(self) -> Optional[pulumi.Input[bool]]: @@ -311,6 +343,7 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, address: Optional[pulumi.Input[str]] = None, + custom_resources: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IpamIpCustomResourceArgs', 'IpamIpCustomResourceArgsDict']]]]] = None, is_ipv6: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, @@ -379,6 +412,28 @@ def __init__(__self__, }]) ``` + ### Book an IP for a custom resource + + ```python + import pulumi + import pulumiverse_scaleway as scaleway + + vpc01 = scaleway.Vpc("vpc01", name="my vpc") + pn01 = scaleway.VpcPrivateNetwork("pn01", + vpc_id=vpc01.id, + ipv4_subnet={ + "subnet": "172.16.32.0/22", + }) + ip01 = scaleway.IpamIp("ip01", + address="172.16.32.7", + sources=[{ + "private_network_id": pn01.id, + }], + custom_resources=[{ + "mac_address": "bc:24:11:74:d0:6a", + }]) + ``` + ## Import IPAM IPs can be imported using `{region}/{id}`, e.g. @@ -392,6 +447,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] address: Request a specific IP in the requested source pool + :param pulumi.Input[Sequence[pulumi.Input[Union['IpamIpCustomResourceArgs', 'IpamIpCustomResourceArgsDict']]]] custom_resources: The custom resource in which to book the IP :param pulumi.Input[bool] is_ipv6: Defines whether to request an IPv6 address instead of IPv4. :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the IP is associated with. :param pulumi.Input[str] region: `region`) The region of the IP. @@ -466,6 +522,28 @@ def __init__(__self__, }]) ``` + ### Book an IP for a custom resource + + ```python + import pulumi + import pulumiverse_scaleway as scaleway + + vpc01 = scaleway.Vpc("vpc01", name="my vpc") + pn01 = scaleway.VpcPrivateNetwork("pn01", + vpc_id=vpc01.id, + ipv4_subnet={ + "subnet": "172.16.32.0/22", + }) + ip01 = scaleway.IpamIp("ip01", + address="172.16.32.7", + sources=[{ + "private_network_id": pn01.id, + }], + custom_resources=[{ + "mac_address": "bc:24:11:74:d0:6a", + }]) + ``` + ## Import IPAM IPs can be imported using `{region}/{id}`, e.g. @@ -492,6 +570,7 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, address: Optional[pulumi.Input[str]] = None, + custom_resources: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IpamIpCustomResourceArgs', 'IpamIpCustomResourceArgsDict']]]]] = None, is_ipv6: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, @@ -507,6 +586,7 @@ def _internal_init(__self__, __props__ = IpamIpArgs.__new__(IpamIpArgs) __props__.__dict__["address"] = address + __props__.__dict__["custom_resources"] = custom_resources __props__.__dict__["is_ipv6"] = is_ipv6 __props__.__dict__["project_id"] = project_id __props__.__dict__["region"] = region @@ -531,6 +611,7 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, address: Optional[pulumi.Input[str]] = None, created_at: Optional[pulumi.Input[str]] = None, + custom_resources: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IpamIpCustomResourceArgs', 'IpamIpCustomResourceArgsDict']]]]] = None, is_ipv6: Optional[pulumi.Input[bool]] = None, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, @@ -549,6 +630,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] address: Request a specific IP in the requested source pool :param pulumi.Input[str] created_at: Date and time of IP's creation (RFC 3339 format). + :param pulumi.Input[Sequence[pulumi.Input[Union['IpamIpCustomResourceArgs', 'IpamIpCustomResourceArgsDict']]]] custom_resources: The custom resource in which to book the IP :param pulumi.Input[bool] is_ipv6: Defines whether to request an IPv6 address instead of IPv4. :param pulumi.Input[str] project_id: `project_id`) The ID of the Project the IP is associated with. :param pulumi.Input[str] region: `region`) The region of the IP. @@ -565,6 +647,7 @@ def get(resource_name: str, __props__.__dict__["address"] = address __props__.__dict__["created_at"] = created_at + __props__.__dict__["custom_resources"] = custom_resources __props__.__dict__["is_ipv6"] = is_ipv6 __props__.__dict__["project_id"] = project_id __props__.__dict__["region"] = region @@ -592,6 +675,14 @@ def created_at(self) -> pulumi.Output[str]: """ return pulumi.get(self, "created_at") + @property + @pulumi.getter(name="customResources") + def custom_resources(self) -> pulumi.Output[Optional[Sequence['outputs.IpamIpCustomResource']]]: + """ + The custom resource in which to book the IP + """ + return pulumi.get(self, "custom_resources") + @property @pulumi.getter(name="isIpv6") def is_ipv6(self) -> pulumi.Output[Optional[bool]]: diff --git a/sdk/python/pulumiverse_scaleway/mongo_db_instance.py b/sdk/python/pulumiverse_scaleway/mongo_db_instance.py new file mode 100644 index 00000000..602fc8bf --- /dev/null +++ b/sdk/python/pulumiverse_scaleway/mongo_db_instance.py @@ -0,0 +1,907 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['MongoDbInstanceArgs', 'MongoDbInstance'] + +@pulumi.input_type +class MongoDbInstanceArgs: + def __init__(__self__, *, + node_number: pulumi.Input[int], + node_type: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + public_network: Optional[pulumi.Input['MongoDbInstancePublicNetworkArgs']] = None, + region: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + volume_size_in_gb: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a MongoDbInstance resource. + :param pulumi.Input[int] node_number: Number of nodes in the instance + :param pulumi.Input[str] node_type: The type of MongoDB® intance to create. + :param pulumi.Input[str] name: Name of the MongoDB® instance. + :param pulumi.Input[str] password: Password of the user. + :param pulumi.Input[str] project_id: The project_id you want to attach the resource to + :param pulumi.Input['MongoDbInstancePublicNetworkArgs'] public_network: Public network specs details. + :param pulumi.Input[str] region: The region you want to attach the resource to + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings to define for the instance. + :param pulumi.Input[str] snapshot_id: Snapshot ID to restore the MongoDB® instance from. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: List of tags attached to the MongoDB® instance. + :param pulumi.Input[str] user_name: Name of the user created when the intance is created. + :param pulumi.Input[str] version: MongoDB® version of the instance. + :param pulumi.Input[int] volume_size_in_gb: Volume size in GB. + :param pulumi.Input[str] volume_type: Volume type of the instance. + """ + pulumi.set(__self__, "node_number", node_number) + pulumi.set(__self__, "node_type", node_type) + if name is not None: + pulumi.set(__self__, "name", name) + if password is not None: + pulumi.set(__self__, "password", password) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if public_network is not None: + pulumi.set(__self__, "public_network", public_network) + if region is not None: + pulumi.set(__self__, "region", region) + if settings is not None: + pulumi.set(__self__, "settings", settings) + if snapshot_id is not None: + pulumi.set(__self__, "snapshot_id", snapshot_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if user_name is not None: + pulumi.set(__self__, "user_name", user_name) + if version is not None: + pulumi.set(__self__, "version", version) + if volume_size_in_gb is not None: + pulumi.set(__self__, "volume_size_in_gb", volume_size_in_gb) + if volume_type is not None: + pulumi.set(__self__, "volume_type", volume_type) + + @property + @pulumi.getter(name="nodeNumber") + def node_number(self) -> pulumi.Input[int]: + """ + Number of nodes in the instance + """ + return pulumi.get(self, "node_number") + + @node_number.setter + def node_number(self, value: pulumi.Input[int]): + pulumi.set(self, "node_number", value) + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> pulumi.Input[str]: + """ + The type of MongoDB® intance to create. + """ + return pulumi.get(self, "node_type") + + @node_type.setter + def node_type(self, value: pulumi.Input[str]): + pulumi.set(self, "node_type", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the MongoDB® instance. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def password(self) -> Optional[pulumi.Input[str]]: + """ + Password of the user. + """ + return pulumi.get(self, "password") + + @password.setter + def password(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "password", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + The project_id you want to attach the resource to + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter(name="publicNetwork") + def public_network(self) -> Optional[pulumi.Input['MongoDbInstancePublicNetworkArgs']]: + """ + Public network specs details. + """ + return pulumi.get(self, "public_network") + + @public_network.setter + def public_network(self, value: Optional[pulumi.Input['MongoDbInstancePublicNetworkArgs']]): + pulumi.set(self, "public_network", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + The region you want to attach the resource to + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter + def settings(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Map of settings to define for the instance. + """ + return pulumi.get(self, "settings") + + @settings.setter + def settings(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "settings", value) + + @property + @pulumi.getter(name="snapshotId") + def snapshot_id(self) -> Optional[pulumi.Input[str]]: + """ + Snapshot ID to restore the MongoDB® instance from. + """ + return pulumi.get(self, "snapshot_id") + + @snapshot_id.setter + def snapshot_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "snapshot_id", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of tags attached to the MongoDB® instance. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="userName") + def user_name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the user created when the intance is created. + """ + return pulumi.get(self, "user_name") + + @user_name.setter + def user_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_name", value) + + @property + @pulumi.getter + def version(self) -> Optional[pulumi.Input[str]]: + """ + MongoDB® version of the instance. + """ + return pulumi.get(self, "version") + + @version.setter + def version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "version", value) + + @property + @pulumi.getter(name="volumeSizeInGb") + def volume_size_in_gb(self) -> Optional[pulumi.Input[int]]: + """ + Volume size in GB. + """ + return pulumi.get(self, "volume_size_in_gb") + + @volume_size_in_gb.setter + def volume_size_in_gb(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "volume_size_in_gb", value) + + @property + @pulumi.getter(name="volumeType") + def volume_type(self) -> Optional[pulumi.Input[str]]: + """ + Volume type of the instance. + """ + return pulumi.get(self, "volume_type") + + @volume_type.setter + def volume_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "volume_type", value) + + +@pulumi.input_type +class _MongoDbInstanceState: + def __init__(__self__, *, + created_at: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + node_number: Optional[pulumi.Input[int]] = None, + node_type: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + public_network: Optional[pulumi.Input['MongoDbInstancePublicNetworkArgs']] = None, + region: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + volume_size_in_gb: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering MongoDbInstance resources. + :param pulumi.Input[str] created_at: The date and time of the creation of the MongoDB® instance. + :param pulumi.Input[str] name: Name of the MongoDB® instance. + :param pulumi.Input[int] node_number: Number of nodes in the instance + :param pulumi.Input[str] node_type: The type of MongoDB® intance to create. + :param pulumi.Input[str] password: Password of the user. + :param pulumi.Input[str] project_id: The project_id you want to attach the resource to + :param pulumi.Input['MongoDbInstancePublicNetworkArgs'] public_network: Public network specs details. + :param pulumi.Input[str] region: The region you want to attach the resource to + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings to define for the instance. + :param pulumi.Input[str] snapshot_id: Snapshot ID to restore the MongoDB® instance from. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: List of tags attached to the MongoDB® instance. + :param pulumi.Input[str] updated_at: The date and time of the last update of the MongoDB® instance. + :param pulumi.Input[str] user_name: Name of the user created when the intance is created. + :param pulumi.Input[str] version: MongoDB® version of the instance. + :param pulumi.Input[int] volume_size_in_gb: Volume size in GB. + :param pulumi.Input[str] volume_type: Volume type of the instance. + """ + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if name is not None: + pulumi.set(__self__, "name", name) + if node_number is not None: + pulumi.set(__self__, "node_number", node_number) + if node_type is not None: + pulumi.set(__self__, "node_type", node_type) + if password is not None: + pulumi.set(__self__, "password", password) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if public_network is not None: + pulumi.set(__self__, "public_network", public_network) + if region is not None: + pulumi.set(__self__, "region", region) + if settings is not None: + pulumi.set(__self__, "settings", settings) + if snapshot_id is not None: + pulumi.set(__self__, "snapshot_id", snapshot_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if updated_at is not None: + pulumi.set(__self__, "updated_at", updated_at) + if user_name is not None: + pulumi.set(__self__, "user_name", user_name) + if version is not None: + pulumi.set(__self__, "version", version) + if volume_size_in_gb is not None: + pulumi.set(__self__, "volume_size_in_gb", volume_size_in_gb) + if volume_type is not None: + pulumi.set(__self__, "volume_type", volume_type) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + The date and time of the creation of the MongoDB® instance. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the MongoDB® instance. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="nodeNumber") + def node_number(self) -> Optional[pulumi.Input[int]]: + """ + Number of nodes in the instance + """ + return pulumi.get(self, "node_number") + + @node_number.setter + def node_number(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "node_number", value) + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> Optional[pulumi.Input[str]]: + """ + The type of MongoDB® intance to create. + """ + return pulumi.get(self, "node_type") + + @node_type.setter + def node_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node_type", value) + + @property + @pulumi.getter + def password(self) -> Optional[pulumi.Input[str]]: + """ + Password of the user. + """ + return pulumi.get(self, "password") + + @password.setter + def password(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "password", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + The project_id you want to attach the resource to + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter(name="publicNetwork") + def public_network(self) -> Optional[pulumi.Input['MongoDbInstancePublicNetworkArgs']]: + """ + Public network specs details. + """ + return pulumi.get(self, "public_network") + + @public_network.setter + def public_network(self, value: Optional[pulumi.Input['MongoDbInstancePublicNetworkArgs']]): + pulumi.set(self, "public_network", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + The region you want to attach the resource to + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter + def settings(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Map of settings to define for the instance. + """ + return pulumi.get(self, "settings") + + @settings.setter + def settings(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "settings", value) + + @property + @pulumi.getter(name="snapshotId") + def snapshot_id(self) -> Optional[pulumi.Input[str]]: + """ + Snapshot ID to restore the MongoDB® instance from. + """ + return pulumi.get(self, "snapshot_id") + + @snapshot_id.setter + def snapshot_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "snapshot_id", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of tags attached to the MongoDB® instance. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[pulumi.Input[str]]: + """ + The date and time of the last update of the MongoDB® instance. + """ + return pulumi.get(self, "updated_at") + + @updated_at.setter + def updated_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "updated_at", value) + + @property + @pulumi.getter(name="userName") + def user_name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the user created when the intance is created. + """ + return pulumi.get(self, "user_name") + + @user_name.setter + def user_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_name", value) + + @property + @pulumi.getter + def version(self) -> Optional[pulumi.Input[str]]: + """ + MongoDB® version of the instance. + """ + return pulumi.get(self, "version") + + @version.setter + def version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "version", value) + + @property + @pulumi.getter(name="volumeSizeInGb") + def volume_size_in_gb(self) -> Optional[pulumi.Input[int]]: + """ + Volume size in GB. + """ + return pulumi.get(self, "volume_size_in_gb") + + @volume_size_in_gb.setter + def volume_size_in_gb(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "volume_size_in_gb", value) + + @property + @pulumi.getter(name="volumeType") + def volume_type(self) -> Optional[pulumi.Input[str]]: + """ + Volume type of the instance. + """ + return pulumi.get(self, "volume_type") + + @volume_type.setter + def volume_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "volume_type", value) + + +class MongoDbInstance(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + node_number: Optional[pulumi.Input[int]] = None, + node_type: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + public_network: Optional[pulumi.Input[Union['MongoDbInstancePublicNetworkArgs', 'MongoDbInstancePublicNetworkArgsDict']]] = None, + region: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + volume_size_in_gb: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + 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 + + ```python + import pulumi + import pulumiverse_scaleway as scaleway + + main = scaleway.MongoDbInstance("main", + name="test-mongodb-basic1", + version="7.0.12", + node_type="MGDB-PLAY2-NANO", + node_number=1, + user_name="my_initial_user", + password="thiZ_is_v&ry_s3cret", + volume_size_in_gb=5) + ``` + + ### Restore From Snapshot + + ```python + import pulumi + import pulumiverse_scaleway as scaleway + + restored_instance = scaleway.MongoDbInstance("restored_instance", + snapshot_id=pn["idscalewayMongodbSnapshot"]["mainSnapshot"]["id"], + name="restored-mongodb-from-snapshot", + node_type="MGDB-PLAY2-NANO", + node_number=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 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: Name of the MongoDB® instance. + :param pulumi.Input[int] node_number: Number of nodes in the instance + :param pulumi.Input[str] node_type: The type of MongoDB® intance to create. + :param pulumi.Input[str] password: Password of the user. + :param pulumi.Input[str] project_id: The project_id you want to attach the resource to + :param pulumi.Input[Union['MongoDbInstancePublicNetworkArgs', 'MongoDbInstancePublicNetworkArgsDict']] public_network: Public network specs details. + :param pulumi.Input[str] region: The region you want to attach the resource to + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings to define for the instance. + :param pulumi.Input[str] snapshot_id: Snapshot ID to restore the MongoDB® instance from. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: List of tags attached to the MongoDB® instance. + :param pulumi.Input[str] user_name: Name of the user created when the intance is created. + :param pulumi.Input[str] version: MongoDB® version of the instance. + :param pulumi.Input[int] volume_size_in_gb: Volume size in GB. + :param pulumi.Input[str] volume_type: Volume type of the instance. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: MongoDbInstanceArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + 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 + + ```python + import pulumi + import pulumiverse_scaleway as scaleway + + main = scaleway.MongoDbInstance("main", + name="test-mongodb-basic1", + version="7.0.12", + node_type="MGDB-PLAY2-NANO", + node_number=1, + user_name="my_initial_user", + password="thiZ_is_v&ry_s3cret", + volume_size_in_gb=5) + ``` + + ### Restore From Snapshot + + ```python + import pulumi + import pulumiverse_scaleway as scaleway + + restored_instance = scaleway.MongoDbInstance("restored_instance", + snapshot_id=pn["idscalewayMongodbSnapshot"]["mainSnapshot"]["id"], + name="restored-mongodb-from-snapshot", + node_type="MGDB-PLAY2-NANO", + node_number=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 + ``` + + :param str resource_name: The name of the resource. + :param MongoDbInstanceArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(MongoDbInstanceArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + node_number: Optional[pulumi.Input[int]] = None, + node_type: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + public_network: Optional[pulumi.Input[Union['MongoDbInstancePublicNetworkArgs', 'MongoDbInstancePublicNetworkArgsDict']]] = None, + region: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + user_name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + volume_size_in_gb: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = MongoDbInstanceArgs.__new__(MongoDbInstanceArgs) + + __props__.__dict__["name"] = name + if node_number is None and not opts.urn: + raise TypeError("Missing required property 'node_number'") + __props__.__dict__["node_number"] = node_number + if node_type is None and not opts.urn: + raise TypeError("Missing required property 'node_type'") + __props__.__dict__["node_type"] = node_type + __props__.__dict__["password"] = None if password is None else pulumi.Output.secret(password) + __props__.__dict__["project_id"] = project_id + __props__.__dict__["public_network"] = public_network + __props__.__dict__["region"] = region + __props__.__dict__["settings"] = settings + __props__.__dict__["snapshot_id"] = snapshot_id + __props__.__dict__["tags"] = tags + __props__.__dict__["user_name"] = user_name + __props__.__dict__["version"] = version + __props__.__dict__["volume_size_in_gb"] = volume_size_in_gb + __props__.__dict__["volume_type"] = volume_type + __props__.__dict__["created_at"] = None + __props__.__dict__["updated_at"] = None + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["password"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) + super(MongoDbInstance, __self__).__init__( + 'scaleway:index/mongoDbInstance:MongoDbInstance', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + created_at: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + node_number: Optional[pulumi.Input[int]] = None, + node_type: Optional[pulumi.Input[str]] = None, + password: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + public_network: Optional[pulumi.Input[Union['MongoDbInstancePublicNetworkArgs', 'MongoDbInstancePublicNetworkArgsDict']]] = None, + region: Optional[pulumi.Input[str]] = None, + settings: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + user_name: Optional[pulumi.Input[str]] = None, + version: Optional[pulumi.Input[str]] = None, + volume_size_in_gb: Optional[pulumi.Input[int]] = None, + volume_type: Optional[pulumi.Input[str]] = None) -> 'MongoDbInstance': + """ + Get an existing MongoDbInstance resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] created_at: The date and time of the creation of the MongoDB® instance. + :param pulumi.Input[str] name: Name of the MongoDB® instance. + :param pulumi.Input[int] node_number: Number of nodes in the instance + :param pulumi.Input[str] node_type: The type of MongoDB® intance to create. + :param pulumi.Input[str] password: Password of the user. + :param pulumi.Input[str] project_id: The project_id you want to attach the resource to + :param pulumi.Input[Union['MongoDbInstancePublicNetworkArgs', 'MongoDbInstancePublicNetworkArgsDict']] public_network: Public network specs details. + :param pulumi.Input[str] region: The region you want to attach the resource to + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] settings: Map of settings to define for the instance. + :param pulumi.Input[str] snapshot_id: Snapshot ID to restore the MongoDB® instance from. + :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: List of tags attached to the MongoDB® instance. + :param pulumi.Input[str] updated_at: The date and time of the last update of the MongoDB® instance. + :param pulumi.Input[str] user_name: Name of the user created when the intance is created. + :param pulumi.Input[str] version: MongoDB® version of the instance. + :param pulumi.Input[int] volume_size_in_gb: Volume size in GB. + :param pulumi.Input[str] volume_type: Volume type of the instance. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _MongoDbInstanceState.__new__(_MongoDbInstanceState) + + __props__.__dict__["created_at"] = created_at + __props__.__dict__["name"] = name + __props__.__dict__["node_number"] = node_number + __props__.__dict__["node_type"] = node_type + __props__.__dict__["password"] = password + __props__.__dict__["project_id"] = project_id + __props__.__dict__["public_network"] = public_network + __props__.__dict__["region"] = region + __props__.__dict__["settings"] = settings + __props__.__dict__["snapshot_id"] = snapshot_id + __props__.__dict__["tags"] = tags + __props__.__dict__["updated_at"] = updated_at + __props__.__dict__["user_name"] = user_name + __props__.__dict__["version"] = version + __props__.__dict__["volume_size_in_gb"] = volume_size_in_gb + __props__.__dict__["volume_type"] = volume_type + return MongoDbInstance(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + The date and time of the creation of the MongoDB® instance. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the MongoDB® instance. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="nodeNumber") + def node_number(self) -> pulumi.Output[int]: + """ + Number of nodes in the instance + """ + return pulumi.get(self, "node_number") + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> pulumi.Output[str]: + """ + The type of MongoDB® intance to create. + """ + return pulumi.get(self, "node_type") + + @property + @pulumi.getter + def password(self) -> pulumi.Output[Optional[str]]: + """ + Password of the user. + """ + return pulumi.get(self, "password") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[str]: + """ + The project_id you want to attach the resource to + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter(name="publicNetwork") + def public_network(self) -> pulumi.Output['outputs.MongoDbInstancePublicNetwork']: + """ + Public network specs details. + """ + return pulumi.get(self, "public_network") + + @property + @pulumi.getter + def region(self) -> pulumi.Output[str]: + """ + The region you want to attach the resource to + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter + def settings(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Map of settings to define for the instance. + """ + return pulumi.get(self, "settings") + + @property + @pulumi.getter(name="snapshotId") + def snapshot_id(self) -> pulumi.Output[Optional[str]]: + """ + Snapshot ID to restore the MongoDB® instance from. + """ + return pulumi.get(self, "snapshot_id") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + List of tags attached to the MongoDB® instance. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + """ + The date and time of the last update of the MongoDB® instance. + """ + return pulumi.get(self, "updated_at") + + @property + @pulumi.getter(name="userName") + def user_name(self) -> pulumi.Output[Optional[str]]: + """ + Name of the user created when the intance is created. + """ + return pulumi.get(self, "user_name") + + @property + @pulumi.getter + def version(self) -> pulumi.Output[str]: + """ + MongoDB® version of the instance. + """ + return pulumi.get(self, "version") + + @property + @pulumi.getter(name="volumeSizeInGb") + def volume_size_in_gb(self) -> pulumi.Output[int]: + """ + Volume size in GB. + """ + return pulumi.get(self, "volume_size_in_gb") + + @property + @pulumi.getter(name="volumeType") + def volume_type(self) -> pulumi.Output[Optional[str]]: + """ + Volume type of the instance. + """ + return pulumi.get(self, "volume_type") + diff --git a/sdk/python/pulumiverse_scaleway/mongo_db_snapshot.py b/sdk/python/pulumiverse_scaleway/mongo_db_snapshot.py new file mode 100644 index 00000000..be389861 --- /dev/null +++ b/sdk/python/pulumiverse_scaleway/mongo_db_snapshot.py @@ -0,0 +1,521 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['MongoDbSnapshotArgs', 'MongoDbSnapshot'] + +@pulumi.input_type +class MongoDbSnapshotArgs: + def __init__(__self__, *, + expires_at: pulumi.Input[str], + instance_id: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a MongoDbSnapshot resource. + :param pulumi.Input[str] expires_at: 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. + :param pulumi.Input[str] instance_id: The ID of the MongoDB® instance from which the snapshot was created. + :param pulumi.Input[str] name: The name of the MongoDB® snapshot. + :param pulumi.Input[str] region: `region`) The region in which the MongoDB® snapshot should be created. + """ + pulumi.set(__self__, "expires_at", expires_at) + pulumi.set(__self__, "instance_id", instance_id) + if name is not None: + pulumi.set(__self__, "name", name) + if region is not None: + pulumi.set(__self__, "region", region) + + @property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> pulumi.Input[str]: + """ + 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. + """ + return pulumi.get(self, "expires_at") + + @expires_at.setter + def expires_at(self, value: pulumi.Input[str]): + pulumi.set(self, "expires_at", value) + + @property + @pulumi.getter(name="instanceId") + def instance_id(self) -> pulumi.Input[str]: + """ + The ID of the MongoDB® instance from which the snapshot was created. + """ + return pulumi.get(self, "instance_id") + + @instance_id.setter + def instance_id(self, value: pulumi.Input[str]): + pulumi.set(self, "instance_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the MongoDB® snapshot. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + `region`) The region in which the MongoDB® snapshot should be created. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + +@pulumi.input_type +class _MongoDbSnapshotState: + def __init__(__self__, *, + created_at: Optional[pulumi.Input[str]] = None, + expires_at: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + instance_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + volume_type: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering MongoDbSnapshot resources. + :param pulumi.Input[str] created_at: The date and time when the MongoDB® snapshot was created. + :param pulumi.Input[str] expires_at: 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. + :param pulumi.Input[str] instance_id: The ID of the MongoDB® instance from which the snapshot was created. + :param pulumi.Input[str] instance_name: The name of the MongoDB® instance from which the snapshot was created. + :param pulumi.Input[str] name: The name of the MongoDB® snapshot. + :param pulumi.Input[str] node_type: The type of node associated with the MongoDB® snapshot. + :param pulumi.Input[str] region: `region`) The region in which the MongoDB® snapshot should be created. + :param pulumi.Input[int] size: The size of the MongoDB® snapshot in bytes. + :param pulumi.Input[str] updated_at: The date and time of the last update of the MongoDB® snapshot. + :param pulumi.Input[str] volume_type: The type of volume used for the MongoDB® snapshot. + """ + if created_at is not None: + pulumi.set(__self__, "created_at", created_at) + if expires_at is not None: + pulumi.set(__self__, "expires_at", expires_at) + if instance_id is not None: + pulumi.set(__self__, "instance_id", instance_id) + if instance_name is not None: + pulumi.set(__self__, "instance_name", instance_name) + if name is not None: + pulumi.set(__self__, "name", name) + if node_type is not None: + pulumi.set(__self__, "node_type", node_type) + if region is not None: + pulumi.set(__self__, "region", region) + if size is not None: + pulumi.set(__self__, "size", size) + if updated_at is not None: + pulumi.set(__self__, "updated_at", updated_at) + if volume_type is not None: + pulumi.set(__self__, "volume_type", volume_type) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> Optional[pulumi.Input[str]]: + """ + The date and time when the MongoDB® snapshot was created. + """ + return pulumi.get(self, "created_at") + + @created_at.setter + def created_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_at", value) + + @property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "expires_at") + + @expires_at.setter + def expires_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expires_at", value) + + @property + @pulumi.getter(name="instanceId") + def instance_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the MongoDB® instance from which the snapshot was created. + """ + return pulumi.get(self, "instance_id") + + @instance_id.setter + def instance_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_id", value) + + @property + @pulumi.getter(name="instanceName") + def instance_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the MongoDB® instance from which the snapshot was created. + """ + return pulumi.get(self, "instance_name") + + @instance_name.setter + def instance_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_name", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the MongoDB® snapshot. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> Optional[pulumi.Input[str]]: + """ + The type of node associated with the MongoDB® snapshot. + """ + return pulumi.get(self, "node_type") + + @node_type.setter + def node_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "node_type", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + `region`) The region in which the MongoDB® snapshot should be created. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter + def size(self) -> Optional[pulumi.Input[int]]: + """ + The size of the MongoDB® snapshot in bytes. + """ + return pulumi.get(self, "size") + + @size.setter + def size(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "size", value) + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> Optional[pulumi.Input[str]]: + """ + The date and time of the last update of the MongoDB® snapshot. + """ + return pulumi.get(self, "updated_at") + + @updated_at.setter + def updated_at(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "updated_at", value) + + @property + @pulumi.getter(name="volumeType") + def volume_type(self) -> Optional[pulumi.Input[str]]: + """ + The type of volume used for the MongoDB® snapshot. + """ + return pulumi.get(self, "volume_type") + + @volume_type.setter + def volume_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "volume_type", value) + + +class MongoDbSnapshot(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + expires_at: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + 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 + + ```python + import pulumi + import pulumiverse_scaleway as scaleway + + main = scaleway.MongoDbSnapshot("main", + instance_id=main_scaleway_mongodb_instance["id"], + name="name-snapshot", + expires_at="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 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] expires_at: 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. + :param pulumi.Input[str] instance_id: The ID of the MongoDB® instance from which the snapshot was created. + :param pulumi.Input[str] name: The name of the MongoDB® snapshot. + :param pulumi.Input[str] region: `region`) The region in which the MongoDB® snapshot should be created. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: MongoDbSnapshotArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + 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 + + ```python + import pulumi + import pulumiverse_scaleway as scaleway + + main = scaleway.MongoDbSnapshot("main", + instance_id=main_scaleway_mongodb_instance["id"], + name="name-snapshot", + expires_at="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 + ``` + + :param str resource_name: The name of the resource. + :param MongoDbSnapshotArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(MongoDbSnapshotArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + expires_at: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = MongoDbSnapshotArgs.__new__(MongoDbSnapshotArgs) + + if expires_at is None and not opts.urn: + raise TypeError("Missing required property 'expires_at'") + __props__.__dict__["expires_at"] = expires_at + if instance_id is None and not opts.urn: + raise TypeError("Missing required property 'instance_id'") + __props__.__dict__["instance_id"] = instance_id + __props__.__dict__["name"] = name + __props__.__dict__["region"] = region + __props__.__dict__["created_at"] = None + __props__.__dict__["instance_name"] = None + __props__.__dict__["node_type"] = None + __props__.__dict__["size"] = None + __props__.__dict__["updated_at"] = None + __props__.__dict__["volume_type"] = None + super(MongoDbSnapshot, __self__).__init__( + 'scaleway:index/mongoDbSnapshot:MongoDbSnapshot', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + created_at: Optional[pulumi.Input[str]] = None, + expires_at: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + instance_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + node_type: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + size: Optional[pulumi.Input[int]] = None, + updated_at: Optional[pulumi.Input[str]] = None, + volume_type: Optional[pulumi.Input[str]] = None) -> 'MongoDbSnapshot': + """ + Get an existing MongoDbSnapshot resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] created_at: The date and time when the MongoDB® snapshot was created. + :param pulumi.Input[str] expires_at: 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. + :param pulumi.Input[str] instance_id: The ID of the MongoDB® instance from which the snapshot was created. + :param pulumi.Input[str] instance_name: The name of the MongoDB® instance from which the snapshot was created. + :param pulumi.Input[str] name: The name of the MongoDB® snapshot. + :param pulumi.Input[str] node_type: The type of node associated with the MongoDB® snapshot. + :param pulumi.Input[str] region: `region`) The region in which the MongoDB® snapshot should be created. + :param pulumi.Input[int] size: The size of the MongoDB® snapshot in bytes. + :param pulumi.Input[str] updated_at: The date and time of the last update of the MongoDB® snapshot. + :param pulumi.Input[str] volume_type: The type of volume used for the MongoDB® snapshot. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _MongoDbSnapshotState.__new__(_MongoDbSnapshotState) + + __props__.__dict__["created_at"] = created_at + __props__.__dict__["expires_at"] = expires_at + __props__.__dict__["instance_id"] = instance_id + __props__.__dict__["instance_name"] = instance_name + __props__.__dict__["name"] = name + __props__.__dict__["node_type"] = node_type + __props__.__dict__["region"] = region + __props__.__dict__["size"] = size + __props__.__dict__["updated_at"] = updated_at + __props__.__dict__["volume_type"] = volume_type + return MongoDbSnapshot(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createdAt") + def created_at(self) -> pulumi.Output[str]: + """ + The date and time when the MongoDB® snapshot was created. + """ + return pulumi.get(self, "created_at") + + @property + @pulumi.getter(name="expiresAt") + def expires_at(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "expires_at") + + @property + @pulumi.getter(name="instanceId") + def instance_id(self) -> pulumi.Output[str]: + """ + The ID of the MongoDB® instance from which the snapshot was created. + """ + return pulumi.get(self, "instance_id") + + @property + @pulumi.getter(name="instanceName") + def instance_name(self) -> pulumi.Output[str]: + """ + The name of the MongoDB® instance from which the snapshot was created. + """ + return pulumi.get(self, "instance_name") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the MongoDB® snapshot. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="nodeType") + def node_type(self) -> pulumi.Output[str]: + """ + The type of node associated with the MongoDB® snapshot. + """ + return pulumi.get(self, "node_type") + + @property + @pulumi.getter + def region(self) -> pulumi.Output[str]: + """ + `region`) The region in which the MongoDB® snapshot should be created. + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter + def size(self) -> pulumi.Output[int]: + """ + The size of the MongoDB® snapshot in bytes. + """ + return pulumi.get(self, "size") + + @property + @pulumi.getter(name="updatedAt") + def updated_at(self) -> pulumi.Output[str]: + """ + The date and time of the last update of the MongoDB® snapshot. + """ + return pulumi.get(self, "updated_at") + + @property + @pulumi.getter(name="volumeType") + def volume_type(self) -> pulumi.Output[str]: + """ + The type of volume used for the MongoDB® snapshot. + """ + return pulumi.get(self, "volume_type") + diff --git a/sdk/python/pulumiverse_scaleway/object_bucket.py b/sdk/python/pulumiverse_scaleway/object_bucket.py index a0b0807b..b2933c48 100644 --- a/sdk/python/pulumiverse_scaleway/object_bucket.py +++ b/sdk/python/pulumiverse_scaleway/object_bucket.py @@ -36,7 +36,7 @@ def __init__(__self__, *, :param pulumi.Input[str] acl: (Deprecated) The canned ACL you want to apply to the bucket. > **Note:** The `acl` attribute is deprecated. See ObjectBucketAcl resource documentation. Refer to the [official canned ACL documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl_overview.html#canned-acl) for more information on the different roles. - :param pulumi.Input[bool] force_destroy: Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable + :param pulumi.Input[bool] force_destroy: 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. :param pulumi.Input[Sequence[pulumi.Input['ObjectBucketLifecycleRuleArgs']]] lifecycle_rules: Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects :param pulumi.Input[str] name: The name of the bucket. :param pulumi.Input[bool] object_lock_enabled: Enable object lock @@ -100,7 +100,7 @@ def cors_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ObjectB @pulumi.getter(name="forceDestroy") def force_destroy(self) -> Optional[pulumi.Input[bool]]: """ - 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. """ return pulumi.get(self, "force_destroy") @@ -218,7 +218,7 @@ def __init__(__self__, *, > **Note:** The `acl` attribute is deprecated. See ObjectBucketAcl resource documentation. Refer to the [official canned ACL documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl_overview.html#canned-acl) for more information on the different roles. :param pulumi.Input[str] api_endpoint: API URL of the bucket :param pulumi.Input[str] endpoint: The endpoint URL of the bucket. - :param pulumi.Input[bool] force_destroy: Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable + :param pulumi.Input[bool] force_destroy: 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. :param pulumi.Input[Sequence[pulumi.Input['ObjectBucketLifecycleRuleArgs']]] lifecycle_rules: Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects :param pulumi.Input[str] name: The name of the bucket. :param pulumi.Input[bool] object_lock_enabled: Enable object lock @@ -310,7 +310,7 @@ def endpoint(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="forceDestroy") def force_destroy(self) -> Optional[pulumi.Input[bool]]: """ - 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. """ return pulumi.get(self, "force_destroy") @@ -486,7 +486,7 @@ def __init__(__self__, "prefix": "path3/", "enabled": False, "tags": { - "tag_key": "tagValue", + "tagKey": "tagValue", "terraform": "hashicorp", }, "expiration": { @@ -536,7 +536,7 @@ def __init__(__self__, :param pulumi.Input[str] acl: (Deprecated) The canned ACL you want to apply to the bucket. > **Note:** The `acl` attribute is deprecated. See ObjectBucketAcl resource documentation. Refer to the [official canned ACL documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl_overview.html#canned-acl) for more information on the different roles. - :param pulumi.Input[bool] force_destroy: Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable + :param pulumi.Input[bool] force_destroy: 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. :param pulumi.Input[Sequence[pulumi.Input[Union['ObjectBucketLifecycleRuleArgs', 'ObjectBucketLifecycleRuleArgsDict']]]] lifecycle_rules: Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects :param pulumi.Input[str] name: The name of the bucket. :param pulumi.Input[bool] object_lock_enabled: Enable object lock @@ -618,7 +618,7 @@ def __init__(__self__, "prefix": "path3/", "enabled": False, "tags": { - "tag_key": "tagValue", + "tagKey": "tagValue", "terraform": "hashicorp", }, "expiration": { @@ -743,7 +743,7 @@ def get(resource_name: str, > **Note:** The `acl` attribute is deprecated. See ObjectBucketAcl resource documentation. Refer to the [official canned ACL documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl_overview.html#canned-acl) for more information on the different roles. :param pulumi.Input[str] api_endpoint: API URL of the bucket :param pulumi.Input[str] endpoint: The endpoint URL of the bucket. - :param pulumi.Input[bool] force_destroy: Enable deletion of objects in the bucket before destroying, locked objects or under legal hold are also deleted and **not** recoverable + :param pulumi.Input[bool] force_destroy: 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. :param pulumi.Input[Sequence[pulumi.Input[Union['ObjectBucketLifecycleRuleArgs', 'ObjectBucketLifecycleRuleArgsDict']]]] lifecycle_rules: Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects :param pulumi.Input[str] name: The name of the bucket. :param pulumi.Input[bool] object_lock_enabled: Enable object lock @@ -809,7 +809,7 @@ def endpoint(self) -> pulumi.Output[str]: @pulumi.getter(name="forceDestroy") def force_destroy(self) -> pulumi.Output[Optional[bool]]: """ - 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. """ return pulumi.get(self, "force_destroy") diff --git a/sdk/python/pulumiverse_scaleway/outputs.py b/sdk/python/pulumiverse_scaleway/outputs.py index 49f28bfe..f25dff87 100644 --- a/sdk/python/pulumiverse_scaleway/outputs.py +++ b/sdk/python/pulumiverse_scaleway/outputs.py @@ -42,6 +42,8 @@ 'FunctionTriggerNats', 'FunctionTriggerSqs', 'IamPolicyRule', + 'InferenceDeploymentPrivateEndpoint', + 'InferenceDeploymentPublicEndpoint', 'InstanceImageAdditionalVolume', 'InstanceSecurityGroupInboundRule', 'InstanceSecurityGroupOutboundRule', @@ -58,6 +60,7 @@ 'IotRouteDatabase', 'IotRouteRest', 'IotRouteS3', + 'IpamIpCustomResource', 'IpamIpResource', 'IpamIpReverse', 'IpamIpSource', @@ -83,6 +86,7 @@ 'LoadbalancerPrivateNetwork', 'MnqSnsCredentialsPermissions', 'MnqSqsCredentialsPermissions', + 'MongoDbInstancePublicNetwork', 'ObjectBucketAclAccessControlPolicy', 'ObjectBucketAclAccessControlPolicyGrant', 'ObjectBucketAclAccessControlPolicyGrantGrantee', @@ -174,6 +178,7 @@ 'GetLoadbalancerCertificateCustomCertificateResult', 'GetLoadbalancerCertificateLetsencryptResult', 'GetLoadbalancerPrivateNetworkResult', + 'GetMongoDbInstancePublicNetworkResult', 'GetObjectBucketCorsRuleResult', 'GetObjectBucketLifecycleRuleResult', 'GetObjectBucketLifecycleRuleExpirationResult', @@ -425,6 +430,8 @@ def __key_warning(key: str): suggest = None if key == "createdAt": suggest = "created_at" + elif key == "ipamIpIds": + suggest = "ipam_ip_ids" elif key == "updatedAt": suggest = "updated_at" @@ -442,12 +449,14 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, id: str, created_at: Optional[str] = None, + ipam_ip_ids: Optional[Sequence[str]] = None, status: Optional[str] = None, updated_at: Optional[str] = None, vlan: Optional[int] = None): """ :param str id: The id of the private network to attach. :param str created_at: The date and time of the creation of the private network. + :param Sequence[str] ipam_ip_ids: List of IPAM IP IDs to assign to the server in the requested private network. :param str status: The private network status. :param str updated_at: The date and time of the last update of the private network. :param int vlan: The VLAN ID associated to the private network. @@ -455,6 +464,8 @@ def __init__(__self__, *, pulumi.set(__self__, "id", id) if created_at is not None: pulumi.set(__self__, "created_at", created_at) + if ipam_ip_ids is not None: + pulumi.set(__self__, "ipam_ip_ids", ipam_ip_ids) if status is not None: pulumi.set(__self__, "status", status) if updated_at is not None: @@ -478,6 +489,14 @@ def created_at(self) -> Optional[str]: """ return pulumi.get(self, "created_at") + @property + @pulumi.getter(name="ipamIpIds") + def ipam_ip_ids(self) -> Optional[Sequence[str]]: + """ + List of IPAM IP IDs to assign to the server in the requested private network. + """ + return pulumi.get(self, "ipam_ip_ids") + @property @pulumi.getter def status(self) -> Optional[str]: @@ -1966,6 +1985,154 @@ def project_ids(self) -> Optional[Sequence[str]]: return pulumi.get(self, "project_ids") +@pulumi.output_type +class InferenceDeploymentPrivateEndpoint(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "disableAuth": + suggest = "disable_auth" + elif key == "privateNetworkId": + suggest = "private_network_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in InferenceDeploymentPrivateEndpoint. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + InferenceDeploymentPrivateEndpoint.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + InferenceDeploymentPrivateEndpoint.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + disable_auth: Optional[bool] = None, + id: Optional[str] = None, + private_network_id: Optional[str] = None, + url: Optional[str] = None): + """ + :param bool disable_auth: Disable the authentication on the endpoint. + :param str id: (Optional) The id of the public endpoint. + :param str private_network_id: The ID of the private network to use. + :param str url: (Optional) The URL of the endpoint. + """ + if disable_auth is not None: + pulumi.set(__self__, "disable_auth", disable_auth) + if id is not None: + pulumi.set(__self__, "id", id) + if private_network_id is not None: + pulumi.set(__self__, "private_network_id", private_network_id) + if url is not None: + pulumi.set(__self__, "url", url) + + @property + @pulumi.getter(name="disableAuth") + def disable_auth(self) -> Optional[bool]: + """ + Disable the authentication on the endpoint. + """ + return pulumi.get(self, "disable_auth") + + @property + @pulumi.getter + def id(self) -> Optional[str]: + """ + (Optional) The id of the public endpoint. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="privateNetworkId") + def private_network_id(self) -> Optional[str]: + """ + The ID of the private network to use. + """ + return pulumi.get(self, "private_network_id") + + @property + @pulumi.getter + def url(self) -> Optional[str]: + """ + (Optional) The URL of the endpoint. + """ + return pulumi.get(self, "url") + + +@pulumi.output_type +class InferenceDeploymentPublicEndpoint(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "disableAuth": + suggest = "disable_auth" + elif key == "isEnabled": + suggest = "is_enabled" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in InferenceDeploymentPublicEndpoint. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + InferenceDeploymentPublicEndpoint.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + InferenceDeploymentPublicEndpoint.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + disable_auth: Optional[bool] = None, + id: Optional[str] = None, + is_enabled: Optional[bool] = None, + url: Optional[str] = None): + """ + :param bool disable_auth: Disable the authentication on the endpoint. + :param str id: (Optional) The id of the public endpoint. + :param bool is_enabled: Enable or disable public endpoint. + :param str url: (Optional) The URL of the endpoint. + """ + if disable_auth is not None: + pulumi.set(__self__, "disable_auth", disable_auth) + if id is not None: + pulumi.set(__self__, "id", id) + if is_enabled is not None: + pulumi.set(__self__, "is_enabled", is_enabled) + if url is not None: + pulumi.set(__self__, "url", url) + + @property + @pulumi.getter(name="disableAuth") + def disable_auth(self) -> Optional[bool]: + """ + Disable the authentication on the endpoint. + """ + return pulumi.get(self, "disable_auth") + + @property + @pulumi.getter + def id(self) -> Optional[str]: + """ + (Optional) The id of the public endpoint. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="isEnabled") + def is_enabled(self) -> Optional[bool]: + """ + Enable or disable public endpoint. + """ + return pulumi.get(self, "is_enabled") + + @property + @pulumi.getter + def url(self) -> Optional[str]: + """ + (Optional) The URL of the endpoint. + """ + return pulumi.get(self, "url") + + @pulumi.output_type class InstanceImageAdditionalVolume(dict): @staticmethod @@ -3139,6 +3306,53 @@ def object_prefix(self) -> Optional[str]: return pulumi.get(self, "object_prefix") +@pulumi.output_type +class IpamIpCustomResource(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "macAddress": + suggest = "mac_address" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in IpamIpCustomResource. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + IpamIpCustomResource.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + IpamIpCustomResource.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + mac_address: str, + name: Optional[str] = None): + """ + :param str mac_address: The MAC address of the resource the IP is attached to. + :param str name: The name of the resource the IP is attached to. + """ + pulumi.set(__self__, "mac_address", mac_address) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="macAddress") + def mac_address(self) -> str: + """ + The MAC address of the resource the IP is attached to. + """ + return pulumi.get(self, "mac_address") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + The name of the resource the IP is attached to. + """ + return pulumi.get(self, "name") + + @pulumi.output_type class IpamIpResource(dict): @staticmethod @@ -4781,6 +4995,66 @@ def can_receive(self) -> Optional[bool]: return pulumi.get(self, "can_receive") +@pulumi.output_type +class MongoDbInstancePublicNetwork(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "dnsRecord": + suggest = "dns_record" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MongoDbInstancePublicNetwork. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MongoDbInstancePublicNetwork.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MongoDbInstancePublicNetwork.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + dns_record: Optional[str] = None, + id: Optional[str] = None, + port: Optional[int] = None): + """ + :param str dns_record: The DNS record of your endpoint + :param str id: The ID of the MongoDB® instance. + :param int port: TCP port of the endpoint + """ + if dns_record is not None: + pulumi.set(__self__, "dns_record", dns_record) + if id is not None: + pulumi.set(__self__, "id", id) + if port is not None: + pulumi.set(__self__, "port", port) + + @property + @pulumi.getter(name="dnsRecord") + def dns_record(self) -> Optional[str]: + """ + The DNS record of your endpoint + """ + return pulumi.get(self, "dns_record") + + @property + @pulumi.getter + def id(self) -> Optional[str]: + """ + The ID of the MongoDB® instance. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def port(self) -> Optional[int]: + """ + TCP port of the endpoint + """ + return pulumi.get(self, "port") + + @pulumi.output_type class ObjectBucketAclAccessControlPolicy(dict): def __init__(__self__, *, @@ -6374,18 +6648,21 @@ class GetBaremetalServerPrivateNetworkResult(dict): def __init__(__self__, *, created_at: str, id: str, + ipam_ip_ids: Sequence[str], status: str, updated_at: str, vlan: int): """ :param str created_at: The date and time of the creation of the private network :param str id: The ID of the server. + :param Sequence[str] ipam_ip_ids: List of IPAM IP IDs to attach to the server :param str status: The private network status :param str updated_at: The date and time of the last update of the private network :param int vlan: The VLAN ID associated to the private network """ pulumi.set(__self__, "created_at", created_at) pulumi.set(__self__, "id", id) + pulumi.set(__self__, "ipam_ip_ids", ipam_ip_ids) pulumi.set(__self__, "status", status) pulumi.set(__self__, "updated_at", updated_at) pulumi.set(__self__, "vlan", vlan) @@ -6406,6 +6683,14 @@ def id(self) -> str: """ return pulumi.get(self, "id") + @property + @pulumi.getter(name="ipamIpIds") + def ipam_ip_ids(self) -> Sequence[str]: + """ + List of IPAM IP IDs to attach to the server + """ + return pulumi.get(self, "ipam_ip_ids") + @property @pulumi.getter def status(self) -> str: @@ -7809,7 +8094,6 @@ def __init__(__self__, *, zone: str): """ :param str boot_type: The boot Type of the server. Possible values are: `local`, `bootscript` or `rescue`. - :param str bootscript_id: The ID of the bootscript. :param bool enable_dynamic_ip: If true a dynamic IP will be attached to the server. :param bool enable_ipv6: Determines if IPv6 is enabled for the server. :param str id: The ID of the IP @@ -7867,9 +8151,6 @@ def boot_type(self) -> str: @pulumi.getter(name="bootscriptId") @_utilities.deprecated("""bootscript are not supported""") def bootscript_id(self) -> str: - """ - The ID of the bootscript. - """ return pulumi.get(self, "bootscript_id") @property @@ -10479,6 +10760,46 @@ def zone(self) -> str: return pulumi.get(self, "zone") +@pulumi.output_type +class GetMongoDbInstancePublicNetworkResult(dict): + def __init__(__self__, *, + dns_record: str, + id: str, + port: int): + """ + :param str dns_record: The DNS record of your endpoint + :param str id: The ID of the MongoDB® Instance. + :param int port: TCP port of the endpoint + """ + pulumi.set(__self__, "dns_record", dns_record) + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "port", port) + + @property + @pulumi.getter(name="dnsRecord") + def dns_record(self) -> str: + """ + The DNS record of your endpoint + """ + return pulumi.get(self, "dns_record") + + @property + @pulumi.getter + def id(self) -> str: + """ + The ID of the MongoDB® Instance. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def port(self) -> int: + """ + TCP port of the endpoint + """ + return pulumi.get(self, "port") + + @pulumi.output_type class GetObjectBucketCorsRuleResult(dict): def __init__(__self__, *,