{"name":"scaleway","displayName":"Scaleway","version":"1.44.1","description":"A Pulumi package for creating and managing Scaleway cloud resources.","keywords":["pulumi","scaleway","pulumiverse"],"homepage":"https://www.scaleway.com","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`scaleway` Terraform Provider](https://github.com/scaleway/terraform-provider-scaleway).","repository":"https://github.com/pulumiverse/pulumi-scaleway","logoUrl":"https://raw.githubusercontent.com/pulumiverse/pulumi-scaleway/master/assets/scaleway.png","pluginDownloadURL":"github://api.github.com/pulumiverse","publisher":"pulumiverse","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"compatibility":"tfbridge20","rootNamespace":"Pulumiverse","respectSchemaVersion":true},"go":{"importBasePath":"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway","generateResourceContainerTypes":true,"generateExtraInputTypes":true,"respectSchemaVersion":true},"nodejs":{"packageName":"@pulumiverse/scaleway","packageDescription":"A Pulumi package for creating and managing Scaleway cloud resources.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/scaleway/terraform-provider-scaleway)\n\u003e distributed under [MIT](https://mit-license.org/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-scaleway` repo](https://github.com/pulumiverse/pulumi-scaleway/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-scaleway` repo](https://github.com/scaleway/terraform-provider-scaleway/issues).","dependencies":{"@pulumi/pulumi":"^3.0.0"},"devDependencies":{"@types/mime":"^2.0.0","@types/node":"^10.0.0"},"compatibility":"tfbridge20","disableUnionOutputTypes":true,"respectSchemaVersion":true},"python":{"packageName":"pulumiverse_scaleway","requires":{"pulumi":"\u003e=3.0.0,\u003c4.0.0"},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/scaleway/terraform-provider-scaleway)\n\u003e distributed under [MIT](https://mit-license.org/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-scaleway` repo](https://github.com/pulumiverse/pulumi-scaleway/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-scaleway` repo](https://github.com/scaleway/terraform-provider-scaleway/issues).","compatibility":"tfbridge20","respectSchemaVersion":true,"pyproject":{"enabled":true}}},"config":{"variables":{"accessKey":{"type":"string","description":"The Scaleway access key.","defaultInfo":{"environment":["SCW_ACCESS_KEY"]}},"apiUrl":{"type":"string","description":"The Scaleway API URL to use."},"organizationId":{"type":"string","description":"The Scaleway organization ID.","defaultInfo":{"environment":["SCW_ORGANIZATION_ID"]}},"profile":{"type":"string","description":"The Scaleway profile to use."},"projectId":{"type":"string","description":"The Scaleway project ID.","defaultInfo":{"environment":["SCW_DEFAULT_PROJECT_ID"]}},"region":{"type":"string","description":"The region you want to attach the resource to","defaultInfo":{"environment":["SCW_DEFAULT_REGION"]}},"secretKey":{"type":"string","description":"The Scaleway secret Key.","defaultInfo":{"environment":["SCW_SECRET_KEY"]}},"zone":{"type":"string","description":"The zone you want to attach the resource to","defaultInfo":{"environment":["SCW_DEFAULT_ZONE"]}}}},"types":{"scaleway:account/getProjectsProject:getProjectsProject":{"properties":{"createdAt":{"type":"string","description":"(Computed) The date and time when the project was created.\n"},"description":{"type":"string","description":"(Computed) The description of the project.\n"},"id":{"type":"string","description":"(Computed) The unique identifier of the project.\n"},"name":{"type":"string","description":"(Computed) The name of the project.\n"},"organizationId":{"type":"string","description":"The unique identifier of the Organization with which the Projects are associated.\nIf no default \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e is set, one must be set explicitly in this datasource\n"},"updatedAt":{"type":"string","description":"(Computed) The date and time when the project was updated.\n"}},"type":"object","required":["createdAt","description","id","name","organizationId","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:applesilicon/ServerPrivateIp:ServerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:applesilicon/ServerPrivateNetwork:ServerPrivateNetwork":{"properties":{"createdAt":{"type":"string","description":"The date and time the private network was created.\n"},"id":{"type":"string","description":"The private network ID\n"},"ipamIpIds":{"type":"array","items":{"type":"string"},"description":"A list of IPAM IP IDs to attach to the server.\n"},"status":{"type":"string","description":"The current status of the private network.\n"},"updatedAt":{"type":"string","description":"The date and time the private network was last updated.\n"},"vlan":{"type":"integer","description":"The VLAN ID associated with the private network.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["createdAt","id","ipamIpIds","status","updatedAt","vlan"]}}},"scaleway:audittrail/getEventEvent:getEventEvent":{"properties":{"id":{"type":"string","description":"ID of the resource attached to the event. (UUID format)\n"},"locality":{"type":"string","description":"Locality of the resource attached to the event.\n"},"methodName":{"type":"string","description":"Name of the method of the API call performed.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) ID of the Organization containing the Audit Trail events.\n"},"principalId":{"type":"string","description":"ID of the User or IAM application at the origin of the event.\n"},"productName":{"type":"string","description":"Name of the Scaleway product in a hyphenated format.\n"},"projectId":{"type":"string","description":"ID of the Project containing the Audit Trail events.\n"},"recordedAt":{"type":"string","description":"Timestamp of the event. (RFC 3339 format)\n"},"requestBody":{"type":"string","description":"Request at the origin of the event.\n"},"requestId":{"type":"string","description":"Unique identifier of the request at the origin of the event. (UUID format)\n"},"resources":{"type":"array","items":{"$ref":"#/types/scaleway:audittrail/getEventEventResource:getEventEventResource"},"description":"List of resources attached to the event.\n"},"serviceName":{"type":"string","description":"Name of the service of the API call performed.\n"},"sourceIp":{"type":"string","description":"IP address at the origin of the event.\n"},"statusCode":{"type":"integer","description":"HTTP status code resulting of the API call.\n"},"userAgent":{"type":"string","description":"User Agent at the origin of the event.\n"}},"type":"object","required":["id","locality","methodName","organizationId","principalId","productName","projectId","recordedAt","requestBody","requestId","resources","serviceName","sourceIp","statusCode","userAgent"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:audittrail/getEventEventResource:getEventEventResource":{"properties":{"id":{"type":"string","description":"ID of the resource attached to the event. (UUID format)\n"},"name":{"type":"string","description":"Name of the Scaleway resource.\n"},"type":{"type":"string","description":"Type of the Scaleway resource.\n"}},"type":"object","required":["id","name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:autoscaling/InstanceGroupCapacity:InstanceGroupCapacity":{"properties":{"cooldownDelay":{"type":"integer","description":"Time (in seconds) after a scaling action during which requests to carry out a new scaling action will be denied.\n"},"maxReplicas":{"type":"integer","description":"The maximum count of Instances for the Instance group.\n"},"minReplicas":{"type":"integer","description":"The minimum count of Instances for the Instance group.\n"}},"type":"object"},"scaleway:autoscaling/InstanceGroupLoadBalancer:InstanceGroupLoadBalancer":{"properties":{"backendIds":{"type":"array","items":{"type":"string"},"description":"The Load Balancer backend IDs.\n"},"id":{"type":"string","description":"The ID of the Load Balancer.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network attached to the Load Balancer.\n"}},"type":"object"},"scaleway:autoscaling/InstancePolicyMetric:InstancePolicyMetric":{"properties":{"aggregate":{"type":"string","description":"How the values sampled for the \u003cspan pulumi-lang-nodejs=\"`metric`\" pulumi-lang-dotnet=\"`Metric`\" pulumi-lang-go=\"`metric`\" pulumi-lang-python=\"`metric`\" pulumi-lang-yaml=\"`metric`\" pulumi-lang-java=\"`metric`\"\u003e`metric`\u003c/span\u003e should be aggregated.\n"},"cockpitMetricName":{"type":"string","description":"The custom metric to use for this policy. This must be stored in Scaleway Cockpit. The metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered\n"},"managedMetric":{"type":"string","description":"The managed metric to use for this policy. These are available by default in Cockpit without any configuration or \u003cspan pulumi-lang-nodejs=\"`nodeExporter`\" pulumi-lang-dotnet=\"`NodeExporter`\" pulumi-lang-go=\"`nodeExporter`\" pulumi-lang-python=\"`node_exporter`\" pulumi-lang-yaml=\"`nodeExporter`\" pulumi-lang-java=\"`nodeExporter`\"\u003e`node_exporter`\u003c/span\u003e. The chosen metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered.\n"},"name":{"type":"string","description":"Name or description of the metric policy.\n"},"operator":{"type":"string","description":"Operator used when comparing the threshold value of the chosen \u003cspan pulumi-lang-nodejs=\"`metric`\" pulumi-lang-dotnet=\"`Metric`\" pulumi-lang-go=\"`metric`\" pulumi-lang-python=\"`metric`\" pulumi-lang-yaml=\"`metric`\" pulumi-lang-java=\"`metric`\"\u003e`metric`\u003c/span\u003e to the actual sampled and aggregated value.\n"},"samplingRangeMin":{"type":"integer","description":"The Interval of time, in minutes, during which metric is sampled.\n"},"threshold":{"type":"integer","description":"The threshold value to measure the aggregated sampled \u003cspan pulumi-lang-nodejs=\"`metric`\" pulumi-lang-dotnet=\"`Metric`\" pulumi-lang-go=\"`metric`\" pulumi-lang-python=\"`metric`\" pulumi-lang-yaml=\"`metric`\" pulumi-lang-java=\"`metric`\"\u003e`metric`\u003c/span\u003e value against. Combined with the \u003cspan pulumi-lang-nodejs=\"`operator`\" pulumi-lang-dotnet=\"`Operator`\" pulumi-lang-go=\"`operator`\" pulumi-lang-python=\"`operator`\" pulumi-lang-yaml=\"`operator`\" pulumi-lang-java=\"`operator`\"\u003e`operator`\u003c/span\u003e field, determines whether a scaling action should be triggered.\n"}},"type":"object","required":["aggregate","name","operator"]},"scaleway:autoscaling/InstanceTemplateVolume:InstanceTemplateVolume":{"properties":{"boot":{"type":"boolean","description":"Force the Instance to boot on this volume.\n"},"fromEmpty":{"$ref":"#/types/scaleway:autoscaling/InstanceTemplateVolumeFromEmpty:InstanceTemplateVolumeFromEmpty","description":"Volume instance template from empty\n"},"fromSnapshot":{"$ref":"#/types/scaleway:autoscaling/InstanceTemplateVolumeFromSnapshot:InstanceTemplateVolumeFromSnapshot","description":"Volume instance template from snapshot\n"},"name":{"type":"string","description":"The name of the volume.\n"},"perfIops":{"type":"integer","description":"The maximum IO/s expected, according to the different options available in stock (`5000 | 15000`).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags assigned to the volume.\n"},"volumeType":{"type":"string","description":"The type of the volume.\n"}},"type":"object","required":["name","volumeType"]},"scaleway:autoscaling/InstanceTemplateVolumeFromEmpty:InstanceTemplateVolumeFromEmpty":{"properties":{"size":{"type":"integer","description":"Size in GB of the new empty volume\n"}},"type":"object","required":["size"]},"scaleway:autoscaling/InstanceTemplateVolumeFromSnapshot:InstanceTemplateVolumeFromSnapshot":{"properties":{"size":{"type":"integer","description":"Override size (in GB) of the cloned volume\n"},"snapshotId":{"type":"string","description":"ID of the snapshot to clone\n"}},"type":"object","required":["snapshotId"]},"scaleway:autoscaling/getInstanceGroupCapacity:getInstanceGroupCapacity":{"properties":{"cooldownDelay":{"type":"integer","description":"Time (in seconds) after a scaling action during which requests to carry out a new scaling action will be denied\n"},"maxReplicas":{"type":"integer","description":"The maximum count of Instances for the Instance group\n"},"minReplicas":{"type":"integer","description":"The minimum count of Instances for the Instance group\n"}},"type":"object","required":["cooldownDelay","maxReplicas","minReplicas"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:autoscaling/getInstanceGroupLoadBalancer:getInstanceGroupLoadBalancer":{"properties":{"backendIds":{"type":"array","items":{"type":"string"},"description":"The Load Balancer backend IDs\n"},"id":{"type":"string","description":"The ID of the load balancer\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network attached to the Load Balancer\n"}},"type":"object","required":["backendIds","id","privateNetworkId"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:autoscaling/getInstancePolicyMetric:getInstancePolicyMetric":{"properties":{"aggregate":{"type":"string","description":"How the values sampled for the \u003cspan pulumi-lang-nodejs=\"`metric`\" pulumi-lang-dotnet=\"`Metric`\" pulumi-lang-go=\"`metric`\" pulumi-lang-python=\"`metric`\" pulumi-lang-yaml=\"`metric`\" pulumi-lang-java=\"`metric`\"\u003e`metric`\u003c/span\u003e should be aggregated\n"},"cockpitMetricName":{"type":"string","description":"Custom metric to use for this policy. This must be stored in Scaleway Cockpit. The metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered\n"},"managedMetric":{"type":"string","description":"Managed metric to use for this policy. These are available by default in Cockpit without any configuration or \u003cspan pulumi-lang-nodejs=\"`nodeExporter`\" pulumi-lang-dotnet=\"`NodeExporter`\" pulumi-lang-go=\"`nodeExporter`\" pulumi-lang-python=\"`node_exporter`\" pulumi-lang-yaml=\"`nodeExporter`\" pulumi-lang-java=\"`nodeExporter`\"\u003e`node_exporter`\u003c/span\u003e. The chosen metric forms the basis of the condition that will be checked to determine whether a scaling action should be triggered\n"},"name":{"type":"string","description":"The name of the Instance policy. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`instancePolicyId`\" pulumi-lang-dotnet=\"`InstancePolicyId`\" pulumi-lang-go=\"`instancePolicyId`\" pulumi-lang-python=\"`instance_policy_id`\" pulumi-lang-yaml=\"`instancePolicyId`\" pulumi-lang-java=\"`instancePolicyId`\"\u003e`instance_policy_id`\u003c/span\u003e should be specified. When using \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`instanceGroupId`\" pulumi-lang-dotnet=\"`InstanceGroupId`\" pulumi-lang-go=\"`instanceGroupId`\" pulumi-lang-python=\"`instance_group_id`\" pulumi-lang-yaml=\"`instanceGroupId`\" pulumi-lang-java=\"`instanceGroupId`\"\u003e`instance_group_id`\u003c/span\u003e is required.\n"},"operator":{"type":"string","description":"Operator used when comparing the threshold value of the chosen \u003cspan pulumi-lang-nodejs=\"`metric`\" pulumi-lang-dotnet=\"`Metric`\" pulumi-lang-go=\"`metric`\" pulumi-lang-python=\"`metric`\" pulumi-lang-yaml=\"`metric`\" pulumi-lang-java=\"`metric`\"\u003e`metric`\u003c/span\u003e to the actual sampled and aggregated value\n"},"samplingRangeMin":{"type":"integer","description":"Interval of time, in minutes, during which metric is sampled\n"},"threshold":{"type":"integer","description":"Threshold value to measure the aggregated sampled \u003cspan pulumi-lang-nodejs=\"`metric`\" pulumi-lang-dotnet=\"`Metric`\" pulumi-lang-go=\"`metric`\" pulumi-lang-python=\"`metric`\" pulumi-lang-yaml=\"`metric`\" pulumi-lang-java=\"`metric`\"\u003e`metric`\u003c/span\u003e value against. Combined with the \u003cspan pulumi-lang-nodejs=\"`operator`\" pulumi-lang-dotnet=\"`Operator`\" pulumi-lang-go=\"`operator`\" pulumi-lang-python=\"`operator`\" pulumi-lang-yaml=\"`operator`\" pulumi-lang-java=\"`operator`\"\u003e`operator`\u003c/span\u003e field, determines whether a scaling action should be triggered\n"}},"type":"object","required":["aggregate","cockpitMetricName","managedMetric","name","operator","samplingRangeMin","threshold"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:billing/getConsumptionsConsumption:getConsumptionsConsumption":{"properties":{"billedQuantity":{"type":"string","description":"The consumed quantity.\n"},"categoryName":{"type":"string","description":"The name of the consumption category.\n"},"productName":{"type":"string","description":"The product name.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the consumption list is associated with.\n"},"sku":{"type":"string","description":"The unique identifier of the product.\n"},"unit":{"type":"string","description":"The unit of consumed quantity.\n"},"value":{"type":"string","description":"The monetary value of the consumption.\n"}},"type":"object","required":["billedQuantity","categoryName","productName","projectId","sku","unit","value"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:billing/getInvoicesInvoice:getInvoicesInvoice":{"properties":{"billingPeriod":{"type":"string","description":"The billing period of the invoice in the YYYY-MM format.\n"},"dueDate":{"type":"string","description":"The payment time limit, set according to the Organization's payment conditions (RFC 3339 format).\n"},"id":{"type":"string","description":"The associated invoice ID.\n"},"invoiceType":{"type":"string","description":"Invoices with the given type are listed. Valid values are \u003cspan pulumi-lang-nodejs=\"`periodic`\" pulumi-lang-dotnet=\"`Periodic`\" pulumi-lang-go=\"`periodic`\" pulumi-lang-python=\"`periodic`\" pulumi-lang-yaml=\"`periodic`\" pulumi-lang-java=\"`periodic`\"\u003e`periodic`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`purchase`\" pulumi-lang-dotnet=\"`Purchase`\" pulumi-lang-go=\"`purchase`\" pulumi-lang-python=\"`purchase`\" pulumi-lang-yaml=\"`purchase`\" pulumi-lang-java=\"`purchase`\"\u003e`purchase`\u003c/span\u003e.\n"},"issuedDate":{"type":"string","description":"The date when the invoice was sent to the customer (RFC 3339 format).\n"},"number":{"type":"integer","description":"The invoice number.\n"},"organizationName":{"type":"string","description":"The organization name.\n"},"sellerName":{"type":"string","description":"The name of the seller (Scaleway).\n"},"startDate":{"type":"string","description":"The start date of the billing period (RFC 3339 format).\n"},"state":{"type":"string","description":"The state of the invoice.\n"},"stopDate":{"type":"string","description":"The end date of the billing period (RFC 3339 format).\n"},"totalDiscount":{"type":"string","description":"The total discount amount of the invoice.\n"},"totalTax":{"type":"string","description":"The total tax amount of the invoice.\n"},"totalTaxed":{"type":"string","description":"The total amount, taxed.\n"},"totalUndiscount":{"type":"string","description":"The total amount of the invoice before applying the discount.\n"},"totalUntaxed":{"type":"string","description":"The total amount, untaxed.\n"}},"type":"object","required":["billingPeriod","dueDate","id","invoiceType","issuedDate","number","organizationName","sellerName","startDate","state","stopDate","totalDiscount","totalTax","totalTaxed","totalUndiscount","totalUntaxed"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:block/SnapshotExport:SnapshotExport":{"properties":{"bucket":{"type":"string","description":"The name of the bucket where the QCOW file will be saved.\n"},"key":{"type":"string","description":"The desired key (path) for the QCOW file within the bucket.\n"}},"type":"object","required":["bucket","key"]},"scaleway:block/SnapshotImport:SnapshotImport":{"properties":{"bucket":{"type":"string","description":"The name of the bucket containing the QCOW file.\n","willReplaceOnChanges":true},"key":{"type":"string","description":"The key of the QCOW file within the bucket.\n","willReplaceOnChanges":true}},"type":"object","required":["bucket","key"]},"scaleway:block/getSnapshotExport:getSnapshotExport":{"properties":{"bucket":{"type":"string","description":"Bucket containing qcow\n"},"key":{"type":"string","description":"Key of the qcow file in the specified bucket\n"}},"type":"object","required":["bucket","key"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:block/getSnapshotImport:getSnapshotImport":{"properties":{"bucket":{"type":"string","description":"Bucket containing qcow\n"},"key":{"type":"string","description":"Key of the qcow file in the specified bucket\n"}},"type":"object","required":["bucket","key"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:containers/ContainerHealthCheck:ContainerHealthCheck":{"properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive health check failures before considering the container unhealthy.\n"},"https":{"type":"array","items":{"$ref":"#/types/scaleway:containers/ContainerHealthCheckHttp:ContainerHealthCheckHttp"},"description":"HTTP health check configuration.\n"},"interval":{"type":"string","description":"Period between health checks (in seconds).\n"}},"type":"object","required":["failureThreshold","https","interval"]},"scaleway:containers/ContainerHealthCheckHttp:ContainerHealthCheckHttp":{"properties":{"path":{"type":"string","description":"Path to use for the HTTP health check.\n"}},"type":"object","required":["path"]},"scaleway:containers/ContainerScalingOption:ContainerScalingOption":{"properties":{"concurrentRequestsThreshold":{"type":"integer","description":"Scale depending on the number of concurrent requests being processed per container instance.\n"},"cpuUsageThreshold":{"type":"integer","description":"Scale depending on the CPU usage of a container instance.\n"},"memoryUsageThreshold":{"type":"integer","description":"Scale depending on the memory usage of a container instance.\n"}},"type":"object"},"scaleway:containers/TriggerNats:TriggerNats":{"properties":{"accountId":{"type":"string","description":"unique identifier of the Messaging and Queuing NATS account.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e)\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region where the Messaging and Queuing NATS account is enabled (defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e)\n","willReplaceOnChanges":true},"subject":{"type":"string","description":"The subject to listen to.\n","willReplaceOnChanges":true}},"type":"object","required":["subject"],"language":{"nodejs":{"requiredOutputs":["projectId","region","subject"]}}},"scaleway:containers/TriggerSqs:TriggerSqs":{"properties":{"namespaceId":{"type":"string","description":"ID of the Messaging and Queuing namespace. This argument is deprecated.\n","deprecationMessage":"The 'namespace_id' field is deprecated and will be removed in the next major version. It is no longer necessary to specify it"},"projectId":{"type":"string","description":"The ID of the project in which SQS is enabled, (defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e)\n","willReplaceOnChanges":true},"queue":{"type":"string","description":"The name of the SQS queue.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region where SQS is enabled (defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e)\n","willReplaceOnChanges":true}},"type":"object","required":["queue"],"language":{"nodejs":{"requiredOutputs":["projectId","queue","region"]}}},"scaleway:containers/getContainerHealthCheck:getContainerHealthCheck":{"properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive health check failures before considering the container unhealthy.\n"},"https":{"type":"array","items":{"$ref":"#/types/scaleway:containers/getContainerHealthCheckHttp:getContainerHealthCheckHttp"},"description":"HTTP health check configuration.\n"},"interval":{"type":"string","description":"Period between health checks (in seconds).\n"}},"type":"object","required":["failureThreshold","https","interval"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:containers/getContainerHealthCheckHttp:getContainerHealthCheckHttp":{"properties":{"path":{"type":"string","description":"Path to use for the HTTP health check.\n"}},"type":"object","required":["path"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:containers/getContainerScalingOption:getContainerScalingOption":{"properties":{"concurrentRequestsThreshold":{"type":"integer","description":"Scale depending on the number of concurrent requests being processed per container instance.\n"},"cpuUsageThreshold":{"type":"integer","description":"Scale depending on the CPU usage of a container instance.\n"},"memoryUsageThreshold":{"type":"integer","description":"Scale depending on the memory usage of a container instance.\n"}},"type":"object","required":["concurrentRequestsThreshold","cpuUsageThreshold","memoryUsageThreshold"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:databases/AclAclRule:AclAclRule":{"properties":{"description":{"type":"string","description":"A text describing this rule. Default description: `IP allowed`\n"},"ip":{"type":"string","description":"The IPv4 address or range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation). IPv6 is not supported by the Scaleway API.\n"}},"type":"object","required":["ip"],"language":{"nodejs":{"requiredOutputs":["description","ip"]}}},"scaleway:databases/InstanceLoadBalancer:InstanceLoadBalancer":{"properties":{"endpointId":{"type":"string","description":"The ID of the endpoint.\n"},"hostname":{"type":"string","description":"Hostname of the endpoint.\n"},"ip":{"type":"string","description":"IPv4 address on the network.\n"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"port":{"type":"integer","description":"Port in the Private Network.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpointId","hostname","ip","name","port"]}}},"scaleway:databases/InstanceLogsPolicy:InstanceLogsPolicy":{"properties":{"maxAgeRetention":{"type":"integer","description":"The max age (in days) of remote logs to keep on the Database Instance\n"},"totalDiskRetention":{"type":"integer","description":"The max disk size of remote logs to keep on the Database Instance.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxAgeRetention","totalDiskRetention"]}}},"scaleway:databases/InstancePrivateIp:InstancePrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"Version ID to use in upgrade requests.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:databases/InstancePrivateNetwork:InstancePrivateNetwork":{"properties":{"enableIpam":{"type":"boolean","description":"Whether or not the private network endpoint should be configured with IPAM\n"},"endpointId":{"type":"string","description":"The ID of the endpoint.\n"},"hostname":{"type":"string","description":"Hostname of the endpoint.\n"},"ip":{"type":"string","description":"IPv4 address on the network.\n"},"ipNet":{"type":"string","description":"The IP with the given mask within the private subnet\n"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"pnId":{"type":"string","description":"The private network ID\n"},"port":{"type":"integer","description":"Port in the Private Network.\n"},"zone":{"type":"string","description":"The zone you want to attach the resource to\n","willReplaceOnChanges":true}},"type":"object","required":["pnId"],"language":{"nodejs":{"requiredOutputs":["enableIpam","endpointId","hostname","ip","ipNet","name","pnId","port"]}}},"scaleway:databases/InstanceReadReplica:InstanceReadReplica":{"properties":{"ip":{"type":"string","description":"IPv4 address on the network.\n"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"port":{"type":"integer","description":"Port in the Private Network.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ip","name","port"]}}},"scaleway:databases/InstanceUpgradableVersion:InstanceUpgradableVersion":{"properties":{"id":{"type":"string","description":"Version ID to use in upgrade requests.\n"},"minorVersion":{"type":"string","description":"Minor version string (e.g., `15.5.0`).\n"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"version":{"type":"string","description":"Version string (e.g., `15.5`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","minorVersion","name","version"]}}},"scaleway:databases/ReadReplicaDirectAccess:ReadReplicaDirectAccess":{"properties":{"endpointId":{"type":"string","description":"The ID of the endpoint of the Read Replica.\n"},"hostname":{"type":"string","description":"Hostname of the endpoint. Only one of IP and hostname may be set.\n"},"ip":{"type":"string","description":"IPv4 address of the endpoint (IP address). Only one of IP and hostname may be set.\n"},"name":{"type":"string","description":"Name of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpointId","hostname","ip","name","port"]}}},"scaleway:databases/ReadReplicaPrivateNetwork:ReadReplicaPrivateNetwork":{"properties":{"enableIpam":{"type":"boolean","description":"If true, the IP network address within the private subnet is determined by the IP Address Management (IPAM) service.\n\n\u003e **Important:** One of \u003cspan pulumi-lang-nodejs=\"`serviceIp`\" pulumi-lang-dotnet=\"`ServiceIp`\" pulumi-lang-go=\"`serviceIp`\" pulumi-lang-python=\"`service_ip`\" pulumi-lang-yaml=\"`serviceIp`\" pulumi-lang-java=\"`serviceIp`\"\u003e`service_ip`\u003c/span\u003e or `enable_ipam=true` must be set.\n"},"endpointId":{"type":"string","description":"The ID of the endpoint of the Read Replica.\n"},"hostname":{"type":"string","description":"Hostname of the endpoint. Only one of IP and hostname may be set.\n"},"ip":{"type":"string","description":"IPv4 address of the endpoint (IP address). Only one of IP and hostname may be set.\n"},"name":{"type":"string","description":"Name of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"},"privateNetworkId":{"type":"string","description":"UUID of the Private Netork to be connected to the Read Replica.\n"},"serviceIp":{"type":"string","description":"The IP network address within the private subnet. This must be an IPv4 address with a CIDR notation. If not set, The IP network address within the private subnet is determined by the IP Address Management (IPAM) service.\n"},"zone":{"type":"string","description":"Private network zone\n"}},"type":"object","required":["privateNetworkId"],"language":{"nodejs":{"requiredOutputs":["enableIpam","endpointId","hostname","ip","name","port","privateNetworkId","serviceIp","zone"]}}},"scaleway:databases/getAclAclRule:getAclAclRule":{"properties":{"description":{"type":"string","description":"A simple text describing this rule\n"},"ip":{"type":"string","description":"The IPv4 address or range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation). IPv6 is not supported by the Scaleway API.\n"}},"type":"object","required":["description","ip"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:databases/getInstanceLoadBalancer:getInstanceLoadBalancer":{"properties":{"endpointId":{"type":"string","description":"The endpoint ID\n"},"hostname":{"type":"string","description":"The hostname of your endpoint\n"},"ip":{"type":"string","description":"The IP of your load balancer service\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"port":{"type":"integer","description":"The port of your load balancer service\n"}},"type":"object","required":["endpointId","hostname","ip","name","port"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:databases/getInstanceLogsPolicy:getInstanceLogsPolicy":{"properties":{"maxAgeRetention":{"type":"integer","description":"The max age (in days) of remote logs to keep on the Database Instance\n"},"totalDiskRetention":{"type":"integer","description":"The max disk size of remote logs to keep on the Database Instance.\n"}},"type":"object","required":["maxAgeRetention","totalDiskRetention"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:databases/getInstancePrivateIp:getInstancePrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address\n"},"id":{"type":"string","description":"The ID of the Database Instance.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:databases/getInstancePrivateNetwork:getInstancePrivateNetwork":{"properties":{"enableIpam":{"type":"boolean","description":"Whether or not the private network endpoint should be configured with IPAM\n"},"endpointId":{"type":"string","description":"The endpoint ID\n"},"hostname":{"type":"string","description":"The hostname of your endpoint\n"},"ip":{"type":"string","description":"The IP of your Instance within the private service\n"},"ipNet":{"type":"string","description":"The IP with the given mask within the private subnet\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"pnId":{"type":"string","description":"The private network ID\n"},"port":{"type":"integer","description":"The port of your private service\n"},"zone":{"type":"string","description":"The zone you want to attach the resource to\n"}},"type":"object","required":["enableIpam","endpointId","hostname","ip","ipNet","name","pnId","port","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:databases/getInstanceReadReplica:getInstanceReadReplica":{"properties":{"ip":{"type":"string","description":"IP of the replica\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"port":{"type":"integer","description":"Port of the replica\n"}},"type":"object","required":["ip","name","port"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:databases/getInstanceUpgradableVersion:getInstanceUpgradableVersion":{"properties":{"id":{"type":"string","description":"The ID of the Database Instance.\n"},"minorVersion":{"type":"string","description":"Minor version string\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"version":{"type":"string","description":"Version string\n"}},"type":"object","required":["id","minorVersion","name","version"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:datawarehouse/DeploymentPrivateNetwork:DeploymentPrivateNetwork":{"properties":{"dnsRecord":{"type":"string","description":"DNS record for the private endpoint.\n"},"id":{"type":"string","description":"The ID of the private endpoint.\n"},"pnId":{"type":"string","description":"The ID of the private network. Format: `{region}/{id}` or just `{id}`.\n","willReplaceOnChanges":true},"services":{"type":"array","items":{"$ref":"#/types/scaleway:datawarehouse/DeploymentPrivateNetworkService:DeploymentPrivateNetworkService"},"description":"List of services exposed on the private endpoint.\n"}},"type":"object","required":["pnId"],"language":{"nodejs":{"requiredOutputs":["dnsRecord","id","pnId","services"]}}},"scaleway:datawarehouse/DeploymentPrivateNetworkService:DeploymentPrivateNetworkService":{"properties":{"port":{"type":"integer","description":"TCP port number.\n"},"protocol":{"type":"string","description":"Service protocol (e.g., \"tcp\", \"https\", \"mysql\").\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port","protocol"]}}},"scaleway:datawarehouse/DeploymentPublicNetwork:DeploymentPublicNetwork":{"properties":{"dnsRecord":{"type":"string","description":"DNS record for the private endpoint.\n"},"id":{"type":"string","description":"The ID of the private endpoint.\n"},"services":{"type":"array","items":{"$ref":"#/types/scaleway:datawarehouse/DeploymentPublicNetworkService:DeploymentPublicNetworkService"},"description":"List of services exposed on the private endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dnsRecord","id","services"]}}},"scaleway:datawarehouse/DeploymentPublicNetworkService:DeploymentPublicNetworkService":{"properties":{"port":{"type":"integer","description":"TCP port number.\n"},"protocol":{"type":"string","description":"Service protocol (e.g., \"tcp\", \"https\", \"mysql\").\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["port","protocol"]}}},"scaleway:domain/RecordGeoIp:RecordGeoIp":{"properties":{"matches":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RecordGeoIpMatch:RecordGeoIpMatch"},"description":"The list of matches\n"}},"type":"object","required":["matches"]},"scaleway:domain/RecordGeoIpMatch:RecordGeoIpMatch":{"properties":{"continents":{"type":"array","items":{"type":"string"},"description":"List of continents (eg: EU for Europe, NA for North America, AS for Asia...). List of all continents code: https://api.scaleway.com/domain-private/v2beta1/continents\n"},"countries":{"type":"array","items":{"type":"string"},"description":"List of countries (eg: FR for France, US for the United States, GB for Great Britain...). List of all countries code: https://api.scaleway.com/domain-private/v2beta1/countries\n"},"data":{"type":"string","description":"The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).\n"}},"type":"object","required":["data"]},"scaleway:domain/RecordHttpService:RecordHttpService":{"properties":{"ips":{"type":"array","items":{"type":"string"},"description":"IPs to check\n"},"mustContain":{"type":"string","description":"Text to search\n"},"strategy":{"type":"string","description":"Strategy to return an IP from the IPs list\n"},"url":{"type":"string","description":"URL to match the\u003cspan pulumi-lang-nodejs=\" mustContain \" pulumi-lang-dotnet=\" MustContain \" pulumi-lang-go=\" mustContain \" pulumi-lang-python=\" must_contain \" pulumi-lang-yaml=\" mustContain \" pulumi-lang-java=\" mustContain \"\u003e must_contain \u003c/span\u003etext to validate an IP\n"},"userAgent":{"type":"string","description":"User-agent used when checking the URL\n"}},"type":"object","required":["ips","mustContain","strategy","url"]},"scaleway:domain/RecordView:RecordView":{"properties":{"data":{"type":"string","description":"The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).\n"},"subnet":{"type":"string","description":"The subnet of the view\n"}},"type":"object","required":["data","subnet"]},"scaleway:domain/RecordWeighted:RecordWeighted":{"properties":{"ip":{"type":"string","description":"The weighted IP\n"},"weight":{"type":"integer","description":"The weight of the IP\n"}},"type":"object","required":["ip","weight"]},"scaleway:domain/RegistrationAdministrativeContact:RegistrationAdministrativeContact":{"properties":{"addressLine1":{"type":"string","description":"Primary address line for the contact.\n"},"addressLine2":{"type":"string","description":"Secondary address line for the contact (optional).\n"},"city":{"type":"string","description":"City of the contact's address.\n"},"companyIdentificationCode":{"type":"string","description":"Company identification code (e.g., SIREN/SIRET in France) for the contact.\n"},"companyName":{"type":"string","description":"Name of the company associated with the contact (if applicable).\n"},"country":{"type":"string","description":"Country code of the contact's address (ISO format).\n"},"email":{"type":"string","description":"Primary email address of the contact.\n"},"emailAlt":{"type":"string","description":"Alternative email address for the contact.\n"},"extensionEu":{"$ref":"#/types/scaleway:domain/RegistrationAdministrativeContactExtensionEu:RegistrationAdministrativeContactExtensionEu","description":"Details specific to European domain extensions.\n"},"extensionFr":{"$ref":"#/types/scaleway:domain/RegistrationAdministrativeContactExtensionFr:RegistrationAdministrativeContactExtensionFr","description":"Details specific to French domain extensions.\n"},"extensionNls":{"type":"array","items":{"type":"string"},"description":"Extension details specific to Dutch domain registrations.\n"},"faxNumber":{"type":"string","description":"Fax number for the contact (if available).\n"},"firstname":{"type":"string","description":"First name of the contact.\n"},"lang":{"type":"string","description":"Preferred language of the contact (e.g., 'en_US', 'fr_FR').\n"},"lastname":{"type":"string","description":"Last name of the contact.\n"},"legalForm":{"type":"string","description":"Legal form of the contact (e.g., 'individual' or 'organization').\n"},"phoneNumber":{"type":"string","description":"Primary phone number of the contact.\n"},"resale":{"type":"boolean","description":"Indicates if the contact is used for resale purposes.\n"},"state":{"type":"string","description":"State or region of the contact.\n"},"vatIdentificationCode":{"type":"string","description":"VAT identification code of the contact, if applicable.\n"},"whoisOptIn":{"type":"boolean","description":"Indicates whether the contact has opted into WHOIS publishing.\n"},"zip":{"type":"string","description":"Postal code of the contact's address.\n"}},"type":"object","required":["addressLine1","city","companyIdentificationCode","country","email","firstname","lastname","legalForm","phoneNumber","vatIdentificationCode","zip"],"language":{"nodejs":{"requiredOutputs":["addressLine1","city","companyIdentificationCode","country","email","extensionEu","extensionFr","extensionNls","firstname","lang","lastname","legalForm","phoneNumber","vatIdentificationCode","zip"]}}},"scaleway:domain/RegistrationAdministrativeContactExtensionEu:RegistrationAdministrativeContactExtensionEu":{"properties":{"europeanCitizenship":{"type":"string","description":"Indicates the European citizenship of the contact.\n"}},"type":"object"},"scaleway:domain/RegistrationAdministrativeContactExtensionFr:RegistrationAdministrativeContactExtensionFr":{"properties":{"associationInfo":{"$ref":"#/types/scaleway:domain/RegistrationAdministrativeContactExtensionFrAssociationInfo:RegistrationAdministrativeContactExtensionFrAssociationInfo","description":"Association-specific information for the domain (French extension).\n"},"codeAuthAfnicInfo":{"$ref":"#/types/scaleway:domain/RegistrationAdministrativeContactExtensionFrCodeAuthAfnicInfo:RegistrationAdministrativeContactExtensionFrCodeAuthAfnicInfo","description":"AFNIC authorization information for the contact (French extension).\n"},"dunsInfo":{"$ref":"#/types/scaleway:domain/RegistrationAdministrativeContactExtensionFrDunsInfo:RegistrationAdministrativeContactExtensionFrDunsInfo","description":"DUNS information for the domain owner (specific to French domains).\n"},"individualInfo":{"$ref":"#/types/scaleway:domain/RegistrationAdministrativeContactExtensionFrIndividualInfo:RegistrationAdministrativeContactExtensionFrIndividualInfo","description":"Information about the individual registration for French domains.\n"},"mode":{"type":"string","description":"Mode of the French extension (e.g., 'individual', 'duns', 'association', etc.).\n"},"trademarkInfo":{"$ref":"#/types/scaleway:domain/RegistrationAdministrativeContactExtensionFrTrademarkInfo:RegistrationAdministrativeContactExtensionFrTrademarkInfo","description":"Trademark-related information for the domain (French extension).\n"}},"type":"object"},"scaleway:domain/RegistrationAdministrativeContactExtensionFrAssociationInfo:RegistrationAdministrativeContactExtensionFrAssociationInfo":{"properties":{"publicationJo":{"type":"string","description":"Publication date in the Official Journal (RFC3339 format) for association information.\n"},"publicationJoPage":{"type":"integer","description":"Page number of the publication in the Official Journal for association information.\n"}},"type":"object"},"scaleway:domain/RegistrationAdministrativeContactExtensionFrCodeAuthAfnicInfo:RegistrationAdministrativeContactExtensionFrCodeAuthAfnicInfo":{"properties":{"codeAuthAfnic":{"type":"string","description":"AFNIC authorization code for the contact (specific to French domains).\n"}},"type":"object"},"scaleway:domain/RegistrationAdministrativeContactExtensionFrDunsInfo:RegistrationAdministrativeContactExtensionFrDunsInfo":{"properties":{"dunsId":{"type":"string","description":"DUNS ID associated with the domain owner (for French domains).\n"},"localId":{"type":"string","description":"Local identifier of the domain owner (for French domains).\n"}},"type":"object"},"scaleway:domain/RegistrationAdministrativeContactExtensionFrIndividualInfo:RegistrationAdministrativeContactExtensionFrIndividualInfo":{"properties":{"whoisOptIn":{"type":"boolean","description":"Whether the individual contact has opted into WHOIS publishing.\n"}},"type":"object"},"scaleway:domain/RegistrationAdministrativeContactExtensionFrTrademarkInfo:RegistrationAdministrativeContactExtensionFrTrademarkInfo":{"properties":{"trademarkInpi":{"type":"string","description":"Trademark information from INPI (French extension).\n"}},"type":"object"},"scaleway:domain/RegistrationDsRecord:RegistrationDsRecord":{"properties":{"algorithm":{"type":"string","description":"The algorithm used for dnssec (e.g., rsasha256, ecdsap256sha256).\n"},"digests":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RegistrationDsRecordDigest:RegistrationDsRecordDigest"},"description":"Details about the digest.\n"},"keyId":{"type":"integer","description":"The identifier for the dnssec key.\n"},"publicKeys":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RegistrationDsRecordPublicKey:RegistrationDsRecordPublicKey"},"description":"Public key associated with the dnssec record.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["algorithm","digests","keyId","publicKeys"]}}},"scaleway:domain/RegistrationDsRecordDigest:RegistrationDsRecordDigest":{"properties":{"digest":{"type":"string","description":"The digest value.\n"},"publicKeys":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RegistrationDsRecordDigestPublicKey:RegistrationDsRecordDigestPublicKey"},"description":"The public key associated with the digest.\n"},"type":{"type":"string","description":"The digest type for the DS record (e.g., sha_1, sha_256, gost_r_34_11_94, sha_384).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["digest","publicKeys","type"]}}},"scaleway:domain/RegistrationDsRecordDigestPublicKey:RegistrationDsRecordDigestPublicKey":{"properties":{"key":{"type":"string","description":"The public key value.\n"}},"type":"object","required":["key"]},"scaleway:domain/RegistrationDsRecordPublicKey:RegistrationDsRecordPublicKey":{"properties":{"key":{"type":"string","description":"The public key value.\n"}},"type":"object","required":["key"]},"scaleway:domain/RegistrationOwnerContact:RegistrationOwnerContact":{"properties":{"addressLine1":{"type":"string","description":"Primary address line for the contact.\n"},"addressLine2":{"type":"string","description":"Secondary address line for the contact (optional).\n"},"city":{"type":"string","description":"City of the contact's address.\n"},"companyIdentificationCode":{"type":"string","description":"Company identification code (e.g., SIREN/SIRET in France) for the contact.\n"},"companyName":{"type":"string","description":"Name of the company associated with the contact (if applicable).\n"},"country":{"type":"string","description":"Country code of the contact's address (ISO format).\n"},"email":{"type":"string","description":"Primary email address of the contact.\n"},"emailAlt":{"type":"string","description":"Alternative email address for the contact.\n"},"extensionEu":{"$ref":"#/types/scaleway:domain/RegistrationOwnerContactExtensionEu:RegistrationOwnerContactExtensionEu","description":"Details specific to European domain extensions.\n"},"extensionFr":{"$ref":"#/types/scaleway:domain/RegistrationOwnerContactExtensionFr:RegistrationOwnerContactExtensionFr","description":"Details specific to French domain extensions.\n"},"extensionNls":{"type":"array","items":{"type":"string"},"description":"Extension details specific to Dutch domain registrations.\n"},"faxNumber":{"type":"string","description":"Fax number for the contact (if available).\n"},"firstname":{"type":"string","description":"First name of the contact.\n"},"lang":{"type":"string","description":"Preferred language of the contact (e.g., 'en_US', 'fr_FR').\n"},"lastname":{"type":"string","description":"Last name of the contact.\n"},"legalForm":{"type":"string","description":"Legal form of the contact (e.g., 'individual' or 'organization').\n"},"phoneNumber":{"type":"string","description":"Primary phone number of the contact.\n"},"resale":{"type":"boolean","description":"Indicates if the contact is used for resale purposes.\n"},"state":{"type":"string","description":"State or region of the contact.\n"},"vatIdentificationCode":{"type":"string","description":"VAT identification code of the contact, if applicable.\n"},"whoisOptIn":{"type":"boolean","description":"Indicates whether the contact has opted into WHOIS publishing.\n"},"zip":{"type":"string","description":"Postal code of the contact's address.\n"}},"type":"object","required":["addressLine1","city","companyIdentificationCode","country","email","firstname","lastname","legalForm","phoneNumber","vatIdentificationCode","zip"],"language":{"nodejs":{"requiredOutputs":["addressLine1","city","companyIdentificationCode","country","email","extensionEu","extensionFr","extensionNls","firstname","lang","lastname","legalForm","phoneNumber","vatIdentificationCode","zip"]}}},"scaleway:domain/RegistrationOwnerContactExtensionEu:RegistrationOwnerContactExtensionEu":{"properties":{"europeanCitizenship":{"type":"string","description":"Indicates the European citizenship of the contact.\n"}},"type":"object"},"scaleway:domain/RegistrationOwnerContactExtensionFr:RegistrationOwnerContactExtensionFr":{"properties":{"associationInfo":{"$ref":"#/types/scaleway:domain/RegistrationOwnerContactExtensionFrAssociationInfo:RegistrationOwnerContactExtensionFrAssociationInfo","description":"Association-specific information for the domain (French extension).\n"},"codeAuthAfnicInfo":{"$ref":"#/types/scaleway:domain/RegistrationOwnerContactExtensionFrCodeAuthAfnicInfo:RegistrationOwnerContactExtensionFrCodeAuthAfnicInfo","description":"AFNIC authorization information for the contact (French extension).\n"},"dunsInfo":{"$ref":"#/types/scaleway:domain/RegistrationOwnerContactExtensionFrDunsInfo:RegistrationOwnerContactExtensionFrDunsInfo","description":"DUNS information for the domain owner (specific to French domains).\n"},"individualInfo":{"$ref":"#/types/scaleway:domain/RegistrationOwnerContactExtensionFrIndividualInfo:RegistrationOwnerContactExtensionFrIndividualInfo","description":"Information about the individual registration for French domains.\n"},"mode":{"type":"string","description":"Mode of the French extension (e.g., 'individual', 'duns', 'association', etc.).\n"},"trademarkInfo":{"$ref":"#/types/scaleway:domain/RegistrationOwnerContactExtensionFrTrademarkInfo:RegistrationOwnerContactExtensionFrTrademarkInfo","description":"Trademark-related information for the domain (French extension).\n"}},"type":"object"},"scaleway:domain/RegistrationOwnerContactExtensionFrAssociationInfo:RegistrationOwnerContactExtensionFrAssociationInfo":{"properties":{"publicationJo":{"type":"string","description":"Publication date in the Official Journal (RFC3339 format) for association information.\n"},"publicationJoPage":{"type":"integer","description":"Page number of the publication in the Official Journal for association information.\n"}},"type":"object"},"scaleway:domain/RegistrationOwnerContactExtensionFrCodeAuthAfnicInfo:RegistrationOwnerContactExtensionFrCodeAuthAfnicInfo":{"properties":{"codeAuthAfnic":{"type":"string","description":"AFNIC authorization code for the contact (specific to French domains).\n"}},"type":"object"},"scaleway:domain/RegistrationOwnerContactExtensionFrDunsInfo:RegistrationOwnerContactExtensionFrDunsInfo":{"properties":{"dunsId":{"type":"string","description":"DUNS ID associated with the domain owner (for French domains).\n"},"localId":{"type":"string","description":"Local identifier of the domain owner (for French domains).\n"}},"type":"object"},"scaleway:domain/RegistrationOwnerContactExtensionFrIndividualInfo:RegistrationOwnerContactExtensionFrIndividualInfo":{"properties":{"whoisOptIn":{"type":"boolean","description":"Whether the individual contact has opted into WHOIS publishing.\n"}},"type":"object"},"scaleway:domain/RegistrationOwnerContactExtensionFrTrademarkInfo:RegistrationOwnerContactExtensionFrTrademarkInfo":{"properties":{"trademarkInpi":{"type":"string","description":"Trademark information from INPI (French extension).\n"}},"type":"object"},"scaleway:domain/RegistrationTechnicalContact:RegistrationTechnicalContact":{"properties":{"addressLine1":{"type":"string","description":"Primary address line for the contact.\n"},"addressLine2":{"type":"string","description":"Secondary address line for the contact (optional).\n"},"city":{"type":"string","description":"City of the contact's address.\n"},"companyIdentificationCode":{"type":"string","description":"Company identification code (e.g., SIREN/SIRET in France) for the contact.\n"},"companyName":{"type":"string","description":"Name of the company associated with the contact (if applicable).\n"},"country":{"type":"string","description":"Country code of the contact's address (ISO format).\n"},"email":{"type":"string","description":"Primary email address of the contact.\n"},"emailAlt":{"type":"string","description":"Alternative email address for the contact.\n"},"extensionEu":{"$ref":"#/types/scaleway:domain/RegistrationTechnicalContactExtensionEu:RegistrationTechnicalContactExtensionEu","description":"Details specific to European domain extensions.\n"},"extensionFr":{"$ref":"#/types/scaleway:domain/RegistrationTechnicalContactExtensionFr:RegistrationTechnicalContactExtensionFr","description":"Details specific to French domain extensions.\n"},"extensionNls":{"type":"array","items":{"type":"string"},"description":"Extension details specific to Dutch domain registrations.\n"},"faxNumber":{"type":"string","description":"Fax number for the contact (if available).\n"},"firstname":{"type":"string","description":"First name of the contact.\n"},"lang":{"type":"string","description":"Preferred language of the contact (e.g., 'en_US', 'fr_FR').\n"},"lastname":{"type":"string","description":"Last name of the contact.\n"},"legalForm":{"type":"string","description":"Legal form of the contact (e.g., 'individual' or 'organization').\n"},"phoneNumber":{"type":"string","description":"Primary phone number of the contact.\n"},"resale":{"type":"boolean","description":"Indicates if the contact is used for resale purposes.\n"},"state":{"type":"string","description":"State or region of the contact.\n"},"vatIdentificationCode":{"type":"string","description":"VAT identification code of the contact, if applicable.\n"},"whoisOptIn":{"type":"boolean","description":"Indicates whether the contact has opted into WHOIS publishing.\n"},"zip":{"type":"string","description":"Postal code of the contact's address.\n"}},"type":"object","required":["addressLine1","city","companyIdentificationCode","country","email","firstname","lastname","legalForm","phoneNumber","vatIdentificationCode","zip"],"language":{"nodejs":{"requiredOutputs":["addressLine1","city","companyIdentificationCode","country","email","extensionEu","extensionFr","extensionNls","firstname","lang","lastname","legalForm","phoneNumber","vatIdentificationCode","zip"]}}},"scaleway:domain/RegistrationTechnicalContactExtensionEu:RegistrationTechnicalContactExtensionEu":{"properties":{"europeanCitizenship":{"type":"string","description":"Indicates the European citizenship of the contact.\n"}},"type":"object"},"scaleway:domain/RegistrationTechnicalContactExtensionFr:RegistrationTechnicalContactExtensionFr":{"properties":{"associationInfo":{"$ref":"#/types/scaleway:domain/RegistrationTechnicalContactExtensionFrAssociationInfo:RegistrationTechnicalContactExtensionFrAssociationInfo","description":"Association-specific information for the domain (French extension).\n"},"codeAuthAfnicInfo":{"$ref":"#/types/scaleway:domain/RegistrationTechnicalContactExtensionFrCodeAuthAfnicInfo:RegistrationTechnicalContactExtensionFrCodeAuthAfnicInfo","description":"AFNIC authorization information for the contact (French extension).\n"},"dunsInfo":{"$ref":"#/types/scaleway:domain/RegistrationTechnicalContactExtensionFrDunsInfo:RegistrationTechnicalContactExtensionFrDunsInfo","description":"DUNS information for the domain owner (specific to French domains).\n"},"individualInfo":{"$ref":"#/types/scaleway:domain/RegistrationTechnicalContactExtensionFrIndividualInfo:RegistrationTechnicalContactExtensionFrIndividualInfo","description":"Information about the individual registration for French domains.\n"},"mode":{"type":"string","description":"Mode of the French extension (e.g., 'individual', 'duns', 'association', etc.).\n"},"trademarkInfo":{"$ref":"#/types/scaleway:domain/RegistrationTechnicalContactExtensionFrTrademarkInfo:RegistrationTechnicalContactExtensionFrTrademarkInfo","description":"Trademark-related information for the domain (French extension).\n"}},"type":"object"},"scaleway:domain/RegistrationTechnicalContactExtensionFrAssociationInfo:RegistrationTechnicalContactExtensionFrAssociationInfo":{"properties":{"publicationJo":{"type":"string","description":"Publication date in the Official Journal (RFC3339 format) for association information.\n"},"publicationJoPage":{"type":"integer","description":"Page number of the publication in the Official Journal for association information.\n"}},"type":"object"},"scaleway:domain/RegistrationTechnicalContactExtensionFrCodeAuthAfnicInfo:RegistrationTechnicalContactExtensionFrCodeAuthAfnicInfo":{"properties":{"codeAuthAfnic":{"type":"string","description":"AFNIC authorization code for the contact (specific to French domains).\n"}},"type":"object"},"scaleway:domain/RegistrationTechnicalContactExtensionFrDunsInfo:RegistrationTechnicalContactExtensionFrDunsInfo":{"properties":{"dunsId":{"type":"string","description":"DUNS ID associated with the domain owner (for French domains).\n"},"localId":{"type":"string","description":"Local identifier of the domain owner (for French domains).\n"}},"type":"object"},"scaleway:domain/RegistrationTechnicalContactExtensionFrIndividualInfo:RegistrationTechnicalContactExtensionFrIndividualInfo":{"properties":{"whoisOptIn":{"type":"boolean","description":"Whether the individual contact has opted into WHOIS publishing.\n"}},"type":"object"},"scaleway:domain/RegistrationTechnicalContactExtensionFrTrademarkInfo:RegistrationTechnicalContactExtensionFrTrademarkInfo":{"properties":{"trademarkInpi":{"type":"string","description":"Trademark information from INPI (French extension).\n"}},"type":"object"},"scaleway:domain/getRecordGeoIp:getRecordGeoIp":{"properties":{"matches":{"type":"array","items":{"$ref":"#/types/scaleway:domain/getRecordGeoIpMatch:getRecordGeoIpMatch"},"description":"The list of matches\n"}},"type":"object","required":["matches"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:domain/getRecordGeoIpMatch:getRecordGeoIpMatch":{"properties":{"continents":{"type":"array","items":{"type":"string"},"description":"List of continents (eg: EU for Europe, NA for North America, AS for Asia...). List of all continents code: https://api.scaleway.com/domain-private/v2beta1/continents\n"},"countries":{"type":"array","items":{"type":"string"},"description":"List of countries (eg: FR for France, US for the United States, GB for Great Britain...). List of all countries code: https://api.scaleway.com/domain-private/v2beta1/countries\n"},"data":{"type":"string","description":"The content of the record (e.g., an IPv4 address for an `A` record or a string for a `TXT` record). Cannot be used with \u003cspan pulumi-lang-nodejs=\"`recordId`\" pulumi-lang-dotnet=\"`RecordId`\" pulumi-lang-go=\"`recordId`\" pulumi-lang-python=\"`record_id`\" pulumi-lang-yaml=\"`recordId`\" pulumi-lang-java=\"`recordId`\"\u003e`record_id`\u003c/span\u003e.\n"}},"type":"object","required":["continents","countries","data"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:domain/getRecordHttpService:getRecordHttpService":{"properties":{"ips":{"type":"array","items":{"type":"string"},"description":"IPs to check\n"},"mustContain":{"type":"string","description":"Text to search\n"},"strategy":{"type":"string","description":"Strategy to return an IP from the IPs list\n"},"url":{"type":"string","description":"URL to match the\u003cspan pulumi-lang-nodejs=\" mustContain \" pulumi-lang-dotnet=\" MustContain \" pulumi-lang-go=\" mustContain \" pulumi-lang-python=\" must_contain \" pulumi-lang-yaml=\" mustContain \" pulumi-lang-java=\" mustContain \"\u003e must_contain \u003c/span\u003etext to validate an IP\n"},"userAgent":{"type":"string","description":"User-agent used when checking the URL\n"}},"type":"object","required":["ips","mustContain","strategy","url","userAgent"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:domain/getRecordView:getRecordView":{"properties":{"data":{"type":"string","description":"The content of the record (e.g., an IPv4 address for an `A` record or a string for a `TXT` record). Cannot be used with \u003cspan pulumi-lang-nodejs=\"`recordId`\" pulumi-lang-dotnet=\"`RecordId`\" pulumi-lang-go=\"`recordId`\" pulumi-lang-python=\"`record_id`\" pulumi-lang-yaml=\"`recordId`\" pulumi-lang-java=\"`recordId`\"\u003e`record_id`\u003c/span\u003e.\n"},"subnet":{"type":"string","description":"The subnet of the view\n"}},"type":"object","required":["data","subnet"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:domain/getRecordWeighted:getRecordWeighted":{"properties":{"ip":{"type":"string","description":"The weighted IP\n"},"weight":{"type":"integer","description":"The weight of the IP\n"}},"type":"object","required":["ip","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:edgeservices/BackendStageLbBackendConfig:BackendStageLbBackendConfig":{"properties":{"lbConfig":{"$ref":"#/types/scaleway:edgeservices/BackendStageLbBackendConfigLbConfig:BackendStageLbBackendConfigLbConfig","description":"The Load Balancer config.\n"}},"type":"object"},"scaleway:edgeservices/BackendStageLbBackendConfigLbConfig:BackendStageLbBackendConfigLbConfig":{"properties":{"domainName":{"type":"string","description":"The Fully Qualified Domain Name (in the format subdomain.example.com) to use in HTTP requests sent towards your Load Balancer.\n"},"frontendId":{"type":"string","description":"The ID of the frontend.\n"},"hasWebsocket":{"type":"boolean","description":"Defines whether to forward websocket requests to the load balancer.\n"},"id":{"type":"string","description":"The ID of the Load Balancer.\n"},"isSsl":{"type":"boolean","description":"Defines whether the Load Balancer's frontend handles SSL connections.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Load Balancer.\n","willReplaceOnChanges":true}},"type":"object"},"scaleway:edgeservices/BackendStageS3BackendConfig:BackendStageS3BackendConfig":{"properties":{"bucketName":{"type":"string","description":"The name of the Bucket.\n"},"bucketRegion":{"type":"string","description":"The region of the Bucket.\n"},"isWebsite":{"type":"boolean","description":"Defines whether the bucket website feature is enabled.\n"}},"type":"object"},"scaleway:edgeservices/CacheStagePurgeRequest:CacheStagePurgeRequest":{"properties":{"all":{"type":"boolean","description":"Defines whether to purge all content.\n"},"assets":{"type":"array","items":{"type":"string"},"description":"The list of asserts to purge.\n"},"pipelineId":{"type":"string","description":"The pipeline ID in which the purge request will be created.\n"}},"type":"object"},"scaleway:edgeservices/RouteStageRule:RouteStageRule":{"properties":{"backendStageId":{"type":"string","description":"The ID of the backend stage that requests matching the rule should be forwarded to.\n"},"ruleHttpMatch":{"$ref":"#/types/scaleway:edgeservices/RouteStageRuleRuleHttpMatch:RouteStageRuleRuleHttpMatch","description":"The rule condition to be matched. Requests matching the condition defined here will be directly forwarded to the backend specified by the \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e field. Requests that do not match will be checked by the next rule's condition.\n"}},"type":"object","required":["backendStageId"]},"scaleway:edgeservices/RouteStageRuleRuleHttpMatch:RouteStageRuleRuleHttpMatch":{"properties":{"methodFilters":{"type":"array","items":{"type":"string"},"description":"HTTP methods to filter for. A request using any of these methods will be considered to match the rule. Possible values are \u003cspan pulumi-lang-nodejs=\"`get`\" pulumi-lang-dotnet=\"`Get`\" pulumi-lang-go=\"`get`\" pulumi-lang-python=\"`get`\" pulumi-lang-yaml=\"`get`\" pulumi-lang-java=\"`get`\"\u003e`get`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`post`\" pulumi-lang-dotnet=\"`Post`\" pulumi-lang-go=\"`post`\" pulumi-lang-python=\"`post`\" pulumi-lang-yaml=\"`post`\" pulumi-lang-java=\"`post`\"\u003e`post`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`put`\" pulumi-lang-dotnet=\"`Put`\" pulumi-lang-go=\"`put`\" pulumi-lang-python=\"`put`\" pulumi-lang-yaml=\"`put`\" pulumi-lang-java=\"`put`\"\u003e`put`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`patch`\" pulumi-lang-dotnet=\"`Patch`\" pulumi-lang-go=\"`patch`\" pulumi-lang-python=\"`patch`\" pulumi-lang-yaml=\"`patch`\" pulumi-lang-java=\"`patch`\"\u003e`patch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`delete`\" pulumi-lang-dotnet=\"`Delete`\" pulumi-lang-go=\"`delete`\" pulumi-lang-python=\"`delete`\" pulumi-lang-yaml=\"`delete`\" pulumi-lang-java=\"`delete`\"\u003e`delete`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`head`\" pulumi-lang-dotnet=\"`Head`\" pulumi-lang-go=\"`head`\" pulumi-lang-python=\"`head`\" pulumi-lang-yaml=\"`head`\" pulumi-lang-java=\"`head`\"\u003e`head`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e. All methods will match if none is provided.\n"},"pathFilter":{"$ref":"#/types/scaleway:edgeservices/RouteStageRuleRuleHttpMatchPathFilter:RouteStageRuleRuleHttpMatchPathFilter","description":"HTTP URL path to filter for. A request whose path matches the given filter will be considered to match the rule. All paths will match if none is provided.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["methodFilters"]}}},"scaleway:edgeservices/RouteStageRuleRuleHttpMatchPathFilter:RouteStageRuleRuleHttpMatchPathFilter":{"properties":{"pathFilterType":{"type":"string","description":"The type of filter to match for the HTTP URL path. For now, all path filters must be written in regex and use the \u003cspan pulumi-lang-nodejs=\"`regex`\" pulumi-lang-dotnet=\"`Regex`\" pulumi-lang-go=\"`regex`\" pulumi-lang-python=\"`regex`\" pulumi-lang-yaml=\"`regex`\" pulumi-lang-java=\"`regex`\"\u003e`regex`\u003c/span\u003e type.\n"},"value":{"type":"string","description":"The value to be matched for the HTTP URL path.\n"}},"type":"object","required":["pathFilterType","value"]},"scaleway:edgeservices/TlsStageSecret:TlsStageSecret":{"properties":{"region":{"type":"string","description":"The region of the secret.\n","willReplaceOnChanges":true},"secretId":{"type":"string","description":"The ID of the Secret\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["secretId"]}}},"scaleway:elasticmetal/ServerIp:ServerIp":{"properties":{"address":{"type":"string","description":"The address of the IPv6.\n"},"id":{"type":"string","description":"The ID of the IPv6.\n"},"reverse":{"type":"string","description":"The reverse of the IPv6.\n"},"version":{"type":"string","description":"The type of the IPv6.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id","reverse","version"]}}},"scaleway:elasticmetal/ServerIpv4:ServerIpv4":{"properties":{"address":{"type":"string","description":"The address of the IPv6.\n"},"id":{"type":"string","description":"The ID of the IPv6.\n"},"reverse":{"type":"string","description":"The reverse of the IPv6.\n"},"version":{"type":"string","description":"The type of the IPv6.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id","reverse","version"]}}},"scaleway:elasticmetal/ServerIpv6:ServerIpv6":{"properties":{"address":{"type":"string","description":"The address of the IPv6.\n"},"id":{"type":"string","description":"The ID of the IPv6.\n"},"reverse":{"type":"string","description":"The reverse of the IPv6.\n"},"version":{"type":"string","description":"The type of the IPv6.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id","reverse","version"]}}},"scaleway:elasticmetal/ServerOption:ServerOption":{"properties":{"expiresAt":{"type":"string","description":"The auto expiration date for compatible options\n"},"id":{"type":"string","description":"The id of the option to enable. Use [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-options-list-options) to find the available options IDs.\n"},"name":{"type":"string","description":"The name of the server.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["expiresAt","id","name"]}}},"scaleway:elasticmetal/ServerPrivateIp:ServerPrivateIp":{"properties":{"address":{"type":"string","description":"The address of the IPv6.\n"},"id":{"type":"string","description":"The ID of the IPv6.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:elasticmetal/ServerPrivateNetwork:ServerPrivateNetwork":{"properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the private network.\n"},"id":{"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"},"mappingId":{"type":"string","description":"The ID of the Server-to-Private Network mapping.\n"},"status":{"type":"string","description":"The private network status.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the private network.\n"},"vlan":{"type":"integer","description":"The VLAN ID associated to the private network.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["createdAt","id","ipamIpIds","mappingId","status","updatedAt","vlan"]}}},"scaleway:elasticmetal/getIpsIp:getIpsIp":{"properties":{"createdAt":{"type":"string","description":"The date on which the flexible IP was created (RFC 3339 format).\n"},"description":{"type":"string","description":"The description of the flexible IP.\n"},"id":{"type":"string","description":"The MAC address ID.\n"},"ipAddress":{"type":"string","description":"IP address of the flexible IP\n"},"macAddresses":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/getIpsIpMacAddress:getIpsIpMacAddress"},"description":"The MAC address of the Virtual MAC.\n"},"organizationId":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the IP is in.\n"},"projectId":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is in.\n"},"reverse":{"type":"string","description":"The reverse domain associated with this IP.\n"},"status":{"type":"string","description":"The status of virtual MAC.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. IPs with these exact tags are listed.\n"},"updatedAt":{"type":"string","description":"The date on which the flexible IP was last updated (RFC 3339 format).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which IPs exist.\n"}},"type":"object","required":["createdAt","description","id","ipAddress","macAddresses","organizationId","projectId","reverse","status","tags","updatedAt","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:elasticmetal/getIpsIpMacAddress:getIpsIpMacAddress":{"properties":{"createdAt":{"type":"string","description":"The date on which the flexible IP was created (RFC 3339 format).\n"},"id":{"type":"string","description":"The MAC address ID.\n"},"macAddress":{"type":"string","description":"The MAC address of the Virtual MAC.\n"},"macType":{"type":"string","description":"The type of virtual MAC.\n"},"status":{"type":"string","description":"The status of virtual MAC.\n"},"updatedAt":{"type":"string","description":"The date on which the flexible IP was last updated (RFC 3339 format).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which IPs exist.\n"}},"type":"object","required":["createdAt","id","macAddress","macType","status","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:elasticmetal/getOfferCpu:getOfferCpu":{"properties":{"coreCount":{"type":"integer","description":"Number of core on this CPU.\n"},"frequency":{"type":"integer","description":"Frequency of the memory in MHz.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"threadCount":{"type":"integer","description":"Number of thread on this CPU.\n"}},"type":"object","required":["coreCount","frequency","name","threadCount"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:elasticmetal/getOfferDisk:getOfferDisk":{"properties":{"capacity":{"type":"integer","description":"Capacity of the memory in GB.\n"},"type":{"type":"string","description":"Type of memory.\n"}},"type":"object","required":["capacity","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:elasticmetal/getOfferMemory:getOfferMemory":{"properties":{"capacity":{"type":"integer","description":"Capacity of the memory in GB.\n"},"frequency":{"type":"integer","description":"Frequency of the memory in MHz.\n"},"isEcc":{"type":"boolean","description":"True if error-correcting code is available on this memory.\n"},"type":{"type":"string","description":"Type of memory.\n"}},"type":"object","required":["capacity","frequency","isEcc","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:elasticmetal/getServerIp:getServerIp":{"properties":{"address":{"type":"string","description":"The IPv6 address\n"},"id":{"type":"string","description":"The ID of the server.\n"},"reverse":{"type":"string","description":"The Reverse of the IPv6\n"},"version":{"type":"string","description":"The version of the IPv6\n"}},"type":"object","required":["address","id","reverse","version"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:elasticmetal/getServerIpv4:getServerIpv4":{"properties":{"address":{"type":"string","description":"The IPv6 address\n"},"id":{"type":"string","description":"The ID of the server.\n"},"reverse":{"type":"string","description":"The Reverse of the IPv6\n"},"version":{"type":"string","description":"The version of the IPv6\n"}},"type":"object","required":["address","id","reverse","version"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:elasticmetal/getServerIpv6:getServerIpv6":{"properties":{"address":{"type":"string","description":"The IPv6 address\n"},"id":{"type":"string","description":"The ID of the server.\n"},"reverse":{"type":"string","description":"The Reverse of the IPv6\n"},"version":{"type":"string","description":"The version of the IPv6\n"}},"type":"object","required":["address","id","reverse","version"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:elasticmetal/getServerOption:getServerOption":{"properties":{"expiresAt":{"type":"string","description":"Auto expire the option after this date\n"},"id":{"type":"string","description":"The ID of the server.\n"},"name":{"type":"string","description":"The server name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`serverId`\" pulumi-lang-dotnet=\"`ServerId`\" pulumi-lang-go=\"`serverId`\" pulumi-lang-python=\"`server_id`\" pulumi-lang-yaml=\"`serverId`\" pulumi-lang-java=\"`serverId`\"\u003e`server_id`\u003c/span\u003e should be specified.\n"}},"type":"object","required":["expiresAt","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:elasticmetal/getServerPrivateIp:getServerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address\n"},"id":{"type":"string","description":"The ID of the server.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:elasticmetal/getServerPrivateNetwork:getServerPrivateNetwork":{"properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the private network\n"},"id":{"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"},"mappingId":{"type":"string","description":"The ID of the Server-to-Private Network mapping\n"},"status":{"type":"string","description":"The private network status\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the private network\n"},"vlan":{"type":"integer","description":"The VLAN ID associated to the private network\n"}},"type":"object","required":["createdAt","id","ipamIpIds","mappingId","status","updatedAt","vlan"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:functions/TriggerNats:TriggerNats":{"properties":{"accountId":{"type":"string","description":"unique identifier of the Messaging and Queuing NATS account.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e)\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region where the Messaging and Queuing NATS account is enabled (defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e)\n","willReplaceOnChanges":true},"subject":{"type":"string","description":"The subject to listen to.\n","willReplaceOnChanges":true}},"type":"object","required":["subject"],"language":{"nodejs":{"requiredOutputs":["projectId","region","subject"]}}},"scaleway:functions/TriggerSqs:TriggerSqs":{"properties":{"namespaceId":{"type":"string","description":"ID of the Messaging and Queuing namespace. This argument is deprecated.\n","deprecationMessage":"The 'namespace_id' field is deprecated and will be removed in the next major version. It is no longer necessary to specify it"},"projectId":{"type":"string","description":"The ID of the project in which SQS is enabled, (defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e)\n","willReplaceOnChanges":true},"queue":{"type":"string","description":"The name of the SQS queue.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region where SQS is enabled (defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e)\n","willReplaceOnChanges":true}},"type":"object","required":["queue"],"language":{"nodejs":{"requiredOutputs":["projectId","queue","region"]}}},"scaleway:hosting/HostingCpanelUrl:HostingCpanelUrl":{"properties":{"dashboard":{"type":"string","description":"The URL of the Dashboard.\n"},"webmail":{"type":"string","description":"The URL of the Webmail interface.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dashboard","webmail"]}}},"scaleway:hosting/HostingNameServer:HostingNameServer":{"properties":{"hostname":{"type":"string","description":"Hostname of the server\n"},"isDefault":{"type":"boolean","description":"Whether or not the webhosting is the default one\n"},"status":{"type":"string","description":"The hosting status.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["hostname","isDefault","status"]}}},"scaleway:hosting/HostingOption:HostingOption":{"properties":{"id":{"type":"string","description":"The option ID.\n"},"name":{"type":"string","description":"The option name.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name"]}}},"scaleway:hosting/HostingRecord:HostingRecord":{"properties":{"name":{"type":"string","description":"The option name.\n"},"priority":{"type":"integer","description":"Priority of DNS records associated with the webhosting.\n"},"status":{"type":"string","description":"The hosting status.\n"},"ttl":{"type":"integer","description":"Time to live in seconds of the record\n"},"type":{"type":"string","description":"Type of the DNS record\n"},"value":{"type":"string","description":"Value of the DNS record\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","priority","status","ttl","type","value"]}}},"scaleway:hosting/getHostingCpanelUrl:getHostingCpanelUrl":{"properties":{"dashboard":{"type":"string","description":"URL to connect to dashboard interface\n"},"webmail":{"type":"string","description":"URL to connect to Webmail interface\n"}},"type":"object","required":["dashboard","webmail"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:hosting/getHostingNameServer:getHostingNameServer":{"properties":{"hostname":{"type":"string","description":"Hostname of the server\n"},"isDefault":{"type":"boolean","description":"Whether or not the webhosting is the default one\n"},"status":{"type":"string","description":"Status of the nameserver\n"}},"type":"object","required":["hostname","isDefault","status"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:hosting/getHostingOption:getHostingOption":{"properties":{"id":{"type":"string","description":"ID of the active option\n"},"name":{"type":"string","description":"Name of the option\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:hosting/getHostingRecord:getHostingRecord":{"properties":{"name":{"type":"string","description":"Name of the DNS record\n"},"priority":{"type":"integer","description":"Priority of DNS records associated with the webhosting.\n"},"status":{"type":"string","description":"Status of the hosting record\n"},"ttl":{"type":"integer","description":"Time to live in seconds of the record\n"},"type":{"type":"string","description":"Type of the DNS record\n"},"value":{"type":"string","description":"Value of the DNS record\n"}},"type":"object","required":["name","priority","status","ttl","type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:hosting/getOfferOffer:getOfferOffer":{"properties":{"available":{"type":"boolean","description":"Indicates if the offer is available.\n"},"billingOperationPath":{"type":"string","description":"The billing operation identifier for the option.\n"},"controlPanelName":{"type":"string","description":"The name of the control panel (e.g., Cpanel or Plesk).\n"},"endOfLife":{"type":"boolean","description":"Indicates if the offer is deprecated or no longer supported.\n"},"id":{"type":"string","description":"The unique identifier of the option.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:hosting/getOfferOfferOption:getOfferOfferOption"},"description":"A list of available options for the offer:\n"},"price":{"type":"string","description":"The offer price.\n"},"quotaWarning":{"type":"string","description":"Warning information regarding quota limitations for the option.\n"}},"type":"object","required":["available","billingOperationPath","controlPanelName","endOfLife","id","name","options","price","quotaWarning"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:hosting/getOfferOfferOption:getOfferOfferOption":{"properties":{"billingOperationPath":{"type":"string","description":"The billing operation identifier for the option.\n"},"currentValue":{"type":"integer","description":"The current value set for the option.\n"},"id":{"type":"string","description":"The unique identifier of the option.\n"},"maxValue":{"type":"integer","description":"The maximum allowed value for the option.\n"},"minValue":{"type":"integer","description":"The minimum value for the option.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"price":{"type":"string","description":"The offer price.\n"},"quotaWarning":{"type":"string","description":"Warning information regarding quota limitations for the option.\n"}},"type":"object","required":["billingOperationPath","currentValue","id","maxValue","minValue","name","price","quotaWarning"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:hosting/getOfferProduct:getOfferProduct":{"properties":{"databasesQuota":{"type":"integer","description":"The quota of databases.\n"},"emailAccountsQuota":{"type":"integer","description":"The quota of email accounts.\n"},"emailStorageQuota":{"type":"integer","description":"The quota of email storage.\n"},"hostingStorageQuota":{"type":"integer","description":"The quota of hosting storage.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"option":{"type":"boolean","description":"The product option.\n"},"ram":{"type":"integer","description":"The capacity of the memory in GB.\n"},"supportIncluded":{"type":"boolean","description":"If support is included.\n"},"vCpu":{"type":"integer","description":"The number of cores.\n"}},"type":"object","required":["databasesQuota","emailAccountsQuota","emailStorageQuota","hostingStorageQuota","name","option","ram","supportIncluded","vCpu"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:iam/PolicyRule:PolicyRule":{"properties":{"condition":{"type":"string","description":"The condition of the rule.\n\n**_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g:\n\n```shell\nscw iam permission-set list\n```\n"},"organizationId":{"type":"string","description":"ID of organization scoped to the rule, this can be used to create a rule for all projects in an organization.\n"},"permissionSetNames":{"type":"array","items":{"type":"string"},"description":"Names of permission sets bind to the rule.\n"},"projectIds":{"type":"array","items":{"type":"string"},"description":"List of project IDs scoped to the rule.\n\n\u003e **Important** One \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`projectIds`\" pulumi-lang-dotnet=\"`ProjectIds`\" pulumi-lang-go=\"`projectIds`\" pulumi-lang-python=\"`project_ids`\" pulumi-lang-yaml=\"`projectIds`\" pulumi-lang-java=\"`projectIds`\"\u003e`project_ids`\u003c/span\u003e must be set per rule.\n"}},"type":"object","required":["permissionSetNames"]},"scaleway:iam/getPolicyRule:getPolicyRule":{"properties":{"condition":{"type":"string","description":"The condition of the rule.\n"},"organizationId":{"type":"string","description":"ID of organization scoped to the rule.\n"},"permissionSetNames":{"type":"array","items":{"type":"string"},"description":"Names of permission sets bound to the rule.\n"},"projectIds":{"type":"array","items":{"type":"string"},"description":"List of project IDs scoped to the rule.\n"}},"type":"object","required":["condition","organizationId","permissionSetNames","projectIds"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/AppleSiliconServerPrivateIp:AppleSiliconServerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:index/AppleSiliconServerPrivateNetwork:AppleSiliconServerPrivateNetwork":{"properties":{"createdAt":{"type":"string","description":"The date and time the private network was created.\n"},"id":{"type":"string","description":"The private network ID\n"},"ipamIpIds":{"type":"array","items":{"type":"string"},"description":"A list of IPAM IP IDs to attach to the server.\n"},"status":{"type":"string","description":"The current status of the private network.\n"},"updatedAt":{"type":"string","description":"The date and time the private network was last updated.\n"},"vlan":{"type":"integer","description":"The VLAN ID associated with the private network.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["createdAt","id","ipamIpIds","status","updatedAt","vlan"]}}},"scaleway:index/BaremetalServerIp:BaremetalServerIp":{"properties":{"address":{"type":"string","description":"The address of the IPv6.\n"},"id":{"type":"string","description":"The ID of the IPv6.\n"},"reverse":{"type":"string","description":"The reverse of the IPv6.\n"},"version":{"type":"string","description":"The type of the IPv6.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id","reverse","version"]}}},"scaleway:index/BaremetalServerIpv4:BaremetalServerIpv4":{"properties":{"address":{"type":"string","description":"The address of the IPv6.\n"},"id":{"type":"string","description":"The ID of the IPv6.\n"},"reverse":{"type":"string","description":"The reverse of the IPv6.\n"},"version":{"type":"string","description":"The type of the IPv6.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id","reverse","version"]}}},"scaleway:index/BaremetalServerIpv6:BaremetalServerIpv6":{"properties":{"address":{"type":"string","description":"The address of the IPv6.\n"},"id":{"type":"string","description":"The ID of the IPv6.\n"},"reverse":{"type":"string","description":"The reverse of the IPv6.\n"},"version":{"type":"string","description":"The type of the IPv6.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id","reverse","version"]}}},"scaleway:index/BaremetalServerOption:BaremetalServerOption":{"properties":{"expiresAt":{"type":"string","description":"The auto expiration date for compatible options\n"},"id":{"type":"string","description":"The id of the option to enable. Use [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-options-list-options) to find the available options IDs.\n"},"name":{"type":"string","description":"The name of the server.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["expiresAt","id","name"]}}},"scaleway:index/BaremetalServerPrivateIp:BaremetalServerPrivateIp":{"properties":{"address":{"type":"string","description":"The address of the IPv6.\n"},"id":{"type":"string","description":"The ID of the IPv6.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:index/BaremetalServerPrivateNetwork:BaremetalServerPrivateNetwork":{"properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the private network.\n"},"id":{"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"},"mappingId":{"type":"string","description":"The ID of the Server-to-Private Network mapping.\n"},"status":{"type":"string","description":"The private network status.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the private network.\n"},"vlan":{"type":"integer","description":"The VLAN ID associated to the private network.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["createdAt","id","ipamIpIds","mappingId","status","updatedAt","vlan"]}}},"scaleway:index/BlockSnapshotExport:BlockSnapshotExport":{"properties":{"bucket":{"type":"string","description":"The name of the bucket where the QCOW file will be saved.\n"},"key":{"type":"string","description":"The desired key (path) for the QCOW file within the bucket.\n"}},"type":"object","required":["bucket","key"]},"scaleway:index/BlockSnapshotImport:BlockSnapshotImport":{"properties":{"bucket":{"type":"string","description":"The name of the bucket containing the QCOW file.\n","willReplaceOnChanges":true},"key":{"type":"string","description":"The key of the QCOW file within the bucket.\n","willReplaceOnChanges":true}},"type":"object","required":["bucket","key"]},"scaleway:index/CockpitAlertManagerContactPoint:CockpitAlertManagerContactPoint":{"properties":{"email":{"type":"string","description":"Email addresses for the alert receivers\n"}},"type":"object"},"scaleway:index/CockpitEndpoint:CockpitEndpoint":{"properties":{"alertmanagerUrl":{"type":"string","description":"(Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).\n"},"grafanaUrl":{"type":"string","description":"(Deprecated) URL for Grafana.\n"},"logsUrl":{"type":"string","description":"(Deprecated) URL for [logs](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#logs) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.\n"},"metricsUrl":{"type":"string","description":"(Deprecated) URL for [metrics](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#metric) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.\n"},"tracesUrl":{"type":"string","description":"(Deprecated) URL for [traces](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#traces) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["alertmanagerUrl","grafanaUrl","logsUrl","metricsUrl","tracesUrl"]}}},"scaleway:index/CockpitPushUrl:CockpitPushUrl":{"properties":{"pushLogsUrl":{"type":"string","description":"Push URL for logs (Grafana Loki)\n"},"pushMetricsUrl":{"type":"string","description":"Push URL for metrics (Grafana Mimir)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["pushLogsUrl","pushMetricsUrl"]}}},"scaleway:index/CockpitTokenScopes:CockpitTokenScopes":{"properties":{"queryLogs":{"type":"boolean","description":"Permission to query logs.\n","willReplaceOnChanges":true},"queryMetrics":{"type":"boolean","description":"Permission to query metrics.\n","willReplaceOnChanges":true},"queryTraces":{"type":"boolean","description":"Permission to query traces.\n","willReplaceOnChanges":true},"setupAlerts":{"type":"boolean","description":"Permission to set up alerts.\n","willReplaceOnChanges":true},"setupLogsRules":{"type":"boolean","description":"Permission to set up logs rules.\n","willReplaceOnChanges":true},"setupMetricsRules":{"type":"boolean","description":"Permission to set up metrics rules.\n","willReplaceOnChanges":true},"writeLogs":{"type":"boolean","description":"Permission to write logs.\n","willReplaceOnChanges":true},"writeMetrics":{"type":"boolean","description":"Permission to write metrics.\n","willReplaceOnChanges":true},"writeTraces":{"type":"boolean","description":"Permission to write traces.\n","willReplaceOnChanges":true}},"type":"object"},"scaleway:index/ContainerHealthCheck:ContainerHealthCheck":{"properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive health check failures before considering the container unhealthy.\n"},"https":{"type":"array","items":{"$ref":"#/types/scaleway:index/ContainerHealthCheckHttp:ContainerHealthCheckHttp"},"description":"HTTP health check configuration.\n"},"interval":{"type":"string","description":"Period between health checks (in seconds).\n"}},"type":"object","required":["failureThreshold","https","interval"]},"scaleway:index/ContainerHealthCheckHttp:ContainerHealthCheckHttp":{"properties":{"path":{"type":"string","description":"Path to use for the HTTP health check.\n"}},"type":"object","required":["path"]},"scaleway:index/ContainerScalingOption:ContainerScalingOption":{"properties":{"concurrentRequestsThreshold":{"type":"integer","description":"Scale depending on the number of concurrent requests being processed per container instance.\n"},"cpuUsageThreshold":{"type":"integer","description":"Scale depending on the CPU usage of a container instance.\n"},"memoryUsageThreshold":{"type":"integer","description":"Scale depending on the memory usage of a container instance.\n"}},"type":"object"},"scaleway:index/ContainerTriggerNats:ContainerTriggerNats":{"properties":{"accountId":{"type":"string","description":"unique identifier of the Messaging and Queuing NATS account.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e)\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region where the Messaging and Queuing NATS account is enabled (defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e)\n","willReplaceOnChanges":true},"subject":{"type":"string","description":"The subject to listen to.\n","willReplaceOnChanges":true}},"type":"object","required":["subject"],"language":{"nodejs":{"requiredOutputs":["projectId","region","subject"]}}},"scaleway:index/ContainerTriggerSqs:ContainerTriggerSqs":{"properties":{"namespaceId":{"type":"string","description":"ID of the Messaging and Queuing namespace. This argument is deprecated.\n","deprecationMessage":"The 'namespace_id' field is deprecated and will be removed in the next major version. It is no longer necessary to specify it"},"projectId":{"type":"string","description":"The ID of the project in which SQS is enabled, (defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e)\n","willReplaceOnChanges":true},"queue":{"type":"string","description":"The name of the SQS queue.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region where SQS is enabled (defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e)\n","willReplaceOnChanges":true}},"type":"object","required":["queue"],"language":{"nodejs":{"requiredOutputs":["projectId","queue","region"]}}},"scaleway:index/DatabaseAclAclRule:DatabaseAclAclRule":{"properties":{"description":{"type":"string","description":"A text describing this rule. Default description: `IP allowed`\n"},"ip":{"type":"string","description":"The IPv4 address or range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation). IPv6 is not supported by the Scaleway API.\n"}},"type":"object","required":["ip"],"language":{"nodejs":{"requiredOutputs":["description","ip"]}}},"scaleway:index/DatabaseInstanceLoadBalancer:DatabaseInstanceLoadBalancer":{"properties":{"endpointId":{"type":"string","description":"The ID of the endpoint.\n"},"hostname":{"type":"string","description":"Hostname of the endpoint.\n"},"ip":{"type":"string","description":"IPv4 address on the network.\n"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"port":{"type":"integer","description":"Port in the Private Network.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpointId","hostname","ip","name","port"]}}},"scaleway:index/DatabaseInstanceLogsPolicy:DatabaseInstanceLogsPolicy":{"properties":{"maxAgeRetention":{"type":"integer","description":"The max age (in days) of remote logs to keep on the Database Instance\n"},"totalDiskRetention":{"type":"integer","description":"The max disk size of remote logs to keep on the Database Instance.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxAgeRetention","totalDiskRetention"]}}},"scaleway:index/DatabaseInstancePrivateIp:DatabaseInstancePrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"Version ID to use in upgrade requests.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:index/DatabaseInstancePrivateNetwork:DatabaseInstancePrivateNetwork":{"properties":{"enableIpam":{"type":"boolean","description":"Whether or not the private network endpoint should be configured with IPAM\n"},"endpointId":{"type":"string","description":"The ID of the endpoint.\n"},"hostname":{"type":"string","description":"Hostname of the endpoint.\n"},"ip":{"type":"string","description":"IPv4 address on the network.\n"},"ipNet":{"type":"string","description":"The IP with the given mask within the private subnet\n"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"pnId":{"type":"string","description":"The private network ID\n"},"port":{"type":"integer","description":"Port in the Private Network.\n"},"zone":{"type":"string","description":"The zone you want to attach the resource to\n","willReplaceOnChanges":true}},"type":"object","required":["pnId"],"language":{"nodejs":{"requiredOutputs":["enableIpam","endpointId","hostname","ip","ipNet","name","pnId","port"]}}},"scaleway:index/DatabaseInstanceReadReplica:DatabaseInstanceReadReplica":{"properties":{"ip":{"type":"string","description":"IPv4 address on the network.\n"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"port":{"type":"integer","description":"Port in the Private Network.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ip","name","port"]}}},"scaleway:index/DatabaseInstanceUpgradableVersion:DatabaseInstanceUpgradableVersion":{"properties":{"id":{"type":"string","description":"Version ID to use in upgrade requests.\n"},"minorVersion":{"type":"string","description":"Minor version string (e.g., `15.5.0`).\n"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"version":{"type":"string","description":"Version string (e.g., `15.5`).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","minorVersion","name","version"]}}},"scaleway:index/DatabaseReadReplicaDirectAccess:DatabaseReadReplicaDirectAccess":{"properties":{"endpointId":{"type":"string","description":"The ID of the endpoint of the Read Replica.\n"},"hostname":{"type":"string","description":"Hostname of the endpoint. Only one of IP and hostname may be set.\n"},"ip":{"type":"string","description":"IPv4 address of the endpoint (IP address). Only one of IP and hostname may be set.\n"},"name":{"type":"string","description":"Name of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpointId","hostname","ip","name","port"]}}},"scaleway:index/DatabaseReadReplicaPrivateNetwork:DatabaseReadReplicaPrivateNetwork":{"properties":{"enableIpam":{"type":"boolean","description":"If true, the IP network address within the private subnet is determined by the IP Address Management (IPAM) service.\n\n\u003e **Important:** One of \u003cspan pulumi-lang-nodejs=\"`serviceIp`\" pulumi-lang-dotnet=\"`ServiceIp`\" pulumi-lang-go=\"`serviceIp`\" pulumi-lang-python=\"`service_ip`\" pulumi-lang-yaml=\"`serviceIp`\" pulumi-lang-java=\"`serviceIp`\"\u003e`service_ip`\u003c/span\u003e or `enable_ipam=true` must be set.\n"},"endpointId":{"type":"string","description":"The ID of the endpoint of the Read Replica.\n"},"hostname":{"type":"string","description":"Hostname of the endpoint. Only one of IP and hostname may be set.\n"},"ip":{"type":"string","description":"IPv4 address of the endpoint (IP address). Only one of IP and hostname may be set.\n"},"name":{"type":"string","description":"Name of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"},"privateNetworkId":{"type":"string","description":"UUID of the Private Netork to be connected to the Read Replica.\n"},"serviceIp":{"type":"string","description":"The IP network address within the private subnet. This must be an IPv4 address with a CIDR notation. If not set, The IP network address within the private subnet is determined by the IP Address Management (IPAM) service.\n"},"zone":{"type":"string","description":"Private network zone\n"}},"type":"object","required":["privateNetworkId"],"language":{"nodejs":{"requiredOutputs":["enableIpam","endpointId","hostname","ip","name","port","privateNetworkId","serviceIp","zone"]}}},"scaleway:index/DomainRecordGeoIp:DomainRecordGeoIp":{"properties":{"matches":{"type":"array","items":{"$ref":"#/types/scaleway:index/DomainRecordGeoIpMatch:DomainRecordGeoIpMatch"},"description":"The list of matches\n"}},"type":"object","required":["matches"]},"scaleway:index/DomainRecordGeoIpMatch:DomainRecordGeoIpMatch":{"properties":{"continents":{"type":"array","items":{"type":"string"},"description":"List of continents (eg: EU for Europe, NA for North America, AS for Asia...). List of all continents code: https://api.scaleway.com/domain-private/v2beta1/continents\n"},"countries":{"type":"array","items":{"type":"string"},"description":"List of countries (eg: FR for France, US for the United States, GB for Great Britain...). List of all countries code: https://api.scaleway.com/domain-private/v2beta1/countries\n"},"data":{"type":"string","description":"The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).\n"}},"type":"object","required":["data"]},"scaleway:index/DomainRecordHttpService:DomainRecordHttpService":{"properties":{"ips":{"type":"array","items":{"type":"string"},"description":"IPs to check\n"},"mustContain":{"type":"string","description":"Text to search\n"},"strategy":{"type":"string","description":"Strategy to return an IP from the IPs list\n"},"url":{"type":"string","description":"URL to match the\u003cspan pulumi-lang-nodejs=\" mustContain \" pulumi-lang-dotnet=\" MustContain \" pulumi-lang-go=\" mustContain \" pulumi-lang-python=\" must_contain \" pulumi-lang-yaml=\" mustContain \" pulumi-lang-java=\" mustContain \"\u003e must_contain \u003c/span\u003etext to validate an IP\n"},"userAgent":{"type":"string","description":"User-agent used when checking the URL\n"}},"type":"object","required":["ips","mustContain","strategy","url"]},"scaleway:index/DomainRecordView:DomainRecordView":{"properties":{"data":{"type":"string","description":"The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).\n"},"subnet":{"type":"string","description":"The subnet of the view\n"}},"type":"object","required":["data","subnet"]},"scaleway:index/DomainRecordWeighted:DomainRecordWeighted":{"properties":{"ip":{"type":"string","description":"The weighted IP\n"},"weight":{"type":"integer","description":"The weight of the IP\n"}},"type":"object","required":["ip","weight"]},"scaleway:index/EdgeServicesBackendStageLbBackendConfig:EdgeServicesBackendStageLbBackendConfig":{"properties":{"lbConfig":{"$ref":"#/types/scaleway:index/EdgeServicesBackendStageLbBackendConfigLbConfig:EdgeServicesBackendStageLbBackendConfigLbConfig","description":"The Load Balancer config.\n"}},"type":"object"},"scaleway:index/EdgeServicesBackendStageLbBackendConfigLbConfig:EdgeServicesBackendStageLbBackendConfigLbConfig":{"properties":{"domainName":{"type":"string","description":"The Fully Qualified Domain Name (in the format subdomain.example.com) to use in HTTP requests sent towards your Load Balancer.\n"},"frontendId":{"type":"string","description":"The ID of the frontend.\n"},"hasWebsocket":{"type":"boolean","description":"Defines whether to forward websocket requests to the load balancer.\n"},"id":{"type":"string","description":"The ID of the Load Balancer.\n"},"isSsl":{"type":"boolean","description":"Defines whether the Load Balancer's frontend handles SSL connections.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Load Balancer.\n","willReplaceOnChanges":true}},"type":"object"},"scaleway:index/EdgeServicesBackendStageS3BackendConfig:EdgeServicesBackendStageS3BackendConfig":{"properties":{"bucketName":{"type":"string","description":"The name of the Bucket.\n"},"bucketRegion":{"type":"string","description":"The region of the Bucket.\n"},"isWebsite":{"type":"boolean","description":"Defines whether the bucket website feature is enabled.\n"}},"type":"object"},"scaleway:index/EdgeServicesCacheStagePurgeRequest:EdgeServicesCacheStagePurgeRequest":{"properties":{"all":{"type":"boolean","description":"Defines whether to purge all content.\n"},"assets":{"type":"array","items":{"type":"string"},"description":"The list of asserts to purge.\n"},"pipelineId":{"type":"string","description":"The pipeline ID in which the purge request will be created.\n"}},"type":"object"},"scaleway:index/EdgeServicesRouteStageRule:EdgeServicesRouteStageRule":{"properties":{"backendStageId":{"type":"string","description":"The ID of the backend stage that requests matching the rule should be forwarded to.\n"},"ruleHttpMatch":{"$ref":"#/types/scaleway:index/EdgeServicesRouteStageRuleRuleHttpMatch:EdgeServicesRouteStageRuleRuleHttpMatch","description":"The rule condition to be matched. Requests matching the condition defined here will be directly forwarded to the backend specified by the \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e field. Requests that do not match will be checked by the next rule's condition.\n"}},"type":"object","required":["backendStageId"]},"scaleway:index/EdgeServicesRouteStageRuleRuleHttpMatch:EdgeServicesRouteStageRuleRuleHttpMatch":{"properties":{"methodFilters":{"type":"array","items":{"type":"string"},"description":"HTTP methods to filter for. A request using any of these methods will be considered to match the rule. Possible values are \u003cspan pulumi-lang-nodejs=\"`get`\" pulumi-lang-dotnet=\"`Get`\" pulumi-lang-go=\"`get`\" pulumi-lang-python=\"`get`\" pulumi-lang-yaml=\"`get`\" pulumi-lang-java=\"`get`\"\u003e`get`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`post`\" pulumi-lang-dotnet=\"`Post`\" pulumi-lang-go=\"`post`\" pulumi-lang-python=\"`post`\" pulumi-lang-yaml=\"`post`\" pulumi-lang-java=\"`post`\"\u003e`post`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`put`\" pulumi-lang-dotnet=\"`Put`\" pulumi-lang-go=\"`put`\" pulumi-lang-python=\"`put`\" pulumi-lang-yaml=\"`put`\" pulumi-lang-java=\"`put`\"\u003e`put`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`patch`\" pulumi-lang-dotnet=\"`Patch`\" pulumi-lang-go=\"`patch`\" pulumi-lang-python=\"`patch`\" pulumi-lang-yaml=\"`patch`\" pulumi-lang-java=\"`patch`\"\u003e`patch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`delete`\" pulumi-lang-dotnet=\"`Delete`\" pulumi-lang-go=\"`delete`\" pulumi-lang-python=\"`delete`\" pulumi-lang-yaml=\"`delete`\" pulumi-lang-java=\"`delete`\"\u003e`delete`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`head`\" pulumi-lang-dotnet=\"`Head`\" pulumi-lang-go=\"`head`\" pulumi-lang-python=\"`head`\" pulumi-lang-yaml=\"`head`\" pulumi-lang-java=\"`head`\"\u003e`head`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e. All methods will match if none is provided.\n"},"pathFilter":{"$ref":"#/types/scaleway:index/EdgeServicesRouteStageRuleRuleHttpMatchPathFilter:EdgeServicesRouteStageRuleRuleHttpMatchPathFilter","description":"HTTP URL path to filter for. A request whose path matches the given filter will be considered to match the rule. All paths will match if none is provided.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["methodFilters"]}}},"scaleway:index/EdgeServicesRouteStageRuleRuleHttpMatchPathFilter:EdgeServicesRouteStageRuleRuleHttpMatchPathFilter":{"properties":{"pathFilterType":{"type":"string","description":"The type of filter to match for the HTTP URL path. For now, all path filters must be written in regex and use the \u003cspan pulumi-lang-nodejs=\"`regex`\" pulumi-lang-dotnet=\"`Regex`\" pulumi-lang-go=\"`regex`\" pulumi-lang-python=\"`regex`\" pulumi-lang-yaml=\"`regex`\" pulumi-lang-java=\"`regex`\"\u003e`regex`\u003c/span\u003e type.\n"},"value":{"type":"string","description":"The value to be matched for the HTTP URL path.\n"}},"type":"object","required":["pathFilterType","value"]},"scaleway:index/EdgeServicesTlsStageSecret:EdgeServicesTlsStageSecret":{"properties":{"region":{"type":"string","description":"The region of the secret.\n","willReplaceOnChanges":true},"secretId":{"type":"string","description":"The ID of the Secret\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["secretId"]}}},"scaleway:index/FunctionTriggerNats:FunctionTriggerNats":{"properties":{"accountId":{"type":"string","description":"unique identifier of the Messaging and Queuing NATS account.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"THe ID of the project that contains the Messaging and Queuing NATS account (defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e)\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region where the Messaging and Queuing NATS account is enabled (defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e)\n","willReplaceOnChanges":true},"subject":{"type":"string","description":"The subject to listen to.\n","willReplaceOnChanges":true}},"type":"object","required":["subject"],"language":{"nodejs":{"requiredOutputs":["projectId","region","subject"]}}},"scaleway:index/FunctionTriggerSqs:FunctionTriggerSqs":{"properties":{"namespaceId":{"type":"string","description":"ID of the Messaging and Queuing namespace. This argument is deprecated.\n","deprecationMessage":"The 'namespace_id' field is deprecated and will be removed in the next major version. It is no longer necessary to specify it"},"projectId":{"type":"string","description":"The ID of the project in which SQS is enabled, (defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e)\n","willReplaceOnChanges":true},"queue":{"type":"string","description":"The name of the SQS queue.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Region where SQS is enabled (defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e)\n","willReplaceOnChanges":true}},"type":"object","required":["queue"],"language":{"nodejs":{"requiredOutputs":["projectId","queue","region"]}}},"scaleway:index/IamPolicyRule:IamPolicyRule":{"properties":{"condition":{"type":"string","description":"The condition of the rule.\n\n**_TIP:_** You can use the Scaleway CLI to list the permissions details. e.g:\n\n```shell\nscw iam permission-set list\n```\n"},"organizationId":{"type":"string","description":"ID of organization scoped to the rule, this can be used to create a rule for all projects in an organization.\n"},"permissionSetNames":{"type":"array","items":{"type":"string"},"description":"Names of permission sets bind to the rule.\n"},"projectIds":{"type":"array","items":{"type":"string"},"description":"List of project IDs scoped to the rule.\n\n\u003e **Important** One \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`projectIds`\" pulumi-lang-dotnet=\"`ProjectIds`\" pulumi-lang-go=\"`projectIds`\" pulumi-lang-python=\"`project_ids`\" pulumi-lang-yaml=\"`projectIds`\" pulumi-lang-java=\"`projectIds`\"\u003e`project_ids`\u003c/span\u003e must be set per rule.\n"}},"type":"object","required":["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/InferenceDeploymentPrivateIp:InferenceDeploymentPrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"(Optional) The id of the public endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"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":{"id":{"type":"string","description":"ID of the server containing the volume.\n"},"name":{"type":"string","description":"The name of the image. If not provided it will be randomly generated.\n"},"server":{"type":"object","additionalProperties":{"type":"string"},"description":"Description of the server containing the volume (in case the image is a backup from a server).\n"},"size":{"type":"integer","description":"The size of the volume.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the image.\n"},"volumeType":{"type":"string","description":"The type of volume, possible values are \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`sbsSnapshot`\" pulumi-lang-dotnet=\"`SbsSnapshot`\" pulumi-lang-go=\"`sbsSnapshot`\" pulumi-lang-python=\"`sbs_snapshot`\" pulumi-lang-yaml=\"`sbsSnapshot`\" pulumi-lang-java=\"`sbsSnapshot`\"\u003e`sbs_snapshot`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name","server","size","tags","volumeType"]}}},"scaleway:index/InstanceImageRootVolume:InstanceImageRootVolume":{"properties":{"id":{"type":"string","description":"ID of the server containing the volume.\n"},"name":{"type":"string","description":"The name of the image. If not provided it will be randomly generated.\n"},"size":{"type":"integer","description":"The size of the volume.\n"},"volumeType":{"type":"string","description":"The type of volume, possible values are \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`sbsSnapshot`\" pulumi-lang-dotnet=\"`SbsSnapshot`\" pulumi-lang-go=\"`sbsSnapshot`\" pulumi-lang-python=\"`sbs_snapshot`\" pulumi-lang-yaml=\"`sbsSnapshot`\" pulumi-lang-java=\"`sbsSnapshot`\"\u003e`sbs_snapshot`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name","size","volumeType"]}}},"scaleway:index/InstancePrivateNicPrivateIp:InstancePrivateNicPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:index/InstanceSecurityGroupInboundRule:InstanceSecurityGroupInboundRule":{"properties":{"action":{"type":"string","description":"The action to take when rule match. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"ip":{"type":"string","description":"The ip this rule apply to. If no \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e are specified, rule will apply to all ip. Only one of \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e should be specified.\n","deprecationMessage":"Ip address is deprecated. Please use\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003einstead"},"ipRange":{"type":"string","description":"The ip range (e.g `192.168.1.0/24`) this rule applies to. If no \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e are specified, rule will apply to all ip. Only one of \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e should be specified.\n"},"port":{"type":"integer","description":"The port this rule applies to. If no \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e are specified, the rule will apply to all port. Only one of \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e should be specified.\n"},"portRange":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)\n"},"protocol":{"type":"string","description":"The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`.\n"}},"type":"object","required":["action"]},"scaleway:index/InstanceSecurityGroupOutboundRule:InstanceSecurityGroupOutboundRule":{"properties":{"action":{"type":"string","description":"Action when rule match request (drop or accept)\n"},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003eshould be provided\n","deprecationMessage":"Ip address is deprecated. Please use\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003einstead"},"ipRange":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003eshould be provided\n"},"port":{"type":"integer","description":"Network port for this rule\n"},"portRange":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)\n"},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)\n"}},"type":"object","required":["action"]},"scaleway:index/InstanceSecurityGroupRulesInboundRule:InstanceSecurityGroupRulesInboundRule":{"properties":{"action":{"type":"string","description":"The action to take when rule match. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"ip":{"type":"string","description":"The ip this rule apply to. If no \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e are specified, rule will apply to all ip. Only one of \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e should be specified.\n","deprecationMessage":"Ip address is deprecated. Please use\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003einstead"},"ipRange":{"type":"string","description":"The ip range (e.g `192.168.1.0/24`) this rule applies to. If no \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e are specified, rule will apply to all ip. Only one of \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e should be specified.\n"},"port":{"type":"integer","description":"The port this rule apply to. If no port is specified, rule will apply to all port.\n"},"portRange":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)\n"},"protocol":{"type":"string","description":"The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`.\n"}},"type":"object","required":["action"]},"scaleway:index/InstanceSecurityGroupRulesOutboundRule:InstanceSecurityGroupRulesOutboundRule":{"properties":{"action":{"type":"string","description":"Action when rule match request (drop or accept)\n"},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003eshould be provided\n","deprecationMessage":"Ip address is deprecated. Please use\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003einstead"},"ipRange":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003eshould be provided\n"},"port":{"type":"integer","description":"Network port for this rule\n"},"portRange":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)\n"},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)\n"}},"type":"object","required":["action"]},"scaleway:index/InstanceServerFilesystem:InstanceServerFilesystem":{"properties":{"filesystemId":{"type":"string","description":"The unique ID of the filesystem attached to the server.\n"},"status":{"type":"string","description":"The state of the filesystem\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["status"]}}},"scaleway:index/InstanceServerPrivateIp:InstanceServerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:index/InstanceServerPrivateNetwork:InstanceServerPrivateNetwork":{"properties":{"macAddress":{"type":"string","description":"MAC address of the NIC\n"},"pnId":{"type":"string","description":"The Private Network ID\n"},"pnicId":{"type":"string","description":"The ID of the NIC\n"},"status":{"type":"string","description":"The private NIC state\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n","willReplaceOnChanges":true}},"type":"object","required":["pnId"],"language":{"nodejs":{"requiredOutputs":["macAddress","pnId","pnicId","status"]}}},"scaleway:index/InstanceServerPublicIp:InstanceServerPublicIp":{"properties":{"address":{"type":"string","description":"The address of the IP.\n"},"dynamic":{"type":"boolean","description":"Whether the IP is dynamic.\n"},"family":{"type":"string","description":"The IP address' family.\n"},"gateway":{"type":"string","description":"The IP of the Gateway associated with the IP.\n"},"id":{"type":"string","description":"The ID of the IP.\n"},"netmask":{"type":"string","description":"The CIDR netmask of the IP.\n"},"provisioningMode":{"type":"string","description":"The provisioning mode of the IP\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","dynamic","family","gateway","id","netmask","provisioningMode"]}}},"scaleway:index/InstanceServerRootVolume:InstanceServerRootVolume":{"properties":{"boot":{"type":"boolean","description":"Set the volume where the boot the server\n"},"deleteOnTermination":{"type":"boolean","description":"Forces deletion of the root volume on instance termination.\n"},"name":{"type":"string","description":"Name of the root volume.\n"},"sbsIops":{"type":"integer","description":"Choose IOPS of your sbs volume, has to be used with \u003cspan pulumi-lang-nodejs=\"`sbsVolume`\" pulumi-lang-dotnet=\"`SbsVolume`\" pulumi-lang-go=\"`sbsVolume`\" pulumi-lang-python=\"`sbs_volume`\" pulumi-lang-yaml=\"`sbsVolume`\" pulumi-lang-java=\"`sbsVolume`\"\u003e`sbs_volume`\u003c/span\u003e for root volume type.\n\n\u003e **Important:** It is not possible to change `root_volume.size_in_gb` for local volumes (\u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e). Changes to this field will recreate the server.\nIt is possible to increase `root_volume.size_in_gb` for SBS volumes, but they cannot be resized down without recreating the server.\n"},"sizeInGb":{"type":"integer","description":"Size of the root volume in gigabytes.\nTo find the right size use [this endpoint](https://www.scaleway.com/en/developers/api/instance/#path-instances-list-all-instances) and\ncheck the `volumes_constraint.{min|max}_size` (in bytes) for your \u003cspan pulumi-lang-nodejs=\"`commercialType`\" pulumi-lang-dotnet=\"`CommercialType`\" pulumi-lang-go=\"`commercialType`\" pulumi-lang-python=\"`commercial_type`\" pulumi-lang-yaml=\"`commercialType`\" pulumi-lang-java=\"`commercialType`\"\u003e`commercial_type`\u003c/span\u003e.\nDepending on \u003cspan pulumi-lang-nodejs=\"`volumeType`\" pulumi-lang-dotnet=\"`VolumeType`\" pulumi-lang-go=\"`volumeType`\" pulumi-lang-python=\"`volume_type`\" pulumi-lang-yaml=\"`volumeType`\" pulumi-lang-java=\"`volumeType`\"\u003e`volume_type`\u003c/span\u003e, updates to this field may recreate a new resource.\n"},"volumeId":{"type":"string","description":"The volume ID of the root volume of the server, allows you to create server with an existing volume. If empty, will be computed to a created volume ID.\n"},"volumeType":{"type":"string","description":"Volume type of root volume, can be \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sbsVolume`\" pulumi-lang-dotnet=\"`SbsVolume`\" pulumi-lang-go=\"`sbsVolume`\" pulumi-lang-python=\"`sbs_volume`\" pulumi-lang-yaml=\"`sbsVolume`\" pulumi-lang-java=\"`sbsVolume`\"\u003e`sbs_volume`\u003c/span\u003e, default value depends on server type\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","sbsIops","sizeInGb","volumeId","volumeType"]}}},"scaleway:index/InstanceSnapshotImport:InstanceSnapshotImport":{"properties":{"bucket":{"type":"string","description":"Bucket name containing [qcow2](https://en.wikipedia.org/wiki/Qcow) to import\n","willReplaceOnChanges":true},"key":{"type":"string","description":"Key of the object to import\n","willReplaceOnChanges":true}},"type":"object","required":["bucket","key"]},"scaleway:index/IotDeviceCertificate:IotDeviceCertificate":{"properties":{"crt":{"type":"string","description":"X509 PEM encoded certificate of the device\n","secret":true},"key":{"type":"string","description":"The private key of the device, in case it is generated by Scaleway.\n","secret":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["crt","key"]}}},"scaleway:index/IotDeviceMessageFilters:IotDeviceMessageFilters":{"properties":{"publish":{"$ref":"#/types/scaleway:index/IotDeviceMessageFiltersPublish:IotDeviceMessageFiltersPublish","description":"Rules used to restrict topics the device can publish to.\n"},"subscribe":{"$ref":"#/types/scaleway:index/IotDeviceMessageFiltersSubscribe:IotDeviceMessageFiltersSubscribe","description":"Rules used to restrict topics the device can subscribe to.\n"}},"type":"object"},"scaleway:index/IotDeviceMessageFiltersPublish:IotDeviceMessageFiltersPublish":{"properties":{"policy":{"type":"string","description":"Filtering policy (eg \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`reject`\" pulumi-lang-dotnet=\"`Reject`\" pulumi-lang-go=\"`reject`\" pulumi-lang-python=\"`reject`\" pulumi-lang-yaml=\"`reject`\" pulumi-lang-java=\"`reject`\"\u003e`reject`\u003c/span\u003e)\n"},"topics":{"type":"array","items":{"type":"string"},"description":"List of topics to match (eg `foo/bar/+/baz/#`)\n"}},"type":"object"},"scaleway:index/IotDeviceMessageFiltersSubscribe:IotDeviceMessageFiltersSubscribe":{"properties":{"policy":{"type":"string","description":"Same as publish rules.\n"},"topics":{"type":"array","items":{"type":"string"},"description":"Same as publish rules.\n\n- `certificate.crt` - (Optional) The certificate of the device, either generated by Scaleway or provided.\n\n\u003e **Important:** Updates to `certificate.crt` will disconnect connected devices and the previous certificate will be deleted and won't be recoverable.\n"}},"type":"object"},"scaleway:index/IotRouteDatabase:IotRouteDatabase":{"properties":{"dbname":{"type":"string","description":"The database name (e.g. \u003cspan pulumi-lang-nodejs=\"`measurements`\" pulumi-lang-dotnet=\"`Measurements`\" pulumi-lang-go=\"`measurements`\" pulumi-lang-python=\"`measurements`\" pulumi-lang-yaml=\"`measurements`\" pulumi-lang-java=\"`measurements`\"\u003e`measurements`\u003c/span\u003e).\n","willReplaceOnChanges":true},"host":{"type":"string","description":"The database hostname. Can be an IP or a FQDN.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The database password.\n","secret":true,"willReplaceOnChanges":true},"port":{"type":"integer","description":"The database port (e.g. \u003cspan pulumi-lang-nodejs=\"`5432`\" pulumi-lang-dotnet=\"`5432`\" pulumi-lang-go=\"`5432`\" pulumi-lang-python=\"`5432`\" pulumi-lang-yaml=\"`5432`\" pulumi-lang-java=\"`5432`\"\u003e`5432`\u003c/span\u003e)\n","willReplaceOnChanges":true},"query":{"type":"string","description":"The SQL query that will be executed when receiving a message ($TOPIC and $PAYLOAD variables are available, see documentation, e.g. `INSERT INTO mytable(date, topic, value) VALUES (NOW(), $TOPIC, $PAYLOAD)`).\n","willReplaceOnChanges":true},"username":{"type":"string","description":"The database username.\n","willReplaceOnChanges":true}},"type":"object","required":["dbname","host","password","port","query","username"]},"scaleway:index/IotRouteRest:IotRouteRest":{"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"a map of the extra headers to send with the HTTP call (e.g. `X-Header = Value`).\n","willReplaceOnChanges":true},"uri":{"type":"string","description":"The URI of the Rest endpoint (e.g. `https://internal.mycompany.com/ingest/mqttdata`).\n","willReplaceOnChanges":true},"verb":{"type":"string","description":"The HTTP Verb used to call Rest URI (e.g. \u003cspan pulumi-lang-nodejs=\"`post`\" pulumi-lang-dotnet=\"`Post`\" pulumi-lang-go=\"`post`\" pulumi-lang-python=\"`post`\" pulumi-lang-yaml=\"`post`\" pulumi-lang-java=\"`post`\"\u003e`post`\u003c/span\u003e).\n","willReplaceOnChanges":true}},"type":"object","required":["headers","uri","verb"]},"scaleway:index/IotRouteS3:IotRouteS3":{"properties":{"bucketName":{"type":"string","description":"The name of the S3 route's destination bucket (e.g. `my-object-storage`).\n","willReplaceOnChanges":true},"bucketRegion":{"type":"string","description":"The region of the S3 route's destination bucket (e.g. `fr-par`).\n","willReplaceOnChanges":true},"objectPrefix":{"type":"string","description":"The string to prefix object names with (e.g. `mykeyprefix-`).\n","willReplaceOnChanges":true},"strategy":{"type":"string","description":"How the S3 route's objects will be created (e.g. \u003cspan pulumi-lang-nodejs=\"`perTopic`\" pulumi-lang-dotnet=\"`PerTopic`\" pulumi-lang-go=\"`perTopic`\" pulumi-lang-python=\"`per_topic`\" pulumi-lang-yaml=\"`perTopic`\" pulumi-lang-java=\"`perTopic`\"\u003e`per_topic`\u003c/span\u003e). See [documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for behaviour details.\n","willReplaceOnChanges":true}},"type":"object","required":["bucketName","bucketRegion","strategy"]},"scaleway:index/IpamIpCustomResource:IpamIpCustomResource":{"properties":{"macAddress":{"type":"string","description":"The MAC address of the custom resource.\n"},"name":{"type":"string","description":"When the resource is in a Private Network, a DNS record is available to resolve the resource name.\n"}},"type":"object","required":["macAddress"]},"scaleway:index/IpamIpResource:IpamIpResource":{"properties":{"id":{"type":"string","description":"The ID of the resource that the IP is attached to.\n"},"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":{"type":"string","description":"The type of resource the IP is attached to.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","macAddress","name","type"]}}},"scaleway:index/IpamIpReverse:IpamIpReverse":{"properties":{"address":{"type":"string","description":"The IP corresponding to the hostname\n"},"hostname":{"type":"string","description":"The reverse domain name.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","hostname"]}}},"scaleway:index/IpamIpSource:IpamIpSource":{"properties":{"privateNetworkId":{"type":"string","description":"The Private Network of the IP (if the IP is a private IP).\n"},"subnetId":{"type":"string","description":"The Private Network subnet of the IP (if the IP is a private IP).\n"},"zonal":{"type":"string","description":"The zone of the IP (if the IP is public and zoned, rather than private and/or regional)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["privateNetworkId","subnetId","zonal"]}}},"scaleway:index/JobDefinitionCron:JobDefinitionCron":{"properties":{"schedule":{"type":"string","description":"Cron format string.\n"},"timezone":{"type":"string","description":"The timezone, must be a canonical TZ identifier as found in this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).\n"}},"type":"object","required":["schedule","timezone"]},"scaleway:index/JobDefinitionSecretReference:JobDefinitionSecretReference":{"properties":{"environment":{"type":"string","description":"An environment variable containing the secret value. Must be specified if \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e is not specified.\n"},"file":{"type":"string","description":"The absolute file path where the secret will be mounted. Must be specified if \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e is not specified.\n"},"secretId":{"type":"string","description":"The secret unique identifier, it could be formatted as region/UUID or UUID. In case the region is passed, it must be the same as the job definition. You could reference the same secret multiple times in the same job definition.\n"},"secretReferenceId":{"type":"string","description":"The secret reference UUID that is automatically generated by the provider.\n"},"secretVersion":{"type":"string","description":"The secret version.\n"}},"type":"object","required":["secretId"],"language":{"nodejs":{"requiredOutputs":["secretId","secretReferenceId"]}}},"scaleway:index/KeyManagerKeyRotationPolicy:KeyManagerKeyRotationPolicy":{"properties":{"nextRotationAt":{"type":"string","description":"The date and time of the next scheduled rotation.\n"},"rotationPeriod":{"type":"string","description":"– The period between key rotations (e.g., `\"720h\"` for 30 days).\n"}},"type":"object","required":["rotationPeriod"]},"scaleway:index/KubernetesClusterAutoUpgrade:KubernetesClusterAutoUpgrade":{"properties":{"enable":{"type":"boolean","description":"Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable Kubernetes patch version auto upgrades.\n\u003e **Important:** When enabling auto upgrades, the \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e field take a minor version like x.y (ie 1.18).\n"},"maintenanceWindowDay":{"type":"string","description":"The day of the auto upgrade maintenance window (\u003cspan pulumi-lang-nodejs=\"`monday`\" pulumi-lang-dotnet=\"`Monday`\" pulumi-lang-go=\"`monday`\" pulumi-lang-python=\"`monday`\" pulumi-lang-yaml=\"`monday`\" pulumi-lang-java=\"`monday`\"\u003e`monday`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`sunday`\" pulumi-lang-dotnet=\"`Sunday`\" pulumi-lang-go=\"`sunday`\" pulumi-lang-python=\"`sunday`\" pulumi-lang-yaml=\"`sunday`\" pulumi-lang-java=\"`sunday`\"\u003e`sunday`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\"\u003e`any`\u003c/span\u003e).\n"},"maintenanceWindowStartHour":{"type":"integer","description":"The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).\n"}},"type":"object","required":["enable","maintenanceWindowDay","maintenanceWindowStartHour"]},"scaleway:index/KubernetesClusterAutoscalerConfig:KubernetesClusterAutoscalerConfig":{"properties":{"balanceSimilarNodeGroups":{"type":"boolean","description":"Detect similar node groups and balance the number of nodes between them.\n"},"disableScaleDown":{"type":"boolean","description":"Disables the scale down feature of the autoscaler.\n"},"estimator":{"type":"string","description":"Type of resource estimator to be used in scale up.\n"},"expander":{"type":"string","description":"Type of node group expander to be used in scale up.\n"},"expendablePodsPriorityCutoff":{"type":"integer","description":"Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.\n"},"ignoreDaemonsetsUtilization":{"type":"boolean","description":"Ignore DaemonSet pods when calculating resource utilization for scaling down.\n"},"maxGracefulTerminationSec":{"type":"integer","description":"Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node\n"},"scaleDownDelayAfterAdd":{"type":"string","description":"How long after scale up that scale down evaluation resumes.\n"},"scaleDownUnneededTime":{"type":"string","description":"How long a node should be unneeded before it is eligible for scale down.\n"},"scaleDownUtilizationThreshold":{"type":"number","description":"Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down\n"}},"type":"object"},"scaleway:index/KubernetesClusterKubeconfig:KubernetesClusterKubeconfig":{"properties":{"clusterCaCertificate":{"type":"string","description":"The CA certificate of the Kubernetes API server.\n"},"configFile":{"type":"string","description":"The raw kubeconfig file.\n"},"host":{"type":"string","description":"The URL of the Kubernetes API server.\n"},"token":{"type":"string","description":"The token to connect to the Kubernetes API server.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clusterCaCertificate","configFile","host","token"]}}},"scaleway:index/KubernetesClusterOpenIdConnectConfig:KubernetesClusterOpenIdConnectConfig":{"properties":{"clientId":{"type":"string","description":"A client id that all tokens must be issued for\n"},"groupsClaims":{"type":"array","items":{"type":"string"},"description":"JWT claim to use as the user's group\n"},"groupsPrefix":{"type":"string","description":"Prefix prepended to group claims\n"},"issuerUrl":{"type":"string","description":"URL of the provider which allows the API server to discover public signing keys\n"},"requiredClaims":{"type":"array","items":{"type":"string"},"description":"Multiple key=value pairs that describes a required claim in the ID Token\n"},"usernameClaim":{"type":"string","description":"JWT claim to use as the user name\n"},"usernamePrefix":{"type":"string","description":"Prefix prepended to username\n"}},"type":"object","required":["clientId","issuerUrl"]},"scaleway:index/KubernetesNodePoolNode:KubernetesNodePoolNode":{"properties":{"id":{"type":"string","description":"The ID of the IP address resource.\n"},"name":{"type":"string","description":"The name for the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/KubernetesNodePoolNodePrivateIp:KubernetesNodePoolNodePrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the node.\n"},"publicIp":{"type":"string","description":"The public IPv4. (Deprecated, Please use the official Kubernetes provider and the\u003cspan pulumi-lang-nodejs=\" kubernetesNodes \" pulumi-lang-dotnet=\" KubernetesNodes \" pulumi-lang-go=\" kubernetesNodes \" pulumi-lang-python=\" kubernetes_nodes \" pulumi-lang-yaml=\" kubernetesNodes \" pulumi-lang-java=\" kubernetesNodes \"\u003e kubernetes_nodes \u003c/span\u003edata source)\n","deprecationMessage":"Please use the official Kubernetes provider and the\u003cspan pulumi-lang-nodejs=\" kubernetesNodes \" pulumi-lang-dotnet=\" KubernetesNodes \" pulumi-lang-go=\" kubernetesNodes \" pulumi-lang-python=\" kubernetes_nodes \" pulumi-lang-yaml=\" kubernetesNodes \" pulumi-lang-java=\" kubernetesNodes \"\u003e kubernetes_nodes \u003c/span\u003edata source"},"publicIpV6":{"type":"string","description":"The public IPv6. (Deprecated, Please use the official Kubernetes provider and the\u003cspan pulumi-lang-nodejs=\" kubernetesNodes \" pulumi-lang-dotnet=\" KubernetesNodes \" pulumi-lang-go=\" kubernetesNodes \" pulumi-lang-python=\" kubernetes_nodes \" pulumi-lang-yaml=\" kubernetesNodes \" pulumi-lang-java=\" kubernetesNodes \"\u003e kubernetes_nodes \u003c/span\u003edata source)\n","deprecationMessage":"Please use the official Kubernetes provider and the\u003cspan pulumi-lang-nodejs=\" kubernetesNodes \" pulumi-lang-dotnet=\" KubernetesNodes \" pulumi-lang-go=\" kubernetesNodes \" pulumi-lang-python=\" kubernetes_nodes \" pulumi-lang-yaml=\" kubernetesNodes \" pulumi-lang-java=\" kubernetesNodes \"\u003e kubernetes_nodes \u003c/span\u003edata source"},"status":{"type":"string","description":"The status of the node.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name","privateIps","publicIp","publicIpV6","status"]}}},"scaleway:index/KubernetesNodePoolNodePrivateIp:KubernetesNodePoolNodePrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:index/KubernetesNodePoolUpgradePolicy:KubernetesNodePoolUpgradePolicy":{"properties":{"maxSurge":{"type":"integer","description":"The maximum number of nodes to be created during the upgrade\n"},"maxUnavailable":{"type":"integer","description":"The maximum number of nodes that can be not ready at the same time\n"}},"type":"object"},"scaleway:index/LoadbalancerAclAction:LoadbalancerAclAction":{"properties":{"redirects":{"type":"array","items":{"$ref":"#/types/scaleway:index/LoadbalancerAclActionRedirect:LoadbalancerAclActionRedirect"},"description":"Redirect parameters when using an ACL with \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e action.\n"},"type":{"type":"string","description":"The action type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e.\n"}},"type":"object","required":["type"]},"scaleway:index/LoadbalancerAclActionRedirect:LoadbalancerAclActionRedirect":{"properties":{"code":{"type":"integer","description":"The HTTP redirect code to use. Valid values are \u003cspan pulumi-lang-nodejs=\"`301`\" pulumi-lang-dotnet=\"`301`\" pulumi-lang-go=\"`301`\" pulumi-lang-python=\"`301`\" pulumi-lang-yaml=\"`301`\" pulumi-lang-java=\"`301`\"\u003e`301`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`302`\" pulumi-lang-dotnet=\"`302`\" pulumi-lang-go=\"`302`\" pulumi-lang-python=\"`302`\" pulumi-lang-yaml=\"`302`\" pulumi-lang-java=\"`302`\"\u003e`302`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`303`\" pulumi-lang-dotnet=\"`303`\" pulumi-lang-go=\"`303`\" pulumi-lang-python=\"`303`\" pulumi-lang-yaml=\"`303`\" pulumi-lang-java=\"`303`\"\u003e`303`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`307`\" pulumi-lang-dotnet=\"`307`\" pulumi-lang-go=\"`307`\" pulumi-lang-python=\"`307`\" pulumi-lang-yaml=\"`307`\" pulumi-lang-java=\"`307`\"\u003e`307`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`308`\" pulumi-lang-dotnet=\"`308`\" pulumi-lang-go=\"`308`\" pulumi-lang-python=\"`308`\" pulumi-lang-yaml=\"`308`\" pulumi-lang-java=\"`308`\"\u003e`308`\u003c/span\u003e.\n"},"target":{"type":"string","description":"An URL can be used in case of a location redirect (e.g. `https://scaleway.com` will redirect to this same URL). A scheme name (e.g. \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ftp`\" pulumi-lang-dotnet=\"`Ftp`\" pulumi-lang-go=\"`ftp`\" pulumi-lang-python=\"`ftp`\" pulumi-lang-yaml=\"`ftp`\" pulumi-lang-java=\"`ftp`\"\u003e`ftp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`git`\" pulumi-lang-dotnet=\"`Git`\" pulumi-lang-go=\"`git`\" pulumi-lang-python=\"`git`\" pulumi-lang-yaml=\"`git`\" pulumi-lang-java=\"`git`\"\u003e`git`\u003c/span\u003e) will replace the request's original scheme.\n"},"type":{"type":"string","description":"The redirect type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`scheme`\" pulumi-lang-dotnet=\"`Scheme`\" pulumi-lang-go=\"`scheme`\" pulumi-lang-python=\"`scheme`\" pulumi-lang-yaml=\"`scheme`\" pulumi-lang-java=\"`scheme`\"\u003e`scheme`\u003c/span\u003e.\n"}},"type":"object"},"scaleway:index/LoadbalancerAclMatch:LoadbalancerAclMatch":{"properties":{"httpFilter":{"type":"string","description":"The HTTP filter to match. This filter is supported only if your backend protocol has an HTTP forward protocol.\nIt extracts the request's URL path, which starts at the first slash and ends before the question mark (without the host part).\nPossible values are: \u003cspan pulumi-lang-nodejs=\"`aclHttpFilterNone`\" pulumi-lang-dotnet=\"`AclHttpFilterNone`\" pulumi-lang-go=\"`aclHttpFilterNone`\" pulumi-lang-python=\"`acl_http_filter_none`\" pulumi-lang-yaml=\"`aclHttpFilterNone`\" pulumi-lang-java=\"`aclHttpFilterNone`\"\u003e`acl_http_filter_none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pathBegin`\" pulumi-lang-dotnet=\"`PathBegin`\" pulumi-lang-go=\"`pathBegin`\" pulumi-lang-python=\"`path_begin`\" pulumi-lang-yaml=\"`pathBegin`\" pulumi-lang-java=\"`pathBegin`\"\u003e`path_begin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pathEnd`\" pulumi-lang-dotnet=\"`PathEnd`\" pulumi-lang-go=\"`pathEnd`\" pulumi-lang-python=\"`path_end`\" pulumi-lang-yaml=\"`pathEnd`\" pulumi-lang-java=\"`pathEnd`\"\u003e`path_end`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`regex`\" pulumi-lang-dotnet=\"`Regex`\" pulumi-lang-go=\"`regex`\" pulumi-lang-python=\"`regex`\" pulumi-lang-yaml=\"`regex`\" pulumi-lang-java=\"`regex`\"\u003e`regex`\u003c/span\u003e.\n"},"httpFilterOption":{"type":"string","description":"If you have \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e at \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e, you can use this field to filter on the HTTP header's value.\n"},"httpFilterValues":{"type":"array","items":{"type":"string"},"description":"A list of possible values to match for the given HTTP filter.\nKeep in mind that in the case of \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e the HTTP header field name is case insensitive.\n"},"invert":{"type":"boolean","description":"If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the condition will be of type \"unless\".\n"},"ipSubnets":{"type":"array","items":{"type":"string"},"description":"A list of IPs, or CIDR v4/v6 addresses of the session client, to match. Only one of \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e should be specified.\n"},"ipsEdgeServices":{"type":"boolean","description":"Defines whether Edge Services IPs should be matched. Only one of \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e should be specified.\n"}},"type":"object"},"scaleway:index/LoadbalancerBackendHealthCheckHttp:LoadbalancerBackendHealthCheckHttp":{"properties":{"code":{"type":"integer","description":"The expected HTTP status code\n"},"hostHeader":{"type":"string","description":"The HTTP host header to use for HC requests\n"},"method":{"type":"string","description":"The HTTP method to use for HC requests\n"},"uri":{"type":"string","description":"The HTTP endpoint URL to call for HC requests\n"}},"type":"object","required":["uri"]},"scaleway:index/LoadbalancerBackendHealthCheckHttps:LoadbalancerBackendHealthCheckHttps":{"properties":{"code":{"type":"integer","description":"The expected HTTP status code\n"},"hostHeader":{"type":"string","description":"The HTTP host header to use for HC requests\n"},"method":{"type":"string","description":"The HTTP method to use for HC requests\n"},"sni":{"type":"string","description":"The SNI to use for HC requests over SSL\n"},"uri":{"type":"string","description":"The HTTPS endpoint URL to call for HC requests\n"}},"type":"object","required":["uri"]},"scaleway:index/LoadbalancerBackendHealthCheckTcp:LoadbalancerBackendHealthCheckTcp":{"type":"object"},"scaleway:index/LoadbalancerCertificateCustomCertificate:LoadbalancerCertificateCustomCertificate":{"properties":{"certificateChain":{"type":"string","description":"The full PEM-formatted certificate chain\n","secret":true,"willReplaceOnChanges":true}},"type":"object","required":["certificateChain"]},"scaleway:index/LoadbalancerCertificateLetsencrypt:LoadbalancerCertificateLetsencrypt":{"properties":{"commonName":{"type":"string","description":"Main domain of the certificate\n","willReplaceOnChanges":true},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The alternative domain names of the certificate\n","willReplaceOnChanges":true}},"type":"object","required":["commonName"]},"scaleway:index/LoadbalancerFrontendAcl:LoadbalancerFrontendAcl":{"properties":{"action":{"$ref":"#/types/scaleway:index/LoadbalancerFrontendAclAction:LoadbalancerFrontendAclAction","description":"Action to undertake when an ACL filter matches.\n"},"createdAt":{"type":"string","description":"The date and time the frontend was created.\n"},"description":{"type":"string","description":"Description of the ACL\n"},"match":{"$ref":"#/types/scaleway:index/LoadbalancerFrontendAclMatch:LoadbalancerFrontendAclMatch","description":"The ACL match rule. At least \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`httpFilterValue`\" pulumi-lang-dotnet=\"`HttpFilterValue`\" pulumi-lang-go=\"`httpFilterValue`\" pulumi-lang-python=\"`http_filter_value`\" pulumi-lang-yaml=\"`httpFilterValue`\" pulumi-lang-java=\"`httpFilterValue`\"\u003e`http_filter_value`\u003c/span\u003e are required.\n"},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"updatedAt":{"type":"string","description":"The date and time the frontend resource was updated.\n"}},"type":"object","required":["action","match"],"language":{"nodejs":{"requiredOutputs":["action","createdAt","match","name","updatedAt"]}}},"scaleway:index/LoadbalancerFrontendAclAction:LoadbalancerFrontendAclAction":{"properties":{"redirects":{"type":"array","items":{"$ref":"#/types/scaleway:index/LoadbalancerFrontendAclActionRedirect:LoadbalancerFrontendAclActionRedirect"},"description":"Redirect parameters when using an ACL with \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e action.\n"},"type":{"type":"string","description":"The action type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e.\n"}},"type":"object","required":["type"]},"scaleway:index/LoadbalancerFrontendAclActionRedirect:LoadbalancerFrontendAclActionRedirect":{"properties":{"code":{"type":"integer","description":"The HTTP redirect code to use. Valid values are \u003cspan pulumi-lang-nodejs=\"`301`\" pulumi-lang-dotnet=\"`301`\" pulumi-lang-go=\"`301`\" pulumi-lang-python=\"`301`\" pulumi-lang-yaml=\"`301`\" pulumi-lang-java=\"`301`\"\u003e`301`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`302`\" pulumi-lang-dotnet=\"`302`\" pulumi-lang-go=\"`302`\" pulumi-lang-python=\"`302`\" pulumi-lang-yaml=\"`302`\" pulumi-lang-java=\"`302`\"\u003e`302`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`303`\" pulumi-lang-dotnet=\"`303`\" pulumi-lang-go=\"`303`\" pulumi-lang-python=\"`303`\" pulumi-lang-yaml=\"`303`\" pulumi-lang-java=\"`303`\"\u003e`303`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`307`\" pulumi-lang-dotnet=\"`307`\" pulumi-lang-go=\"`307`\" pulumi-lang-python=\"`307`\" pulumi-lang-yaml=\"`307`\" pulumi-lang-java=\"`307`\"\u003e`307`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`308`\" pulumi-lang-dotnet=\"`308`\" pulumi-lang-go=\"`308`\" pulumi-lang-python=\"`308`\" pulumi-lang-yaml=\"`308`\" pulumi-lang-java=\"`308`\"\u003e`308`\u003c/span\u003e.\n"},"target":{"type":"string","description":"A URL can be used in case of a location redirect (e.g. `https://scaleway.com` will redirect to this same URL). A scheme name (e.g. \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ftp`\" pulumi-lang-dotnet=\"`Ftp`\" pulumi-lang-go=\"`ftp`\" pulumi-lang-python=\"`ftp`\" pulumi-lang-yaml=\"`ftp`\" pulumi-lang-java=\"`ftp`\"\u003e`ftp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`git`\" pulumi-lang-dotnet=\"`Git`\" pulumi-lang-go=\"`git`\" pulumi-lang-python=\"`git`\" pulumi-lang-yaml=\"`git`\" pulumi-lang-java=\"`git`\"\u003e`git`\u003c/span\u003e) will replace the request's original scheme.\n"},"type":{"type":"string","description":"The redirect type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`scheme`\" pulumi-lang-dotnet=\"`Scheme`\" pulumi-lang-go=\"`scheme`\" pulumi-lang-python=\"`scheme`\" pulumi-lang-yaml=\"`scheme`\" pulumi-lang-java=\"`scheme`\"\u003e`scheme`\u003c/span\u003e.\n"}},"type":"object"},"scaleway:index/LoadbalancerFrontendAclMatch:LoadbalancerFrontendAclMatch":{"properties":{"httpFilter":{"type":"string","description":"The HTTP filter to match. This filter is supported only if your backend protocol has an HTTP forward protocol.\nIt extracts the request's URL path, which starts at the first slash and ends before the question mark (without the host part).\nPossible values are: \u003cspan pulumi-lang-nodejs=\"`aclHttpFilterNone`\" pulumi-lang-dotnet=\"`AclHttpFilterNone`\" pulumi-lang-go=\"`aclHttpFilterNone`\" pulumi-lang-python=\"`acl_http_filter_none`\" pulumi-lang-yaml=\"`aclHttpFilterNone`\" pulumi-lang-java=\"`aclHttpFilterNone`\"\u003e`acl_http_filter_none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pathBegin`\" pulumi-lang-dotnet=\"`PathBegin`\" pulumi-lang-go=\"`pathBegin`\" pulumi-lang-python=\"`path_begin`\" pulumi-lang-yaml=\"`pathBegin`\" pulumi-lang-java=\"`pathBegin`\"\u003e`path_begin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pathEnd`\" pulumi-lang-dotnet=\"`PathEnd`\" pulumi-lang-go=\"`pathEnd`\" pulumi-lang-python=\"`path_end`\" pulumi-lang-yaml=\"`pathEnd`\" pulumi-lang-java=\"`pathEnd`\"\u003e`path_end`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`regex`\" pulumi-lang-dotnet=\"`Regex`\" pulumi-lang-go=\"`regex`\" pulumi-lang-python=\"`regex`\" pulumi-lang-yaml=\"`regex`\" pulumi-lang-java=\"`regex`\"\u003e`regex`\u003c/span\u003e.\n"},"httpFilterOption":{"type":"string","description":"If you have \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e at \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e, you can use this field to filter on the HTTP header's value.\n"},"httpFilterValues":{"type":"array","items":{"type":"string"},"description":"A list of possible values to match for the given HTTP filter.\nKeep in mind that in the case of \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e the HTTP header field name is case insensitive.\n"},"invert":{"type":"boolean","description":"If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the condition will be of type \"unless\".\n"},"ipSubnets":{"type":"array","items":{"type":"string"},"description":"A list of IPs, or CIDR v4/v6 addresses of the session client, to match. Only one of \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e should be specified.\n"},"ipsEdgeServices":{"type":"boolean","description":"Defines whether Edge Services IPs should be matched. Only one of \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e should be specified.\n"}},"type":"object"},"scaleway:index/LoadbalancerPrivateIp:LoadbalancerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:index/LoadbalancerPrivateNetwork:LoadbalancerPrivateNetwork":{"properties":{"dhcpConfig":{"type":"boolean","description":"Set to true if you want to let DHCP assign IP addresses\n","deprecationMessage":"dhcp_config field is deprecated, please use \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipamIds`\" pulumi-lang-dotnet=\"`IpamIds`\" pulumi-lang-go=\"`ipamIds`\" pulumi-lang-python=\"`ipam_ids`\" pulumi-lang-yaml=\"`ipamIds`\" pulumi-lang-java=\"`ipamIds`\"\u003e`ipam_ids`\u003c/span\u003e instead"},"ipamIds":{"type":"string","description":"IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network to attach to.\n- \u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e will recreate the attachment.\n"},"staticConfigs":{"type":"array","items":{"type":"string"},"description":"Define an IP address in the subnet of your private network that will be assigned to your load balancer instance\n","deprecationMessage":"static_config field is deprecated, please use \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipamIds`\" pulumi-lang-dotnet=\"`IpamIds`\" pulumi-lang-go=\"`ipamIds`\" pulumi-lang-python=\"`ipam_ids`\" pulumi-lang-yaml=\"`ipamIds`\" pulumi-lang-java=\"`ipamIds`\"\u003e`ipam_ids`\u003c/span\u003e instead"},"status":{"type":"string","description":"The status of the private network connection.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Load Balancer.\n"}},"type":"object","required":["privateNetworkId"],"language":{"nodejs":{"requiredOutputs":["dhcpConfig","ipamIds","privateNetworkId","staticConfigs","status","zone"]}}},"scaleway:index/MnqSnsCredentialsPermissions:MnqSnsCredentialsPermissions":{"properties":{"canManage":{"type":"boolean","description":". Defines whether the user can manage the associated resource(s).\n"},"canPublish":{"type":"boolean","description":". Defines whether the user can publish messages to the service.\n"},"canReceive":{"type":"boolean","description":". Defines whether the user can receive messages from the service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["canManage","canPublish","canReceive"]}}},"scaleway:index/MnqSqsCredentialsPermissions:MnqSqsCredentialsPermissions":{"properties":{"canManage":{"type":"boolean","description":". Defines whether the user can manage the associated resource(s).\n"},"canPublish":{"type":"boolean","description":". Defines whether the user can publish messages to the service.\n"},"canReceive":{"type":"boolean","description":". Defines whether the user can receive messages from the service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["canManage","canPublish","canReceive"]}}},"scaleway:index/MnqSqsQueueDeadLetterQueue:MnqSqsQueueDeadLetterQueue":{"properties":{"id":{"type":"string","description":"The ID of the queue with format `{region/{project-id}/{queue-name}`\n"},"maxReceiveCount":{"type":"integer","description":"The number of times a message is delivered to the source queue before being sent to the dead-letter queue. Must be between 1 and 1,000.\n"}},"type":"object","required":["id","maxReceiveCount"]},"scaleway:index/MongoDbInstancePrivateIp:MongoDbInstancePrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"The ID of the endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:index/MongoDbInstancePrivateNetwork:MongoDbInstancePrivateNetwork":{"properties":{"dnsRecords":{"type":"array","items":{"type":"string"},"description":"List of DNS records for your endpoint.\n"},"id":{"type":"string","description":"The ID of the endpoint.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IP addresses for your endpoint.\n"},"pnId":{"type":"string","description":"The ID of the Private Network.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"}},"type":"object","required":["pnId"],"language":{"nodejs":{"requiredOutputs":["dnsRecords","id","ips","pnId","port"]}}},"scaleway:index/MongoDbInstancePublicNetwork:MongoDbInstancePublicNetwork":{"properties":{"dnsRecord":{"type":"string","description":"The DNS record of your endpoint\n"},"id":{"type":"string","description":"The ID of the endpoint.\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":{"type":"array","items":{"$ref":"#/types/scaleway:index/ObjectBucketAclAccessControlPolicyGrant:ObjectBucketAclAccessControlPolicyGrant"},"description":"Grant\n"},"owner":{"$ref":"#/types/scaleway:index/ObjectBucketAclAccessControlPolicyOwner:ObjectBucketAclAccessControlPolicyOwner","description":"Configuration block of the bucket project owner's display organization ID.\n"}},"type":"object","required":["owner"]},"scaleway:index/ObjectBucketAclAccessControlPolicyGrant:ObjectBucketAclAccessControlPolicyGrant":{"properties":{"grantee":{"$ref":"#/types/scaleway:index/ObjectBucketAclAccessControlPolicyGrantGrantee:ObjectBucketAclAccessControlPolicyGrantGrantee","description":"Configuration block for the project being granted permissions.\n"},"permission":{"type":"string","description":"Logging permissions assigned to the grantee for the bucket.\n"}},"type":"object","required":["permission"]},"scaleway:index/ObjectBucketAclAccessControlPolicyGrantGrantee:ObjectBucketAclAccessControlPolicyGrantGrantee":{"properties":{"displayName":{"type":"string","description":"Display name of the grantee to grant access to.\n"},"id":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bucket`\" pulumi-lang-dotnet=\"`Bucket`\" pulumi-lang-go=\"`bucket`\" pulumi-lang-python=\"`bucket`\" pulumi-lang-yaml=\"`bucket`\" pulumi-lang-java=\"`bucket`\"\u003e`bucket`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e separated by (`/`).\n"},"type":{"type":"string","description":"Type of grantee. Valid values: `CanonicalUser`, `Group`\n"},"uri":{"type":"string","description":"The uri of the grantee if you are granting permissions to a predefined group.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName"]}}},"scaleway:index/ObjectBucketAclAccessControlPolicyOwner:ObjectBucketAclAccessControlPolicyOwner":{"properties":{"displayName":{"type":"string","description":"The project ID of the grantee.\n"},"id":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bucket`\" pulumi-lang-dotnet=\"`Bucket`\" pulumi-lang-go=\"`bucket`\" pulumi-lang-python=\"`bucket`\" pulumi-lang-yaml=\"`bucket`\" pulumi-lang-java=\"`bucket`\"\u003e`bucket`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e separated by (`/`).\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["displayName","id"]}}},"scaleway:index/ObjectBucketCorsRule:ObjectBucketCorsRule":{"properties":{"allowedHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies which headers are allowed.\n"},"allowedMethods":{"type":"array","items":{"type":"string"},"description":"Specifies which methods are allowed (`GET`, `PUT`, `POST`, `DELETE` or `HEAD`).\n"},"allowedOrigins":{"type":"array","items":{"type":"string"},"description":"Specifies which origins are allowed.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies header exposure in the response.\n"},"maxAgeSeconds":{"type":"integer","description":"Specifies time in seconds that the browser can cache the response for a preflight request.\n"}},"type":"object","required":["allowedMethods","allowedOrigins"]},"scaleway:index/ObjectBucketLifecycleRule:ObjectBucketLifecycleRule":{"properties":{"abortIncompleteMultipartUploadDays":{"type":"integer","description":"Specifies the number of days after initiating a multipart upload when the multipart upload must be completed.\n\n\u003e **Important:** Avoid using \u003cspan pulumi-lang-nodejs=\"`prefix`\" pulumi-lang-dotnet=\"`Prefix`\" pulumi-lang-go=\"`prefix`\" pulumi-lang-python=\"`prefix`\" pulumi-lang-yaml=\"`prefix`\" pulumi-lang-java=\"`prefix`\"\u003e`prefix`\u003c/span\u003e for `AbortIncompleteMultipartUpload`, as any incomplete multipart upload will be billed\n"},"enabled":{"type":"boolean","description":"The element value can be either Enabled or Disabled. If a rule is disabled, Scaleway Object Storage does not perform any of the actions defined in the rule.\n"},"expiration":{"$ref":"#/types/scaleway:index/ObjectBucketLifecycleRuleExpiration:ObjectBucketLifecycleRuleExpiration","description":"Specifies a period in the object's expire\n"},"id":{"type":"string","description":"Unique identifier for the rule. Must be less than or equal to 255 characters in length.\n"},"prefix":{"type":"string","description":"Object key prefix identifying one or more objects to which the rule applies.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Specifies object tags key and value.\n"},"transitions":{"type":"array","items":{"$ref":"#/types/scaleway:index/ObjectBucketLifecycleRuleTransition:ObjectBucketLifecycleRuleTransition"},"description":"Define when objects transition to another storage class\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","id"]}}},"scaleway:index/ObjectBucketLifecycleRuleExpiration:ObjectBucketLifecycleRuleExpiration":{"properties":{"days":{"type":"integer","description":"Specifies the number of days after object creation when the specific rule action takes effect.\n"}},"type":"object","required":["days"]},"scaleway:index/ObjectBucketLifecycleRuleTransition:ObjectBucketLifecycleRuleTransition":{"properties":{"days":{"type":"integer","description":"Specifies the number of days after object creation when the specific rule action takes effect.\n"},"storageClass":{"type":"string","description":"Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class) `STANDARD`, `GLACIER`, `ONEZONE_IA`  to which you want the object to transition.\n\n\n\u003e **Important:**  If versioning is enabled, this rule only deletes the current version of an object.\n\u003e **Important:**  If versioning is enabled, this rule only deletes the current version of an object.\n\n\n\u003e **Important:**  `ONEZONE_IA` is only available in `fr-par` region. The storage class `GLACIER` is not available in `pl-waw` region.\n\u003e **Important:**  `ONEZONE_IA` is only available in `fr-par` region. The storage class `GLACIER` is not available in `pl-waw` region.\n"}},"type":"object","required":["storageClass"]},"scaleway:index/ObjectBucketLockConfigurationRule:ObjectBucketLockConfigurationRule":{"properties":{"defaultRetention":{"$ref":"#/types/scaleway:index/ObjectBucketLockConfigurationRuleDefaultRetention:ObjectBucketLockConfigurationRuleDefaultRetention","description":"The default retention for the lock.\n"}},"type":"object","required":["defaultRetention"]},"scaleway:index/ObjectBucketLockConfigurationRuleDefaultRetention:ObjectBucketLockConfigurationRuleDefaultRetention":{"properties":{"days":{"type":"integer","description":"The number of days you want to specify for the default retention period.\n"},"mode":{"type":"string","description":"The default object lock retention mode you want to apply to new objects placed in the specified bucket. Valid values are `GOVERNANCE` or `COMPLIANCE`. Refer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/object-lock/#retention-modes) for more information on retention modes.\n"},"years":{"type":"integer","description":"The number of years you want to specify for the default retention period.\n"}},"type":"object","required":["mode"]},"scaleway:index/ObjectBucketVersioning:ObjectBucketVersioning":{"properties":{"enabled":{"type":"boolean","description":"Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"scaleway:index/ObjectBucketWebsiteConfigurationErrorDocument:ObjectBucketWebsiteConfigurationErrorDocument":{"properties":{"key":{"type":"string","description":"The object key name to use when a 4XX class error occurs.\n"}},"type":"object","required":["key"]},"scaleway:index/ObjectBucketWebsiteConfigurationIndexDocument:ObjectBucketWebsiteConfigurationIndexDocument":{"properties":{"suffix":{"type":"string","description":"A suffix that is appended to a request targeting a specific directory on the website endpoint.\n\n\u003e **Important:** The suffix must not be empty and must not include a slash character. The routing is not supported.\n"}},"type":"object","required":["suffix"]},"scaleway:index/RedisClusterAcl:RedisClusterAcl":{"properties":{"description":{"type":"string","description":"A text describing this rule. Default description: `Allow IP`\n\n\u003e The \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e conflict with \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e. Only one should be specified.\n"},"id":{"type":"string","description":"The ID of the IPv4 address resource.\n"},"ip":{"type":"string","description":"The IPv4 address or range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation). IPv6 is not supported by the Scaleway API.\n"}},"type":"object","required":["ip"],"language":{"nodejs":{"requiredOutputs":["description","id","ip"]}}},"scaleway:index/RedisClusterPrivateIp:RedisClusterPrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"The ID of the IPv4 address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:index/RedisClusterPrivateNetwork:RedisClusterPrivateNetwork":{"properties":{"endpointId":{"type":"string","description":"The ID of the endpoint.\n"},"id":{"type":"string","description":"The UUID of the Private Network resource.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"},"serviceIps":{"type":"array","items":{"type":"string"},"description":"Endpoint IPv4 addresses in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) (IPv6 is not supported by the Scaleway API). You must provide at least one IP per node.\nKeep in mind that in cluster mode you cannot edit your Private Network after its creation so if you want to be able to\nscale your cluster horizontally (adding nodes) later, you should provide more IPs than nodes.\nIf not set, the IP network address within the private subnet is determined by the IP Address Management (IPAM) service.\n\u003e **Important:** When IPAM is enabled, the IPs specified here will be ignored and should not be provided.\n\n\u003e The \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e conflicts with \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e. Only one should be specified.\n\n\u003e **Important:** The way to use Private Networks differs whether you are using Redis™ in Standalone or cluster mode.\n\n- Standalone mode (\u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e = 1) : you can attach as many Private Networks as you want (each must be a separate\nblock). If you detach your only Private Network, your cluster won't be reachable until you define a new Private or\nPublic Network. You can modify your \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e and its specs, you can have both a Private and Public Network side\nby side.\n\n- Cluster mode (\u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e \u003e 2) : you can define a single Private Network as you create your cluster, you won't be\nable to edit or detach it afterward, unless you create another cluster. This also means that, if you are using a static\nconfiguration (\u003cspan pulumi-lang-nodejs=\"`serviceIps`\" pulumi-lang-dotnet=\"`ServiceIps`\" pulumi-lang-go=\"`serviceIps`\" pulumi-lang-python=\"`service_ips`\" pulumi-lang-yaml=\"`serviceIps`\" pulumi-lang-java=\"`serviceIps`\"\u003e`service_ips`\u003c/span\u003e), you won't be able to scale your cluster horizontally (add more nodes) since it would\nrequire updating the Private Network to add IPs.\nYour \u003cspan pulumi-lang-nodejs=\"`serviceIps`\" pulumi-lang-dotnet=\"`ServiceIps`\" pulumi-lang-go=\"`serviceIps`\" pulumi-lang-python=\"`service_ips`\" pulumi-lang-yaml=\"`serviceIps`\" pulumi-lang-java=\"`serviceIps`\"\u003e`service_ips`\u003c/span\u003e must be listed as follows:\n\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the\nRedis™ cluster should be created.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["endpointId","id","ips","port","serviceIps","zone"]}}},"scaleway:index/RedisClusterPublicNetwork:RedisClusterPublicNetwork":{"properties":{"id":{"type":"string","description":"The ID of the IPv4 address resource.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","ips","port"]}}},"scaleway:index/SecretEphemeralPolicy:SecretEphemeralPolicy":{"properties":{"action":{"type":"string","description":"Action to perform when the version of a secret expires. Available values can be found in [SDK constants](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/secret/v1beta1#pkg-constants).\n"},"expiresOnceAccessed":{"type":"boolean","description":"True if the secret version expires after a single user access.\n"},"ttl":{"type":"string","description":"Time frame, from one second and up to one year, during which the secret's versions are valid. Has to be specified in [Go Duration format](https://pkg.go.dev/time#ParseDuration) (ex: \"30m\", \"24h\").\n"}},"type":"object","required":["action"]},"scaleway:index/SecretVersion:SecretVersion":{"properties":{"createdAt":{"type":"string","description":"Date and time of the secret's creation (in RFC 3339 format).\n"},"description":{"type":"string","description":"Description of the secret (e.g. `my-new-description`).\n"},"latest":{"type":"boolean","description":"Returns true if the version is the latest.\n"},"revision":{"type":"string","description":"The revision of secret version\n"},"secretId":{"type":"string","description":"The secret ID associated with this version\n"},"status":{"type":"string","description":"The status of the secret.\n"},"updatedAt":{"type":"string","description":"Date and time of the secret's last update (in RFC 3339 format).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createdAt","revision","secretId","status","updatedAt"]}}},"scaleway:index/TemDomainReputation:TemDomainReputation":{"properties":{"previousScore":{"type":"integer","description":"The previously-calculated domain's reputation score.\n"},"previousScoredAt":{"type":"string","description":"The time and date the previous reputation score was calculated.\n"},"score":{"type":"integer","description":"A range from 0 to 100 that determines your domain's reputation score.\n"},"scoredAt":{"type":"string","description":"The time and date the score was calculated.\n"},"status":{"type":"string","description":"The status of the domain's reputation.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["previousScore","previousScoredAt","score","scoredAt","status"]}}},"scaleway:index/VpcGatewayNetworkIpamConfig:VpcGatewayNetworkIpamConfig":{"properties":{"ipamIpId":{"type":"string","description":"Use this IPAM-booked IP ID as the Gateway's IP in this Private Network.\n"},"pushDefaultRoute":{"type":"boolean","description":"Defines whether to enable the default route on the GatewayNetwork.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipamIpId"]}}},"scaleway:index/VpcGatewayNetworkPrivateIp:VpcGatewayNetworkPrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"The ID of the IPv4 address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:index/VpcPrivateNetworkIpv4Subnet:VpcPrivateNetworkIpv4Subnet":{"properties":{"address":{"type":"string","description":"The network address of the subnet in hexadecimal notation, e.g., '2001:db8::' for a '2001:db8::/64' subnet.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the subnet.\n"},"id":{"type":"string","description":"The subnet ID.\n"},"prefixLength":{"type":"integer","description":"The length of the network prefix, e.g., 64 for a 'ffff:ffff:ffff:ffff::' mask.\n"},"subnet":{"type":"string","description":"The subnet CIDR.\n","willReplaceOnChanges":true},"subnetMask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","createdAt","id","prefixLength","subnet","subnetMask","updatedAt"]}}},"scaleway:index/VpcPrivateNetworkIpv6Subnet:VpcPrivateNetworkIpv6Subnet":{"properties":{"address":{"type":"string","description":"The network address of the subnet in hexadecimal notation, e.g., '2001:db8::' for a '2001:db8::/64' subnet.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the subnet.\n"},"id":{"type":"string","description":"The subnet ID.\n"},"prefixLength":{"type":"integer","description":"The length of the network prefix, e.g., 64 for a 'ffff:ffff:ffff:ffff::' mask.\n"},"subnet":{"type":"string","description":"The subnet CIDR.\n","willReplaceOnChanges":true},"subnetMask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","createdAt","id","prefixLength","subnet","subnetMask","updatedAt"]}}},"scaleway:index/WebhostingCpanelUrl:WebhostingCpanelUrl":{"properties":{"dashboard":{"type":"string","description":"The URL of the Dashboard.\n"},"webmail":{"type":"string","description":"The URL of the Webmail interface.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dashboard","webmail"]}}},"scaleway:index/WebhostingNameServer:WebhostingNameServer":{"properties":{"hostname":{"type":"string","description":"Hostname of the server\n"},"isDefault":{"type":"boolean","description":"Whether or not the webhosting is the default one\n"},"status":{"type":"string","description":"The hosting status.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["hostname","isDefault","status"]}}},"scaleway:index/WebhostingOption:WebhostingOption":{"properties":{"id":{"type":"string","description":"The option ID.\n"},"name":{"type":"string","description":"The option name.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name"]}}},"scaleway:index/WebhostingRecord:WebhostingRecord":{"properties":{"name":{"type":"string","description":"The option name.\n"},"priority":{"type":"integer","description":"Priority of DNS records associated with the webhosting.\n"},"status":{"type":"string","description":"The hosting status.\n"},"ttl":{"type":"integer","description":"Time to live in seconds of the record\n"},"type":{"type":"string","description":"Type of the DNS record\n"},"value":{"type":"string","description":"Value of the DNS record\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","priority","status","ttl","type","value"]}}},"scaleway:index/getBaremetalOfferCpu:getBaremetalOfferCpu":{"properties":{"coreCount":{"type":"integer","description":"Number of core on this CPU.\n"},"frequency":{"type":"integer","description":"Frequency of the memory in MHz.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"threadCount":{"type":"integer","description":"Number of thread on this CPU.\n"}},"type":"object","required":["coreCount","frequency","name","threadCount"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBaremetalOfferDisk:getBaremetalOfferDisk":{"properties":{"capacity":{"type":"integer","description":"Capacity of the memory in GB.\n"},"type":{"type":"string","description":"Type of memory.\n"}},"type":"object","required":["capacity","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBaremetalOfferMemory:getBaremetalOfferMemory":{"properties":{"capacity":{"type":"integer","description":"Capacity of the memory in GB.\n"},"frequency":{"type":"integer","description":"Frequency of the memory in MHz.\n"},"isEcc":{"type":"boolean","description":"True if error-correcting code is available on this memory.\n"},"type":{"type":"string","description":"Type of memory.\n"}},"type":"object","required":["capacity","frequency","isEcc","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBaremetalServerIp:getBaremetalServerIp":{"properties":{"address":{"type":"string","description":"The IPv6 address\n"},"id":{"type":"string","description":"The ID of the server.\n"},"reverse":{"type":"string","description":"The Reverse of the IPv6\n"},"version":{"type":"string","description":"The version of the IPv6\n"}},"type":"object","required":["address","id","reverse","version"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBaremetalServerIpv4:getBaremetalServerIpv4":{"properties":{"address":{"type":"string","description":"The IPv6 address\n"},"id":{"type":"string","description":"The ID of the server.\n"},"reverse":{"type":"string","description":"The Reverse of the IPv6\n"},"version":{"type":"string","description":"The version of the IPv6\n"}},"type":"object","required":["address","id","reverse","version"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBaremetalServerIpv6:getBaremetalServerIpv6":{"properties":{"address":{"type":"string","description":"The IPv6 address\n"},"id":{"type":"string","description":"The ID of the server.\n"},"reverse":{"type":"string","description":"The Reverse of the IPv6\n"},"version":{"type":"string","description":"The version of the IPv6\n"}},"type":"object","required":["address","id","reverse","version"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBaremetalServerOption:getBaremetalServerOption":{"properties":{"expiresAt":{"type":"string","description":"Auto expire the option after this date\n"},"id":{"type":"string","description":"The ID of the server.\n"},"name":{"type":"string","description":"The server name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`serverId`\" pulumi-lang-dotnet=\"`ServerId`\" pulumi-lang-go=\"`serverId`\" pulumi-lang-python=\"`server_id`\" pulumi-lang-yaml=\"`serverId`\" pulumi-lang-java=\"`serverId`\"\u003e`server_id`\u003c/span\u003e should be specified.\n"}},"type":"object","required":["expiresAt","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBaremetalServerPrivateIp:getBaremetalServerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address\n"},"id":{"type":"string","description":"The ID of the server.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBaremetalServerPrivateNetwork:getBaremetalServerPrivateNetwork":{"properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the private network\n"},"id":{"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"},"mappingId":{"type":"string","description":"The ID of the Server-to-Private Network mapping\n"},"status":{"type":"string","description":"The private network status\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the private network\n"},"vlan":{"type":"integer","description":"The VLAN ID associated to the private network\n"}},"type":"object","required":["createdAt","id","ipamIpIds","mappingId","status","updatedAt","vlan"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBillingConsumptionsConsumption:getBillingConsumptionsConsumption":{"properties":{"billedQuantity":{"type":"string","description":"The consumed quantity.\n"},"categoryName":{"type":"string","description":"The name of the consumption category.\n"},"productName":{"type":"string","description":"The product name.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the consumption list is associated with.\n"},"sku":{"type":"string","description":"The unique identifier of the product.\n"},"unit":{"type":"string","description":"The unit of consumed quantity.\n"},"value":{"type":"string","description":"The monetary value of the consumption.\n"}},"type":"object","required":["billedQuantity","categoryName","productName","projectId","sku","unit","value"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBillingInvoicesInvoice:getBillingInvoicesInvoice":{"properties":{"billingPeriod":{"type":"string","description":"The billing period of the invoice in the YYYY-MM format.\n"},"dueDate":{"type":"string","description":"The payment time limit, set according to the Organization's payment conditions (RFC 3339 format).\n"},"id":{"type":"string","description":"The associated invoice ID.\n"},"invoiceType":{"type":"string","description":"Invoices with the given type are listed. Valid values are \u003cspan pulumi-lang-nodejs=\"`periodic`\" pulumi-lang-dotnet=\"`Periodic`\" pulumi-lang-go=\"`periodic`\" pulumi-lang-python=\"`periodic`\" pulumi-lang-yaml=\"`periodic`\" pulumi-lang-java=\"`periodic`\"\u003e`periodic`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`purchase`\" pulumi-lang-dotnet=\"`Purchase`\" pulumi-lang-go=\"`purchase`\" pulumi-lang-python=\"`purchase`\" pulumi-lang-yaml=\"`purchase`\" pulumi-lang-java=\"`purchase`\"\u003e`purchase`\u003c/span\u003e.\n"},"issuedDate":{"type":"string","description":"The date when the invoice was sent to the customer (RFC 3339 format).\n"},"number":{"type":"integer","description":"The invoice number.\n"},"organizationName":{"type":"string","description":"The organization name.\n"},"sellerName":{"type":"string","description":"The name of the seller (Scaleway).\n"},"startDate":{"type":"string","description":"The start date of the billing period (RFC 3339 format).\n"},"state":{"type":"string","description":"The state of the invoice.\n"},"stopDate":{"type":"string","description":"The end date of the billing period (RFC 3339 format).\n"},"totalDiscount":{"type":"string","description":"The total discount amount of the invoice.\n"},"totalTax":{"type":"string","description":"The total tax amount of the invoice.\n"},"totalTaxed":{"type":"string","description":"The total amount, taxed.\n"},"totalUndiscount":{"type":"string","description":"The total amount of the invoice before applying the discount.\n"},"totalUntaxed":{"type":"string","description":"The total amount, untaxed.\n"}},"type":"object","required":["billingPeriod","dueDate","id","invoiceType","issuedDate","number","organizationName","sellerName","startDate","state","stopDate","totalDiscount","totalTax","totalTaxed","totalUndiscount","totalUntaxed"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBlockSnapshotExport:getBlockSnapshotExport":{"properties":{"bucket":{"type":"string","description":"Bucket containing qcow\n"},"key":{"type":"string","description":"Key of the qcow file in the specified bucket\n"}},"type":"object","required":["bucket","key"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getBlockSnapshotImport:getBlockSnapshotImport":{"properties":{"bucket":{"type":"string","description":"Bucket containing qcow\n"},"key":{"type":"string","description":"Key of the qcow file in the specified bucket\n"}},"type":"object","required":["bucket","key"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getCockpitEndpoint:getCockpitEndpoint":{"properties":{"alertmanagerUrl":{"type":"string","description":"(Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).\n"},"grafanaUrl":{"type":"string","description":"(Deprecated) URL for Grafana.\n"},"logsUrl":{"type":"string","description":"(Deprecated) URL for [logs](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#logs) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.\n"},"metricsUrl":{"type":"string","description":"(Deprecated) URL for [metrics](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#metric) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.\n"},"tracesUrl":{"type":"string","description":"The traces URL.\n"}},"type":"object","required":["alertmanagerUrl","grafanaUrl","logsUrl","metricsUrl","tracesUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getCockpitPushUrl:getCockpitPushUrl":{"properties":{"pushLogsUrl":{"type":"string","description":"Push URL for logs (Grafana Loki)\n"},"pushMetricsUrl":{"type":"string","description":"Push URL for metrics (Grafana Mimir)\n"}},"type":"object","required":["pushLogsUrl","pushMetricsUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getContainerHealthCheck:getContainerHealthCheck":{"properties":{"failureThreshold":{"type":"integer","description":"Number of consecutive health check failures before considering the container unhealthy.\n"},"https":{"type":"array","items":{"$ref":"#/types/scaleway:index/getContainerHealthCheckHttp:getContainerHealthCheckHttp"},"description":"HTTP health check configuration.\n"},"interval":{"type":"string","description":"Period between health checks (in seconds).\n"}},"type":"object","required":["failureThreshold","https","interval"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getContainerHealthCheckHttp:getContainerHealthCheckHttp":{"properties":{"path":{"type":"string","description":"Path to use for the HTTP health check.\n"}},"type":"object","required":["path"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getContainerScalingOption:getContainerScalingOption":{"properties":{"concurrentRequestsThreshold":{"type":"integer","description":"Scale depending on the number of concurrent requests being processed per container instance.\n"},"cpuUsageThreshold":{"type":"integer","description":"Scale depending on the CPU usage of a container instance.\n"},"memoryUsageThreshold":{"type":"integer","description":"Scale depending on the memory usage of a container instance.\n"}},"type":"object","required":["concurrentRequestsThreshold","cpuUsageThreshold","memoryUsageThreshold"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDatabaseAclAclRule:getDatabaseAclAclRule":{"properties":{"description":{"type":"string","description":"A simple text describing this rule\n"},"ip":{"type":"string","description":"The IPv4 address or range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation). IPv6 is not supported by the Scaleway API.\n"}},"type":"object","required":["description","ip"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDatabaseInstanceLoadBalancer:getDatabaseInstanceLoadBalancer":{"properties":{"endpointId":{"type":"string","description":"The endpoint ID\n"},"hostname":{"type":"string","description":"The hostname of your endpoint\n"},"ip":{"type":"string","description":"The IP of your load balancer service\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"port":{"type":"integer","description":"The port of your load balancer service\n"}},"type":"object","required":["endpointId","hostname","ip","name","port"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDatabaseInstanceLogsPolicy:getDatabaseInstanceLogsPolicy":{"properties":{"maxAgeRetention":{"type":"integer","description":"The max age (in days) of remote logs to keep on the Database Instance\n"},"totalDiskRetention":{"type":"integer","description":"The max disk size of remote logs to keep on the Database Instance.\n"}},"type":"object","required":["maxAgeRetention","totalDiskRetention"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDatabaseInstancePrivateIp:getDatabaseInstancePrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address\n"},"id":{"type":"string","description":"The ID of the Database Instance.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDatabaseInstancePrivateNetwork:getDatabaseInstancePrivateNetwork":{"properties":{"enableIpam":{"type":"boolean","description":"Whether or not the private network endpoint should be configured with IPAM\n"},"endpointId":{"type":"string","description":"The endpoint ID\n"},"hostname":{"type":"string","description":"The hostname of your endpoint\n"},"ip":{"type":"string","description":"The IP of your Instance within the private service\n"},"ipNet":{"type":"string","description":"The IP with the given mask within the private subnet\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"pnId":{"type":"string","description":"The private network ID\n"},"port":{"type":"integer","description":"The port of your private service\n"},"zone":{"type":"string","description":"The zone you want to attach the resource to\n"}},"type":"object","required":["enableIpam","endpointId","hostname","ip","ipNet","name","pnId","port","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDatabaseInstanceReadReplica:getDatabaseInstanceReadReplica":{"properties":{"ip":{"type":"string","description":"IP of the replica\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"port":{"type":"integer","description":"Port of the replica\n"}},"type":"object","required":["ip","name","port"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDatabaseInstanceUpgradableVersion:getDatabaseInstanceUpgradableVersion":{"properties":{"id":{"type":"string","description":"The ID of the Database Instance.\n"},"minorVersion":{"type":"string","description":"Minor version string\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"version":{"type":"string","description":"Version string\n"}},"type":"object","required":["id","minorVersion","name","version"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDomainRecordGeoIp:getDomainRecordGeoIp":{"properties":{"matches":{"type":"array","items":{"$ref":"#/types/scaleway:index/getDomainRecordGeoIpMatch:getDomainRecordGeoIpMatch"},"description":"The list of matches\n"}},"type":"object","required":["matches"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDomainRecordGeoIpMatch:getDomainRecordGeoIpMatch":{"properties":{"continents":{"type":"array","items":{"type":"string"},"description":"List of continents (eg: EU for Europe, NA for North America, AS for Asia...). List of all continents code: https://api.scaleway.com/domain-private/v2beta1/continents\n"},"countries":{"type":"array","items":{"type":"string"},"description":"List of countries (eg: FR for France, US for the United States, GB for Great Britain...). List of all countries code: https://api.scaleway.com/domain-private/v2beta1/countries\n"},"data":{"type":"string","description":"The content of the record (e.g., an IPv4 address for an `A` record or a string for a `TXT` record). Cannot be used with \u003cspan pulumi-lang-nodejs=\"`recordId`\" pulumi-lang-dotnet=\"`RecordId`\" pulumi-lang-go=\"`recordId`\" pulumi-lang-python=\"`record_id`\" pulumi-lang-yaml=\"`recordId`\" pulumi-lang-java=\"`recordId`\"\u003e`record_id`\u003c/span\u003e.\n"}},"type":"object","required":["continents","countries","data"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDomainRecordHttpService:getDomainRecordHttpService":{"properties":{"ips":{"type":"array","items":{"type":"string"},"description":"IPs to check\n"},"mustContain":{"type":"string","description":"Text to search\n"},"strategy":{"type":"string","description":"Strategy to return an IP from the IPs list\n"},"url":{"type":"string","description":"URL to match the\u003cspan pulumi-lang-nodejs=\" mustContain \" pulumi-lang-dotnet=\" MustContain \" pulumi-lang-go=\" mustContain \" pulumi-lang-python=\" must_contain \" pulumi-lang-yaml=\" mustContain \" pulumi-lang-java=\" mustContain \"\u003e must_contain \u003c/span\u003etext to validate an IP\n"},"userAgent":{"type":"string","description":"User-agent used when checking the URL\n"}},"type":"object","required":["ips","mustContain","strategy","url","userAgent"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDomainRecordView:getDomainRecordView":{"properties":{"data":{"type":"string","description":"The content of the record (e.g., an IPv4 address for an `A` record or a string for a `TXT` record). Cannot be used with \u003cspan pulumi-lang-nodejs=\"`recordId`\" pulumi-lang-dotnet=\"`RecordId`\" pulumi-lang-go=\"`recordId`\" pulumi-lang-python=\"`record_id`\" pulumi-lang-yaml=\"`recordId`\" pulumi-lang-java=\"`recordId`\"\u003e`record_id`\u003c/span\u003e.\n"},"subnet":{"type":"string","description":"The subnet of the view\n"}},"type":"object","required":["data","subnet"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getDomainRecordWeighted:getDomainRecordWeighted":{"properties":{"ip":{"type":"string","description":"The weighted IP\n"},"weight":{"type":"integer","description":"The weight of the IP\n"}},"type":"object","required":["ip","weight"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getFlexibleIpsIp:getFlexibleIpsIp":{"properties":{"createdAt":{"type":"string","description":"The date on which the flexible IP was created (RFC 3339 format).\n"},"description":{"type":"string","description":"The description of the flexible IP.\n"},"id":{"type":"string","description":"The MAC address ID.\n"},"ipAddress":{"type":"string","description":"IP address of the flexible IP\n"},"macAddresses":{"type":"array","items":{"$ref":"#/types/scaleway:index/getFlexibleIpsIpMacAddress:getFlexibleIpsIpMacAddress"},"description":"The MAC address of the Virtual MAC.\n"},"organizationId":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the IP is in.\n"},"projectId":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is in.\n"},"reverse":{"type":"string","description":"The reverse domain associated with this IP.\n"},"status":{"type":"string","description":"The status of virtual MAC.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. IPs with these exact tags are listed.\n"},"updatedAt":{"type":"string","description":"The date on which the flexible IP was last updated (RFC 3339 format).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which IPs exist.\n"}},"type":"object","required":["createdAt","description","id","ipAddress","macAddresses","organizationId","projectId","reverse","status","tags","updatedAt","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getFlexibleIpsIpMacAddress:getFlexibleIpsIpMacAddress":{"properties":{"createdAt":{"type":"string","description":"The date on which the flexible IP was created (RFC 3339 format).\n"},"id":{"type":"string","description":"The MAC address ID.\n"},"macAddress":{"type":"string","description":"The MAC address of the Virtual MAC.\n"},"macType":{"type":"string","description":"The type of virtual MAC.\n"},"status":{"type":"string","description":"The status of virtual MAC.\n"},"updatedAt":{"type":"string","description":"The date on which the flexible IP was last updated (RFC 3339 format).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which IPs exist.\n"}},"type":"object","required":["createdAt","id","macAddress","macType","status","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstancePrivateNicPrivateIp:getInstancePrivateNicPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address\n"},"id":{"type":"string","description":"The ID of the IP address resource\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstanceSecurityGroupInboundRule:getInstanceSecurityGroupInboundRule":{"properties":{"action":{"type":"string","description":"The action to take when rule match. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"ip":{"type":"string","description":"The ip this rule apply to.\n"},"ipRange":{"type":"string","description":"The ip range (e.g `192.168.1.0/24`) this rule apply to.\n"},"port":{"type":"integer","description":"The port this rule apply to. If no port is specified, rule will apply to all port.\n"},"portRange":{"type":"string","description":"The port range (e.g `22-23`) this rule applies to.\nIf no \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e are specified, rule will apply to all port.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e should be specified.\n"},"protocol":{"type":"string","description":"The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`.\n"}},"type":"object","required":["action","ip","ipRange","port","portRange","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstanceSecurityGroupOutboundRule:getInstanceSecurityGroupOutboundRule":{"properties":{"action":{"type":"string","description":"The action to take when rule match. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"ip":{"type":"string","description":"The ip this rule apply to.\n"},"ipRange":{"type":"string","description":"The ip range (e.g `192.168.1.0/24`) this rule apply to.\n"},"port":{"type":"integer","description":"The port this rule apply to. If no port is specified, rule will apply to all port.\n"},"portRange":{"type":"string","description":"The port range (e.g `22-23`) this rule applies to.\nIf no \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e are specified, rule will apply to all port.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e should be specified.\n"},"protocol":{"type":"string","description":"The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`.\n"}},"type":"object","required":["action","ip","ipRange","port","portRange","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstanceServerFilesystem:getInstanceServerFilesystem":{"properties":{"filesystemId":{"type":"string","description":"The filesystem ID attached to the server\n"},"status":{"type":"string","description":"The state of the filesystem\n"}},"type":"object","required":["filesystemId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstanceServerPrivateIp:getInstanceServerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstanceServerPrivateNetwork:getInstanceServerPrivateNetwork":{"properties":{"macAddress":{"type":"string","description":"MAC address of the NIC\n"},"pnId":{"type":"string","description":"The Private Network ID\n"},"pnicId":{"type":"string","description":"The ID of the NIC\n"},"status":{"type":"string","description":"The private NIC state\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server exists.\n"}},"type":"object","required":["macAddress","pnId","pnicId","status","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstanceServerPublicIp:getInstanceServerPublicIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"dynamic":{"type":"boolean","description":"Whether the IP is dynamic\n"},"family":{"type":"string","description":"IP address family (inet or inet6)\n"},"gateway":{"type":"string","description":"Gateway's IP address\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"},"netmask":{"type":"string","description":"CIDR netmask\n"},"provisioningMode":{"type":"string","description":"Provisioning mode of the IP address\n"}},"type":"object","required":["address","dynamic","family","gateway","id","netmask","provisioningMode"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstanceServerRootVolume:getInstanceServerRootVolume":{"properties":{"boot":{"type":"boolean","description":"Set the volume where the boot the server\n"},"deleteOnTermination":{"type":"boolean","description":"Forces deletion of the root volume on instance termination.\n"},"name":{"type":"string","description":"The server name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`serverId`\" pulumi-lang-dotnet=\"`ServerId`\" pulumi-lang-go=\"`serverId`\" pulumi-lang-python=\"`server_id`\" pulumi-lang-yaml=\"`serverId`\" pulumi-lang-java=\"`serverId`\"\u003e`server_id`\u003c/span\u003e should be specified.\n"},"sbsIops":{"type":"integer","description":"SBS Volume IOPS, only with\u003cspan pulumi-lang-nodejs=\" volumeType \" pulumi-lang-dotnet=\" VolumeType \" pulumi-lang-go=\" volumeType \" pulumi-lang-python=\" volume_type \" pulumi-lang-yaml=\" volumeType \" pulumi-lang-java=\" volumeType \"\u003e volume_type \u003c/span\u003eas sbs_volume\n"},"sizeInGb":{"type":"integer","description":"Size of the root volume in gigabytes.\n"},"volumeId":{"type":"string","description":"The volume ID of the root volume of the server.\n"},"volumeType":{"type":"string","description":"Volume type of the root volume\n"}},"type":"object","required":["boot","deleteOnTermination","name","sbsIops","sizeInGb","volumeId","volumeType"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstanceServersServer:getInstanceServersServer":{"properties":{"bootType":{"type":"string","description":"The boot Type of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bootscript`\" pulumi-lang-dotnet=\"`Bootscript`\" pulumi-lang-go=\"`bootscript`\" pulumi-lang-python=\"`bootscript`\" pulumi-lang-yaml=\"`bootscript`\" pulumi-lang-java=\"`bootscript`\"\u003e`bootscript`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`rescue`\" pulumi-lang-dotnet=\"`Rescue`\" pulumi-lang-go=\"`rescue`\" pulumi-lang-python=\"`rescue`\" pulumi-lang-yaml=\"`rescue`\" pulumi-lang-java=\"`rescue`\"\u003e`rescue`\u003c/span\u003e.\n"},"bootscriptId":{"type":"string","description":"UUID of the bootscript\n","deprecationMessage":"bootscript are not supported"},"enableDynamicIp":{"type":"boolean","description":"If true a dynamic IP will be attached to the server.\n"},"id":{"type":"string","description":"The ID of the IP\n"},"image":{"type":"string","description":"The UUID or the label of the base image used by the server.\n"},"name":{"type":"string","description":"The server name used as filter. Servers with a name like it are listed.\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"placementGroupId":{"type":"string","description":"The [placement group](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) the server is attached to.\n"},"placementGroupPolicyRespected":{"type":"boolean","description":"Whether the placement group policy respected or not\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/getInstanceServersServerPrivateIp:getInstanceServersServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the server.\n"},"projectId":{"type":"string","description":"The ID of the project the server is associated with.\n"},"publicIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/getInstanceServersServerPublicIp:getInstanceServersServerPublicIp"},"description":"The list of public IPs of the server\n"},"securityGroupId":{"type":"string","description":"The [security group](https://developers.scaleway.com/en/products/instance/api/#security-groups-8d7f89) the server is attached to.\n"},"state":{"type":"string","description":"The state of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`started`\" pulumi-lang-dotnet=\"`Started`\" pulumi-lang-go=\"`started`\" pulumi-lang-python=\"`started`\" pulumi-lang-yaml=\"`started`\" pulumi-lang-java=\"`started`\"\u003e`started`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`standby`\" pulumi-lang-dotnet=\"`Standby`\" pulumi-lang-go=\"`standby`\" pulumi-lang-python=\"`standby`\" pulumi-lang-yaml=\"`standby`\" pulumi-lang-java=\"`standby`\"\u003e`standby`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. Servers with these exact tags are listed.\n"},"type":{"type":"string","description":"The commercial type of the server.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which servers exist.\n"}},"type":"object","required":["bootType","bootscriptId","enableDynamicIp","id","image","name","organizationId","placementGroupId","placementGroupPolicyRespected","privateIps","projectId","publicIps","securityGroupId","state","tags","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstanceServersServerPrivateIp:getInstanceServersServerPrivateIp":{"properties":{"address":{"type":"string","description":"The address of the IP\n"},"id":{"type":"string","description":"The ID of the IP\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstanceServersServerPublicIp:getInstanceServersServerPublicIp":{"properties":{"address":{"type":"string","description":"The address of the IP\n"},"id":{"type":"string","description":"The ID of the IP\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getInstanceSnapshotImport:getInstanceSnapshotImport":{"properties":{"bucket":{"type":"string","description":"Bucket containing qcow\n"},"key":{"type":"string","description":"Key of the qcow file in the specified bucket\n"}},"type":"object","required":["bucket","key"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getIotDeviceCertificate:getIotDeviceCertificate":{"properties":{"crt":{"type":"string","description":"X509 PEM encoded certificate of the device\n"},"key":{"type":"string","description":"X509 PEM encoded key of the device\n"}},"type":"object","required":["crt","key"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getIotDeviceMessageFilter:getIotDeviceMessageFilter":{"properties":{"publishes":{"type":"array","items":{"$ref":"#/types/scaleway:index/getIotDeviceMessageFilterPublish:getIotDeviceMessageFilterPublish"},"description":"Rule to restrict topics the device can publish to\n"},"subscribes":{"type":"array","items":{"$ref":"#/types/scaleway:index/getIotDeviceMessageFilterSubscribe:getIotDeviceMessageFilterSubscribe"},"description":"Rule to restrict topics the device can subscribe to\n"}},"type":"object","required":["publishes","subscribes"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getIotDeviceMessageFilterPublish:getIotDeviceMessageFilterPublish":{"properties":{"policy":{"type":"string","description":"Publish message filter policy\n"},"topics":{"type":"array","items":{"type":"string"},"description":"List of topics in the set\n"}},"type":"object","required":["policy","topics"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getIotDeviceMessageFilterSubscribe:getIotDeviceMessageFilterSubscribe":{"properties":{"policy":{"type":"string","description":"Subscribe message filter policy\n"},"topics":{"type":"array","items":{"type":"string"},"description":"List of topics in the set\n"}},"type":"object","required":["policy","topics"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getIpamIpResource:getIpamIpResource":{"properties":{"id":{"type":"string","description":"The ID of the resource that the IP is attached to.\n"},"name":{"type":"string","description":"The name of the resource the IP is attached to.\n"},"type":{"type":"string","description":"The type of the resource the IP is attached to. [Documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/ipam/v1#pkg-constants) with type list.\n"}},"type":"object","required":["type"]},"scaleway:index/getIpamIpsIp:getIpamIpsIp":{"properties":{"address":{"type":"string","description":"The Scaleway internal IP address of the resource.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the IP.\n"},"id":{"type":"string","description":"The ID of the resource.\n"},"projectId":{"type":"string","description":"The ID of the Project to filter for.\n"},"region":{"type":"string","description":"The region to filter for.\n"},"resources":{"type":"array","items":{"$ref":"#/types/scaleway:index/getIpamIpsIpResource:getIpamIpsIpResource"},"description":"Filter for a resource attached to the IP, using resource ID, type or name.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The IP tags to filter for.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the IP.\n"},"zone":{"type":"string","description":"The zone of the IP.\n"}},"type":"object","required":["address","createdAt","id","projectId","region","resources","tags","updatedAt","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getIpamIpsIpResource:getIpamIpsIpResource":{"properties":{"id":{"type":"string","description":"The ID of the attached resource.\n"},"macAddress":{"type":"string","description":"The linked MAC address to filter for.\n"},"name":{"type":"string","description":"The name of the attached resource.\n"},"type":{"type":"string","description":"The type of the attached resource. [Documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/ipam/v1#pkg-constants) with type list.\n"}},"type":"object","required":["id","macAddress","name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getIpamIpsResource:getIpamIpsResource":{"properties":{"id":{"type":"string","description":"The ID of the attached resource.\n"},"name":{"type":"string","description":"The name of the attached resource.\n"},"type":{"type":"string","description":"The type of the attached resource. [Documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/ipam/v1#pkg-constants) with type list.\n"}},"type":"object","required":["type"]},"scaleway:index/getKeyManagerKeyRotationPolicy:getKeyManagerKeyRotationPolicy":{"properties":{"nextRotationAt":{"type":"string","description":"Timestamp indicating the next scheduled rotation.\n"},"rotationPeriod":{"type":"string","description":"Time interval between two key rotations. The minimum duration is 24 hours and the maximum duration is 1 year (876000 hours).\n"}},"type":"object","required":["nextRotationAt","rotationPeriod"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getKubernetesClusterAutoUpgrade:getKubernetesClusterAutoUpgrade":{"properties":{"enable":{"type":"boolean","description":"True if Kubernetes patch version auto upgrades is enabled.\n"},"maintenanceWindowDay":{"type":"string","description":"The day of the auto upgrade maintenance window (\u003cspan pulumi-lang-nodejs=\"`monday`\" pulumi-lang-dotnet=\"`Monday`\" pulumi-lang-go=\"`monday`\" pulumi-lang-python=\"`monday`\" pulumi-lang-yaml=\"`monday`\" pulumi-lang-java=\"`monday`\"\u003e`monday`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`sunday`\" pulumi-lang-dotnet=\"`Sunday`\" pulumi-lang-go=\"`sunday`\" pulumi-lang-python=\"`sunday`\" pulumi-lang-yaml=\"`sunday`\" pulumi-lang-java=\"`sunday`\"\u003e`sunday`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\"\u003e`any`\u003c/span\u003e).\n"},"maintenanceWindowStartHour":{"type":"integer","description":"The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).\n"}},"type":"object","required":["enable","maintenanceWindowDay","maintenanceWindowStartHour"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getKubernetesClusterAutoscalerConfig:getKubernetesClusterAutoscalerConfig":{"properties":{"balanceSimilarNodeGroups":{"type":"boolean","description":"True if detecting similar node groups and balance the number of nodes between them is enabled.\n"},"disableScaleDown":{"type":"boolean","description":"True if the scale down feature of the autoscaler is disabled.\n"},"estimator":{"type":"string","description":"The type of resource estimator used in scale up.\n"},"expander":{"type":"string","description":"The type of node group expander be used in scale up.\n"},"expendablePodsPriorityCutoff":{"type":"integer","description":"Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.\n"},"ignoreDaemonsetsUtilization":{"type":"boolean","description":"True if ignoring DaemonSet pods when calculating resource utilization for scaling down is enabled.\n"},"maxGracefulTerminationSec":{"type":"integer","description":"Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node\n"},"scaleDownDelayAfterAdd":{"type":"string","description":"The duration after scale up that scale down evaluation resumes.\n"},"scaleDownUnneededTime":{"type":"string","description":"The duration a node should be unneeded before it is eligible for scale down.\n"},"scaleDownUtilizationThreshold":{"type":"number","description":"Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down\n"}},"type":"object","required":["balanceSimilarNodeGroups","disableScaleDown","estimator","expander","expendablePodsPriorityCutoff","ignoreDaemonsetsUtilization","maxGracefulTerminationSec","scaleDownDelayAfterAdd","scaleDownUnneededTime","scaleDownUtilizationThreshold"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getKubernetesClusterKubeconfig:getKubernetesClusterKubeconfig":{"properties":{"clusterCaCertificate":{"type":"string","description":"The CA certificate of the Kubernetes API server.\n"},"configFile":{"type":"string","description":"The raw kubeconfig file.\n"},"host":{"type":"string","description":"The URL of the Kubernetes API server.\n"},"token":{"type":"string","description":"The token to connect to the Kubernetes API server.\n"}},"type":"object","required":["clusterCaCertificate","configFile","host","token"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getKubernetesClusterOpenIdConnectConfig:getKubernetesClusterOpenIdConnectConfig":{"properties":{"clientId":{"type":"string","description":"A client id that all tokens must be issued for\n"},"groupsClaims":{"type":"array","items":{"type":"string"},"description":"JWT claim to use as the user's group\n"},"groupsPrefix":{"type":"string","description":"Prefix prepended to group claims\n"},"issuerUrl":{"type":"string","description":"URL of the provider which allows the API server to discover public signing keys\n"},"requiredClaims":{"type":"array","items":{"type":"string"},"description":"Multiple key=value pairs that describes a required claim in the ID Token\n"},"usernameClaim":{"type":"string","description":"JWT claim to use as the user name\n"},"usernamePrefix":{"type":"string","description":"Prefix prepended to username\n"}},"type":"object","required":["clientId","groupsClaims","groupsPrefix","issuerUrl","requiredClaims","usernameClaim","usernamePrefix"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getKubernetesNodePoolNode:getKubernetesNodePoolNode":{"properties":{"id":{"type":"string","description":"The ID of the pool.\n"},"name":{"type":"string","description":"The pool name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`poolId`\" pulumi-lang-dotnet=\"`PoolId`\" pulumi-lang-go=\"`poolId`\" pulumi-lang-python=\"`pool_id`\" pulumi-lang-yaml=\"`poolId`\" pulumi-lang-java=\"`poolId`\"\u003e`pool_id`\u003c/span\u003e should be specified. \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e should be specified with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/getKubernetesNodePoolNodePrivateIp:getKubernetesNodePoolNodePrivateIp"},"description":"List of private IPv4 and IPv6 addresses associated with the node\n"},"publicIp":{"type":"string","description":"The public IPv4.\n"},"publicIpV6":{"type":"string","description":"The public IPv6.\n"},"status":{"type":"string","description":"The status of the node.\n"}},"type":"object","required":["id","name","privateIps","publicIp","publicIpV6","status"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getKubernetesNodePoolNodePrivateIp:getKubernetesNodePoolNodePrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address\n"},"id":{"type":"string","description":"The ID of the pool.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getKubernetesNodePoolUpgradePolicy:getKubernetesNodePoolUpgradePolicy":{"properties":{"maxSurge":{"type":"integer","description":"The maximum number of nodes to be created during the upgrade\n"},"maxUnavailable":{"type":"integer","description":"The maximum number of nodes that can be not ready at the same time\n"}},"type":"object","required":["maxSurge","maxUnavailable"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbAclsAcl:getLbAclsAcl":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/scaleway:index/getLbAclsAclAction:getLbAclsAclAction"},"description":"The action to be undertaken when an ACL filter matches.\n"},"createdAt":{"type":"string","description":"The date on which the ACL was created (RFC 3339 format).\n"},"description":{"type":"string","description":"The description of the ACL resource.\n"},"frontendId":{"type":"string","description":"The frontend ID this ACL is attached to. ACLs with a matching frontend ID are listed.\n\u003e **Important:** LB frontend IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111`\n"},"id":{"type":"string","description":"The associated ACL ID.\n\u003e **Important:** LB ACLs' IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111`\n"},"index":{"type":"integer","description":"The priority of this ACL in the ordered list.\n"},"matches":{"type":"array","items":{"$ref":"#/types/scaleway:index/getLbAclsAclMatch:getLbAclsAclMatch"},"description":"The ACL match rule.\n"},"name":{"type":"string","description":"The ACL name to filter for. ACLs with a matching name are listed.\n"},"updateAt":{"type":"string","description":"The date on which the ACL was last updated (RFC 3339 format).\n"}},"type":"object","required":["actions","createdAt","description","frontendId","id","index","matches","name","updateAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbAclsAclAction:getLbAclsAclAction":{"properties":{"redirects":{"type":"array","items":{"$ref":"#/types/scaleway:index/getLbAclsAclActionRedirect:getLbAclsAclActionRedirect"},"description":"Redirect parameters when using an ACL with \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e action.\n"},"type":{"type":"string","description":"The redirect type.\n"}},"type":"object","required":["redirects","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbAclsAclActionRedirect:getLbAclsAclActionRedirect":{"properties":{"code":{"type":"integer","description":"The HTTP redirect code to use.\n"},"target":{"type":"string","description":"The URL used in case of a location redirect, or the scheme name that replaces the request's original scheme.\n"},"type":{"type":"string","description":"The redirect type.\n"}},"type":"object","required":["code","target","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbAclsAclMatch:getLbAclsAclMatch":{"properties":{"httpFilter":{"type":"string","description":"The HTTP filter to match.\n"},"httpFilterOption":{"type":"string","description":"A list of possible values for the HTTP filter based on the HTTP header.\n"},"httpFilterValues":{"type":"array","items":{"type":"string"},"description":"The possible values to match for a given HTTP filter.\n"},"invert":{"type":"boolean","description":"The condition will be of type \"unless\" if invert is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"ipSubnets":{"type":"array","items":{"type":"string"},"description":"A list of IPs, or CIDR v4/v6 addresses of the session client, to match.\n"},"ipsEdgeServices":{"type":"boolean","description":"Defines whether Edge Services IPs should be matched.\n"}},"type":"object","required":["httpFilter","httpFilterOption","httpFilterValues","invert","ipSubnets","ipsEdgeServices"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbBackendHealthCheckHttp:getLbBackendHealthCheckHttp":{"properties":{"code":{"type":"integer","description":"The expected HTTP status code\n"},"hostHeader":{"type":"string","description":"The HTTP host header to use for HC requests\n"},"method":{"type":"string","description":"The HTTP method to use for HC requests\n"},"sni":{"type":"string","description":"The SNI to use for HC requests over SSL\n"},"uri":{"type":"string","description":"The HTTPS endpoint URL to call for HC requests\n"}},"type":"object","required":["code","hostHeader","method","sni","uri"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbBackendHealthCheckTcp:getLbBackendHealthCheckTcp":{"type":"object"},"scaleway:index/getLbBackendsBackend:getLbBackendsBackend":{"properties":{"createdAt":{"type":"string","description":"The date on which the backend was created (RFC 3339 format).\n"},"failoverHost":{"type":"string","description":"Scaleway S3 bucket website to be served if all backend servers are down.\n"},"forwardPort":{"type":"integer","description":"User sessions will be forwarded to this backend server port.\n"},"forwardPortAlgorithm":{"type":"string","description":"Load balancing algorithm.\n"},"forwardProtocol":{"type":"string","description":"Backend protocol.\n"},"healthCheckDelay":{"type":"string","description":"Interval between two health check requests.\n"},"healthCheckHttp":{"type":"array","items":{"$ref":"#/types/scaleway:index/getLbBackendsBackendHealthCheckHttp:getLbBackendsBackendHealthCheckHttp"},"description":"This block enables HTTP health checks.\n"},"healthCheckHttps":{"type":"array","items":{"$ref":"#/types/scaleway:index/getLbBackendsBackendHealthCheckHttp:getLbBackendsBackendHealthCheckHttp"},"description":"This block enables HTTPS health checks.\n"},"healthCheckMaxRetries":{"type":"integer","description":"Number of allowed failed health check requests before the backend server is marked as down.\n"},"healthCheckPort":{"type":"integer","description":"Port the health check requests will be sent to.\n"},"healthCheckTcps":{"type":"array","items":{"$ref":"#/types/scaleway:index/getLbBackendsBackendHealthCheckTcp:getLbBackendsBackendHealthCheckTcp"},"description":"This block enables TCP health checks.\n"},"healthCheckTimeout":{"type":"string","description":"Timeout before a health check request is considered failed.\n"},"id":{"type":"string","description":"The associated backend ID.\n"},"ignoreSslServerVerify":{"type":"boolean","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection.\n"},"lbId":{"type":"string","description":"The Load Balancer ID this backend is attached to. Backends with a matching ID are listed.\n"},"name":{"type":"string","description":"The backend name to filter for. Backends with a matching name are listed.\n"},"onMarkedDownAction":{"type":"string","description":"Modify what occurs when a backend server is marked down.\n"},"proxyProtocol":{"type":"string","description":"The type of PROXY protocol.\n"},"serverIps":{"type":"array","items":{"type":"string"},"description":"List of backend server IP addresses.\n"},"sslBridging":{"type":"boolean","description":"Enables SSL between Load Balancer and backend servers.\n"},"stickySessions":{"type":"string","description":"Enables cookie-based session persistence.\n"},"stickySessionsCookieName":{"type":"string","description":"Cookie name for sticky sessions.\n"},"timeoutConnect":{"type":"string","description":"Maximum initial server connection establishment time.\n"},"timeoutServer":{"type":"string","description":"Maximum server connection inactivity time.\n"},"timeoutTunnel":{"type":"string","description":"Maximum tunnel inactivity time.\n"},"updateAt":{"type":"string","description":"The date on which the backend was last updated (RFC 3339 format).\n"}},"type":"object","required":["createdAt","failoverHost","forwardPort","forwardPortAlgorithm","forwardProtocol","healthCheckDelay","healthCheckHttp","healthCheckHttps","healthCheckMaxRetries","healthCheckPort","healthCheckTcps","healthCheckTimeout","id","ignoreSslServerVerify","lbId","name","onMarkedDownAction","proxyProtocol","serverIps","sslBridging","stickySessions","stickySessionsCookieName","timeoutConnect","timeoutServer","timeoutTunnel","updateAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbBackendsBackendHealthCheckHttp:getLbBackendsBackendHealthCheckHttp":{"properties":{"code":{"type":"integer","description":"The expected HTTP status code.\n"},"hostHeader":{"type":"string","description":"The HTTP host header to use for health check requests.\n"},"method":{"type":"string","description":"The HTTP method to use for health check requests.\n"},"sni":{"type":"string","description":"The SNI to use for HC requests over SSL.\n"},"uri":{"type":"string","description":"The path of health check requests.\n"}},"type":"object","required":["code","hostHeader","method","sni","uri"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbBackendsBackendHealthCheckTcp:getLbBackendsBackendHealthCheckTcp":{"type":"object"},"scaleway:index/getLbFrontendAcl:getLbFrontendAcl":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/scaleway:index/getLbFrontendAclAction:getLbFrontendAclAction"},"description":"Action to undertake when an ACL filter matches\n"},"createdAt":{"type":"string","description":"IsDate and time of ACL's creation (RFC 3339 format)\n"},"description":{"type":"string","description":"Description of the ACL\n"},"matches":{"type":"array","items":{"$ref":"#/types/scaleway:index/getLbFrontendAclMatch:getLbFrontendAclMatch"},"description":"The ACL match rule\n"},"name":{"type":"string","description":"The name of the frontend.\n- When using the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e you should specify the `lb-id`\n"},"updatedAt":{"type":"string","description":"IsDate and time of ACL's update (RFC 3339 format)\n"}},"type":"object","required":["actions","createdAt","description","matches","name","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbFrontendAclAction:getLbFrontendAclAction":{"properties":{"redirects":{"type":"array","items":{"$ref":"#/types/scaleway:index/getLbFrontendAclActionRedirect:getLbFrontendAclActionRedirect"},"description":"Redirect parameters when using an ACL with \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e action\n"},"type":{"type":"string","description":"The action type\n"}},"type":"object","required":["redirects","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbFrontendAclActionRedirect:getLbFrontendAclActionRedirect":{"properties":{"code":{"type":"integer","description":"The HTTP redirect code to use\n"},"target":{"type":"string","description":"An URL can be used in case of a location redirect\n"},"type":{"type":"string","description":"The redirect type\n"}},"type":"object","required":["code","target","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbFrontendAclMatch:getLbFrontendAclMatch":{"properties":{"httpFilter":{"type":"string","description":"The HTTP filter to match\n"},"httpFilterOption":{"type":"string","description":"You can use this field with\u003cspan pulumi-lang-nodejs=\" httpHeaderMatch \" pulumi-lang-dotnet=\" HttpHeaderMatch \" pulumi-lang-go=\" httpHeaderMatch \" pulumi-lang-python=\" http_header_match \" pulumi-lang-yaml=\" httpHeaderMatch \" pulumi-lang-java=\" httpHeaderMatch \"\u003e http_header_match \u003c/span\u003eacl type to set the header name to filter\n"},"httpFilterValues":{"type":"array","items":{"type":"string"},"description":"A list of possible values to match for the given HTTP filter\n"},"invert":{"type":"boolean","description":"If set to true, the condition will be of type \"unless\"\n"},"ipSubnets":{"type":"array","items":{"type":"string"},"description":"A list of IPs or CIDR v4/v6 addresses of the client of the session to match\n"},"ipsEdgeServices":{"type":"boolean","description":"Defines whether Edge Services IPs should be matched\n"}},"type":"object","required":["httpFilter","httpFilterOption","httpFilterValues","invert","ipSubnets","ipsEdgeServices"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbFrontendsFrontend:getLbFrontendsFrontend":{"properties":{"backendId":{"type":"string","description":"The Load Balancer backend ID this frontend is attached to.\n\u003e **Important:** Load Balancer backend IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111`\n"},"certificateIds":{"type":"array","items":{"type":"string"},"description":"List of certificate IDs that are used by the frontend.\n"},"connectionRateLimit":{"type":"integer","description":"The rate limit for new connections established on this frontend. Use 0 value to disable, else value is connections per second.\n"},"createdAt":{"type":"string","description":"The date on which the frontend was created (RFC 3339 format).\n"},"enableAccessLogs":{"type":"boolean","description":"Defines whether to enable access logs on the frontend.\n"},"enableHttp3":{"type":"boolean","description":"Whether HTTP/3 protocol is activated.\n"},"id":{"type":"string","description":"The ID of the associated frontend.\n\u003e **Important:** LB frontend IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111`\n"},"inboundPort":{"type":"integer","description":"TCP port the frontend listens to.\n"},"lbId":{"type":"string","description":"The Load Balancer ID this frontend is attached to. Frontends with a matching ID are listed.\n"},"name":{"type":"string","description":"The frontend name to filter for. Frontends with a matching name are listed.\n"},"timeoutClient":{"type":"string","description":"Maximum inactivity time on the client side.\n"},"updateAt":{"type":"string","description":"The date on which the frontend was last updated (RFC 3339 format).\n"}},"type":"object","required":["backendId","certificateIds","connectionRateLimit","createdAt","enableAccessLogs","enableHttp3","id","inboundPort","lbId","name","timeoutClient","updateAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbIpsIp:getLbIpsIp":{"properties":{"id":{"type":"string","description":"The ID of the associated IP.\n"},"ipAddress":{"type":"string","description":"The IP address\n"},"lbId":{"type":"string","description":"The ID of the associated Load BalancerD, if any\n"},"organizationId":{"type":"string","description":"The ID of the Organization the Load Balancer is associated with.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n"},"reverse":{"type":"string","description":"The reverse domain associated with this IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. IPs with these exact tags are listed.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IPs exist.\n"}},"type":"object","required":["id","ipAddress","lbId","organizationId","projectId","reverse","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbRoutesRoute:getLbRoutesRoute":{"properties":{"backendId":{"type":"string","description":"The backend ID to redirect to\n"},"createdAt":{"type":"string","description":"The date on which the route was created (RFC 3339 format).\n"},"frontendId":{"type":"string","description":"The frontend ID (the origin of the redirection), to filter for. Routes with a matching frontend ID are listed.\n"},"id":{"type":"string","description":"The associated route ID.\n"},"matchHostHeader":{"type":"string","description":"Specifies the host of the server to which the request is being sent.\n"},"matchSni":{"type":"string","description":"Server Name Indication TLS extension field from an incoming connection made via an SSL/TLS transport layer.\n"},"matchSubdomains":{"type":"boolean","description":"If true, all subdomains will match.\n"},"updateAt":{"type":"string","description":"The date on which the route was last updated (RFC 3339 format).\n"}},"type":"object","required":["backendId","createdAt","frontendId","id","matchHostHeader","matchSni","matchSubdomains","updateAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbsLb:getLbsLb":{"properties":{"backendCount":{"type":"integer","description":"Number of backends the Load Balancer has.\n"},"createdAt":{"type":"string","description":"Date on which the Load Balancer was created.\n"},"description":{"type":"string","description":"The description of the Load Balancer.\n"},"frontendCount":{"type":"integer","description":"Number of frontends the Load Balancer has.\n"},"id":{"type":"string","description":"The ID of the Load Balancer.\n"},"instances":{"type":"array","items":{"$ref":"#/types/scaleway:index/getLbsLbInstance:getLbsLbInstance"},"description":"List of underlying Instances.\n"},"ips":{"type":"array","items":{"$ref":"#/types/scaleway:index/getLbsLbIp:getLbsLbIp"},"description":"List of IPs attached to the Load Balancer.\n"},"name":{"type":"string","description":"The Load Balancer name to filter for. Load Balancers with a matching name are listed.\n"},"organizationId":{"type":"string","description":"The ID of the Organization the Load Balancer is associated with.\n"},"privateNetworkCount":{"type":"integer","description":"Number of Private Networks attached to the Load balancer.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n"},"routeCount":{"type":"integer","description":"Number of routes the Load balancer has.\n"},"sslCompatibilityLevel":{"type":"string","description":"Determines the minimal SSL version which needs to be supported on the client side.\n"},"status":{"type":"string","description":"The state of the Load Balancer Instance. Possible values are: \u003cspan pulumi-lang-nodejs=\"`unknown`\" pulumi-lang-dotnet=\"`Unknown`\" pulumi-lang-go=\"`unknown`\" pulumi-lang-python=\"`unknown`\" pulumi-lang-yaml=\"`unknown`\" pulumi-lang-java=\"`unknown`\"\u003e`unknown`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ready`\" pulumi-lang-dotnet=\"`Ready`\" pulumi-lang-go=\"`ready`\" pulumi-lang-python=\"`ready`\" pulumi-lang-yaml=\"`ready`\" pulumi-lang-java=\"`ready`\"\u003e`ready`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pending`\" pulumi-lang-dotnet=\"`Pending`\" pulumi-lang-go=\"`pending`\" pulumi-lang-python=\"`pending`\" pulumi-lang-yaml=\"`pending`\" pulumi-lang-java=\"`pending`\"\u003e`pending`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`migrating`\" pulumi-lang-dotnet=\"`Migrating`\" pulumi-lang-go=\"`migrating`\" pulumi-lang-python=\"`migrating`\" pulumi-lang-yaml=\"`migrating`\" pulumi-lang-java=\"`migrating`\"\u003e`migrating`\u003c/span\u003e.\n"},"subscriber":{"type":"string","description":"The subscriber information.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. Load Balancers with these exact tags are listed.\n"},"type":{"type":"string","description":"The offer type of the Load Balancer.\n"},"updatedAt":{"type":"string","description":"Date on which the Load Balancer was updated.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancers exist.\n"}},"type":"object","required":["backendCount","createdAt","description","frontendCount","id","instances","ips","name","organizationId","privateNetworkCount","projectId","routeCount","sslCompatibilityLevel","status","subscriber","tags","type","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbsLbInstance:getLbsLbInstance":{"properties":{"createdAt":{"type":"string","description":"Date on which the Load Balancer was created.\n"},"id":{"type":"string","description":"The ID of the Load Balancer.\n"},"ipAddress":{"type":"string","description":"IP address of the instance\n"},"status":{"type":"string","description":"The state of the Load Balancer Instance. Possible values are: \u003cspan pulumi-lang-nodejs=\"`unknown`\" pulumi-lang-dotnet=\"`Unknown`\" pulumi-lang-go=\"`unknown`\" pulumi-lang-python=\"`unknown`\" pulumi-lang-yaml=\"`unknown`\" pulumi-lang-java=\"`unknown`\"\u003e`unknown`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ready`\" pulumi-lang-dotnet=\"`Ready`\" pulumi-lang-go=\"`ready`\" pulumi-lang-python=\"`ready`\" pulumi-lang-yaml=\"`ready`\" pulumi-lang-java=\"`ready`\"\u003e`ready`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pending`\" pulumi-lang-dotnet=\"`Pending`\" pulumi-lang-go=\"`pending`\" pulumi-lang-python=\"`pending`\" pulumi-lang-yaml=\"`pending`\" pulumi-lang-java=\"`pending`\"\u003e`pending`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`migrating`\" pulumi-lang-dotnet=\"`Migrating`\" pulumi-lang-go=\"`migrating`\" pulumi-lang-python=\"`migrating`\" pulumi-lang-yaml=\"`migrating`\" pulumi-lang-java=\"`migrating`\"\u003e`migrating`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"Date on which the Load Balancer was updated.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancers exist.\n"}},"type":"object","required":["createdAt","id","ipAddress","status","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLbsLbIp:getLbsLbIp":{"properties":{"id":{"type":"string","description":"The ID of the Load Balancer.\n"},"ipAddress":{"type":"string","description":"IP address\n"},"lbId":{"type":"string","description":"UUID of the load balancer attached to the IP\n"},"organizationId":{"type":"string","description":"The ID of the Organization the Load Balancer is associated with.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n"},"reverse":{"type":"string","description":"Reverse DNS attached to the IP\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancers exist.\n"}},"type":"object","required":["id","ipAddress","lbId","organizationId","projectId","reverse"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLoadbalancerCertificateCustomCertificate:getLoadbalancerCertificateCustomCertificate":{"properties":{"certificateChain":{"type":"string","description":"The full PEM-formatted certificate chain\n"}},"type":"object","required":["certificateChain"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLoadbalancerCertificateLetsencrypt:getLoadbalancerCertificateLetsencrypt":{"properties":{"commonName":{"type":"string","description":"The main domain name of the certificate\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The alternative domain names of the certificate\n"}},"type":"object","required":["commonName","subjectAlternativeNames"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLoadbalancerPrivateIp:getLoadbalancerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address\n"},"id":{"type":"string","description":"The ID of the Load Balancer.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getLoadbalancerPrivateNetwork:getLoadbalancerPrivateNetwork":{"properties":{"dhcpConfig":{"type":"boolean","description":"Set to true if you want to let DHCP assign IP addresses\n"},"ipamIds":{"type":"array","items":{"type":"string"},"description":"IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network\n"},"privateNetworkId":{"type":"string","description":"The Private Network ID\n"},"staticConfigs":{"type":"array","items":{"type":"string"},"description":"Define an IP address in the subnet of your private network that will be assigned to your load balancer instance\n"},"status":{"type":"string","description":"The status of private network connection\n"},"zone":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancer exists.\n"}},"type":"object","required":["dhcpConfig","ipamIds","privateNetworkId","staticConfigs","status","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getMongoDbInstancePrivateIp:getMongoDbInstancePrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address\n"},"id":{"type":"string","description":"The ID of the MongoDB® Instance.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getMongoDbInstancePrivateNetwork:getMongoDbInstancePrivateNetwork":{"properties":{"dnsRecords":{"type":"array","items":{"type":"string"},"description":"List of DNS records for your endpoint\n"},"id":{"type":"string","description":"The ID of the MongoDB® Instance.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IP addresses for your endpoint\n"},"pnId":{"type":"string","description":"The private network ID\n"},"port":{"type":"integer","description":"TCP port of the endpoint\n"}},"type":"object","required":["dnsRecords","id","ips","pnId","port"],"language":{"nodejs":{"requiredInputs":[]}}},"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":{"type":"array","items":{"type":"string"},"description":"Allowed headers in the CORS rule\n"},"allowedMethods":{"type":"array","items":{"type":"string"},"description":"Allowed HTTP methods allowed in the CORS rule\n"},"allowedOrigins":{"type":"array","items":{"type":"string"},"description":"Allowed origins allowed in the CORS rule\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Exposed headers in the CORS rule\n"},"maxAgeSeconds":{"type":"integer","description":"Max age of the CORS rule\n"}},"type":"object","required":["allowedHeaders","allowedMethods","allowedOrigins","exposeHeaders","maxAgeSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getObjectBucketLifecycleRule:getObjectBucketLifecycleRule":{"properties":{"abortIncompleteMultipartUploadDays":{"type":"integer","description":"Specifies the number of days after initiating a multipart upload when the multipart upload must be completed\n"},"enabled":{"type":"boolean","description":"Specifies if the configuration rule is Enabled or Disabled\n"},"expirations":{"type":"array","items":{"$ref":"#/types/scaleway:index/getObjectBucketLifecycleRuleExpiration:getObjectBucketLifecycleRuleExpiration"},"description":"Specifies a period in the object's expire\n"},"id":{"type":"string","description":"The unique identifier of the bucket.\n"},"prefix":{"type":"string","description":"The prefix identifying one or more objects to which the rule applies\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags associated with the bucket lifecycle\n"},"transitions":{"type":"array","items":{"$ref":"#/types/scaleway:index/getObjectBucketLifecycleRuleTransition:getObjectBucketLifecycleRuleTransition"},"description":"Define when objects transition to another storage class\n"}},"type":"object","required":["abortIncompleteMultipartUploadDays","enabled","expirations","id","prefix","tags","transitions"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getObjectBucketLifecycleRuleExpiration:getObjectBucketLifecycleRuleExpiration":{"properties":{"days":{"type":"integer","description":"Specifies the number of days after object creation when the specific rule action takes effect\n"}},"type":"object","required":["days"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getObjectBucketLifecycleRuleTransition:getObjectBucketLifecycleRuleTransition":{"properties":{"days":{"type":"integer","description":"Specifies the number of days after object creation when the specific rule action takes effect\n"},"storageClass":{"type":"string","description":"Specifies the Scaleway Object Storage class to which you want the object to transition\n"}},"type":"object","required":["days","storageClass"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getObjectBucketVersioning:getObjectBucketVersioning":{"properties":{"enabled":{"type":"boolean","description":"Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getRedisClusterAcl:getRedisClusterAcl":{"properties":{"description":{"type":"string","description":"Description of the rule.\n"},"id":{"type":"string","description":"The ID of the Redis cluster.\n"},"ip":{"type":"string","description":"IPv4 network address of the rule in CIDR notation (IPv6 is not supported by the Scaleway API).\n"}},"type":"object","required":["description","id","ip"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getRedisClusterPrivateIp:getRedisClusterPrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address\n"},"id":{"type":"string","description":"The ID of the Redis cluster.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getRedisClusterPrivateNetwork:getRedisClusterPrivateNetwork":{"properties":{"endpointId":{"type":"string","description":"The ID of the endpoint.\n"},"id":{"type":"string","description":"The ID of the Redis cluster.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"},"serviceIps":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses of the private network in CIDR notation (IPv6 is not supported by the Scaleway API)\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The zone in which the server exists.\n"}},"type":"object","required":["endpointId","id","ips","port","serviceIps","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getRedisClusterPublicNetwork:getRedisClusterPublicNetwork":{"properties":{"id":{"type":"string","description":"The ID of the Redis cluster.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"}},"type":"object","required":["id","ips","port"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getSecretEphemeralPolicy:getSecretEphemeralPolicy":{"properties":{"action":{"type":"string","description":"Action to perform when the version of a secret expires.\n"},"expiresOnceAccessed":{"type":"boolean","description":"True if the secret version expires after a single user access.\n"},"ttl":{"type":"string","description":"Time frame, from one second and up to one year, during which the secret's versions are valid. Has to be specified in Go Duration format\n"}},"type":"object","required":["action","expiresOnceAccessed","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getSecretVersion:getSecretVersion":{"properties":{"createdAt":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)\n"},"description":{"type":"string","description":"Description of the secret version\n"},"latest":{"type":"boolean","description":"Returns true if the version is the latest.\n"},"revision":{"type":"string","description":"The revision of secret version\n"},"secretId":{"type":"string","description":"The ID of the secret.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e should be specified.\n"},"status":{"type":"string","description":"Status of the secret version\n"},"updatedAt":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)\n"}},"type":"object","required":["createdAt","description","latest","revision","secretId","status","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getTemDomainReputation:getTemDomainReputation":{"properties":{"previousScore":{"type":"integer","description":"The previously-calculated domain's reputation score\n"},"previousScoredAt":{"type":"string","description":"Time and date the previous reputation score was calculated\n"},"score":{"type":"integer","description":"A range from 0 to 100 that determines your domain's reputation score\n"},"scoredAt":{"type":"string","description":"Time and date the score was calculated\n"},"status":{"type":"string","description":"Status of the domain's reputation\n"}},"type":"object","required":["previousScore","previousScoredAt","score","scoredAt","status"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getVpcGatewayNetworkIpamConfig:getVpcGatewayNetworkIpamConfig":{"properties":{"ipamIpId":{"type":"string","description":"Use this IPAM-booked IP ID as the Gateway's IP in this Private Network\n"},"pushDefaultRoute":{"type":"boolean","description":"Defines whether the default route is enabled on that Gateway Network\n"}},"type":"object","required":["ipamIpId","pushDefaultRoute"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getVpcGatewayNetworkPrivateIp:getVpcGatewayNetworkPrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"The ID of the IPv4 address resource.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getVpcPrivateNetworkIpv4Subnet:getVpcPrivateNetworkIpv4Subnet":{"properties":{"address":{"type":"string","description":"The network address of the subnet in dotted decimal notation, e.g., '192.168.0.0' for a '192.168.0.0/24' subnet\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the subnet\n"},"id":{"type":"string","description":"The ID of the Private Network.\n"},"prefixLength":{"type":"integer","description":"The length of the network prefix, e.g., 24 for a 255.255.255.0 mask\n"},"subnet":{"type":"string","description":"The subnet CIDR\n"},"subnetMask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet\n"}},"type":"object","required":["address","createdAt","id","prefixLength","subnet","subnetMask","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getVpcPrivateNetworkIpv6Subnet:getVpcPrivateNetworkIpv6Subnet":{"properties":{"address":{"type":"string","description":"The network address of the subnet in dotted decimal notation, e.g., '192.168.0.0' for a '192.168.0.0/24' subnet\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the subnet\n"},"id":{"type":"string","description":"The ID of the Private Network.\n"},"prefixLength":{"type":"integer","description":"The length of the network prefix, e.g., 24 for a 255.255.255.0 mask\n"},"subnet":{"type":"string","description":"The subnet CIDR\n"},"subnetMask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet\n"}},"type":"object","required":["address","createdAt","id","prefixLength","subnet","subnetMask","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getVpcRoutesRoute:getVpcRoutesRoute":{"properties":{"createdAt":{"type":"string","description":"The date on which the route was created (RFC 3339 format).\n"},"description":{"type":"string","description":"The description of the route.\n"},"destination":{"type":"string","description":"The destination IP or IP range of the route.\n"},"id":{"type":"string","description":"The ID of the route.\n\u003e **Important:** route IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111\n"},"nexthopIp":{"type":"string","description":"The IP of the route's next hop.\n"},"nexthopName":{"type":"string","description":"The name of the route's next hop.\n"},"nexthopPrivateNetworkId":{"type":"string","description":"The next hop private network ID to filter for. routes with a similar next hop private network ID are listed.\n"},"nexthopResourceId":{"type":"string","description":"The next hop resource ID to filter for. routes with a similar next hop resource ID are listed.\n"},"nexthopResourceType":{"type":"string","description":"The next hop resource type to filter for. routes with a similar next hop resource type are listed.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the routes exist.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. routes with these exact tags are listed.\n"},"vpcId":{"type":"string","description":"The VPC ID to filter for. routes with a similar VPC ID are listed.\n"}},"type":"object","required":["createdAt","description","destination","id","nexthopIp","nexthopName","nexthopPrivateNetworkId","nexthopResourceId","nexthopResourceType","tags","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getVpcsVpc:getVpcsVpc":{"properties":{"createdAt":{"type":"string","description":"Date and time of VPC's creation (RFC 3339 format).\n"},"id":{"type":"string","description":"The associated VPC ID.\n\u003e **Important:** VPC IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111\n"},"isDefault":{"type":"boolean","description":"Defines whether the VPC is the default one for its Project.\n"},"name":{"type":"string","description":"The VPC name to filter for. VPCs with a similar name are listed.\n"},"organizationId":{"type":"string","description":"The Organization ID the VPC is associated with.\n"},"projectId":{"type":"string","description":"The ID of the Project the VPC is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the VPCs exist.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. VPCs with these exact tags are listed.\n"},"updateAt":{"type":"string","description":"Date on which the VPC was last updated (RFC 3339 format)\n"}},"type":"object","required":["createdAt","id","isDefault","name","organizationId","projectId","tags","updateAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getWebHostOfferOffer:getWebHostOfferOffer":{"properties":{"available":{"type":"boolean","description":"Indicates if the offer is available.\n"},"billingOperationPath":{"type":"string","description":"The billing operation identifier for the option.\n"},"controlPanelName":{"type":"string","description":"The name of the control panel (e.g., Cpanel or Plesk).\n"},"endOfLife":{"type":"boolean","description":"Indicates if the offer is deprecated or no longer supported.\n"},"id":{"type":"string","description":"The unique identifier of the option.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:index/getWebHostOfferOfferOption:getWebHostOfferOfferOption"},"description":"A list of available options for the offer:\n"},"price":{"type":"string","description":"The offer price.\n"},"quotaWarning":{"type":"string","description":"Warning information regarding quota limitations for the option.\n"}},"type":"object","required":["available","billingOperationPath","controlPanelName","endOfLife","id","name","options","price","quotaWarning"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getWebHostOfferOfferOption:getWebHostOfferOfferOption":{"properties":{"billingOperationPath":{"type":"string","description":"The billing operation identifier for the option.\n"},"currentValue":{"type":"integer","description":"The current value set for the option.\n"},"id":{"type":"string","description":"The unique identifier of the option.\n"},"maxValue":{"type":"integer","description":"The maximum allowed value for the option.\n"},"minValue":{"type":"integer","description":"The minimum value for the option.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"price":{"type":"string","description":"The offer price.\n"},"quotaWarning":{"type":"string","description":"Warning information regarding quota limitations for the option.\n"}},"type":"object","required":["billingOperationPath","currentValue","id","maxValue","minValue","name","price","quotaWarning"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getWebHostOfferProduct:getWebHostOfferProduct":{"properties":{"databasesQuota":{"type":"integer","description":"The quota of databases.\n"},"emailAccountsQuota":{"type":"integer","description":"The quota of email accounts.\n"},"emailStorageQuota":{"type":"integer","description":"The quota of email storage.\n"},"hostingStorageQuota":{"type":"integer","description":"The quota of hosting storage.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"option":{"type":"boolean","description":"The product option.\n"},"ram":{"type":"integer","description":"The capacity of the memory in GB.\n"},"supportIncluded":{"type":"boolean","description":"If support is included.\n"},"vCpu":{"type":"integer","description":"The number of cores.\n"}},"type":"object","required":["databasesQuota","emailAccountsQuota","emailStorageQuota","hostingStorageQuota","name","option","ram","supportIncluded","vCpu"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getWebhostingCpanelUrl:getWebhostingCpanelUrl":{"properties":{"dashboard":{"type":"string","description":"URL to connect to dashboard interface\n"},"webmail":{"type":"string","description":"URL to connect to Webmail interface\n"}},"type":"object","required":["dashboard","webmail"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getWebhostingNameServer:getWebhostingNameServer":{"properties":{"hostname":{"type":"string","description":"Hostname of the server\n"},"isDefault":{"type":"boolean","description":"Whether or not the webhosting is the default one\n"},"status":{"type":"string","description":"Status of the nameserver\n"}},"type":"object","required":["hostname","isDefault","status"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getWebhostingOption:getWebhostingOption":{"properties":{"id":{"type":"string","description":"ID of the active option\n"},"name":{"type":"string","description":"Name of the option\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:index/getWebhostingRecord:getWebhostingRecord":{"properties":{"name":{"type":"string","description":"Name of the DNS record\n"},"priority":{"type":"integer","description":"Priority of DNS records associated with the webhosting.\n"},"status":{"type":"string","description":"Status of the hosting record\n"},"ttl":{"type":"integer","description":"Time to live in seconds of the record\n"},"type":{"type":"string","description":"Type of the DNS record\n"},"value":{"type":"string","description":"Value of the DNS record\n"}},"type":"object","required":["name","priority","status","ttl","type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:inference/DeploymentPrivateEndpoint:DeploymentPrivateEndpoint":{"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:inference/DeploymentPrivateIp:DeploymentPrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"(Optional) The id of the public endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:inference/DeploymentPublicEndpoint:DeploymentPublicEndpoint":{"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:inference/ModelNodesSupport:ModelNodesSupport":{"properties":{"nodeTypeName":{"type":"string","description":"The type of node supported.\n"},"quantizations":{"type":"array","items":{"$ref":"#/types/scaleway:inference/ModelNodesSupportQuantization:ModelNodesSupportQuantization"},"description":"A list of supported quantization options, including:\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["nodeTypeName","quantizations"]}}},"scaleway:inference/ModelNodesSupportQuantization:ModelNodesSupportQuantization":{"properties":{"allowed":{"type":"boolean","description":"Whether this quantization is allowed.\n"},"maxContextSize":{"type":"integer","description":"Maximum context length supported by this quantization.\n"},"quantizationBits":{"type":"integer","description":"Number of bits used for quantization (e.g., 8, 16).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowed","maxContextSize","quantizationBits"]}}},"scaleway:inference/getModelNodesSupport:getModelNodesSupport":{"properties":{"nodeTypeName":{"type":"string","description":"The type of node supported.\n"},"quantizations":{"type":"array","items":{"$ref":"#/types/scaleway:inference/getModelNodesSupportQuantization:getModelNodesSupportQuantization"},"description":"A list of supported quantization options, including:\n"}},"type":"object","required":["nodeTypeName","quantizations"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:inference/getModelNodesSupportQuantization:getModelNodesSupportQuantization":{"properties":{"allowed":{"type":"boolean","description":"Whether this quantization is allowed.\n"},"maxContextSize":{"type":"integer","description":"Maximum context length supported by this quantization.\n"},"quantizationBits":{"type":"integer","description":"Number of bits used for quantization (e.g., 8, 16).\n"}},"type":"object","required":["allowed","maxContextSize","quantizationBits"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/ImageAdditionalVolume:ImageAdditionalVolume":{"properties":{"id":{"type":"string","description":"ID of the server containing the volume.\n"},"name":{"type":"string","description":"The name of the image. If not provided it will be randomly generated.\n"},"server":{"type":"object","additionalProperties":{"type":"string"},"description":"Description of the server containing the volume (in case the image is a backup from a server).\n"},"size":{"type":"integer","description":"The size of the volume.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the image.\n"},"volumeType":{"type":"string","description":"The type of volume, possible values are \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`sbsSnapshot`\" pulumi-lang-dotnet=\"`SbsSnapshot`\" pulumi-lang-go=\"`sbsSnapshot`\" pulumi-lang-python=\"`sbs_snapshot`\" pulumi-lang-yaml=\"`sbsSnapshot`\" pulumi-lang-java=\"`sbsSnapshot`\"\u003e`sbs_snapshot`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name","server","size","tags","volumeType"]}}},"scaleway:instance/ImageRootVolume:ImageRootVolume":{"properties":{"id":{"type":"string","description":"ID of the server containing the volume.\n"},"name":{"type":"string","description":"The name of the image. If not provided it will be randomly generated.\n"},"size":{"type":"integer","description":"The size of the volume.\n"},"volumeType":{"type":"string","description":"The type of volume, possible values are \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`sbsSnapshot`\" pulumi-lang-dotnet=\"`SbsSnapshot`\" pulumi-lang-go=\"`sbsSnapshot`\" pulumi-lang-python=\"`sbs_snapshot`\" pulumi-lang-yaml=\"`sbsSnapshot`\" pulumi-lang-java=\"`sbsSnapshot`\"\u003e`sbs_snapshot`\u003c/span\u003e.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name","size","volumeType"]}}},"scaleway:instance/PrivateNicPrivateIp:PrivateNicPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:instance/SecurityGroupInboundRule:SecurityGroupInboundRule":{"properties":{"action":{"type":"string","description":"The action to take when rule match. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"ip":{"type":"string","description":"The ip this rule apply to. If no \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e are specified, rule will apply to all ip. Only one of \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e should be specified.\n","deprecationMessage":"Ip address is deprecated. Please use\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003einstead"},"ipRange":{"type":"string","description":"The ip range (e.g `192.168.1.0/24`) this rule applies to. If no \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e are specified, rule will apply to all ip. Only one of \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e should be specified.\n"},"port":{"type":"integer","description":"The port this rule applies to. If no \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e are specified, the rule will apply to all port. Only one of \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e should be specified.\n"},"portRange":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)\n"},"protocol":{"type":"string","description":"The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`.\n"}},"type":"object","required":["action"]},"scaleway:instance/SecurityGroupOutboundRule:SecurityGroupOutboundRule":{"properties":{"action":{"type":"string","description":"Action when rule match request (drop or accept)\n"},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003eshould be provided\n","deprecationMessage":"Ip address is deprecated. Please use\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003einstead"},"ipRange":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003eshould be provided\n"},"port":{"type":"integer","description":"Network port for this rule\n"},"portRange":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)\n"},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)\n"}},"type":"object","required":["action"]},"scaleway:instance/SecurityGroupRulesInboundRule:SecurityGroupRulesInboundRule":{"properties":{"action":{"type":"string","description":"The action to take when rule match. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"ip":{"type":"string","description":"The ip this rule apply to. If no \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e are specified, rule will apply to all ip. Only one of \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e should be specified.\n","deprecationMessage":"Ip address is deprecated. Please use\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003einstead"},"ipRange":{"type":"string","description":"The ip range (e.g `192.168.1.0/24`) this rule applies to. If no \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e are specified, rule will apply to all ip. Only one of \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipRange`\" pulumi-lang-dotnet=\"`IpRange`\" pulumi-lang-go=\"`ipRange`\" pulumi-lang-python=\"`ip_range`\" pulumi-lang-yaml=\"`ipRange`\" pulumi-lang-java=\"`ipRange`\"\u003e`ip_range`\u003c/span\u003e should be specified.\n"},"port":{"type":"integer","description":"The port this rule apply to. If no port is specified, rule will apply to all port.\n"},"portRange":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)\n"},"protocol":{"type":"string","description":"The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`.\n"}},"type":"object","required":["action"]},"scaleway:instance/SecurityGroupRulesOutboundRule:SecurityGroupRulesOutboundRule":{"properties":{"action":{"type":"string","description":"Action when rule match request (drop or accept)\n"},"ip":{"type":"string","description":"Ip address for this rule (e.g: 1.1.1.1). Only one of ip or\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003eshould be provided\n","deprecationMessage":"Ip address is deprecated. Please use\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003einstead"},"ipRange":{"type":"string","description":"Ip range for this rule (e.g: 192.168.1.0/24). Only one of ip or\u003cspan pulumi-lang-nodejs=\" ipRange \" pulumi-lang-dotnet=\" IpRange \" pulumi-lang-go=\" ipRange \" pulumi-lang-python=\" ip_range \" pulumi-lang-yaml=\" ipRange \" pulumi-lang-java=\" ipRange \"\u003e ip_range \u003c/span\u003eshould be provided\n"},"port":{"type":"integer","description":"Network port for this rule\n"},"portRange":{"type":"string","description":"Computed port range for this rule (e.g: 1-1024, 22-22)\n"},"protocol":{"type":"string","description":"Protocol for this rule (TCP, UDP, ICMP or ANY)\n"}},"type":"object","required":["action"]},"scaleway:instance/ServerFilesystem:ServerFilesystem":{"properties":{"filesystemId":{"type":"string","description":"The unique ID of the filesystem attached to the server.\n"},"status":{"type":"string","description":"The state of the filesystem\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["status"]}}},"scaleway:instance/ServerPrivateIp:ServerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:instance/ServerPrivateNetwork:ServerPrivateNetwork":{"properties":{"macAddress":{"type":"string","description":"MAC address of the NIC\n"},"pnId":{"type":"string","description":"The Private Network ID\n"},"pnicId":{"type":"string","description":"The ID of the NIC\n"},"status":{"type":"string","description":"The private NIC state\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n","willReplaceOnChanges":true}},"type":"object","required":["pnId"],"language":{"nodejs":{"requiredOutputs":["macAddress","pnId","pnicId","status"]}}},"scaleway:instance/ServerPublicIp:ServerPublicIp":{"properties":{"address":{"type":"string","description":"The address of the IP.\n"},"dynamic":{"type":"boolean","description":"Whether the IP is dynamic.\n"},"family":{"type":"string","description":"The IP address' family.\n"},"gateway":{"type":"string","description":"The IP of the Gateway associated with the IP.\n"},"id":{"type":"string","description":"The ID of the IP.\n"},"netmask":{"type":"string","description":"The CIDR netmask of the IP.\n"},"provisioningMode":{"type":"string","description":"The provisioning mode of the IP\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","dynamic","family","gateway","id","netmask","provisioningMode"]}}},"scaleway:instance/ServerRootVolume:ServerRootVolume":{"properties":{"boot":{"type":"boolean","description":"Set the volume where the boot the server\n"},"deleteOnTermination":{"type":"boolean","description":"Forces deletion of the root volume on instance termination.\n"},"name":{"type":"string","description":"Name of the root volume.\n"},"sbsIops":{"type":"integer","description":"Choose IOPS of your sbs volume, has to be used with \u003cspan pulumi-lang-nodejs=\"`sbsVolume`\" pulumi-lang-dotnet=\"`SbsVolume`\" pulumi-lang-go=\"`sbsVolume`\" pulumi-lang-python=\"`sbs_volume`\" pulumi-lang-yaml=\"`sbsVolume`\" pulumi-lang-java=\"`sbsVolume`\"\u003e`sbs_volume`\u003c/span\u003e for root volume type.\n\n\u003e **Important:** It is not possible to change `root_volume.size_in_gb` for local volumes (\u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e). Changes to this field will recreate the server.\nIt is possible to increase `root_volume.size_in_gb` for SBS volumes, but they cannot be resized down without recreating the server.\n"},"sizeInGb":{"type":"integer","description":"Size of the root volume in gigabytes.\nTo find the right size use [this endpoint](https://www.scaleway.com/en/developers/api/instance/#path-instances-list-all-instances) and\ncheck the `volumes_constraint.{min|max}_size` (in bytes) for your \u003cspan pulumi-lang-nodejs=\"`commercialType`\" pulumi-lang-dotnet=\"`CommercialType`\" pulumi-lang-go=\"`commercialType`\" pulumi-lang-python=\"`commercial_type`\" pulumi-lang-yaml=\"`commercialType`\" pulumi-lang-java=\"`commercialType`\"\u003e`commercial_type`\u003c/span\u003e.\nDepending on \u003cspan pulumi-lang-nodejs=\"`volumeType`\" pulumi-lang-dotnet=\"`VolumeType`\" pulumi-lang-go=\"`volumeType`\" pulumi-lang-python=\"`volume_type`\" pulumi-lang-yaml=\"`volumeType`\" pulumi-lang-java=\"`volumeType`\"\u003e`volume_type`\u003c/span\u003e, updates to this field may recreate a new resource.\n"},"volumeId":{"type":"string","description":"The volume ID of the root volume of the server, allows you to create server with an existing volume. If empty, will be computed to a created volume ID.\n"},"volumeType":{"type":"string","description":"Volume type of root volume, can be \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sbsVolume`\" pulumi-lang-dotnet=\"`SbsVolume`\" pulumi-lang-go=\"`sbsVolume`\" pulumi-lang-python=\"`sbs_volume`\" pulumi-lang-yaml=\"`sbsVolume`\" pulumi-lang-java=\"`sbsVolume`\"\u003e`sbs_volume`\u003c/span\u003e, default value depends on server type\n","willReplaceOnChanges":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","sbsIops","sizeInGb","volumeId","volumeType"]}}},"scaleway:instance/SnapshotImport:SnapshotImport":{"properties":{"bucket":{"type":"string","description":"Bucket name containing [qcow2](https://en.wikipedia.org/wiki/Qcow) to import\n","willReplaceOnChanges":true},"key":{"type":"string","description":"Key of the object to import\n","willReplaceOnChanges":true}},"type":"object","required":["bucket","key"]},"scaleway:instance/getPrivateNicPrivateIp:getPrivateNicPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address\n"},"id":{"type":"string","description":"The ID of the IP address resource\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getSecurityGroupInboundRule:getSecurityGroupInboundRule":{"properties":{"action":{"type":"string","description":"The action to take when rule match. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"ip":{"type":"string","description":"The ip this rule apply to.\n"},"ipRange":{"type":"string","description":"The ip range (e.g `192.168.1.0/24`) this rule apply to.\n"},"port":{"type":"integer","description":"The port this rule apply to. If no port is specified, rule will apply to all port.\n"},"portRange":{"type":"string","description":"The port range (e.g `22-23`) this rule applies to.\nIf no \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e are specified, rule will apply to all port.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e should be specified.\n"},"protocol":{"type":"string","description":"The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`.\n"}},"type":"object","required":["action","ip","ipRange","port","portRange","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getSecurityGroupOutboundRule:getSecurityGroupOutboundRule":{"properties":{"action":{"type":"string","description":"The action to take when rule match. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"ip":{"type":"string","description":"The ip this rule apply to.\n"},"ipRange":{"type":"string","description":"The ip range (e.g `192.168.1.0/24`) this rule apply to.\n"},"port":{"type":"integer","description":"The port this rule apply to. If no port is specified, rule will apply to all port.\n"},"portRange":{"type":"string","description":"The port range (e.g `22-23`) this rule applies to.\nIf no \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e are specified, rule will apply to all port.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`port`\" pulumi-lang-dotnet=\"`Port`\" pulumi-lang-go=\"`port`\" pulumi-lang-python=\"`port`\" pulumi-lang-yaml=\"`port`\" pulumi-lang-java=\"`port`\"\u003e`port`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`portRange`\" pulumi-lang-dotnet=\"`PortRange`\" pulumi-lang-go=\"`portRange`\" pulumi-lang-python=\"`port_range`\" pulumi-lang-yaml=\"`portRange`\" pulumi-lang-java=\"`portRange`\"\u003e`port_range`\u003c/span\u003e should be specified.\n"},"protocol":{"type":"string","description":"The protocol this rule apply to. Possible values are: `TCP`, `UDP`, `ICMP` or `ANY`.\n"}},"type":"object","required":["action","ip","ipRange","port","portRange","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getServerFilesystem:getServerFilesystem":{"properties":{"filesystemId":{"type":"string","description":"The filesystem ID attached to the server\n"},"status":{"type":"string","description":"The state of the filesystem\n"}},"type":"object","required":["filesystemId","status"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getServerPrivateIp:getServerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getServerPrivateNetwork:getServerPrivateNetwork":{"properties":{"macAddress":{"type":"string","description":"MAC address of the NIC\n"},"pnId":{"type":"string","description":"The Private Network ID\n"},"pnicId":{"type":"string","description":"The ID of the NIC\n"},"status":{"type":"string","description":"The private NIC state\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server exists.\n"}},"type":"object","required":["macAddress","pnId","pnicId","status","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getServerPublicIp:getServerPublicIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"dynamic":{"type":"boolean","description":"Whether the IP is dynamic\n"},"family":{"type":"string","description":"IP address family (inet or inet6)\n"},"gateway":{"type":"string","description":"Gateway's IP address\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"},"netmask":{"type":"string","description":"CIDR netmask\n"},"provisioningMode":{"type":"string","description":"Provisioning mode of the IP address\n"}},"type":"object","required":["address","dynamic","family","gateway","id","netmask","provisioningMode"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getServerRootVolume:getServerRootVolume":{"properties":{"boot":{"type":"boolean","description":"Set the volume where the boot the server\n"},"deleteOnTermination":{"type":"boolean","description":"Forces deletion of the root volume on instance termination.\n"},"name":{"type":"string","description":"The server name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`serverId`\" pulumi-lang-dotnet=\"`ServerId`\" pulumi-lang-go=\"`serverId`\" pulumi-lang-python=\"`server_id`\" pulumi-lang-yaml=\"`serverId`\" pulumi-lang-java=\"`serverId`\"\u003e`server_id`\u003c/span\u003e should be specified.\n"},"sbsIops":{"type":"integer","description":"SBS Volume IOPS, only with\u003cspan pulumi-lang-nodejs=\" volumeType \" pulumi-lang-dotnet=\" VolumeType \" pulumi-lang-go=\" volumeType \" pulumi-lang-python=\" volume_type \" pulumi-lang-yaml=\" volumeType \" pulumi-lang-java=\" volumeType \"\u003e volume_type \u003c/span\u003eas sbs_volume\n"},"sizeInGb":{"type":"integer","description":"Size of the root volume in gigabytes.\n"},"volumeId":{"type":"string","description":"The volume ID of the root volume of the server.\n"},"volumeType":{"type":"string","description":"Volume type of the root volume\n"}},"type":"object","required":["boot","deleteOnTermination","name","sbsIops","sizeInGb","volumeId","volumeType"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getServerTypeCapability:getServerTypeCapability":{"properties":{"bootTypes":{"type":"array","items":{"type":"string"},"description":"The boot types allowed for the server type.\n"},"maxFileSystems":{"type":"integer","description":"The maximum number of file systems that can be attached on the server type.\n"}},"type":"object","required":["bootTypes","maxFileSystems"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getServerTypeNetwork:getServerTypeNetwork":{"properties":{"blockBandwidth":{"type":"integer","description":"The block bandwidth of the server type (in bytes/second).\n"},"internalBandwidth":{"type":"integer","description":"The internal bandwidth of the server type (in bytes/second).\n"},"publicBandwidth":{"type":"integer","description":"The public bandwidth of the server type (in bytes/second).\n"}},"type":"object","required":["blockBandwidth","internalBandwidth","publicBandwidth"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getServerTypeVolume:getServerTypeVolume":{"properties":{"blockStorage":{"type":"boolean","description":"Whether block storage is allowed on the server type.\n"},"maxSizePerLocalVolume":{"type":"integer","description":"The maximum size in bytes per local volume allowed on the server type.\n"},"maxSizeTotal":{"type":"integer","description":"The maximum total size in bytes of volumes allowed on the server type.\n"},"minSizePerLocalVolume":{"type":"integer","description":"The minimum size in bytes per local volume allowed on the server type.\n"},"minSizeTotal":{"type":"integer","description":"The minimum total size in bytes of volumes allowed on the server type.\n"},"scratchStorageMaxSize":{"type":"integer","description":"The maximum size in bytes of the scratch volume allowed on the server type.\n"}},"type":"object","required":["blockStorage","maxSizePerLocalVolume","maxSizeTotal","minSizePerLocalVolume","minSizeTotal","scratchStorageMaxSize"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getServersServer:getServersServer":{"properties":{"bootType":{"type":"string","description":"The boot Type of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bootscript`\" pulumi-lang-dotnet=\"`Bootscript`\" pulumi-lang-go=\"`bootscript`\" pulumi-lang-python=\"`bootscript`\" pulumi-lang-yaml=\"`bootscript`\" pulumi-lang-java=\"`bootscript`\"\u003e`bootscript`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`rescue`\" pulumi-lang-dotnet=\"`Rescue`\" pulumi-lang-go=\"`rescue`\" pulumi-lang-python=\"`rescue`\" pulumi-lang-yaml=\"`rescue`\" pulumi-lang-java=\"`rescue`\"\u003e`rescue`\u003c/span\u003e.\n"},"bootscriptId":{"type":"string","description":"UUID of the bootscript\n","deprecationMessage":"bootscript are not supported"},"enableDynamicIp":{"type":"boolean","description":"If true a dynamic IP will be attached to the server.\n"},"id":{"type":"string","description":"The ID of the IP\n"},"image":{"type":"string","description":"The UUID or the label of the base image used by the server.\n"},"name":{"type":"string","description":"The server name used as filter. Servers with a name like it are listed.\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"placementGroupId":{"type":"string","description":"The [placement group](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) the server is attached to.\n"},"placementGroupPolicyRespected":{"type":"boolean","description":"Whether the placement group policy respected or not\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:instance/getServersServerPrivateIp:getServersServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the server.\n"},"projectId":{"type":"string","description":"The ID of the project the server is associated with.\n"},"publicIps":{"type":"array","items":{"$ref":"#/types/scaleway:instance/getServersServerPublicIp:getServersServerPublicIp"},"description":"The list of public IPs of the server\n"},"securityGroupId":{"type":"string","description":"The [security group](https://developers.scaleway.com/en/products/instance/api/#security-groups-8d7f89) the server is attached to.\n"},"state":{"type":"string","description":"The state of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`started`\" pulumi-lang-dotnet=\"`Started`\" pulumi-lang-go=\"`started`\" pulumi-lang-python=\"`started`\" pulumi-lang-yaml=\"`started`\" pulumi-lang-java=\"`started`\"\u003e`started`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`standby`\" pulumi-lang-dotnet=\"`Standby`\" pulumi-lang-go=\"`standby`\" pulumi-lang-python=\"`standby`\" pulumi-lang-yaml=\"`standby`\" pulumi-lang-java=\"`standby`\"\u003e`standby`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. Servers with these exact tags are listed.\n"},"type":{"type":"string","description":"The commercial type of the server.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which servers exist.\n"}},"type":"object","required":["bootType","bootscriptId","enableDynamicIp","id","image","name","organizationId","placementGroupId","placementGroupPolicyRespected","privateIps","projectId","publicIps","securityGroupId","state","tags","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getServersServerPrivateIp:getServersServerPrivateIp":{"properties":{"address":{"type":"string","description":"The address of the IP\n"},"id":{"type":"string","description":"The ID of the IP\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getServersServerPublicIp:getServersServerPublicIp":{"properties":{"address":{"type":"string","description":"The address of the IP\n"},"id":{"type":"string","description":"The ID of the IP\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:instance/getSnapshotImport:getSnapshotImport":{"properties":{"bucket":{"type":"string","description":"Bucket containing qcow\n"},"key":{"type":"string","description":"Key of the qcow file in the specified bucket\n"}},"type":"object","required":["bucket","key"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:iot/DeviceCertificate:DeviceCertificate":{"properties":{"crt":{"type":"string","description":"X509 PEM encoded certificate of the device\n","secret":true},"key":{"type":"string","description":"The private key of the device, in case it is generated by Scaleway.\n","secret":true}},"type":"object","language":{"nodejs":{"requiredOutputs":["crt","key"]}}},"scaleway:iot/DeviceMessageFilters:DeviceMessageFilters":{"properties":{"publish":{"$ref":"#/types/scaleway:iot/DeviceMessageFiltersPublish:DeviceMessageFiltersPublish","description":"Rules used to restrict topics the device can publish to.\n"},"subscribe":{"$ref":"#/types/scaleway:iot/DeviceMessageFiltersSubscribe:DeviceMessageFiltersSubscribe","description":"Rules used to restrict topics the device can subscribe to.\n"}},"type":"object"},"scaleway:iot/DeviceMessageFiltersPublish:DeviceMessageFiltersPublish":{"properties":{"policy":{"type":"string","description":"Filtering policy (eg \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`reject`\" pulumi-lang-dotnet=\"`Reject`\" pulumi-lang-go=\"`reject`\" pulumi-lang-python=\"`reject`\" pulumi-lang-yaml=\"`reject`\" pulumi-lang-java=\"`reject`\"\u003e`reject`\u003c/span\u003e)\n"},"topics":{"type":"array","items":{"type":"string"},"description":"List of topics to match (eg `foo/bar/+/baz/#`)\n"}},"type":"object"},"scaleway:iot/DeviceMessageFiltersSubscribe:DeviceMessageFiltersSubscribe":{"properties":{"policy":{"type":"string","description":"Same as publish rules.\n"},"topics":{"type":"array","items":{"type":"string"},"description":"Same as publish rules.\n\n- `certificate.crt` - (Optional) The certificate of the device, either generated by Scaleway or provided.\n\n\u003e **Important:** Updates to `certificate.crt` will disconnect connected devices and the previous certificate will be deleted and won't be recoverable.\n"}},"type":"object"},"scaleway:iot/RouteDatabase:RouteDatabase":{"properties":{"dbname":{"type":"string","description":"The database name (e.g. \u003cspan pulumi-lang-nodejs=\"`measurements`\" pulumi-lang-dotnet=\"`Measurements`\" pulumi-lang-go=\"`measurements`\" pulumi-lang-python=\"`measurements`\" pulumi-lang-yaml=\"`measurements`\" pulumi-lang-java=\"`measurements`\"\u003e`measurements`\u003c/span\u003e).\n","willReplaceOnChanges":true},"host":{"type":"string","description":"The database hostname. Can be an IP or a FQDN.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The database password.\n","secret":true,"willReplaceOnChanges":true},"port":{"type":"integer","description":"The database port (e.g. \u003cspan pulumi-lang-nodejs=\"`5432`\" pulumi-lang-dotnet=\"`5432`\" pulumi-lang-go=\"`5432`\" pulumi-lang-python=\"`5432`\" pulumi-lang-yaml=\"`5432`\" pulumi-lang-java=\"`5432`\"\u003e`5432`\u003c/span\u003e)\n","willReplaceOnChanges":true},"query":{"type":"string","description":"The SQL query that will be executed when receiving a message ($TOPIC and $PAYLOAD variables are available, see documentation, e.g. `INSERT INTO mytable(date, topic, value) VALUES (NOW(), $TOPIC, $PAYLOAD)`).\n","willReplaceOnChanges":true},"username":{"type":"string","description":"The database username.\n","willReplaceOnChanges":true}},"type":"object","required":["dbname","host","password","port","query","username"]},"scaleway:iot/RouteRest:RouteRest":{"properties":{"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"a map of the extra headers to send with the HTTP call (e.g. `X-Header = Value`).\n","willReplaceOnChanges":true},"uri":{"type":"string","description":"The URI of the Rest endpoint (e.g. `https://internal.mycompany.com/ingest/mqttdata`).\n","willReplaceOnChanges":true},"verb":{"type":"string","description":"The HTTP Verb used to call Rest URI (e.g. \u003cspan pulumi-lang-nodejs=\"`post`\" pulumi-lang-dotnet=\"`Post`\" pulumi-lang-go=\"`post`\" pulumi-lang-python=\"`post`\" pulumi-lang-yaml=\"`post`\" pulumi-lang-java=\"`post`\"\u003e`post`\u003c/span\u003e).\n","willReplaceOnChanges":true}},"type":"object","required":["headers","uri","verb"]},"scaleway:iot/RouteS3:RouteS3":{"properties":{"bucketName":{"type":"string","description":"The name of the S3 route's destination bucket (e.g. `my-object-storage`).\n","willReplaceOnChanges":true},"bucketRegion":{"type":"string","description":"The region of the S3 route's destination bucket (e.g. `fr-par`).\n","willReplaceOnChanges":true},"objectPrefix":{"type":"string","description":"The string to prefix object names with (e.g. `mykeyprefix-`).\n","willReplaceOnChanges":true},"strategy":{"type":"string","description":"How the S3 route's objects will be created (e.g. \u003cspan pulumi-lang-nodejs=\"`perTopic`\" pulumi-lang-dotnet=\"`PerTopic`\" pulumi-lang-go=\"`perTopic`\" pulumi-lang-python=\"`per_topic`\" pulumi-lang-yaml=\"`perTopic`\" pulumi-lang-java=\"`perTopic`\"\u003e`per_topic`\u003c/span\u003e). See [documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for behaviour details.\n","willReplaceOnChanges":true}},"type":"object","required":["bucketName","bucketRegion","strategy"]},"scaleway:iot/getDeviceCertificate:getDeviceCertificate":{"properties":{"crt":{"type":"string","description":"X509 PEM encoded certificate of the device\n"},"key":{"type":"string","description":"X509 PEM encoded key of the device\n"}},"type":"object","required":["crt","key"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:iot/getDeviceMessageFilter:getDeviceMessageFilter":{"properties":{"publishes":{"type":"array","items":{"$ref":"#/types/scaleway:iot/getDeviceMessageFilterPublish:getDeviceMessageFilterPublish"},"description":"Rule to restrict topics the device can publish to\n"},"subscribes":{"type":"array","items":{"$ref":"#/types/scaleway:iot/getDeviceMessageFilterSubscribe:getDeviceMessageFilterSubscribe"},"description":"Rule to restrict topics the device can subscribe to\n"}},"type":"object","required":["publishes","subscribes"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:iot/getDeviceMessageFilterPublish:getDeviceMessageFilterPublish":{"properties":{"policy":{"type":"string","description":"Publish message filter policy\n"},"topics":{"type":"array","items":{"type":"string"},"description":"List of topics in the set\n"}},"type":"object","required":["policy","topics"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:iot/getDeviceMessageFilterSubscribe:getDeviceMessageFilterSubscribe":{"properties":{"policy":{"type":"string","description":"Subscribe message filter policy\n"},"topics":{"type":"array","items":{"type":"string"},"description":"List of topics in the set\n"}},"type":"object","required":["policy","topics"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:ipam/IpCustomResource:IpCustomResource":{"properties":{"macAddress":{"type":"string","description":"The MAC address of the custom resource.\n"},"name":{"type":"string","description":"When the resource is in a Private Network, a DNS record is available to resolve the resource name.\n"}},"type":"object","required":["macAddress"]},"scaleway:ipam/IpResource:IpResource":{"properties":{"id":{"type":"string","description":"The ID of the resource that the IP is attached to.\n"},"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":{"type":"string","description":"The type of resource the IP is attached to.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","macAddress","name","type"]}}},"scaleway:ipam/IpReverse:IpReverse":{"properties":{"address":{"type":"string","description":"The IP corresponding to the hostname\n"},"hostname":{"type":"string","description":"The reverse domain name.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","hostname"]}}},"scaleway:ipam/IpSource:IpSource":{"properties":{"privateNetworkId":{"type":"string","description":"The Private Network of the IP (if the IP is a private IP).\n"},"subnetId":{"type":"string","description":"The Private Network subnet of the IP (if the IP is a private IP).\n"},"zonal":{"type":"string","description":"The zone of the IP (if the IP is public and zoned, rather than private and/or regional)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["privateNetworkId","subnetId","zonal"]}}},"scaleway:ipam/getIpResource:getIpResource":{"properties":{"id":{"type":"string","description":"The ID of the resource that the IP is attached to.\n"},"name":{"type":"string","description":"The name of the resource the IP is attached to.\n"},"type":{"type":"string","description":"The type of the resource the IP is attached to. [Documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/ipam/v1#pkg-constants) with type list.\n"}},"type":"object","required":["type"]},"scaleway:ipam/getIpsIp:getIpsIp":{"properties":{"address":{"type":"string","description":"The Scaleway internal IP address of the resource.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the IP.\n"},"id":{"type":"string","description":"The ID of the resource.\n"},"projectId":{"type":"string","description":"The ID of the Project to filter for.\n"},"region":{"type":"string","description":"The region to filter for.\n"},"resources":{"type":"array","items":{"$ref":"#/types/scaleway:ipam/getIpsIpResource:getIpsIpResource"},"description":"Filter for a resource attached to the IP, using resource ID, type or name.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The IP tags to filter for.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the IP.\n"},"zone":{"type":"string","description":"The zone of the IP.\n"}},"type":"object","required":["address","createdAt","id","projectId","region","resources","tags","updatedAt","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:ipam/getIpsIpResource:getIpsIpResource":{"properties":{"id":{"type":"string","description":"The ID of the attached resource.\n"},"macAddress":{"type":"string","description":"The linked MAC address to filter for.\n"},"name":{"type":"string","description":"The name of the attached resource.\n"},"type":{"type":"string","description":"The type of the attached resource. [Documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/ipam/v1#pkg-constants) with type list.\n"}},"type":"object","required":["id","macAddress","name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:ipam/getIpsResource:getIpsResource":{"properties":{"id":{"type":"string","description":"The ID of the attached resource.\n"},"name":{"type":"string","description":"The name of the attached resource.\n"},"type":{"type":"string","description":"The type of the attached resource. [Documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/ipam/v1#pkg-constants) with type list.\n"}},"type":"object","required":["type"]},"scaleway:job/DefinitionCron:DefinitionCron":{"properties":{"schedule":{"type":"string","description":"Cron format string.\n"},"timezone":{"type":"string","description":"The timezone, must be a canonical TZ identifier as found in this [list](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).\n"}},"type":"object","required":["schedule","timezone"]},"scaleway:job/DefinitionSecretReference:DefinitionSecretReference":{"properties":{"environment":{"type":"string","description":"An environment variable containing the secret value. Must be specified if \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e is not specified.\n"},"file":{"type":"string","description":"The absolute file path where the secret will be mounted. Must be specified if \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e is not specified.\n"},"secretId":{"type":"string","description":"The secret unique identifier, it could be formatted as region/UUID or UUID. In case the region is passed, it must be the same as the job definition. You could reference the same secret multiple times in the same job definition.\n"},"secretReferenceId":{"type":"string","description":"The secret reference UUID that is automatically generated by the provider.\n"},"secretVersion":{"type":"string","description":"The secret version.\n"}},"type":"object","required":["secretId"],"language":{"nodejs":{"requiredOutputs":["secretId","secretReferenceId"]}}},"scaleway:kafka/ClusterPrivateNetwork:ClusterPrivateNetwork":{"properties":{"dnsRecords":{"type":"array","items":{"type":"string"},"description":"List of DNS records for the private endpoint.\n"},"id":{"type":"string","description":"The ID of the private endpoint.\n"},"pnId":{"type":"string","description":"The private network ID (same as input).\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"TCP port number.\n"}},"type":"object","required":["pnId"],"language":{"nodejs":{"requiredOutputs":["dnsRecords","id","pnId","port"]}}},"scaleway:kafka/ClusterPublicNetwork:ClusterPublicNetwork":{"properties":{"dnsRecords":{"type":"array","items":{"type":"string"},"description":"List of DNS records for the private endpoint.\n"},"id":{"type":"string","description":"The ID of the private endpoint.\n"},"port":{"type":"integer","description":"TCP port number.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dnsRecords","id","port"]}}},"scaleway:kafka/getClusterPrivateNetwork:getClusterPrivateNetwork":{"properties":{"dnsRecords":{"type":"array","items":{"type":"string"},"description":"DNS records for the private endpoint\n"},"id":{"type":"string","description":"The endpoint ID\n"},"pnId":{"type":"string","description":"The private network ID\n"},"port":{"type":"integer","description":"TCP port number\n"}},"type":"object","required":["dnsRecords","id","pnId","port"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:kafka/getClusterPublicNetwork:getClusterPublicNetwork":{"properties":{"dnsRecords":{"type":"array","items":{"type":"string"},"description":"DNS records for the public endpoint\n"},"id":{"type":"string","description":"ID of the public endpoint\n"},"port":{"type":"integer","description":"TCP port number\n"}},"type":"object","required":["dnsRecords","id","port"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:keymanager/KeyRotationPolicy:KeyRotationPolicy":{"properties":{"nextRotationAt":{"type":"string","description":"The date and time of the next scheduled rotation.\n"},"rotationPeriod":{"type":"string","description":"– The period between key rotations (e.g., `\"720h\"` for 30 days).\n"}},"type":"object","required":["rotationPeriod"]},"scaleway:keymanager/getKeyRotationPolicy:getKeyRotationPolicy":{"properties":{"nextRotationAt":{"type":"string","description":"Timestamp indicating the next scheduled rotation.\n"},"rotationPeriod":{"type":"string","description":"Time interval between two key rotations. The minimum duration is 24 hours and the maximum duration is 1 year (876000 hours).\n"}},"type":"object","required":["nextRotationAt","rotationPeriod"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:kubernetes/AclAclRule:AclAclRule":{"properties":{"description":{"type":"string","description":"A text describing this rule.\n"},"id":{"type":"string","description":"The ID of the ACL resource. It is the same as the ID of the cluster.\n"},"ip":{"type":"string","description":"The IP range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation)\n\n\u003e **Important:** If the \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e field is set, \u003cspan pulumi-lang-nodejs=\"`scalewayRanges`\" pulumi-lang-dotnet=\"`ScalewayRanges`\" pulumi-lang-go=\"`scalewayRanges`\" pulumi-lang-python=\"`scaleway_ranges`\" pulumi-lang-yaml=\"`scalewayRanges`\" pulumi-lang-java=\"`scalewayRanges`\"\u003e`scaleway_ranges`\u003c/span\u003e cannot be set to true in the same rule.\n"},"scalewayRanges":{"type":"boolean","description":"Allow access to cluster from all Scaleway ranges as defined in [Scaleway Network Information - IP ranges used by Scaleway](https://www.scaleway.com/en/docs/console/account/reference-content/scaleway-network-information/#ip-ranges-used-by-scaleway).\nOnly one rule with this field set to true can be added.\n\n\u003e **Important:** If the \u003cspan pulumi-lang-nodejs=\"`scalewayRanges`\" pulumi-lang-dotnet=\"`ScalewayRanges`\" pulumi-lang-go=\"`scalewayRanges`\" pulumi-lang-python=\"`scaleway_ranges`\" pulumi-lang-yaml=\"`scalewayRanges`\" pulumi-lang-java=\"`scalewayRanges`\"\u003e`scaleway_ranges`\u003c/span\u003e field is set to true, the \u003cspan pulumi-lang-nodejs=\"`ip`\" pulumi-lang-dotnet=\"`Ip`\" pulumi-lang-go=\"`ip`\" pulumi-lang-python=\"`ip`\" pulumi-lang-yaml=\"`ip`\" pulumi-lang-java=\"`ip`\"\u003e`ip`\u003c/span\u003e field cannot be set on the same rule.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id"]}}},"scaleway:kubernetes/ClusterAutoUpgrade:ClusterAutoUpgrade":{"properties":{"enable":{"type":"boolean","description":"Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable Kubernetes patch version auto upgrades.\n\u003e **Important:** When enabling auto upgrades, the \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e field take a minor version like x.y (ie 1.18).\n"},"maintenanceWindowDay":{"type":"string","description":"The day of the auto upgrade maintenance window (\u003cspan pulumi-lang-nodejs=\"`monday`\" pulumi-lang-dotnet=\"`Monday`\" pulumi-lang-go=\"`monday`\" pulumi-lang-python=\"`monday`\" pulumi-lang-yaml=\"`monday`\" pulumi-lang-java=\"`monday`\"\u003e`monday`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`sunday`\" pulumi-lang-dotnet=\"`Sunday`\" pulumi-lang-go=\"`sunday`\" pulumi-lang-python=\"`sunday`\" pulumi-lang-yaml=\"`sunday`\" pulumi-lang-java=\"`sunday`\"\u003e`sunday`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\"\u003e`any`\u003c/span\u003e).\n"},"maintenanceWindowStartHour":{"type":"integer","description":"The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).\n"}},"type":"object","required":["enable","maintenanceWindowDay","maintenanceWindowStartHour"]},"scaleway:kubernetes/ClusterAutoscalerConfig:ClusterAutoscalerConfig":{"properties":{"balanceSimilarNodeGroups":{"type":"boolean","description":"Detect similar node groups and balance the number of nodes between them.\n"},"disableScaleDown":{"type":"boolean","description":"Disables the scale down feature of the autoscaler.\n"},"estimator":{"type":"string","description":"Type of resource estimator to be used in scale up.\n"},"expander":{"type":"string","description":"Type of node group expander to be used in scale up.\n"},"expendablePodsPriorityCutoff":{"type":"integer","description":"Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.\n"},"ignoreDaemonsetsUtilization":{"type":"boolean","description":"Ignore DaemonSet pods when calculating resource utilization for scaling down.\n"},"maxGracefulTerminationSec":{"type":"integer","description":"Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node\n"},"scaleDownDelayAfterAdd":{"type":"string","description":"How long after scale up that scale down evaluation resumes.\n"},"scaleDownUnneededTime":{"type":"string","description":"How long a node should be unneeded before it is eligible for scale down.\n"},"scaleDownUtilizationThreshold":{"type":"number","description":"Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down\n"}},"type":"object"},"scaleway:kubernetes/ClusterKubeconfig:ClusterKubeconfig":{"properties":{"clusterCaCertificate":{"type":"string","description":"The CA certificate of the Kubernetes API server.\n"},"configFile":{"type":"string","description":"The raw kubeconfig file.\n"},"host":{"type":"string","description":"The URL of the Kubernetes API server.\n"},"token":{"type":"string","description":"The token to connect to the Kubernetes API server.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clusterCaCertificate","configFile","host","token"]}}},"scaleway:kubernetes/ClusterOpenIdConnectConfig:ClusterOpenIdConnectConfig":{"properties":{"clientId":{"type":"string","description":"A client id that all tokens must be issued for\n"},"groupsClaims":{"type":"array","items":{"type":"string"},"description":"JWT claim to use as the user's group\n"},"groupsPrefix":{"type":"string","description":"Prefix prepended to group claims\n"},"issuerUrl":{"type":"string","description":"URL of the provider which allows the API server to discover public signing keys\n"},"requiredClaims":{"type":"array","items":{"type":"string"},"description":"Multiple key=value pairs that describes a required claim in the ID Token\n"},"usernameClaim":{"type":"string","description":"JWT claim to use as the user name\n"},"usernamePrefix":{"type":"string","description":"Prefix prepended to username\n"}},"type":"object","required":["clientId","issuerUrl"]},"scaleway:kubernetes/PoolNode:PoolNode":{"properties":{"id":{"type":"string","description":"The ID of the IP address resource.\n"},"name":{"type":"string","description":"The name for the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:kubernetes/PoolNodePrivateIp:PoolNodePrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the node.\n"},"publicIp":{"type":"string","description":"The public IPv4. (Deprecated, Please use the official Kubernetes provider and the\u003cspan pulumi-lang-nodejs=\" kubernetesNodes \" pulumi-lang-dotnet=\" KubernetesNodes \" pulumi-lang-go=\" kubernetesNodes \" pulumi-lang-python=\" kubernetes_nodes \" pulumi-lang-yaml=\" kubernetesNodes \" pulumi-lang-java=\" kubernetesNodes \"\u003e kubernetes_nodes \u003c/span\u003edata source)\n","deprecationMessage":"Please use the official Kubernetes provider and the\u003cspan pulumi-lang-nodejs=\" kubernetesNodes \" pulumi-lang-dotnet=\" KubernetesNodes \" pulumi-lang-go=\" kubernetesNodes \" pulumi-lang-python=\" kubernetes_nodes \" pulumi-lang-yaml=\" kubernetesNodes \" pulumi-lang-java=\" kubernetesNodes \"\u003e kubernetes_nodes \u003c/span\u003edata source"},"publicIpV6":{"type":"string","description":"The public IPv6. (Deprecated, Please use the official Kubernetes provider and the\u003cspan pulumi-lang-nodejs=\" kubernetesNodes \" pulumi-lang-dotnet=\" KubernetesNodes \" pulumi-lang-go=\" kubernetesNodes \" pulumi-lang-python=\" kubernetes_nodes \" pulumi-lang-yaml=\" kubernetesNodes \" pulumi-lang-java=\" kubernetesNodes \"\u003e kubernetes_nodes \u003c/span\u003edata source)\n","deprecationMessage":"Please use the official Kubernetes provider and the\u003cspan pulumi-lang-nodejs=\" kubernetesNodes \" pulumi-lang-dotnet=\" KubernetesNodes \" pulumi-lang-go=\" kubernetesNodes \" pulumi-lang-python=\" kubernetes_nodes \" pulumi-lang-yaml=\" kubernetesNodes \" pulumi-lang-java=\" kubernetesNodes \"\u003e kubernetes_nodes \u003c/span\u003edata source"},"status":{"type":"string","description":"The status of the node.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name","privateIps","publicIp","publicIpV6","status"]}}},"scaleway:kubernetes/PoolNodePrivateIp:PoolNodePrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:kubernetes/PoolUpgradePolicy:PoolUpgradePolicy":{"properties":{"maxSurge":{"type":"integer","description":"The maximum number of nodes to be created during the upgrade\n"},"maxUnavailable":{"type":"integer","description":"The maximum number of nodes that can be not ready at the same time\n"}},"type":"object"},"scaleway:kubernetes/getClusterAutoUpgrade:getClusterAutoUpgrade":{"properties":{"enable":{"type":"boolean","description":"True if Kubernetes patch version auto upgrades is enabled.\n"},"maintenanceWindowDay":{"type":"string","description":"The day of the auto upgrade maintenance window (\u003cspan pulumi-lang-nodejs=\"`monday`\" pulumi-lang-dotnet=\"`Monday`\" pulumi-lang-go=\"`monday`\" pulumi-lang-python=\"`monday`\" pulumi-lang-yaml=\"`monday`\" pulumi-lang-java=\"`monday`\"\u003e`monday`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`sunday`\" pulumi-lang-dotnet=\"`Sunday`\" pulumi-lang-go=\"`sunday`\" pulumi-lang-python=\"`sunday`\" pulumi-lang-yaml=\"`sunday`\" pulumi-lang-java=\"`sunday`\"\u003e`sunday`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`any`\" pulumi-lang-dotnet=\"`Any`\" pulumi-lang-go=\"`any`\" pulumi-lang-python=\"`any`\" pulumi-lang-yaml=\"`any`\" pulumi-lang-java=\"`any`\"\u003e`any`\u003c/span\u003e).\n"},"maintenanceWindowStartHour":{"type":"integer","description":"The start hour (UTC) of the 2-hour auto upgrade maintenance window (0 to 23).\n"}},"type":"object","required":["enable","maintenanceWindowDay","maintenanceWindowStartHour"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:kubernetes/getClusterAutoscalerConfig:getClusterAutoscalerConfig":{"properties":{"balanceSimilarNodeGroups":{"type":"boolean","description":"True if detecting similar node groups and balance the number of nodes between them is enabled.\n"},"disableScaleDown":{"type":"boolean","description":"True if the scale down feature of the autoscaler is disabled.\n"},"estimator":{"type":"string","description":"The type of resource estimator used in scale up.\n"},"expander":{"type":"string","description":"The type of node group expander be used in scale up.\n"},"expendablePodsPriorityCutoff":{"type":"integer","description":"Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.\n"},"ignoreDaemonsetsUtilization":{"type":"boolean","description":"True if ignoring DaemonSet pods when calculating resource utilization for scaling down is enabled.\n"},"maxGracefulTerminationSec":{"type":"integer","description":"Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node\n"},"scaleDownDelayAfterAdd":{"type":"string","description":"The duration after scale up that scale down evaluation resumes.\n"},"scaleDownUnneededTime":{"type":"string","description":"The duration a node should be unneeded before it is eligible for scale down.\n"},"scaleDownUtilizationThreshold":{"type":"number","description":"Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down\n"}},"type":"object","required":["balanceSimilarNodeGroups","disableScaleDown","estimator","expander","expendablePodsPriorityCutoff","ignoreDaemonsetsUtilization","maxGracefulTerminationSec","scaleDownDelayAfterAdd","scaleDownUnneededTime","scaleDownUtilizationThreshold"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:kubernetes/getClusterKubeconfig:getClusterKubeconfig":{"properties":{"clusterCaCertificate":{"type":"string","description":"The CA certificate of the Kubernetes API server.\n"},"configFile":{"type":"string","description":"The raw kubeconfig file.\n"},"host":{"type":"string","description":"The URL of the Kubernetes API server.\n"},"token":{"type":"string","description":"The token to connect to the Kubernetes API server.\n"}},"type":"object","required":["clusterCaCertificate","configFile","host","token"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:kubernetes/getClusterOpenIdConnectConfig:getClusterOpenIdConnectConfig":{"properties":{"clientId":{"type":"string","description":"A client id that all tokens must be issued for\n"},"groupsClaims":{"type":"array","items":{"type":"string"},"description":"JWT claim to use as the user's group\n"},"groupsPrefix":{"type":"string","description":"Prefix prepended to group claims\n"},"issuerUrl":{"type":"string","description":"URL of the provider which allows the API server to discover public signing keys\n"},"requiredClaims":{"type":"array","items":{"type":"string"},"description":"Multiple key=value pairs that describes a required claim in the ID Token\n"},"usernameClaim":{"type":"string","description":"JWT claim to use as the user name\n"},"usernamePrefix":{"type":"string","description":"Prefix prepended to username\n"}},"type":"object","required":["clientId","groupsClaims","groupsPrefix","issuerUrl","requiredClaims","usernameClaim","usernamePrefix"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:kubernetes/getPoolNode:getPoolNode":{"properties":{"id":{"type":"string","description":"The ID of the pool.\n"},"name":{"type":"string","description":"The pool name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`poolId`\" pulumi-lang-dotnet=\"`PoolId`\" pulumi-lang-go=\"`poolId`\" pulumi-lang-python=\"`pool_id`\" pulumi-lang-yaml=\"`poolId`\" pulumi-lang-java=\"`poolId`\"\u003e`pool_id`\u003c/span\u003e should be specified. \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e should be specified with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:kubernetes/getPoolNodePrivateIp:getPoolNodePrivateIp"},"description":"List of private IPv4 and IPv6 addresses associated with the node\n"},"publicIp":{"type":"string","description":"The public IPv4.\n"},"publicIpV6":{"type":"string","description":"The public IPv6.\n"},"status":{"type":"string","description":"The status of the node.\n"}},"type":"object","required":["id","name","privateIps","publicIp","publicIpV6","status"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:kubernetes/getPoolNodePrivateIp:getPoolNodePrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address\n"},"id":{"type":"string","description":"The ID of the pool.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:kubernetes/getPoolUpgradePolicy:getPoolUpgradePolicy":{"properties":{"maxSurge":{"type":"integer","description":"The maximum number of nodes to be created during the upgrade\n"},"maxUnavailable":{"type":"integer","description":"The maximum number of nodes that can be not ready at the same time\n"}},"type":"object","required":["maxSurge","maxUnavailable"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/AclAction:AclAction":{"properties":{"redirects":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/AclActionRedirect:AclActionRedirect"},"description":"Redirect parameters when using an ACL with \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e action.\n"},"type":{"type":"string","description":"The action type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e.\n"}},"type":"object","required":["type"]},"scaleway:loadbalancers/AclActionRedirect:AclActionRedirect":{"properties":{"code":{"type":"integer","description":"The HTTP redirect code to use. Valid values are \u003cspan pulumi-lang-nodejs=\"`301`\" pulumi-lang-dotnet=\"`301`\" pulumi-lang-go=\"`301`\" pulumi-lang-python=\"`301`\" pulumi-lang-yaml=\"`301`\" pulumi-lang-java=\"`301`\"\u003e`301`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`302`\" pulumi-lang-dotnet=\"`302`\" pulumi-lang-go=\"`302`\" pulumi-lang-python=\"`302`\" pulumi-lang-yaml=\"`302`\" pulumi-lang-java=\"`302`\"\u003e`302`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`303`\" pulumi-lang-dotnet=\"`303`\" pulumi-lang-go=\"`303`\" pulumi-lang-python=\"`303`\" pulumi-lang-yaml=\"`303`\" pulumi-lang-java=\"`303`\"\u003e`303`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`307`\" pulumi-lang-dotnet=\"`307`\" pulumi-lang-go=\"`307`\" pulumi-lang-python=\"`307`\" pulumi-lang-yaml=\"`307`\" pulumi-lang-java=\"`307`\"\u003e`307`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`308`\" pulumi-lang-dotnet=\"`308`\" pulumi-lang-go=\"`308`\" pulumi-lang-python=\"`308`\" pulumi-lang-yaml=\"`308`\" pulumi-lang-java=\"`308`\"\u003e`308`\u003c/span\u003e.\n"},"target":{"type":"string","description":"An URL can be used in case of a location redirect (e.g. `https://scaleway.com` will redirect to this same URL). A scheme name (e.g. \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ftp`\" pulumi-lang-dotnet=\"`Ftp`\" pulumi-lang-go=\"`ftp`\" pulumi-lang-python=\"`ftp`\" pulumi-lang-yaml=\"`ftp`\" pulumi-lang-java=\"`ftp`\"\u003e`ftp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`git`\" pulumi-lang-dotnet=\"`Git`\" pulumi-lang-go=\"`git`\" pulumi-lang-python=\"`git`\" pulumi-lang-yaml=\"`git`\" pulumi-lang-java=\"`git`\"\u003e`git`\u003c/span\u003e) will replace the request's original scheme.\n"},"type":{"type":"string","description":"The redirect type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`scheme`\" pulumi-lang-dotnet=\"`Scheme`\" pulumi-lang-go=\"`scheme`\" pulumi-lang-python=\"`scheme`\" pulumi-lang-yaml=\"`scheme`\" pulumi-lang-java=\"`scheme`\"\u003e`scheme`\u003c/span\u003e.\n"}},"type":"object"},"scaleway:loadbalancers/AclMatch:AclMatch":{"properties":{"httpFilter":{"type":"string","description":"The HTTP filter to match. This filter is supported only if your backend protocol has an HTTP forward protocol.\nIt extracts the request's URL path, which starts at the first slash and ends before the question mark (without the host part).\nPossible values are: \u003cspan pulumi-lang-nodejs=\"`aclHttpFilterNone`\" pulumi-lang-dotnet=\"`AclHttpFilterNone`\" pulumi-lang-go=\"`aclHttpFilterNone`\" pulumi-lang-python=\"`acl_http_filter_none`\" pulumi-lang-yaml=\"`aclHttpFilterNone`\" pulumi-lang-java=\"`aclHttpFilterNone`\"\u003e`acl_http_filter_none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pathBegin`\" pulumi-lang-dotnet=\"`PathBegin`\" pulumi-lang-go=\"`pathBegin`\" pulumi-lang-python=\"`path_begin`\" pulumi-lang-yaml=\"`pathBegin`\" pulumi-lang-java=\"`pathBegin`\"\u003e`path_begin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pathEnd`\" pulumi-lang-dotnet=\"`PathEnd`\" pulumi-lang-go=\"`pathEnd`\" pulumi-lang-python=\"`path_end`\" pulumi-lang-yaml=\"`pathEnd`\" pulumi-lang-java=\"`pathEnd`\"\u003e`path_end`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`regex`\" pulumi-lang-dotnet=\"`Regex`\" pulumi-lang-go=\"`regex`\" pulumi-lang-python=\"`regex`\" pulumi-lang-yaml=\"`regex`\" pulumi-lang-java=\"`regex`\"\u003e`regex`\u003c/span\u003e.\n"},"httpFilterOption":{"type":"string","description":"If you have \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e at \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e, you can use this field to filter on the HTTP header's value.\n"},"httpFilterValues":{"type":"array","items":{"type":"string"},"description":"A list of possible values to match for the given HTTP filter.\nKeep in mind that in the case of \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e the HTTP header field name is case insensitive.\n"},"invert":{"type":"boolean","description":"If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the condition will be of type \"unless\".\n"},"ipSubnets":{"type":"array","items":{"type":"string"},"description":"A list of IPs, or CIDR v4/v6 addresses of the session client, to match. Only one of \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e should be specified.\n"},"ipsEdgeServices":{"type":"boolean","description":"Defines whether Edge Services IPs should be matched. Only one of \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e should be specified.\n"}},"type":"object"},"scaleway:loadbalancers/BackendHealthCheckHttp:BackendHealthCheckHttp":{"properties":{"code":{"type":"integer","description":"The expected HTTP status code\n"},"hostHeader":{"type":"string","description":"The HTTP host header to use for HC requests\n"},"method":{"type":"string","description":"The HTTP method to use for HC requests\n"},"uri":{"type":"string","description":"The HTTP endpoint URL to call for HC requests\n"}},"type":"object","required":["uri"]},"scaleway:loadbalancers/BackendHealthCheckHttps:BackendHealthCheckHttps":{"properties":{"code":{"type":"integer","description":"The expected HTTP status code\n"},"hostHeader":{"type":"string","description":"The HTTP host header to use for HC requests\n"},"method":{"type":"string","description":"The HTTP method to use for HC requests\n"},"sni":{"type":"string","description":"The SNI to use for HC requests over SSL\n"},"uri":{"type":"string","description":"The HTTPS endpoint URL to call for HC requests\n"}},"type":"object","required":["uri"]},"scaleway:loadbalancers/BackendHealthCheckTcp:BackendHealthCheckTcp":{"type":"object"},"scaleway:loadbalancers/CertificateCustomCertificate:CertificateCustomCertificate":{"properties":{"certificateChain":{"type":"string","description":"The full PEM-formatted certificate chain\n","secret":true,"willReplaceOnChanges":true}},"type":"object","required":["certificateChain"]},"scaleway:loadbalancers/CertificateLetsencrypt:CertificateLetsencrypt":{"properties":{"commonName":{"type":"string","description":"Main domain of the certificate\n","willReplaceOnChanges":true},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The alternative domain names of the certificate\n","willReplaceOnChanges":true}},"type":"object","required":["commonName"]},"scaleway:loadbalancers/FrontendAcl:FrontendAcl":{"properties":{"action":{"$ref":"#/types/scaleway:loadbalancers/FrontendAclAction:FrontendAclAction","description":"Action to undertake when an ACL filter matches.\n"},"createdAt":{"type":"string","description":"The date and time the frontend was created.\n"},"description":{"type":"string","description":"Description of the ACL\n"},"match":{"$ref":"#/types/scaleway:loadbalancers/FrontendAclMatch:FrontendAclMatch","description":"The ACL match rule. At least \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`httpFilterValue`\" pulumi-lang-dotnet=\"`HttpFilterValue`\" pulumi-lang-go=\"`httpFilterValue`\" pulumi-lang-python=\"`http_filter_value`\" pulumi-lang-yaml=\"`httpFilterValue`\" pulumi-lang-java=\"`httpFilterValue`\"\u003e`http_filter_value`\u003c/span\u003e are required.\n"},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"updatedAt":{"type":"string","description":"The date and time the frontend resource was updated.\n"}},"type":"object","required":["action","match"],"language":{"nodejs":{"requiredOutputs":["action","createdAt","match","name","updatedAt"]}}},"scaleway:loadbalancers/FrontendAclAction:FrontendAclAction":{"properties":{"redirects":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/FrontendAclActionRedirect:FrontendAclActionRedirect"},"description":"Redirect parameters when using an ACL with \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e action.\n"},"type":{"type":"string","description":"The action type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e.\n"}},"type":"object","required":["type"]},"scaleway:loadbalancers/FrontendAclActionRedirect:FrontendAclActionRedirect":{"properties":{"code":{"type":"integer","description":"The HTTP redirect code to use. Valid values are \u003cspan pulumi-lang-nodejs=\"`301`\" pulumi-lang-dotnet=\"`301`\" pulumi-lang-go=\"`301`\" pulumi-lang-python=\"`301`\" pulumi-lang-yaml=\"`301`\" pulumi-lang-java=\"`301`\"\u003e`301`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`302`\" pulumi-lang-dotnet=\"`302`\" pulumi-lang-go=\"`302`\" pulumi-lang-python=\"`302`\" pulumi-lang-yaml=\"`302`\" pulumi-lang-java=\"`302`\"\u003e`302`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`303`\" pulumi-lang-dotnet=\"`303`\" pulumi-lang-go=\"`303`\" pulumi-lang-python=\"`303`\" pulumi-lang-yaml=\"`303`\" pulumi-lang-java=\"`303`\"\u003e`303`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`307`\" pulumi-lang-dotnet=\"`307`\" pulumi-lang-go=\"`307`\" pulumi-lang-python=\"`307`\" pulumi-lang-yaml=\"`307`\" pulumi-lang-java=\"`307`\"\u003e`307`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`308`\" pulumi-lang-dotnet=\"`308`\" pulumi-lang-go=\"`308`\" pulumi-lang-python=\"`308`\" pulumi-lang-yaml=\"`308`\" pulumi-lang-java=\"`308`\"\u003e`308`\u003c/span\u003e.\n"},"target":{"type":"string","description":"A URL can be used in case of a location redirect (e.g. `https://scaleway.com` will redirect to this same URL). A scheme name (e.g. \u003cspan pulumi-lang-nodejs=\"`https`\" pulumi-lang-dotnet=\"`Https`\" pulumi-lang-go=\"`https`\" pulumi-lang-python=\"`https`\" pulumi-lang-yaml=\"`https`\" pulumi-lang-java=\"`https`\"\u003e`https`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`http`\" pulumi-lang-dotnet=\"`Http`\" pulumi-lang-go=\"`http`\" pulumi-lang-python=\"`http`\" pulumi-lang-yaml=\"`http`\" pulumi-lang-java=\"`http`\"\u003e`http`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ftp`\" pulumi-lang-dotnet=\"`Ftp`\" pulumi-lang-go=\"`ftp`\" pulumi-lang-python=\"`ftp`\" pulumi-lang-yaml=\"`ftp`\" pulumi-lang-java=\"`ftp`\"\u003e`ftp`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`git`\" pulumi-lang-dotnet=\"`Git`\" pulumi-lang-go=\"`git`\" pulumi-lang-python=\"`git`\" pulumi-lang-yaml=\"`git`\" pulumi-lang-java=\"`git`\"\u003e`git`\u003c/span\u003e) will replace the request's original scheme.\n"},"type":{"type":"string","description":"The redirect type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`location`\" pulumi-lang-dotnet=\"`Location`\" pulumi-lang-go=\"`location`\" pulumi-lang-python=\"`location`\" pulumi-lang-yaml=\"`location`\" pulumi-lang-java=\"`location`\"\u003e`location`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`scheme`\" pulumi-lang-dotnet=\"`Scheme`\" pulumi-lang-go=\"`scheme`\" pulumi-lang-python=\"`scheme`\" pulumi-lang-yaml=\"`scheme`\" pulumi-lang-java=\"`scheme`\"\u003e`scheme`\u003c/span\u003e.\n"}},"type":"object"},"scaleway:loadbalancers/FrontendAclMatch:FrontendAclMatch":{"properties":{"httpFilter":{"type":"string","description":"The HTTP filter to match. This filter is supported only if your backend protocol has an HTTP forward protocol.\nIt extracts the request's URL path, which starts at the first slash and ends before the question mark (without the host part).\nPossible values are: \u003cspan pulumi-lang-nodejs=\"`aclHttpFilterNone`\" pulumi-lang-dotnet=\"`AclHttpFilterNone`\" pulumi-lang-go=\"`aclHttpFilterNone`\" pulumi-lang-python=\"`acl_http_filter_none`\" pulumi-lang-yaml=\"`aclHttpFilterNone`\" pulumi-lang-java=\"`aclHttpFilterNone`\"\u003e`acl_http_filter_none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pathBegin`\" pulumi-lang-dotnet=\"`PathBegin`\" pulumi-lang-go=\"`pathBegin`\" pulumi-lang-python=\"`path_begin`\" pulumi-lang-yaml=\"`pathBegin`\" pulumi-lang-java=\"`pathBegin`\"\u003e`path_begin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pathEnd`\" pulumi-lang-dotnet=\"`PathEnd`\" pulumi-lang-go=\"`pathEnd`\" pulumi-lang-python=\"`path_end`\" pulumi-lang-yaml=\"`pathEnd`\" pulumi-lang-java=\"`pathEnd`\"\u003e`path_end`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`regex`\" pulumi-lang-dotnet=\"`Regex`\" pulumi-lang-go=\"`regex`\" pulumi-lang-python=\"`regex`\" pulumi-lang-yaml=\"`regex`\" pulumi-lang-java=\"`regex`\"\u003e`regex`\u003c/span\u003e.\n"},"httpFilterOption":{"type":"string","description":"If you have \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e at \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e, you can use this field to filter on the HTTP header's value.\n"},"httpFilterValues":{"type":"array","items":{"type":"string"},"description":"A list of possible values to match for the given HTTP filter.\nKeep in mind that in the case of \u003cspan pulumi-lang-nodejs=\"`httpHeaderMatch`\" pulumi-lang-dotnet=\"`HttpHeaderMatch`\" pulumi-lang-go=\"`httpHeaderMatch`\" pulumi-lang-python=\"`http_header_match`\" pulumi-lang-yaml=\"`httpHeaderMatch`\" pulumi-lang-java=\"`httpHeaderMatch`\"\u003e`http_header_match`\u003c/span\u003e the HTTP header field name is case insensitive.\n"},"invert":{"type":"boolean","description":"If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the condition will be of type \"unless\".\n"},"ipSubnets":{"type":"array","items":{"type":"string"},"description":"A list of IPs, or CIDR v4/v6 addresses of the session client, to match. Only one of \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e should be specified.\n"},"ipsEdgeServices":{"type":"boolean","description":"Defines whether Edge Services IPs should be matched. Only one of \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e should be specified.\n"}},"type":"object"},"scaleway:loadbalancers/LoadBalancerPrivateIp:LoadBalancerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address.\n"},"id":{"type":"string","description":"The ID of the IP address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:loadbalancers/LoadBalancerPrivateNetwork:LoadBalancerPrivateNetwork":{"properties":{"dhcpConfig":{"type":"boolean","description":"Set to true if you want to let DHCP assign IP addresses\n","deprecationMessage":"dhcp_config field is deprecated, please use \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipamIds`\" pulumi-lang-dotnet=\"`IpamIds`\" pulumi-lang-go=\"`ipamIds`\" pulumi-lang-python=\"`ipam_ids`\" pulumi-lang-yaml=\"`ipamIds`\" pulumi-lang-java=\"`ipamIds`\"\u003e`ipam_ids`\u003c/span\u003e instead"},"ipamIds":{"type":"string","description":"IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network to attach to.\n- \u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e will recreate the attachment.\n"},"staticConfigs":{"type":"array","items":{"type":"string"},"description":"Define an IP address in the subnet of your private network that will be assigned to your load balancer instance\n","deprecationMessage":"static_config field is deprecated, please use \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipamIds`\" pulumi-lang-dotnet=\"`IpamIds`\" pulumi-lang-go=\"`ipamIds`\" pulumi-lang-python=\"`ipam_ids`\" pulumi-lang-yaml=\"`ipamIds`\" pulumi-lang-java=\"`ipamIds`\"\u003e`ipam_ids`\u003c/span\u003e instead"},"status":{"type":"string","description":"The status of the private network connection.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Load Balancer.\n"}},"type":"object","required":["privateNetworkId"],"language":{"nodejs":{"requiredOutputs":["dhcpConfig","ipamIds","privateNetworkId","staticConfigs","status","zone"]}}},"scaleway:loadbalancers/getAclsAcl:getAclsAcl":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/getAclsAclAction:getAclsAclAction"},"description":"The action to be undertaken when an ACL filter matches.\n"},"createdAt":{"type":"string","description":"The date on which the ACL was created (RFC 3339 format).\n"},"description":{"type":"string","description":"The description of the ACL resource.\n"},"frontendId":{"type":"string","description":"The frontend ID this ACL is attached to. ACLs with a matching frontend ID are listed.\n\u003e **Important:** LB frontend IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111`\n"},"id":{"type":"string","description":"The associated ACL ID.\n\u003e **Important:** LB ACLs' IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111`\n"},"index":{"type":"integer","description":"The priority of this ACL in the ordered list.\n"},"matches":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/getAclsAclMatch:getAclsAclMatch"},"description":"The ACL match rule.\n"},"name":{"type":"string","description":"The ACL name to filter for. ACLs with a matching name are listed.\n"},"updateAt":{"type":"string","description":"The date on which the ACL was last updated (RFC 3339 format).\n"}},"type":"object","required":["actions","createdAt","description","frontendId","id","index","matches","name","updateAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getAclsAclAction:getAclsAclAction":{"properties":{"redirects":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/getAclsAclActionRedirect:getAclsAclActionRedirect"},"description":"Redirect parameters when using an ACL with \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e action.\n"},"type":{"type":"string","description":"The redirect type.\n"}},"type":"object","required":["redirects","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getAclsAclActionRedirect:getAclsAclActionRedirect":{"properties":{"code":{"type":"integer","description":"The HTTP redirect code to use.\n"},"target":{"type":"string","description":"The URL used in case of a location redirect, or the scheme name that replaces the request's original scheme.\n"},"type":{"type":"string","description":"The redirect type.\n"}},"type":"object","required":["code","target","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getAclsAclMatch:getAclsAclMatch":{"properties":{"httpFilter":{"type":"string","description":"The HTTP filter to match.\n"},"httpFilterOption":{"type":"string","description":"A list of possible values for the HTTP filter based on the HTTP header.\n"},"httpFilterValues":{"type":"array","items":{"type":"string"},"description":"The possible values to match for a given HTTP filter.\n"},"invert":{"type":"boolean","description":"The condition will be of type \"unless\" if invert is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"ipSubnets":{"type":"array","items":{"type":"string"},"description":"A list of IPs, or CIDR v4/v6 addresses of the session client, to match.\n"},"ipsEdgeServices":{"type":"boolean","description":"Defines whether Edge Services IPs should be matched.\n"}},"type":"object","required":["httpFilter","httpFilterOption","httpFilterValues","invert","ipSubnets","ipsEdgeServices"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getBackendHealthCheckHttp:getBackendHealthCheckHttp":{"properties":{"code":{"type":"integer","description":"The expected HTTP status code\n"},"hostHeader":{"type":"string","description":"The HTTP host header to use for HC requests\n"},"method":{"type":"string","description":"The HTTP method to use for HC requests\n"},"sni":{"type":"string","description":"The SNI to use for HC requests over SSL\n"},"uri":{"type":"string","description":"The HTTPS endpoint URL to call for HC requests\n"}},"type":"object","required":["code","hostHeader","method","sni","uri"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getBackendHealthCheckTcp:getBackendHealthCheckTcp":{"type":"object"},"scaleway:loadbalancers/getBackendsBackend:getBackendsBackend":{"properties":{"createdAt":{"type":"string","description":"The date on which the backend was created (RFC 3339 format).\n"},"failoverHost":{"type":"string","description":"Scaleway S3 bucket website to be served if all backend servers are down.\n"},"forwardPort":{"type":"integer","description":"User sessions will be forwarded to this backend server port.\n"},"forwardPortAlgorithm":{"type":"string","description":"Load balancing algorithm.\n"},"forwardProtocol":{"type":"string","description":"Backend protocol.\n"},"healthCheckDelay":{"type":"string","description":"Interval between two health check requests.\n"},"healthCheckHttp":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/getBackendsBackendHealthCheckHttp:getBackendsBackendHealthCheckHttp"},"description":"This block enables HTTP health checks.\n"},"healthCheckHttps":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/getBackendsBackendHealthCheckHttp:getBackendsBackendHealthCheckHttp"},"description":"This block enables HTTPS health checks.\n"},"healthCheckMaxRetries":{"type":"integer","description":"Number of allowed failed health check requests before the backend server is marked as down.\n"},"healthCheckPort":{"type":"integer","description":"Port the health check requests will be sent to.\n"},"healthCheckTcps":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/getBackendsBackendHealthCheckTcp:getBackendsBackendHealthCheckTcp"},"description":"This block enables TCP health checks.\n"},"healthCheckTimeout":{"type":"string","description":"Timeout before a health check request is considered failed.\n"},"id":{"type":"string","description":"The associated backend ID.\n"},"ignoreSslServerVerify":{"type":"boolean","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection.\n"},"lbId":{"type":"string","description":"The Load Balancer ID this backend is attached to. Backends with a matching ID are listed.\n"},"name":{"type":"string","description":"The backend name to filter for. Backends with a matching name are listed.\n"},"onMarkedDownAction":{"type":"string","description":"Modify what occurs when a backend server is marked down.\n"},"proxyProtocol":{"type":"string","description":"The type of PROXY protocol.\n"},"serverIps":{"type":"array","items":{"type":"string"},"description":"List of backend server IP addresses.\n"},"sslBridging":{"type":"boolean","description":"Enables SSL between Load Balancer and backend servers.\n"},"stickySessions":{"type":"string","description":"Enables cookie-based session persistence.\n"},"stickySessionsCookieName":{"type":"string","description":"Cookie name for sticky sessions.\n"},"timeoutConnect":{"type":"string","description":"Maximum initial server connection establishment time.\n"},"timeoutServer":{"type":"string","description":"Maximum server connection inactivity time.\n"},"timeoutTunnel":{"type":"string","description":"Maximum tunnel inactivity time.\n"},"updateAt":{"type":"string","description":"The date on which the backend was last updated (RFC 3339 format).\n"}},"type":"object","required":["createdAt","failoverHost","forwardPort","forwardPortAlgorithm","forwardProtocol","healthCheckDelay","healthCheckHttp","healthCheckHttps","healthCheckMaxRetries","healthCheckPort","healthCheckTcps","healthCheckTimeout","id","ignoreSslServerVerify","lbId","name","onMarkedDownAction","proxyProtocol","serverIps","sslBridging","stickySessions","stickySessionsCookieName","timeoutConnect","timeoutServer","timeoutTunnel","updateAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getBackendsBackendHealthCheckHttp:getBackendsBackendHealthCheckHttp":{"properties":{"code":{"type":"integer","description":"The expected HTTP status code.\n"},"hostHeader":{"type":"string","description":"The HTTP host header to use for health check requests.\n"},"method":{"type":"string","description":"The HTTP method to use for health check requests.\n"},"sni":{"type":"string","description":"The SNI to use for HC requests over SSL.\n"},"uri":{"type":"string","description":"The path of health check requests.\n"}},"type":"object","required":["code","hostHeader","method","sni","uri"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getBackendsBackendHealthCheckTcp:getBackendsBackendHealthCheckTcp":{"type":"object"},"scaleway:loadbalancers/getCertificateCustomCertificate:getCertificateCustomCertificate":{"properties":{"certificateChain":{"type":"string","description":"The full PEM-formatted certificate chain\n"}},"type":"object","required":["certificateChain"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getCertificateLetsencrypt:getCertificateLetsencrypt":{"properties":{"commonName":{"type":"string","description":"The main domain name of the certificate\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The alternative domain names of the certificate\n"}},"type":"object","required":["commonName","subjectAlternativeNames"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getFrontendAcl:getFrontendAcl":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/getFrontendAclAction:getFrontendAclAction"},"description":"Action to undertake when an ACL filter matches\n"},"createdAt":{"type":"string","description":"IsDate and time of ACL's creation (RFC 3339 format)\n"},"description":{"type":"string","description":"Description of the ACL\n"},"matches":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/getFrontendAclMatch:getFrontendAclMatch"},"description":"The ACL match rule\n"},"name":{"type":"string","description":"The name of the frontend.\n- When using the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e you should specify the `lb-id`\n"},"updatedAt":{"type":"string","description":"IsDate and time of ACL's update (RFC 3339 format)\n"}},"type":"object","required":["actions","createdAt","description","matches","name","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getFrontendAclAction:getFrontendAclAction":{"properties":{"redirects":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/getFrontendAclActionRedirect:getFrontendAclActionRedirect"},"description":"Redirect parameters when using an ACL with \u003cspan pulumi-lang-nodejs=\"`redirect`\" pulumi-lang-dotnet=\"`Redirect`\" pulumi-lang-go=\"`redirect`\" pulumi-lang-python=\"`redirect`\" pulumi-lang-yaml=\"`redirect`\" pulumi-lang-java=\"`redirect`\"\u003e`redirect`\u003c/span\u003e action\n"},"type":{"type":"string","description":"The action type\n"}},"type":"object","required":["redirects","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getFrontendAclActionRedirect:getFrontendAclActionRedirect":{"properties":{"code":{"type":"integer","description":"The HTTP redirect code to use\n"},"target":{"type":"string","description":"An URL can be used in case of a location redirect\n"},"type":{"type":"string","description":"The redirect type\n"}},"type":"object","required":["code","target","type"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getFrontendAclMatch:getFrontendAclMatch":{"properties":{"httpFilter":{"type":"string","description":"The HTTP filter to match\n"},"httpFilterOption":{"type":"string","description":"You can use this field with\u003cspan pulumi-lang-nodejs=\" httpHeaderMatch \" pulumi-lang-dotnet=\" HttpHeaderMatch \" pulumi-lang-go=\" httpHeaderMatch \" pulumi-lang-python=\" http_header_match \" pulumi-lang-yaml=\" httpHeaderMatch \" pulumi-lang-java=\" httpHeaderMatch \"\u003e http_header_match \u003c/span\u003eacl type to set the header name to filter\n"},"httpFilterValues":{"type":"array","items":{"type":"string"},"description":"A list of possible values to match for the given HTTP filter\n"},"invert":{"type":"boolean","description":"If set to true, the condition will be of type \"unless\"\n"},"ipSubnets":{"type":"array","items":{"type":"string"},"description":"A list of IPs or CIDR v4/v6 addresses of the client of the session to match\n"},"ipsEdgeServices":{"type":"boolean","description":"Defines whether Edge Services IPs should be matched\n"}},"type":"object","required":["httpFilter","httpFilterOption","httpFilterValues","invert","ipSubnets","ipsEdgeServices"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getFrontendsFrontend:getFrontendsFrontend":{"properties":{"backendId":{"type":"string","description":"The Load Balancer backend ID this frontend is attached to.\n\u003e **Important:** Load Balancer backend IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111`\n"},"certificateIds":{"type":"array","items":{"type":"string"},"description":"List of certificate IDs that are used by the frontend.\n"},"connectionRateLimit":{"type":"integer","description":"The rate limit for new connections established on this frontend. Use 0 value to disable, else value is connections per second.\n"},"createdAt":{"type":"string","description":"The date on which the frontend was created (RFC 3339 format).\n"},"enableAccessLogs":{"type":"boolean","description":"Defines whether to enable access logs on the frontend.\n"},"enableHttp3":{"type":"boolean","description":"Whether HTTP/3 protocol is activated.\n"},"id":{"type":"string","description":"The ID of the associated frontend.\n\u003e **Important:** LB frontend IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111`\n"},"inboundPort":{"type":"integer","description":"TCP port the frontend listens to.\n"},"lbId":{"type":"string","description":"The Load Balancer ID this frontend is attached to. Frontends with a matching ID are listed.\n"},"name":{"type":"string","description":"The frontend name to filter for. Frontends with a matching name are listed.\n"},"timeoutClient":{"type":"string","description":"Maximum inactivity time on the client side.\n"},"updateAt":{"type":"string","description":"The date on which the frontend was last updated (RFC 3339 format).\n"}},"type":"object","required":["backendId","certificateIds","connectionRateLimit","createdAt","enableAccessLogs","enableHttp3","id","inboundPort","lbId","name","timeoutClient","updateAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getIpsIp:getIpsIp":{"properties":{"id":{"type":"string","description":"The ID of the associated IP.\n"},"ipAddress":{"type":"string","description":"The IP address\n"},"lbId":{"type":"string","description":"The ID of the associated Load BalancerD, if any\n"},"organizationId":{"type":"string","description":"The ID of the Organization the Load Balancer is associated with.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n"},"reverse":{"type":"string","description":"The reverse domain associated with this IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. IPs with these exact tags are listed.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IPs exist.\n"}},"type":"object","required":["id","ipAddress","lbId","organizationId","projectId","reverse","tags"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getLoadBalancerPrivateIp:getLoadBalancerPrivateIp":{"properties":{"address":{"type":"string","description":"The private IP address\n"},"id":{"type":"string","description":"The ID of the Load Balancer.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getLoadBalancerPrivateNetwork:getLoadBalancerPrivateNetwork":{"properties":{"dhcpConfig":{"type":"boolean","description":"Set to true if you want to let DHCP assign IP addresses\n"},"ipamIds":{"type":"array","items":{"type":"string"},"description":"IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network\n"},"privateNetworkId":{"type":"string","description":"The Private Network ID\n"},"staticConfigs":{"type":"array","items":{"type":"string"},"description":"Define an IP address in the subnet of your private network that will be assigned to your load balancer instance\n"},"status":{"type":"string","description":"The status of private network connection\n"},"zone":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancer exists.\n"}},"type":"object","required":["dhcpConfig","ipamIds","privateNetworkId","staticConfigs","status","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getLoadBalancersLb:getLoadBalancersLb":{"properties":{"backendCount":{"type":"integer","description":"Number of backends the Load Balancer has.\n"},"createdAt":{"type":"string","description":"Date on which the Load Balancer was created.\n"},"description":{"type":"string","description":"The description of the Load Balancer.\n"},"frontendCount":{"type":"integer","description":"Number of frontends the Load Balancer has.\n"},"id":{"type":"string","description":"The ID of the Load Balancer.\n"},"instances":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/getLoadBalancersLbInstance:getLoadBalancersLbInstance"},"description":"List of underlying Instances.\n"},"ips":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/getLoadBalancersLbIp:getLoadBalancersLbIp"},"description":"List of IPs attached to the Load Balancer.\n"},"name":{"type":"string","description":"The Load Balancer name to filter for. Load Balancers with a matching name are listed.\n"},"organizationId":{"type":"string","description":"The ID of the Organization the Load Balancer is associated with.\n"},"privateNetworkCount":{"type":"integer","description":"Number of Private Networks attached to the Load balancer.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n"},"routeCount":{"type":"integer","description":"Number of routes the Load balancer has.\n"},"sslCompatibilityLevel":{"type":"string","description":"Determines the minimal SSL version which needs to be supported on the client side.\n"},"status":{"type":"string","description":"The state of the Load Balancer Instance. Possible values are: \u003cspan pulumi-lang-nodejs=\"`unknown`\" pulumi-lang-dotnet=\"`Unknown`\" pulumi-lang-go=\"`unknown`\" pulumi-lang-python=\"`unknown`\" pulumi-lang-yaml=\"`unknown`\" pulumi-lang-java=\"`unknown`\"\u003e`unknown`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ready`\" pulumi-lang-dotnet=\"`Ready`\" pulumi-lang-go=\"`ready`\" pulumi-lang-python=\"`ready`\" pulumi-lang-yaml=\"`ready`\" pulumi-lang-java=\"`ready`\"\u003e`ready`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pending`\" pulumi-lang-dotnet=\"`Pending`\" pulumi-lang-go=\"`pending`\" pulumi-lang-python=\"`pending`\" pulumi-lang-yaml=\"`pending`\" pulumi-lang-java=\"`pending`\"\u003e`pending`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`migrating`\" pulumi-lang-dotnet=\"`Migrating`\" pulumi-lang-go=\"`migrating`\" pulumi-lang-python=\"`migrating`\" pulumi-lang-yaml=\"`migrating`\" pulumi-lang-java=\"`migrating`\"\u003e`migrating`\u003c/span\u003e.\n"},"subscriber":{"type":"string","description":"The subscriber information.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. Load Balancers with these exact tags are listed.\n"},"type":{"type":"string","description":"The offer type of the Load Balancer.\n"},"updatedAt":{"type":"string","description":"Date on which the Load Balancer was updated.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancers exist.\n"}},"type":"object","required":["backendCount","createdAt","description","frontendCount","id","instances","ips","name","organizationId","privateNetworkCount","projectId","routeCount","sslCompatibilityLevel","status","subscriber","tags","type","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getLoadBalancersLbInstance:getLoadBalancersLbInstance":{"properties":{"createdAt":{"type":"string","description":"Date on which the Load Balancer was created.\n"},"id":{"type":"string","description":"The ID of the Load Balancer.\n"},"ipAddress":{"type":"string","description":"IP address of the instance\n"},"status":{"type":"string","description":"The state of the Load Balancer Instance. Possible values are: \u003cspan pulumi-lang-nodejs=\"`unknown`\" pulumi-lang-dotnet=\"`Unknown`\" pulumi-lang-go=\"`unknown`\" pulumi-lang-python=\"`unknown`\" pulumi-lang-yaml=\"`unknown`\" pulumi-lang-java=\"`unknown`\"\u003e`unknown`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ready`\" pulumi-lang-dotnet=\"`Ready`\" pulumi-lang-go=\"`ready`\" pulumi-lang-python=\"`ready`\" pulumi-lang-yaml=\"`ready`\" pulumi-lang-java=\"`ready`\"\u003e`ready`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pending`\" pulumi-lang-dotnet=\"`Pending`\" pulumi-lang-go=\"`pending`\" pulumi-lang-python=\"`pending`\" pulumi-lang-yaml=\"`pending`\" pulumi-lang-java=\"`pending`\"\u003e`pending`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`locked`\" pulumi-lang-dotnet=\"`Locked`\" pulumi-lang-go=\"`locked`\" pulumi-lang-python=\"`locked`\" pulumi-lang-yaml=\"`locked`\" pulumi-lang-java=\"`locked`\"\u003e`locked`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`migrating`\" pulumi-lang-dotnet=\"`Migrating`\" pulumi-lang-go=\"`migrating`\" pulumi-lang-python=\"`migrating`\" pulumi-lang-yaml=\"`migrating`\" pulumi-lang-java=\"`migrating`\"\u003e`migrating`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"Date on which the Load Balancer was updated.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancers exist.\n"}},"type":"object","required":["createdAt","id","ipAddress","status","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getLoadBalancersLbIp:getLoadBalancersLbIp":{"properties":{"id":{"type":"string","description":"The ID of the Load Balancer.\n"},"ipAddress":{"type":"string","description":"IP address\n"},"lbId":{"type":"string","description":"UUID of the load balancer attached to the IP\n"},"organizationId":{"type":"string","description":"The ID of the Organization the Load Balancer is associated with.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n"},"reverse":{"type":"string","description":"Reverse DNS attached to the IP\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancers exist.\n"}},"type":"object","required":["id","ipAddress","lbId","organizationId","projectId","reverse"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:loadbalancers/getRoutesRoute:getRoutesRoute":{"properties":{"backendId":{"type":"string","description":"The backend ID to redirect to\n"},"createdAt":{"type":"string","description":"The date on which the route was created (RFC 3339 format).\n"},"frontendId":{"type":"string","description":"The frontend ID (the origin of the redirection), to filter for. Routes with a matching frontend ID are listed.\n"},"id":{"type":"string","description":"The associated route ID.\n"},"matchHostHeader":{"type":"string","description":"Specifies the host of the server to which the request is being sent.\n"},"matchSni":{"type":"string","description":"Server Name Indication TLS extension field from an incoming connection made via an SSL/TLS transport layer.\n"},"matchSubdomains":{"type":"boolean","description":"If true, all subdomains will match.\n"},"updateAt":{"type":"string","description":"The date on which the route was last updated (RFC 3339 format).\n"}},"type":"object","required":["backendId","createdAt","frontendId","id","matchHostHeader","matchSni","matchSubdomains","updateAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:mnq/SnsCredentialsPermissions:SnsCredentialsPermissions":{"properties":{"canManage":{"type":"boolean","description":". Defines whether the user can manage the associated resource(s).\n"},"canPublish":{"type":"boolean","description":". Defines whether the user can publish messages to the service.\n"},"canReceive":{"type":"boolean","description":". Defines whether the user can receive messages from the service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["canManage","canPublish","canReceive"]}}},"scaleway:mnq/SqsCredentialsPermissions:SqsCredentialsPermissions":{"properties":{"canManage":{"type":"boolean","description":". Defines whether the user can manage the associated resource(s).\n"},"canPublish":{"type":"boolean","description":". Defines whether the user can publish messages to the service.\n"},"canReceive":{"type":"boolean","description":". Defines whether the user can receive messages from the service.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["canManage","canPublish","canReceive"]}}},"scaleway:mnq/SqsQueueDeadLetterQueue:SqsQueueDeadLetterQueue":{"properties":{"id":{"type":"string","description":"The ID of the queue with format `{region/{project-id}/{queue-name}`\n"},"maxReceiveCount":{"type":"integer","description":"The number of times a message is delivered to the source queue before being sent to the dead-letter queue. Must be between 1 and 1,000.\n"}},"type":"object","required":["id","maxReceiveCount"]},"scaleway:mongodb/InstancePrivateIp:InstancePrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"The ID of the endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:mongodb/InstancePrivateNetwork:InstancePrivateNetwork":{"properties":{"dnsRecords":{"type":"array","items":{"type":"string"},"description":"List of DNS records for your endpoint.\n"},"id":{"type":"string","description":"The ID of the endpoint.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IP addresses for your endpoint.\n"},"pnId":{"type":"string","description":"The ID of the Private Network.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"}},"type":"object","required":["pnId"],"language":{"nodejs":{"requiredOutputs":["dnsRecords","id","ips","pnId","port"]}}},"scaleway:mongodb/InstancePublicNetwork:InstancePublicNetwork":{"properties":{"dnsRecord":{"type":"string","description":"The DNS record of your endpoint\n"},"id":{"type":"string","description":"The ID of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["dnsRecord","id","port"]}}},"scaleway:mongodb/UserRole:UserRole":{"properties":{"anyDatabase":{"type":"boolean","description":"Apply the role to all databases. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`databaseName`\" pulumi-lang-dotnet=\"`DatabaseName`\" pulumi-lang-go=\"`databaseName`\" pulumi-lang-python=\"`database_name`\" pulumi-lang-yaml=\"`databaseName`\" pulumi-lang-java=\"`databaseName`\"\u003e`database_name`\u003c/span\u003e.\n"},"databaseName":{"type":"string","description":"The database name for the role. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`anyDatabase`\" pulumi-lang-dotnet=\"`AnyDatabase`\" pulumi-lang-go=\"`anyDatabase`\" pulumi-lang-python=\"`any_database`\" pulumi-lang-yaml=\"`anyDatabase`\" pulumi-lang-java=\"`anyDatabase`\"\u003e`any_database`\u003c/span\u003e.\n"},"role":{"type":"string","description":"The role name. Valid values are \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readWrite`\" pulumi-lang-dotnet=\"`ReadWrite`\" pulumi-lang-go=\"`readWrite`\" pulumi-lang-python=\"`read_write`\" pulumi-lang-yaml=\"`readWrite`\" pulumi-lang-java=\"`readWrite`\"\u003e`read_write`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`dbAdmin`\" pulumi-lang-dotnet=\"`DbAdmin`\" pulumi-lang-go=\"`dbAdmin`\" pulumi-lang-python=\"`db_admin`\" pulumi-lang-yaml=\"`dbAdmin`\" pulumi-lang-java=\"`dbAdmin`\"\u003e`db_admin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sync`\" pulumi-lang-dotnet=\"`Sync`\" pulumi-lang-go=\"`sync`\" pulumi-lang-python=\"`sync`\" pulumi-lang-yaml=\"`sync`\" pulumi-lang-java=\"`sync`\"\u003e`sync`\u003c/span\u003e.\n"}},"type":"object","required":["role"]},"scaleway:mongodb/getInstancePrivateIp:getInstancePrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address\n"},"id":{"type":"string","description":"The ID of the MongoDB® Instance.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:mongodb/getInstancePrivateNetwork:getInstancePrivateNetwork":{"properties":{"dnsRecords":{"type":"array","items":{"type":"string"},"description":"List of DNS records for your endpoint\n"},"id":{"type":"string","description":"The ID of the MongoDB® Instance.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IP addresses for your endpoint\n"},"pnId":{"type":"string","description":"The private network ID\n"},"port":{"type":"integer","description":"TCP port of the endpoint\n"}},"type":"object","required":["dnsRecords","id","ips","pnId","port"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:mongodb/getInstancePublicNetwork:getInstancePublicNetwork":{"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:network/AclRule:AclRule":{"properties":{"action":{"type":"string","description":"The policy to apply to the packet.\n"},"description":{"type":"string","description":"The rule description.\n"},"destination":{"type":"string","description":"The destination IP range to which this rule applies (CIDR notation with subnet mask).\n"},"dstPortHigh":{"type":"integer","description":"The ending port of the destination port range to which this rule applies (inclusive).\n"},"dstPortLow":{"type":"integer","description":"The starting port of the destination port range to which this rule applies (inclusive).\n"},"protocol":{"type":"string","description":"The protocol to which this rule applies. Default value: ANY.\n"},"source":{"type":"string","description":"The Source IP range to which this rule applies (CIDR notation with subnet mask).\n"},"srcPortHigh":{"type":"integer","description":"The ending port of the source port range to which this rule applies (inclusive).\n"},"srcPortLow":{"type":"integer","description":"The starting port of the source port range to which this rule applies (inclusive).\n"}},"type":"object"},"scaleway:network/GatewayNetworkIpamConfig:GatewayNetworkIpamConfig":{"properties":{"ipamIpId":{"type":"string","description":"Use this IPAM-booked IP ID as the Gateway's IP in this Private Network.\n"},"pushDefaultRoute":{"type":"boolean","description":"Defines whether to enable the default route on the GatewayNetwork.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ipamIpId"]}}},"scaleway:network/GatewayNetworkPrivateIp:GatewayNetworkPrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"The ID of the IPv4 address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:network/PrivateNetworkIpv4Subnet:PrivateNetworkIpv4Subnet":{"properties":{"address":{"type":"string","description":"The network address of the subnet in hexadecimal notation, e.g., '2001:db8::' for a '2001:db8::/64' subnet.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the subnet.\n"},"id":{"type":"string","description":"The subnet ID.\n"},"prefixLength":{"type":"integer","description":"The length of the network prefix, e.g., 64 for a 'ffff:ffff:ffff:ffff::' mask.\n"},"subnet":{"type":"string","description":"The subnet CIDR.\n","willReplaceOnChanges":true},"subnetMask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","createdAt","id","prefixLength","subnet","subnetMask","updatedAt"]}}},"scaleway:network/PrivateNetworkIpv6Subnet:PrivateNetworkIpv6Subnet":{"properties":{"address":{"type":"string","description":"The network address of the subnet in hexadecimal notation, e.g., '2001:db8::' for a '2001:db8::/64' subnet.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the subnet.\n"},"id":{"type":"string","description":"The subnet ID.\n"},"prefixLength":{"type":"integer","description":"The length of the network prefix, e.g., 64 for a 'ffff:ffff:ffff:ffff::' mask.\n"},"subnet":{"type":"string","description":"The subnet CIDR.\n","willReplaceOnChanges":true},"subnetMask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","createdAt","id","prefixLength","subnet","subnetMask","updatedAt"]}}},"scaleway:network/getGatewayNetworkIpamConfig:getGatewayNetworkIpamConfig":{"properties":{"ipamIpId":{"type":"string","description":"Use this IPAM-booked IP ID as the Gateway's IP in this Private Network\n"},"pushDefaultRoute":{"type":"boolean","description":"Defines whether the default route is enabled on that Gateway Network\n"}},"type":"object","required":["ipamIpId","pushDefaultRoute"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:network/getGatewayNetworkPrivateIp:getGatewayNetworkPrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"The ID of the IPv4 address resource.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:network/getPrivateNetworkIpv4Subnet:getPrivateNetworkIpv4Subnet":{"properties":{"address":{"type":"string","description":"The network address of the subnet in dotted decimal notation, e.g., '192.168.0.0' for a '192.168.0.0/24' subnet\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the subnet\n"},"id":{"type":"string","description":"The ID of the Private Network.\n"},"prefixLength":{"type":"integer","description":"The length of the network prefix, e.g., 24 for a 255.255.255.0 mask\n"},"subnet":{"type":"string","description":"The subnet CIDR\n"},"subnetMask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet\n"}},"type":"object","required":["address","createdAt","id","prefixLength","subnet","subnetMask","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:network/getPrivateNetworkIpv6Subnet:getPrivateNetworkIpv6Subnet":{"properties":{"address":{"type":"string","description":"The network address of the subnet in dotted decimal notation, e.g., '192.168.0.0' for a '192.168.0.0/24' subnet\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the subnet\n"},"id":{"type":"string","description":"The ID of the Private Network.\n"},"prefixLength":{"type":"integer","description":"The length of the network prefix, e.g., 24 for a 255.255.255.0 mask\n"},"subnet":{"type":"string","description":"The subnet CIDR\n"},"subnetMask":{"type":"string","description":"The subnet mask expressed in dotted decimal notation, e.g., '255.255.255.0' for a /24 subnet\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet\n"}},"type":"object","required":["address","createdAt","id","prefixLength","subnet","subnetMask","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:network/getRoutesRoute:getRoutesRoute":{"properties":{"createdAt":{"type":"string","description":"The date on which the route was created (RFC 3339 format).\n"},"description":{"type":"string","description":"The description of the route.\n"},"destination":{"type":"string","description":"The destination IP or IP range of the route.\n"},"id":{"type":"string","description":"The ID of the route.\n\u003e **Important:** route IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111\n"},"nexthopIp":{"type":"string","description":"The IP of the route's next hop.\n"},"nexthopName":{"type":"string","description":"The name of the route's next hop.\n"},"nexthopPrivateNetworkId":{"type":"string","description":"The next hop private network ID to filter for. routes with a similar next hop private network ID are listed.\n"},"nexthopResourceId":{"type":"string","description":"The next hop resource ID to filter for. routes with a similar next hop resource ID are listed.\n"},"nexthopResourceType":{"type":"string","description":"The next hop resource type to filter for. routes with a similar next hop resource type are listed.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the routes exist.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. routes with these exact tags are listed.\n"},"vpcId":{"type":"string","description":"The VPC ID to filter for. routes with a similar VPC ID are listed.\n"}},"type":"object","required":["createdAt","description","destination","id","nexthopIp","nexthopName","nexthopPrivateNetworkId","nexthopResourceId","nexthopResourceType","tags","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:network/getVpcsVpc:getVpcsVpc":{"properties":{"createdAt":{"type":"string","description":"Date and time of VPC's creation (RFC 3339 format).\n"},"id":{"type":"string","description":"The associated VPC ID.\n\u003e **Important:** VPC IDs are regional, which means they are of the form `{region}/{id}`, e.g. `fr-par/11111111-1111-1111-1111-111111111111\n"},"isDefault":{"type":"boolean","description":"Defines whether the VPC is the default one for its Project.\n"},"name":{"type":"string","description":"The VPC name to filter for. VPCs with a similar name are listed.\n"},"organizationId":{"type":"string","description":"The Organization ID the VPC is associated with.\n"},"projectId":{"type":"string","description":"The ID of the Project the VPC is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the VPCs exist.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. VPCs with these exact tags are listed.\n"},"updateAt":{"type":"string","description":"Date on which the VPC was last updated (RFC 3339 format)\n"}},"type":"object","required":["createdAt","id","isDefault","name","organizationId","projectId","tags","updateAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:object/BucketAclAccessControlPolicy:BucketAclAccessControlPolicy":{"properties":{"grants":{"type":"array","items":{"$ref":"#/types/scaleway:object/BucketAclAccessControlPolicyGrant:BucketAclAccessControlPolicyGrant"},"description":"Grant\n"},"owner":{"$ref":"#/types/scaleway:object/BucketAclAccessControlPolicyOwner:BucketAclAccessControlPolicyOwner","description":"Configuration block of the bucket project owner's display organization ID.\n"}},"type":"object","required":["owner"]},"scaleway:object/BucketAclAccessControlPolicyGrant:BucketAclAccessControlPolicyGrant":{"properties":{"grantee":{"$ref":"#/types/scaleway:object/BucketAclAccessControlPolicyGrantGrantee:BucketAclAccessControlPolicyGrantGrantee","description":"Configuration block for the project being granted permissions.\n"},"permission":{"type":"string","description":"Logging permissions assigned to the grantee for the bucket.\n"}},"type":"object","required":["permission"]},"scaleway:object/BucketAclAccessControlPolicyGrantGrantee:BucketAclAccessControlPolicyGrantGrantee":{"properties":{"displayName":{"type":"string","description":"Display name of the grantee to grant access to.\n"},"id":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bucket`\" pulumi-lang-dotnet=\"`Bucket`\" pulumi-lang-go=\"`bucket`\" pulumi-lang-python=\"`bucket`\" pulumi-lang-yaml=\"`bucket`\" pulumi-lang-java=\"`bucket`\"\u003e`bucket`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e separated by (`/`).\n"},"type":{"type":"string","description":"Type of grantee. Valid values: `CanonicalUser`, `Group`\n"},"uri":{"type":"string","description":"The uri of the grantee if you are granting permissions to a predefined group.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["displayName"]}}},"scaleway:object/BucketAclAccessControlPolicyOwner:BucketAclAccessControlPolicyOwner":{"properties":{"displayName":{"type":"string","description":"The project ID of the grantee.\n"},"id":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bucket`\" pulumi-lang-dotnet=\"`Bucket`\" pulumi-lang-go=\"`bucket`\" pulumi-lang-python=\"`bucket`\" pulumi-lang-yaml=\"`bucket`\" pulumi-lang-java=\"`bucket`\"\u003e`bucket`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e separated by (`/`).\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["displayName","id"]}}},"scaleway:object/BucketCorsRule:BucketCorsRule":{"properties":{"allowedHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies which headers are allowed.\n"},"allowedMethods":{"type":"array","items":{"type":"string"},"description":"Specifies which methods are allowed (`GET`, `PUT`, `POST`, `DELETE` or `HEAD`).\n"},"allowedOrigins":{"type":"array","items":{"type":"string"},"description":"Specifies which origins are allowed.\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Specifies header exposure in the response.\n"},"maxAgeSeconds":{"type":"integer","description":"Specifies time in seconds that the browser can cache the response for a preflight request.\n"}},"type":"object","required":["allowedMethods","allowedOrigins"]},"scaleway:object/BucketLifecycleRule:BucketLifecycleRule":{"properties":{"abortIncompleteMultipartUploadDays":{"type":"integer","description":"Specifies the number of days after initiating a multipart upload when the multipart upload must be completed.\n\n\u003e **Important:** Avoid using \u003cspan pulumi-lang-nodejs=\"`prefix`\" pulumi-lang-dotnet=\"`Prefix`\" pulumi-lang-go=\"`prefix`\" pulumi-lang-python=\"`prefix`\" pulumi-lang-yaml=\"`prefix`\" pulumi-lang-java=\"`prefix`\"\u003e`prefix`\u003c/span\u003e for `AbortIncompleteMultipartUpload`, as any incomplete multipart upload will be billed\n"},"enabled":{"type":"boolean","description":"The element value can be either Enabled or Disabled. If a rule is disabled, Scaleway Object Storage does not perform any of the actions defined in the rule.\n"},"expiration":{"$ref":"#/types/scaleway:object/BucketLifecycleRuleExpiration:BucketLifecycleRuleExpiration","description":"Specifies a period in the object's expire\n"},"id":{"type":"string","description":"Unique identifier for the rule. Must be less than or equal to 255 characters in length.\n"},"prefix":{"type":"string","description":"Object key prefix identifying one or more objects to which the rule applies.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Specifies object tags key and value.\n"},"transitions":{"type":"array","items":{"$ref":"#/types/scaleway:object/BucketLifecycleRuleTransition:BucketLifecycleRuleTransition"},"description":"Define when objects transition to another storage class\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredOutputs":["enabled","id"]}}},"scaleway:object/BucketLifecycleRuleExpiration:BucketLifecycleRuleExpiration":{"properties":{"days":{"type":"integer","description":"Specifies the number of days after object creation when the specific rule action takes effect.\n"}},"type":"object","required":["days"]},"scaleway:object/BucketLifecycleRuleTransition:BucketLifecycleRuleTransition":{"properties":{"days":{"type":"integer","description":"Specifies the number of days after object creation when the specific rule action takes effect.\n"},"storageClass":{"type":"string","description":"Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class) `STANDARD`, `GLACIER`, `ONEZONE_IA`  to which you want the object to transition.\n\n\n\u003e **Important:**  If versioning is enabled, this rule only deletes the current version of an object.\n\u003e **Important:**  If versioning is enabled, this rule only deletes the current version of an object.\n\n\n\u003e **Important:**  `ONEZONE_IA` is only available in `fr-par` region. The storage class `GLACIER` is not available in `pl-waw` region.\n\u003e **Important:**  `ONEZONE_IA` is only available in `fr-par` region. The storage class `GLACIER` is not available in `pl-waw` region.\n"}},"type":"object","required":["storageClass"]},"scaleway:object/BucketLockConfigurationRule:BucketLockConfigurationRule":{"properties":{"defaultRetention":{"$ref":"#/types/scaleway:object/BucketLockConfigurationRuleDefaultRetention:BucketLockConfigurationRuleDefaultRetention","description":"The default retention for the lock.\n"}},"type":"object","required":["defaultRetention"]},"scaleway:object/BucketLockConfigurationRuleDefaultRetention:BucketLockConfigurationRuleDefaultRetention":{"properties":{"days":{"type":"integer","description":"The number of days you want to specify for the default retention period.\n"},"mode":{"type":"string","description":"The default object lock retention mode you want to apply to new objects placed in the specified bucket. Valid values are `GOVERNANCE` or `COMPLIANCE`. Refer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/object-lock/#retention-modes) for more information on retention modes.\n"},"years":{"type":"integer","description":"The number of years you want to specify for the default retention period.\n"}},"type":"object","required":["mode"]},"scaleway:object/BucketVersioning:BucketVersioning":{"properties":{"enabled":{"type":"boolean","description":"Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"scaleway:object/BucketWebsiteConfigurationErrorDocument:BucketWebsiteConfigurationErrorDocument":{"properties":{"key":{"type":"string","description":"The object key name to use when a 4XX class error occurs.\n"}},"type":"object","required":["key"]},"scaleway:object/BucketWebsiteConfigurationIndexDocument:BucketWebsiteConfigurationIndexDocument":{"properties":{"suffix":{"type":"string","description":"A suffix that is appended to a request targeting a specific directory on the website endpoint.\n\n\u003e **Important:** The suffix must not be empty and must not include a slash character. The routing is not supported.\n"}},"type":"object","required":["suffix"]},"scaleway:object/getBucketCorsRule:getBucketCorsRule":{"properties":{"allowedHeaders":{"type":"array","items":{"type":"string"},"description":"Allowed headers in the CORS rule\n"},"allowedMethods":{"type":"array","items":{"type":"string"},"description":"Allowed HTTP methods allowed in the CORS rule\n"},"allowedOrigins":{"type":"array","items":{"type":"string"},"description":"Allowed origins allowed in the CORS rule\n"},"exposeHeaders":{"type":"array","items":{"type":"string"},"description":"Exposed headers in the CORS rule\n"},"maxAgeSeconds":{"type":"integer","description":"Max age of the CORS rule\n"}},"type":"object","required":["allowedHeaders","allowedMethods","allowedOrigins","exposeHeaders","maxAgeSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:object/getBucketLifecycleRule:getBucketLifecycleRule":{"properties":{"abortIncompleteMultipartUploadDays":{"type":"integer","description":"Specifies the number of days after initiating a multipart upload when the multipart upload must be completed\n"},"enabled":{"type":"boolean","description":"Specifies if the configuration rule is Enabled or Disabled\n"},"expirations":{"type":"array","items":{"$ref":"#/types/scaleway:object/getBucketLifecycleRuleExpiration:getBucketLifecycleRuleExpiration"},"description":"Specifies a period in the object's expire\n"},"id":{"type":"string","description":"The unique identifier of the bucket.\n"},"prefix":{"type":"string","description":"The prefix identifying one or more objects to which the rule applies\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"The tags associated with the bucket lifecycle\n"},"transitions":{"type":"array","items":{"$ref":"#/types/scaleway:object/getBucketLifecycleRuleTransition:getBucketLifecycleRuleTransition"},"description":"Define when objects transition to another storage class\n"}},"type":"object","required":["abortIncompleteMultipartUploadDays","enabled","expirations","id","prefix","tags","transitions"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:object/getBucketLifecycleRuleExpiration:getBucketLifecycleRuleExpiration":{"properties":{"days":{"type":"integer","description":"Specifies the number of days after object creation when the specific rule action takes effect\n"}},"type":"object","required":["days"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:object/getBucketLifecycleRuleTransition:getBucketLifecycleRuleTransition":{"properties":{"days":{"type":"integer","description":"Specifies the number of days after object creation when the specific rule action takes effect\n"},"storageClass":{"type":"string","description":"Specifies the Scaleway Object Storage class to which you want the object to transition\n"}},"type":"object","required":["days","storageClass"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:object/getBucketVersioning:getBucketVersioning":{"properties":{"enabled":{"type":"boolean","description":"Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:observability/AlertManagerContactPoint:AlertManagerContactPoint":{"properties":{"email":{"type":"string","description":"Email addresses for the alert receivers\n"}},"type":"object"},"scaleway:observability/CockpitEndpoint:CockpitEndpoint":{"properties":{"alertmanagerUrl":{"type":"string","description":"(Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).\n"},"grafanaUrl":{"type":"string","description":"(Deprecated) URL for Grafana.\n"},"logsUrl":{"type":"string","description":"(Deprecated) URL for [logs](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#logs) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.\n"},"metricsUrl":{"type":"string","description":"(Deprecated) URL for [metrics](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#metric) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.\n"},"tracesUrl":{"type":"string","description":"(Deprecated) URL for [traces](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#traces) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["alertmanagerUrl","grafanaUrl","logsUrl","metricsUrl","tracesUrl"]}}},"scaleway:observability/CockpitPushUrl:CockpitPushUrl":{"properties":{"pushLogsUrl":{"type":"string","description":"Push URL for logs (Grafana Loki)\n"},"pushMetricsUrl":{"type":"string","description":"Push URL for metrics (Grafana Mimir)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["pushLogsUrl","pushMetricsUrl"]}}},"scaleway:observability/TokenScopes:TokenScopes":{"properties":{"queryLogs":{"type":"boolean","description":"Permission to query logs.\n","willReplaceOnChanges":true},"queryMetrics":{"type":"boolean","description":"Permission to query metrics.\n","willReplaceOnChanges":true},"queryTraces":{"type":"boolean","description":"Permission to query traces.\n","willReplaceOnChanges":true},"setupAlerts":{"type":"boolean","description":"Permission to set up alerts.\n","willReplaceOnChanges":true},"setupLogsRules":{"type":"boolean","description":"Permission to set up logs rules.\n","willReplaceOnChanges":true},"setupMetricsRules":{"type":"boolean","description":"Permission to set up metrics rules.\n","willReplaceOnChanges":true},"writeLogs":{"type":"boolean","description":"Permission to write logs.\n","willReplaceOnChanges":true},"writeMetrics":{"type":"boolean","description":"Permission to write metrics.\n","willReplaceOnChanges":true},"writeTraces":{"type":"boolean","description":"Permission to write traces.\n","willReplaceOnChanges":true}},"type":"object"},"scaleway:observability/getInstanceEndpoint:getInstanceEndpoint":{"properties":{"alertmanagerUrl":{"type":"string","description":"(Deprecated) URL for the [Alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).\n"},"grafanaUrl":{"type":"string","description":"(Deprecated) URL for Grafana.\n"},"logsUrl":{"type":"string","description":"(Deprecated) URL for [logs](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#logs) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.\n"},"metricsUrl":{"type":"string","description":"(Deprecated) URL for [metrics](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#metric) to retrieve in the [Data sources tab](https://console.scaleway.com/cockpit/dataSource) of the Scaleway console.\n"},"tracesUrl":{"type":"string","description":"The traces URL.\n"}},"type":"object","required":["alertmanagerUrl","grafanaUrl","logsUrl","metricsUrl","tracesUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:observability/getInstancePushUrl:getInstancePushUrl":{"properties":{"pushLogsUrl":{"type":"string","description":"Push URL for logs (Grafana Loki)\n"},"pushMetricsUrl":{"type":"string","description":"Push URL for metrics (Grafana Mimir)\n"}},"type":"object","required":["pushLogsUrl","pushMetricsUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:observability/getPreconfiguredAlertAlert:getPreconfiguredAlertAlert":{"properties":{"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of annotations attached to the alert.\n"},"dataSourceId":{"type":"string","description":"Filter alerts by data source ID.\n"},"displayDescription":{"type":"string","description":"Human-readable description of the alert.\n"},"displayName":{"type":"string","description":"Human-readable name of the alert.\n"},"duration":{"type":"string","description":"Duration for which the condition must be true before the alert fires (e.g., \"5m\").\n"},"name":{"type":"string","description":"Name of the alert rule.\n"},"preconfiguredRuleId":{"type":"string","description":"Unique identifier of the preconfigured rule. Use this ID in \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.AlertManager`\" pulumi-lang-dotnet=\"`scaleway.observability.AlertManager`\" pulumi-lang-go=\"`observability.AlertManager`\" pulumi-lang-python=\"`observability.AlertManager`\" pulumi-lang-yaml=\"`scaleway.observability.AlertManager`\" pulumi-lang-java=\"`scaleway.observability.AlertManager`\"\u003e`scaleway.observability.AlertManager`\u003c/span\u003e resource.\n"},"productFamily":{"type":"string","description":"Family of the product (e.g., \"compute\", \"storage\", \"network\").\n"},"productName":{"type":"string","description":"Scaleway product associated with the alert (e.g., \"instance\", \"rdb\", \"kubernetes\").\n"},"rule":{"type":"string","description":"PromQL expression defining the alert condition.\n"},"ruleStatus":{"type":"string","description":"Filter alerts by rule status. Valid values are \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e.\n"},"state":{"type":"string","description":"Current state of the alert (\u003cspan pulumi-lang-nodejs=\"`inactive`\" pulumi-lang-dotnet=\"`Inactive`\" pulumi-lang-go=\"`inactive`\" pulumi-lang-python=\"`inactive`\" pulumi-lang-yaml=\"`inactive`\" pulumi-lang-java=\"`inactive`\"\u003e`inactive`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pending`\" pulumi-lang-dotnet=\"`Pending`\" pulumi-lang-go=\"`pending`\" pulumi-lang-python=\"`pending`\" pulumi-lang-yaml=\"`pending`\" pulumi-lang-java=\"`pending`\"\u003e`pending`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`firing`\" pulumi-lang-dotnet=\"`Firing`\" pulumi-lang-go=\"`firing`\" pulumi-lang-python=\"`firing`\" pulumi-lang-yaml=\"`firing`\" pulumi-lang-java=\"`firing`\"\u003e`firing`\u003c/span\u003e).\n"}},"type":"object","required":["annotations","dataSourceId","displayDescription","displayName","duration","name","preconfiguredRuleId","productFamily","productName","rule","ruleStatus","state"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:observability/getSourcesSource:getSourcesSource":{"properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the cockpit datasource.\n"},"id":{"type":"string","description":"The ID of the data source.\n"},"name":{"type":"string","description":"Filter sources by name.\n"},"origin":{"type":"string","description":"Filter sources by origin. Possible values are: \u003cspan pulumi-lang-nodejs=\"`scaleway`\" pulumi-lang-dotnet=\"`Scaleway`\" pulumi-lang-go=\"`scaleway`\" pulumi-lang-python=\"`scaleway`\" pulumi-lang-yaml=\"`scaleway`\" pulumi-lang-java=\"`scaleway`\"\u003e`scaleway`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The project ID the cockpit sources are associated with.\n"},"pushUrl":{"type":"string","description":"The URL endpoint used for pushing data to the cockpit data source.\n"},"region":{"type":"string","description":"The region in which the cockpit sources are located.\n"},"retentionDays":{"type":"integer","description":"The number of days to retain data.\n"},"synchronizedWithGrafana":{"type":"boolean","description":"Indicates whether the data source is synchronized with Grafana.\n"},"type":{"type":"string","description":"Filter sources by type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logs`\" pulumi-lang-dotnet=\"`Logs`\" pulumi-lang-go=\"`logs`\" pulumi-lang-python=\"`logs`\" pulumi-lang-yaml=\"`logs`\" pulumi-lang-java=\"`logs`\"\u003e`logs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`traces`\" pulumi-lang-dotnet=\"`Traces`\" pulumi-lang-go=\"`traces`\" pulumi-lang-python=\"`traces`\" pulumi-lang-yaml=\"`traces`\" pulumi-lang-java=\"`traces`\"\u003e`traces`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the cockpit datasource.\n"},"url":{"type":"string","description":"The URL of the datasource.\n"}},"type":"object","required":["createdAt","id","name","origin","projectId","pushUrl","region","retentionDays","synchronizedWithGrafana","type","updatedAt","url"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:opensearch/DeploymentEndpoint:DeploymentEndpoint":{"properties":{"id":{"type":"string","description":"The ID of the endpoint.\n"},"privateNetworkId":{"type":"string","description":"Private network ID if the endpoint is private.\n"},"public":{"type":"boolean","description":"Whether the endpoint is public (true) or private (false).\n"},"services":{"type":"array","items":{"$ref":"#/types/scaleway:opensearch/DeploymentEndpointService:DeploymentEndpointService"},"description":"List of services exposed on the endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","privateNetworkId","public","services"]}}},"scaleway:opensearch/DeploymentEndpointService:DeploymentEndpointService":{"properties":{"name":{"type":"string","description":"Name of the OpenSearch deployment. If not specified, a random name will be generated.\n"},"port":{"type":"integer","description":"Service port number.\n"},"url":{"type":"string","description":"Full URL to access the service (e.g., \"https://abc-123.searchdb.fr-par.scw.cloud:9200\").\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","port","url"]}}},"scaleway:opensearch/DeploymentPrivateNetwork:DeploymentPrivateNetwork":{"properties":{"privateNetworkId":{"type":"string","description":"Private network ID if the endpoint is private.\n"}},"type":"object","required":["privateNetworkId"]},"scaleway:opensearch/DeploymentVolume:DeploymentVolume":{"properties":{"sizeInGb":{"type":"integer","description":"Volume size in GB. Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Volume type. Valid values are \u003cspan pulumi-lang-nodejs=\"`sbs5k`\" pulumi-lang-dotnet=\"`Sbs5k`\" pulumi-lang-go=\"`sbs5k`\" pulumi-lang-python=\"`sbs_5k`\" pulumi-lang-yaml=\"`sbs5k`\" pulumi-lang-java=\"`sbs5k`\"\u003e`sbs_5k`\u003c/span\u003e (5K IOPS) or \u003cspan pulumi-lang-nodejs=\"`sbs15k`\" pulumi-lang-dotnet=\"`Sbs15k`\" pulumi-lang-go=\"`sbs15k`\" pulumi-lang-python=\"`sbs_15k`\" pulumi-lang-yaml=\"`sbs15k`\" pulumi-lang-java=\"`sbs15k`\"\u003e`sbs_15k`\u003c/span\u003e (15K IOPS). Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true}},"type":"object","required":["sizeInGb","type"]},"scaleway:redis/ClusterAcl:ClusterAcl":{"properties":{"description":{"type":"string","description":"A text describing this rule. Default description: `Allow IP`\n\n\u003e The \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e conflict with \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e. Only one should be specified.\n"},"id":{"type":"string","description":"The ID of the IPv4 address resource.\n"},"ip":{"type":"string","description":"The IPv4 address or range to whitelist in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation). IPv6 is not supported by the Scaleway API.\n"}},"type":"object","required":["ip"],"language":{"nodejs":{"requiredOutputs":["description","id","ip"]}}},"scaleway:redis/ClusterPrivateIp:ClusterPrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address.\n"},"id":{"type":"string","description":"The ID of the IPv4 address resource.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["address","id"]}}},"scaleway:redis/ClusterPrivateNetwork:ClusterPrivateNetwork":{"properties":{"endpointId":{"type":"string","description":"The ID of the endpoint.\n"},"id":{"type":"string","description":"The UUID of the Private Network resource.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"},"serviceIps":{"type":"array","items":{"type":"string"},"description":"Endpoint IPv4 addresses in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) (IPv6 is not supported by the Scaleway API). You must provide at least one IP per node.\nKeep in mind that in cluster mode you cannot edit your Private Network after its creation so if you want to be able to\nscale your cluster horizontally (adding nodes) later, you should provide more IPs than nodes.\nIf not set, the IP network address within the private subnet is determined by the IP Address Management (IPAM) service.\n\u003e **Important:** When IPAM is enabled, the IPs specified here will be ignored and should not be provided.\n\n\u003e The \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e conflicts with \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e. Only one should be specified.\n\n\u003e **Important:** The way to use Private Networks differs whether you are using Redis™ in Standalone or cluster mode.\n\n- Standalone mode (\u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e = 1) : you can attach as many Private Networks as you want (each must be a separate\nblock). If you detach your only Private Network, your cluster won't be reachable until you define a new Private or\nPublic Network. You can modify your \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e and its specs, you can have both a Private and Public Network side\nby side.\n\n- Cluster mode (\u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e \u003e 2) : you can define a single Private Network as you create your cluster, you won't be\nable to edit or detach it afterward, unless you create another cluster. This also means that, if you are using a static\nconfiguration (\u003cspan pulumi-lang-nodejs=\"`serviceIps`\" pulumi-lang-dotnet=\"`ServiceIps`\" pulumi-lang-go=\"`serviceIps`\" pulumi-lang-python=\"`service_ips`\" pulumi-lang-yaml=\"`serviceIps`\" pulumi-lang-java=\"`serviceIps`\"\u003e`service_ips`\u003c/span\u003e), you won't be able to scale your cluster horizontally (add more nodes) since it would\nrequire updating the Private Network to add IPs.\nYour \u003cspan pulumi-lang-nodejs=\"`serviceIps`\" pulumi-lang-dotnet=\"`ServiceIps`\" pulumi-lang-go=\"`serviceIps`\" pulumi-lang-python=\"`service_ips`\" pulumi-lang-yaml=\"`serviceIps`\" pulumi-lang-java=\"`serviceIps`\"\u003e`service_ips`\u003c/span\u003e must be listed as follows:\n\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the\nRedis™ cluster should be created.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["endpointId","id","ips","port","serviceIps","zone"]}}},"scaleway:redis/ClusterPublicNetwork:ClusterPublicNetwork":{"properties":{"id":{"type":"string","description":"The ID of the IPv4 address resource.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","ips","port"]}}},"scaleway:redis/getClusterAcl:getClusterAcl":{"properties":{"description":{"type":"string","description":"Description of the rule.\n"},"id":{"type":"string","description":"The ID of the Redis cluster.\n"},"ip":{"type":"string","description":"IPv4 network address of the rule in CIDR notation (IPv6 is not supported by the Scaleway API).\n"}},"type":"object","required":["description","id","ip"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:redis/getClusterPrivateIp:getClusterPrivateIp":{"properties":{"address":{"type":"string","description":"The private IPv4 address\n"},"id":{"type":"string","description":"The ID of the Redis cluster.\n"}},"type":"object","required":["address","id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:redis/getClusterPrivateNetwork:getClusterPrivateNetwork":{"properties":{"endpointId":{"type":"string","description":"The ID of the endpoint.\n"},"id":{"type":"string","description":"The ID of the Redis cluster.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"},"serviceIps":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses of the private network in CIDR notation (IPv6 is not supported by the Scaleway API)\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The zone in which the server exists.\n"}},"type":"object","required":["endpointId","id","ips","port","serviceIps","zone"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:redis/getClusterPublicNetwork:getClusterPublicNetwork":{"properties":{"id":{"type":"string","description":"The ID of the Redis cluster.\n"},"ips":{"type":"array","items":{"type":"string"},"description":"List of IPv4 addresses of the endpoint.\n"},"port":{"type":"integer","description":"TCP port of the endpoint.\n"}},"type":"object","required":["id","ips","port"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:s2svpn/ConnectionBgpConfigIpv4:ConnectionBgpConfigIpv4":{"properties":{"peerPrivateIp":{"type":"string","description":"The BGP peer IP on customer side (within the tunnel).\n"},"privateIp":{"type":"string","description":"The BGP peer IP on Scaleway side (within the tunnel).\n"},"routingPolicyId":{"type":"string","description":"The routing policy ID used for this BGP session.\n"}},"type":"object","required":["routingPolicyId"]},"scaleway:s2svpn/ConnectionBgpConfigIpv6:ConnectionBgpConfigIpv6":{"properties":{"peerPrivateIp":{"type":"string","description":"The BGP peer IP on customer side (within the tunnel).\n"},"privateIp":{"type":"string","description":"The BGP peer IP on Scaleway side (within the tunnel).\n"},"routingPolicyId":{"type":"string","description":"The routing policy ID used for this BGP session.\n"}},"type":"object","required":["routingPolicyId"]},"scaleway:s2svpn/ConnectionBgpSessionIpv4:ConnectionBgpSessionIpv4":{"properties":{"peerPrivateIp":{"type":"string","description":"The BGP peer IP on customer side (within the tunnel).\n"},"privateIp":{"type":"string","description":"The BGP peer IP on Scaleway side (within the tunnel).\n"},"routingPolicyId":{"type":"string","description":"The routing policy ID used for this BGP session.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["peerPrivateIp","privateIp","routingPolicyId"]}}},"scaleway:s2svpn/ConnectionBgpSessionIpv6:ConnectionBgpSessionIpv6":{"properties":{"peerPrivateIp":{"type":"string","description":"The BGP peer IP on customer side (within the tunnel).\n"},"privateIp":{"type":"string","description":"The BGP peer IP on Scaleway side (within the tunnel).\n"},"routingPolicyId":{"type":"string","description":"The routing policy ID used for this BGP session.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["peerPrivateIp","privateIp","routingPolicyId"]}}},"scaleway:s2svpn/ConnectionEspCipher:ConnectionEspCipher":{"properties":{"dhGroup":{"type":"string","description":"The Diffie-Hellman group\n"},"encryption":{"type":"string","description":"The encryption algorithm\n"},"integrity":{"type":"string","description":"The integrity/hash algorithm\n"}},"type":"object","required":["encryption"]},"scaleway:s2svpn/ConnectionIkev2Cipher:ConnectionIkev2Cipher":{"properties":{"dhGroup":{"type":"string","description":"The Diffie-Hellman group\n"},"encryption":{"type":"string","description":"The encryption algorithm\n"},"integrity":{"type":"string","description":"The integrity/hash algorithm\n"}},"type":"object","required":["encryption"]},"scaleway:s2svpn/GatewayPublicConfig:GatewayPublicConfig":{"properties":{"ipamIpv4Id":{"type":"string","description":"The ID of the IPAM IPv4 address to use as the public IP for the VPN gateway.\n"},"ipamIpv6Id":{"type":"string","description":"The ID of the IPAM IPv6 address to use as the public IP for the VPN gateway.\n"}},"type":"object"},"scaleway:s2svpn/getConnectionBgpConfigIpv4:getConnectionBgpConfigIpv4":{"properties":{"peerPrivateIp":{"type":"string","description":"The BGP peer IP on customer side\n"},"privateIp":{"type":"string","description":"The BGP peer IP on Scaleway side\n"},"routingPolicyId":{"type":"string","description":"The ID of the routing policy to use for BGP route filtering\n"}},"type":"object","required":["peerPrivateIp","privateIp","routingPolicyId"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:s2svpn/getConnectionBgpConfigIpv6:getConnectionBgpConfigIpv6":{"properties":{"peerPrivateIp":{"type":"string","description":"The BGP peer IP on customer side\n"},"privateIp":{"type":"string","description":"The BGP peer IP on Scaleway side\n"},"routingPolicyId":{"type":"string","description":"The ID of the routing policy to use for BGP route filtering\n"}},"type":"object","required":["peerPrivateIp","privateIp","routingPolicyId"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:s2svpn/getConnectionBgpSessionIpv4:getConnectionBgpSessionIpv4":{"properties":{"peerPrivateIp":{"type":"string","description":"The BGP peer IP on customer side\n"},"privateIp":{"type":"string","description":"The BGP peer IP on Scaleway side\n"},"routingPolicyId":{"type":"string","description":"The routing policy ID\n"}},"type":"object","required":["peerPrivateIp","privateIp","routingPolicyId"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:s2svpn/getConnectionBgpSessionIpv6:getConnectionBgpSessionIpv6":{"properties":{"peerPrivateIp":{"type":"string","description":"The BGP peer IP on customer side\n"},"privateIp":{"type":"string","description":"The BGP peer IP on Scaleway side\n"},"routingPolicyId":{"type":"string","description":"The routing policy ID\n"}},"type":"object","required":["peerPrivateIp","privateIp","routingPolicyId"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:s2svpn/getConnectionEspCipher:getConnectionEspCipher":{"properties":{"dhGroup":{"type":"string","description":"The Diffie-Hellman group\n"},"encryption":{"type":"string","description":"The encryption algorithm\n"},"integrity":{"type":"string","description":"The integrity/hash algorithm\n"}},"type":"object","required":["dhGroup","encryption","integrity"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:s2svpn/getConnectionIkev2Cipher:getConnectionIkev2Cipher":{"properties":{"dhGroup":{"type":"string","description":"The Diffie-Hellman group\n"},"encryption":{"type":"string","description":"The encryption algorithm\n"},"integrity":{"type":"string","description":"The integrity/hash algorithm\n"}},"type":"object","required":["dhGroup","encryption","integrity"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:s2svpn/getGatewayPublicConfig:getGatewayPublicConfig":{"properties":{"ipamIpv4Id":{"type":"string","description":"The ID of the IPAM IPv4 address to use as the public IP for the VPN gateway\n"},"ipamIpv6Id":{"type":"string","description":"The ID of the IPAM IPv6 address to use as the public IP for the VPN gateway\n"}},"type":"object","required":["ipamIpv4Id","ipamIpv6Id"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:secrets/SecretEphemeralPolicy:SecretEphemeralPolicy":{"properties":{"action":{"type":"string","description":"Action to perform when the version of a secret expires. Available values can be found in [SDK constants](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/secret/v1beta1#pkg-constants).\n"},"expiresOnceAccessed":{"type":"boolean","description":"True if the secret version expires after a single user access.\n"},"ttl":{"type":"string","description":"Time frame, from one second and up to one year, during which the secret's versions are valid. Has to be specified in [Go Duration format](https://pkg.go.dev/time#ParseDuration) (ex: \"30m\", \"24h\").\n"}},"type":"object","required":["action"]},"scaleway:secrets/SecretVersion:SecretVersion":{"properties":{"createdAt":{"type":"string","description":"Date and time of the secret's creation (in RFC 3339 format).\n"},"description":{"type":"string","description":"Description of the secret (e.g. `my-new-description`).\n"},"latest":{"type":"boolean","description":"Returns true if the version is the latest.\n"},"revision":{"type":"string","description":"The revision of secret version\n"},"secretId":{"type":"string","description":"The secret ID associated with this version\n"},"status":{"type":"string","description":"The status of the secret.\n"},"updatedAt":{"type":"string","description":"Date and time of the secret's last update (in RFC 3339 format).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createdAt","revision","secretId","status","updatedAt"]}}},"scaleway:secrets/getSecretEphemeralPolicy:getSecretEphemeralPolicy":{"properties":{"action":{"type":"string","description":"Action to perform when the version of a secret expires.\n"},"expiresOnceAccessed":{"type":"boolean","description":"True if the secret version expires after a single user access.\n"},"ttl":{"type":"string","description":"Time frame, from one second and up to one year, during which the secret's versions are valid. Has to be specified in Go Duration format\n"}},"type":"object","required":["action","expiresOnceAccessed","ttl"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:secrets/getSecretVersion:getSecretVersion":{"properties":{"createdAt":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)\n"},"description":{"type":"string","description":"Description of the secret version\n"},"latest":{"type":"boolean","description":"Returns true if the version is the latest.\n"},"revision":{"type":"string","description":"The revision of secret version\n"},"secretId":{"type":"string","description":"The ID of the secret.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e should be specified.\n"},"status":{"type":"string","description":"Status of the secret version\n"},"updatedAt":{"type":"string","description":"Date and time of secret version's creation (RFC 3339 format)\n"}},"type":"object","required":["createdAt","description","latest","revision","secretId","status","updatedAt"],"language":{"nodejs":{"requiredInputs":[]}}},"scaleway:tem/DomainReputation:DomainReputation":{"properties":{"previousScore":{"type":"integer","description":"The previously-calculated domain's reputation score.\n"},"previousScoredAt":{"type":"string","description":"The time and date the previous reputation score was calculated.\n"},"score":{"type":"integer","description":"A range from 0 to 100 that determines your domain's reputation score.\n"},"scoredAt":{"type":"string","description":"The time and date the score was calculated.\n"},"status":{"type":"string","description":"The status of the domain's reputation.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["previousScore","previousScoredAt","score","scoredAt","status"]}}},"scaleway:tem/getDomainReputation:getDomainReputation":{"properties":{"previousScore":{"type":"integer","description":"The previously-calculated domain's reputation score\n"},"previousScoredAt":{"type":"string","description":"Time and date the previous reputation score was calculated\n"},"score":{"type":"integer","description":"A range from 0 to 100 that determines your domain's reputation score\n"},"scoredAt":{"type":"string","description":"Time and date the score was calculated\n"},"status":{"type":"string","description":"Status of the domain's reputation\n"}},"type":"object","required":["previousScore","previousScoredAt","score","scoredAt","status"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the scaleway package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"accessKey":{"type":"string","description":"The Scaleway access key."},"apiUrl":{"type":"string","description":"The Scaleway API URL to use."},"organizationId":{"type":"string","description":"The Scaleway organization ID."},"profile":{"type":"string","description":"The Scaleway profile to use."},"projectId":{"type":"string","description":"The Scaleway project ID."},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The Scaleway secret Key."},"zone":{"type":"string","description":"The zone you want to attach the resource to","willReplaceOnChanges":true}},"inputProperties":{"accessKey":{"type":"string","description":"The Scaleway access key.","defaultInfo":{"environment":["SCW_ACCESS_KEY"]}},"apiUrl":{"type":"string","description":"The Scaleway API URL to use."},"organizationId":{"type":"string","description":"The Scaleway organization ID.","defaultInfo":{"environment":["SCW_ORGANIZATION_ID"]}},"profile":{"type":"string","description":"The Scaleway profile to use."},"projectId":{"type":"string","description":"The Scaleway project ID.","defaultInfo":{"environment":["SCW_DEFAULT_PROJECT_ID"]}},"region":{"type":"string","description":"The region you want to attach the resource to","defaultInfo":{"environment":["SCW_DEFAULT_REGION"]},"willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The Scaleway secret Key.","defaultInfo":{"environment":["SCW_SECRET_KEY"]}},"zone":{"type":"string","description":"The zone you want to attach the resource to","defaultInfo":{"environment":["SCW_DEFAULT_ZONE"]},"willReplaceOnChanges":true}},"methods":{"terraformConfig":"pulumi:providers:scaleway/terraformConfig"}},"resources":{"scaleway:account/project:Project":{"description":"\n\n## Import\n\nProjects can be imported using the `id` argument, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:account/project:Project project 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The creation time of the Project.\n"},"description":{"type":"string","description":"The description of the Project.\n"},"name":{"type":"string","description":"The name of the Project.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e)The organization ID the Project is associated with. Any change made to the \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e will recreate the resource.\n"},"updatedAt":{"type":"string","description":"The last update time of the Project.\n"}},"required":["createdAt","name","organizationId","updatedAt"],"inputProperties":{"description":{"type":"string","description":"The description of the Project.\n"},"name":{"type":"string","description":"The name of the Project.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e)The organization ID the Project is associated with. Any change made to the \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e will recreate the resource.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Project resources.\n","properties":{"createdAt":{"type":"string","description":"The creation time of the Project.\n"},"description":{"type":"string","description":"The description of the Project.\n"},"name":{"type":"string","description":"The name of the Project.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e)The organization ID the Project is associated with. Any change made to the \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e will recreate the resource.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The last update time of the Project.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/accountProject:AccountProject"}]},"scaleway:account/sshKey:SshKey":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.account.SshKey`\" pulumi-lang-dotnet=\"`scaleway.account.SshKey`\" pulumi-lang-go=\"`account.SshKey`\" pulumi-lang-python=\"`account.SshKey`\" pulumi-lang-yaml=\"`scaleway.account.SshKey`\" pulumi-lang-java=\"`scaleway.account.SshKey`\"\u003e`scaleway.account.SshKey`\u003c/span\u003e resource allows you to create and manage the Projects of a Scaleway Organization.\n\nRefer to the Organizations and Projects [documentation](https://www.scaleway.com/en/docs/organizations-and-projects/) and [API documentation](https://www.scaleway.com/en/developers/api/account/project-api/) for more information.\n\n!\u003e **Important:**  The resource \u003cspan pulumi-lang-nodejs=\"`scaleway.account.SshKey`\" pulumi-lang-dotnet=\"`scaleway.account.SshKey`\" pulumi-lang-go=\"`account.SshKey`\" pulumi-lang-python=\"`account.SshKey`\" pulumi-lang-yaml=\"`scaleway.account.SshKey`\" pulumi-lang-java=\"`scaleway.account.SshKey`\"\u003e`scaleway.account.SshKey`\u003c/span\u003e has been deprecated and will no longer be supported. Instead, use \u003cspan pulumi-lang-nodejs=\"`scaleway.iam.SshKey`\" pulumi-lang-dotnet=\"`scaleway.iam.SshKey`\" pulumi-lang-go=\"`iam.SshKey`\" pulumi-lang-python=\"`iam.SshKey`\" pulumi-lang-yaml=\"`scaleway.iam.SshKey`\" pulumi-lang-java=\"`scaleway.iam.SshKey`\"\u003e`scaleway.iam.SshKey`\u003c/span\u003e.\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.account.SshKey(\"main\", {\n    name: \"main\",\n    publicKey: \"\u003cYOUR-PUBLIC-SSH-KEY\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.account.SshKey(\"main\",\n    name=\"main\",\n    public_key=\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\")\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.Account.SshKey(\"main\", new()\n    {\n        Name = \"main\",\n        PublicKey = \"\u003cYOUR-PUBLIC-SSH-KEY\u003e\",\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/account\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := account.NewSshKey(ctx, \"main\", \u0026account.SshKeyArgs{\n\t\t\tName:      pulumi.String(\"main\"),\n\t\t\tPublicKey: pulumi.String(\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\"),\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.account.SshKey;\nimport com.pulumi.scaleway.account.SshKeyArgs;\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 SshKey(\"main\", SshKeyArgs.builder()\n            .name(\"main\")\n            .publicKey(\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:account:SshKey\n    properties:\n      name: main\n      publicKey: \u003cYOUR-PUBLIC-SSH-KEY\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSSH keys can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:account/sshKey:SshKey main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the iam SSH Key"},"disabled":{"type":"boolean","description":"The SSH key status"},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key"},"name":{"type":"string","description":"The name of the SSH key.\n"},"organizationId":{"type":"string","description":"The organization ID the SSH key is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is associated with.\n"},"publicKey":{"type":"string","description":"The public SSH key to be added.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the iam SSH Key"}},"required":["createdAt","fingerprint","name","organizationId","projectId","publicKey","updatedAt"],"inputProperties":{"disabled":{"type":"boolean","description":"The SSH key status"},"name":{"type":"string","description":"The name of the SSH key.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is associated with.\n","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"The public SSH key to be added.\n","willReplaceOnChanges":true}},"requiredInputs":["publicKey"],"stateInputs":{"description":"Input properties used for looking up and filtering SshKey resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the iam SSH Key"},"disabled":{"type":"boolean","description":"The SSH key status"},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key"},"name":{"type":"string","description":"The name of the SSH key.\n"},"organizationId":{"type":"string","description":"The organization ID the SSH key is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is associated with.\n","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"The public SSH key to be added.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the iam SSH Key"}},"type":"object"},"aliases":[{"type":"scaleway:index/accountSshKey:AccountSshKey"}]},"scaleway:applesilicon/runner:Runner":{"description":"Creates and manages Scaleway Apple silicon runners.\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.applesilicon.Runner(\"main\", {\n    name: \"my-github-runner\",\n    ciProvider: \"github\",\n    url: \"https://github.com/my-org/my-repo\",\n    token: \"my-token\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.applesilicon.Runner(\"main\",\n    name=\"my-github-runner\",\n    ci_provider=\"github\",\n    url=\"https://github.com/my-org/my-repo\",\n    token=\"my-token\")\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.Applesilicon.Runner(\"main\", new()\n    {\n        Name = \"my-github-runner\",\n        CiProvider = \"github\",\n        Url = \"https://github.com/my-org/my-repo\",\n        Token = \"my-token\",\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/applesilicon\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := applesilicon.NewRunner(ctx, \"main\", \u0026applesilicon.RunnerArgs{\n\t\t\tName:       pulumi.String(\"my-github-runner\"),\n\t\t\tCiProvider: pulumi.String(\"github\"),\n\t\t\tUrl:        pulumi.String(\"https://github.com/my-org/my-repo\"),\n\t\t\tToken:      pulumi.String(\"my-token\"),\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.applesilicon.Runner;\nimport com.pulumi.scaleway.applesilicon.RunnerArgs;\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 Runner(\"main\", RunnerArgs.builder()\n            .name(\"my-github-runner\")\n            .ciProvider(\"github\")\n            .url(\"https://github.com/my-org/my-repo\")\n            .token(\"my-token\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:applesilicon:Runner\n    properties:\n      name: my-github-runner\n      ciProvider: github\n      url: https://github.com/my-org/my-repo\n      token: my-token\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRunner can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:applesilicon/runner:Runner main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"ciProvider":{"type":"string","description":"The CI/CD provider for the runner. Must be either 'github' or 'gitlab'\n"},"errorMessage":{"type":"string","description":"The error message if the runner is in error state\n"},"labels":{"type":"array","items":{"type":"string"},"description":"A list of labels applied to the runner. Only for github provider\n"},"name":{"type":"string","description":"The name of the runner\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to\n"},"status":{"type":"string","description":"The status of the runner\n"},"token":{"type":"string","description":"The token used to authenticate the runner to run\n","secret":true},"url":{"type":"string","description":"The URL of the runner to run\n"},"zone":{"type":"string","description":"The zone of the runner\n"}},"required":["ciProvider","errorMessage","labels","name","projectId","status","token","url"],"inputProperties":{"ciProvider":{"type":"string","description":"The CI/CD provider for the runner. Must be either 'github' or 'gitlab'\n"},"name":{"type":"string","description":"The name of the runner\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to\n","willReplaceOnChanges":true},"token":{"type":"string","description":"The token used to authenticate the runner to run\n","secret":true},"url":{"type":"string","description":"The URL of the runner to run\n"},"zone":{"type":"string","description":"The zone of the runner\n","willReplaceOnChanges":true}},"requiredInputs":["ciProvider","token","url"],"stateInputs":{"description":"Input properties used for looking up and filtering Runner resources.\n","properties":{"ciProvider":{"type":"string","description":"The CI/CD provider for the runner. Must be either 'github' or 'gitlab'\n"},"errorMessage":{"type":"string","description":"The error message if the runner is in error state\n"},"labels":{"type":"array","items":{"type":"string"},"description":"A list of labels applied to the runner. Only for github provider\n"},"name":{"type":"string","description":"The name of the runner\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the runner\n"},"token":{"type":"string","description":"The token used to authenticate the runner to run\n","secret":true},"url":{"type":"string","description":"The URL of the runner to run\n"},"zone":{"type":"string","description":"The zone of the runner\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:applesilicon/server:Server":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.applesilicon.Server`\" pulumi-lang-dotnet=\"`scaleway.applesilicon.Server`\" pulumi-lang-go=\"`applesilicon.Server`\" pulumi-lang-python=\"`applesilicon.Server`\" pulumi-lang-yaml=\"`scaleway.applesilicon.Server`\" pulumi-lang-java=\"`scaleway.applesilicon.Server`\"\u003e`scaleway.applesilicon.Server`\u003c/span\u003e resource creates and manages Scaleway Apple silicon servers.\n\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/apple-silicon/).\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 server = new scaleway.applesilicon.Server(\"server\", {\n    name: \"test-m1\",\n    type: \"M1-M\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver = scaleway.applesilicon.Server(\"server\",\n    name=\"test-m1\",\n    type=\"M1-M\")\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.Applesilicon.Server(\"server\", new()\n    {\n        Name = \"test-m1\",\n        Type = \"M1-M\",\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/applesilicon\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := applesilicon.NewServer(ctx, \"server\", \u0026applesilicon.ServerArgs{\n\t\t\tName: pulumi.String(\"test-m1\"),\n\t\t\tType: pulumi.String(\"M1-M\"),\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.applesilicon.Server;\nimport com.pulumi.scaleway.applesilicon.ServerArgs;\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 Server(\"server\", ServerArgs.builder()\n            .name(\"test-m1\")\n            .type(\"M1-M\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  server:\n    type: scaleway:applesilicon:Server\n    properties:\n      name: test-m1\n      type: M1-M\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable VPC and attach private network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst vpc_apple_silicon = new scaleway.network.Vpc(\"vpc-apple-silicon\", {name: \"vpc-apple-silicon\"});\nconst pn_apple_silicon = new scaleway.network.PrivateNetwork(\"pn-apple-silicon\", {\n    name: \"pn-apple-silicon\",\n    vpcId: vpc_apple_silicon.id,\n});\nconst my_server = new scaleway.applesilicon.Server(\"my-server\", {\n    name: \"TestAccServerEnableVPC\",\n    type: \"M2-M\",\n    enableVpc: true,\n    privateNetworks: [{\n        id: pn_apple_silicon.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc_apple_silicon = scaleway.network.Vpc(\"vpc-apple-silicon\", name=\"vpc-apple-silicon\")\npn_apple_silicon = scaleway.network.PrivateNetwork(\"pn-apple-silicon\",\n    name=\"pn-apple-silicon\",\n    vpc_id=vpc_apple_silicon.id)\nmy_server = scaleway.applesilicon.Server(\"my-server\",\n    name=\"TestAccServerEnableVPC\",\n    type=\"M2-M\",\n    enable_vpc=True,\n    private_networks=[{\n        \"id\": pn_apple_silicon.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 vpc_apple_silicon = new Scaleway.Network.Vpc(\"vpc-apple-silicon\", new()\n    {\n        Name = \"vpc-apple-silicon\",\n    });\n\n    var pn_apple_silicon = new Scaleway.Network.PrivateNetwork(\"pn-apple-silicon\", new()\n    {\n        Name = \"pn-apple-silicon\",\n        VpcId = vpc_apple_silicon.Id,\n    });\n\n    var my_server = new Scaleway.Applesilicon.Server(\"my-server\", new()\n    {\n        Name = \"TestAccServerEnableVPC\",\n        Type = \"M2-M\",\n        EnableVpc = true,\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Applesilicon.Inputs.ServerPrivateNetworkArgs\n            {\n                Id = pn_apple_silicon.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/applesilicon\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc_apple_silicon, err := network.NewVpc(ctx, \"vpc-apple-silicon\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"vpc-apple-silicon\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn_apple_silicon, err := network.NewPrivateNetwork(ctx, \"pn-apple-silicon\", \u0026network.PrivateNetworkArgs{\n\t\t\tName:  pulumi.String(\"pn-apple-silicon\"),\n\t\t\tVpcId: vpc_apple_silicon.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = applesilicon.NewServer(ctx, \"my-server\", \u0026applesilicon.ServerArgs{\n\t\t\tName:      pulumi.String(\"TestAccServerEnableVPC\"),\n\t\t\tType:      pulumi.String(\"M2-M\"),\n\t\t\tEnableVpc: pulumi.Bool(true),\n\t\t\tPrivateNetworks: applesilicon.ServerPrivateNetworkArray{\n\t\t\t\t\u0026applesilicon.ServerPrivateNetworkArgs{\n\t\t\t\t\tId: pn_apple_silicon.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.applesilicon.Server;\nimport com.pulumi.scaleway.applesilicon.ServerArgs;\nimport com.pulumi.scaleway.applesilicon.inputs.ServerPrivateNetworkArgs;\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 vpc_apple_silicon = new Vpc(\"vpc-apple-silicon\", VpcArgs.builder()\n            .name(\"vpc-apple-silicon\")\n            .build());\n\n        var pn_apple_silicon = new PrivateNetwork(\"pn-apple-silicon\", PrivateNetworkArgs.builder()\n            .name(\"pn-apple-silicon\")\n            .vpcId(vpc_apple_silicon.id())\n            .build());\n\n        var my_server = new Server(\"my-server\", ServerArgs.builder()\n            .name(\"TestAccServerEnableVPC\")\n            .type(\"M2-M\")\n            .enableVpc(true)\n            .privateNetworks(ServerPrivateNetworkArgs.builder()\n                .id(pn_apple_silicon.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc-apple-silicon:\n    type: scaleway:network:Vpc\n    properties:\n      name: vpc-apple-silicon\n  pn-apple-silicon:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: pn-apple-silicon\n      vpcId: ${[\"vpc-apple-silicon\"].id}\n  my-server:\n    type: scaleway:applesilicon:Server\n    properties:\n      name: TestAccServerEnableVPC\n      type: M2-M\n      enableVpc: true\n      privateNetworks:\n        - id: ${[\"pn-apple-silicon\"].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With \u003cspan pulumi-lang-nodejs=\"`github`\" pulumi-lang-dotnet=\"`Github`\" pulumi-lang-go=\"`github`\" pulumi-lang-python=\"`github`\" pulumi-lang-yaml=\"`github`\" pulumi-lang-java=\"`github`\"\u003e`github`\u003c/span\u003e runner\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst byName = scaleway.applesilicon.getOs({\n    name: \"devos-sequoia-15.6\",\n});\nconst main = new scaleway.applesilicon.Runner(\"main\", {\n    name: \"TestAccRunnerGithub\",\n    ciProvider: \"github\",\n    url: \"https://github.com/my-repo-url\",\n    token: \"MY_GITHUB_RUNNER_TOKEN\",\n});\nconst mainServer = new scaleway.applesilicon.Server(\"main\", {\n    name: \"TestAccServerRunner\",\n    type: \"M2-L\",\n    publicBandwidth: 1000000000,\n    osId: byName.then(byName =\u003e byName.id),\n    runnerIds: [main.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nby_name = scaleway.applesilicon.get_os(name=\"devos-sequoia-15.6\")\nmain = scaleway.applesilicon.Runner(\"main\",\n    name=\"TestAccRunnerGithub\",\n    ci_provider=\"github\",\n    url=\"https://github.com/my-repo-url\",\n    token=\"MY_GITHUB_RUNNER_TOKEN\")\nmain_server = scaleway.applesilicon.Server(\"main\",\n    name=\"TestAccServerRunner\",\n    type=\"M2-L\",\n    public_bandwidth=1000000000,\n    os_id=by_name.id,\n    runner_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 byName = Scaleway.Applesilicon.GetOs.Invoke(new()\n    {\n        Name = \"devos-sequoia-15.6\",\n    });\n\n    var main = new Scaleway.Applesilicon.Runner(\"main\", new()\n    {\n        Name = \"TestAccRunnerGithub\",\n        CiProvider = \"github\",\n        Url = \"https://github.com/my-repo-url\",\n        Token = \"MY_GITHUB_RUNNER_TOKEN\",\n    });\n\n    var mainServer = new Scaleway.Applesilicon.Server(\"main\", new()\n    {\n        Name = \"TestAccServerRunner\",\n        Type = \"M2-L\",\n        PublicBandwidth = 1000000000,\n        OsId = byName.Apply(getOsResult =\u003e getOsResult.Id),\n        RunnerIds = new[]\n        {\n            main.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/applesilicon\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbyName, err := applesilicon.GetOs(ctx, \u0026applesilicon.GetOsArgs{\n\t\t\tName: pulumi.StringRef(\"devos-sequoia-15.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmain, err := applesilicon.NewRunner(ctx, \"main\", \u0026applesilicon.RunnerArgs{\n\t\t\tName:       pulumi.String(\"TestAccRunnerGithub\"),\n\t\t\tCiProvider: pulumi.String(\"github\"),\n\t\t\tUrl:        pulumi.String(\"https://github.com/my-repo-url\"),\n\t\t\tToken:      pulumi.String(\"MY_GITHUB_RUNNER_TOKEN\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = applesilicon.NewServer(ctx, \"main\", \u0026applesilicon.ServerArgs{\n\t\t\tName:            pulumi.String(\"TestAccServerRunner\"),\n\t\t\tType:            pulumi.String(\"M2-L\"),\n\t\t\tPublicBandwidth: pulumi.Int(1000000000),\n\t\t\tOsId:            pulumi.String(byName.Id),\n\t\t\tRunnerIds: pulumi.StringArray{\n\t\t\t\tmain.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.applesilicon.ApplesiliconFunctions;\nimport com.pulumi.scaleway.applesilicon.inputs.GetOsArgs;\nimport com.pulumi.scaleway.applesilicon.Runner;\nimport com.pulumi.scaleway.applesilicon.RunnerArgs;\nimport com.pulumi.scaleway.applesilicon.Server;\nimport com.pulumi.scaleway.applesilicon.ServerArgs;\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 byName = ApplesiliconFunctions.getOs(GetOsArgs.builder()\n            .name(\"devos-sequoia-15.6\")\n            .build());\n\n        var main = new Runner(\"main\", RunnerArgs.builder()\n            .name(\"TestAccRunnerGithub\")\n            .ciProvider(\"github\")\n            .url(\"https://github.com/my-repo-url\")\n            .token(\"MY_GITHUB_RUNNER_TOKEN\")\n            .build());\n\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .name(\"TestAccServerRunner\")\n            .type(\"M2-L\")\n            .publicBandwidth(1000000000)\n            .osId(byName.id())\n            .runnerIds(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:applesilicon:Runner\n    properties:\n      name: TestAccRunnerGithub\n      ciProvider: github\n      url: https://github.com/my-repo-url\n      token: MY_GITHUB_RUNNER_TOKEN\n  mainServer:\n    type: scaleway:applesilicon:Server\n    name: main\n    properties:\n      name: TestAccServerRunner\n      type: M2-L\n      publicBandwidth: 1e+09\n      osId: ${byName.id}\n      runnerIds:\n        - ${main.id}\nvariables:\n  byName:\n    fn::invoke:\n      function: scaleway:applesilicon:getOs\n      arguments:\n        name: devos-sequoia-15.6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstance servers can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:applesilicon/server:Server main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"commitment":{"type":"string","description":"The commitment period of the server"},"createdAt":{"type":"string","description":"The date and time the private network was created.\n"},"deletableAt":{"type":"string","description":"The minimal date and time on which you can delete this server due to Apple licence"},"enableVpc":{"type":"boolean","description":": Enables the VPC option when set to true.\n"},"ip":{"type":"string","description":"IPv4 address of the server (IPv4 address).\n"},"name":{"type":"string","description":"The name of the server.\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"osId":{"type":"string","description":"The ID of the OS to use for the server.\n"},"password":{"type":"string","description":"The password of the server","secret":true},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:applesilicon/ServerPrivateIp:ServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the server.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:applesilicon/ServerPrivateNetwork:ServerPrivateNetwork"},"description":"The private networks to attach to the server\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is\nassociated with.\n"},"publicBandwidth":{"type":"integer","description":"Configure the available public bandwidth for your server in bits per second. This option may not be available for all offers.\n"},"runnerIds":{"type":"array","items":{"type":"string"},"description":"List of runner IDs to assign to the server. At the moment, only a single runner can be attached to a server. Compatible only with runners of type \u003cspan pulumi-lang-nodejs=\"`github`\" pulumi-lang-dotnet=\"`Github`\" pulumi-lang-go=\"`github`\" pulumi-lang-python=\"`github`\" pulumi-lang-yaml=\"`github`\" pulumi-lang-java=\"`github`\"\u003e`github`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`gitlab`\" pulumi-lang-dotnet=\"`Gitlab`\" pulumi-lang-go=\"`gitlab`\" pulumi-lang-python=\"`gitlab`\" pulumi-lang-yaml=\"`gitlab`\" pulumi-lang-java=\"`gitlab`\"\u003e`gitlab`\u003c/span\u003e, with the `devos-sequoia-15.6` offer and `M2-L` server type\n"},"state":{"type":"string","description":"The state of the server.\n"},"type":{"type":"string","description":"The commercial type of the server. You find all the available types on\nthe [pricing page](https://www.scaleway.com/en/pricing/apple-silicon/). Updates to this field will recreate a new\nresource.\n"},"updatedAt":{"type":"string","description":"The date and time the private network was last updated.\n"},"username":{"type":"string","description":"The username of the server"},"vncUrl":{"type":"string","description":"URL of the VNC.\n"},"vpcStatus":{"type":"string","description":"The current status of the VPC option.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe server should be created.\n"}},"required":["createdAt","deletableAt","ip","name","organizationId","password","privateIps","projectId","publicBandwidth","runnerIds","state","type","updatedAt","username","vncUrl","vpcStatus"],"inputProperties":{"commitment":{"type":"string","description":"The commitment period of the server"},"enableVpc":{"type":"boolean","description":": Enables the VPC option when set to true.\n"},"name":{"type":"string","description":"The name of the server.\n"},"osId":{"type":"string","description":"The ID of the OS to use for the server.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:applesilicon/ServerPrivateIp:ServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the server.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:applesilicon/ServerPrivateNetwork:ServerPrivateNetwork"},"description":"The private networks to attach to the server\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is\nassociated with.\n","willReplaceOnChanges":true},"publicBandwidth":{"type":"integer","description":"Configure the available public bandwidth for your server in bits per second. This option may not be available for all offers.\n"},"runnerIds":{"type":"array","items":{"type":"string"},"description":"List of runner IDs to assign to the server. At the moment, only a single runner can be attached to a server. Compatible only with runners of type \u003cspan pulumi-lang-nodejs=\"`github`\" pulumi-lang-dotnet=\"`Github`\" pulumi-lang-go=\"`github`\" pulumi-lang-python=\"`github`\" pulumi-lang-yaml=\"`github`\" pulumi-lang-java=\"`github`\"\u003e`github`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`gitlab`\" pulumi-lang-dotnet=\"`Gitlab`\" pulumi-lang-go=\"`gitlab`\" pulumi-lang-python=\"`gitlab`\" pulumi-lang-yaml=\"`gitlab`\" pulumi-lang-java=\"`gitlab`\"\u003e`gitlab`\u003c/span\u003e, with the `devos-sequoia-15.6` offer and `M2-L` server type\n"},"type":{"type":"string","description":"The commercial type of the server. You find all the available types on\nthe [pricing page](https://www.scaleway.com/en/pricing/apple-silicon/). Updates to this field will recreate a new\nresource.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe server should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering Server resources.\n","properties":{"commitment":{"type":"string","description":"The commitment period of the server"},"createdAt":{"type":"string","description":"The date and time the private network was created.\n"},"deletableAt":{"type":"string","description":"The minimal date and time on which you can delete this server due to Apple licence"},"enableVpc":{"type":"boolean","description":": Enables the VPC option when set to true.\n"},"ip":{"type":"string","description":"IPv4 address of the server (IPv4 address).\n"},"name":{"type":"string","description":"The name of the server.\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"osId":{"type":"string","description":"The ID of the OS to use for the server.\n"},"password":{"type":"string","description":"The password of the server","secret":true},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:applesilicon/ServerPrivateIp:ServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the server.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:applesilicon/ServerPrivateNetwork:ServerPrivateNetwork"},"description":"The private networks to attach to the server\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is\nassociated with.\n","willReplaceOnChanges":true},"publicBandwidth":{"type":"integer","description":"Configure the available public bandwidth for your server in bits per second. This option may not be available for all offers.\n"},"runnerIds":{"type":"array","items":{"type":"string"},"description":"List of runner IDs to assign to the server. At the moment, only a single runner can be attached to a server. Compatible only with runners of type \u003cspan pulumi-lang-nodejs=\"`github`\" pulumi-lang-dotnet=\"`Github`\" pulumi-lang-go=\"`github`\" pulumi-lang-python=\"`github`\" pulumi-lang-yaml=\"`github`\" pulumi-lang-java=\"`github`\"\u003e`github`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`gitlab`\" pulumi-lang-dotnet=\"`Gitlab`\" pulumi-lang-go=\"`gitlab`\" pulumi-lang-python=\"`gitlab`\" pulumi-lang-yaml=\"`gitlab`\" pulumi-lang-java=\"`gitlab`\"\u003e`gitlab`\u003c/span\u003e, with the `devos-sequoia-15.6` offer and `M2-L` server type\n"},"state":{"type":"string","description":"The state of the server.\n"},"type":{"type":"string","description":"The commercial type of the server. You find all the available types on\nthe [pricing page](https://www.scaleway.com/en/pricing/apple-silicon/). Updates to this field will recreate a new\nresource.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time the private network was last updated.\n"},"username":{"type":"string","description":"The username of the server"},"vncUrl":{"type":"string","description":"URL of the VNC.\n"},"vpcStatus":{"type":"string","description":"The current status of the VPC option.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe server should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/appleSiliconServer:AppleSiliconServer"}]},"scaleway:autoscaling/instanceGroup:InstanceGroup":{"description":"Books and manages Autoscaling Instance groups.\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.autoscaling.InstanceGroup(\"main\", {\n    name: \"asg-group\",\n    templateId: mainScalewayAutoscalingInstanceTemplate.id,\n    tags: [\n        \"terraform-test\",\n        \"instance-group\",\n    ],\n    capacities: [{\n        maxReplicas: 5,\n        minReplicas: 1,\n        cooldownDelay: 300,\n    }],\n    loadBalancers: [{\n        id: mainScalewayLb.id,\n        backendIds: [mainScalewayLbBackend.id],\n        privateNetworkId: mainScalewayVpcPrivateNetwork.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.autoscaling.InstanceGroup(\"main\",\n    name=\"asg-group\",\n    template_id=main_scaleway_autoscaling_instance_template[\"id\"],\n    tags=[\n        \"terraform-test\",\n        \"instance-group\",\n    ],\n    capacities=[{\n        \"max_replicas\": 5,\n        \"min_replicas\": 1,\n        \"cooldown_delay\": 300,\n    }],\n    load_balancers=[{\n        \"id\": main_scaleway_lb[\"id\"],\n        \"backend_ids\": [main_scaleway_lb_backend[\"id\"]],\n        \"private_network_id\": main_scaleway_vpc_private_network[\"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 main = new Scaleway.Autoscaling.InstanceGroup(\"main\", new()\n    {\n        Name = \"asg-group\",\n        TemplateId = mainScalewayAutoscalingInstanceTemplate.Id,\n        Tags = new[]\n        {\n            \"terraform-test\",\n            \"instance-group\",\n        },\n        Capacities = new[]\n        {\n            new Scaleway.Autoscaling.Inputs.InstanceGroupCapacityArgs\n            {\n                MaxReplicas = 5,\n                MinReplicas = 1,\n                CooldownDelay = 300,\n            },\n        },\n        LoadBalancers = new[]\n        {\n            new Scaleway.Autoscaling.Inputs.InstanceGroupLoadBalancerArgs\n            {\n                Id = mainScalewayLb.Id,\n                BackendIds = new[]\n                {\n                    mainScalewayLbBackend.Id,\n                },\n                PrivateNetworkId = mainScalewayVpcPrivateNetwork.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/autoscaling\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := autoscaling.NewInstanceGroup(ctx, \"main\", \u0026autoscaling.InstanceGroupArgs{\n\t\t\tName:       pulumi.String(\"asg-group\"),\n\t\t\tTemplateId: pulumi.Any(mainScalewayAutoscalingInstanceTemplate.Id),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform-test\"),\n\t\t\t\tpulumi.String(\"instance-group\"),\n\t\t\t},\n\t\t\tCapacities: autoscaling.InstanceGroupCapacityArray{\n\t\t\t\t\u0026autoscaling.InstanceGroupCapacityArgs{\n\t\t\t\t\tMaxReplicas:   pulumi.Int(5),\n\t\t\t\t\tMinReplicas:   pulumi.Int(1),\n\t\t\t\t\tCooldownDelay: pulumi.Int(300),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancers: autoscaling.InstanceGroupLoadBalancerArray{\n\t\t\t\t\u0026autoscaling.InstanceGroupLoadBalancerArgs{\n\t\t\t\t\tId: pulumi.Any(mainScalewayLb.Id),\n\t\t\t\t\tBackendIds: pulumi.StringArray{\n\t\t\t\t\t\tmainScalewayLbBackend.Id,\n\t\t\t\t\t},\n\t\t\t\t\tPrivateNetworkId: pulumi.Any(mainScalewayVpcPrivateNetwork.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.autoscaling.InstanceGroup;\nimport com.pulumi.scaleway.autoscaling.InstanceGroupArgs;\nimport com.pulumi.scaleway.autoscaling.inputs.InstanceGroupCapacityArgs;\nimport com.pulumi.scaleway.autoscaling.inputs.InstanceGroupLoadBalancerArgs;\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 InstanceGroup(\"main\", InstanceGroupArgs.builder()\n            .name(\"asg-group\")\n            .templateId(mainScalewayAutoscalingInstanceTemplate.id())\n            .tags(            \n                \"terraform-test\",\n                \"instance-group\")\n            .capacities(InstanceGroupCapacityArgs.builder()\n                .maxReplicas(5)\n                .minReplicas(1)\n                .cooldownDelay(300)\n                .build())\n            .loadBalancers(InstanceGroupLoadBalancerArgs.builder()\n                .id(mainScalewayLb.id())\n                .backendIds(mainScalewayLbBackend.id())\n                .privateNetworkId(mainScalewayVpcPrivateNetwork.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:autoscaling:InstanceGroup\n    properties:\n      name: asg-group\n      templateId: ${mainScalewayAutoscalingInstanceTemplate.id}\n      tags:\n        - terraform-test\n        - instance-group\n      capacities:\n        - maxReplicas: 5\n          minReplicas: 1\n          cooldownDelay: '300'\n      loadBalancers:\n        - id: ${mainScalewayLb.id}\n          backendIds:\n            - ${mainScalewayLbBackend.id}\n          privateNetworkId: ${mainScalewayVpcPrivateNetwork.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With template and policies\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.network.Vpc(\"main\", {name: \"TestAccAutoscalingVPC\"});\nconst mainPrivateNetwork = new scaleway.network.PrivateNetwork(\"main\", {\n    name: \"TestAccAutoscalingVPC\",\n    vpcId: main.id,\n});\nconst mainVolume = new scaleway.block.Volume(\"main\", {\n    iops: 5000,\n    sizeInGb: 10,\n});\nconst mainSnapshot = new scaleway.block.Snapshot(\"main\", {\n    name: \"test-ds-block-snapshot-basic\",\n    volumeId: mainVolume.id,\n});\nconst mainIp = new scaleway.loadbalancers.Ip(\"main\", {});\nconst mainLoadBalancer = new scaleway.loadbalancers.LoadBalancer(\"main\", {\n    ipId: mainIp.id,\n    name: \"test-lb\",\n    type: \"lb-s\",\n    privateNetworks: [{\n        privateNetworkId: mainPrivateNetwork.id,\n    }],\n});\nconst mainBackend = new scaleway.loadbalancers.Backend(\"main\", {\n    lbId: mainLoadBalancer.id,\n    forwardProtocol: \"tcp\",\n    forwardPort: 80,\n    proxyProtocol: \"none\",\n});\nconst mainInstanceTemplate = new scaleway.autoscaling.InstanceTemplate(\"main\", {\n    name: \"autoscaling-instance-template-basic\",\n    commercialType: \"PLAY2-MICRO\",\n    tags: [\n        \"terraform-test\",\n        \"basic\",\n    ],\n    volumes: [{\n        name: \"as-volume\",\n        volumeType: \"sbs\",\n        boot: true,\n        fromSnapshot: {\n            snapshotId: mainSnapshot.id,\n        },\n        perfIops: 5000,\n    }],\n    publicIpsV4Count: 1,\n    privateNetworkIds: [mainPrivateNetwork.id],\n});\nconst mainInstanceGroup = new scaleway.autoscaling.InstanceGroup(\"main\", {\n    name: \"autoscaling-instance-group-basic\",\n    templateId: mainInstanceTemplate.id,\n    tags: [\n        \"terraform-test\",\n        \"instance-group\",\n    ],\n    capacities: [{\n        maxReplicas: 5,\n        minReplicas: 1,\n        cooldownDelay: 300,\n    }],\n    loadBalancers: [{\n        id: mainLoadBalancer.id,\n        backendIds: [mainBackend.id],\n        privateNetworkId: mainPrivateNetwork.id,\n    }],\n    deleteServersOnDestroy: true,\n});\nconst up = new scaleway.autoscaling.InstancePolicy(\"up\", {\n    instanceGroupId: mainInstanceGroup.id,\n    name: \"scale-up-if-cpu-high\",\n    action: \"scale_up\",\n    type: \"flat_count\",\n    value: 1,\n    priority: 1,\n    metrics: [{\n        name: \"cpu scale up\",\n        managedMetric: \"managed_metric_instance_cpu\",\n        operator: \"operator_greater_than\",\n        aggregate: \"aggregate_average\",\n        samplingRangeMin: 5,\n        threshold: 70,\n    }],\n});\nconst down = new scaleway.autoscaling.InstancePolicy(\"down\", {\n    instanceGroupId: mainInstanceGroup.id,\n    name: \"scale-down-if-cpu-low\",\n    action: \"scale_down\",\n    type: \"flat_count\",\n    value: 1,\n    priority: 2,\n    metrics: [{\n        name: \"cpu scale down\",\n        managedMetric: \"managed_metric_instance_cpu\",\n        operator: \"operator_less_than\",\n        aggregate: \"aggregate_average\",\n        samplingRangeMin: 5,\n        threshold: 40,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.Vpc(\"main\", name=\"TestAccAutoscalingVPC\")\nmain_private_network = scaleway.network.PrivateNetwork(\"main\",\n    name=\"TestAccAutoscalingVPC\",\n    vpc_id=main.id)\nmain_volume = scaleway.block.Volume(\"main\",\n    iops=5000,\n    size_in_gb=10)\nmain_snapshot = scaleway.block.Snapshot(\"main\",\n    name=\"test-ds-block-snapshot-basic\",\n    volume_id=main_volume.id)\nmain_ip = scaleway.loadbalancers.Ip(\"main\")\nmain_load_balancer = scaleway.loadbalancers.LoadBalancer(\"main\",\n    ip_id=main_ip.id,\n    name=\"test-lb\",\n    type=\"lb-s\",\n    private_networks=[{\n        \"private_network_id\": main_private_network.id,\n    }])\nmain_backend = scaleway.loadbalancers.Backend(\"main\",\n    lb_id=main_load_balancer.id,\n    forward_protocol=\"tcp\",\n    forward_port=80,\n    proxy_protocol=\"none\")\nmain_instance_template = scaleway.autoscaling.InstanceTemplate(\"main\",\n    name=\"autoscaling-instance-template-basic\",\n    commercial_type=\"PLAY2-MICRO\",\n    tags=[\n        \"terraform-test\",\n        \"basic\",\n    ],\n    volumes=[{\n        \"name\": \"as-volume\",\n        \"volume_type\": \"sbs\",\n        \"boot\": True,\n        \"from_snapshot\": {\n            \"snapshot_id\": main_snapshot.id,\n        },\n        \"perf_iops\": 5000,\n    }],\n    public_ips_v4_count=1,\n    private_network_ids=[main_private_network.id])\nmain_instance_group = scaleway.autoscaling.InstanceGroup(\"main\",\n    name=\"autoscaling-instance-group-basic\",\n    template_id=main_instance_template.id,\n    tags=[\n        \"terraform-test\",\n        \"instance-group\",\n    ],\n    capacities=[{\n        \"max_replicas\": 5,\n        \"min_replicas\": 1,\n        \"cooldown_delay\": 300,\n    }],\n    load_balancers=[{\n        \"id\": main_load_balancer.id,\n        \"backend_ids\": [main_backend.id],\n        \"private_network_id\": main_private_network.id,\n    }],\n    delete_servers_on_destroy=True)\nup = scaleway.autoscaling.InstancePolicy(\"up\",\n    instance_group_id=main_instance_group.id,\n    name=\"scale-up-if-cpu-high\",\n    action=\"scale_up\",\n    type=\"flat_count\",\n    value=1,\n    priority=1,\n    metrics=[{\n        \"name\": \"cpu scale up\",\n        \"managed_metric\": \"managed_metric_instance_cpu\",\n        \"operator\": \"operator_greater_than\",\n        \"aggregate\": \"aggregate_average\",\n        \"sampling_range_min\": 5,\n        \"threshold\": 70,\n    }])\ndown = scaleway.autoscaling.InstancePolicy(\"down\",\n    instance_group_id=main_instance_group.id,\n    name=\"scale-down-if-cpu-low\",\n    action=\"scale_down\",\n    type=\"flat_count\",\n    value=1,\n    priority=2,\n    metrics=[{\n        \"name\": \"cpu scale down\",\n        \"managed_metric\": \"managed_metric_instance_cpu\",\n        \"operator\": \"operator_less_than\",\n        \"aggregate\": \"aggregate_average\",\n        \"sampling_range_min\": 5,\n        \"threshold\": 40,\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.Network.Vpc(\"main\", new()\n    {\n        Name = \"TestAccAutoscalingVPC\",\n    });\n\n    var mainPrivateNetwork = new Scaleway.Network.PrivateNetwork(\"main\", new()\n    {\n        Name = \"TestAccAutoscalingVPC\",\n        VpcId = main.Id,\n    });\n\n    var mainVolume = new Scaleway.Block.Volume(\"main\", new()\n    {\n        Iops = 5000,\n        SizeInGb = 10,\n    });\n\n    var mainSnapshot = new Scaleway.Block.Snapshot(\"main\", new()\n    {\n        Name = \"test-ds-block-snapshot-basic\",\n        VolumeId = mainVolume.Id,\n    });\n\n    var mainIp = new Scaleway.Loadbalancers.Ip(\"main\");\n\n    var mainLoadBalancer = new Scaleway.Loadbalancers.LoadBalancer(\"main\", new()\n    {\n        IpId = mainIp.Id,\n        Name = \"test-lb\",\n        Type = \"lb-s\",\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Loadbalancers.Inputs.LoadBalancerPrivateNetworkArgs\n            {\n                PrivateNetworkId = mainPrivateNetwork.Id,\n            },\n        },\n    });\n\n    var mainBackend = new Scaleway.Loadbalancers.Backend(\"main\", new()\n    {\n        LbId = mainLoadBalancer.Id,\n        ForwardProtocol = \"tcp\",\n        ForwardPort = 80,\n        ProxyProtocol = \"none\",\n    });\n\n    var mainInstanceTemplate = new Scaleway.Autoscaling.InstanceTemplate(\"main\", new()\n    {\n        Name = \"autoscaling-instance-template-basic\",\n        CommercialType = \"PLAY2-MICRO\",\n        Tags = new[]\n        {\n            \"terraform-test\",\n            \"basic\",\n        },\n        Volumes = new[]\n        {\n            new Scaleway.Autoscaling.Inputs.InstanceTemplateVolumeArgs\n            {\n                Name = \"as-volume\",\n                VolumeType = \"sbs\",\n                Boot = true,\n                FromSnapshot = new Scaleway.Autoscaling.Inputs.InstanceTemplateVolumeFromSnapshotArgs\n                {\n                    SnapshotId = mainSnapshot.Id,\n                },\n                PerfIops = 5000,\n            },\n        },\n        PublicIpsV4Count = 1,\n        PrivateNetworkIds = new[]\n        {\n            mainPrivateNetwork.Id,\n        },\n    });\n\n    var mainInstanceGroup = new Scaleway.Autoscaling.InstanceGroup(\"main\", new()\n    {\n        Name = \"autoscaling-instance-group-basic\",\n        TemplateId = mainInstanceTemplate.Id,\n        Tags = new[]\n        {\n            \"terraform-test\",\n            \"instance-group\",\n        },\n        Capacities = new[]\n        {\n            new Scaleway.Autoscaling.Inputs.InstanceGroupCapacityArgs\n            {\n                MaxReplicas = 5,\n                MinReplicas = 1,\n                CooldownDelay = 300,\n            },\n        },\n        LoadBalancers = new[]\n        {\n            new Scaleway.Autoscaling.Inputs.InstanceGroupLoadBalancerArgs\n            {\n                Id = mainLoadBalancer.Id,\n                BackendIds = new[]\n                {\n                    mainBackend.Id,\n                },\n                PrivateNetworkId = mainPrivateNetwork.Id,\n            },\n        },\n        DeleteServersOnDestroy = true,\n    });\n\n    var up = new Scaleway.Autoscaling.InstancePolicy(\"up\", new()\n    {\n        InstanceGroupId = mainInstanceGroup.Id,\n        Name = \"scale-up-if-cpu-high\",\n        Action = \"scale_up\",\n        Type = \"flat_count\",\n        Value = 1,\n        Priority = 1,\n        Metrics = new[]\n        {\n            new Scaleway.Autoscaling.Inputs.InstancePolicyMetricArgs\n            {\n                Name = \"cpu scale up\",\n                ManagedMetric = \"managed_metric_instance_cpu\",\n                Operator = \"operator_greater_than\",\n                Aggregate = \"aggregate_average\",\n                SamplingRangeMin = 5,\n                Threshold = 70,\n            },\n        },\n    });\n\n    var down = new Scaleway.Autoscaling.InstancePolicy(\"down\", new()\n    {\n        InstanceGroupId = mainInstanceGroup.Id,\n        Name = \"scale-down-if-cpu-low\",\n        Action = \"scale_down\",\n        Type = \"flat_count\",\n        Value = 1,\n        Priority = 2,\n        Metrics = new[]\n        {\n            new Scaleway.Autoscaling.Inputs.InstancePolicyMetricArgs\n            {\n                Name = \"cpu scale down\",\n                ManagedMetric = \"managed_metric_instance_cpu\",\n                Operator = \"operator_less_than\",\n                Aggregate = \"aggregate_average\",\n                SamplingRangeMin = 5,\n                Threshold = 40,\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/autoscaling\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/block\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewVpc(ctx, \"main\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"TestAccAutoscalingVPC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPrivateNetwork, err := network.NewPrivateNetwork(ctx, \"main\", \u0026network.PrivateNetworkArgs{\n\t\t\tName:  pulumi.String(\"TestAccAutoscalingVPC\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainVolume, err := block.NewVolume(ctx, \"main\", \u0026block.VolumeArgs{\n\t\t\tIops:     pulumi.Int(5000),\n\t\t\tSizeInGb: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSnapshot, err := block.NewSnapshot(ctx, \"main\", \u0026block.SnapshotArgs{\n\t\t\tName:     pulumi.String(\"test-ds-block-snapshot-basic\"),\n\t\t\tVolumeId: mainVolume.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainIp, err := loadbalancers.NewIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainLoadBalancer, err := loadbalancers.NewLoadBalancer(ctx, \"main\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: mainIp.ID(),\n\t\t\tName: pulumi.String(\"test-lb\"),\n\t\t\tType: pulumi.String(\"lb-s\"),\n\t\t\tPrivateNetworks: loadbalancers.LoadBalancerPrivateNetworkArray{\n\t\t\t\t\u0026loadbalancers.LoadBalancerPrivateNetworkArgs{\n\t\t\t\t\tPrivateNetworkId: mainPrivateNetwork.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\tmainBackend, err := loadbalancers.NewBackend(ctx, \"main\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            mainLoadBalancer.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"tcp\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainInstanceTemplate, err := autoscaling.NewInstanceTemplate(ctx, \"main\", \u0026autoscaling.InstanceTemplateArgs{\n\t\t\tName:           pulumi.String(\"autoscaling-instance-template-basic\"),\n\t\t\tCommercialType: pulumi.String(\"PLAY2-MICRO\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform-test\"),\n\t\t\t\tpulumi.String(\"basic\"),\n\t\t\t},\n\t\t\tVolumes: autoscaling.InstanceTemplateVolumeArray{\n\t\t\t\t\u0026autoscaling.InstanceTemplateVolumeArgs{\n\t\t\t\t\tName:       pulumi.String(\"as-volume\"),\n\t\t\t\t\tVolumeType: pulumi.String(\"sbs\"),\n\t\t\t\t\tBoot:       pulumi.Bool(true),\n\t\t\t\t\tFromSnapshot: \u0026autoscaling.InstanceTemplateVolumeFromSnapshotArgs{\n\t\t\t\t\t\tSnapshotId: mainSnapshot.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tPerfIops: pulumi.Int(5000),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPublicIpsV4Count: pulumi.Int(1),\n\t\t\tPrivateNetworkIds: pulumi.StringArray{\n\t\t\t\tmainPrivateNetwork.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainInstanceGroup, err := autoscaling.NewInstanceGroup(ctx, \"main\", \u0026autoscaling.InstanceGroupArgs{\n\t\t\tName:       pulumi.String(\"autoscaling-instance-group-basic\"),\n\t\t\tTemplateId: mainInstanceTemplate.ID(),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform-test\"),\n\t\t\t\tpulumi.String(\"instance-group\"),\n\t\t\t},\n\t\t\tCapacities: autoscaling.InstanceGroupCapacityArray{\n\t\t\t\t\u0026autoscaling.InstanceGroupCapacityArgs{\n\t\t\t\t\tMaxReplicas:   pulumi.Int(5),\n\t\t\t\t\tMinReplicas:   pulumi.Int(1),\n\t\t\t\t\tCooldownDelay: pulumi.Int(300),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLoadBalancers: autoscaling.InstanceGroupLoadBalancerArray{\n\t\t\t\t\u0026autoscaling.InstanceGroupLoadBalancerArgs{\n\t\t\t\t\tId: mainLoadBalancer.ID(),\n\t\t\t\t\tBackendIds: pulumi.StringArray{\n\t\t\t\t\t\tmainBackend.ID(),\n\t\t\t\t\t},\n\t\t\t\t\tPrivateNetworkId: mainPrivateNetwork.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeleteServersOnDestroy: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = autoscaling.NewInstancePolicy(ctx, \"up\", \u0026autoscaling.InstancePolicyArgs{\n\t\t\tInstanceGroupId: mainInstanceGroup.ID(),\n\t\t\tName:            pulumi.String(\"scale-up-if-cpu-high\"),\n\t\t\tAction:          pulumi.String(\"scale_up\"),\n\t\t\tType:            pulumi.String(\"flat_count\"),\n\t\t\tValue:           pulumi.Int(1),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tMetrics: autoscaling.InstancePolicyMetricArray{\n\t\t\t\t\u0026autoscaling.InstancePolicyMetricArgs{\n\t\t\t\t\tName:             pulumi.String(\"cpu scale up\"),\n\t\t\t\t\tManagedMetric:    pulumi.String(\"managed_metric_instance_cpu\"),\n\t\t\t\t\tOperator:         pulumi.String(\"operator_greater_than\"),\n\t\t\t\t\tAggregate:        pulumi.String(\"aggregate_average\"),\n\t\t\t\t\tSamplingRangeMin: pulumi.Int(5),\n\t\t\t\t\tThreshold:        pulumi.Int(70),\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 = autoscaling.NewInstancePolicy(ctx, \"down\", \u0026autoscaling.InstancePolicyArgs{\n\t\t\tInstanceGroupId: mainInstanceGroup.ID(),\n\t\t\tName:            pulumi.String(\"scale-down-if-cpu-low\"),\n\t\t\tAction:          pulumi.String(\"scale_down\"),\n\t\t\tType:            pulumi.String(\"flat_count\"),\n\t\t\tValue:           pulumi.Int(1),\n\t\t\tPriority:        pulumi.Int(2),\n\t\t\tMetrics: autoscaling.InstancePolicyMetricArray{\n\t\t\t\t\u0026autoscaling.InstancePolicyMetricArgs{\n\t\t\t\t\tName:             pulumi.String(\"cpu scale down\"),\n\t\t\t\t\tManagedMetric:    pulumi.String(\"managed_metric_instance_cpu\"),\n\t\t\t\t\tOperator:         pulumi.String(\"operator_less_than\"),\n\t\t\t\t\tAggregate:        pulumi.String(\"aggregate_average\"),\n\t\t\t\t\tSamplingRangeMin: pulumi.Int(5),\n\t\t\t\t\tThreshold:        pulumi.Int(40),\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport com.pulumi.scaleway.block.Snapshot;\nimport com.pulumi.scaleway.block.SnapshotArgs;\nimport com.pulumi.scaleway.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.LoadBalancerPrivateNetworkArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.autoscaling.InstanceTemplate;\nimport com.pulumi.scaleway.autoscaling.InstanceTemplateArgs;\nimport com.pulumi.scaleway.autoscaling.inputs.InstanceTemplateVolumeArgs;\nimport com.pulumi.scaleway.autoscaling.inputs.InstanceTemplateVolumeFromSnapshotArgs;\nimport com.pulumi.scaleway.autoscaling.InstanceGroup;\nimport com.pulumi.scaleway.autoscaling.InstanceGroupArgs;\nimport com.pulumi.scaleway.autoscaling.inputs.InstanceGroupCapacityArgs;\nimport com.pulumi.scaleway.autoscaling.inputs.InstanceGroupLoadBalancerArgs;\nimport com.pulumi.scaleway.autoscaling.InstancePolicy;\nimport com.pulumi.scaleway.autoscaling.InstancePolicyArgs;\nimport com.pulumi.scaleway.autoscaling.inputs.InstancePolicyMetricArgs;\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 Vpc(\"main\", VpcArgs.builder()\n            .name(\"TestAccAutoscalingVPC\")\n            .build());\n\n        var mainPrivateNetwork = new PrivateNetwork(\"mainPrivateNetwork\", PrivateNetworkArgs.builder()\n            .name(\"TestAccAutoscalingVPC\")\n            .vpcId(main.id())\n            .build());\n\n        var mainVolume = new Volume(\"mainVolume\", VolumeArgs.builder()\n            .iops(5000)\n            .sizeInGb(10)\n            .build());\n\n        var mainSnapshot = new Snapshot(\"mainSnapshot\", SnapshotArgs.builder()\n            .name(\"test-ds-block-snapshot-basic\")\n            .volumeId(mainVolume.id())\n            .build());\n\n        var mainIp = new Ip(\"mainIp\");\n\n        var mainLoadBalancer = new LoadBalancer(\"mainLoadBalancer\", LoadBalancerArgs.builder()\n            .ipId(mainIp.id())\n            .name(\"test-lb\")\n            .type(\"lb-s\")\n            .privateNetworks(LoadBalancerPrivateNetworkArgs.builder()\n                .privateNetworkId(mainPrivateNetwork.id())\n                .build())\n            .build());\n\n        var mainBackend = new Backend(\"mainBackend\", BackendArgs.builder()\n            .lbId(mainLoadBalancer.id())\n            .forwardProtocol(\"tcp\")\n            .forwardPort(80)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var mainInstanceTemplate = new InstanceTemplate(\"mainInstanceTemplate\", InstanceTemplateArgs.builder()\n            .name(\"autoscaling-instance-template-basic\")\n            .commercialType(\"PLAY2-MICRO\")\n            .tags(            \n                \"terraform-test\",\n                \"basic\")\n            .volumes(InstanceTemplateVolumeArgs.builder()\n                .name(\"as-volume\")\n                .volumeType(\"sbs\")\n                .boot(true)\n                .fromSnapshot(InstanceTemplateVolumeFromSnapshotArgs.builder()\n                    .snapshotId(mainSnapshot.id())\n                    .build())\n                .perfIops(5000)\n                .build())\n            .publicIpsV4Count(1)\n            .privateNetworkIds(mainPrivateNetwork.id())\n            .build());\n\n        var mainInstanceGroup = new InstanceGroup(\"mainInstanceGroup\", InstanceGroupArgs.builder()\n            .name(\"autoscaling-instance-group-basic\")\n            .templateId(mainInstanceTemplate.id())\n            .tags(            \n                \"terraform-test\",\n                \"instance-group\")\n            .capacities(InstanceGroupCapacityArgs.builder()\n                .maxReplicas(5)\n                .minReplicas(1)\n                .cooldownDelay(300)\n                .build())\n            .loadBalancers(InstanceGroupLoadBalancerArgs.builder()\n                .id(mainLoadBalancer.id())\n                .backendIds(mainBackend.id())\n                .privateNetworkId(mainPrivateNetwork.id())\n                .build())\n            .deleteServersOnDestroy(true)\n            .build());\n\n        var up = new InstancePolicy(\"up\", InstancePolicyArgs.builder()\n            .instanceGroupId(mainInstanceGroup.id())\n            .name(\"scale-up-if-cpu-high\")\n            .action(\"scale_up\")\n            .type(\"flat_count\")\n            .value(1)\n            .priority(1)\n            .metrics(InstancePolicyMetricArgs.builder()\n                .name(\"cpu scale up\")\n                .managedMetric(\"managed_metric_instance_cpu\")\n                .operator(\"operator_greater_than\")\n                .aggregate(\"aggregate_average\")\n                .samplingRangeMin(5)\n                .threshold(70)\n                .build())\n            .build());\n\n        var down = new InstancePolicy(\"down\", InstancePolicyArgs.builder()\n            .instanceGroupId(mainInstanceGroup.id())\n            .name(\"scale-down-if-cpu-low\")\n            .action(\"scale_down\")\n            .type(\"flat_count\")\n            .value(1)\n            .priority(2)\n            .metrics(InstancePolicyMetricArgs.builder()\n                .name(\"cpu scale down\")\n                .managedMetric(\"managed_metric_instance_cpu\")\n                .operator(\"operator_less_than\")\n                .aggregate(\"aggregate_average\")\n                .samplingRangeMin(5)\n                .threshold(40)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:Vpc\n    properties:\n      name: TestAccAutoscalingVPC\n  mainPrivateNetwork:\n    type: scaleway:network:PrivateNetwork\n    name: main\n    properties:\n      name: TestAccAutoscalingVPC\n      vpcId: ${main.id}\n  mainVolume:\n    type: scaleway:block:Volume\n    name: main\n    properties:\n      iops: 5000\n      sizeInGb: 10\n  mainSnapshot:\n    type: scaleway:block:Snapshot\n    name: main\n    properties:\n      name: test-ds-block-snapshot-basic\n      volumeId: ${mainVolume.id}\n  mainIp:\n    type: scaleway:loadbalancers:Ip\n    name: main\n  mainLoadBalancer:\n    type: scaleway:loadbalancers:LoadBalancer\n    name: main\n    properties:\n      ipId: ${mainIp.id}\n      name: test-lb\n      type: lb-s\n      privateNetworks:\n        - privateNetworkId: ${mainPrivateNetwork.id}\n  mainBackend:\n    type: scaleway:loadbalancers:Backend\n    name: main\n    properties:\n      lbId: ${mainLoadBalancer.id}\n      forwardProtocol: tcp\n      forwardPort: 80\n      proxyProtocol: none\n  mainInstanceTemplate:\n    type: scaleway:autoscaling:InstanceTemplate\n    name: main\n    properties:\n      name: autoscaling-instance-template-basic\n      commercialType: PLAY2-MICRO\n      tags:\n        - terraform-test\n        - basic\n      volumes:\n        - name: as-volume\n          volumeType: sbs\n          boot: true\n          fromSnapshot:\n            snapshotId: ${mainSnapshot.id}\n          perfIops: 5000\n      publicIpsV4Count: 1\n      privateNetworkIds:\n        - ${mainPrivateNetwork.id}\n  mainInstanceGroup:\n    type: scaleway:autoscaling:InstanceGroup\n    name: main\n    properties:\n      name: autoscaling-instance-group-basic\n      templateId: ${mainInstanceTemplate.id}\n      tags:\n        - terraform-test\n        - instance-group\n      capacities:\n        - maxReplicas: 5\n          minReplicas: 1\n          cooldownDelay: '300'\n      loadBalancers:\n        - id: ${mainLoadBalancer.id}\n          backendIds:\n            - ${mainBackend.id}\n          privateNetworkId: ${mainPrivateNetwork.id}\n      deleteServersOnDestroy: true\n  up:\n    type: scaleway:autoscaling:InstancePolicy\n    properties:\n      instanceGroupId: ${mainInstanceGroup.id}\n      name: scale-up-if-cpu-high\n      action: scale_up\n      type: flat_count\n      value: 1\n      priority: 1\n      metrics:\n        - name: cpu scale up\n          managedMetric: managed_metric_instance_cpu\n          operator: operator_greater_than\n          aggregate: aggregate_average\n          samplingRangeMin: 5\n          threshold: 70\n  down:\n    type: scaleway:autoscaling:InstancePolicy\n    properties:\n      instanceGroupId: ${mainInstanceGroup.id}\n      name: scale-down-if-cpu-low\n      action: scale_down\n      type: flat_count\n      value: 1\n      priority: 2\n      metrics:\n        - name: cpu scale down\n          managedMetric: managed_metric_instance_cpu\n          operator: operator_less_than\n          aggregate: aggregate_average\n          samplingRangeMin: 5\n          threshold: 40\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAutoscaling Instance groups can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:autoscaling/instanceGroup:InstanceGroup main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"capacities":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstanceGroupCapacity:InstanceGroupCapacity"},"description":"The specification of the minimum and maximum replicas for the Instance group, and the cooldown interval between two scaling events.\n"},"createdAt":{"type":"string","description":"Date and time of Instance group's creation (RFC 3339 format).\n"},"deleteServersOnDestroy":{"type":"boolean","description":"Whether to delete all instances in this group when the group is destroyed. Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to tear them down, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (the default) leaves them running.\n"},"loadBalancers":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstanceGroupLoadBalancer:InstanceGroupLoadBalancer"},"description":"The specification of the Load Balancer to link to the Instance group.\n"},"name":{"type":"string","description":"The Instance group name.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Instance group is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Instance group.\n"},"templateId":{"type":"string","description":"The ID of the Instance template to attach to the Instance group.\n"},"updatedAt":{"type":"string","description":"Date and time of Instance group's last update (RFC 3339 format).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Instance group exists.\n"}},"required":["capacities","createdAt","loadBalancers","name","projectId","templateId","updatedAt"],"inputProperties":{"capacities":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstanceGroupCapacity:InstanceGroupCapacity"},"description":"The specification of the minimum and maximum replicas for the Instance group, and the cooldown interval between two scaling events.\n"},"deleteServersOnDestroy":{"type":"boolean","description":"Whether to delete all instances in this group when the group is destroyed. Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to tear them down, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (the default) leaves them running.\n"},"loadBalancers":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstanceGroupLoadBalancer:InstanceGroupLoadBalancer"},"description":"The specification of the Load Balancer to link to the Instance group.\n"},"name":{"type":"string","description":"The Instance group name.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Instance group is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Instance group.\n"},"templateId":{"type":"string","description":"The ID of the Instance template to attach to the Instance group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Instance group exists.\n","willReplaceOnChanges":true}},"requiredInputs":["templateId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceGroup resources.\n","properties":{"capacities":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstanceGroupCapacity:InstanceGroupCapacity"},"description":"The specification of the minimum and maximum replicas for the Instance group, and the cooldown interval between two scaling events.\n"},"createdAt":{"type":"string","description":"Date and time of Instance group's creation (RFC 3339 format).\n"},"deleteServersOnDestroy":{"type":"boolean","description":"Whether to delete all instances in this group when the group is destroyed. Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to tear them down, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (the default) leaves them running.\n"},"loadBalancers":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstanceGroupLoadBalancer:InstanceGroupLoadBalancer"},"description":"The specification of the Load Balancer to link to the Instance group.\n"},"name":{"type":"string","description":"The Instance group name.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Instance group is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Instance group.\n"},"templateId":{"type":"string","description":"The ID of the Instance template to attach to the Instance group.\n"},"updatedAt":{"type":"string","description":"Date and time of Instance group's last update (RFC 3339 format).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Instance group exists.\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:autoscaling/instancePolicy:InstancePolicy":{"description":"Books and manages Autoscaling Instance policies.\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 up = new scaleway.autoscaling.InstancePolicy(\"up\", {\n    instanceGroupId: main.id,\n    name: \"scale-up-if-cpu-high\",\n    action: \"scale_up\",\n    type: \"flat_count\",\n    value: 1,\n    priority: 1,\n    metrics: [{\n        name: \"cpu scale up\",\n        managedMetric: \"managed_metric_instance_cpu\",\n        operator: \"operator_greater_than\",\n        aggregate: \"aggregate_average\",\n        samplingRangeMin: 5,\n        threshold: 70,\n    }],\n});\nconst down = new scaleway.autoscaling.InstancePolicy(\"down\", {\n    instanceGroupId: main.id,\n    name: \"scale-down-if-cpu-low\",\n    action: \"scale_down\",\n    type: \"flat_count\",\n    value: 1,\n    priority: 2,\n    metrics: [{\n        name: \"cpu scale down\",\n        managedMetric: \"managed_metric_instance_cpu\",\n        operator: \"operator_less_than\",\n        aggregate: \"aggregate_average\",\n        samplingRangeMin: 5,\n        threshold: 40,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nup = scaleway.autoscaling.InstancePolicy(\"up\",\n    instance_group_id=main[\"id\"],\n    name=\"scale-up-if-cpu-high\",\n    action=\"scale_up\",\n    type=\"flat_count\",\n    value=1,\n    priority=1,\n    metrics=[{\n        \"name\": \"cpu scale up\",\n        \"managed_metric\": \"managed_metric_instance_cpu\",\n        \"operator\": \"operator_greater_than\",\n        \"aggregate\": \"aggregate_average\",\n        \"sampling_range_min\": 5,\n        \"threshold\": 70,\n    }])\ndown = scaleway.autoscaling.InstancePolicy(\"down\",\n    instance_group_id=main[\"id\"],\n    name=\"scale-down-if-cpu-low\",\n    action=\"scale_down\",\n    type=\"flat_count\",\n    value=1,\n    priority=2,\n    metrics=[{\n        \"name\": \"cpu scale down\",\n        \"managed_metric\": \"managed_metric_instance_cpu\",\n        \"operator\": \"operator_less_than\",\n        \"aggregate\": \"aggregate_average\",\n        \"sampling_range_min\": 5,\n        \"threshold\": 40,\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 up = new Scaleway.Autoscaling.InstancePolicy(\"up\", new()\n    {\n        InstanceGroupId = main.Id,\n        Name = \"scale-up-if-cpu-high\",\n        Action = \"scale_up\",\n        Type = \"flat_count\",\n        Value = 1,\n        Priority = 1,\n        Metrics = new[]\n        {\n            new Scaleway.Autoscaling.Inputs.InstancePolicyMetricArgs\n            {\n                Name = \"cpu scale up\",\n                ManagedMetric = \"managed_metric_instance_cpu\",\n                Operator = \"operator_greater_than\",\n                Aggregate = \"aggregate_average\",\n                SamplingRangeMin = 5,\n                Threshold = 70,\n            },\n        },\n    });\n\n    var down = new Scaleway.Autoscaling.InstancePolicy(\"down\", new()\n    {\n        InstanceGroupId = main.Id,\n        Name = \"scale-down-if-cpu-low\",\n        Action = \"scale_down\",\n        Type = \"flat_count\",\n        Value = 1,\n        Priority = 2,\n        Metrics = new[]\n        {\n            new Scaleway.Autoscaling.Inputs.InstancePolicyMetricArgs\n            {\n                Name = \"cpu scale down\",\n                ManagedMetric = \"managed_metric_instance_cpu\",\n                Operator = \"operator_less_than\",\n                Aggregate = \"aggregate_average\",\n                SamplingRangeMin = 5,\n                Threshold = 40,\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/autoscaling\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := autoscaling.NewInstancePolicy(ctx, \"up\", \u0026autoscaling.InstancePolicyArgs{\n\t\t\tInstanceGroupId: pulumi.Any(main.Id),\n\t\t\tName:            pulumi.String(\"scale-up-if-cpu-high\"),\n\t\t\tAction:          pulumi.String(\"scale_up\"),\n\t\t\tType:            pulumi.String(\"flat_count\"),\n\t\t\tValue:           pulumi.Int(1),\n\t\t\tPriority:        pulumi.Int(1),\n\t\t\tMetrics: autoscaling.InstancePolicyMetricArray{\n\t\t\t\t\u0026autoscaling.InstancePolicyMetricArgs{\n\t\t\t\t\tName:             pulumi.String(\"cpu scale up\"),\n\t\t\t\t\tManagedMetric:    pulumi.String(\"managed_metric_instance_cpu\"),\n\t\t\t\t\tOperator:         pulumi.String(\"operator_greater_than\"),\n\t\t\t\t\tAggregate:        pulumi.String(\"aggregate_average\"),\n\t\t\t\t\tSamplingRangeMin: pulumi.Int(5),\n\t\t\t\t\tThreshold:        pulumi.Int(70),\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 = autoscaling.NewInstancePolicy(ctx, \"down\", \u0026autoscaling.InstancePolicyArgs{\n\t\t\tInstanceGroupId: pulumi.Any(main.Id),\n\t\t\tName:            pulumi.String(\"scale-down-if-cpu-low\"),\n\t\t\tAction:          pulumi.String(\"scale_down\"),\n\t\t\tType:            pulumi.String(\"flat_count\"),\n\t\t\tValue:           pulumi.Int(1),\n\t\t\tPriority:        pulumi.Int(2),\n\t\t\tMetrics: autoscaling.InstancePolicyMetricArray{\n\t\t\t\t\u0026autoscaling.InstancePolicyMetricArgs{\n\t\t\t\t\tName:             pulumi.String(\"cpu scale down\"),\n\t\t\t\t\tManagedMetric:    pulumi.String(\"managed_metric_instance_cpu\"),\n\t\t\t\t\tOperator:         pulumi.String(\"operator_less_than\"),\n\t\t\t\t\tAggregate:        pulumi.String(\"aggregate_average\"),\n\t\t\t\t\tSamplingRangeMin: pulumi.Int(5),\n\t\t\t\t\tThreshold:        pulumi.Int(40),\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.autoscaling.InstancePolicy;\nimport com.pulumi.scaleway.autoscaling.InstancePolicyArgs;\nimport com.pulumi.scaleway.autoscaling.inputs.InstancePolicyMetricArgs;\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 up = new InstancePolicy(\"up\", InstancePolicyArgs.builder()\n            .instanceGroupId(main.id())\n            .name(\"scale-up-if-cpu-high\")\n            .action(\"scale_up\")\n            .type(\"flat_count\")\n            .value(1)\n            .priority(1)\n            .metrics(InstancePolicyMetricArgs.builder()\n                .name(\"cpu scale up\")\n                .managedMetric(\"managed_metric_instance_cpu\")\n                .operator(\"operator_greater_than\")\n                .aggregate(\"aggregate_average\")\n                .samplingRangeMin(5)\n                .threshold(70)\n                .build())\n            .build());\n\n        var down = new InstancePolicy(\"down\", InstancePolicyArgs.builder()\n            .instanceGroupId(main.id())\n            .name(\"scale-down-if-cpu-low\")\n            .action(\"scale_down\")\n            .type(\"flat_count\")\n            .value(1)\n            .priority(2)\n            .metrics(InstancePolicyMetricArgs.builder()\n                .name(\"cpu scale down\")\n                .managedMetric(\"managed_metric_instance_cpu\")\n                .operator(\"operator_less_than\")\n                .aggregate(\"aggregate_average\")\n                .samplingRangeMin(5)\n                .threshold(40)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  up:\n    type: scaleway:autoscaling:InstancePolicy\n    properties:\n      instanceGroupId: ${main.id}\n      name: scale-up-if-cpu-high\n      action: scale_up\n      type: flat_count\n      value: 1\n      priority: 1\n      metrics:\n        - name: cpu scale up\n          managedMetric: managed_metric_instance_cpu\n          operator: operator_greater_than\n          aggregate: aggregate_average\n          samplingRangeMin: 5\n          threshold: 70\n  down:\n    type: scaleway:autoscaling:InstancePolicy\n    properties:\n      instanceGroupId: ${main.id}\n      name: scale-down-if-cpu-low\n      action: scale_down\n      type: flat_count\n      value: 1\n      priority: 2\n      metrics:\n        - name: cpu scale down\n          managedMetric: managed_metric_instance_cpu\n          operator: operator_less_than\n          aggregate: aggregate_average\n          samplingRangeMin: 5\n          threshold: 40\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAutoscaling instance policies can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:autoscaling/instancePolicy:InstancePolicy main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"action":{"type":"string","description":"The action to execute when the metric-based condition is met.\n"},"instanceGroupId":{"type":"string","description":"The ID of the Instance group related to this policy.\n"},"metrics":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstancePolicyMetric:InstancePolicyMetric"},"description":"Cockpit metric to use when determining whether to trigger a scale up/down action.\n"},"name":{"type":"string","description":"The Instance policy name.\n"},"priority":{"type":"integer","description":"The priority of this policy compared to all other scaling policies. This determines the processing order. The lower the number, the higher the priority.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Instance policy is associated with.\n"},"type":{"type":"string","description":"How to use the number defined in \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e when determining by how many Instances to scale up/down.\n"},"value":{"type":"integer","description":"The value representing the magnitude of the scaling action to take for the Instance group. Depending on the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e parameter, this number could represent a total number of Instances in the group, a number of Instances to add, or a percentage to scale the group by.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Instance policy exists.\n"}},"required":["action","instanceGroupId","metrics","name","priority","projectId","type","value"],"inputProperties":{"action":{"type":"string","description":"The action to execute when the metric-based condition is met.\n"},"instanceGroupId":{"type":"string","description":"The ID of the Instance group related to this policy.\n"},"metrics":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstancePolicyMetric:InstancePolicyMetric"},"description":"Cockpit metric to use when determining whether to trigger a scale up/down action.\n"},"name":{"type":"string","description":"The Instance policy name.\n"},"priority":{"type":"integer","description":"The priority of this policy compared to all other scaling policies. This determines the processing order. The lower the number, the higher the priority.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Instance policy is associated with.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"How to use the number defined in \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e when determining by how many Instances to scale up/down.\n"},"value":{"type":"integer","description":"The value representing the magnitude of the scaling action to take for the Instance group. Depending on the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e parameter, this number could represent a total number of Instances in the group, a number of Instances to add, or a percentage to scale the group by.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Instance policy exists.\n","willReplaceOnChanges":true}},"requiredInputs":["action","instanceGroupId","priority","type","value"],"stateInputs":{"description":"Input properties used for looking up and filtering InstancePolicy resources.\n","properties":{"action":{"type":"string","description":"The action to execute when the metric-based condition is met.\n"},"instanceGroupId":{"type":"string","description":"The ID of the Instance group related to this policy.\n"},"metrics":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstancePolicyMetric:InstancePolicyMetric"},"description":"Cockpit metric to use when determining whether to trigger a scale up/down action.\n"},"name":{"type":"string","description":"The Instance policy name.\n"},"priority":{"type":"integer","description":"The priority of this policy compared to all other scaling policies. This determines the processing order. The lower the number, the higher the priority.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Instance policy is associated with.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"How to use the number defined in \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e when determining by how many Instances to scale up/down.\n"},"value":{"type":"integer","description":"The value representing the magnitude of the scaling action to take for the Instance group. Depending on the \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e parameter, this number could represent a total number of Instances in the group, a number of Instances to add, or a percentage to scale the group by.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Instance policy exists.\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:autoscaling/instanceTemplate:InstanceTemplate":{"description":"Books and manages Autoscaling Instance templates.\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.autoscaling.InstanceTemplate(\"main\", {\n    name: \"asg-template\",\n    commercialType: \"PLAY2-MICRO\",\n    tags: [\n        \"terraform-test\",\n        \"basic\",\n    ],\n    volumes: [{\n        name: \"as-volume\",\n        volumeType: \"sbs\",\n        boot: true,\n        fromSnapshot: {\n            snapshotId: mainScalewayBlockSnapshot.id,\n        },\n        perfIops: 5000,\n    }],\n    publicIpsV4Count: 1,\n    privateNetworkIds: [mainScalewayVpcPrivateNetwork.id],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.autoscaling.InstanceTemplate(\"main\",\n    name=\"asg-template\",\n    commercial_type=\"PLAY2-MICRO\",\n    tags=[\n        \"terraform-test\",\n        \"basic\",\n    ],\n    volumes=[{\n        \"name\": \"as-volume\",\n        \"volume_type\": \"sbs\",\n        \"boot\": True,\n        \"from_snapshot\": {\n            \"snapshot_id\": main_scaleway_block_snapshot[\"id\"],\n        },\n        \"perf_iops\": 5000,\n    }],\n    public_ips_v4_count=1,\n    private_network_ids=[main_scaleway_vpc_private_network[\"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 main = new Scaleway.Autoscaling.InstanceTemplate(\"main\", new()\n    {\n        Name = \"asg-template\",\n        CommercialType = \"PLAY2-MICRO\",\n        Tags = new[]\n        {\n            \"terraform-test\",\n            \"basic\",\n        },\n        Volumes = new[]\n        {\n            new Scaleway.Autoscaling.Inputs.InstanceTemplateVolumeArgs\n            {\n                Name = \"as-volume\",\n                VolumeType = \"sbs\",\n                Boot = true,\n                FromSnapshot = new Scaleway.Autoscaling.Inputs.InstanceTemplateVolumeFromSnapshotArgs\n                {\n                    SnapshotId = mainScalewayBlockSnapshot.Id,\n                },\n                PerfIops = 5000,\n            },\n        },\n        PublicIpsV4Count = 1,\n        PrivateNetworkIds = new[]\n        {\n            mainScalewayVpcPrivateNetwork.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/autoscaling\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := autoscaling.NewInstanceTemplate(ctx, \"main\", \u0026autoscaling.InstanceTemplateArgs{\n\t\t\tName:           pulumi.String(\"asg-template\"),\n\t\t\tCommercialType: pulumi.String(\"PLAY2-MICRO\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform-test\"),\n\t\t\t\tpulumi.String(\"basic\"),\n\t\t\t},\n\t\t\tVolumes: autoscaling.InstanceTemplateVolumeArray{\n\t\t\t\t\u0026autoscaling.InstanceTemplateVolumeArgs{\n\t\t\t\t\tName:       pulumi.String(\"as-volume\"),\n\t\t\t\t\tVolumeType: pulumi.String(\"sbs\"),\n\t\t\t\t\tBoot:       pulumi.Bool(true),\n\t\t\t\t\tFromSnapshot: \u0026autoscaling.InstanceTemplateVolumeFromSnapshotArgs{\n\t\t\t\t\t\tSnapshotId: pulumi.Any(mainScalewayBlockSnapshot.Id),\n\t\t\t\t\t},\n\t\t\t\t\tPerfIops: pulumi.Int(5000),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPublicIpsV4Count: pulumi.Int(1),\n\t\t\tPrivateNetworkIds: pulumi.StringArray{\n\t\t\t\tmainScalewayVpcPrivateNetwork.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.autoscaling.InstanceTemplate;\nimport com.pulumi.scaleway.autoscaling.InstanceTemplateArgs;\nimport com.pulumi.scaleway.autoscaling.inputs.InstanceTemplateVolumeArgs;\nimport com.pulumi.scaleway.autoscaling.inputs.InstanceTemplateVolumeFromSnapshotArgs;\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 InstanceTemplate(\"main\", InstanceTemplateArgs.builder()\n            .name(\"asg-template\")\n            .commercialType(\"PLAY2-MICRO\")\n            .tags(            \n                \"terraform-test\",\n                \"basic\")\n            .volumes(InstanceTemplateVolumeArgs.builder()\n                .name(\"as-volume\")\n                .volumeType(\"sbs\")\n                .boot(true)\n                .fromSnapshot(InstanceTemplateVolumeFromSnapshotArgs.builder()\n                    .snapshotId(mainScalewayBlockSnapshot.id())\n                    .build())\n                .perfIops(5000)\n                .build())\n            .publicIpsV4Count(1)\n            .privateNetworkIds(mainScalewayVpcPrivateNetwork.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:autoscaling:InstanceTemplate\n    properties:\n      name: asg-template\n      commercialType: PLAY2-MICRO\n      tags:\n        - terraform-test\n        - basic\n      volumes:\n        - name: as-volume\n          volumeType: sbs\n          boot: true\n          fromSnapshot:\n            snapshotId: ${mainScalewayBlockSnapshot.id}\n          perfIops: 5000\n      publicIpsV4Count: 1\n      privateNetworkIds:\n        - ${mainScalewayVpcPrivateNetwork.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAutoscaling Instance templates can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:autoscaling/instanceTemplate:InstanceTemplate main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"cloudInit":{"type":"string","description":"The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`commercialType`\" pulumi-lang-dotnet=\"`CommercialType`\" pulumi-lang-go=\"`commercialType`\" pulumi-lang-python=\"`commercial_type`\" pulumi-lang-yaml=\"`commercialType`\" pulumi-lang-java=\"`commercialType`\"\u003e`commercial_type`\u003c/span\u003e template.\n"},"commercialType":{"type":"string","description":"The name of Instance commercial type.\n"},"createdAt":{"type":"string","description":"Date and time of Instance group's creation (RFC 3339 format).\n"},"imageId":{"type":"string","description":"The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`commercialType`\" pulumi-lang-dotnet=\"`CommercialType`\" pulumi-lang-go=\"`commercialType`\" pulumi-lang-python=\"`commercial_type`\" pulumi-lang-yaml=\"`commercialType`\" pulumi-lang-java=\"`commercialType`\"\u003e`commercial_type`\u003c/span\u003e template.\n"},"name":{"type":"string","description":"The Instance group template.\n"},"placementGroupId":{"type":"string","description":"The instance placement group ID. This is optional, but it is highly recommended to set a preference for Instance location within Availability Zone.\n"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"The private Network IDs to attach to the new Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Instance template is associated with.\n"},"publicIpsV4Count":{"type":"integer","description":"The number of flexible IPv4 addresses to attach to the new Instance.\n"},"publicIpsV6Count":{"type":"integer","description":"The number of flexible IPv6 addresses to attach to the new Instance.\n"},"securityGroupId":{"type":"string","description":"The instance security group ID.\n"},"status":{"type":"string","description":"The Instance template status"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Instance template.\n"},"updatedAt":{"type":"string","description":"Date and time of Instance group's last update (RFC 3339 format).\n"},"volumes":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstanceTemplateVolume:InstanceTemplateVolume"},"description":"The template of Instance volume.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Instance template exists.\n"}},"required":["commercialType","createdAt","name","projectId","status","updatedAt"],"inputProperties":{"cloudInit":{"type":"string","description":"The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`commercialType`\" pulumi-lang-dotnet=\"`CommercialType`\" pulumi-lang-go=\"`commercialType`\" pulumi-lang-python=\"`commercial_type`\" pulumi-lang-yaml=\"`commercialType`\" pulumi-lang-java=\"`commercialType`\"\u003e`commercial_type`\u003c/span\u003e template.\n"},"commercialType":{"type":"string","description":"The name of Instance commercial type.\n"},"imageId":{"type":"string","description":"The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`commercialType`\" pulumi-lang-dotnet=\"`CommercialType`\" pulumi-lang-go=\"`commercialType`\" pulumi-lang-python=\"`commercial_type`\" pulumi-lang-yaml=\"`commercialType`\" pulumi-lang-java=\"`commercialType`\"\u003e`commercial_type`\u003c/span\u003e template.\n"},"name":{"type":"string","description":"The Instance group template.\n"},"placementGroupId":{"type":"string","description":"The instance placement group ID. This is optional, but it is highly recommended to set a preference for Instance location within Availability Zone.\n"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"The private Network IDs to attach to the new Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Instance template is associated with.\n","willReplaceOnChanges":true},"publicIpsV4Count":{"type":"integer","description":"The number of flexible IPv4 addresses to attach to the new Instance.\n"},"publicIpsV6Count":{"type":"integer","description":"The number of flexible IPv6 addresses to attach to the new Instance.\n"},"securityGroupId":{"type":"string","description":"The instance security group ID.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Instance template.\n"},"volumes":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstanceTemplateVolume:InstanceTemplateVolume"},"description":"The template of Instance volume.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Instance template exists.\n","willReplaceOnChanges":true}},"requiredInputs":["commercialType"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceTemplate resources.\n","properties":{"cloudInit":{"type":"string","description":"The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`commercialType`\" pulumi-lang-dotnet=\"`CommercialType`\" pulumi-lang-go=\"`commercialType`\" pulumi-lang-python=\"`commercial_type`\" pulumi-lang-yaml=\"`commercialType`\" pulumi-lang-java=\"`commercialType`\"\u003e`commercial_type`\u003c/span\u003e template.\n"},"commercialType":{"type":"string","description":"The name of Instance commercial type.\n"},"createdAt":{"type":"string","description":"Date and time of Instance group's creation (RFC 3339 format).\n"},"imageId":{"type":"string","description":"The instance image ID. Can be an ID of a marketplace or personal image. This image must be compatible with \u003cspan pulumi-lang-nodejs=\"`volume`\" pulumi-lang-dotnet=\"`Volume`\" pulumi-lang-go=\"`volume`\" pulumi-lang-python=\"`volume`\" pulumi-lang-yaml=\"`volume`\" pulumi-lang-java=\"`volume`\"\u003e`volume`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`commercialType`\" pulumi-lang-dotnet=\"`CommercialType`\" pulumi-lang-go=\"`commercialType`\" pulumi-lang-python=\"`commercial_type`\" pulumi-lang-yaml=\"`commercialType`\" pulumi-lang-java=\"`commercialType`\"\u003e`commercial_type`\u003c/span\u003e template.\n"},"name":{"type":"string","description":"The Instance group template.\n"},"placementGroupId":{"type":"string","description":"The instance placement group ID. This is optional, but it is highly recommended to set a preference for Instance location within Availability Zone.\n"},"privateNetworkIds":{"type":"array","items":{"type":"string"},"description":"The private Network IDs to attach to the new Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Instance template is associated with.\n","willReplaceOnChanges":true},"publicIpsV4Count":{"type":"integer","description":"The number of flexible IPv4 addresses to attach to the new Instance.\n"},"publicIpsV6Count":{"type":"integer","description":"The number of flexible IPv6 addresses to attach to the new Instance.\n"},"securityGroupId":{"type":"string","description":"The instance security group ID.\n"},"status":{"type":"string","description":"The Instance template status"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Instance template.\n"},"updatedAt":{"type":"string","description":"Date and time of Instance group's last update (RFC 3339 format).\n"},"volumes":{"type":"array","items":{"$ref":"#/types/scaleway:autoscaling/InstanceTemplateVolume:InstanceTemplateVolume"},"description":"The template of Instance volume.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Instance template exists.\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:block/snapshot:Snapshot":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.block.Snapshot`\" pulumi-lang-dotnet=\"`scaleway.block.Snapshot`\" pulumi-lang-go=\"`block.Snapshot`\" pulumi-lang-python=\"`block.Snapshot`\" pulumi-lang-yaml=\"`scaleway.block.Snapshot`\" pulumi-lang-java=\"`scaleway.block.Snapshot`\"\u003e`scaleway.block.Snapshot`\u003c/span\u003e resource is used to create and manage snapshots of Block Storage volumes.\n\nRefer to the Block Storage [product documentation](https://www.scaleway.com/en/docs/block-storage/) and [API documentation](https://www.scaleway.com/en/developers/api/block/) for more information.\n\n## Example Usage\n\n### Create a snapshot of a Block Storage volume\n\nThe following command allows you to create a snapshot (`some-snapshot-name`) from a Block Storage volume specified by its ID.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst blockVolume = new scaleway.block.Volume(\"block_volume\", {\n    iops: 5000,\n    name: \"some-volume-name\",\n    sizeInGb: 20,\n});\nconst blockSnapshot = new scaleway.block.Snapshot(\"block_snapshot\", {\n    name: \"some-snapshot-name\",\n    volumeId: blockVolume.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nblock_volume = scaleway.block.Volume(\"block_volume\",\n    iops=5000,\n    name=\"some-volume-name\",\n    size_in_gb=20)\nblock_snapshot = scaleway.block.Snapshot(\"block_snapshot\",\n    name=\"some-snapshot-name\",\n    volume_id=block_volume.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 blockVolume = new Scaleway.Block.Volume(\"block_volume\", new()\n    {\n        Iops = 5000,\n        Name = \"some-volume-name\",\n        SizeInGb = 20,\n    });\n\n    var blockSnapshot = new Scaleway.Block.Snapshot(\"block_snapshot\", new()\n    {\n        Name = \"some-snapshot-name\",\n        VolumeId = blockVolume.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/block\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tblockVolume, err := block.NewVolume(ctx, \"block_volume\", \u0026block.VolumeArgs{\n\t\t\tIops:     pulumi.Int(5000),\n\t\t\tName:     pulumi.String(\"some-volume-name\"),\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\t_, err = block.NewSnapshot(ctx, \"block_snapshot\", \u0026block.SnapshotArgs{\n\t\t\tName:     pulumi.String(\"some-snapshot-name\"),\n\t\t\tVolumeId: blockVolume.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.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport com.pulumi.scaleway.block.Snapshot;\nimport com.pulumi.scaleway.block.SnapshotArgs;\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 blockVolume = new Volume(\"blockVolume\", VolumeArgs.builder()\n            .iops(5000)\n            .name(\"some-volume-name\")\n            .sizeInGb(20)\n            .build());\n\n        var blockSnapshot = new Snapshot(\"blockSnapshot\", SnapshotArgs.builder()\n            .name(\"some-snapshot-name\")\n            .volumeId(blockVolume.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  blockVolume:\n    type: scaleway:block:Volume\n    name: block_volume\n    properties:\n      iops: 5000\n      name: some-volume-name\n      sizeInGb: 20\n  blockSnapshot:\n    type: scaleway:block:Snapshot\n    name: block_snapshot\n    properties:\n      name: some-snapshot-name\n      volumeId: ${blockVolume.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### How to import from Object Storage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst my_import_bucket = new scaleway.object.Bucket(\"my-import-bucket\", {name: \"snapshot-bucket-to-import\"});\nconst qcow_object = new scaleway.object.Item(\"qcow-object\", {\n    bucket: snapshot_bucket.name,\n    key: \"my-snapshot.qcow2\",\n    file: \"imported-snapshot/snapshot.qcow2\",\n});\nconst imported = new scaleway.block.Volume(\"imported\", {\n    iops: 5000,\n    name: \"imported-from-qcow\",\n    \"import\": [{\n        bucket: \"my-import-bucket\",\n        key: \"imported-snapshot/snapshot.qcow2\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmy_import_bucket = scaleway.object.Bucket(\"my-import-bucket\", name=\"snapshot-bucket-to-import\")\nqcow_object = scaleway.object.Item(\"qcow-object\",\n    bucket=snapshot_bucket[\"name\"],\n    key=\"my-snapshot.qcow2\",\n    file=\"imported-snapshot/snapshot.qcow2\")\nimported = scaleway.block.Volume(\"imported\",\n    iops=5000,\n    name=\"imported-from-qcow\",\n    import_=[{\n        \"bucket\": \"my-import-bucket\",\n        \"key\": \"imported-snapshot/snapshot.qcow2\",\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 my_import_bucket = new Scaleway.Object.Bucket(\"my-import-bucket\", new()\n    {\n        Name = \"snapshot-bucket-to-import\",\n    });\n\n    var qcow_object = new Scaleway.Object.Item(\"qcow-object\", new()\n    {\n        Bucket = snapshot_bucket.Name,\n        Key = \"my-snapshot.qcow2\",\n        File = \"imported-snapshot/snapshot.qcow2\",\n    });\n\n    var imported = new Scaleway.Block.Volume(\"imported\", new()\n    {\n        Iops = 5000,\n        Name = \"imported-from-qcow\",\n        Import = new[]\n        {\n            \n            {\n                { \"bucket\", \"my-import-bucket\" },\n                { \"key\", \"imported-snapshot/snapshot.qcow2\" },\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/block\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"my-import-bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"snapshot-bucket-to-import\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewItem(ctx, \"qcow-object\", \u0026object.ItemArgs{\n\t\t\tBucket: pulumi.Any(snapshot_bucket.Name),\n\t\t\tKey:    pulumi.String(\"my-snapshot.qcow2\"),\n\t\t\tFile:   pulumi.String(\"imported-snapshot/snapshot.qcow2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = block.NewVolume(ctx, \"imported\", \u0026block.VolumeArgs{\n\t\t\tIops: pulumi.Int(5000),\n\t\t\tName: pulumi.String(\"imported-from-qcow\"),\n\t\t\tImport: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"bucket\": \"my-import-bucket\",\n\t\t\t\t\t\"key\":    \"imported-snapshot/snapshot.qcow2\",\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.Item;\nimport com.pulumi.scaleway.object.ItemArgs;\nimport com.pulumi.scaleway.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_import_bucket = new Bucket(\"my-import-bucket\", BucketArgs.builder()\n            .name(\"snapshot-bucket-to-import\")\n            .build());\n\n        var qcow_object = new Item(\"qcow-object\", ItemArgs.builder()\n            .bucket(snapshot_bucket.name())\n            .key(\"my-snapshot.qcow2\")\n            .file(\"imported-snapshot/snapshot.qcow2\")\n            .build());\n\n        var imported = new Volume(\"imported\", VolumeArgs.builder()\n            .iops(5000)\n            .name(\"imported-from-qcow\")\n            .import_(List.of(Map.ofEntries(\n                Map.entry(\"bucket\", \"my-import-bucket\"),\n                Map.entry(\"key\", \"imported-snapshot/snapshot.qcow2\")\n            )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-import-bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: snapshot-bucket-to-import\n  qcow-object:\n    type: scaleway:object:Item\n    properties:\n      bucket: ${[\"snapshot-bucket\"].name}\n      key: my-snapshot.qcow2\n      file: imported-snapshot/snapshot.qcow2\n  imported:\n    type: scaleway:block:Volume\n    properties:\n      iops: 5000\n      name: imported-from-qcow\n      import:\n        - bucket: my-import-bucket\n          key: imported-snapshot/snapshot.qcow2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### How to export to Object Storage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst my_import_bucket = new scaleway.object.Bucket(\"my-import-bucket\", {name: \"snapshot-bucket-to-import\"});\nconst qcow_object = new scaleway.object.Item(\"qcow-object\", {\n    bucket: snapshot_bucket.name,\n    key: \"export/my-snapshot.qcow2\",\n});\nconst toExport = new scaleway.block.Volume(\"to_export\", {\n    iops: 5000,\n    name: \"to-export\",\n    \"export\": [{\n        bucket: \"snapshot-bucket-to-import\",\n        key: \"exports/my-snapshot.qcow2\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmy_import_bucket = scaleway.object.Bucket(\"my-import-bucket\", name=\"snapshot-bucket-to-import\")\nqcow_object = scaleway.object.Item(\"qcow-object\",\n    bucket=snapshot_bucket[\"name\"],\n    key=\"export/my-snapshot.qcow2\")\nto_export = scaleway.block.Volume(\"to_export\",\n    iops=5000,\n    name=\"to-export\",\n    export=[{\n        \"bucket\": \"snapshot-bucket-to-import\",\n        \"key\": \"exports/my-snapshot.qcow2\",\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 my_import_bucket = new Scaleway.Object.Bucket(\"my-import-bucket\", new()\n    {\n        Name = \"snapshot-bucket-to-import\",\n    });\n\n    var qcow_object = new Scaleway.Object.Item(\"qcow-object\", new()\n    {\n        Bucket = snapshot_bucket.Name,\n        Key = \"export/my-snapshot.qcow2\",\n    });\n\n    var toExport = new Scaleway.Block.Volume(\"to_export\", new()\n    {\n        Iops = 5000,\n        Name = \"to-export\",\n        Export = new[]\n        {\n            \n            {\n                { \"bucket\", \"snapshot-bucket-to-import\" },\n                { \"key\", \"exports/my-snapshot.qcow2\" },\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/block\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"my-import-bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"snapshot-bucket-to-import\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewItem(ctx, \"qcow-object\", \u0026object.ItemArgs{\n\t\t\tBucket: pulumi.Any(snapshot_bucket.Name),\n\t\t\tKey:    pulumi.String(\"export/my-snapshot.qcow2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = block.NewVolume(ctx, \"to_export\", \u0026block.VolumeArgs{\n\t\t\tIops: pulumi.Int(5000),\n\t\t\tName: pulumi.String(\"to-export\"),\n\t\t\tExport: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"bucket\": \"snapshot-bucket-to-import\",\n\t\t\t\t\t\"key\":    \"exports/my-snapshot.qcow2\",\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.Item;\nimport com.pulumi.scaleway.object.ItemArgs;\nimport com.pulumi.scaleway.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_import_bucket = new Bucket(\"my-import-bucket\", BucketArgs.builder()\n            .name(\"snapshot-bucket-to-import\")\n            .build());\n\n        var qcow_object = new Item(\"qcow-object\", ItemArgs.builder()\n            .bucket(snapshot_bucket.name())\n            .key(\"export/my-snapshot.qcow2\")\n            .build());\n\n        var toExport = new Volume(\"toExport\", VolumeArgs.builder()\n            .iops(5000)\n            .name(\"to-export\")\n            .export(List.of(Map.ofEntries(\n                Map.entry(\"bucket\", \"snapshot-bucket-to-import\"),\n                Map.entry(\"key\", \"exports/my-snapshot.qcow2\")\n            )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-import-bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: snapshot-bucket-to-import\n  qcow-object:\n    type: scaleway:object:Item\n    properties:\n      bucket: ${[\"snapshot-bucket\"].name}\n      key: export/my-snapshot.qcow2\n  toExport:\n    type: scaleway:block:Volume\n    name: to_export\n    properties:\n      iops: 5000\n      name: to-export\n      export:\n        - bucket: snapshot-bucket-to-import\n          key: exports/my-snapshot.qcow2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import the snapshot of a Block Storage volume using the zoned ID format (`{zone}/{id}`).\n\nbash\n\n```sh\n$ pulumi import scaleway:block/snapshot:Snapshot main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"export":{"$ref":"#/types/scaleway:block/SnapshotExport:SnapshotExport","description":"Use this block to export the volume as a QCOW file to Object Storage.\n"},"import":{"$ref":"#/types/scaleway:block/SnapshotImport:SnapshotImport","description":"Use this block to import a QCOW image from Object Storage to create a volume.\n"},"name":{"type":"string","description":"The name of the snapshot. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Scaleway Project the snapshot is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n"},"zone":{"type":"string","description":"). The zone in which the snapshot should be created.\n"}},"required":["name","projectId"],"inputProperties":{"export":{"$ref":"#/types/scaleway:block/SnapshotExport:SnapshotExport","description":"Use this block to export the volume as a QCOW file to Object Storage.\n"},"import":{"$ref":"#/types/scaleway:block/SnapshotImport:SnapshotImport","description":"Use this block to import a QCOW image from Object Storage to create a volume.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Scaleway Project the snapshot is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n"},"zone":{"type":"string","description":"). The zone in which the snapshot should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Snapshot resources.\n","properties":{"export":{"$ref":"#/types/scaleway:block/SnapshotExport:SnapshotExport","description":"Use this block to export the volume as a QCOW file to Object Storage.\n"},"import":{"$ref":"#/types/scaleway:block/SnapshotImport:SnapshotImport","description":"Use this block to import a QCOW image from Object Storage to create a volume.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Scaleway Project the snapshot is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n"},"zone":{"type":"string","description":"). The zone in which the snapshot should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/blockSnapshot:BlockSnapshot"}]},"scaleway:block/volume:Volume":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.block.Volume`\" pulumi-lang-dotnet=\"`scaleway.block.Volume`\" pulumi-lang-go=\"`block.Volume`\" pulumi-lang-python=\"`block.Volume`\" pulumi-lang-yaml=\"`scaleway.block.Volume`\" pulumi-lang-java=\"`scaleway.block.Volume`\"\u003e`scaleway.block.Volume`\u003c/span\u003e resource is used to create and manage Scaleway Block Storage volumes.\n\nRefer to the Block Storage [product documentation](https://www.scaleway.com/en/docs/block-storage/) and [API documentation](https://www.scaleway.com/en/developers/api/block/) for more information.\n\n## Example Usage\n\n### Create a Block Storage volume\n\nThe following command allows you to create a Block Storage volume of 20 GB with a 5000 [IOPS](https://www.scaleway.com/en/docs/block-storage/concepts/#iops).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst blockVolume = new scaleway.block.Volume(\"block_volume\", {\n    iops: 5000,\n    name: \"some-volume-name\",\n    sizeInGb: 20,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nblock_volume = scaleway.block.Volume(\"block_volume\",\n    iops=5000,\n    name=\"some-volume-name\",\n    size_in_gb=20)\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 blockVolume = new Scaleway.Block.Volume(\"block_volume\", new()\n    {\n        Iops = 5000,\n        Name = \"some-volume-name\",\n        SizeInGb = 20,\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/block\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := block.NewVolume(ctx, \"block_volume\", \u0026block.VolumeArgs{\n\t\t\tIops:     pulumi.Int(5000),\n\t\t\tName:     pulumi.String(\"some-volume-name\"),\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\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.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\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 blockVolume = new Volume(\"blockVolume\", VolumeArgs.builder()\n            .iops(5000)\n            .name(\"some-volume-name\")\n            .sizeInGb(20)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  blockVolume:\n    type: scaleway:block:Volume\n    name: block_volume\n    properties:\n      iops: 5000\n      name: some-volume-name\n      sizeInGb: 20\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With snapshot\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst base = new scaleway.block.Volume(\"base\", {\n    name: \"block-volume-base\",\n    iops: 5000,\n    sizeInGb: 20,\n});\nconst main = new scaleway.block.Snapshot(\"main\", {\n    name: \"block-volume-from-snapshot\",\n    volumeId: base.id,\n});\nconst mainVolume = new scaleway.block.Volume(\"main\", {\n    name: \"block-volume-from-snapshot\",\n    iops: 5000,\n    snapshotId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbase = scaleway.block.Volume(\"base\",\n    name=\"block-volume-base\",\n    iops=5000,\n    size_in_gb=20)\nmain = scaleway.block.Snapshot(\"main\",\n    name=\"block-volume-from-snapshot\",\n    volume_id=base.id)\nmain_volume = scaleway.block.Volume(\"main\",\n    name=\"block-volume-from-snapshot\",\n    iops=5000,\n    snapshot_id=main.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 @base = new Scaleway.Block.Volume(\"base\", new()\n    {\n        Name = \"block-volume-base\",\n        Iops = 5000,\n        SizeInGb = 20,\n    });\n\n    var main = new Scaleway.Block.Snapshot(\"main\", new()\n    {\n        Name = \"block-volume-from-snapshot\",\n        VolumeId = @base.Id,\n    });\n\n    var mainVolume = new Scaleway.Block.Volume(\"main\", new()\n    {\n        Name = \"block-volume-from-snapshot\",\n        Iops = 5000,\n        SnapshotId = 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/block\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbase, err := block.NewVolume(ctx, \"base\", \u0026block.VolumeArgs{\n\t\t\tName:     pulumi.String(\"block-volume-base\"),\n\t\t\tIops:     pulumi.Int(5000),\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\tmain, err := block.NewSnapshot(ctx, \"main\", \u0026block.SnapshotArgs{\n\t\t\tName:     pulumi.String(\"block-volume-from-snapshot\"),\n\t\t\tVolumeId: base.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = block.NewVolume(ctx, \"main\", \u0026block.VolumeArgs{\n\t\t\tName:       pulumi.String(\"block-volume-from-snapshot\"),\n\t\t\tIops:       pulumi.Int(5000),\n\t\t\tSnapshotId: main.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.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport com.pulumi.scaleway.block.Snapshot;\nimport com.pulumi.scaleway.block.SnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var base = new Volume(\"base\", VolumeArgs.builder()\n            .name(\"block-volume-base\")\n            .iops(5000)\n            .sizeInGb(20)\n            .build());\n\n        var main = new Snapshot(\"main\", SnapshotArgs.builder()\n            .name(\"block-volume-from-snapshot\")\n            .volumeId(base.id())\n            .build());\n\n        var mainVolume = new Volume(\"mainVolume\", VolumeArgs.builder()\n            .name(\"block-volume-from-snapshot\")\n            .iops(5000)\n            .snapshotId(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  base:\n    type: scaleway:block:Volume\n    properties:\n      name: block-volume-base\n      iops: 5000\n      sizeInGb: 20\n  main:\n    type: scaleway:block:Snapshot\n    properties:\n      name: block-volume-from-snapshot\n      volumeId: ${base.id}\n  mainVolume:\n    type: scaleway:block:Volume\n    name: main\n    properties:\n      name: block-volume-from-snapshot\n      iops: 5000\n      snapshotId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import a Block Storage volume using the zoned ID (`{zone}/{id}`) format.\n\nbash\n\n```sh\n$ pulumi import scaleway:block/volume:Volume block_volume fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"instanceVolumeId":{"type":"string","description":"The instance volume to create the block volume from"},"iops":{"type":"integer","description":"The maximum [IOPs](https://www.scaleway.com/en/docs/block-storage/concepts/#iops) expected, must match available options.\n"},"name":{"type":"string","description":"The name of the volume. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Project the volume is associated with.\n"},"sizeInGb":{"type":"integer","description":"The size of the volume in gigabytes.\n"},"snapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"zone":{"type":"string","description":"). The zone in which the volume should be created.\n"}},"required":["instanceVolumeId","iops","name","projectId","sizeInGb"],"inputProperties":{"instanceVolumeId":{"type":"string","description":"The instance volume to create the block volume from","willReplaceOnChanges":true},"iops":{"type":"integer","description":"The maximum [IOPs](https://www.scaleway.com/en/docs/block-storage/concepts/#iops) expected, must match available options.\n"},"name":{"type":"string","description":"The name of the volume. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Project the volume is associated with.\n","willReplaceOnChanges":true},"sizeInGb":{"type":"integer","description":"The size of the volume in gigabytes.\n"},"snapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"zone":{"type":"string","description":"). The zone in which the volume should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["iops"],"stateInputs":{"description":"Input properties used for looking up and filtering Volume resources.\n","properties":{"instanceVolumeId":{"type":"string","description":"The instance volume to create the block volume from","willReplaceOnChanges":true},"iops":{"type":"integer","description":"The maximum [IOPs](https://www.scaleway.com/en/docs/block-storage/concepts/#iops) expected, must match available options.\n"},"name":{"type":"string","description":"The name of the volume. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Project the volume is associated with.\n","willReplaceOnChanges":true},"sizeInGb":{"type":"integer","description":"The size of the volume in gigabytes.\n"},"snapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"zone":{"type":"string","description":"). The zone in which the volume should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/blockVolume:BlockVolume"}]},"scaleway:containers/container:Container":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Container`\" pulumi-lang-dotnet=\"`scaleway.containers.Container`\" pulumi-lang-go=\"`containers.Container`\" pulumi-lang-python=\"`containers.Container`\" pulumi-lang-yaml=\"`scaleway.containers.Container`\" pulumi-lang-java=\"`scaleway.containers.Container`\"\u003e`scaleway.containers.Container`\u003c/span\u003e resource allows you to create and manage [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Serverless Containers [product documentation](https://www.scaleway.com/en/docs/serverless/containers/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/) for more information.\n\nFor more information on the limitations of Serverless Containers, refer to the [dedicated documentation](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/).\n\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.containers.Namespace(\"main\", {\n    name: \"my-ns-test\",\n    description: \"test container\",\n});\nconst mainContainer = new scaleway.containers.Container(\"main\", {\n    name: \"my-container-02\",\n    description: \"environment variables test\",\n    tags: [\n        \"tag1\",\n        \"tag2\",\n    ],\n    namespaceId: main.id,\n    registryImage: pulumi.interpolate`${main.registryEndpoint}/alpine:test`,\n    port: 9997,\n    cpuLimit: 1024,\n    memoryLimit: 2048,\n    minScale: 3,\n    maxScale: 5,\n    timeout: 600,\n    maxConcurrency: 80,\n    privacy: \"private\",\n    protocol: \"http1\",\n    deploy: true,\n    commands: [\n        \"bash\",\n        \"-c\",\n        \"script.sh\",\n    ],\n    args: [\n        \"some\",\n        \"args\",\n    ],\n    environmentVariables: {\n        foo: \"var\",\n    },\n    secretEnvironmentVariables: {\n        key: \"secret\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\",\n    name=\"my-ns-test\",\n    description=\"test container\")\nmain_container = scaleway.containers.Container(\"main\",\n    name=\"my-container-02\",\n    description=\"environment variables test\",\n    tags=[\n        \"tag1\",\n        \"tag2\",\n    ],\n    namespace_id=main.id,\n    registry_image=main.registry_endpoint.apply(lambda registry_endpoint: f\"{registry_endpoint}/alpine:test\"),\n    port=9997,\n    cpu_limit=1024,\n    memory_limit=2048,\n    min_scale=3,\n    max_scale=5,\n    timeout=600,\n    max_concurrency=80,\n    privacy=\"private\",\n    protocol=\"http1\",\n    deploy=True,\n    commands=[\n        \"bash\",\n        \"-c\",\n        \"script.sh\",\n    ],\n    args=[\n        \"some\",\n        \"args\",\n    ],\n    environment_variables={\n        \"foo\": \"var\",\n    },\n    secret_environment_variables={\n        \"key\": \"secret\",\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.Containers.Namespace(\"main\", new()\n    {\n        Name = \"my-ns-test\",\n        Description = \"test container\",\n    });\n\n    var mainContainer = new Scaleway.Containers.Container(\"main\", new()\n    {\n        Name = \"my-container-02\",\n        Description = \"environment variables test\",\n        Tags = new[]\n        {\n            \"tag1\",\n            \"tag2\",\n        },\n        NamespaceId = main.Id,\n        RegistryImage = main.RegistryEndpoint.Apply(registryEndpoint =\u003e $\"{registryEndpoint}/alpine:test\"),\n        Port = 9997,\n        CpuLimit = 1024,\n        MemoryLimit = 2048,\n        MinScale = 3,\n        MaxScale = 5,\n        Timeout = 600,\n        MaxConcurrency = 80,\n        Privacy = \"private\",\n        Protocol = \"http1\",\n        Deploy = true,\n        Commands = new[]\n        {\n            \"bash\",\n            \"-c\",\n            \"script.sh\",\n        },\n        Args = new[]\n        {\n            \"some\",\n            \"args\",\n        },\n        EnvironmentVariables = \n        {\n            { \"foo\", \"var\" },\n        },\n        SecretEnvironmentVariables = \n        {\n            { \"key\", \"secret\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := containers.NewNamespace(ctx, \"main\", \u0026containers.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"my-ns-test\"),\n\t\t\tDescription: pulumi.String(\"test container\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"my-container-02\"),\n\t\t\tDescription: pulumi.String(\"environment variables test\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tag1\"),\n\t\t\t\tpulumi.String(\"tag2\"),\n\t\t\t},\n\t\t\tNamespaceId: main.ID(),\n\t\t\tRegistryImage: main.RegistryEndpoint.ApplyT(func(registryEndpoint string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/alpine:test\", registryEndpoint), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tPort:           pulumi.Int(9997),\n\t\t\tCpuLimit:       pulumi.Int(1024),\n\t\t\tMemoryLimit:    pulumi.Int(2048),\n\t\t\tMinScale:       pulumi.Int(3),\n\t\t\tMaxScale:       pulumi.Int(5),\n\t\t\tTimeout:        pulumi.Int(600),\n\t\t\tMaxConcurrency: pulumi.Int(80),\n\t\t\tPrivacy:        pulumi.String(\"private\"),\n\t\t\tProtocol:       pulumi.String(\"http1\"),\n\t\t\tDeploy:         pulumi.Bool(true),\n\t\t\tCommands: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"bash\"),\n\t\t\t\tpulumi.String(\"-c\"),\n\t\t\t\tpulumi.String(\"script.sh\"),\n\t\t\t},\n\t\t\tArgs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"some\"),\n\t\t\t\tpulumi.String(\"args\"),\n\t\t\t},\n\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"var\"),\n\t\t\t},\n\t\t\tSecretEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"secret\"),\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.containers.Namespace;\nimport com.pulumi.scaleway.containers.NamespaceArgs;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"my-ns-test\")\n            .description(\"test container\")\n            .build());\n\n        var mainContainer = new Container(\"mainContainer\", ContainerArgs.builder()\n            .name(\"my-container-02\")\n            .description(\"environment variables test\")\n            .tags(            \n                \"tag1\",\n                \"tag2\")\n            .namespaceId(main.id())\n            .registryImage(main.registryEndpoint().applyValue(_registryEndpoint -\u003e String.format(\"%s/alpine:test\", _registryEndpoint)))\n            .port(9997)\n            .cpuLimit(1024)\n            .memoryLimit(2048)\n            .minScale(3)\n            .maxScale(5)\n            .timeout(600)\n            .maxConcurrency(80)\n            .privacy(\"private\")\n            .protocol(\"http1\")\n            .deploy(true)\n            .commands(            \n                \"bash\",\n                \"-c\",\n                \"script.sh\")\n            .args(            \n                \"some\",\n                \"args\")\n            .environmentVariables(Map.of(\"foo\", \"var\"))\n            .secretEnvironmentVariables(Map.of(\"key\", \"secret\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n    properties:\n      name: my-ns-test\n      description: test container\n  mainContainer:\n    type: scaleway:containers:Container\n    name: main\n    properties:\n      name: my-container-02\n      description: environment variables test\n      tags:\n        - tag1\n        - tag2\n      namespaceId: ${main.id}\n      registryImage: ${main.registryEndpoint}/alpine:test\n      port: 9997\n      cpuLimit: 1024\n      memoryLimit: 2048\n      minScale: 3\n      maxScale: 5\n      timeout: 600\n      maxConcurrency: 80\n      privacy: private\n      protocol: http1\n      deploy: true\n      commands:\n        - bash\n        - -c\n        - script.sh\n      args:\n        - some\n        - args\n      environmentVariables:\n        foo: var\n      secretEnvironmentVariables:\n        key: secret\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Project to be referenced in the IAM policy\nconst _default = scaleway.account.getProject({\n    name: \"default\",\n});\n// IAM resources\nconst containerAuth = new scaleway.iam.Application(\"container_auth\", {name: \"container-auth\"});\nconst accessPrivateContainers = new scaleway.iam.Policy(\"access_private_containers\", {\n    applicationId: containerAuth.id,\n    rules: [{\n        projectIds: [_default.then(_default =\u003e _default.id)],\n        permissionSetNames: [\"ContainersPrivateAccess\"],\n    }],\n});\nconst apiKey = new scaleway.iam.ApiKey(\"api_key\", {applicationId: containerAuth.id});\n// Container resources\nconst _private = new scaleway.containers.Namespace(\"private\", {name: \"private-container-namespace\"});\nconst privateContainer = new scaleway.containers.Container(\"private\", {\n    namespaceId: _private.id,\n    registryImage: \"rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\",\n    privacy: \"private\",\n    deploy: true,\n});\nexport const secretKey = apiKey.secretKey;\nexport const containerEndpoint = privateContainer.domainName;\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Project to be referenced in the IAM policy\ndefault = scaleway.account.get_project(name=\"default\")\n# IAM resources\ncontainer_auth = scaleway.iam.Application(\"container_auth\", name=\"container-auth\")\naccess_private_containers = scaleway.iam.Policy(\"access_private_containers\",\n    application_id=container_auth.id,\n    rules=[{\n        \"project_ids\": [default.id],\n        \"permission_set_names\": [\"ContainersPrivateAccess\"],\n    }])\napi_key = scaleway.iam.ApiKey(\"api_key\", application_id=container_auth.id)\n# Container resources\nprivate = scaleway.containers.Namespace(\"private\", name=\"private-container-namespace\")\nprivate_container = scaleway.containers.Container(\"private\",\n    namespace_id=private.id,\n    registry_image=\"rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\",\n    privacy=\"private\",\n    deploy=True)\npulumi.export(\"secretKey\", api_key.secret_key)\npulumi.export(\"containerEndpoint\", private_container.domain_name)\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    // Project to be referenced in the IAM policy\n    var @default = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    // IAM resources\n    var containerAuth = new Scaleway.Iam.Application(\"container_auth\", new()\n    {\n        Name = \"container-auth\",\n    });\n\n    var accessPrivateContainers = new Scaleway.Iam.Policy(\"access_private_containers\", new()\n    {\n        ApplicationId = containerAuth.Id,\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                ProjectIds = new[]\n                {\n                    @default.Apply(@default =\u003e @default.Apply(getProjectResult =\u003e getProjectResult.Id)),\n                },\n                PermissionSetNames = new[]\n                {\n                    \"ContainersPrivateAccess\",\n                },\n            },\n        },\n    });\n\n    var apiKey = new Scaleway.Iam.ApiKey(\"api_key\", new()\n    {\n        ApplicationId = containerAuth.Id,\n    });\n\n    // Container resources\n    var @private = new Scaleway.Containers.Namespace(\"private\", new()\n    {\n        Name = \"private-container-namespace\",\n    });\n\n    var privateContainer = new Scaleway.Containers.Container(\"private\", new()\n    {\n        NamespaceId = @private.Id,\n        RegistryImage = \"rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\",\n        Privacy = \"private\",\n        Deploy = true,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"secretKey\"] = apiKey.SecretKey,\n        [\"containerEndpoint\"] = privateContainer.DomainName,\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/containers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Project to be referenced in the IAM policy\n\t\t_default, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// IAM resources\n\t\tcontainerAuth, err := iam.NewApplication(ctx, \"container_auth\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"container-auth\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"access_private_containers\", \u0026iam.PolicyArgs{\n\t\t\tApplicationId: containerAuth.ID(),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tProjectIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(_default.Id),\n\t\t\t\t\t},\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ContainersPrivateAccess\"),\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\tapiKey, err := iam.NewApiKey(ctx, \"api_key\", \u0026iam.ApiKeyArgs{\n\t\t\tApplicationId: containerAuth.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Container resources\n\t\tprivate, err := containers.NewNamespace(ctx, \"private\", \u0026containers.NamespaceArgs{\n\t\t\tName: pulumi.String(\"private-container-namespace\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateContainer, err := containers.NewContainer(ctx, \"private\", \u0026containers.ContainerArgs{\n\t\t\tNamespaceId:   private.ID(),\n\t\t\tRegistryImage: pulumi.String(\"rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\"),\n\t\t\tPrivacy:       pulumi.String(\"private\"),\n\t\t\tDeploy:        pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"secretKey\", apiKey.SecretKey)\n\t\tctx.Export(\"containerEndpoint\", privateContainer.DomainName)\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\nimport com.pulumi.scaleway.iam.ApiKey;\nimport com.pulumi.scaleway.iam.ApiKeyArgs;\nimport com.pulumi.scaleway.containers.Namespace;\nimport com.pulumi.scaleway.containers.NamespaceArgs;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\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        // Project to be referenced in the IAM policy\n        final var default = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        // IAM resources\n        var containerAuth = new Application(\"containerAuth\", ApplicationArgs.builder()\n            .name(\"container-auth\")\n            .build());\n\n        var accessPrivateContainers = new Policy(\"accessPrivateContainers\", PolicyArgs.builder()\n            .applicationId(containerAuth.id())\n            .rules(PolicyRuleArgs.builder()\n                .projectIds(default_.id())\n                .permissionSetNames(\"ContainersPrivateAccess\")\n                .build())\n            .build());\n\n        var apiKey = new ApiKey(\"apiKey\", ApiKeyArgs.builder()\n            .applicationId(containerAuth.id())\n            .build());\n\n        // Container resources\n        var private_ = new Namespace(\"private\", NamespaceArgs.builder()\n            .name(\"private-container-namespace\")\n            .build());\n\n        var privateContainer = new Container(\"privateContainer\", ContainerArgs.builder()\n            .namespaceId(private_.id())\n            .registryImage(\"rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\")\n            .privacy(\"private\")\n            .deploy(true)\n            .build());\n\n        ctx.export(\"secretKey\", apiKey.secretKey());\n        ctx.export(\"containerEndpoint\", privateContainer.domainName());\n    }\n}\n```\n```yaml\nresources:\n  # IAM resources\n  containerAuth:\n    type: scaleway:iam:Application\n    name: container_auth\n    properties:\n      name: container-auth\n  accessPrivateContainers:\n    type: scaleway:iam:Policy\n    name: access_private_containers\n    properties:\n      applicationId: ${containerAuth.id}\n      rules:\n        - projectIds:\n            - ${default.id}\n          permissionSetNames:\n            - ContainersPrivateAccess\n  apiKey:\n    type: scaleway:iam:ApiKey\n    name: api_key\n    properties:\n      applicationId: ${containerAuth.id}\n  # Container resources\n  private:\n    type: scaleway:containers:Namespace\n    properties:\n      name: private-container-namespace\n  privateContainer:\n    type: scaleway:containers:Container\n    name: private\n    properties:\n      namespaceId: ${private.id}\n      registryImage: rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\n      privacy: private\n      deploy: true\nvariables:\n  # Project to be referenced in the IAM policy\n  default:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\noutputs:\n  # Output the secret key and the container's endpoint for the curl command\n  secretKey: ${apiKey.secretKey}\n  containerEndpoint: ${privateContainer.domainName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along \n// with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n// Ideally, you would create the namespace separately.\n// For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n// in the referenced namespace.\nconst main = new scaleway.registry.Namespace(\"main\", {name: \"some-unique-name\"});\nconst nginx = scaleway.registry.getImageOutput({\n    namespaceId: main.id,\n    name: \"nginx\",\n});\nconst nginxLatest = nginx.apply(nginx =\u003e scaleway.registry.getImageTagOutput({\n    imageId: nginx.id,\n    name: \"latest\",\n}));\nconst mainNamespace = new scaleway.containers.Namespace(\"main\", {name: \"my-container-namespace\"});\nconst mainContainer = new scaleway.containers.Container(\"main\", {\n    name: \"nginx-latest\",\n    namespaceId: mainNamespace.id,\n    registryImage: pulumi.interpolate`${main.endpoint}/nginx:latest`,\n    registrySha256: nginxLatest.apply(nginxLatest =\u003e nginxLatest.digest),\n    port: 80,\n    deploy: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along \n# with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n# Ideally, you would create the namespace separately.\n# For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n# in the referenced namespace.\nmain = scaleway.registry.Namespace(\"main\", name=\"some-unique-name\")\nnginx = scaleway.registry.get_image_output(namespace_id=main.id,\n    name=\"nginx\")\nnginx_latest = nginx.apply(lambda nginx: scaleway.registry.get_image_tag_output(image_id=nginx.id,\n    name=\"latest\"))\nmain_namespace = scaleway.containers.Namespace(\"main\", name=\"my-container-namespace\")\nmain_container = scaleway.containers.Container(\"main\",\n    name=\"nginx-latest\",\n    namespace_id=main_namespace.id,\n    registry_image=main.endpoint.apply(lambda endpoint: f\"{endpoint}/nginx:latest\"),\n    registry_sha256=nginx_latest.digest,\n    port=80,\n    deploy=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    // When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along \n    // with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n    // Ideally, you would create the namespace separately.\n    // For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n    // in the referenced namespace.\n    var main = new Scaleway.Registry.Namespace(\"main\", new()\n    {\n        Name = \"some-unique-name\",\n    });\n\n    var nginx = Scaleway.Registry.GetImage.Invoke(new()\n    {\n        NamespaceId = main.Id,\n        Name = \"nginx\",\n    });\n\n    var nginxLatest = Scaleway.Registry.GetImageTag.Invoke(new()\n    {\n        ImageId = nginx.Apply(getImageResult =\u003e getImageResult.Id),\n        Name = \"latest\",\n    });\n\n    var mainNamespace = new Scaleway.Containers.Namespace(\"main\", new()\n    {\n        Name = \"my-container-namespace\",\n    });\n\n    var mainContainer = new Scaleway.Containers.Container(\"main\", new()\n    {\n        Name = \"nginx-latest\",\n        NamespaceId = mainNamespace.Id,\n        RegistryImage = main.Endpoint.Apply(endpoint =\u003e $\"{endpoint}/nginx:latest\"),\n        RegistrySha256 = nginxLatest.Apply(getImageTagResult =\u003e getImageTagResult.Digest),\n        Port = 80,\n        Deploy = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/containers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/registry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along\n\t\t// with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n\t\t// Ideally, you would create the namespace separately.\n\t\t// For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n\t\t// in the referenced namespace.\n\t\tmain, err := registry.NewNamespace(ctx, \"main\", \u0026registry.NamespaceArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnginx := registry.GetImageOutput(ctx, registry.GetImageOutputArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tName:        pulumi.String(\"nginx\"),\n\t\t}, nil)\n\t\tnginxLatest := nginx.ApplyT(func(nginx registry.GetImageResult) (registry.GetImageTagResult, error) {\n\t\t\treturn registry.GetImageTagResult(interface{}(registry.GetImageTag(ctx, \u0026registry.GetImageTagArgs{\n\t\t\t\tImageId: nginx.Id,\n\t\t\t\tName:    pulumi.StringRef(pulumi.StringRef(\"latest\")),\n\t\t\t}, nil))), nil\n\t\t}).(registry.GetImageTagResultOutput)\n\t\tmainNamespace, err := containers.NewNamespace(ctx, \"main\", \u0026containers.NamespaceArgs{\n\t\t\tName: pulumi.String(\"my-container-namespace\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"nginx-latest\"),\n\t\t\tNamespaceId: mainNamespace.ID(),\n\t\t\tRegistryImage: main.Endpoint.ApplyT(func(endpoint string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/nginx:latest\", endpoint), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tRegistrySha256: pulumi.String(nginxLatest.ApplyT(func(nginxLatest registry.GetImageTagResult) (*string, error) {\n\t\t\t\treturn \u0026nginxLatest.Digest, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPort:   pulumi.Int(80),\n\t\t\tDeploy: 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.registry.RegistryFunctions;\nimport com.pulumi.scaleway.registry.inputs.GetImageArgs;\nimport com.pulumi.scaleway.registry.inputs.GetImageTagArgs;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\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        // When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along \n        // with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n        // Ideally, you would create the namespace separately.\n        // For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n        // in the referenced namespace.\n        var main = new com.pulumi.scaleway.registry.Namespace(\"main\", com.pulumi.scaleway.registry.NamespaceArgs.builder()\n            .name(\"some-unique-name\")\n            .build());\n\n        final var nginx = RegistryFunctions.getImage(GetImageArgs.builder()\n            .namespaceId(main.id())\n            .name(\"nginx\")\n            .build());\n\n        final var nginxLatest = nginx.applyValue(_nginx -\u003e RegistryFunctions.getImageTag(GetImageTagArgs.builder()\n            .imageId(_nginx.id())\n            .name(\"latest\")\n            .build()));\n\n        var mainNamespace = new com.pulumi.scaleway.containers.Namespace(\"mainNamespace\", com.pulumi.scaleway.containers.NamespaceArgs.builder()\n            .name(\"my-container-namespace\")\n            .build());\n\n        var mainContainer = new Container(\"mainContainer\", ContainerArgs.builder()\n            .name(\"nginx-latest\")\n            .namespaceId(mainNamespace.id())\n            .registryImage(main.endpoint().applyValue(_endpoint -\u003e String.format(\"%s/nginx:latest\", _endpoint)))\n            .registrySha256(nginxLatest.applyValue(_nginxLatest -\u003e _nginxLatest.digest()))\n            .port(80)\n            .deploy(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along \n  # with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n\n  # Ideally, you would create the namespace separately.\n  # For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n  # in the referenced namespace.\n  main:\n    type: scaleway:registry:Namespace\n    properties:\n      name: some-unique-name\n  mainNamespace:\n    type: scaleway:containers:Namespace\n    name: main\n    properties:\n      name: my-container-namespace\n  mainContainer:\n    type: scaleway:containers:Container\n    name: main\n    properties:\n      name: nginx-latest\n      namespaceId: ${mainNamespace.id}\n      registryImage: ${main.endpoint}/nginx:latest\n      registrySha256: ${nginxLatest.digest}\n      port: 80\n      deploy: true\nvariables:\n  nginx:\n    fn::invoke:\n      function: scaleway:registry:getImage\n      arguments:\n        namespaceId: ${main.id}\n        name: nginx\n  nginxLatest:\n    fn::invoke:\n      function: scaleway:registry:getImageTag\n      arguments:\n        imageId: ${nginx.id}\n        name: latest\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\n\n## Protocols\n\nThe following protocols are supported:\n\n* \u003cspan pulumi-lang-nodejs=\"`h2c`\" pulumi-lang-dotnet=\"`H2c`\" pulumi-lang-go=\"`h2c`\" pulumi-lang-python=\"`h2c`\" pulumi-lang-yaml=\"`h2c`\" pulumi-lang-java=\"`h2c`\"\u003e`h2c`\u003c/span\u003e: HTTP/2 over TCP.\n* \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e: Hypertext Transfer Protocol.\n\n\u003e **Important:** Refer to the official [Apache documentation](https://httpd.apache.org/docs/2.4/howto/http2.html) for more information.\n\n## Privacy\n\nBy default, creating a container will make it \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e, meaning that anybody knowing the endpoint can execute it.\n\nA container can be made \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e with the privacy parameter.\n\nRefer to the [technical information](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8) for more information on container authentication.\n\n## Memory and vCPUs configuration\n\nThe vCPU represents a portion of the underlying, physical CPU that is assigned to a particular virtual machine (VM).\n\nYou can determine the computing resources to allocate to each container.\n\nThe \u003cspan pulumi-lang-nodejs=\"`memoryLimit`\" pulumi-lang-dotnet=\"`MemoryLimit`\" pulumi-lang-go=\"`memoryLimit`\" pulumi-lang-python=\"`memory_limit`\" pulumi-lang-yaml=\"`memoryLimit`\" pulumi-lang-java=\"`memoryLimit`\"\u003e`memory_limit`\u003c/span\u003e (in MB) must correspond with the right amount of vCPU. Refer to the table below to determine the right memory/vCPU combination.\n\n| Memory (in MB) | vCPU |\n|----------------|------|\n| 128            | 70m  |\n| 256            | 140m |\n| 512            | 280m |\n| 1024           | 560m |\n| 2048           | 1120 |\n| 3072           | 1680 |\n| 4096           | 2240 |\n\n~\u003e**Important:** Make sure to select the right resources, as you will be billed based on compute usage over time and the number of Containers executions.\nRefer to the [Serverless Containers pricing](https://www.scaleway.com/en/docs/faq/serverless-containers/#prices) for more information.\n\n## Health check configuration\n\nCustom health checks can be configured on the container.\n\nIt's possible to specify the HTTP path that the probe will listen to and the number of failures before considering the container as unhealthy.\nDuring a deployment, if a newly created container fails to pass the health check, the deployment is aborted.\nAs a result, lowering this value can help to reduce the time it takes to detect a failed deployment.\nThe period between health checks is also configurable.\n\nExample:\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.containers.Container(\"main\", {\n    name: \"my-container-02\",\n    namespaceId: mainScalewayContainerNamespace.id,\n    healthChecks: [{\n        https: [{\n            path: \"/ping\",\n        }],\n        failureThreshold: 40,\n        interval: \"5s\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Container(\"main\",\n    name=\"my-container-02\",\n    namespace_id=main_scaleway_container_namespace[\"id\"],\n    health_checks=[{\n        \"https\": [{\n            \"path\": \"/ping\",\n        }],\n        \"failure_threshold\": 40,\n        \"interval\": \"5s\",\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.Containers.Container(\"main\", new()\n    {\n        Name = \"my-container-02\",\n        NamespaceId = mainScalewayContainerNamespace.Id,\n        HealthChecks = new[]\n        {\n            new Scaleway.Containers.Inputs.ContainerHealthCheckArgs\n            {\n                Https = new[]\n                {\n                    new Scaleway.Containers.Inputs.ContainerHealthCheckHttpArgs\n                    {\n                        Path = \"/ping\",\n                    },\n                },\n                FailureThreshold = 40,\n                Interval = \"5s\",\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"my-container-02\"),\n\t\t\tNamespaceId: pulumi.Any(mainScalewayContainerNamespace.Id),\n\t\t\tHealthChecks: containers.ContainerHealthCheckArray{\n\t\t\t\t\u0026containers.ContainerHealthCheckArgs{\n\t\t\t\t\tHttps: containers.ContainerHealthCheckHttpArray{\n\t\t\t\t\t\t\u0026containers.ContainerHealthCheckHttpArgs{\n\t\t\t\t\t\t\tPath: pulumi.String(\"/ping\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tFailureThreshold: pulumi.Int(40),\n\t\t\t\t\tInterval:         pulumi.String(\"5s\"),\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.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.containers.inputs.ContainerHealthCheckArgs;\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 Container(\"main\", ContainerArgs.builder()\n            .name(\"my-container-02\")\n            .namespaceId(mainScalewayContainerNamespace.id())\n            .healthChecks(ContainerHealthCheckArgs.builder()\n                .https(ContainerHealthCheckHttpArgs.builder()\n                    .path(\"/ping\")\n                    .build())\n                .failureThreshold(40)\n                .interval(\"5s\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Container\n    properties:\n      name: my-container-02\n      namespaceId: ${mainScalewayContainerNamespace.id}\n      healthChecks:\n        - https:\n            - path: /ping\n          failureThreshold: 40\n          interval: 5s\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n~\u003e**Important:** Another probe type can be set to TCP with the API, but currently the SDK has not been updated with this parameter.\nThis is why the only probe that can be used here is the HTTP probe.\nRefer to the [Serverless Containers pricing](https://www.scaleway.com/en/docs/faq/serverless-containers/#prices) for more information.\n\n## Scaling option configuration\n\nScaling option block configuration allows you to choose which parameter will scale up/down containers.\nOptions are number of concurrent requests, CPU or memory usage.\nIt replaces current \u003cspan pulumi-lang-nodejs=\"`maxConcurrency`\" pulumi-lang-dotnet=\"`MaxConcurrency`\" pulumi-lang-go=\"`maxConcurrency`\" pulumi-lang-python=\"`max_concurrency`\" pulumi-lang-yaml=\"`maxConcurrency`\" pulumi-lang-java=\"`maxConcurrency`\"\u003e`max_concurrency`\u003c/span\u003e that has been deprecated.\n\nExample:\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.containers.Container(\"main\", {\n    name: \"my-container-02\",\n    namespaceId: mainScalewayContainerNamespace.id,\n    scalingOptions: [{\n        concurrentRequestsThreshold: 15,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Container(\"main\",\n    name=\"my-container-02\",\n    namespace_id=main_scaleway_container_namespace[\"id\"],\n    scaling_options=[{\n        \"concurrent_requests_threshold\": 15,\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.Containers.Container(\"main\", new()\n    {\n        Name = \"my-container-02\",\n        NamespaceId = mainScalewayContainerNamespace.Id,\n        ScalingOptions = new[]\n        {\n            new Scaleway.Containers.Inputs.ContainerScalingOptionArgs\n            {\n                ConcurrentRequestsThreshold = 15,\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"my-container-02\"),\n\t\t\tNamespaceId: pulumi.Any(mainScalewayContainerNamespace.Id),\n\t\t\tScalingOptions: containers.ContainerScalingOptionArray{\n\t\t\t\t\u0026containers.ContainerScalingOptionArgs{\n\t\t\t\t\tConcurrentRequestsThreshold: pulumi.Int(15),\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.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.containers.inputs.ContainerScalingOptionArgs;\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 Container(\"main\", ContainerArgs.builder()\n            .name(\"my-container-02\")\n            .namespaceId(mainScalewayContainerNamespace.id())\n            .scalingOptions(ContainerScalingOptionArgs.builder()\n                .concurrentRequestsThreshold(15)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Container\n    properties:\n      name: my-container-02\n      namespaceId: ${mainScalewayContainerNamespace.id}\n      scalingOptions:\n        - concurrentRequestsThreshold: 15\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n~\u003e**Important**: A maximum of one of these parameters may be set. Also, when \u003cspan pulumi-lang-nodejs=\"`cpuUsageThreshold`\" pulumi-lang-dotnet=\"`CpuUsageThreshold`\" pulumi-lang-go=\"`cpuUsageThreshold`\" pulumi-lang-python=\"`cpu_usage_threshold`\" pulumi-lang-yaml=\"`cpuUsageThreshold`\" pulumi-lang-java=\"`cpuUsageThreshold`\"\u003e`cpu_usage_threshold`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`memoryUsageThreshold`\" pulumi-lang-dotnet=\"`MemoryUsageThreshold`\" pulumi-lang-go=\"`memoryUsageThreshold`\" pulumi-lang-python=\"`memory_usage_threshold`\" pulumi-lang-yaml=\"`memoryUsageThreshold`\" pulumi-lang-java=\"`memoryUsageThreshold`\"\u003e`memory_usage_threshold`\u003c/span\u003e are used, \u003cspan pulumi-lang-nodejs=\"`minScale`\" pulumi-lang-dotnet=\"`MinScale`\" pulumi-lang-go=\"`minScale`\" pulumi-lang-python=\"`min_scale`\" pulumi-lang-yaml=\"`minScale`\" pulumi-lang-java=\"`minScale`\"\u003e`min_scale`\u003c/span\u003e can't be set to 0.\nRefer to the [API Reference](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-create-a-new-container) for more information.\n\n## Import\n\nContainers can be imported using, `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:containers/container:Container main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments passed to the command specified in the \"command\" field. These override the default arguments from the container image, and behave like command-line parameters.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Command executed when the container starts. This overrides the default command defined in the container image. This is usually the main executable, or entry point script to run.\n"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container.\n"},"cronStatus":{"type":"string","description":"The cron status of the container.\n"},"deploy":{"type":"boolean","description":"Boolean indicating whether the container is in a production environment.\n"},"description":{"type":"string","description":"The description of the container.\n"},"domainName":{"type":"string","description":"The native domain name of the container\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#environment-variables) of the container.\n"},"errorMessage":{"type":"string","description":"The error message of the container.\n"},"healthChecks":{"type":"array","items":{"$ref":"#/types/scaleway:containers/ContainerHealthCheck:ContainerHealthCheck"},"description":"Health check configuration block of the container.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"localStorageLimit":{"type":"integer","description":"Local storage limit of the container (in MB)\n"},"maxConcurrency":{"type":"integer","description":"The maximum number of simultaneous requests your container can handle at the same time. Use `scaling_option.concurrent_requests_threshold` instead.\n","deprecationMessage":"Use scaling_option.concurrent_requests_threshold instead. This attribute will be removed."},"maxScale":{"type":"integer","description":"The maximum number of instances this container can scale to.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each container.\n"},"minScale":{"type":"integer","description":"The minimum number of container instances running continuously.\n"},"name":{"type":"string","description":"The unique name of the container name.\n"},"namespaceId":{"type":"string","description":"The Containers namespace ID of the container.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the container.\n"},"port":{"type":"integer","description":"The port to expose the container.\n"},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your container. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the container is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\nNote that if you want to use your own configuration, you must consult our configuration [restrictions](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/#configuration-restrictions) section.\n"},"protocol":{"type":"string","description":"The communication [protocol](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`h2c`\" pulumi-lang-dotnet=\"`H2c`\" pulumi-lang-go=\"`h2c`\" pulumi-lang-python=\"`h2c`\" pulumi-lang-yaml=\"`h2c`\" pulumi-lang-java=\"`h2c`\"\u003e`h2c`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container was created.\n"},"registryImage":{"type":"string","description":"The registry image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`)\n"},"registrySha256":{"type":"string","description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n"},"sandbox":{"type":"string","description":"Execution environment of the container.\n"},"scalingOptions":{"type":"array","items":{"$ref":"#/types/scaleway:containers/ContainerScalingOption:ContainerScalingOption"},"description":"Configuration block used to decide when to scale up or down. Possible values:\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#secrets) of the container.\n","secret":true},"status":{"type":"string","description":"The container status.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the container.\n"},"timeout":{"type":"integer","description":"The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e seconds.\n"}},"required":["cpuLimit","cronStatus","domainName","environmentVariables","errorMessage","healthChecks","localStorageLimit","maxConcurrency","maxScale","memoryLimit","minScale","name","namespaceId","port","registryImage","sandbox","scalingOptions","status","timeout"],"inputProperties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments passed to the command specified in the \"command\" field. These override the default arguments from the container image, and behave like command-line parameters.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Command executed when the container starts. This overrides the default command defined in the container image. This is usually the main executable, or entry point script to run.\n"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container.\n"},"deploy":{"type":"boolean","description":"Boolean indicating whether the container is in a production environment.\n"},"description":{"type":"string","description":"The description of the container.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#environment-variables) of the container.\n"},"healthChecks":{"type":"array","items":{"$ref":"#/types/scaleway:containers/ContainerHealthCheck:ContainerHealthCheck"},"description":"Health check configuration block of the container.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"localStorageLimit":{"type":"integer","description":"Local storage limit of the container (in MB)\n"},"maxConcurrency":{"type":"integer","description":"The maximum number of simultaneous requests your container can handle at the same time. Use `scaling_option.concurrent_requests_threshold` instead.\n","deprecationMessage":"Use scaling_option.concurrent_requests_threshold instead. This attribute will be removed."},"maxScale":{"type":"integer","description":"The maximum number of instances this container can scale to.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each container.\n"},"minScale":{"type":"integer","description":"The minimum number of container instances running continuously.\n"},"name":{"type":"string","description":"The unique name of the container name.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The Containers namespace ID of the container.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the container.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The port to expose the container.\n"},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your container. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the container is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\nNote that if you want to use your own configuration, you must consult our configuration [restrictions](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/#configuration-restrictions) section.\n"},"protocol":{"type":"string","description":"The communication [protocol](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`h2c`\" pulumi-lang-dotnet=\"`H2c`\" pulumi-lang-go=\"`h2c`\" pulumi-lang-python=\"`h2c`\" pulumi-lang-yaml=\"`h2c`\" pulumi-lang-java=\"`h2c`\"\u003e`h2c`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container was created.\n","willReplaceOnChanges":true},"registryImage":{"type":"string","description":"The registry image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`)\n"},"registrySha256":{"type":"string","description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n"},"sandbox":{"type":"string","description":"Execution environment of the container.\n"},"scalingOptions":{"type":"array","items":{"$ref":"#/types/scaleway:containers/ContainerScalingOption:ContainerScalingOption"},"description":"Configuration block used to decide when to scale up or down. Possible values:\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#secrets) of the container.\n","secret":true},"status":{"type":"string","description":"The container status.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the container.\n"},"timeout":{"type":"integer","description":"The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e seconds.\n"}},"requiredInputs":["namespaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Container resources.\n","properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments passed to the command specified in the \"command\" field. These override the default arguments from the container image, and behave like command-line parameters.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Command executed when the container starts. This overrides the default command defined in the container image. This is usually the main executable, or entry point script to run.\n"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container.\n"},"cronStatus":{"type":"string","description":"The cron status of the container.\n"},"deploy":{"type":"boolean","description":"Boolean indicating whether the container is in a production environment.\n"},"description":{"type":"string","description":"The description of the container.\n"},"domainName":{"type":"string","description":"The native domain name of the container\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#environment-variables) of the container.\n"},"errorMessage":{"type":"string","description":"The error message of the container.\n"},"healthChecks":{"type":"array","items":{"$ref":"#/types/scaleway:containers/ContainerHealthCheck:ContainerHealthCheck"},"description":"Health check configuration block of the container.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"localStorageLimit":{"type":"integer","description":"Local storage limit of the container (in MB)\n"},"maxConcurrency":{"type":"integer","description":"The maximum number of simultaneous requests your container can handle at the same time. Use `scaling_option.concurrent_requests_threshold` instead.\n","deprecationMessage":"Use scaling_option.concurrent_requests_threshold instead. This attribute will be removed."},"maxScale":{"type":"integer","description":"The maximum number of instances this container can scale to.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each container.\n"},"minScale":{"type":"integer","description":"The minimum number of container instances running continuously.\n"},"name":{"type":"string","description":"The unique name of the container name.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The Containers namespace ID of the container.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the container.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The port to expose the container.\n"},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your container. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the container is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\nNote that if you want to use your own configuration, you must consult our configuration [restrictions](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/#configuration-restrictions) section.\n"},"protocol":{"type":"string","description":"The communication [protocol](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`h2c`\" pulumi-lang-dotnet=\"`H2c`\" pulumi-lang-go=\"`h2c`\" pulumi-lang-python=\"`h2c`\" pulumi-lang-yaml=\"`h2c`\" pulumi-lang-java=\"`h2c`\"\u003e`h2c`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container was created.\n","willReplaceOnChanges":true},"registryImage":{"type":"string","description":"The registry image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`)\n"},"registrySha256":{"type":"string","description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n"},"sandbox":{"type":"string","description":"Execution environment of the container.\n"},"scalingOptions":{"type":"array","items":{"$ref":"#/types/scaleway:containers/ContainerScalingOption:ContainerScalingOption"},"description":"Configuration block used to decide when to scale up or down. Possible values:\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#secrets) of the container.\n","secret":true},"status":{"type":"string","description":"The container status.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the container.\n"},"timeout":{"type":"integer","description":"The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e seconds.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/container:Container"}]},"scaleway:containers/cron:Cron":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Cron`\" pulumi-lang-dotnet=\"`scaleway.containers.Cron`\" pulumi-lang-go=\"`containers.Cron`\" pulumi-lang-python=\"`containers.Cron`\" pulumi-lang-yaml=\"`scaleway.containers.Cron`\" pulumi-lang-java=\"`scaleway.containers.Cron`\"\u003e`scaleway.containers.Cron`\u003c/span\u003e resource allows you to create and manage CRON triggers for Scaleway [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Containers CRON triggers [documentation](https://www.scaleway.com/en/docs/serverless/containers/how-to/add-trigger-to-a-container/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-triggers-list-all-triggers) for more information.\n\n## Example Usage\n\nThe following command allows you to add a CRON trigger to a Serverless Container.\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.containers.Namespace(\"main\", {});\nconst mainContainer = new scaleway.containers.Container(\"main\", {\n    name: \"my-container-with-cron-tf\",\n    namespaceId: main.id,\n});\nconst mainCron = new scaleway.containers.Cron(\"main\", {\n    containerId: mainContainer.id,\n    name: \"my-cron-name\",\n    schedule: \"5 4 1 * *\",\n    args: JSON.stringify({\n        address: {\n            city: \"Paris\",\n            country: \"FR\",\n        },\n        age: 23,\n        firstName: \"John\",\n        isAlive: true,\n        lastName: \"Smith\",\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\")\nmain_container = scaleway.containers.Container(\"main\",\n    name=\"my-container-with-cron-tf\",\n    namespace_id=main.id)\nmain_cron = scaleway.containers.Cron(\"main\",\n    container_id=main_container.id,\n    name=\"my-cron-name\",\n    schedule=\"5 4 1 * *\",\n    args=json.dumps({\n        \"address\": {\n            \"city\": \"Paris\",\n            \"country\": \"FR\",\n        },\n        \"age\": 23,\n        \"firstName\": \"John\",\n        \"isAlive\": True,\n        \"lastName\": \"Smith\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Containers.Namespace(\"main\");\n\n    var mainContainer = new Scaleway.Containers.Container(\"main\", new()\n    {\n        Name = \"my-container-with-cron-tf\",\n        NamespaceId = main.Id,\n    });\n\n    var mainCron = new Scaleway.Containers.Cron(\"main\", new()\n    {\n        ContainerId = mainContainer.Id,\n        Name = \"my-cron-name\",\n        Schedule = \"5 4 1 * *\",\n        Args = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"address\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"city\"] = \"Paris\",\n                [\"country\"] = \"FR\",\n            },\n            [\"age\"] = 23,\n            [\"firstName\"] = \"John\",\n            [\"isAlive\"] = true,\n            [\"lastName\"] = \"Smith\",\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := containers.NewNamespace(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainContainer, err := containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"my-container-with-cron-tf\"),\n\t\t\tNamespaceId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"address\": map[string]interface{}{\n\t\t\t\t\"city\":    \"Paris\",\n\t\t\t\t\"country\": \"FR\",\n\t\t\t},\n\t\t\t\"age\":       23,\n\t\t\t\"firstName\": \"John\",\n\t\t\t\"isAlive\":   true,\n\t\t\t\"lastName\":  \"Smith\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = containers.NewCron(ctx, \"main\", \u0026containers.CronArgs{\n\t\t\tContainerId: mainContainer.ID(),\n\t\t\tName:        pulumi.String(\"my-cron-name\"),\n\t\t\tSchedule:    pulumi.String(\"5 4 1 * *\"),\n\t\t\tArgs:        pulumi.String(json0),\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.containers.Namespace;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.containers.Cron;\nimport com.pulumi.scaleway.containers.CronArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 Namespace(\"main\");\n\n        var mainContainer = new Container(\"mainContainer\", ContainerArgs.builder()\n            .name(\"my-container-with-cron-tf\")\n            .namespaceId(main.id())\n            .build());\n\n        var mainCron = new Cron(\"mainCron\", CronArgs.builder()\n            .containerId(mainContainer.id())\n            .name(\"my-cron-name\")\n            .schedule(\"5 4 1 * *\")\n            .args(serializeJson(\n                jsonObject(\n                    jsonProperty(\"address\", jsonObject(\n                        jsonProperty(\"city\", \"Paris\"),\n                        jsonProperty(\"country\", \"FR\")\n                    )),\n                    jsonProperty(\"age\", 23),\n                    jsonProperty(\"firstName\", \"John\"),\n                    jsonProperty(\"isAlive\", true),\n                    jsonProperty(\"lastName\", \"Smith\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n  mainContainer:\n    type: scaleway:containers:Container\n    name: main\n    properties:\n      name: my-container-with-cron-tf\n      namespaceId: ${main.id}\n  mainCron:\n    type: scaleway:containers:Cron\n    name: main\n    properties:\n      containerId: ${mainContainer.id}\n      name: my-cron-name\n      schedule: 5 4 1 * *\n      args:\n        fn::toJSON:\n          address:\n            city: Paris\n            country: FR\n          age: 23\n          firstName: John\n          isAlive: true\n          lastName: Smith\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nContainer Cron can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:containers/cron:Cron main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your container’s event object\n"},"containerId":{"type":"string","description":"The unique identifier of the container to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the container CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the CRON trigger is created.\n"},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/containers/reference-content/cron-schedules/) for more information).\n"},"status":{"type":"string","description":"The CRON status.\n"}},"required":["args","containerId","name","schedule","status"],"inputProperties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your container’s event object\n"},"containerId":{"type":"string","description":"The unique identifier of the container to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the container CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the CRON trigger is created.\n","willReplaceOnChanges":true},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/containers/reference-content/cron-schedules/) for more information).\n"}},"requiredInputs":["args","containerId","schedule"],"stateInputs":{"description":"Input properties used for looking up and filtering Cron resources.\n","properties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your container’s event object\n"},"containerId":{"type":"string","description":"The unique identifier of the container to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the container CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the CRON trigger is created.\n","willReplaceOnChanges":true},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/containers/reference-content/cron-schedules/) for more information).\n"},"status":{"type":"string","description":"The CRON status.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/containerCron:ContainerCron"}]},"scaleway:containers/domain:Domain":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Domain`\" pulumi-lang-dotnet=\"`scaleway.containers.Domain`\" pulumi-lang-go=\"`containers.Domain`\" pulumi-lang-python=\"`containers.Domain`\" pulumi-lang-yaml=\"`scaleway.containers.Domain`\" pulumi-lang-java=\"`scaleway.containers.Domain`\"\u003e`scaleway.containers.Domain`\u003c/span\u003e resource allows you to create and manage domain name bindings for Scaleway [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Containers domain [documentation](https://www.scaleway.com/en/docs/serverless-containers/how-to/add-a-custom-domain-to-a-container/) and the [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-domains-list-all-domain-name-bindings) for more information.\n\n## Example Usage\n\nThe commands below shows how to bind a custom domain name to a container.\n\n### Simple\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst app = new scaleway.containers.Container(\"app\", {});\nconst appDomain = new scaleway.containers.Domain(\"app\", {\n    containerId: app.id,\n    hostname: \"container.domain.tld\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\napp = scaleway.containers.Container(\"app\")\napp_domain = scaleway.containers.Domain(\"app\",\n    container_id=app.id,\n    hostname=\"container.domain.tld\")\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 app = new Scaleway.Containers.Container(\"app\");\n\n    var appDomain = new Scaleway.Containers.Domain(\"app\", new()\n    {\n        ContainerId = app.Id,\n        Hostname = \"container.domain.tld\",\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapp, err := containers.NewContainer(ctx, \"app\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containers.NewDomain(ctx, \"app\", \u0026containers.DomainArgs{\n\t\t\tContainerId: app.ID(),\n\t\t\tHostname:    pulumi.String(\"container.domain.tld\"),\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.containers.Container;\nimport com.pulumi.scaleway.containers.Domain;\nimport com.pulumi.scaleway.containers.DomainArgs;\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 app = new Container(\"app\");\n\n        var appDomain = new Domain(\"appDomain\", DomainArgs.builder()\n            .containerId(app.id())\n            .hostname(\"container.domain.tld\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  app:\n    type: scaleway:containers:Container\n  appDomain:\n    type: scaleway:containers:Domain\n    name: app\n    properties:\n      containerId: ${app.id}\n      hostname: container.domain.tld\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Complete example with domain\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.containers.Namespace(\"main\", {\n    name: \"my-ns-test\",\n    description: \"test container\",\n});\nconst app = new scaleway.containers.Container(\"app\", {\n    name: \"app\",\n    namespaceId: main.id,\n    registryImage: pulumi.interpolate`${main.registryEndpoint}/nginx:alpine`,\n    port: 80,\n    cpuLimit: 140,\n    memoryLimit: 256,\n    minScale: 1,\n    maxScale: 1,\n    timeout: 600,\n    maxConcurrency: 80,\n    privacy: \"public\",\n    protocol: \"http1\",\n    deploy: true,\n});\nconst appRecord = new scaleway.domain.Record(\"app\", {\n    dnsZone: \"domain.tld\",\n    name: \"subdomain\",\n    type: \"CNAME\",\n    data: pulumi.interpolate`${app.domainName}.`,\n    ttl: 3600,\n});\nconst appDomain = new scaleway.containers.Domain(\"app\", {\n    containerId: app.id,\n    hostname: pulumi.interpolate`${appRecord.name}.${appRecord.dnsZone}`,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\",\n    name=\"my-ns-test\",\n    description=\"test container\")\napp = scaleway.containers.Container(\"app\",\n    name=\"app\",\n    namespace_id=main.id,\n    registry_image=main.registry_endpoint.apply(lambda registry_endpoint: f\"{registry_endpoint}/nginx:alpine\"),\n    port=80,\n    cpu_limit=140,\n    memory_limit=256,\n    min_scale=1,\n    max_scale=1,\n    timeout=600,\n    max_concurrency=80,\n    privacy=\"public\",\n    protocol=\"http1\",\n    deploy=True)\napp_record = scaleway.domain.Record(\"app\",\n    dns_zone=\"domain.tld\",\n    name=\"subdomain\",\n    type=\"CNAME\",\n    data=app.domain_name.apply(lambda domain_name: f\"{domain_name}.\"),\n    ttl=3600)\napp_domain = scaleway.containers.Domain(\"app\",\n    container_id=app.id,\n    hostname=pulumi.Output.all(\n        name=app_record.name,\n        dns_zone=app_record.dns_zone\n).apply(lambda resolved_outputs: f\"{resolved_outputs['name']}.{resolved_outputs['dns_zone']}\")\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.Containers.Namespace(\"main\", new()\n    {\n        Name = \"my-ns-test\",\n        Description = \"test container\",\n    });\n\n    var app = new Scaleway.Containers.Container(\"app\", new()\n    {\n        Name = \"app\",\n        NamespaceId = main.Id,\n        RegistryImage = main.RegistryEndpoint.Apply(registryEndpoint =\u003e $\"{registryEndpoint}/nginx:alpine\"),\n        Port = 80,\n        CpuLimit = 140,\n        MemoryLimit = 256,\n        MinScale = 1,\n        MaxScale = 1,\n        Timeout = 600,\n        MaxConcurrency = 80,\n        Privacy = \"public\",\n        Protocol = \"http1\",\n        Deploy = true,\n    });\n\n    var appRecord = new Scaleway.Domain.Record(\"app\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"subdomain\",\n        Type = \"CNAME\",\n        Data = app.DomainName.Apply(domainName =\u003e $\"{domainName}.\"),\n        Ttl = 3600,\n    });\n\n    var appDomain = new Scaleway.Containers.Domain(\"app\", new()\n    {\n        ContainerId = app.Id,\n        Hostname = Output.Tuple(appRecord.Name, appRecord.DnsZone).Apply(values =\u003e\n        {\n            var name = values.Item1;\n            var dnsZone = values.Item2;\n            return $\"{name}.{dnsZone}\";\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/containers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/domain\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := containers.NewNamespace(ctx, \"main\", \u0026containers.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"my-ns-test\"),\n\t\t\tDescription: pulumi.String(\"test container\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapp, err := containers.NewContainer(ctx, \"app\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"app\"),\n\t\t\tNamespaceId: main.ID(),\n\t\t\tRegistryImage: main.RegistryEndpoint.ApplyT(func(registryEndpoint string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/nginx:alpine\", registryEndpoint), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tPort:           pulumi.Int(80),\n\t\t\tCpuLimit:       pulumi.Int(140),\n\t\t\tMemoryLimit:    pulumi.Int(256),\n\t\t\tMinScale:       pulumi.Int(1),\n\t\t\tMaxScale:       pulumi.Int(1),\n\t\t\tTimeout:        pulumi.Int(600),\n\t\t\tMaxConcurrency: pulumi.Int(80),\n\t\t\tPrivacy:        pulumi.String(\"public\"),\n\t\t\tProtocol:       pulumi.String(\"http1\"),\n\t\t\tDeploy:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tappRecord, err := domain.NewRecord(ctx, \"app\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"subdomain\"),\n\t\t\tType:    pulumi.String(\"CNAME\"),\n\t\t\tData: app.DomainName.ApplyT(func(domainName string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v.\", domainName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tTtl: pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containers.NewDomain(ctx, \"app\", \u0026containers.DomainArgs{\n\t\t\tContainerId: app.ID(),\n\t\t\tHostname: pulumi.All(appRecord.Name, appRecord.DnsZone).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tname := _args[0].(string)\n\t\t\t\tdnsZone := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"%v.%v\", name, dnsZone), nil\n\t\t\t}).(pulumi.StringOutput),\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.containers.Namespace;\nimport com.pulumi.scaleway.containers.NamespaceArgs;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.scaleway.containers.Domain;\nimport com.pulumi.scaleway.containers.DomainArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"my-ns-test\")\n            .description(\"test container\")\n            .build());\n\n        var app = new Container(\"app\", ContainerArgs.builder()\n            .name(\"app\")\n            .namespaceId(main.id())\n            .registryImage(main.registryEndpoint().applyValue(_registryEndpoint -\u003e String.format(\"%s/nginx:alpine\", _registryEndpoint)))\n            .port(80)\n            .cpuLimit(140)\n            .memoryLimit(256)\n            .minScale(1)\n            .maxScale(1)\n            .timeout(600)\n            .maxConcurrency(80)\n            .privacy(\"public\")\n            .protocol(\"http1\")\n            .deploy(true)\n            .build());\n\n        var appRecord = new Record(\"appRecord\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"subdomain\")\n            .type(\"CNAME\")\n            .data(app.domainName().applyValue(_domainName -\u003e String.format(\"%s.\", _domainName)))\n            .ttl(3600)\n            .build());\n\n        var appDomain = new Domain(\"appDomain\", DomainArgs.builder()\n            .containerId(app.id())\n            .hostname(Output.tuple(appRecord.name(), appRecord.dnsZone()).applyValue(values -\u003e {\n                var name = values.t1;\n                var dnsZone = values.t2;\n                return String.format(\"%s.%s\", name,dnsZone);\n            }))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n    properties:\n      name: my-ns-test\n      description: test container\n  app:\n    type: scaleway:containers:Container\n    properties:\n      name: app\n      namespaceId: ${main.id}\n      registryImage: ${main.registryEndpoint}/nginx:alpine\n      port: 80\n      cpuLimit: 140\n      memoryLimit: 256\n      minScale: 1\n      maxScale: 1\n      timeout: 600\n      maxConcurrency: 80\n      privacy: public\n      protocol: http1\n      deploy: true\n  appRecord:\n    type: scaleway:domain:Record\n    name: app\n    properties:\n      dnsZone: domain.tld\n      name: subdomain\n      type: CNAME\n      data: ${app.domainName}.\n      ttl: 3600\n  appDomain:\n    type: scaleway:containers:Domain\n    name: app\n    properties:\n      containerId: ${app.id}\n      hostname: ${appRecord.name}.${appRecord.dnsZone}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nContainer domain binding can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:containers/domain:Domain main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n"},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container exists.\n"},"url":{"type":"string","description":"The URL used to query the container.\n"}},"required":["containerId","hostname","url"],"inputProperties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container exists.\n","willReplaceOnChanges":true}},"requiredInputs":["containerId","hostname"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container exists.\n","willReplaceOnChanges":true},"url":{"type":"string","description":"The URL used to query the container.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/containerDomain:ContainerDomain"}]},"scaleway:containers/namespace:Namespace":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Namespace`\" pulumi-lang-dotnet=\"`scaleway.containers.Namespace`\" pulumi-lang-go=\"`containers.Namespace`\" pulumi-lang-python=\"`containers.Namespace`\" pulumi-lang-yaml=\"`scaleway.containers.Namespace`\" pulumi-lang-java=\"`scaleway.containers.Namespace`\"\u003e`scaleway.containers.Namespace`\u003c/span\u003e resource allows you to\nfor Scaleway [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Containers namespace [documentation](https://www.scaleway.com/en/docs/serverless/containers/how-to/create-manage-delete-containers-namespace/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-namespaces-list-all-your-namespaces) for more information.\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.containers.Namespace(\"main\", {\n    name: \"main-container-namespace\",\n    description: \"Main container namespace\",\n    tags: [\n        \"tag1\",\n        \"tag2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\",\n    name=\"main-container-namespace\",\n    description=\"Main container namespace\",\n    tags=[\n        \"tag1\",\n        \"tag2\",\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.Containers.Namespace(\"main\", new()\n    {\n        Name = \"main-container-namespace\",\n        Description = \"Main container namespace\",\n        Tags = new[]\n        {\n            \"tag1\",\n            \"tag2\",\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containers.NewNamespace(ctx, \"main\", \u0026containers.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"main-container-namespace\"),\n\t\t\tDescription: pulumi.String(\"Main container namespace\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tag1\"),\n\t\t\t\tpulumi.String(\"tag2\"),\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.containers.Namespace;\nimport com.pulumi.scaleway.containers.NamespaceArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"main-container-namespace\")\n            .description(\"Main container namespace\")\n            .tags(            \n                \"tag1\",\n                \"tag2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n    properties:\n      name: main-container-namespace\n      description: Main container namespace\n      tags:\n        - tag1\n        - tag2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nContainers namespaces can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:containers/namespace:Namespace main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Containers of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"destroyRegistry":{"type":"boolean","description":"Destroy registry on deletion","deprecationMessage":"Registry namespace is automatically destroyed with namespace"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Containers namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n"},"organizationId":{"type":"string","description":"The Organization ID with which the namespace is associated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n"},"registryEndpoint":{"type":"string","description":"The registry endpoint of the namespace.\n"},"registryNamespaceId":{"type":"string","description":"The registry namespace ID of the namespace.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"required":["name","organizationId","projectId","registryEndpoint","registryNamespaceId"],"inputProperties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Containers of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"destroyRegistry":{"type":"boolean","description":"Destroy registry on deletion","deprecationMessage":"Registry namespace is automatically destroyed with namespace"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Containers namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Namespace resources.\n","properties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Containers of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"destroyRegistry":{"type":"boolean","description":"Destroy registry on deletion","deprecationMessage":"Registry namespace is automatically destroyed with namespace"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Containers namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n","willReplaceOnChanges":true},"organizationId":{"type":"string","description":"The Organization ID with which the namespace is associated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"registryEndpoint":{"type":"string","description":"The registry endpoint of the namespace.\n"},"registryNamespaceId":{"type":"string","description":"The registry namespace ID of the namespace.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/containerNamespace:ContainerNamespace"}]},"scaleway:containers/token:Token":{"description":"\u003e **Important:** The resource \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Token`\" pulumi-lang-dotnet=\"`scaleway.containers.Token`\" pulumi-lang-go=\"`containers.Token`\" pulumi-lang-python=\"`containers.Token`\" pulumi-lang-yaml=\"`scaleway.containers.Token`\" pulumi-lang-java=\"`scaleway.containers.Token`\"\u003e`scaleway.containers.Token`\u003c/span\u003e has been deprecated and will no longer be supported in v1 of the API.\nPlease use IAM authentication instead. You will find an implementation example in the IAM authentication section of the Container documentation.\n\nThe \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Token`\" pulumi-lang-dotnet=\"`scaleway.containers.Token`\" pulumi-lang-go=\"`containers.Token`\" pulumi-lang-python=\"`containers.Token`\" pulumi-lang-yaml=\"`scaleway.containers.Token`\" pulumi-lang-java=\"`scaleway.containers.Token`\"\u003e`scaleway.containers.Token`\u003c/span\u003e resource allows you to create and manage authentication tokens for Scaleway [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Containers tokens [documentation](https://www.scaleway.com/en/docs/serverless/containers/how-to/create-auth-token-from-console/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-tokens-list-all-tokens) for more information.\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.containers.Namespace(\"main\", {name: \"test-container-token-ns\"});\nconst mainContainer = new scaleway.containers.Container(\"main\", {namespaceId: main.id});\n// Namespace Token\nconst namespace = new scaleway.containers.Token(\"namespace\", {\n    namespaceId: main.id,\n    expiresAt: \"2022-10-18T11:35:15+02:00\",\n});\n// Container Token\nconst container = new scaleway.containers.Token(\"container\", {containerId: mainContainer.id});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\", name=\"test-container-token-ns\")\nmain_container = scaleway.containers.Container(\"main\", namespace_id=main.id)\n# Namespace Token\nnamespace = scaleway.containers.Token(\"namespace\",\n    namespace_id=main.id,\n    expires_at=\"2022-10-18T11:35:15+02:00\")\n# Container Token\ncontainer = scaleway.containers.Token(\"container\", container_id=main_container.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 main = new Scaleway.Containers.Namespace(\"main\", new()\n    {\n        Name = \"test-container-token-ns\",\n    });\n\n    var mainContainer = new Scaleway.Containers.Container(\"main\", new()\n    {\n        NamespaceId = main.Id,\n    });\n\n    // Namespace Token\n    var @namespace = new Scaleway.Containers.Token(\"namespace\", new()\n    {\n        NamespaceId = main.Id,\n        ExpiresAt = \"2022-10-18T11:35:15+02:00\",\n    });\n\n    // Container Token\n    var container = new Scaleway.Containers.Token(\"container\", new()\n    {\n        ContainerId = mainContainer.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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := containers.NewNamespace(ctx, \"main\", \u0026containers.NamespaceArgs{\n\t\t\tName: pulumi.String(\"test-container-token-ns\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainContainer, err := containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Namespace Token\n\t\t_, err = containers.NewToken(ctx, \"namespace\", \u0026containers.TokenArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tExpiresAt:   pulumi.String(\"2022-10-18T11:35:15+02:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Container Token\n\t\t_, err = containers.NewToken(ctx, \"container\", \u0026containers.TokenArgs{\n\t\t\tContainerId: mainContainer.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.containers.Namespace;\nimport com.pulumi.scaleway.containers.NamespaceArgs;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.containers.Token;\nimport com.pulumi.scaleway.containers.TokenArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"test-container-token-ns\")\n            .build());\n\n        var mainContainer = new Container(\"mainContainer\", ContainerArgs.builder()\n            .namespaceId(main.id())\n            .build());\n\n        // Namespace Token\n        var namespace = new Token(\"namespace\", TokenArgs.builder()\n            .namespaceId(main.id())\n            .expiresAt(\"2022-10-18T11:35:15+02:00\")\n            .build());\n\n        // Container Token\n        var container = new Token(\"container\", TokenArgs.builder()\n            .containerId(mainContainer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n    properties:\n      name: test-container-token-ns\n  mainContainer:\n    type: scaleway:containers:Container\n    name: main\n    properties:\n      namespaceId: ${main.id}\n  # Namespace Token\n  namespace:\n    type: scaleway:containers:Token\n    properties:\n      namespaceId: ${main.id}\n      expiresAt: 2022-10-18T11:35:15+02:00\n  # Container Token\n  container:\n    type: scaleway:containers:Token\n    properties:\n      containerId: ${mainContainer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTokens can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:containers/token:Token main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e must be set.\n"},"description":{"type":"string","description":"The description of the token.\n"},"expiresAt":{"type":"string","description":"The expiration date of the token.\n"},"namespaceId":{"type":"string","description":"The unique identifier of the Containers namespace.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n"},"value":{"type":"string","description":"The token.\n","secret":true}},"required":["value"],"inputProperties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e must be set.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the token.\n","willReplaceOnChanges":true},"expiresAt":{"type":"string","description":"The expiration date of the token.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The unique identifier of the Containers namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Token resources.\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e must be set.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the token.\n","willReplaceOnChanges":true},"expiresAt":{"type":"string","description":"The expiration date of the token.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The unique identifier of the Containers namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The token.\n","secret":true}},"type":"object"},"aliases":[{"type":"scaleway:index/containerToken:ContainerToken"}]},"scaleway:containers/trigger:Trigger":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Trigger`\" pulumi-lang-dotnet=\"`scaleway.containers.Trigger`\" pulumi-lang-go=\"`containers.Trigger`\" pulumi-lang-python=\"`containers.Trigger`\" pulumi-lang-yaml=\"`scaleway.containers.Trigger`\" pulumi-lang-java=\"`scaleway.containers.Trigger`\"\u003e`scaleway.containers.Trigger`\u003c/span\u003e resource allows you to create and manage triggers for Scaleway [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Containers triggers [documentation](https://www.scaleway.com/en/docs/serverless/containers/how-to/add-trigger-to-a-container/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-triggers-list-all-triggers) for more information.\n\n## Example Usage\n\n### SQS\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.containers.Trigger(\"main\", {\n    containerId: mainScalewayContainer.id,\n    name: \"my-trigger\",\n    sqs: {\n        projectId: mainScalewayMnqSqs.projectId,\n        queue: \"MyQueue\",\n        region: mainScalewayMnqSqs.region,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Trigger(\"main\",\n    container_id=main_scaleway_container[\"id\"],\n    name=\"my-trigger\",\n    sqs={\n        \"project_id\": main_scaleway_mnq_sqs[\"projectId\"],\n        \"queue\": \"MyQueue\",\n        \"region\": main_scaleway_mnq_sqs[\"region\"],\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.Containers.Trigger(\"main\", new()\n    {\n        ContainerId = mainScalewayContainer.Id,\n        Name = \"my-trigger\",\n        Sqs = new Scaleway.Containers.Inputs.TriggerSqsArgs\n        {\n            ProjectId = mainScalewayMnqSqs.ProjectId,\n            Queue = \"MyQueue\",\n            Region = mainScalewayMnqSqs.Region,\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containers.NewTrigger(ctx, \"main\", \u0026containers.TriggerArgs{\n\t\t\tContainerId: pulumi.Any(mainScalewayContainer.Id),\n\t\t\tName:        pulumi.String(\"my-trigger\"),\n\t\t\tSqs: \u0026containers.TriggerSqsArgs{\n\t\t\t\tProjectId: pulumi.Any(mainScalewayMnqSqs.ProjectId),\n\t\t\t\tQueue:     pulumi.String(\"MyQueue\"),\n\t\t\t\tRegion:    pulumi.Any(mainScalewayMnqSqs.Region),\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.containers.Trigger;\nimport com.pulumi.scaleway.containers.TriggerArgs;\nimport com.pulumi.scaleway.containers.inputs.TriggerSqsArgs;\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 Trigger(\"main\", TriggerArgs.builder()\n            .containerId(mainScalewayContainer.id())\n            .name(\"my-trigger\")\n            .sqs(TriggerSqsArgs.builder()\n                .projectId(mainScalewayMnqSqs.projectId())\n                .queue(\"MyQueue\")\n                .region(mainScalewayMnqSqs.region())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Trigger\n    properties:\n      containerId: ${mainScalewayContainer.id}\n      name: my-trigger\n      sqs:\n        projectId: ${mainScalewayMnqSqs.projectId}\n        queue: MyQueue\n        region: ${mainScalewayMnqSqs.region}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### NATS\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.containers.Trigger(\"main\", {\n    containerId: mainScalewayContainer.id,\n    name: \"my-trigger\",\n    nats: {\n        accountId: mainScalewayMnqNatsAccount.id,\n        subject: \"MySubject\",\n        region: mainScalewayMnqNatsAccount.region,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Trigger(\"main\",\n    container_id=main_scaleway_container[\"id\"],\n    name=\"my-trigger\",\n    nats={\n        \"account_id\": main_scaleway_mnq_nats_account[\"id\"],\n        \"subject\": \"MySubject\",\n        \"region\": main_scaleway_mnq_nats_account[\"region\"],\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.Containers.Trigger(\"main\", new()\n    {\n        ContainerId = mainScalewayContainer.Id,\n        Name = \"my-trigger\",\n        Nats = new Scaleway.Containers.Inputs.TriggerNatsArgs\n        {\n            AccountId = mainScalewayMnqNatsAccount.Id,\n            Subject = \"MySubject\",\n            Region = mainScalewayMnqNatsAccount.Region,\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containers.NewTrigger(ctx, \"main\", \u0026containers.TriggerArgs{\n\t\t\tContainerId: pulumi.Any(mainScalewayContainer.Id),\n\t\t\tName:        pulumi.String(\"my-trigger\"),\n\t\t\tNats: \u0026containers.TriggerNatsArgs{\n\t\t\t\tAccountId: pulumi.Any(mainScalewayMnqNatsAccount.Id),\n\t\t\t\tSubject:   pulumi.String(\"MySubject\"),\n\t\t\t\tRegion:    pulumi.Any(mainScalewayMnqNatsAccount.Region),\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.containers.Trigger;\nimport com.pulumi.scaleway.containers.TriggerArgs;\nimport com.pulumi.scaleway.containers.inputs.TriggerNatsArgs;\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 Trigger(\"main\", TriggerArgs.builder()\n            .containerId(mainScalewayContainer.id())\n            .name(\"my-trigger\")\n            .nats(TriggerNatsArgs.builder()\n                .accountId(mainScalewayMnqNatsAccount.id())\n                .subject(\"MySubject\")\n                .region(mainScalewayMnqNatsAccount.region())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Trigger\n    properties:\n      containerId: ${mainScalewayContainer.id}\n      name: my-trigger\n      nats:\n        accountId: ${mainScalewayMnqNatsAccount.id}\n        subject: MySubject\n        region: ${mainScalewayMnqNatsAccount.region}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nContainer Triggers can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:containers/trigger:Trigger main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container to create a trigger for.\n"},"description":{"type":"string","description":"The description of the trigger.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:containers/TriggerNats:TriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n"},"sqs":{"$ref":"#/types/scaleway:containers/TriggerSqs:TriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n"}},"required":["containerId","name"],"inputProperties":{"containerId":{"type":"string","description":"The unique identifier of the container to create a trigger for.\n"},"description":{"type":"string","description":"The description of the trigger.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:containers/TriggerNats:TriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"sqs":{"$ref":"#/types/scaleway:containers/TriggerSqs:TriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n","willReplaceOnChanges":true}},"requiredInputs":["containerId"],"stateInputs":{"description":"Input properties used for looking up and filtering Trigger resources.\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container to create a trigger for.\n"},"description":{"type":"string","description":"The description of the trigger.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:containers/TriggerNats:TriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"sqs":{"$ref":"#/types/scaleway:containers/TriggerSqs:TriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/containerTrigger:ContainerTrigger"}]},"scaleway:databases/acl:Acl":{"description":"Creates and manages Scaleway Database instance authorized IPs.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/#acl-rules-allowed-ips).\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.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst mainAcl = new scaleway.databases.Acl(\"main\", {\n    instanceId: main.id,\n    aclRules: [{\n        ip: \"1.2.3.4/32\",\n        description: \"foo\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\nmain_acl = scaleway.databases.Acl(\"main\",\n    instance_id=main.id,\n    acl_rules=[{\n        \"ip\": \"1.2.3.4/32\",\n        \"description\": \"foo\",\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.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var mainAcl = new Scaleway.Databases.Acl(\"main\", new()\n    {\n        InstanceId = main.Id,\n        AclRules = new[]\n        {\n            new Scaleway.Databases.Inputs.AclAclRuleArgs\n            {\n                Ip = \"1.2.3.4/32\",\n                Description = \"foo\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewAcl(ctx, \"main\", \u0026databases.AclArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tAclRules: databases.AclAclRuleArray{\n\t\t\t\t\u0026databases.AclAclRuleArgs{\n\t\t\t\t\tIp:          pulumi.String(\"1.2.3.4/32\"),\n\t\t\t\t\tDescription: pulumi.String(\"foo\"),\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.Acl;\nimport com.pulumi.scaleway.databases.AclArgs;\nimport com.pulumi.scaleway.databases.inputs.AclAclRuleArgs;\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 Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var mainAcl = new Acl(\"mainAcl\", AclArgs.builder()\n            .instanceId(main.id())\n            .aclRules(AclAclRuleArgs.builder()\n                .ip(\"1.2.3.4/32\")\n                .description(\"foo\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  mainAcl:\n    type: scaleway:databases:Acl\n    name: main\n    properties:\n      instanceId: ${main.id}\n      aclRules:\n        - ip: 1.2.3.4/32\n          description: foo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Multiple ACL Rules\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.databases.Acl(\"main\", {\n    instanceId: mainScalewayRdbInstance.id,\n    aclRules: [\n        {\n            ip: \"1.2.3.4/32\",\n            description: \"Office IP\",\n        },\n        {\n            ip: \"5.6.7.8/32\",\n            description: \"Home IP\",\n        },\n        {\n            ip: \"10.0.0.0/24\",\n            description: \"Internal network\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Acl(\"main\",\n    instance_id=main_scaleway_rdb_instance[\"id\"],\n    acl_rules=[\n        {\n            \"ip\": \"1.2.3.4/32\",\n            \"description\": \"Office IP\",\n        },\n        {\n            \"ip\": \"5.6.7.8/32\",\n            \"description\": \"Home IP\",\n        },\n        {\n            \"ip\": \"10.0.0.0/24\",\n            \"description\": \"Internal network\",\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.Databases.Acl(\"main\", new()\n    {\n        InstanceId = mainScalewayRdbInstance.Id,\n        AclRules = new[]\n        {\n            new Scaleway.Databases.Inputs.AclAclRuleArgs\n            {\n                Ip = \"1.2.3.4/32\",\n                Description = \"Office IP\",\n            },\n            new Scaleway.Databases.Inputs.AclAclRuleArgs\n            {\n                Ip = \"5.6.7.8/32\",\n                Description = \"Home IP\",\n            },\n            new Scaleway.Databases.Inputs.AclAclRuleArgs\n            {\n                Ip = \"10.0.0.0/24\",\n                Description = \"Internal network\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.NewAcl(ctx, \"main\", \u0026databases.AclArgs{\n\t\t\tInstanceId: pulumi.Any(mainScalewayRdbInstance.Id),\n\t\t\tAclRules: databases.AclAclRuleArray{\n\t\t\t\t\u0026databases.AclAclRuleArgs{\n\t\t\t\t\tIp:          pulumi.String(\"1.2.3.4/32\"),\n\t\t\t\t\tDescription: pulumi.String(\"Office IP\"),\n\t\t\t\t},\n\t\t\t\t\u0026databases.AclAclRuleArgs{\n\t\t\t\t\tIp:          pulumi.String(\"5.6.7.8/32\"),\n\t\t\t\t\tDescription: pulumi.String(\"Home IP\"),\n\t\t\t\t},\n\t\t\t\t\u0026databases.AclAclRuleArgs{\n\t\t\t\t\tIp:          pulumi.String(\"10.0.0.0/24\"),\n\t\t\t\t\tDescription: pulumi.String(\"Internal network\"),\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.databases.Acl;\nimport com.pulumi.scaleway.databases.AclArgs;\nimport com.pulumi.scaleway.databases.inputs.AclAclRuleArgs;\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 Acl(\"main\", AclArgs.builder()\n            .instanceId(mainScalewayRdbInstance.id())\n            .aclRules(            \n                AclAclRuleArgs.builder()\n                    .ip(\"1.2.3.4/32\")\n                    .description(\"Office IP\")\n                    .build(),\n                AclAclRuleArgs.builder()\n                    .ip(\"5.6.7.8/32\")\n                    .description(\"Home IP\")\n                    .build(),\n                AclAclRuleArgs.builder()\n                    .ip(\"10.0.0.0/24\")\n                    .description(\"Internal network\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Acl\n    properties:\n      instanceId: ${mainScalewayRdbInstance.id}\n      aclRules:\n        - ip: 1.2.3.4/32\n          description: Office IP\n        - ip: 5.6.7.8/32\n          description: Home IP\n        - ip: 10.0.0.0/24\n          description: Internal network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Dynamic ACL Rules with Variables\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\n// Map of allowed IPs with descriptions\nconst allowedIps = config.getObject\u003cRecord\u003cstring, string\u003e\u003e(\"allowedIps\") || {\n    \"1.2.3.4/32\": \"Office IP\",\n    \"10.0.0.0/24\": \"Internal network\",\n    \"5.6.7.8/32\": \"Home IP\",\n};\nconst main = new scaleway.databases.Acl(\"main\", {\n    aclRules: Object.entries(allowedIps).map(([k, v]) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n        ip: entry.key,\n        description: entry.value,\n    })),\n    instanceId: mainScalewayRdbInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\n# Map of allowed IPs with descriptions\nallowed_ips = config.get_object(\"allowedIps\")\nif allowed_ips is None:\n    allowed_ips = {\n        \"1.2.3.4/32\": \"Office IP\",\n        \"10.0.0.0/24\": \"Internal network\",\n        \"5.6.7.8/32\": \"Home IP\",\n    }\nmain = scaleway.databases.Acl(\"main\",\n    acl_rules=[{\n        \"ip\": entry[\"key\"],\n        \"description\": entry[\"value\"],\n    } for entry in [{\"key\": k, \"value\": v} for k, v in allowed_ips]],\n    instance_id=main_scaleway_rdb_instance[\"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 config = new Config();\n    // Map of allowed IPs with descriptions\n    var allowedIps = config.GetObject\u003cDictionary\u003cstring, string\u003e\u003e(\"allowedIps\") ?? \n    {\n        { \"1.2.3.4/32\", \"Office IP\" },\n        { \"10.0.0.0/24\", \"Internal network\" },\n        { \"5.6.7.8/32\", \"Home IP\" },\n    };\n    var main = new Scaleway.Databases.Acl(\"main\", new()\n    {\n        AclRules = allowedIps.Select(pair =\u003e new { pair.Key, pair.Value }).Select(entry =\u003e \n        {\n            return new Scaleway.Databases.Inputs.AclAclRuleArgs\n            {\n                Ip = entry.Key,\n                Description = entry.Value,\n            };\n        }).ToList(),\n        InstanceId = mainScalewayRdbInstance.Id,\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabase Instance can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:databases/acl:Acl acl01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"aclRules":{"type":"array","items":{"$ref":"#/types/scaleway:databases/AclAclRule:AclAclRule"},"description":"A list of ACLs (structure is described below)\n\n\u003e **Important:** The \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resource replaces **all** ACL rules for the given instance. Multiple \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resources targeting the same \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will conflict with each other. Use multiple \u003cspan pulumi-lang-nodejs=\"`aclRules`\" pulumi-lang-dotnet=\"`AclRules`\" pulumi-lang-go=\"`aclRules`\" pulumi-lang-python=\"`acl_rules`\" pulumi-lang-yaml=\"`aclRules`\" pulumi-lang-java=\"`aclRules`\"\u003e`acl_rules`\u003c/span\u003e blocks within a single resource instead.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the Database ACL.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n"}},"required":["aclRules","instanceId"],"inputProperties":{"aclRules":{"type":"array","items":{"$ref":"#/types/scaleway:databases/AclAclRule:AclAclRule"},"description":"A list of ACLs (structure is described below)\n\n\u003e **Important:** The \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resource replaces **all** ACL rules for the given instance. Multiple \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resources targeting the same \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will conflict with each other. Use multiple \u003cspan pulumi-lang-nodejs=\"`aclRules`\" pulumi-lang-dotnet=\"`AclRules`\" pulumi-lang-go=\"`aclRules`\" pulumi-lang-python=\"`acl_rules`\" pulumi-lang-yaml=\"`aclRules`\" pulumi-lang-java=\"`aclRules`\"\u003e`acl_rules`\u003c/span\u003e blocks within a single resource instead.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the Database ACL.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["aclRules","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"aclRules":{"type":"array","items":{"$ref":"#/types/scaleway:databases/AclAclRule:AclAclRule"},"description":"A list of ACLs (structure is described below)\n\n\u003e **Important:** The \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resource replaces **all** ACL rules for the given instance. Multiple \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resources targeting the same \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will conflict with each other. Use multiple \u003cspan pulumi-lang-nodejs=\"`aclRules`\" pulumi-lang-dotnet=\"`AclRules`\" pulumi-lang-go=\"`aclRules`\" pulumi-lang-python=\"`acl_rules`\" pulumi-lang-yaml=\"`aclRules`\" pulumi-lang-java=\"`aclRules`\"\u003e`acl_rules`\u003c/span\u003e blocks within a single resource instead.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the Database ACL.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/databaseAcl:DatabaseAcl"}]},"scaleway:databases/database:Database":{"description":"Creates and manages databases.\nFor more information, refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\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.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst mainDatabase = new scaleway.databases.Database(\"main\", {\n    instanceId: main.id,\n    name: \"my-new-database\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\nmain_database = scaleway.databases.Database(\"main\",\n    instance_id=main.id,\n    name=\"my-new-database\")\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.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var mainDatabase = new Scaleway.Databases.Database(\"main\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"my-new-database\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewDatabase(ctx, \"main\", \u0026databases.DatabaseArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"my-new-database\"),\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.Database;\nimport com.pulumi.scaleway.databases.DatabaseArgs;\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 Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var mainDatabase = new Database(\"mainDatabase\", DatabaseArgs.builder()\n            .instanceId(main.id())\n            .name(\"my-new-database\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  mainDatabase:\n    type: scaleway:databases:Database\n    name: main\n    properties:\n      instanceId: ${main.id}\n      name: my-new-database\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRDB Database can be imported using the `{region}/{id}/{DBNAME}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:databases/database:Database rdb01_mydb fr-par/11111111-1111-1111-1111-111111111111/mydb\n```\n\n","properties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database.\n"},"managed":{"type":"boolean","description":"Whether the database is managed or not.\n"},"name":{"type":"string","description":"Name of the database (e.g. `my-new-database`).\n"},"owner":{"type":"string","description":"The name of the owner of the database.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n"},"size":{"type":"string","description":"Size of the database (in bytes).\n"}},"required":["instanceId","managed","name","owner","size"],"inputProperties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the database (e.g. `my-new-database`).\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Database resources.\n","properties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database.\n","willReplaceOnChanges":true},"managed":{"type":"boolean","description":"Whether the database is managed or not.\n"},"name":{"type":"string","description":"Name of the database (e.g. `my-new-database`).\n","willReplaceOnChanges":true},"owner":{"type":"string","description":"The name of the owner of the database.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true},"size":{"type":"string","description":"Size of the database (in bytes).\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/database:Database"}]},"scaleway:databases/databaseBackup:DatabaseBackup":{"description":"Creates and manages database backups.\nFor more information, refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\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.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst mainDatabase = new scaleway.databases.Database(\"main\", {\n    instanceId: main.id,\n    name: \"database\",\n});\nconst mainDatabaseBackup = new scaleway.databases.DatabaseBackup(\"main\", {\n    instanceId: main.id,\n    databaseName: mainDatabase.name,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\nmain_database = scaleway.databases.Database(\"main\",\n    instance_id=main.id,\n    name=\"database\")\nmain_database_backup = scaleway.databases.DatabaseBackup(\"main\",\n    instance_id=main.id,\n    database_name=main_database.name)\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.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var mainDatabase = new Scaleway.Databases.Database(\"main\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"database\",\n    });\n\n    var mainDatabaseBackup = new Scaleway.Databases.DatabaseBackup(\"main\", new()\n    {\n        InstanceId = main.Id,\n        DatabaseName = mainDatabase.Name,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainDatabase, err := databases.NewDatabase(ctx, \"main\", \u0026databases.DatabaseArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"database\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewDatabaseBackup(ctx, \"main\", \u0026databases.DatabaseBackupArgs{\n\t\t\tInstanceId:   main.ID(),\n\t\t\tDatabaseName: mainDatabase.Name,\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.Database;\nimport com.pulumi.scaleway.databases.DatabaseArgs;\nimport com.pulumi.scaleway.databases.DatabaseBackup;\nimport com.pulumi.scaleway.databases.DatabaseBackupArgs;\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 Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var mainDatabase = new Database(\"mainDatabase\", DatabaseArgs.builder()\n            .instanceId(main.id())\n            .name(\"database\")\n            .build());\n\n        var mainDatabaseBackup = new DatabaseBackup(\"mainDatabaseBackup\", DatabaseBackupArgs.builder()\n            .instanceId(main.id())\n            .databaseName(mainDatabase.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  mainDatabase:\n    type: scaleway:databases:Database\n    name: main\n    properties:\n      instanceId: ${main.id}\n      name: database\n  mainDatabaseBackup:\n    type: scaleway:databases:DatabaseBackup\n    name: main\n    properties:\n      instanceId: ${main.id}\n      databaseName: ${mainDatabase.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With expiration\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.databases.DatabaseBackup(\"main\", {\n    instanceId: mainScalewayRdbInstance.id,\n    databaseName: mainScalewayRdbDatabase.name,\n    expiresAt: \"2022-06-16T07:48:44Z\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.DatabaseBackup(\"main\",\n    instance_id=main_scaleway_rdb_instance[\"id\"],\n    database_name=main_scaleway_rdb_database[\"name\"],\n    expires_at=\"2022-06-16T07:48:44Z\")\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.Databases.DatabaseBackup(\"main\", new()\n    {\n        InstanceId = mainScalewayRdbInstance.Id,\n        DatabaseName = mainScalewayRdbDatabase.Name,\n        ExpiresAt = \"2022-06-16T07:48:44Z\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.NewDatabaseBackup(ctx, \"main\", \u0026databases.DatabaseBackupArgs{\n\t\t\tInstanceId:   pulumi.Any(mainScalewayRdbInstance.Id),\n\t\t\tDatabaseName: pulumi.Any(mainScalewayRdbDatabase.Name),\n\t\t\tExpiresAt:    pulumi.String(\"2022-06-16T07:48:44Z\"),\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.databases.DatabaseBackup;\nimport com.pulumi.scaleway.databases.DatabaseBackupArgs;\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 DatabaseBackup(\"main\", DatabaseBackupArgs.builder()\n            .instanceId(mainScalewayRdbInstance.id())\n            .databaseName(mainScalewayRdbDatabase.name())\n            .expiresAt(\"2022-06-16T07:48:44Z\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:DatabaseBackup\n    properties:\n      instanceId: ${mainScalewayRdbInstance.id}\n      databaseName: ${mainScalewayRdbDatabase.name}\n      expiresAt: 2022-06-16T07:48:44Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabases can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:databases/databaseBackup:DatabaseBackup mybackup fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"Creation date (Format ISO 8601).\n"},"databaseName":{"type":"string","description":"Name of the database of this backup."},"downloadUrl":{"type":"string","description":"URL you can download the backup from (when exporting)."},"downloadUrlExpiresAt":{"type":"string","description":"Expiration date of the download link (Format ISO 8601)."},"expiresAt":{"type":"string","description":"Expiration date (Format ISO 8601).\n\n\u003e **Important:** \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed after being set.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the backup.\n"},"instanceName":{"type":"string","description":"Name of the instance of the backup.\n"},"name":{"type":"string","description":"Name of the database (e.g. `my-database`).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n"},"sameRegion":{"type":"boolean","description":"Whether the backup is stored in the same region as the source instance."},"size":{"type":"integer","description":"Size of the backup (in bytes).\n"},"status":{"type":"string","description":"Status of the backup (creating, ready, restoring, deleting, error, exporting, locked)."},"updatedAt":{"type":"string","description":"Updated date (Format ISO 8601).\n"}},"required":["createdAt","databaseName","downloadUrl","downloadUrlExpiresAt","instanceId","instanceName","name","sameRegion","size","status","updatedAt"],"inputProperties":{"databaseName":{"type":"string","description":"Name of the database of this backup.","willReplaceOnChanges":true},"expiresAt":{"type":"string","description":"Expiration date (Format ISO 8601).\n\n\u003e **Important:** \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed after being set.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the backup.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the database (e.g. `my-database`).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true}},"requiredInputs":["databaseName","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabaseBackup resources.\n","properties":{"createdAt":{"type":"string","description":"Creation date (Format ISO 8601).\n"},"databaseName":{"type":"string","description":"Name of the database of this backup.","willReplaceOnChanges":true},"downloadUrl":{"type":"string","description":"URL you can download the backup from (when exporting)."},"downloadUrlExpiresAt":{"type":"string","description":"Expiration date of the download link (Format ISO 8601)."},"expiresAt":{"type":"string","description":"Expiration date (Format ISO 8601).\n\n\u003e **Important:** \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed after being set.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the backup.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"Name of the instance of the backup.\n"},"name":{"type":"string","description":"Name of the database (e.g. `my-database`).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true},"sameRegion":{"type":"boolean","description":"Whether the backup is stored in the same region as the source instance."},"size":{"type":"integer","description":"Size of the backup (in bytes).\n"},"status":{"type":"string","description":"Status of the backup (creating, ready, restoring, deleting, error, exporting, locked)."},"updatedAt":{"type":"string","description":"Updated date (Format ISO 8601).\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/databaseBackup:DatabaseBackup"}]},"scaleway:databases/instance:Instance":{"description":"Creates and manages Scaleway Database Instances.\nFor more information, see refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\n\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\n//## Example Basic\nconst main = new scaleway.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    encryptionAtRest: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Example Basic\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    encryption_at_rest=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    //## Example Basic\n    var main = new Scaleway.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        EncryptionAtRest = 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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Example Basic\n\t\t_, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:             pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:         pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:           pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:      pulumi.Bool(true),\n\t\t\tDisableBackup:    pulumi.Bool(true),\n\t\t\tUserName:         pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:         pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tEncryptionAtRest: 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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\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        //## Example Basic\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .encryptionAtRest(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Example Basic\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      encryptionAtRest: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n//## Example Engine Upgrade\n// Initial creation with PostgreSQL 14\nconst main = new scaleway.databases.Instance(\"main\", {\n    name: \"my-database\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-14\",\n    isHaCluster: false,\n    disableBackup: true,\n    userName: \"my_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nexport const upgradableVersions = main.upgradableVersions;\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Example Engine Upgrade\n# Initial creation with PostgreSQL 14\nmain = scaleway.databases.Instance(\"main\",\n    name=\"my-database\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-14\",\n    is_ha_cluster=False,\n    disable_backup=True,\n    user_name=\"my_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\npulumi.export(\"upgradableVersions\", main.upgradable_versions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //## Example Engine Upgrade\n    // Initial creation with PostgreSQL 14\n    var main = new Scaleway.Databases.Instance(\"main\", new()\n    {\n        Name = \"my-database\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-14\",\n        IsHaCluster = false,\n        DisableBackup = true,\n        UserName = \"my_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"upgradableVersions\"] = main.UpgradableVersions,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Example Engine Upgrade\n\t\t// Initial creation with PostgreSQL 14\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"my-database\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-14\"),\n\t\t\tIsHaCluster:   pulumi.Bool(false),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"upgradableVersions\", main.UpgradableVersions)\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\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        //## Example Engine Upgrade\n        // Initial creation with PostgreSQL 14\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"my-database\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-14\")\n            .isHaCluster(false)\n            .disableBackup(true)\n            .userName(\"my_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        ctx.export(\"upgradableVersions\", main.upgradableVersions());\n    }\n}\n```\n```yaml\nresources:\n  ### Example Engine Upgrade\n\n  # Initial creation with PostgreSQL 14\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: my-database\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-14\n      isHaCluster: false\n      disableBackup: true\n      userName: my_user\n      password: thiZ_is_v\u0026ry_s3cret\noutputs:\n  # Check available versions for upgrade\n  upgradableVersions: ${main.upgradableVersions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabase Instance can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:databases/instance:Instance rdb01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backupSameRegion":{"type":"boolean","description":"Boolean to store logical backups in the same region as the database instance"},"backupScheduleFrequency":{"type":"integer","description":"Backup schedule frequency in hours"},"backupScheduleRetention":{"type":"integer","description":"Backup schedule retention in days"},"certificate":{"type":"string","description":"Certificate of the Database Instance.\n"},"disableBackup":{"type":"boolean","description":"Disable automated backup for the database instance"},"encryptionAtRest":{"type":"boolean","description":"Enable or disable encryption at rest for the Database Instance.\n"},"endpointIp":{"type":"string","description":"(Deprecated) The IP of the Database Instance. Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute.\n","deprecationMessage":"Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute"},"endpointPort":{"type":"integer","description":"(Deprecated) The port of the Database Instance. Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute.\n","deprecationMessage":"Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute"},"engine":{"type":"string","description":"Database's engine version name (e.g., 'PostgreSQL-16', 'MySQL-8'). Changing this value triggers a blue/green upgrade using MajorUpgradeWorkflow with automatic endpoint migration"},"initSettings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set at database initialisation."},"isHaCluster":{"type":"boolean","description":"Enable or disable high availability for the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`isHaCluster`\" pulumi-lang-dotnet=\"`IsHaCluster`\" pulumi-lang-go=\"`isHaCluster`\" pulumi-lang-python=\"`is_ha_cluster`\" pulumi-lang-yaml=\"`isHaCluster`\" pulumi-lang-java=\"`isHaCluster`\"\u003e`is_ha_cluster`\u003c/span\u003e will recreate the Database Instance.\n"},"loadBalancer":{"$ref":"#/types/scaleway:databases/InstanceLoadBalancer:InstanceLoadBalancer","description":"List of Load Balancer endpoints of the Database Instance.\n"},"logsPolicy":{"$ref":"#/types/scaleway:databases/InstanceLogsPolicy:InstanceLogsPolicy","description":"Logs policy configuration"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"nodeType":{"type":"string","description":"The type of Database Instance you want to create (e.g. `db-dev-s`).\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will upgrade the Database Instance to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e without any\ninterruption.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, if you are using \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e storage, you should upgrade the \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e, and if you are using \u003cspan pulumi-lang-nodejs=\"`bssd`\" pulumi-lang-dotnet=\"`Bssd`\" pulumi-lang-go=\"`bssd`\" pulumi-lang-python=\"`bssd`\" pulumi-lang-yaml=\"`bssd`\" pulumi-lang-java=\"`bssd`\"\u003e`bssd`\u003c/span\u003e storage, you should increase the volume size before making any other changes to your Database Instance.\n"},"organizationId":{"type":"string","description":"The organization ID the Database Instance is associated with.\n"},"password":{"type":"string","description":"Password for the first user of the Database Instance. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:databases/InstancePrivateIp:InstancePrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetwork":{"$ref":"#/types/scaleway:databases/InstancePrivateNetwork:InstancePrivateNetwork","description":"List of Private Networks endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Database\nInstance is associated with.\n"},"readReplicas":{"type":"array","items":{"$ref":"#/types/scaleway:databases/InstanceReadReplica:InstanceReadReplica"},"description":"List of read replicas of the Database Instance.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Database Instance should be created.\n"},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set on a running instance."},"snapshotId":{"type":"string","description":"The ID of an existing snapshot to restore or create the Database Instance from. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`engine`\" pulumi-lang-dotnet=\"`Engine`\" pulumi-lang-go=\"`engine`\" pulumi-lang-python=\"`engine`\" pulumi-lang-yaml=\"`engine`\" pulumi-lang-java=\"`engine`\"\u003e`engine`\u003c/span\u003e parameter and backup settings.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Database Instance.\n"},"upgradableVersions":{"type":"array","items":{"$ref":"#/types/scaleway:databases/InstanceUpgradableVersion:InstanceUpgradableVersion"},"description":"List of available engine versions for upgrade. Each version contains:\n"},"userName":{"type":"string","description":"Identifier for the first user of the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e will recreate the Database Instance.\n"},"volumeSizeInGb":{"type":"integer","description":"Volume size (in GB). Cannot be used when \u003cspan pulumi-lang-nodejs=\"`volumeType`\" pulumi-lang-dotnet=\"`VolumeType`\" pulumi-lang-go=\"`volumeType`\" pulumi-lang-python=\"`volume_type`\" pulumi-lang-yaml=\"`volumeType`\" pulumi-lang-java=\"`volumeType`\"\u003e`volume_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, you should increase the volume size before making any other change to your Database Instance.\n"},"volumeType":{"type":"string","description":"Type of volume where data are stored (\u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sbs5k`\" pulumi-lang-dotnet=\"`Sbs5k`\" pulumi-lang-go=\"`sbs5k`\" pulumi-lang-python=\"`sbs_5k`\" pulumi-lang-yaml=\"`sbs5k`\" pulumi-lang-java=\"`sbs5k`\"\u003e`sbs_5k`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sbs15k`\" pulumi-lang-dotnet=\"`Sbs15k`\" pulumi-lang-go=\"`sbs15k`\" pulumi-lang-python=\"`sbs_15k`\" pulumi-lang-yaml=\"`sbs15k`\" pulumi-lang-java=\"`sbs15k`\"\u003e`sbs_15k`\u003c/span\u003e).\n"}},"required":["backupSameRegion","backupScheduleFrequency","backupScheduleRetention","certificate","endpointIp","endpointPort","engine","loadBalancer","logsPolicy","name","nodeType","organizationId","privateIps","projectId","readReplicas","settings","upgradableVersions","userName","volumeSizeInGb"],"inputProperties":{"backupSameRegion":{"type":"boolean","description":"Boolean to store logical backups in the same region as the database instance"},"backupScheduleFrequency":{"type":"integer","description":"Backup schedule frequency in hours"},"backupScheduleRetention":{"type":"integer","description":"Backup schedule retention in days"},"disableBackup":{"type":"boolean","description":"Disable automated backup for the database instance"},"encryptionAtRest":{"type":"boolean","description":"Enable or disable encryption at rest for the Database Instance.\n"},"engine":{"type":"string","description":"Database's engine version name (e.g., 'PostgreSQL-16', 'MySQL-8'). Changing this value triggers a blue/green upgrade using MajorUpgradeWorkflow with automatic endpoint migration"},"initSettings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set at database initialisation.","willReplaceOnChanges":true},"isHaCluster":{"type":"boolean","description":"Enable or disable high availability for the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`isHaCluster`\" pulumi-lang-dotnet=\"`IsHaCluster`\" pulumi-lang-go=\"`isHaCluster`\" pulumi-lang-python=\"`is_ha_cluster`\" pulumi-lang-yaml=\"`isHaCluster`\" pulumi-lang-java=\"`isHaCluster`\"\u003e`is_ha_cluster`\u003c/span\u003e will recreate the Database Instance.\n"},"loadBalancer":{"$ref":"#/types/scaleway:databases/InstanceLoadBalancer:InstanceLoadBalancer","description":"List of Load Balancer endpoints of the Database Instance.\n"},"logsPolicy":{"$ref":"#/types/scaleway:databases/InstanceLogsPolicy:InstanceLogsPolicy","description":"Logs policy configuration"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"nodeType":{"type":"string","description":"The type of Database Instance you want to create (e.g. `db-dev-s`).\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will upgrade the Database Instance to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e without any\ninterruption.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, if you are using \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e storage, you should upgrade the \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e, and if you are using \u003cspan pulumi-lang-nodejs=\"`bssd`\" pulumi-lang-dotnet=\"`Bssd`\" pulumi-lang-go=\"`bssd`\" pulumi-lang-python=\"`bssd`\" pulumi-lang-yaml=\"`bssd`\" pulumi-lang-java=\"`bssd`\"\u003e`bssd`\u003c/span\u003e storage, you should increase the volume size before making any other changes to your Database Instance.\n"},"password":{"type":"string","description":"Password for the first user of the Database Instance. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:databases/InstancePrivateIp:InstancePrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetwork":{"$ref":"#/types/scaleway:databases/InstancePrivateNetwork:InstancePrivateNetwork","description":"List of Private Networks endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Database\nInstance is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Database Instance should be created.\n","willReplaceOnChanges":true},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set on a running instance."},"snapshotId":{"type":"string","description":"The ID of an existing snapshot to restore or create the Database Instance from. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`engine`\" pulumi-lang-dotnet=\"`Engine`\" pulumi-lang-go=\"`engine`\" pulumi-lang-python=\"`engine`\" pulumi-lang-yaml=\"`engine`\" pulumi-lang-java=\"`engine`\"\u003e`engine`\u003c/span\u003e parameter and backup settings.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Database Instance.\n"},"userName":{"type":"string","description":"Identifier for the first user of the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e will recreate the Database Instance.\n","willReplaceOnChanges":true},"volumeSizeInGb":{"type":"integer","description":"Volume size (in GB). Cannot be used when \u003cspan pulumi-lang-nodejs=\"`volumeType`\" pulumi-lang-dotnet=\"`VolumeType`\" pulumi-lang-go=\"`volumeType`\" pulumi-lang-python=\"`volume_type`\" pulumi-lang-yaml=\"`volumeType`\" pulumi-lang-java=\"`volumeType`\"\u003e`volume_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, you should increase the volume size before making any other change to your Database Instance.\n"},"volumeType":{"type":"string","description":"Type of volume where data are stored (\u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sbs5k`\" pulumi-lang-dotnet=\"`Sbs5k`\" pulumi-lang-go=\"`sbs5k`\" pulumi-lang-python=\"`sbs_5k`\" pulumi-lang-yaml=\"`sbs5k`\" pulumi-lang-java=\"`sbs5k`\"\u003e`sbs_5k`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sbs15k`\" pulumi-lang-dotnet=\"`Sbs15k`\" pulumi-lang-go=\"`sbs15k`\" pulumi-lang-python=\"`sbs_15k`\" pulumi-lang-yaml=\"`sbs15k`\" pulumi-lang-java=\"`sbs15k`\"\u003e`sbs_15k`\u003c/span\u003e).\n"}},"requiredInputs":["nodeType"],"stateInputs":{"description":"Input properties used for looking up and filtering Instance resources.\n","properties":{"backupSameRegion":{"type":"boolean","description":"Boolean to store logical backups in the same region as the database instance"},"backupScheduleFrequency":{"type":"integer","description":"Backup schedule frequency in hours"},"backupScheduleRetention":{"type":"integer","description":"Backup schedule retention in days"},"certificate":{"type":"string","description":"Certificate of the Database Instance.\n"},"disableBackup":{"type":"boolean","description":"Disable automated backup for the database instance"},"encryptionAtRest":{"type":"boolean","description":"Enable or disable encryption at rest for the Database Instance.\n"},"endpointIp":{"type":"string","description":"(Deprecated) The IP of the Database Instance. Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute.\n","deprecationMessage":"Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute"},"endpointPort":{"type":"integer","description":"(Deprecated) The port of the Database Instance. Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute.\n","deprecationMessage":"Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute"},"engine":{"type":"string","description":"Database's engine version name (e.g., 'PostgreSQL-16', 'MySQL-8'). Changing this value triggers a blue/green upgrade using MajorUpgradeWorkflow with automatic endpoint migration"},"initSettings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set at database initialisation.","willReplaceOnChanges":true},"isHaCluster":{"type":"boolean","description":"Enable or disable high availability for the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`isHaCluster`\" pulumi-lang-dotnet=\"`IsHaCluster`\" pulumi-lang-go=\"`isHaCluster`\" pulumi-lang-python=\"`is_ha_cluster`\" pulumi-lang-yaml=\"`isHaCluster`\" pulumi-lang-java=\"`isHaCluster`\"\u003e`is_ha_cluster`\u003c/span\u003e will recreate the Database Instance.\n"},"loadBalancer":{"$ref":"#/types/scaleway:databases/InstanceLoadBalancer:InstanceLoadBalancer","description":"List of Load Balancer endpoints of the Database Instance.\n"},"logsPolicy":{"$ref":"#/types/scaleway:databases/InstanceLogsPolicy:InstanceLogsPolicy","description":"Logs policy configuration"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"nodeType":{"type":"string","description":"The type of Database Instance you want to create (e.g. `db-dev-s`).\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will upgrade the Database Instance to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e without any\ninterruption.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, if you are using \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e storage, you should upgrade the \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e, and if you are using \u003cspan pulumi-lang-nodejs=\"`bssd`\" pulumi-lang-dotnet=\"`Bssd`\" pulumi-lang-go=\"`bssd`\" pulumi-lang-python=\"`bssd`\" pulumi-lang-yaml=\"`bssd`\" pulumi-lang-java=\"`bssd`\"\u003e`bssd`\u003c/span\u003e storage, you should increase the volume size before making any other changes to your Database Instance.\n"},"organizationId":{"type":"string","description":"The organization ID the Database Instance is associated with.\n"},"password":{"type":"string","description":"Password for the first user of the Database Instance. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:databases/InstancePrivateIp:InstancePrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetwork":{"$ref":"#/types/scaleway:databases/InstancePrivateNetwork:InstancePrivateNetwork","description":"List of Private Networks endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Database\nInstance is associated with.\n","willReplaceOnChanges":true},"readReplicas":{"type":"array","items":{"$ref":"#/types/scaleway:databases/InstanceReadReplica:InstanceReadReplica"},"description":"List of read replicas of the Database Instance.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Database Instance should be created.\n","willReplaceOnChanges":true},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set on a running instance."},"snapshotId":{"type":"string","description":"The ID of an existing snapshot to restore or create the Database Instance from. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`engine`\" pulumi-lang-dotnet=\"`Engine`\" pulumi-lang-go=\"`engine`\" pulumi-lang-python=\"`engine`\" pulumi-lang-yaml=\"`engine`\" pulumi-lang-java=\"`engine`\"\u003e`engine`\u003c/span\u003e parameter and backup settings.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Database Instance.\n"},"upgradableVersions":{"type":"array","items":{"$ref":"#/types/scaleway:databases/InstanceUpgradableVersion:InstanceUpgradableVersion"},"description":"List of available engine versions for upgrade. Each version contains:\n"},"userName":{"type":"string","description":"Identifier for the first user of the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e will recreate the Database Instance.\n","willReplaceOnChanges":true},"volumeSizeInGb":{"type":"integer","description":"Volume size (in GB). Cannot be used when \u003cspan pulumi-lang-nodejs=\"`volumeType`\" pulumi-lang-dotnet=\"`VolumeType`\" pulumi-lang-go=\"`volumeType`\" pulumi-lang-python=\"`volume_type`\" pulumi-lang-yaml=\"`volumeType`\" pulumi-lang-java=\"`volumeType`\"\u003e`volume_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, you should increase the volume size before making any other change to your Database Instance.\n"},"volumeType":{"type":"string","description":"Type of volume where data are stored (\u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sbs5k`\" pulumi-lang-dotnet=\"`Sbs5k`\" pulumi-lang-go=\"`sbs5k`\" pulumi-lang-python=\"`sbs_5k`\" pulumi-lang-yaml=\"`sbs5k`\" pulumi-lang-java=\"`sbs5k`\"\u003e`sbs_5k`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sbs15k`\" pulumi-lang-dotnet=\"`Sbs15k`\" pulumi-lang-go=\"`sbs15k`\" pulumi-lang-python=\"`sbs_15k`\" pulumi-lang-yaml=\"`sbs15k`\" pulumi-lang-java=\"`sbs15k`\"\u003e`sbs_15k`\u003c/span\u003e).\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/databaseInstance:DatabaseInstance"}]},"scaleway:databases/privilege:Privilege":{"description":"Create and manage Scaleway database privileges.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/#user-and-permissions).\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.databases.Instance(\"main\", {\n    name: \"rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-11\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst mainDatabase = new scaleway.databases.Database(\"main\", {\n    instanceId: main.id,\n    name: \"database\",\n});\nconst mainUser = new scaleway.databases.User(\"main\", {\n    instanceId: main.id,\n    name: \"my-db-user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    isAdmin: false,\n});\nconst mainPrivilege = new scaleway.databases.Privilege(\"main\", {\n    instanceId: main.id,\n    userName: mainUser.name,\n    databaseName: mainDatabase.name,\n    permission: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Instance(\"main\",\n    name=\"rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-11\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\nmain_database = scaleway.databases.Database(\"main\",\n    instance_id=main.id,\n    name=\"database\")\nmain_user = scaleway.databases.User(\"main\",\n    instance_id=main.id,\n    name=\"my-db-user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    is_admin=False)\nmain_privilege = scaleway.databases.Privilege(\"main\",\n    instance_id=main.id,\n    user_name=main_user.name,\n    database_name=main_database.name,\n    permission=\"all\")\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.Databases.Instance(\"main\", new()\n    {\n        Name = \"rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-11\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var mainDatabase = new Scaleway.Databases.Database(\"main\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"database\",\n    });\n\n    var mainUser = new Scaleway.Databases.User(\"main\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"my-db-user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        IsAdmin = false,\n    });\n\n    var mainPrivilege = new Scaleway.Databases.Privilege(\"main\", new()\n    {\n        InstanceId = main.Id,\n        UserName = mainUser.Name,\n        DatabaseName = mainDatabase.Name,\n        Permission = \"all\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-11\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainDatabase, err := databases.NewDatabase(ctx, \"main\", \u0026databases.DatabaseArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"database\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainUser, err := databases.NewUser(ctx, \"main\", \u0026databases.UserArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"my-db-user\"),\n\t\t\tPassword:   pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tIsAdmin:    pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewPrivilege(ctx, \"main\", \u0026databases.PrivilegeArgs{\n\t\t\tInstanceId:   main.ID(),\n\t\t\tUserName:     mainUser.Name,\n\t\t\tDatabaseName: mainDatabase.Name,\n\t\t\tPermission:   pulumi.String(\"all\"),\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.Database;\nimport com.pulumi.scaleway.databases.DatabaseArgs;\nimport com.pulumi.scaleway.databases.User;\nimport com.pulumi.scaleway.databases.UserArgs;\nimport com.pulumi.scaleway.databases.Privilege;\nimport com.pulumi.scaleway.databases.PrivilegeArgs;\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 Instance(\"main\", InstanceArgs.builder()\n            .name(\"rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-11\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var mainDatabase = new Database(\"mainDatabase\", DatabaseArgs.builder()\n            .instanceId(main.id())\n            .name(\"database\")\n            .build());\n\n        var mainUser = new User(\"mainUser\", UserArgs.builder()\n            .instanceId(main.id())\n            .name(\"my-db-user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .isAdmin(false)\n            .build());\n\n        var mainPrivilege = new Privilege(\"mainPrivilege\", PrivilegeArgs.builder()\n            .instanceId(main.id())\n            .userName(mainUser.name())\n            .databaseName(mainDatabase.name())\n            .permission(\"all\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-11\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  mainDatabase:\n    type: scaleway:databases:Database\n    name: main\n    properties:\n      instanceId: ${main.id}\n      name: database\n  mainUser:\n    type: scaleway:databases:User\n    name: main\n    properties:\n      instanceId: ${main.id}\n      name: my-db-user\n      password: thiZ_is_v\u0026ry_s3cret\n      isAdmin: false\n  mainPrivilege:\n    type: scaleway:databases:Privilege\n    name: main\n    properties:\n      instanceId: ${main.id}\n      userName: ${mainUser.name}\n      databaseName: ${mainDatabase.name}\n      permission: all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe user privileges can be imported using the `{region}/{instance_id}/{database_name}/{user_name}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:databases/privilege:Privilege o fr-par/11111111-1111-1111-1111-111111111111/database_name/foo\n```\n\n","properties":{"databaseName":{"type":"string","description":"Name of the database (e.g. `my-db-name`).\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n"},"permission":{"type":"string","description":"Permission to set. Valid values are \u003cspan pulumi-lang-nodejs=\"`readonly`\" pulumi-lang-dotnet=\"`Readonly`\" pulumi-lang-go=\"`readonly`\" pulumi-lang-python=\"`readonly`\" pulumi-lang-yaml=\"`readonly`\" pulumi-lang-java=\"`readonly`\"\u003e`readonly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n"},"userName":{"type":"string","description":"Name of the user (e.g. `my-db-user`).\n"}},"required":["databaseName","instanceId","permission","userName"],"inputProperties":{"databaseName":{"type":"string","description":"Name of the database (e.g. `my-db-name`).\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Permission to set. Valid values are \u003cspan pulumi-lang-nodejs=\"`readonly`\" pulumi-lang-dotnet=\"`Readonly`\" pulumi-lang-go=\"`readonly`\" pulumi-lang-python=\"`readonly`\" pulumi-lang-yaml=\"`readonly`\" pulumi-lang-java=\"`readonly`\"\u003e`readonly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"Name of the user (e.g. `my-db-user`).\n"}},"requiredInputs":["databaseName","instanceId","permission","userName"],"stateInputs":{"description":"Input properties used for looking up and filtering Privilege resources.\n","properties":{"databaseName":{"type":"string","description":"Name of the database (e.g. `my-db-name`).\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Permission to set. Valid values are \u003cspan pulumi-lang-nodejs=\"`readonly`\" pulumi-lang-dotnet=\"`Readonly`\" pulumi-lang-go=\"`readonly`\" pulumi-lang-python=\"`readonly`\" pulumi-lang-yaml=\"`readonly`\" pulumi-lang-java=\"`readonly`\"\u003e`readonly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"Name of the user (e.g. `my-db-user`).\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/databasePrivilege:DatabasePrivilege"}]},"scaleway:databases/readReplica:ReadReplica":{"description":"Creates and manages Read Replicas.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\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 instance = new scaleway.databases.Instance(\"instance\", {\n    name: \"test-rdb-rr-update\",\n    nodeType: \"db-dev-s\",\n    engine: \"PostgreSQL-14\",\n    isHaCluster: false,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    tags: [\n        \"terraform-test\",\n        \"scaleway_rdb_read_replica\",\n        \"minimal\",\n    ],\n});\nconst replica = new scaleway.databases.ReadReplica(\"replica\", {\n    instanceId: instance.id,\n    directAccess: {},\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ninstance = scaleway.databases.Instance(\"instance\",\n    name=\"test-rdb-rr-update\",\n    node_type=\"db-dev-s\",\n    engine=\"PostgreSQL-14\",\n    is_ha_cluster=False,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    tags=[\n        \"terraform-test\",\n        \"scaleway_rdb_read_replica\",\n        \"minimal\",\n    ])\nreplica = scaleway.databases.ReadReplica(\"replica\",\n    instance_id=instance.id,\n    direct_access={})\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 instance = new Scaleway.Databases.Instance(\"instance\", new()\n    {\n        Name = \"test-rdb-rr-update\",\n        NodeType = \"db-dev-s\",\n        Engine = \"PostgreSQL-14\",\n        IsHaCluster = false,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        Tags = new[]\n        {\n            \"terraform-test\",\n            \"scaleway_rdb_read_replica\",\n            \"minimal\",\n        },\n    });\n\n    var replica = new Scaleway.Databases.ReadReplica(\"replica\", new()\n    {\n        InstanceId = instance.Id,\n        DirectAccess = null,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance, err := databases.NewInstance(ctx, \"instance\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb-rr-update\"),\n\t\t\tNodeType:      pulumi.String(\"db-dev-s\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-14\"),\n\t\t\tIsHaCluster:   pulumi.Bool(false),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform-test\"),\n\t\t\t\tpulumi.String(\"scaleway_rdb_read_replica\"),\n\t\t\t\tpulumi.String(\"minimal\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewReadReplica(ctx, \"replica\", \u0026databases.ReadReplicaArgs{\n\t\t\tInstanceId:   instance.ID(),\n\t\t\tDirectAccess: \u0026databases.ReadReplicaDirectAccessArgs{},\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.ReadReplica;\nimport com.pulumi.scaleway.databases.ReadReplicaArgs;\nimport com.pulumi.scaleway.databases.inputs.ReadReplicaDirectAccessArgs;\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 instance = new Instance(\"instance\", InstanceArgs.builder()\n            .name(\"test-rdb-rr-update\")\n            .nodeType(\"db-dev-s\")\n            .engine(\"PostgreSQL-14\")\n            .isHaCluster(false)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .tags(            \n                \"terraform-test\",\n                \"scaleway_rdb_read_replica\",\n                \"minimal\")\n            .build());\n\n        var replica = new ReadReplica(\"replica\", ReadReplicaArgs.builder()\n            .instanceId(instance.id())\n            .directAccess(ReadReplicaDirectAccessArgs.builder()\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb-rr-update\n      nodeType: db-dev-s\n      engine: PostgreSQL-14\n      isHaCluster: false\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      tags:\n        - terraform-test\n        - scaleway_rdb_read_replica\n        - minimal\n  replica:\n    type: scaleway:databases:ReadReplica\n    properties:\n      instanceId: ${instance.id}\n      directAccess: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private network with static endpoint\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst instance = new scaleway.databases.Instance(\"instance\", {\n    name: \"rdb_instance\",\n    nodeType: \"db-dev-s\",\n    engine: \"PostgreSQL-14\",\n    isHaCluster: false,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst replica = new scaleway.databases.ReadReplica(\"replica\", {\n    instanceId: instance.id,\n    privateNetwork: {\n        privateNetworkId: pn.id,\n        serviceIp: \"192.168.1.254/24\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ninstance = scaleway.databases.Instance(\"instance\",\n    name=\"rdb_instance\",\n    node_type=\"db-dev-s\",\n    engine=\"PostgreSQL-14\",\n    is_ha_cluster=False,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\npn = scaleway.network.PrivateNetwork(\"pn\")\nreplica = scaleway.databases.ReadReplica(\"replica\",\n    instance_id=instance.id,\n    private_network={\n        \"private_network_id\": pn.id,\n        \"service_ip\": \"192.168.1.254/24\",\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 instance = new Scaleway.Databases.Instance(\"instance\", new()\n    {\n        Name = \"rdb_instance\",\n        NodeType = \"db-dev-s\",\n        Engine = \"PostgreSQL-14\",\n        IsHaCluster = false,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var replica = new Scaleway.Databases.ReadReplica(\"replica\", new()\n    {\n        InstanceId = instance.Id,\n        PrivateNetwork = new Scaleway.Databases.Inputs.ReadReplicaPrivateNetworkArgs\n        {\n            PrivateNetworkId = pn.Id,\n            ServiceIp = \"192.168.1.254/24\",\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/databases\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance, err := databases.NewInstance(ctx, \"instance\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"rdb_instance\"),\n\t\t\tNodeType:      pulumi.String(\"db-dev-s\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-14\"),\n\t\t\tIsHaCluster:   pulumi.Bool(false),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewReadReplica(ctx, \"replica\", \u0026databases.ReadReplicaArgs{\n\t\t\tInstanceId: instance.ID(),\n\t\t\tPrivateNetwork: \u0026databases.ReadReplicaPrivateNetworkArgs{\n\t\t\t\tPrivateNetworkId: pn.ID(),\n\t\t\t\tServiceIp:        pulumi.String(\"192.168.1.254/24\"),\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.databases.ReadReplica;\nimport com.pulumi.scaleway.databases.ReadReplicaArgs;\nimport com.pulumi.scaleway.databases.inputs.ReadReplicaPrivateNetworkArgs;\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 instance = new Instance(\"instance\", InstanceArgs.builder()\n            .name(\"rdb_instance\")\n            .nodeType(\"db-dev-s\")\n            .engine(\"PostgreSQL-14\")\n            .isHaCluster(false)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var pn = new PrivateNetwork(\"pn\");\n\n        var replica = new ReadReplica(\"replica\", ReadReplicaArgs.builder()\n            .instanceId(instance.id())\n            .privateNetwork(ReadReplicaPrivateNetworkArgs.builder()\n                .privateNetworkId(pn.id())\n                .serviceIp(\"192.168.1.254/24\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance:\n    type: scaleway:databases:Instance\n    properties:\n      name: rdb_instance\n      nodeType: db-dev-s\n      engine: PostgreSQL-14\n      isHaCluster: false\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  pn:\n    type: scaleway:network:PrivateNetwork\n  replica:\n    type: scaleway:databases:ReadReplica\n    properties:\n      instanceId: ${instance.id}\n      privateNetwork:\n        privateNetworkId: ${pn.id}\n        serviceIp: 192.168.1.254/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private network with IPAM\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst instance = new scaleway.databases.Instance(\"instance\", {\n    name: \"rdb_instance\",\n    nodeType: \"db-dev-s\",\n    engine: \"PostgreSQL-14\",\n    isHaCluster: false,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst replica = new scaleway.databases.ReadReplica(\"replica\", {\n    instanceId: instance.id,\n    privateNetwork: {\n        privateNetworkId: pn.id,\n        enableIpam: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ninstance = scaleway.databases.Instance(\"instance\",\n    name=\"rdb_instance\",\n    node_type=\"db-dev-s\",\n    engine=\"PostgreSQL-14\",\n    is_ha_cluster=False,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\npn = scaleway.network.PrivateNetwork(\"pn\")\nreplica = scaleway.databases.ReadReplica(\"replica\",\n    instance_id=instance.id,\n    private_network={\n        \"private_network_id\": pn.id,\n        \"enable_ipam\": True,\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 instance = new Scaleway.Databases.Instance(\"instance\", new()\n    {\n        Name = \"rdb_instance\",\n        NodeType = \"db-dev-s\",\n        Engine = \"PostgreSQL-14\",\n        IsHaCluster = false,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var replica = new Scaleway.Databases.ReadReplica(\"replica\", new()\n    {\n        InstanceId = instance.Id,\n        PrivateNetwork = new Scaleway.Databases.Inputs.ReadReplicaPrivateNetworkArgs\n        {\n            PrivateNetworkId = pn.Id,\n            EnableIpam = true,\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/databases\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance, err := databases.NewInstance(ctx, \"instance\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"rdb_instance\"),\n\t\t\tNodeType:      pulumi.String(\"db-dev-s\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-14\"),\n\t\t\tIsHaCluster:   pulumi.Bool(false),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewReadReplica(ctx, \"replica\", \u0026databases.ReadReplicaArgs{\n\t\t\tInstanceId: instance.ID(),\n\t\t\tPrivateNetwork: \u0026databases.ReadReplicaPrivateNetworkArgs{\n\t\t\t\tPrivateNetworkId: pn.ID(),\n\t\t\t\tEnableIpam:       pulumi.Bool(true),\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.databases.ReadReplica;\nimport com.pulumi.scaleway.databases.ReadReplicaArgs;\nimport com.pulumi.scaleway.databases.inputs.ReadReplicaPrivateNetworkArgs;\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 instance = new Instance(\"instance\", InstanceArgs.builder()\n            .name(\"rdb_instance\")\n            .nodeType(\"db-dev-s\")\n            .engine(\"PostgreSQL-14\")\n            .isHaCluster(false)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var pn = new PrivateNetwork(\"pn\");\n\n        var replica = new ReadReplica(\"replica\", ReadReplicaArgs.builder()\n            .instanceId(instance.id())\n            .privateNetwork(ReadReplicaPrivateNetworkArgs.builder()\n                .privateNetworkId(pn.id())\n                .enableIpam(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance:\n    type: scaleway:databases:Instance\n    properties:\n      name: rdb_instance\n      nodeType: db-dev-s\n      engine: PostgreSQL-14\n      isHaCluster: false\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  pn:\n    type: scaleway:network:PrivateNetwork\n  replica:\n    type: scaleway:databases:ReadReplica\n    properties:\n      instanceId: ${instance.id}\n      privateNetwork:\n        privateNetworkId: ${pn.id}\n        enableIpam: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRead Replicas can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:databases/readReplica:ReadReplica rr fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"directAccess":{"$ref":"#/types/scaleway:databases/ReadReplicaDirectAccess:ReadReplicaDirectAccess","description":"Creates a direct access endpoint to rdb replica.\n"},"instanceId":{"type":"string","description":"UUID of the rdb instance.\n\n\u003e **Important:** The replica musts contains at least one \u003cspan pulumi-lang-nodejs=\"`directAccess`\" pulumi-lang-dotnet=\"`DirectAccess`\" pulumi-lang-go=\"`directAccess`\" pulumi-lang-python=\"`direct_access`\" pulumi-lang-yaml=\"`directAccess`\" pulumi-lang-java=\"`directAccess`\"\u003e`direct_access`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e. It can contain both.\n"},"privateNetwork":{"$ref":"#/types/scaleway:databases/ReadReplicaPrivateNetwork:ReadReplicaPrivateNetwork","description":"Create an endpoint in a Private Netork.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Read Replica should be created.\n"},"sameZone":{"type":"boolean","description":"Defines whether to create the replica in the same availability zone as the main instance nodes or not.\n"}},"required":["instanceId"],"inputProperties":{"directAccess":{"$ref":"#/types/scaleway:databases/ReadReplicaDirectAccess:ReadReplicaDirectAccess","description":"Creates a direct access endpoint to rdb replica.\n"},"instanceId":{"type":"string","description":"UUID of the rdb instance.\n\n\u003e **Important:** The replica musts contains at least one \u003cspan pulumi-lang-nodejs=\"`directAccess`\" pulumi-lang-dotnet=\"`DirectAccess`\" pulumi-lang-go=\"`directAccess`\" pulumi-lang-python=\"`direct_access`\" pulumi-lang-yaml=\"`directAccess`\" pulumi-lang-java=\"`directAccess`\"\u003e`direct_access`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e. It can contain both.\n"},"privateNetwork":{"$ref":"#/types/scaleway:databases/ReadReplicaPrivateNetwork:ReadReplicaPrivateNetwork","description":"Create an endpoint in a Private Netork.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Read Replica should be created.\n","willReplaceOnChanges":true},"sameZone":{"type":"boolean","description":"Defines whether to create the replica in the same availability zone as the main instance nodes or not.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ReadReplica resources.\n","properties":{"directAccess":{"$ref":"#/types/scaleway:databases/ReadReplicaDirectAccess:ReadReplicaDirectAccess","description":"Creates a direct access endpoint to rdb replica.\n"},"instanceId":{"type":"string","description":"UUID of the rdb instance.\n\n\u003e **Important:** The replica musts contains at least one \u003cspan pulumi-lang-nodejs=\"`directAccess`\" pulumi-lang-dotnet=\"`DirectAccess`\" pulumi-lang-go=\"`directAccess`\" pulumi-lang-python=\"`direct_access`\" pulumi-lang-yaml=\"`directAccess`\" pulumi-lang-java=\"`directAccess`\"\u003e`direct_access`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e. It can contain both.\n"},"privateNetwork":{"$ref":"#/types/scaleway:databases/ReadReplicaPrivateNetwork:ReadReplicaPrivateNetwork","description":"Create an endpoint in a Private Netork.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Read Replica should be created.\n","willReplaceOnChanges":true},"sameZone":{"type":"boolean","description":"Defines whether to create the replica in the same availability zone as the main instance nodes or not.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/databaseReadReplica:DatabaseReadReplica"}]},"scaleway:databases/serverlessDatabase:ServerlessDatabase":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.ServerlessDatabase`\" pulumi-lang-dotnet=\"`scaleway.databases.ServerlessDatabase`\" pulumi-lang-go=\"`databases.ServerlessDatabase`\" pulumi-lang-python=\"`databases.ServerlessDatabase`\" pulumi-lang-yaml=\"`scaleway.databases.ServerlessDatabase`\" pulumi-lang-java=\"`scaleway.databases.ServerlessDatabase`\"\u003e`scaleway.databases.ServerlessDatabase`\u003c/span\u003e resource allows you to create and manage databases for Scaleway Serverless SQL Databases.\n\nRefer to the Serverless SQL Databases [documentation](https://www.scaleway.com/en/docs/serverless-sql-databases/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-databases/) for more information.\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 database = new scaleway.databases.ServerlessDatabase(\"database\", {\n    name: \"my-database\",\n    minCpu: 0,\n    maxCpu: 8,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ndatabase = scaleway.databases.ServerlessDatabase(\"database\",\n    name=\"my-database\",\n    min_cpu=0,\n    max_cpu=8)\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 database = new Scaleway.Databases.ServerlessDatabase(\"database\", new()\n    {\n        Name = \"my-database\",\n        MinCpu = 0,\n        MaxCpu = 8,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.NewServerlessDatabase(ctx, \"database\", \u0026databases.ServerlessDatabaseArgs{\n\t\t\tName:   pulumi.String(\"my-database\"),\n\t\t\tMinCpu: pulumi.Int(0),\n\t\t\tMaxCpu: pulumi.Int(8),\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.databases.ServerlessDatabase;\nimport com.pulumi.scaleway.databases.ServerlessDatabaseArgs;\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 database = new ServerlessDatabase(\"database\", ServerlessDatabaseArgs.builder()\n            .name(\"my-database\")\n            .minCpu(0)\n            .maxCpu(8)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  database:\n    type: scaleway:databases:ServerlessDatabase\n    properties:\n      name: my-database\n      minCpu: 0\n      maxCpu: 8\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nServerless SQL Databases can be imported using the `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:databases/serverlessDatabase:ServerlessDatabase database fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the database.\n"},"maxCpu":{"type":"integer","description":"The maximum number of CPU units for your database. Defaults to 15.\n"},"minCpu":{"type":"integer","description":"The minimum number of CPU units for your database. Defaults to 0.\n"},"name":{"type":"string","description":"The name of the database (e.g. `my-new-database`).\n\n\u003e **Important:** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the database.\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n"}},"required":["endpoint","name","projectId"],"inputProperties":{"maxCpu":{"type":"integer","description":"The maximum number of CPU units for your database. Defaults to 15.\n"},"minCpu":{"type":"integer","description":"The minimum number of CPU units for your database. Defaults to 0.\n"},"name":{"type":"string","description":"The name of the database (e.g. `my-new-database`).\n\n\u003e **Important:** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the database.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering ServerlessDatabase resources.\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the database.\n"},"maxCpu":{"type":"integer","description":"The maximum number of CPU units for your database. Defaults to 15.\n"},"minCpu":{"type":"integer","description":"The minimum number of CPU units for your database. Defaults to 0.\n"},"name":{"type":"string","description":"The name of the database (e.g. `my-new-database`).\n\n\u003e **Important:** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the database.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/sdbDatabase:SdbDatabase"}]},"scaleway:databases/snapshot:Snapshot":{"description":"Creates and manages Scaleway RDB (Relational Database) Snapshots.\nSnapshots are point-in-time backups of a database instance that can be used for recovery or duplication.\nFor more information, refer to [the API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\n\n## Example Usage\n\n### Example Basic Snapshot\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.databases.Instance(\"main\", {\n    name: \"test-rdb-instance\",\n    nodeType: \"db-dev-s\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: false,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    tags: [\n        \"terraform-test\",\n        \"scaleway_rdb_instance\",\n        \"minimal\",\n    ],\n    volumeType: \"sbs_5k\",\n    volumeSizeInGb: 10,\n});\nconst test = new scaleway.databases.Snapshot(\"test\", {\n    name: \"initial-snapshot\",\n    instanceId: main.id,\n}, {\n    dependsOn: [main],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb-instance\",\n    node_type=\"db-dev-s\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=False,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    tags=[\n        \"terraform-test\",\n        \"scaleway_rdb_instance\",\n        \"minimal\",\n    ],\n    volume_type=\"sbs_5k\",\n    volume_size_in_gb=10)\ntest = scaleway.databases.Snapshot(\"test\",\n    name=\"initial-snapshot\",\n    instance_id=main.id,\n    opts = pulumi.ResourceOptions(depends_on=[main]))\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.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb-instance\",\n        NodeType = \"db-dev-s\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = false,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        Tags = new[]\n        {\n            \"terraform-test\",\n            \"scaleway_rdb_instance\",\n            \"minimal\",\n        },\n        VolumeType = \"sbs_5k\",\n        VolumeSizeInGb = 10,\n    });\n\n    var test = new Scaleway.Databases.Snapshot(\"test\", new()\n    {\n        Name = \"initial-snapshot\",\n        InstanceId = main.Id,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            main,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb-instance\"),\n\t\t\tNodeType:      pulumi.String(\"db-dev-s\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(false),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform-test\"),\n\t\t\t\tpulumi.String(\"scaleway_rdb_instance\"),\n\t\t\t\tpulumi.String(\"minimal\"),\n\t\t\t},\n\t\t\tVolumeType:     pulumi.String(\"sbs_5k\"),\n\t\t\tVolumeSizeInGb: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewSnapshot(ctx, \"test\", \u0026databases.SnapshotArgs{\n\t\t\tName:       pulumi.String(\"initial-snapshot\"),\n\t\t\tInstanceId: main.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmain,\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.Snapshot;\nimport com.pulumi.scaleway.databases.SnapshotArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb-instance\")\n            .nodeType(\"db-dev-s\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(false)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .tags(            \n                \"terraform-test\",\n                \"scaleway_rdb_instance\",\n                \"minimal\")\n            .volumeType(\"sbs_5k\")\n            .volumeSizeInGb(10)\n            .build());\n\n        var test = new Snapshot(\"test\", SnapshotArgs.builder()\n            .name(\"initial-snapshot\")\n            .instanceId(main.id())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(main)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb-instance\n      nodeType: db-dev-s\n      engine: PostgreSQL-15\n      isHaCluster: false\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      tags:\n        - terraform-test\n        - scaleway_rdb_instance\n        - minimal\n      volumeType: sbs_5k\n      volumeSizeInGb: 10\n  test:\n    type: scaleway:databases:Snapshot\n    properties:\n      name: initial-snapshot\n      instanceId: ${main.id}\n    options:\n      dependsOn:\n        - ${main}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with Expiration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst snapshotWithExpiration = new scaleway.databases.Snapshot(\"snapshot_with_expiration\", {\n    name: \"snapshot-with-expiration\",\n    instanceId: main.id,\n    expiresAt: \"2025-01-31T00:00:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsnapshot_with_expiration = scaleway.databases.Snapshot(\"snapshot_with_expiration\",\n    name=\"snapshot-with-expiration\",\n    instance_id=main[\"id\"],\n    expires_at=\"2025-01-31T00:00:00Z\")\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 snapshotWithExpiration = new Scaleway.Databases.Snapshot(\"snapshot_with_expiration\", new()\n    {\n        Name = \"snapshot-with-expiration\",\n        InstanceId = main.Id,\n        ExpiresAt = \"2025-01-31T00:00:00Z\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.NewSnapshot(ctx, \"snapshot_with_expiration\", \u0026databases.SnapshotArgs{\n\t\t\tName:       pulumi.String(\"snapshot-with-expiration\"),\n\t\t\tInstanceId: pulumi.Any(main.Id),\n\t\t\tExpiresAt:  pulumi.String(\"2025-01-31T00:00:00Z\"),\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.databases.Snapshot;\nimport com.pulumi.scaleway.databases.SnapshotArgs;\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 snapshotWithExpiration = new Snapshot(\"snapshotWithExpiration\", SnapshotArgs.builder()\n            .name(\"snapshot-with-expiration\")\n            .instanceId(main.id())\n            .expiresAt(\"2025-01-31T00:00:00Z\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  snapshotWithExpiration:\n    type: scaleway:databases:Snapshot\n    name: snapshot_with_expiration\n    properties:\n      name: snapshot-with-expiration\n      instanceId: ${main.id}\n      expiresAt: 2025-01-31T00:00:00Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with Multiple Snapshots\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst snapshotA = new scaleway.databases.Snapshot(\"snapshot_a\", {\n    name: \"snapshot_a\",\n    instanceId: main.id,\n}, {\n    dependsOn: [main],\n});\nconst snapshotB = new scaleway.databases.Snapshot(\"snapshot_b\", {\n    name: \"snapshot_b\",\n    instanceId: main.id,\n    expiresAt: \"2025-02-07T00:00:00Z\",\n}, {\n    dependsOn: [main],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsnapshot_a = scaleway.databases.Snapshot(\"snapshot_a\",\n    name=\"snapshot_a\",\n    instance_id=main[\"id\"],\n    opts = pulumi.ResourceOptions(depends_on=[main]))\nsnapshot_b = scaleway.databases.Snapshot(\"snapshot_b\",\n    name=\"snapshot_b\",\n    instance_id=main[\"id\"],\n    expires_at=\"2025-02-07T00:00:00Z\",\n    opts = pulumi.ResourceOptions(depends_on=[main]))\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 snapshotA = new Scaleway.Databases.Snapshot(\"snapshot_a\", new()\n    {\n        Name = \"snapshot_a\",\n        InstanceId = main.Id,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            main,\n        },\n    });\n\n    var snapshotB = new Scaleway.Databases.Snapshot(\"snapshot_b\", new()\n    {\n        Name = \"snapshot_b\",\n        InstanceId = main.Id,\n        ExpiresAt = \"2025-02-07T00:00:00Z\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            main,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.NewSnapshot(ctx, \"snapshot_a\", \u0026databases.SnapshotArgs{\n\t\t\tName:       pulumi.String(\"snapshot_a\"),\n\t\t\tInstanceId: pulumi.Any(main.Id),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmain,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewSnapshot(ctx, \"snapshot_b\", \u0026databases.SnapshotArgs{\n\t\t\tName:       pulumi.String(\"snapshot_b\"),\n\t\t\tInstanceId: pulumi.Any(main.Id),\n\t\t\tExpiresAt:  pulumi.String(\"2025-02-07T00:00:00Z\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmain,\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.databases.Snapshot;\nimport com.pulumi.scaleway.databases.SnapshotArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var snapshotA = new Snapshot(\"snapshotA\", SnapshotArgs.builder()\n            .name(\"snapshot_a\")\n            .instanceId(main.id())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(main)\n                .build());\n\n        var snapshotB = new Snapshot(\"snapshotB\", SnapshotArgs.builder()\n            .name(\"snapshot_b\")\n            .instanceId(main.id())\n            .expiresAt(\"2025-02-07T00:00:00Z\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(main)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  snapshotA:\n    type: scaleway:databases:Snapshot\n    name: snapshot_a\n    properties:\n      name: snapshot_a\n      instanceId: ${main.id}\n    options:\n      dependsOn:\n        - ${main}\n  snapshotB:\n    type: scaleway:databases:Snapshot\n    name: snapshot_b\n    properties:\n      name: snapshot_b\n      instanceId: ${main.id}\n      expiresAt: 2025-02-07T00:00:00Z\n    options:\n      dependsOn:\n        - ${main}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Limitations\n\n- Snapshots are tied to the database instance and region where they are created.\n- Expired snapshots are automatically deleted and cannot be restored.\n\n## Notes\n\n- Ensure the \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e corresponds to an existing database instance.\n- Use the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e argument when creating snapshots right after creating an instance to ensure proper dependency management.\n\n## Import\n\nRDB Snapshots can be imported using the `{region}/{snapshot_id}` format.\n\n","properties":{"createdAt":{"type":"string","description":"The timestamp when the snapshot was created, in ISO 8601 format.\n"},"expiresAt":{"type":"string","description":"Expiration date of the snapshot in ISO 8601 format (e.g., `2025-01-31T00:00:00Z`). If not set, the snapshot will not expire automatically.\n"},"instanceId":{"type":"string","description":"The UUID of the database instance for which the snapshot is created.\n"},"name":{"type":"string","description":"The name of the snapshot.\n"},"nodeType":{"type":"string","description":"The type of the database instance for which the snapshot was created.\n"},"region":{"type":"string","description":"The region where the snapshot is stored. Defaults to the region set in the provider configuration.\n"},"size":{"type":"integer","description":"The size of the snapshot in bytes.\n"},"status":{"type":"string","description":"The current status of the snapshot (e.g., \u003cspan pulumi-lang-nodejs=\"`ready`\" pulumi-lang-dotnet=\"`Ready`\" pulumi-lang-go=\"`ready`\" pulumi-lang-python=\"`ready`\" pulumi-lang-yaml=\"`ready`\" pulumi-lang-java=\"`ready`\"\u003e`ready`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e).\n"},"updatedAt":{"type":"string","description":"The timestamp when the snapshot was last updated, in ISO 8601 format.\n"},"volumeType":{"type":"string","description":"The type of volume used by the snapshot.\n"}},"required":["createdAt","expiresAt","instanceId","name","nodeType","size","status","updatedAt","volumeType"],"inputProperties":{"expiresAt":{"type":"string","description":"Expiration date of the snapshot in ISO 8601 format (e.g., `2025-01-31T00:00:00Z`). If not set, the snapshot will not expire automatically.\n"},"instanceId":{"type":"string","description":"The UUID of the database instance for which the snapshot is created.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot.\n"},"region":{"type":"string","description":"The region where the snapshot is stored. Defaults to the region set in the provider configuration.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Snapshot resources.\n","properties":{"createdAt":{"type":"string","description":"The timestamp when the snapshot was created, in ISO 8601 format.\n"},"expiresAt":{"type":"string","description":"Expiration date of the snapshot in ISO 8601 format (e.g., `2025-01-31T00:00:00Z`). If not set, the snapshot will not expire automatically.\n"},"instanceId":{"type":"string","description":"The UUID of the database instance for which the snapshot is created.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot.\n"},"nodeType":{"type":"string","description":"The type of the database instance for which the snapshot was created.\n"},"region":{"type":"string","description":"The region where the snapshot is stored. Defaults to the region set in the provider configuration.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The size of the snapshot in bytes.\n"},"status":{"type":"string","description":"The current status of the snapshot (e.g., \u003cspan pulumi-lang-nodejs=\"`ready`\" pulumi-lang-dotnet=\"`Ready`\" pulumi-lang-go=\"`ready`\" pulumi-lang-python=\"`ready`\" pulumi-lang-yaml=\"`ready`\" pulumi-lang-java=\"`ready`\"\u003e`ready`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e).\n"},"updatedAt":{"type":"string","description":"The timestamp when the snapshot was last updated, in ISO 8601 format.\n"},"volumeType":{"type":"string","description":"The type of volume used by the snapshot.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/rdbSnapshot:RdbSnapshot"}]},"scaleway:databases/user:User":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.User`\" pulumi-lang-dotnet=\"`scaleway.databases.User`\" pulumi-lang-go=\"`databases.User`\" pulumi-lang-python=\"`databases.User`\" pulumi-lang-yaml=\"`scaleway.databases.User`\" pulumi-lang-java=\"`scaleway.databases.User`\"\u003e`scaleway.databases.User`\u003c/span\u003e resource creates and manages database users.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\n\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as random from \"@pulumi/random\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n//## Basic user creation\nconst main = new scaleway.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst dbPassword = new random.index.Password(\"db_password\", {\n    length: 20,\n    special: true,\n    upper: true,\n    lower: true,\n    numeric: true,\n    minUpper: 1,\n    minLower: 1,\n    minNumeric: 1,\n    minSpecial: 1,\n    overrideSpecial: \"!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?\",\n});\nconst dbAdmin = new scaleway.databases.User(\"db_admin\", {\n    instanceId: main.id,\n    name: \"devtools\",\n    password: dbPassword.result,\n    isAdmin: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_random as random\nimport pulumiverse_scaleway as scaleway\n\n### Basic user creation\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\ndb_password = random.index.Password(\"db_password\",\n    length=20,\n    special=True,\n    upper=True,\n    lower=True,\n    numeric=True,\n    min_upper=1,\n    min_lower=1,\n    min_numeric=1,\n    min_special=1,\n    override_special=!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?)\ndb_admin = scaleway.databases.User(\"db_admin\",\n    instance_id=main.id,\n    name=\"devtools\",\n    password=db_password[\"result\"],\n    is_admin=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Random = Pulumi.Random;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //## Basic user creation\n    var main = new Scaleway.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var dbPassword = new Random.Index.Password(\"db_password\", new()\n    {\n        Length = 20,\n        Special = true,\n        Upper = true,\n        Lower = true,\n        Numeric = true,\n        MinUpper = 1,\n        MinLower = 1,\n        MinNumeric = 1,\n        MinSpecial = 1,\n        OverrideSpecial = \"!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?\",\n    });\n\n    var dbAdmin = new Scaleway.Databases.User(\"db_admin\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"devtools\",\n        Password = dbPassword.Result,\n        IsAdmin = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Basic user creation\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdbPassword, err := random.NewPassword(ctx, \"db_password\", \u0026random.PasswordArgs{\n\t\t\tLength:          20,\n\t\t\tSpecial:         true,\n\t\t\tUpper:           true,\n\t\t\tLower:           true,\n\t\t\tNumeric:         true,\n\t\t\tMinUpper:        1,\n\t\t\tMinLower:        1,\n\t\t\tMinNumeric:      1,\n\t\t\tMinSpecial:      1,\n\t\t\tOverrideSpecial: \"!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewUser(ctx, \"db_admin\", \u0026databases.UserArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"devtools\"),\n\t\t\tPassword:   dbPassword.Result,\n\t\t\tIsAdmin:    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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.random.Password;\nimport com.pulumi.random.PasswordArgs;\nimport com.pulumi.scaleway.databases.User;\nimport com.pulumi.scaleway.databases.UserArgs;\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        //## Basic user creation\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var dbPassword = new Password(\"dbPassword\", PasswordArgs.builder()\n            .length(20)\n            .special(true)\n            .upper(true)\n            .lower(true)\n            .numeric(true)\n            .minUpper(1)\n            .minLower(1)\n            .minNumeric(1)\n            .minSpecial(1)\n            .overrideSpecial(\"!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?\")\n            .build());\n\n        var dbAdmin = new User(\"dbAdmin\", UserArgs.builder()\n            .instanceId(main.id())\n            .name(\"devtools\")\n            .password(dbPassword.result())\n            .isAdmin(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Basic user creation\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  dbPassword:\n    type: random:Password\n    name: db_password\n    properties:\n      length: 20\n      special: true\n      upper: true\n      lower: true\n      numeric: true\n      minUpper: 1\n      minLower: 1\n      minNumeric: 1\n      minSpecial: 1 # Exclude characters that might cause issues in some contexts\n      overrideSpecial: '!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?'\n  dbAdmin:\n    type: scaleway:databases:User\n    name: db_admin\n    properties:\n      instanceId: ${main.id}\n      name: devtools\n      password: ${dbPassword.result}\n      isAdmin: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabase users can be imported using `{region}/{instance_id}/{user_name}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:databases/user:User admin fr-par/11111111-1111-1111-1111-111111111111/admin\n```\n\n","properties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database user.\n"},"isAdmin":{"type":"boolean","description":"Grant admin permissions to the database user.\n"},"name":{"type":"string","description":"database user name.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the database user.\n"},"password":{"type":"string","description":"database user password. The password must meet the following requirements based on ISO27001 standards:\n- **Length**: 8-128 characters\n- **Character types required**:\n- At least 1 lowercase letter (a-z)\n- At least 1 uppercase letter (A-Z)\n- At least 1 digit (0-9)\n- At least 1 special character (!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?)\n\nFor secure password generation, consider using the \u003cspan pulumi-lang-nodejs=\"`randomPassword`\" pulumi-lang-dotnet=\"`RandomPassword`\" pulumi-lang-go=\"`randomPassword`\" pulumi-lang-python=\"`random_password`\" pulumi-lang-yaml=\"`randomPassword`\" pulumi-lang-java=\"`randomPassword`\"\u003e`random_password`\u003c/span\u003e resource with appropriate parameters.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"region":{"type":"string","description":"The Scaleway region this resource resides in.\n"}},"required":["instanceId","name"],"inputProperties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database user.\n","willReplaceOnChanges":true},"isAdmin":{"type":"boolean","description":"Grant admin permissions to the database user.\n"},"name":{"type":"string","description":"database user name.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the database user.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"database user password. The password must meet the following requirements based on ISO27001 standards:\n- **Length**: 8-128 characters\n- **Character types required**:\n- At least 1 lowercase letter (a-z)\n- At least 1 uppercase letter (A-Z)\n- At least 1 digit (0-9)\n- At least 1 special character (!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?)\n\nFor secure password generation, consider using the \u003cspan pulumi-lang-nodejs=\"`randomPassword`\" pulumi-lang-dotnet=\"`RandomPassword`\" pulumi-lang-go=\"`randomPassword`\" pulumi-lang-python=\"`random_password`\" pulumi-lang-yaml=\"`randomPassword`\" pulumi-lang-java=\"`randomPassword`\"\u003e`random_password`\u003c/span\u003e resource with appropriate parameters.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"region":{"type":"string","description":"The Scaleway region this resource resides in.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database user.\n","willReplaceOnChanges":true},"isAdmin":{"type":"boolean","description":"Grant admin permissions to the database user.\n"},"name":{"type":"string","description":"database user name.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the database user.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"database user password. The password must meet the following requirements based on ISO27001 standards:\n- **Length**: 8-128 characters\n- **Character types required**:\n- At least 1 lowercase letter (a-z)\n- At least 1 uppercase letter (A-Z)\n- At least 1 digit (0-9)\n- At least 1 special character (!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?)\n\nFor secure password generation, consider using the \u003cspan pulumi-lang-nodejs=\"`randomPassword`\" pulumi-lang-dotnet=\"`RandomPassword`\" pulumi-lang-go=\"`randomPassword`\" pulumi-lang-python=\"`random_password`\" pulumi-lang-yaml=\"`randomPassword`\" pulumi-lang-java=\"`randomPassword`\"\u003e`random_password`\u003c/span\u003e resource with appropriate parameters.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"region":{"type":"string","description":"The Scaleway region this resource resides in.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/databaseUser:DatabaseUser"}]},"scaleway:datawarehouse/database:Database":{"description":"Creates and manages Scaleway Data Warehouse databases within a deployment.\nFor more information refer to the [product documentation](https://www.scaleway.com/en/docs/data-warehouse/).\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.datawarehouse.Deployment(\"main\", {\n    name: \"my-datawarehouse\",\n    version: \"v25\",\n    replicaCount: 1,\n    cpuMin: 2,\n    cpuMax: 4,\n    ramPerCpu: 4,\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst mainDatabase = new scaleway.datawarehouse.Database(\"main\", {\n    deploymentId: main.id,\n    name: \"my_database\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.datawarehouse.Deployment(\"main\",\n    name=\"my-datawarehouse\",\n    version=\"v25\",\n    replica_count=1,\n    cpu_min=2,\n    cpu_max=4,\n    ram_per_cpu=4,\n    password=\"thiZ_is_v\u0026ry_s3cret\")\nmain_database = scaleway.datawarehouse.Database(\"main\",\n    deployment_id=main.id,\n    name=\"my_database\")\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.Datawarehouse.Deployment(\"main\", new()\n    {\n        Name = \"my-datawarehouse\",\n        Version = \"v25\",\n        ReplicaCount = 1,\n        CpuMin = 2,\n        CpuMax = 4,\n        RamPerCpu = 4,\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var mainDatabase = new Scaleway.Datawarehouse.Database(\"main\", new()\n    {\n        DeploymentId = main.Id,\n        Name = \"my_database\",\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/datawarehouse\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := datawarehouse.NewDeployment(ctx, \"main\", \u0026datawarehouse.DeploymentArgs{\n\t\t\tName:         pulumi.String(\"my-datawarehouse\"),\n\t\t\tVersion:      pulumi.String(\"v25\"),\n\t\t\tReplicaCount: pulumi.Int(1),\n\t\t\tCpuMin:       pulumi.Int(2),\n\t\t\tCpuMax:       pulumi.Int(4),\n\t\t\tRamPerCpu:    pulumi.Int(4),\n\t\t\tPassword:     pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datawarehouse.NewDatabase(ctx, \"main\", \u0026datawarehouse.DatabaseArgs{\n\t\t\tDeploymentId: main.ID(),\n\t\t\tName:         pulumi.String(\"my_database\"),\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.datawarehouse.Deployment;\nimport com.pulumi.scaleway.datawarehouse.DeploymentArgs;\nimport com.pulumi.scaleway.datawarehouse.Database;\nimport com.pulumi.scaleway.datawarehouse.DatabaseArgs;\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 Deployment(\"main\", DeploymentArgs.builder()\n            .name(\"my-datawarehouse\")\n            .version(\"v25\")\n            .replicaCount(1)\n            .cpuMin(2)\n            .cpuMax(4)\n            .ramPerCpu(4)\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var mainDatabase = new Database(\"mainDatabase\", DatabaseArgs.builder()\n            .deploymentId(main.id())\n            .name(\"my_database\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:datawarehouse:Deployment\n    properties:\n      name: my-datawarehouse\n      version: v25\n      replicaCount: 1\n      cpuMin: 2\n      cpuMax: 4\n      ramPerCpu: 4\n      password: thiZ_is_v\u0026ry_s3cret\n  mainDatabase:\n    type: scaleway:datawarehouse:Database\n    name: main\n    properties:\n      deploymentId: ${main.id}\n      name: my_database\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nData Warehouse databases can be imported using the `{region}/{deployment_id}/{name}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:datawarehouse/database:Database main fr-par/11111111-1111-1111-1111-111111111111/my_database\n```\n\n","properties":{"deploymentId":{"type":"string","description":"ID of the Data Warehouse deployment to which this database belongs.\n"},"name":{"type":"string","description":"Name of the database.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the database should be created.\n"},"size":{"type":"integer","description":"Size of the database in GB.\n"}},"required":["deploymentId","name","size"],"inputProperties":{"deploymentId":{"type":"string","description":"ID of the Data Warehouse deployment to which this database belongs.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the database.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the database should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["deploymentId"],"stateInputs":{"description":"Input properties used for looking up and filtering Database resources.\n","properties":{"deploymentId":{"type":"string","description":"ID of the Data Warehouse deployment to which this database belongs.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the database.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the database should be created.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"Size of the database in GB.\n"}},"type":"object"}},"scaleway:datawarehouse/deployment:Deployment":{"description":"Creates and manages Scaleway Data Warehouse deployments.\nFor more information refer to the [product documentation](https://www.scaleway.com/en/docs/data-warehouse/).\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.datawarehouse.Deployment(\"main\", {\n    name: \"my-datawarehouse\",\n    version: \"v25\",\n    replicaCount: 1,\n    cpuMin: 2,\n    cpuMax: 4,\n    ramPerCpu: 4,\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.datawarehouse.Deployment(\"main\",\n    name=\"my-datawarehouse\",\n    version=\"v25\",\n    replica_count=1,\n    cpu_min=2,\n    cpu_max=4,\n    ram_per_cpu=4,\n    password=\"thiZ_is_v\u0026ry_s3cret\")\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.Datawarehouse.Deployment(\"main\", new()\n    {\n        Name = \"my-datawarehouse\",\n        Version = \"v25\",\n        ReplicaCount = 1,\n        CpuMin = 2,\n        CpuMax = 4,\n        RamPerCpu = 4,\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\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/datawarehouse\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datawarehouse.NewDeployment(ctx, \"main\", \u0026datawarehouse.DeploymentArgs{\n\t\t\tName:         pulumi.String(\"my-datawarehouse\"),\n\t\t\tVersion:      pulumi.String(\"v25\"),\n\t\t\tReplicaCount: pulumi.Int(1),\n\t\t\tCpuMin:       pulumi.Int(2),\n\t\t\tCpuMax:       pulumi.Int(4),\n\t\t\tRamPerCpu:    pulumi.Int(4),\n\t\t\tPassword:     pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\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.datawarehouse.Deployment;\nimport com.pulumi.scaleway.datawarehouse.DeploymentArgs;\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 Deployment(\"main\", DeploymentArgs.builder()\n            .name(\"my-datawarehouse\")\n            .version(\"v25\")\n            .replicaCount(1)\n            .cpuMin(2)\n            .cpuMax(4)\n            .ramPerCpu(4)\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:datawarehouse:Deployment\n    properties:\n      name: my-datawarehouse\n      version: v25\n      replicaCount: 1\n      cpuMin: 2\n      cpuMax: 4\n      ramPerCpu: 4\n      password: thiZ_is_v\u0026ry_s3cret\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With Tags\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.datawarehouse.Deployment(\"main\", {\n    name: \"my-datawarehouse\",\n    version: \"v25\",\n    replicaCount: 1,\n    cpuMin: 2,\n    cpuMax: 4,\n    ramPerCpu: 4,\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    tags: [\n        \"production\",\n        \"analytics\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.datawarehouse.Deployment(\"main\",\n    name=\"my-datawarehouse\",\n    version=\"v25\",\n    replica_count=1,\n    cpu_min=2,\n    cpu_max=4,\n    ram_per_cpu=4,\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    tags=[\n        \"production\",\n        \"analytics\",\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.Datawarehouse.Deployment(\"main\", new()\n    {\n        Name = \"my-datawarehouse\",\n        Version = \"v25\",\n        ReplicaCount = 1,\n        CpuMin = 2,\n        CpuMax = 4,\n        RamPerCpu = 4,\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        Tags = new[]\n        {\n            \"production\",\n            \"analytics\",\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/datawarehouse\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := datawarehouse.NewDeployment(ctx, \"main\", \u0026datawarehouse.DeploymentArgs{\n\t\t\tName:         pulumi.String(\"my-datawarehouse\"),\n\t\t\tVersion:      pulumi.String(\"v25\"),\n\t\t\tReplicaCount: pulumi.Int(1),\n\t\t\tCpuMin:       pulumi.Int(2),\n\t\t\tCpuMax:       pulumi.Int(4),\n\t\t\tRamPerCpu:    pulumi.Int(4),\n\t\t\tPassword:     pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"production\"),\n\t\t\t\tpulumi.String(\"analytics\"),\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.datawarehouse.Deployment;\nimport com.pulumi.scaleway.datawarehouse.DeploymentArgs;\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 Deployment(\"main\", DeploymentArgs.builder()\n            .name(\"my-datawarehouse\")\n            .version(\"v25\")\n            .replicaCount(1)\n            .cpuMin(2)\n            .cpuMax(4)\n            .ramPerCpu(4)\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .tags(            \n                \"production\",\n                \"analytics\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:datawarehouse:Deployment\n    properties:\n      name: my-datawarehouse\n      version: v25\n      replicaCount: 1\n      cpuMin: 2\n      cpuMax: 4\n      ramPerCpu: 4\n      password: thiZ_is_v\u0026ry_s3cret\n      tags:\n        - production\n        - analytics\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 \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.network.Vpc(\"main\", {name: \"my-vpc\"});\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {\n    name: \"my-private-network\",\n    vpcId: main.id,\n});\nconst mainDeployment = new scaleway.datawarehouse.Deployment(\"main\", {\n    name: \"my-datawarehouse\",\n    version: \"v25\",\n    replicaCount: 1,\n    cpuMin: 2,\n    cpuMax: 4,\n    ramPerCpu: 4,\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    privateNetwork: {\n        pnId: pn.id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.Vpc(\"main\", name=\"my-vpc\")\npn = scaleway.network.PrivateNetwork(\"pn\",\n    name=\"my-private-network\",\n    vpc_id=main.id)\nmain_deployment = scaleway.datawarehouse.Deployment(\"main\",\n    name=\"my-datawarehouse\",\n    version=\"v25\",\n    replica_count=1,\n    cpu_min=2,\n    cpu_max=4,\n    ram_per_cpu=4,\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    private_network={\n        \"pn_id\": pn.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 main = new Scaleway.Network.Vpc(\"main\", new()\n    {\n        Name = \"my-vpc\",\n    });\n\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\", new()\n    {\n        Name = \"my-private-network\",\n        VpcId = main.Id,\n    });\n\n    var mainDeployment = new Scaleway.Datawarehouse.Deployment(\"main\", new()\n    {\n        Name = \"my-datawarehouse\",\n        Version = \"v25\",\n        ReplicaCount = 1,\n        CpuMin = 2,\n        CpuMax = 4,\n        RamPerCpu = 4,\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        PrivateNetwork = new Scaleway.Datawarehouse.Inputs.DeploymentPrivateNetworkArgs\n        {\n            PnId = pn.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/datawarehouse\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewVpc(ctx, \"main\", \u0026network.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\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", \u0026network.PrivateNetworkArgs{\n\t\t\tName:  pulumi.String(\"my-private-network\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datawarehouse.NewDeployment(ctx, \"main\", \u0026datawarehouse.DeploymentArgs{\n\t\t\tName:         pulumi.String(\"my-datawarehouse\"),\n\t\t\tVersion:      pulumi.String(\"v25\"),\n\t\t\tReplicaCount: pulumi.Int(1),\n\t\t\tCpuMin:       pulumi.Int(2),\n\t\t\tCpuMax:       pulumi.Int(4),\n\t\t\tRamPerCpu:    pulumi.Int(4),\n\t\t\tPassword:     pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tPrivateNetwork: \u0026datawarehouse.DeploymentPrivateNetworkArgs{\n\t\t\t\tPnId: pn.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.datawarehouse.Deployment;\nimport com.pulumi.scaleway.datawarehouse.DeploymentArgs;\nimport com.pulumi.scaleway.datawarehouse.inputs.DeploymentPrivateNetworkArgs;\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 Vpc(\"main\", VpcArgs.builder()\n            .name(\"my-vpc\")\n            .build());\n\n        var pn = new PrivateNetwork(\"pn\", PrivateNetworkArgs.builder()\n            .name(\"my-private-network\")\n            .vpcId(main.id())\n            .build());\n\n        var mainDeployment = new Deployment(\"mainDeployment\", DeploymentArgs.builder()\n            .name(\"my-datawarehouse\")\n            .version(\"v25\")\n            .replicaCount(1)\n            .cpuMin(2)\n            .cpuMax(4)\n            .ramPerCpu(4)\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .privateNetwork(DeploymentPrivateNetworkArgs.builder()\n                .pnId(pn.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:Vpc\n    properties:\n      name: my-vpc\n  pn:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: my-private-network\n      vpcId: ${main.id}\n  mainDeployment:\n    type: scaleway:datawarehouse:Deployment\n    name: main\n    properties:\n      name: my-datawarehouse\n      version: v25\n      replicaCount: 1\n      cpuMin: 2\n      cpuMax: 4\n      ramPerCpu: 4\n      password: thiZ_is_v\u0026ry_s3cret\n      privateNetwork:\n        pnId: ${pn.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nData Warehouse deployments can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:datawarehouse/deployment:Deployment main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"cpuMax":{"type":"integer","description":"Maximum CPU count. Must be greater than or equal to \u003cspan pulumi-lang-nodejs=\"`cpuMin`\" pulumi-lang-dotnet=\"`CpuMin`\" pulumi-lang-go=\"`cpuMin`\" pulumi-lang-python=\"`cpu_min`\" pulumi-lang-yaml=\"`cpuMin`\" pulumi-lang-java=\"`cpuMin`\"\u003e`cpu_min`\u003c/span\u003e.\n"},"cpuMin":{"type":"integer","description":"Minimum CPU count. Must be less than or equal to \u003cspan pulumi-lang-nodejs=\"`cpuMax`\" pulumi-lang-dotnet=\"`CpuMax`\" pulumi-lang-go=\"`cpuMax`\" pulumi-lang-python=\"`cpu_max`\" pulumi-lang-yaml=\"`cpuMax`\" pulumi-lang-java=\"`cpuMax`\"\u003e`cpu_max`\u003c/span\u003e.\n"},"createdAt":{"type":"string","description":"Date and time of deployment creation (RFC 3339 format).\n"},"name":{"type":"string","description":"Name of the Data Warehouse deployment.\n"},"password":{"type":"string","description":"Password for the first user of the deployment. If not specified, a random password will be generated. Note: password is only used during deployment creation.\n","secret":true},"privateNetwork":{"$ref":"#/types/scaleway:datawarehouse/DeploymentPrivateNetwork:DeploymentPrivateNetwork","description":"Private network configuration to expose your deployment. Changing this forces recreation of the deployment.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n\n\u003e **Note:** A public endpoint is always created automatically alongside any private network configuration.\n\n\u003e **Note:** During the private beta phase, modifying \u003cspan pulumi-lang-nodejs=\"`cpuMin`\" pulumi-lang-dotnet=\"`CpuMin`\" pulumi-lang-go=\"`cpuMin`\" pulumi-lang-python=\"`cpu_min`\" pulumi-lang-yaml=\"`cpuMin`\" pulumi-lang-java=\"`cpuMin`\"\u003e`cpu_min`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cpuMax`\" pulumi-lang-dotnet=\"`CpuMax`\" pulumi-lang-go=\"`cpuMax`\" pulumi-lang-python=\"`cpu_max`\" pulumi-lang-yaml=\"`cpuMax`\" pulumi-lang-java=\"`cpuMax`\"\u003e`cpu_max`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`replicaCount`\" pulumi-lang-dotnet=\"`ReplicaCount`\" pulumi-lang-go=\"`replicaCount`\" pulumi-lang-python=\"`replica_count`\" pulumi-lang-yaml=\"`replicaCount`\" pulumi-lang-java=\"`replicaCount`\"\u003e`replica_count`\u003c/span\u003e has no effect until the feature is launched in general availability.\n"},"publicNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:datawarehouse/DeploymentPublicNetwork:DeploymentPublicNetwork"},"description":"Public endpoint information (always created automatically).\n"},"ramPerCpu":{"type":"integer","description":"RAM per CPU in GB.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment should be created.\n"},"replicaCount":{"type":"integer","description":"Number of replicas.\n"},"status":{"type":"string","description":"The status of the deployment (e.g., \"ready\", \"provisioning\").\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to apply to the deployment.\n"},"updatedAt":{"type":"string","description":"Date and time of deployment last update (RFC 3339 format).\n"},"version":{"type":"string","description":"ClickHouse version to use (e.g., \"v25\"). Changing this forces recreation of the deployment.\n"}},"required":["cpuMax","cpuMin","createdAt","name","projectId","publicNetworks","ramPerCpu","replicaCount","status","updatedAt","version"],"inputProperties":{"cpuMax":{"type":"integer","description":"Maximum CPU count. Must be greater than or equal to \u003cspan pulumi-lang-nodejs=\"`cpuMin`\" pulumi-lang-dotnet=\"`CpuMin`\" pulumi-lang-go=\"`cpuMin`\" pulumi-lang-python=\"`cpu_min`\" pulumi-lang-yaml=\"`cpuMin`\" pulumi-lang-java=\"`cpuMin`\"\u003e`cpu_min`\u003c/span\u003e.\n"},"cpuMin":{"type":"integer","description":"Minimum CPU count. Must be less than or equal to \u003cspan pulumi-lang-nodejs=\"`cpuMax`\" pulumi-lang-dotnet=\"`CpuMax`\" pulumi-lang-go=\"`cpuMax`\" pulumi-lang-python=\"`cpu_max`\" pulumi-lang-yaml=\"`cpuMax`\" pulumi-lang-java=\"`cpuMax`\"\u003e`cpu_max`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the Data Warehouse deployment.\n"},"password":{"type":"string","description":"Password for the first user of the deployment. If not specified, a random password will be generated. Note: password is only used during deployment creation.\n","secret":true},"privateNetwork":{"$ref":"#/types/scaleway:datawarehouse/DeploymentPrivateNetwork:DeploymentPrivateNetwork","description":"Private network configuration to expose your deployment. Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n\n\u003e **Note:** A public endpoint is always created automatically alongside any private network configuration.\n\n\u003e **Note:** During the private beta phase, modifying \u003cspan pulumi-lang-nodejs=\"`cpuMin`\" pulumi-lang-dotnet=\"`CpuMin`\" pulumi-lang-go=\"`cpuMin`\" pulumi-lang-python=\"`cpu_min`\" pulumi-lang-yaml=\"`cpuMin`\" pulumi-lang-java=\"`cpuMin`\"\u003e`cpu_min`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cpuMax`\" pulumi-lang-dotnet=\"`CpuMax`\" pulumi-lang-go=\"`cpuMax`\" pulumi-lang-python=\"`cpu_max`\" pulumi-lang-yaml=\"`cpuMax`\" pulumi-lang-java=\"`cpuMax`\"\u003e`cpu_max`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`replicaCount`\" pulumi-lang-dotnet=\"`ReplicaCount`\" pulumi-lang-go=\"`replicaCount`\" pulumi-lang-python=\"`replica_count`\" pulumi-lang-yaml=\"`replicaCount`\" pulumi-lang-java=\"`replicaCount`\"\u003e`replica_count`\u003c/span\u003e has no effect until the feature is launched in general availability.\n","willReplaceOnChanges":true},"ramPerCpu":{"type":"integer","description":"RAM per CPU in GB.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment should be created.\n","willReplaceOnChanges":true},"replicaCount":{"type":"integer","description":"Number of replicas.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to apply to the deployment.\n"},"version":{"type":"string","description":"ClickHouse version to use (e.g., \"v25\"). Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true}},"requiredInputs":["cpuMax","cpuMin","ramPerCpu","replicaCount","version"],"stateInputs":{"description":"Input properties used for looking up and filtering Deployment resources.\n","properties":{"cpuMax":{"type":"integer","description":"Maximum CPU count. Must be greater than or equal to \u003cspan pulumi-lang-nodejs=\"`cpuMin`\" pulumi-lang-dotnet=\"`CpuMin`\" pulumi-lang-go=\"`cpuMin`\" pulumi-lang-python=\"`cpu_min`\" pulumi-lang-yaml=\"`cpuMin`\" pulumi-lang-java=\"`cpuMin`\"\u003e`cpu_min`\u003c/span\u003e.\n"},"cpuMin":{"type":"integer","description":"Minimum CPU count. Must be less than or equal to \u003cspan pulumi-lang-nodejs=\"`cpuMax`\" pulumi-lang-dotnet=\"`CpuMax`\" pulumi-lang-go=\"`cpuMax`\" pulumi-lang-python=\"`cpu_max`\" pulumi-lang-yaml=\"`cpuMax`\" pulumi-lang-java=\"`cpuMax`\"\u003e`cpu_max`\u003c/span\u003e.\n"},"createdAt":{"type":"string","description":"Date and time of deployment creation (RFC 3339 format).\n"},"name":{"type":"string","description":"Name of the Data Warehouse deployment.\n"},"password":{"type":"string","description":"Password for the first user of the deployment. If not specified, a random password will be generated. Note: password is only used during deployment creation.\n","secret":true},"privateNetwork":{"$ref":"#/types/scaleway:datawarehouse/DeploymentPrivateNetwork:DeploymentPrivateNetwork","description":"Private network configuration to expose your deployment. Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n\n\u003e **Note:** A public endpoint is always created automatically alongside any private network configuration.\n\n\u003e **Note:** During the private beta phase, modifying \u003cspan pulumi-lang-nodejs=\"`cpuMin`\" pulumi-lang-dotnet=\"`CpuMin`\" pulumi-lang-go=\"`cpuMin`\" pulumi-lang-python=\"`cpu_min`\" pulumi-lang-yaml=\"`cpuMin`\" pulumi-lang-java=\"`cpuMin`\"\u003e`cpu_min`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cpuMax`\" pulumi-lang-dotnet=\"`CpuMax`\" pulumi-lang-go=\"`cpuMax`\" pulumi-lang-python=\"`cpu_max`\" pulumi-lang-yaml=\"`cpuMax`\" pulumi-lang-java=\"`cpuMax`\"\u003e`cpu_max`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`replicaCount`\" pulumi-lang-dotnet=\"`ReplicaCount`\" pulumi-lang-go=\"`replicaCount`\" pulumi-lang-python=\"`replica_count`\" pulumi-lang-yaml=\"`replicaCount`\" pulumi-lang-java=\"`replicaCount`\"\u003e`replica_count`\u003c/span\u003e has no effect until the feature is launched in general availability.\n","willReplaceOnChanges":true},"publicNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:datawarehouse/DeploymentPublicNetwork:DeploymentPublicNetwork"},"description":"Public endpoint information (always created automatically).\n"},"ramPerCpu":{"type":"integer","description":"RAM per CPU in GB.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment should be created.\n","willReplaceOnChanges":true},"replicaCount":{"type":"integer","description":"Number of replicas.\n"},"status":{"type":"string","description":"The status of the deployment (e.g., \"ready\", \"provisioning\").\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to apply to the deployment.\n"},"updatedAt":{"type":"string","description":"Date and time of deployment last update (RFC 3339 format).\n"},"version":{"type":"string","description":"ClickHouse version to use (e.g., \"v25\"). Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:datawarehouse/user:User":{"description":"Creates and manages Scaleway Data Warehouse users within a deployment.\nFor more information refer to the [product documentation](https://www.scaleway.com/en/docs/data-warehouse/).\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.datawarehouse.Deployment(\"main\", {\n    name: \"my-datawarehouse\",\n    version: \"v25\",\n    replicaCount: 1,\n    cpuMin: 2,\n    cpuMax: 4,\n    ramPerCpu: 4,\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst mainUser = new scaleway.datawarehouse.User(\"main\", {\n    deploymentId: main.id,\n    name: \"my_user\",\n    password: \"user_password_123\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.datawarehouse.Deployment(\"main\",\n    name=\"my-datawarehouse\",\n    version=\"v25\",\n    replica_count=1,\n    cpu_min=2,\n    cpu_max=4,\n    ram_per_cpu=4,\n    password=\"thiZ_is_v\u0026ry_s3cret\")\nmain_user = scaleway.datawarehouse.User(\"main\",\n    deployment_id=main.id,\n    name=\"my_user\",\n    password=\"user_password_123\")\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.Datawarehouse.Deployment(\"main\", new()\n    {\n        Name = \"my-datawarehouse\",\n        Version = \"v25\",\n        ReplicaCount = 1,\n        CpuMin = 2,\n        CpuMax = 4,\n        RamPerCpu = 4,\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var mainUser = new Scaleway.Datawarehouse.User(\"main\", new()\n    {\n        DeploymentId = main.Id,\n        Name = \"my_user\",\n        Password = \"user_password_123\",\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/datawarehouse\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := datawarehouse.NewDeployment(ctx, \"main\", \u0026datawarehouse.DeploymentArgs{\n\t\t\tName:         pulumi.String(\"my-datawarehouse\"),\n\t\t\tVersion:      pulumi.String(\"v25\"),\n\t\t\tReplicaCount: pulumi.Int(1),\n\t\t\tCpuMin:       pulumi.Int(2),\n\t\t\tCpuMax:       pulumi.Int(4),\n\t\t\tRamPerCpu:    pulumi.Int(4),\n\t\t\tPassword:     pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datawarehouse.NewUser(ctx, \"main\", \u0026datawarehouse.UserArgs{\n\t\t\tDeploymentId: main.ID(),\n\t\t\tName:         pulumi.String(\"my_user\"),\n\t\t\tPassword:     pulumi.String(\"user_password_123\"),\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.datawarehouse.Deployment;\nimport com.pulumi.scaleway.datawarehouse.DeploymentArgs;\nimport com.pulumi.scaleway.datawarehouse.User;\nimport com.pulumi.scaleway.datawarehouse.UserArgs;\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 Deployment(\"main\", DeploymentArgs.builder()\n            .name(\"my-datawarehouse\")\n            .version(\"v25\")\n            .replicaCount(1)\n            .cpuMin(2)\n            .cpuMax(4)\n            .ramPerCpu(4)\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var mainUser = new User(\"mainUser\", UserArgs.builder()\n            .deploymentId(main.id())\n            .name(\"my_user\")\n            .password(\"user_password_123\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:datawarehouse:Deployment\n    properties:\n      name: my-datawarehouse\n      version: v25\n      replicaCount: 1\n      cpuMin: 2\n      cpuMax: 4\n      ramPerCpu: 4\n      password: thiZ_is_v\u0026ry_s3cret\n  mainUser:\n    type: scaleway:datawarehouse:User\n    name: main\n    properties:\n      deploymentId: ${main.id}\n      name: my_user\n      password: user_password_123\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Admin User\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.datawarehouse.Deployment(\"main\", {\n    name: \"my-datawarehouse\",\n    version: \"v25\",\n    replicaCount: 1,\n    cpuMin: 2,\n    cpuMax: 4,\n    ramPerCpu: 4,\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst admin = new scaleway.datawarehouse.User(\"admin\", {\n    deploymentId: main.id,\n    name: \"admin_user\",\n    password: \"admin_password_456\",\n    isAdmin: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.datawarehouse.Deployment(\"main\",\n    name=\"my-datawarehouse\",\n    version=\"v25\",\n    replica_count=1,\n    cpu_min=2,\n    cpu_max=4,\n    ram_per_cpu=4,\n    password=\"thiZ_is_v\u0026ry_s3cret\")\nadmin = scaleway.datawarehouse.User(\"admin\",\n    deployment_id=main.id,\n    name=\"admin_user\",\n    password=\"admin_password_456\",\n    is_admin=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 main = new Scaleway.Datawarehouse.Deployment(\"main\", new()\n    {\n        Name = \"my-datawarehouse\",\n        Version = \"v25\",\n        ReplicaCount = 1,\n        CpuMin = 2,\n        CpuMax = 4,\n        RamPerCpu = 4,\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var admin = new Scaleway.Datawarehouse.User(\"admin\", new()\n    {\n        DeploymentId = main.Id,\n        Name = \"admin_user\",\n        Password = \"admin_password_456\",\n        IsAdmin = 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/datawarehouse\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := datawarehouse.NewDeployment(ctx, \"main\", \u0026datawarehouse.DeploymentArgs{\n\t\t\tName:         pulumi.String(\"my-datawarehouse\"),\n\t\t\tVersion:      pulumi.String(\"v25\"),\n\t\t\tReplicaCount: pulumi.Int(1),\n\t\t\tCpuMin:       pulumi.Int(2),\n\t\t\tCpuMax:       pulumi.Int(4),\n\t\t\tRamPerCpu:    pulumi.Int(4),\n\t\t\tPassword:     pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datawarehouse.NewUser(ctx, \"admin\", \u0026datawarehouse.UserArgs{\n\t\t\tDeploymentId: main.ID(),\n\t\t\tName:         pulumi.String(\"admin_user\"),\n\t\t\tPassword:     pulumi.String(\"admin_password_456\"),\n\t\t\tIsAdmin:      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.datawarehouse.Deployment;\nimport com.pulumi.scaleway.datawarehouse.DeploymentArgs;\nimport com.pulumi.scaleway.datawarehouse.User;\nimport com.pulumi.scaleway.datawarehouse.UserArgs;\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 Deployment(\"main\", DeploymentArgs.builder()\n            .name(\"my-datawarehouse\")\n            .version(\"v25\")\n            .replicaCount(1)\n            .cpuMin(2)\n            .cpuMax(4)\n            .ramPerCpu(4)\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var admin = new User(\"admin\", UserArgs.builder()\n            .deploymentId(main.id())\n            .name(\"admin_user\")\n            .password(\"admin_password_456\")\n            .isAdmin(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:datawarehouse:Deployment\n    properties:\n      name: my-datawarehouse\n      version: v25\n      replicaCount: 1\n      cpuMin: 2\n      cpuMax: 4\n      ramPerCpu: 4\n      password: thiZ_is_v\u0026ry_s3cret\n  admin:\n    type: scaleway:datawarehouse:User\n    properties:\n      deploymentId: ${main.id}\n      name: admin_user\n      password: admin_password_456\n      isAdmin: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nData Warehouse users can be imported using the `{region}/{deployment_id}/{name}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:datawarehouse/user:User main fr-par/11111111-1111-1111-1111-111111111111/my_user\n```\n\n","properties":{"deploymentId":{"type":"string","description":"ID of the Data Warehouse deployment to which this user belongs.\n"},"isAdmin":{"type":"boolean","description":"Whether the user has administrator privileges. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the ClickHouse user.\n"},"password":{"type":"string","description":"Password for the ClickHouse user.\n","secret":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the user should be created.\n"}},"required":["deploymentId","name","password"],"inputProperties":{"deploymentId":{"type":"string","description":"ID of the Data Warehouse deployment to which this user belongs.\n","willReplaceOnChanges":true},"isAdmin":{"type":"boolean","description":"Whether the user has administrator privileges. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the ClickHouse user.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"Password for the ClickHouse user.\n","secret":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the user should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["deploymentId","password"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"deploymentId":{"type":"string","description":"ID of the Data Warehouse deployment to which this user belongs.\n","willReplaceOnChanges":true},"isAdmin":{"type":"boolean","description":"Whether the user has administrator privileges. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Name of the ClickHouse user.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"Password for the ClickHouse user.\n","secret":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the user should be created.\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:domain/record:Record":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.domain.Record`\" pulumi-lang-dotnet=\"`scaleway.domain.Record`\" pulumi-lang-go=\"`domain.Record`\" pulumi-lang-python=\"`domain.Record`\" pulumi-lang-yaml=\"`scaleway.domain.Record`\" pulumi-lang-java=\"`scaleway.domain.Record`\"\u003e`scaleway.domain.Record`\u003c/span\u003e resource allows you to create and manage DNS records for Scaleway domains.\n\nRefer to the Domains and DNS [product documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) and [API documentation](https://www.scaleway.com/en/developers/api/domains-and-dns/) for more information.\n\n## Example Usage\n\n### Create basic DNS records\n\nThe following commands allow you to:\n\n- create an A record for the `www.domain.tld` domain, pointing to `1.2.3.4` and another one pointing to `1.2.3.5`\n\n- create an MX record with the `mx.online.net.` mail server and a priority of 10, and another one with the `mx-cache.online.net.` mail server and a priority of 20\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst www = new scaleway.domain.Record(\"www\", {\n    dnsZone: \"domain.tld\",\n    name: \"www\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n    ttl: 3600,\n});\nconst www2 = new scaleway.domain.Record(\"www2\", {\n    dnsZone: \"domain.tld\",\n    name: \"www\",\n    type: \"A\",\n    data: \"1.2.3.5\",\n    ttl: 3600,\n});\nconst mx = new scaleway.domain.Record(\"mx\", {\n    dnsZone: \"domain.tld\",\n    name: \"\",\n    type: \"MX\",\n    data: \"mx.online.net.\",\n    ttl: 3600,\n    priority: 10,\n});\nconst mx2 = new scaleway.domain.Record(\"mx2\", {\n    dnsZone: \"domain.tld\",\n    name: \"\",\n    type: \"MX\",\n    data: \"mx-cache.online.net.\",\n    ttl: 3600,\n    priority: 20,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nwww = scaleway.domain.Record(\"www\",\n    dns_zone=\"domain.tld\",\n    name=\"www\",\n    type=\"A\",\n    data=\"1.2.3.4\",\n    ttl=3600)\nwww2 = scaleway.domain.Record(\"www2\",\n    dns_zone=\"domain.tld\",\n    name=\"www\",\n    type=\"A\",\n    data=\"1.2.3.5\",\n    ttl=3600)\nmx = scaleway.domain.Record(\"mx\",\n    dns_zone=\"domain.tld\",\n    name=\"\",\n    type=\"MX\",\n    data=\"mx.online.net.\",\n    ttl=3600,\n    priority=10)\nmx2 = scaleway.domain.Record(\"mx2\",\n    dns_zone=\"domain.tld\",\n    name=\"\",\n    type=\"MX\",\n    data=\"mx-cache.online.net.\",\n    ttl=3600,\n    priority=20)\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 www = new Scaleway.Domain.Record(\"www\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"www\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n        Ttl = 3600,\n    });\n\n    var www2 = new Scaleway.Domain.Record(\"www2\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"www\",\n        Type = \"A\",\n        Data = \"1.2.3.5\",\n        Ttl = 3600,\n    });\n\n    var mx = new Scaleway.Domain.Record(\"mx\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"\",\n        Type = \"MX\",\n        Data = \"mx.online.net.\",\n        Ttl = 3600,\n        Priority = 10,\n    });\n\n    var mx2 = new Scaleway.Domain.Record(\"mx2\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"\",\n        Type = \"MX\",\n        Data = \"mx-cache.online.net.\",\n        Ttl = 3600,\n        Priority = 20,\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/domain\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := domain.NewRecord(ctx, \"www\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"www\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.4\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"www2\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"www\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.5\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"mx\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"domain.tld\"),\n\t\t\tName:     pulumi.String(\"\"),\n\t\t\tType:     pulumi.String(\"MX\"),\n\t\t\tData:     pulumi.String(\"mx.online.net.\"),\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"mx2\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"domain.tld\"),\n\t\t\tName:     pulumi.String(\"\"),\n\t\t\tType:     pulumi.String(\"MX\"),\n\t\t\tData:     pulumi.String(\"mx-cache.online.net.\"),\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: pulumi.Int(20),\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.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\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 www = new Record(\"www\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"www\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .ttl(3600)\n            .build());\n\n        var www2 = new Record(\"www2\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"www\")\n            .type(\"A\")\n            .data(\"1.2.3.5\")\n            .ttl(3600)\n            .build());\n\n        var mx = new Record(\"mx\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"\")\n            .type(\"MX\")\n            .data(\"mx.online.net.\")\n            .ttl(3600)\n            .priority(10)\n            .build());\n\n        var mx2 = new Record(\"mx2\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"\")\n            .type(\"MX\")\n            .data(\"mx-cache.online.net.\")\n            .ttl(3600)\n            .priority(20)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  www:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: www\n      type: A\n      data: 1.2.3.4\n      ttl: 3600\n  www2:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: www\n      type: A\n      data: 1.2.3.5\n      ttl: 3600\n  mx:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: \"\"\n      type: MX\n      data: mx.online.net.\n      ttl: 3600\n      priority: 10\n  mx2:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: \"\"\n      type: MX\n      data: mx-cache.online.net.\n      ttl: 3600\n      priority: 20\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create dynamic records\n\nThe following commands allow you to:\n\n- create a Geo IP record for `images.domain.tld` that points to different IPs based on the user's location: `1.2.3.5` for users in France (EU), and `4.3.2.1` for users in North America (NA)\n\n- create an HTTP service record for `app.domain.tld` that checks the health of specified IPs and responds based on their status.\n\n- create view-based records for `db.domain.tld` that resolve differently based on the client's subnet.\n\n- create a weighted record for `web.domain.tld` that directs traffic to different IPs based on their weights.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst geoIp = new scaleway.domain.Record(\"geo_ip\", {\n    dnsZone: \"domain.tld\",\n    name: \"images\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n    ttl: 3600,\n    geoIp: {\n        matches: [\n            {\n                continents: [\"EU\"],\n                countries: [\"FR\"],\n                data: \"1.2.3.5\",\n            },\n            {\n                continents: [\"NA\"],\n                data: \"4.3.2.1\",\n            },\n        ],\n    },\n});\nconst httpService = new scaleway.domain.Record(\"http_service\", {\n    dnsZone: \"domain.tld\",\n    name: \"app\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n    ttl: 3600,\n    httpService: {\n        ips: [\n            \"1.2.3.5\",\n            \"1.2.3.6\",\n        ],\n        mustContain: \"up\",\n        url: \"http://mywebsite.com/health\",\n        userAgent: \"scw_service_up\",\n        strategy: \"hashed\",\n    },\n});\nconst view = new scaleway.domain.Record(\"view\", {\n    dnsZone: \"domain.tld\",\n    name: \"db\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n    ttl: 3600,\n    views: [\n        {\n            subnet: \"100.0.0.0/16\",\n            data: \"1.2.3.5\",\n        },\n        {\n            subnet: \"100.1.0.0/16\",\n            data: \"1.2.3.6\",\n        },\n    ],\n});\nconst weighted = new scaleway.domain.Record(\"weighted\", {\n    dnsZone: \"domain.tld\",\n    name: \"web\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n    ttl: 3600,\n    weighteds: [\n        {\n            ip: \"1.2.3.5\",\n            weight: 1,\n        },\n        {\n            ip: \"1.2.3.6\",\n            weight: 2,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ngeo_ip = scaleway.domain.Record(\"geo_ip\",\n    dns_zone=\"domain.tld\",\n    name=\"images\",\n    type=\"A\",\n    data=\"1.2.3.4\",\n    ttl=3600,\n    geo_ip={\n        \"matches\": [\n            {\n                \"continents\": [\"EU\"],\n                \"countries\": [\"FR\"],\n                \"data\": \"1.2.3.5\",\n            },\n            {\n                \"continents\": [\"NA\"],\n                \"data\": \"4.3.2.1\",\n            },\n        ],\n    })\nhttp_service = scaleway.domain.Record(\"http_service\",\n    dns_zone=\"domain.tld\",\n    name=\"app\",\n    type=\"A\",\n    data=\"1.2.3.4\",\n    ttl=3600,\n    http_service={\n        \"ips\": [\n            \"1.2.3.5\",\n            \"1.2.3.6\",\n        ],\n        \"must_contain\": \"up\",\n        \"url\": \"http://mywebsite.com/health\",\n        \"user_agent\": \"scw_service_up\",\n        \"strategy\": \"hashed\",\n    })\nview = scaleway.domain.Record(\"view\",\n    dns_zone=\"domain.tld\",\n    name=\"db\",\n    type=\"A\",\n    data=\"1.2.3.4\",\n    ttl=3600,\n    views=[\n        {\n            \"subnet\": \"100.0.0.0/16\",\n            \"data\": \"1.2.3.5\",\n        },\n        {\n            \"subnet\": \"100.1.0.0/16\",\n            \"data\": \"1.2.3.6\",\n        },\n    ])\nweighted = scaleway.domain.Record(\"weighted\",\n    dns_zone=\"domain.tld\",\n    name=\"web\",\n    type=\"A\",\n    data=\"1.2.3.4\",\n    ttl=3600,\n    weighteds=[\n        {\n            \"ip\": \"1.2.3.5\",\n            \"weight\": 1,\n        },\n        {\n            \"ip\": \"1.2.3.6\",\n            \"weight\": 2,\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 geoIp = new Scaleway.Domain.Record(\"geo_ip\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"images\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n        Ttl = 3600,\n        GeoIp = new Scaleway.Domain.Inputs.RecordGeoIpArgs\n        {\n            Matches = new[]\n            {\n                new Scaleway.Domain.Inputs.RecordGeoIpMatchArgs\n                {\n                    Continents = new[]\n                    {\n                        \"EU\",\n                    },\n                    Countries = new[]\n                    {\n                        \"FR\",\n                    },\n                    Data = \"1.2.3.5\",\n                },\n                new Scaleway.Domain.Inputs.RecordGeoIpMatchArgs\n                {\n                    Continents = new[]\n                    {\n                        \"NA\",\n                    },\n                    Data = \"4.3.2.1\",\n                },\n            },\n        },\n    });\n\n    var httpService = new Scaleway.Domain.Record(\"http_service\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"app\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n        Ttl = 3600,\n        HttpService = new Scaleway.Domain.Inputs.RecordHttpServiceArgs\n        {\n            Ips = new[]\n            {\n                \"1.2.3.5\",\n                \"1.2.3.6\",\n            },\n            MustContain = \"up\",\n            Url = \"http://mywebsite.com/health\",\n            UserAgent = \"scw_service_up\",\n            Strategy = \"hashed\",\n        },\n    });\n\n    var view = new Scaleway.Domain.Record(\"view\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"db\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n        Ttl = 3600,\n        Views = new[]\n        {\n            new Scaleway.Domain.Inputs.RecordViewArgs\n            {\n                Subnet = \"100.0.0.0/16\",\n                Data = \"1.2.3.5\",\n            },\n            new Scaleway.Domain.Inputs.RecordViewArgs\n            {\n                Subnet = \"100.1.0.0/16\",\n                Data = \"1.2.3.6\",\n            },\n        },\n    });\n\n    var weighted = new Scaleway.Domain.Record(\"weighted\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"web\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n        Ttl = 3600,\n        Weighteds = new[]\n        {\n            new Scaleway.Domain.Inputs.RecordWeightedArgs\n            {\n                Ip = \"1.2.3.5\",\n                Weight = 1,\n            },\n            new Scaleway.Domain.Inputs.RecordWeightedArgs\n            {\n                Ip = \"1.2.3.6\",\n                Weight = 2,\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/domain\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := domain.NewRecord(ctx, \"geo_ip\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"images\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.4\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t\tGeoIp: \u0026domain.RecordGeoIpArgs{\n\t\t\t\tMatches: domain.RecordGeoIpMatchArray{\n\t\t\t\t\t\u0026domain.RecordGeoIpMatchArgs{\n\t\t\t\t\t\tContinents: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"EU\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCountries: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"FR\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tData: pulumi.String(\"1.2.3.5\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026domain.RecordGeoIpMatchArgs{\n\t\t\t\t\t\tContinents: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"NA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tData: pulumi.String(\"4.3.2.1\"),\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\t_, err = domain.NewRecord(ctx, \"http_service\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"app\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.4\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t\tHttpService: \u0026domain.RecordHttpServiceArgs{\n\t\t\t\tIps: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"1.2.3.5\"),\n\t\t\t\t\tpulumi.String(\"1.2.3.6\"),\n\t\t\t\t},\n\t\t\t\tMustContain: pulumi.String(\"up\"),\n\t\t\t\tUrl:         pulumi.String(\"http://mywebsite.com/health\"),\n\t\t\t\tUserAgent:   pulumi.String(\"scw_service_up\"),\n\t\t\t\tStrategy:    pulumi.String(\"hashed\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"view\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"db\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.4\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t\tViews: domain.RecordViewArray{\n\t\t\t\t\u0026domain.RecordViewArgs{\n\t\t\t\t\tSubnet: pulumi.String(\"100.0.0.0/16\"),\n\t\t\t\t\tData:   pulumi.String(\"1.2.3.5\"),\n\t\t\t\t},\n\t\t\t\t\u0026domain.RecordViewArgs{\n\t\t\t\t\tSubnet: pulumi.String(\"100.1.0.0/16\"),\n\t\t\t\t\tData:   pulumi.String(\"1.2.3.6\"),\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 = domain.NewRecord(ctx, \"weighted\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"web\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.4\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t\tWeighteds: domain.RecordWeightedArray{\n\t\t\t\t\u0026domain.RecordWeightedArgs{\n\t\t\t\t\tIp:     pulumi.String(\"1.2.3.5\"),\n\t\t\t\t\tWeight: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t\t\u0026domain.RecordWeightedArgs{\n\t\t\t\t\tIp:     pulumi.String(\"1.2.3.6\"),\n\t\t\t\t\tWeight: pulumi.Int(2),\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.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.scaleway.domain.inputs.RecordGeoIpArgs;\nimport com.pulumi.scaleway.domain.inputs.RecordHttpServiceArgs;\nimport com.pulumi.scaleway.domain.inputs.RecordViewArgs;\nimport com.pulumi.scaleway.domain.inputs.RecordWeightedArgs;\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 geoIp = new Record(\"geoIp\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"images\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .ttl(3600)\n            .geoIp(RecordGeoIpArgs.builder()\n                .matches(                \n                    RecordGeoIpMatchArgs.builder()\n                        .continents(\"EU\")\n                        .countries(\"FR\")\n                        .data(\"1.2.3.5\")\n                        .build(),\n                    RecordGeoIpMatchArgs.builder()\n                        .continents(\"NA\")\n                        .data(\"4.3.2.1\")\n                        .build())\n                .build())\n            .build());\n\n        var httpService = new Record(\"httpService\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"app\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .ttl(3600)\n            .httpService(RecordHttpServiceArgs.builder()\n                .ips(                \n                    \"1.2.3.5\",\n                    \"1.2.3.6\")\n                .mustContain(\"up\")\n                .url(\"http://mywebsite.com/health\")\n                .userAgent(\"scw_service_up\")\n                .strategy(\"hashed\")\n                .build())\n            .build());\n\n        var view = new Record(\"view\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"db\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .ttl(3600)\n            .views(            \n                RecordViewArgs.builder()\n                    .subnet(\"100.0.0.0/16\")\n                    .data(\"1.2.3.5\")\n                    .build(),\n                RecordViewArgs.builder()\n                    .subnet(\"100.1.0.0/16\")\n                    .data(\"1.2.3.6\")\n                    .build())\n            .build());\n\n        var weighted = new Record(\"weighted\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"web\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .ttl(3600)\n            .weighteds(            \n                RecordWeightedArgs.builder()\n                    .ip(\"1.2.3.5\")\n                    .weight(1)\n                    .build(),\n                RecordWeightedArgs.builder()\n                    .ip(\"1.2.3.6\")\n                    .weight(2)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  geoIp:\n    type: scaleway:domain:Record\n    name: geo_ip\n    properties:\n      dnsZone: domain.tld\n      name: images\n      type: A\n      data: 1.2.3.4\n      ttl: 3600\n      geoIp:\n        matches:\n          - continents:\n              - EU\n            countries:\n              - FR\n            data: 1.2.3.5\n          - continents:\n              - NA\n            data: 4.3.2.1\n  httpService:\n    type: scaleway:domain:Record\n    name: http_service\n    properties:\n      dnsZone: domain.tld\n      name: app\n      type: A\n      data: 1.2.3.4\n      ttl: 3600\n      httpService:\n        ips:\n          - 1.2.3.5\n          - 1.2.3.6\n        mustContain: up\n        url: http://mywebsite.com/health\n        userAgent: scw_service_up\n        strategy: hashed\n  view:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: db\n      type: A\n      data: 1.2.3.4\n      ttl: 3600\n      views:\n        - subnet: 100.0.0.0/16\n          data: 1.2.3.5\n        - subnet: 100.1.0.0/16\n          data: 1.2.3.6\n  weighted:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: web\n      type: A\n      data: 1.2.3.4\n      ttl: 3600\n      weighteds:\n        - ip: 1.2.3.5\n          weight: 1\n        - ip: 1.2.3.6\n          weight: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create an Instance and add records with the new Instance IP\n\nThe following commands allow you to:\n\n- create a Scaleway Instance\n- assign The Instance's IP address to various DNS records for a specified DNS zone\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\n// Your project ID.\nconst projectId = config.require(\"projectId\");\n// The DNS Zone used for testing records.\nconst dnsZone = config.require(\"dnsZone\");\nconst publicIp = new scaleway.instance.Ip(\"public_ip\", {projectId: projectId});\nconst web = new scaleway.instance.Server(\"web\", {\n    projectId: projectId,\n    type: \"DEV1-S\",\n    image: \"ubuntu_jammy\",\n    tags: [\n        \"front\",\n        \"web\",\n    ],\n    ipId: publicIp.id,\n    rootVolume: {\n        sizeInGb: 20,\n    },\n});\nconst webA = new scaleway.domain.Record(\"web_A\", {\n    dnsZone: dnsZone,\n    name: \"web\",\n    type: \"A\",\n    data: web.publicIp,\n    ttl: 3600,\n});\nconst webCname = new scaleway.domain.Record(\"web_cname\", {\n    dnsZone: dnsZone,\n    name: \"www\",\n    type: \"CNAME\",\n    data: `web.${dnsZone}.`,\n    ttl: 3600,\n});\nconst webAlias = new scaleway.domain.Record(\"web_alias\", {\n    dnsZone: dnsZone,\n    name: \"\",\n    type: \"ALIAS\",\n    data: `web.${dnsZone}.`,\n    ttl: 3600,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\n# Your project ID.\nproject_id = config.require(\"projectId\")\n# The DNS Zone used for testing records.\ndns_zone = config.require(\"dnsZone\")\npublic_ip = scaleway.instance.Ip(\"public_ip\", project_id=project_id)\nweb = scaleway.instance.Server(\"web\",\n    project_id=project_id,\n    type=\"DEV1-S\",\n    image=\"ubuntu_jammy\",\n    tags=[\n        \"front\",\n        \"web\",\n    ],\n    ip_id=public_ip.id,\n    root_volume={\n        \"size_in_gb\": 20,\n    })\nweb_a = scaleway.domain.Record(\"web_A\",\n    dns_zone=dns_zone,\n    name=\"web\",\n    type=\"A\",\n    data=web.public_ip,\n    ttl=3600)\nweb_cname = scaleway.domain.Record(\"web_cname\",\n    dns_zone=dns_zone,\n    name=\"www\",\n    type=\"CNAME\",\n    data=f\"web.{dns_zone}.\",\n    ttl=3600)\nweb_alias = scaleway.domain.Record(\"web_alias\",\n    dns_zone=dns_zone,\n    name=\"\",\n    type=\"ALIAS\",\n    data=f\"web.{dns_zone}.\",\n    ttl=3600)\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 config = new Config();\n    // Your project ID.\n    var projectId = config.Require(\"projectId\");\n    // The DNS Zone used for testing records.\n    var dnsZone = config.Require(\"dnsZone\");\n    var publicIp = new Scaleway.Instance.Ip(\"public_ip\", new()\n    {\n        ProjectId = projectId,\n    });\n\n    var web = new Scaleway.Instance.Server(\"web\", new()\n    {\n        ProjectId = projectId,\n        Type = \"DEV1-S\",\n        Image = \"ubuntu_jammy\",\n        Tags = new[]\n        {\n            \"front\",\n            \"web\",\n        },\n        IpId = publicIp.Id,\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            SizeInGb = 20,\n        },\n    });\n\n    var webA = new Scaleway.Domain.Record(\"web_A\", new()\n    {\n        DnsZone = dnsZone,\n        Name = \"web\",\n        Type = \"A\",\n        Data = web.PublicIp,\n        Ttl = 3600,\n    });\n\n    var webCname = new Scaleway.Domain.Record(\"web_cname\", new()\n    {\n        DnsZone = dnsZone,\n        Name = \"www\",\n        Type = \"CNAME\",\n        Data = $\"web.{dnsZone}.\",\n        Ttl = 3600,\n    });\n\n    var webAlias = new Scaleway.Domain.Record(\"web_alias\", new()\n    {\n        DnsZone = dnsZone,\n        Name = \"\",\n        Type = \"ALIAS\",\n        Data = $\"web.{dnsZone}.\",\n        Ttl = 3600,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\t// Your project ID.\n\t\tprojectId := cfg.Require(\"projectId\")\n\t\t// The DNS Zone used for testing records.\n\t\tdnsZone := cfg.Require(\"dnsZone\")\n\t\tpublicIp, err := instance.NewIp(ctx, \"public_ip\", \u0026instance.IpArgs{\n\t\t\tProjectId: pulumi.String(projectId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tweb, err := instance.NewServer(ctx, \"web\", \u0026instance.ServerArgs{\n\t\t\tProjectId: pulumi.String(projectId),\n\t\t\tType:      pulumi.String(\"DEV1-S\"),\n\t\t\tImage:     pulumi.String(\"ubuntu_jammy\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"front\"),\n\t\t\t\tpulumi.String(\"web\"),\n\t\t\t},\n\t\t\tIpId: publicIp.ID(),\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tSizeInGb: pulumi.Int(20),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"web_A\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(dnsZone),\n\t\t\tName:    pulumi.String(\"web\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    web.PublicIp,\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"web_cname\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(dnsZone),\n\t\t\tName:    pulumi.String(\"www\"),\n\t\t\tType:    pulumi.String(\"CNAME\"),\n\t\t\tData:    pulumi.Sprintf(\"web.%v.\", dnsZone),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"web_alias\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(dnsZone),\n\t\t\tName:    pulumi.String(\"\"),\n\t\t\tType:    pulumi.String(\"ALIAS\"),\n\t\t\tData:    pulumi.Sprintf(\"web.%v.\", dnsZone),\n\t\t\tTtl:     pulumi.Int(3600),\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.instance.Ip;\nimport com.pulumi.scaleway.instance.IpArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var projectId = config.get(\"projectId\");\n        final var dnsZone = config.get(\"dnsZone\");\n        var publicIp = new Ip(\"publicIp\", IpArgs.builder()\n            .projectId(projectId)\n            .build());\n\n        var web = new Server(\"web\", ServerArgs.builder()\n            .projectId(projectId)\n            .type(\"DEV1-S\")\n            .image(\"ubuntu_jammy\")\n            .tags(            \n                \"front\",\n                \"web\")\n            .ipId(publicIp.id())\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .sizeInGb(20)\n                .build())\n            .build());\n\n        var webA = new Record(\"webA\", RecordArgs.builder()\n            .dnsZone(dnsZone)\n            .name(\"web\")\n            .type(\"A\")\n            .data(web.publicIp())\n            .ttl(3600)\n            .build());\n\n        var webCname = new Record(\"webCname\", RecordArgs.builder()\n            .dnsZone(dnsZone)\n            .name(\"www\")\n            .type(\"CNAME\")\n            .data(String.format(\"web.%s.\", dnsZone))\n            .ttl(3600)\n            .build());\n\n        var webAlias = new Record(\"webAlias\", RecordArgs.builder()\n            .dnsZone(dnsZone)\n            .name(\"\")\n            .type(\"ALIAS\")\n            .data(String.format(\"web.%s.\", dnsZone))\n            .ttl(3600)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  projectId:\n    type: string\n  dnsZone:\n    type: string\nresources:\n  publicIp:\n    type: scaleway:instance:Ip\n    name: public_ip\n    properties:\n      projectId: ${projectId}\n  web:\n    type: scaleway:instance:Server\n    properties:\n      projectId: ${projectId}\n      type: DEV1-S\n      image: ubuntu_jammy\n      tags:\n        - front\n        - web\n      ipId: ${publicIp.id}\n      rootVolume:\n        sizeInGb: 20\n  webA:\n    type: scaleway:domain:Record\n    name: web_A\n    properties:\n      dnsZone: ${dnsZone}\n      name: web\n      type: A\n      data: ${web.publicIp}\n      ttl: 3600\n  webCname:\n    type: scaleway:domain:Record\n    name: web_cname\n    properties:\n      dnsZone: ${dnsZone}\n      name: www\n      type: CNAME\n      data: web.${dnsZone}.\n      ttl: 3600\n  webAlias:\n    type: scaleway:domain:Record\n    name: web_alias\n    properties:\n      dnsZone: ${dnsZone}\n      name: \"\"\n      type: ALIAS\n      data: web.${dnsZone}.\n      ttl: 3600\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Multiple records\n\nSome record types can have multiple data with the same name (e.g., `A`, `AAAA`, `MX`, `NS`, etc.). You can duplicate a \u003cspan pulumi-lang-nodejs=\"`scaleway.domain.Record`\" pulumi-lang-dotnet=\"`scaleway.domain.Record`\" pulumi-lang-go=\"`domain.Record`\" pulumi-lang-python=\"`domain.Record`\" pulumi-lang-yaml=\"`scaleway.domain.Record`\" pulumi-lang-java=\"`scaleway.domain.Record`\"\u003e`scaleway.domain.Record`\u003c/span\u003e  resource with the same \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, and the records will be added.\n\nNote however, that some records (e.g., CNAME, multiple dynamic records of different types) must be unique.\n\n## Import\n\nThis section explains how to import a record using the `{dns_zone}/{id}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:domain/record:Record www subdomain.domain.tld/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"data":{"type":"string","description":"The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).\n"},"dnsZone":{"type":"string","description":"The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.\n"},"fqdn":{"type":"string","description":"The FQDN of the record.\n"},"geoIp":{"$ref":"#/types/scaleway:domain/RecordGeoIp:RecordGeoIp","description":"Return record based on client localisation"},"httpService":{"$ref":"#/types/scaleway:domain/RecordHttpService:RecordHttpService","description":"Return record based on client localisation"},"name":{"type":"string","description":"The name of the record (can be an empty string for a root record).\n"},"priority":{"type":"integer","description":"The priority of the record (mostly used with an `MX` record).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"rootZone":{"type":"boolean","description":"Does the DNS zone is the root zone or not"},"ttl":{"type":"integer","description":"Time To Live of the record in seconds.\n"},"type":{"type":"string","description":"The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).\n"},"views":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RecordView:RecordView"},"description":"Return record based on client subnet"},"weighteds":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RecordWeighted:RecordWeighted"},"description":"Return record based on weight"}},"required":["data","dnsZone","fqdn","name","priority","projectId","rootZone","type"],"inputProperties":{"data":{"type":"string","description":"The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).\n"},"dnsZone":{"type":"string","description":"The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.\n","willReplaceOnChanges":true},"geoIp":{"$ref":"#/types/scaleway:domain/RecordGeoIp:RecordGeoIp","description":"Return record based on client localisation"},"httpService":{"$ref":"#/types/scaleway:domain/RecordHttpService:RecordHttpService","description":"Return record based on client localisation"},"name":{"type":"string","description":"The name of the record (can be an empty string for a root record).\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"The priority of the record (mostly used with an `MX` record).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"ttl":{"type":"integer","description":"Time To Live of the record in seconds.\n"},"type":{"type":"string","description":"The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).\n","willReplaceOnChanges":true},"views":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RecordView:RecordView"},"description":"Return record based on client subnet"},"weighteds":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RecordWeighted:RecordWeighted"},"description":"Return record based on weight"}},"requiredInputs":["data","dnsZone","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Record resources.\n","properties":{"data":{"type":"string","description":"The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).\n"},"dnsZone":{"type":"string","description":"The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.\n","willReplaceOnChanges":true},"fqdn":{"type":"string","description":"The FQDN of the record.\n"},"geoIp":{"$ref":"#/types/scaleway:domain/RecordGeoIp:RecordGeoIp","description":"Return record based on client localisation"},"httpService":{"$ref":"#/types/scaleway:domain/RecordHttpService:RecordHttpService","description":"Return record based on client localisation"},"name":{"type":"string","description":"The name of the record (can be an empty string for a root record).\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"The priority of the record (mostly used with an `MX` record).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"rootZone":{"type":"boolean","description":"Does the DNS zone is the root zone or not"},"ttl":{"type":"integer","description":"Time To Live of the record in seconds.\n"},"type":{"type":"string","description":"The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).\n","willReplaceOnChanges":true},"views":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RecordView:RecordView"},"description":"Return record based on client subnet"},"weighteds":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RecordWeighted:RecordWeighted"},"description":"Return record based on weight"}},"type":"object"},"aliases":[{"type":"scaleway:index/domainRecord:DomainRecord"}]},"scaleway:domain/registration:Registration":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.domain.Registration`\" pulumi-lang-dotnet=\"`scaleway.domain.Registration`\" pulumi-lang-go=\"`domain.Registration`\" pulumi-lang-python=\"`domain.Registration`\" pulumi-lang-yaml=\"`scaleway.domain.Registration`\" pulumi-lang-java=\"`scaleway.domain.Registration`\"\u003e`scaleway.domain.Registration`\u003c/span\u003e resource allows you to purchase and manage domain registrations with Scaleway. Using this resource you can register one or more domains for a specified duration, configure auto-renewal and DNSSEC options, and set contact information. You can supply an owner contact either by providing an existing contact ID or by specifying the complete contact details. The resource automatically returns additional contact information (administrative and technical) as provided by the Scaleway API.\n\nRefer to the [Domains and DNS documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) and the [API documentation](https://developers.scaleway.com/) for more details.\n\n## Example Usage\n\n### Purchase a Single Domain\n\nThe following example purchases a domain with a one-year registration period and specifies the owner contact details. Administrative and technical contacts are returned by the API.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst test = new scaleway.domain.Registration(\"test\", {\n    domainNames: [\"example.com\"],\n    durationInYears: 1,\n    ownerContact: {\n        legalForm: \"individual\",\n        firstname: \"John\",\n        lastname: \"DOE\",\n        email: \"john.doe@example.com\",\n        phoneNumber: \"+1.23456789\",\n        addressLine1: \"123 Main Street\",\n        city: \"Paris\",\n        zip: \"75001\",\n        country: \"FR\",\n        vatIdentificationCode: \"FR12345678901\",\n        companyIdentificationCode: \"123456789\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ntest = scaleway.domain.Registration(\"test\",\n    domain_names=[\"example.com\"],\n    duration_in_years=1,\n    owner_contact={\n        \"legal_form\": \"individual\",\n        \"firstname\": \"John\",\n        \"lastname\": \"DOE\",\n        \"email\": \"john.doe@example.com\",\n        \"phone_number\": \"+1.23456789\",\n        \"address_line1\": \"123 Main Street\",\n        \"city\": \"Paris\",\n        \"zip\": \"75001\",\n        \"country\": \"FR\",\n        \"vat_identification_code\": \"FR12345678901\",\n        \"company_identification_code\": \"123456789\",\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 test = new Scaleway.Domain.Registration(\"test\", new()\n    {\n        DomainNames = new[]\n        {\n            \"example.com\",\n        },\n        DurationInYears = 1,\n        OwnerContact = new Scaleway.Domain.Inputs.RegistrationOwnerContactArgs\n        {\n            LegalForm = \"individual\",\n            Firstname = \"John\",\n            Lastname = \"DOE\",\n            Email = \"john.doe@example.com\",\n            PhoneNumber = \"+1.23456789\",\n            AddressLine1 = \"123 Main Street\",\n            City = \"Paris\",\n            Zip = \"75001\",\n            Country = \"FR\",\n            VatIdentificationCode = \"FR12345678901\",\n            CompanyIdentificationCode = \"123456789\",\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/domain\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := domain.NewRegistration(ctx, \"test\", \u0026domain.RegistrationArgs{\n\t\t\tDomainNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t},\n\t\t\tDurationInYears: pulumi.Int(1),\n\t\t\tOwnerContact: \u0026domain.RegistrationOwnerContactArgs{\n\t\t\t\tLegalForm:                 pulumi.String(\"individual\"),\n\t\t\t\tFirstname:                 pulumi.String(\"John\"),\n\t\t\t\tLastname:                  pulumi.String(\"DOE\"),\n\t\t\t\tEmail:                     pulumi.String(\"john.doe@example.com\"),\n\t\t\t\tPhoneNumber:               pulumi.String(\"+1.23456789\"),\n\t\t\t\tAddressLine1:              pulumi.String(\"123 Main Street\"),\n\t\t\t\tCity:                      pulumi.String(\"Paris\"),\n\t\t\t\tZip:                       pulumi.String(\"75001\"),\n\t\t\t\tCountry:                   pulumi.String(\"FR\"),\n\t\t\t\tVatIdentificationCode:     pulumi.String(\"FR12345678901\"),\n\t\t\t\tCompanyIdentificationCode: pulumi.String(\"123456789\"),\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.domain.Registration;\nimport com.pulumi.scaleway.domain.RegistrationArgs;\nimport com.pulumi.scaleway.domain.inputs.RegistrationOwnerContactArgs;\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 test = new Registration(\"test\", RegistrationArgs.builder()\n            .domainNames(\"example.com\")\n            .durationInYears(1)\n            .ownerContact(RegistrationOwnerContactArgs.builder()\n                .legalForm(\"individual\")\n                .firstname(\"John\")\n                .lastname(\"DOE\")\n                .email(\"john.doe@example.com\")\n                .phoneNumber(\"+1.23456789\")\n                .addressLine1(\"123 Main Street\")\n                .city(\"Paris\")\n                .zip(\"75001\")\n                .country(\"FR\")\n                .vatIdentificationCode(\"FR12345678901\")\n                .companyIdentificationCode(\"123456789\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: scaleway:domain:Registration\n    properties:\n      domainNames:\n        - example.com\n      durationInYears: 1\n      ownerContact:\n        legalForm: individual\n        firstname: John\n        lastname: DOE\n        email: john.doe@example.com\n        phoneNumber: '+1.23456789'\n        addressLine1: 123 Main Street\n        city: Paris\n        zip: '75001'\n        country: FR\n        vatIdentificationCode: FR12345678901\n        companyIdentificationCode: '123456789'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Update Domain Settings\n\nYou can update the resource to enable auto-renewal and DNSSEC:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst test = new scaleway.domain.Registration(\"test\", {\n    domainNames: [\"example.com\"],\n    durationInYears: 1,\n    ownerContact: {\n        legalForm: \"individual\",\n        firstname: \"John\",\n        lastname: \"DOE\",\n        email: \"john.doe@example.com\",\n        phoneNumber: \"+1.23456789\",\n        addressLine1: \"123 Main Street\",\n        city: \"Paris\",\n        zip: \"75001\",\n        country: \"FR\",\n        vatIdentificationCode: \"FR12345678901\",\n        companyIdentificationCode: \"123456789\",\n    },\n    autoRenew: true,\n    dnssec: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ntest = scaleway.domain.Registration(\"test\",\n    domain_names=[\"example.com\"],\n    duration_in_years=1,\n    owner_contact={\n        \"legal_form\": \"individual\",\n        \"firstname\": \"John\",\n        \"lastname\": \"DOE\",\n        \"email\": \"john.doe@example.com\",\n        \"phone_number\": \"+1.23456789\",\n        \"address_line1\": \"123 Main Street\",\n        \"city\": \"Paris\",\n        \"zip\": \"75001\",\n        \"country\": \"FR\",\n        \"vat_identification_code\": \"FR12345678901\",\n        \"company_identification_code\": \"123456789\",\n    },\n    auto_renew=True,\n    dnssec=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 test = new Scaleway.Domain.Registration(\"test\", new()\n    {\n        DomainNames = new[]\n        {\n            \"example.com\",\n        },\n        DurationInYears = 1,\n        OwnerContact = new Scaleway.Domain.Inputs.RegistrationOwnerContactArgs\n        {\n            LegalForm = \"individual\",\n            Firstname = \"John\",\n            Lastname = \"DOE\",\n            Email = \"john.doe@example.com\",\n            PhoneNumber = \"+1.23456789\",\n            AddressLine1 = \"123 Main Street\",\n            City = \"Paris\",\n            Zip = \"75001\",\n            Country = \"FR\",\n            VatIdentificationCode = \"FR12345678901\",\n            CompanyIdentificationCode = \"123456789\",\n        },\n        AutoRenew = true,\n        Dnssec = 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/domain\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := domain.NewRegistration(ctx, \"test\", \u0026domain.RegistrationArgs{\n\t\t\tDomainNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example.com\"),\n\t\t\t},\n\t\t\tDurationInYears: pulumi.Int(1),\n\t\t\tOwnerContact: \u0026domain.RegistrationOwnerContactArgs{\n\t\t\t\tLegalForm:                 pulumi.String(\"individual\"),\n\t\t\t\tFirstname:                 pulumi.String(\"John\"),\n\t\t\t\tLastname:                  pulumi.String(\"DOE\"),\n\t\t\t\tEmail:                     pulumi.String(\"john.doe@example.com\"),\n\t\t\t\tPhoneNumber:               pulumi.String(\"+1.23456789\"),\n\t\t\t\tAddressLine1:              pulumi.String(\"123 Main Street\"),\n\t\t\t\tCity:                      pulumi.String(\"Paris\"),\n\t\t\t\tZip:                       pulumi.String(\"75001\"),\n\t\t\t\tCountry:                   pulumi.String(\"FR\"),\n\t\t\t\tVatIdentificationCode:     pulumi.String(\"FR12345678901\"),\n\t\t\t\tCompanyIdentificationCode: pulumi.String(\"123456789\"),\n\t\t\t},\n\t\t\tAutoRenew: pulumi.Bool(true),\n\t\t\tDnssec:    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.domain.Registration;\nimport com.pulumi.scaleway.domain.RegistrationArgs;\nimport com.pulumi.scaleway.domain.inputs.RegistrationOwnerContactArgs;\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 test = new Registration(\"test\", RegistrationArgs.builder()\n            .domainNames(\"example.com\")\n            .durationInYears(1)\n            .ownerContact(RegistrationOwnerContactArgs.builder()\n                .legalForm(\"individual\")\n                .firstname(\"John\")\n                .lastname(\"DOE\")\n                .email(\"john.doe@example.com\")\n                .phoneNumber(\"+1.23456789\")\n                .addressLine1(\"123 Main Street\")\n                .city(\"Paris\")\n                .zip(\"75001\")\n                .country(\"FR\")\n                .vatIdentificationCode(\"FR12345678901\")\n                .companyIdentificationCode(\"123456789\")\n                .build())\n            .autoRenew(true)\n            .dnssec(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: scaleway:domain:Registration\n    properties:\n      domainNames:\n        - example.com\n      durationInYears: 1\n      ownerContact:\n        legalForm: individual\n        firstname: John\n        lastname: DOE\n        email: john.doe@example.com\n        phoneNumber: '+1.23456789'\n        addressLine1: 123 Main Street\n        city: Paris\n        zip: '75001'\n        country: FR\n        vatIdentificationCode: FR12345678901\n        companyIdentificationCode: '123456789'\n      autoRenew: true\n      dnssec: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Purchase Multiple Domains\n\nThe following example registers several domains in one go:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst multi = new scaleway.domain.Registration(\"multi\", {\n    domainNames: [\n        \"domain1.com\",\n        \"domain2.com\",\n        \"domain3.com\",\n    ],\n    durationInYears: 1,\n    ownerContact: {\n        legalForm: \"individual\",\n        firstname: \"John\",\n        lastname: \"DOE\",\n        email: \"john.doe@example.com\",\n        phoneNumber: \"+1.23456789\",\n        addressLine1: \"123 Main Street\",\n        city: \"Paris\",\n        zip: \"75001\",\n        country: \"FR\",\n        vatIdentificationCode: \"FR12345678901\",\n        companyIdentificationCode: \"123456789\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmulti = scaleway.domain.Registration(\"multi\",\n    domain_names=[\n        \"domain1.com\",\n        \"domain2.com\",\n        \"domain3.com\",\n    ],\n    duration_in_years=1,\n    owner_contact={\n        \"legal_form\": \"individual\",\n        \"firstname\": \"John\",\n        \"lastname\": \"DOE\",\n        \"email\": \"john.doe@example.com\",\n        \"phone_number\": \"+1.23456789\",\n        \"address_line1\": \"123 Main Street\",\n        \"city\": \"Paris\",\n        \"zip\": \"75001\",\n        \"country\": \"FR\",\n        \"vat_identification_code\": \"FR12345678901\",\n        \"company_identification_code\": \"123456789\",\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 multi = new Scaleway.Domain.Registration(\"multi\", new()\n    {\n        DomainNames = new[]\n        {\n            \"domain1.com\",\n            \"domain2.com\",\n            \"domain3.com\",\n        },\n        DurationInYears = 1,\n        OwnerContact = new Scaleway.Domain.Inputs.RegistrationOwnerContactArgs\n        {\n            LegalForm = \"individual\",\n            Firstname = \"John\",\n            Lastname = \"DOE\",\n            Email = \"john.doe@example.com\",\n            PhoneNumber = \"+1.23456789\",\n            AddressLine1 = \"123 Main Street\",\n            City = \"Paris\",\n            Zip = \"75001\",\n            Country = \"FR\",\n            VatIdentificationCode = \"FR12345678901\",\n            CompanyIdentificationCode = \"123456789\",\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/domain\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := domain.NewRegistration(ctx, \"multi\", \u0026domain.RegistrationArgs{\n\t\t\tDomainNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"domain1.com\"),\n\t\t\t\tpulumi.String(\"domain2.com\"),\n\t\t\t\tpulumi.String(\"domain3.com\"),\n\t\t\t},\n\t\t\tDurationInYears: pulumi.Int(1),\n\t\t\tOwnerContact: \u0026domain.RegistrationOwnerContactArgs{\n\t\t\t\tLegalForm:                 pulumi.String(\"individual\"),\n\t\t\t\tFirstname:                 pulumi.String(\"John\"),\n\t\t\t\tLastname:                  pulumi.String(\"DOE\"),\n\t\t\t\tEmail:                     pulumi.String(\"john.doe@example.com\"),\n\t\t\t\tPhoneNumber:               pulumi.String(\"+1.23456789\"),\n\t\t\t\tAddressLine1:              pulumi.String(\"123 Main Street\"),\n\t\t\t\tCity:                      pulumi.String(\"Paris\"),\n\t\t\t\tZip:                       pulumi.String(\"75001\"),\n\t\t\t\tCountry:                   pulumi.String(\"FR\"),\n\t\t\t\tVatIdentificationCode:     pulumi.String(\"FR12345678901\"),\n\t\t\t\tCompanyIdentificationCode: pulumi.String(\"123456789\"),\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.domain.Registration;\nimport com.pulumi.scaleway.domain.RegistrationArgs;\nimport com.pulumi.scaleway.domain.inputs.RegistrationOwnerContactArgs;\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 multi = new Registration(\"multi\", RegistrationArgs.builder()\n            .domainNames(            \n                \"domain1.com\",\n                \"domain2.com\",\n                \"domain3.com\")\n            .durationInYears(1)\n            .ownerContact(RegistrationOwnerContactArgs.builder()\n                .legalForm(\"individual\")\n                .firstname(\"John\")\n                .lastname(\"DOE\")\n                .email(\"john.doe@example.com\")\n                .phoneNumber(\"+1.23456789\")\n                .addressLine1(\"123 Main Street\")\n                .city(\"Paris\")\n                .zip(\"75001\")\n                .country(\"FR\")\n                .vatIdentificationCode(\"FR12345678901\")\n                .companyIdentificationCode(\"123456789\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  multi:\n    type: scaleway:domain:Registration\n    properties:\n      domainNames:\n        - domain1.com\n        - domain2.com\n        - domain3.com\n      durationInYears: 1\n      ownerContact:\n        legalForm: individual\n        firstname: John\n        lastname: DOE\n        email: john.doe@example.com\n        phoneNumber: '+1.23456789'\n        addressLine1: 123 Main Street\n        city: Paris\n        zip: '75001'\n        country: FR\n        vatIdentificationCode: FR12345678901\n        companyIdentificationCode: '123456789'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Contact Blocks\n\nEach contact block supports the following attributes:\n\n- \u003cspan pulumi-lang-nodejs=\"`legalForm`\" pulumi-lang-dotnet=\"`LegalForm`\" pulumi-lang-go=\"`legalForm`\" pulumi-lang-python=\"`legal_form`\" pulumi-lang-yaml=\"`legalForm`\" pulumi-lang-java=\"`legalForm`\"\u003e`legal_form`\u003c/span\u003e (Required, String): Legal form of the contact.\n- \u003cspan pulumi-lang-nodejs=\"`firstname`\" pulumi-lang-dotnet=\"`Firstname`\" pulumi-lang-go=\"`firstname`\" pulumi-lang-python=\"`firstname`\" pulumi-lang-yaml=\"`firstname`\" pulumi-lang-java=\"`firstname`\"\u003e`firstname`\u003c/span\u003e (Required, String): First name.\n- \u003cspan pulumi-lang-nodejs=\"`lastname`\" pulumi-lang-dotnet=\"`Lastname`\" pulumi-lang-go=\"`lastname`\" pulumi-lang-python=\"`lastname`\" pulumi-lang-yaml=\"`lastname`\" pulumi-lang-java=\"`lastname`\"\u003e`lastname`\u003c/span\u003e (Required, String): Last name.\n- \u003cspan pulumi-lang-nodejs=\"`companyName`\" pulumi-lang-dotnet=\"`CompanyName`\" pulumi-lang-go=\"`companyName`\" pulumi-lang-python=\"`company_name`\" pulumi-lang-yaml=\"`companyName`\" pulumi-lang-java=\"`companyName`\"\u003e`company_name`\u003c/span\u003e (Optional, String): Company name.\n- \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e (Required, String): Primary email.\n- \u003cspan pulumi-lang-nodejs=\"`phoneNumber`\" pulumi-lang-dotnet=\"`PhoneNumber`\" pulumi-lang-go=\"`phoneNumber`\" pulumi-lang-python=\"`phone_number`\" pulumi-lang-yaml=\"`phoneNumber`\" pulumi-lang-java=\"`phoneNumber`\"\u003e`phone_number`\u003c/span\u003e (Required, String): Primary phone number.\n- \u003cspan pulumi-lang-nodejs=\"`addressLine1`\" pulumi-lang-dotnet=\"`AddressLine1`\" pulumi-lang-go=\"`addressLine1`\" pulumi-lang-python=\"`address_line_1`\" pulumi-lang-yaml=\"`addressLine1`\" pulumi-lang-java=\"`addressLine1`\"\u003e`address_line_1`\u003c/span\u003e (Required, String): Primary address.\n- \u003cspan pulumi-lang-nodejs=\"`zip`\" pulumi-lang-dotnet=\"`Zip`\" pulumi-lang-go=\"`zip`\" pulumi-lang-python=\"`zip`\" pulumi-lang-yaml=\"`zip`\" pulumi-lang-java=\"`zip`\"\u003e`zip`\u003c/span\u003e (Required, String): Postal code.\n- \u003cspan pulumi-lang-nodejs=\"`city`\" pulumi-lang-dotnet=\"`City`\" pulumi-lang-go=\"`city`\" pulumi-lang-python=\"`city`\" pulumi-lang-yaml=\"`city`\" pulumi-lang-java=\"`city`\"\u003e`city`\u003c/span\u003e (Required, String): City.\n- \u003cspan pulumi-lang-nodejs=\"`country`\" pulumi-lang-dotnet=\"`Country`\" pulumi-lang-go=\"`country`\" pulumi-lang-python=\"`country`\" pulumi-lang-yaml=\"`country`\" pulumi-lang-java=\"`country`\"\u003e`country`\u003c/span\u003e (Required, String): Country code (ISO format).\n- \u003cspan pulumi-lang-nodejs=\"`vatIdentificationCode`\" pulumi-lang-dotnet=\"`VatIdentificationCode`\" pulumi-lang-go=\"`vatIdentificationCode`\" pulumi-lang-python=\"`vat_identification_code`\" pulumi-lang-yaml=\"`vatIdentificationCode`\" pulumi-lang-java=\"`vatIdentificationCode`\"\u003e`vat_identification_code`\u003c/span\u003e (Required, String): VAT identification code.\n- \u003cspan pulumi-lang-nodejs=\"`companyIdentificationCode`\" pulumi-lang-dotnet=\"`CompanyIdentificationCode`\" pulumi-lang-go=\"`companyIdentificationCode`\" pulumi-lang-python=\"`company_identification_code`\" pulumi-lang-yaml=\"`companyIdentificationCode`\" pulumi-lang-java=\"`companyIdentificationCode`\"\u003e`company_identification_code`\u003c/span\u003e (Required, String): Company identification code.\n\n## Import\n\nTo import an existing domain registration, use:\n\nbash\n\n```sh\n$ pulumi import scaleway:domain/registration:Registration test \u003cproject_id\u003e/\u003ctask_id\u003e\n```\n\n","properties":{"administrativeContacts":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RegistrationAdministrativeContact:RegistrationAdministrativeContact"},"description":": Administrative contact information.\n"},"autoRenew":{"type":"boolean","description":": Enables or disables auto-renewal.\n"},"dnssec":{"type":"boolean","description":": Enables or disables DNSSEC.\n"},"domainNames":{"type":"array","items":{"type":"string"},"description":": A list of domain names to be registered.\n"},"dsRecords":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RegistrationDsRecord:RegistrationDsRecord"},"description":"DNSSEC DS record configuration.\n"},"durationInYears":{"type":"integer","description":": The registration period in years.\n"},"ownerContact":{"$ref":"#/types/scaleway:domain/RegistrationOwnerContact:RegistrationOwnerContact","description":": Details of the owner contact.\n"},"ownerContactId":{"type":"string","description":": The ID of an existing owner contact.\n"},"projectId":{"type":"string","description":": The Scaleway project ID.\n"},"taskId":{"type":"string","description":"ID of the task that created the domain.\n"},"technicalContacts":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RegistrationTechnicalContact:RegistrationTechnicalContact"},"description":": Technical contact information.\n"}},"required":["administrativeContacts","domainNames","dsRecords","ownerContact","ownerContactId","projectId","taskId","technicalContacts"],"inputProperties":{"autoRenew":{"type":"boolean","description":": Enables or disables auto-renewal.\n"},"dnssec":{"type":"boolean","description":": Enables or disables DNSSEC.\n"},"domainNames":{"type":"array","items":{"type":"string"},"description":": A list of domain names to be registered.\n"},"durationInYears":{"type":"integer","description":": The registration period in years.\n"},"ownerContact":{"$ref":"#/types/scaleway:domain/RegistrationOwnerContact:RegistrationOwnerContact","description":": Details of the owner contact.\n"},"ownerContactId":{"type":"string","description":": The ID of an existing owner contact.\n"},"projectId":{"type":"string","description":": The Scaleway project ID.\n","willReplaceOnChanges":true}},"requiredInputs":["domainNames"],"stateInputs":{"description":"Input properties used for looking up and filtering Registration resources.\n","properties":{"administrativeContacts":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RegistrationAdministrativeContact:RegistrationAdministrativeContact"},"description":": Administrative contact information.\n"},"autoRenew":{"type":"boolean","description":": Enables or disables auto-renewal.\n"},"dnssec":{"type":"boolean","description":": Enables or disables DNSSEC.\n"},"domainNames":{"type":"array","items":{"type":"string"},"description":": A list of domain names to be registered.\n"},"dsRecords":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RegistrationDsRecord:RegistrationDsRecord"},"description":"DNSSEC DS record configuration.\n"},"durationInYears":{"type":"integer","description":": The registration period in years.\n"},"ownerContact":{"$ref":"#/types/scaleway:domain/RegistrationOwnerContact:RegistrationOwnerContact","description":": Details of the owner contact.\n"},"ownerContactId":{"type":"string","description":": The ID of an existing owner contact.\n"},"projectId":{"type":"string","description":": The Scaleway project ID.\n","willReplaceOnChanges":true},"taskId":{"type":"string","description":"ID of the task that created the domain.\n"},"technicalContacts":{"type":"array","items":{"$ref":"#/types/scaleway:domain/RegistrationTechnicalContact:RegistrationTechnicalContact"},"description":": Technical contact information.\n"}},"type":"object"}},"scaleway:domain/zone:Zone":{"description":"\n\n## Import\n\nThis section explains how to import a zone using the `{subdomain}.{domain}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:domain/zone:Zone test test.scaleway-terraform.com\n```\n\n","properties":{"domain":{"type":"string","description":"The main domain where the DNS zone will be created.\n"},"message":{"type":"string","description":"Message.\n"},"ns":{"type":"array","items":{"type":"string"},"description":"The list of same servers for the zone.\n"},"nsDefaults":{"type":"array","items":{"type":"string"},"description":"The default list of same servers for the zone.\n"},"nsMasters":{"type":"array","items":{"type":"string"},"description":"The master list of same servers for the zone.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project associated with the domain.\n"},"status":{"type":"string","description":"The status of the domain zone.\n"},"subdomain":{"type":"string","description":"The name of the subdomain (zone name) to create within the domain.\n"},"updatedAt":{"type":"string","description":"The date and time at which the DNS zone was last updated.\n"}},"required":["domain","message","ns","nsDefaults","nsMasters","projectId","status","subdomain","updatedAt"],"inputProperties":{"domain":{"type":"string","description":"The main domain where the DNS zone will be created.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project associated with the domain.\n","willReplaceOnChanges":true},"subdomain":{"type":"string","description":"The name of the subdomain (zone name) to create within the domain.\n"}},"requiredInputs":["domain","subdomain"],"stateInputs":{"description":"Input properties used for looking up and filtering Zone resources.\n","properties":{"domain":{"type":"string","description":"The main domain where the DNS zone will be created.\n","willReplaceOnChanges":true},"message":{"type":"string","description":"Message.\n"},"ns":{"type":"array","items":{"type":"string"},"description":"The list of same servers for the zone.\n"},"nsDefaults":{"type":"array","items":{"type":"string"},"description":"The default list of same servers for the zone.\n"},"nsMasters":{"type":"array","items":{"type":"string"},"description":"The master list of same servers for the zone.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project associated with the domain.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the domain zone.\n"},"subdomain":{"type":"string","description":"The name of the subdomain (zone name) to create within the domain.\n"},"updatedAt":{"type":"string","description":"The date and time at which the DNS zone was last updated.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/domainZone:DomainZone"}]},"scaleway:edgeservices/backendStage:BackendStage":{"description":"Creates and manages Scaleway Edge Services Backend Stages.\n\n## Example Usage\n\n### With object backend\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.object.Bucket(\"main\", {\n    name: \"my-bucket-name\",\n    tags: {\n        foo: \"bar\",\n    },\n});\nconst mainPipeline = new scaleway.edgeservices.Pipeline(\"main\", {name: \"my-pipeline\"});\nconst mainBackendStage = new scaleway.edgeservices.BackendStage(\"main\", {\n    pipelineId: mainPipeline.id,\n    s3BackendConfig: {\n        bucketName: main.name,\n        bucketRegion: \"fr-par\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.object.Bucket(\"main\",\n    name=\"my-bucket-name\",\n    tags={\n        \"foo\": \"bar\",\n    })\nmain_pipeline = scaleway.edgeservices.Pipeline(\"main\", name=\"my-pipeline\")\nmain_backend_stage = scaleway.edgeservices.BackendStage(\"main\",\n    pipeline_id=main_pipeline.id,\n    s3_backend_config={\n        \"bucket_name\": main.name,\n        \"bucket_region\": \"fr-par\",\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.Object.Bucket(\"main\", new()\n    {\n        Name = \"my-bucket-name\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n    var mainPipeline = new Scaleway.Edgeservices.Pipeline(\"main\", new()\n    {\n        Name = \"my-pipeline\",\n    });\n\n    var mainBackendStage = new Scaleway.Edgeservices.BackendStage(\"main\", new()\n    {\n        PipelineId = mainPipeline.Id,\n        S3BackendConfig = new Scaleway.Edgeservices.Inputs.BackendStageS3BackendConfigArgs\n        {\n            BucketName = main.Name,\n            BucketRegion = \"fr-par\",\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/edgeservices\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"my-bucket-name\"),\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\tmainPipeline, err := edgeservices.NewPipeline(ctx, \"main\", \u0026edgeservices.PipelineArgs{\n\t\t\tName: pulumi.String(\"my-pipeline\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edgeservices.NewBackendStage(ctx, \"main\", \u0026edgeservices.BackendStageArgs{\n\t\t\tPipelineId: mainPipeline.ID(),\n\t\t\tS3BackendConfig: \u0026edgeservices.BackendStageS3BackendConfigArgs{\n\t\t\t\tBucketName:   main.Name,\n\t\t\t\tBucketRegion: pulumi.String(\"fr-par\"),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.edgeservices.Pipeline;\nimport com.pulumi.scaleway.edgeservices.PipelineArgs;\nimport com.pulumi.scaleway.edgeservices.BackendStage;\nimport com.pulumi.scaleway.edgeservices.BackendStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.BackendStageS3BackendConfigArgs;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"my-bucket-name\")\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n        var mainPipeline = new Pipeline(\"mainPipeline\", PipelineArgs.builder()\n            .name(\"my-pipeline\")\n            .build());\n\n        var mainBackendStage = new BackendStage(\"mainBackendStage\", BackendStageArgs.builder()\n            .pipelineId(mainPipeline.id())\n            .s3BackendConfig(BackendStageS3BackendConfigArgs.builder()\n                .bucketName(main.name())\n                .bucketRegion(\"fr-par\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\n    properties:\n      name: my-bucket-name\n      tags:\n        foo: bar\n  mainPipeline:\n    type: scaleway:edgeservices:Pipeline\n    name: main\n    properties:\n      name: my-pipeline\n  mainBackendStage:\n    type: scaleway:edgeservices:BackendStage\n    name: main\n    properties:\n      pipelineId: ${mainPipeline.id}\n      s3BackendConfig:\n        bucketName: ${main.name}\n        bucketRegion: fr-par\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With LB backend\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.loadbalancers.LoadBalancer(\"main\", {\n    ipIds: [mainScalewayLbIp.id],\n    zone: \"fr-par-1\",\n    type: \"LB-S\",\n});\nconst mainFrontend = new scaleway.loadbalancers.Frontend(\"main\", {\n    lbId: main.id,\n    backendId: mainScalewayLbBackend.id,\n    name: \"frontend01\",\n    inboundPort: 443,\n    certificateIds: [cert01.id],\n});\nconst mainPipeline = new scaleway.edgeservices.Pipeline(\"main\", {name: \"my-pipeline\"});\nconst mainBackendStage = new scaleway.edgeservices.BackendStage(\"main\", {\n    pipelineId: mainPipeline.id,\n    lbBackendConfigs: [{\n        lbConfig: {\n            id: main.id,\n            frontendId: id,\n            isSsl: true,\n            zone: \"fr-par-1\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.loadbalancers.LoadBalancer(\"main\",\n    ip_ids=[main_scaleway_lb_ip[\"id\"]],\n    zone=\"fr-par-1\",\n    type=\"LB-S\")\nmain_frontend = scaleway.loadbalancers.Frontend(\"main\",\n    lb_id=main.id,\n    backend_id=main_scaleway_lb_backend[\"id\"],\n    name=\"frontend01\",\n    inbound_port=443,\n    certificate_ids=[cert01[\"id\"]])\nmain_pipeline = scaleway.edgeservices.Pipeline(\"main\", name=\"my-pipeline\")\nmain_backend_stage = scaleway.edgeservices.BackendStage(\"main\",\n    pipeline_id=main_pipeline.id,\n    lb_backend_configs=[{\n        \"lb_config\": {\n            \"id\": main.id,\n            \"frontend_id\": id,\n            \"is_ssl\": True,\n            \"zone\": \"fr-par-1\",\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.Loadbalancers.LoadBalancer(\"main\", new()\n    {\n        IpIds = new[]\n        {\n            mainScalewayLbIp.Id,\n        },\n        Zone = \"fr-par-1\",\n        Type = \"LB-S\",\n    });\n\n    var mainFrontend = new Scaleway.Loadbalancers.Frontend(\"main\", new()\n    {\n        LbId = main.Id,\n        BackendId = mainScalewayLbBackend.Id,\n        Name = \"frontend01\",\n        InboundPort = 443,\n        CertificateIds = new[]\n        {\n            cert01.Id,\n        },\n    });\n\n    var mainPipeline = new Scaleway.Edgeservices.Pipeline(\"main\", new()\n    {\n        Name = \"my-pipeline\",\n    });\n\n    var mainBackendStage = new Scaleway.Edgeservices.BackendStage(\"main\", new()\n    {\n        PipelineId = mainPipeline.Id,\n        LbBackendConfigs = new[]\n        {\n            new Scaleway.Edgeservices.Inputs.BackendStageLbBackendConfigArgs\n            {\n                LbConfig = new Scaleway.Edgeservices.Inputs.BackendStageLbBackendConfigLbConfigArgs\n                {\n                    Id = main.Id,\n                    FrontendId = id,\n                    IsSsl = true,\n                    Zone = \"fr-par-1\",\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/edgeservices\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := loadbalancers.NewLoadBalancer(ctx, \"main\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tmainScalewayLbIp.Id,\n\t\t\t},\n\t\t\tZone: pulumi.String(\"fr-par-1\"),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewFrontend(ctx, \"main\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        main.ID(),\n\t\t\tBackendId:   pulumi.Any(mainScalewayLbBackend.Id),\n\t\t\tName:        pulumi.String(\"frontend01\"),\n\t\t\tInboundPort: pulumi.Int(443),\n\t\t\tCertificateIds: pulumi.StringArray{\n\t\t\t\tcert01.Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPipeline, err := edgeservices.NewPipeline(ctx, \"main\", \u0026edgeservices.PipelineArgs{\n\t\t\tName: pulumi.String(\"my-pipeline\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edgeservices.NewBackendStage(ctx, \"main\", \u0026edgeservices.BackendStageArgs{\n\t\t\tPipelineId: mainPipeline.ID(),\n\t\t\tLbBackendConfigs: edgeservices.BackendStageLbBackendConfigArray{\n\t\t\t\t\u0026edgeservices.BackendStageLbBackendConfigArgs{\n\t\t\t\t\tLbConfig: \u0026edgeservices.BackendStageLbBackendConfigLbConfigArgs{\n\t\t\t\t\t\tId:         main.ID(),\n\t\t\t\t\t\tFrontendId: pulumi.Any(id),\n\t\t\t\t\t\tIsSsl:      pulumi.Bool(true),\n\t\t\t\t\t\tZone:       pulumi.String(\"fr-par-1\"),\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.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.edgeservices.Pipeline;\nimport com.pulumi.scaleway.edgeservices.PipelineArgs;\nimport com.pulumi.scaleway.edgeservices.BackendStage;\nimport com.pulumi.scaleway.edgeservices.BackendStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.BackendStageLbBackendConfigArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.BackendStageLbBackendConfigLbConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var main = new LoadBalancer(\"main\", LoadBalancerArgs.builder()\n            .ipIds(mainScalewayLbIp.id())\n            .zone(\"fr-par-1\")\n            .type(\"LB-S\")\n            .build());\n\n        var mainFrontend = new Frontend(\"mainFrontend\", FrontendArgs.builder()\n            .lbId(main.id())\n            .backendId(mainScalewayLbBackend.id())\n            .name(\"frontend01\")\n            .inboundPort(443)\n            .certificateIds(cert01.id())\n            .build());\n\n        var mainPipeline = new Pipeline(\"mainPipeline\", PipelineArgs.builder()\n            .name(\"my-pipeline\")\n            .build());\n\n        var mainBackendStage = new BackendStage(\"mainBackendStage\", BackendStageArgs.builder()\n            .pipelineId(mainPipeline.id())\n            .lbBackendConfigs(BackendStageLbBackendConfigArgs.builder()\n                .lbConfig(BackendStageLbBackendConfigLbConfigArgs.builder()\n                    .id(main.id())\n                    .frontendId(id)\n                    .isSsl(true)\n                    .zone(\"fr-par-1\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipIds:\n        - ${mainScalewayLbIp.id}\n      zone: fr-par-1\n      type: LB-S\n  mainFrontend:\n    type: scaleway:loadbalancers:Frontend\n    name: main\n    properties:\n      lbId: ${main.id}\n      backendId: ${mainScalewayLbBackend.id}\n      name: frontend01\n      inboundPort: '443'\n      certificateIds:\n        - ${cert01.id}\n  mainPipeline:\n    type: scaleway:edgeservices:Pipeline\n    name: main\n    properties:\n      name: my-pipeline\n  mainBackendStage:\n    type: scaleway:edgeservices:BackendStage\n    name: main\n    properties:\n      pipelineId: ${mainPipeline.id}\n      lbBackendConfigs:\n        - lbConfig:\n            id: ${main.id}\n            frontendId: ${id}\n            isSsl: true\n            zone: fr-par-1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBackend stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:edgeservices/backendStage:BackendStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the backend stage.\n"},"lbBackendConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/BackendStageLbBackendConfig:BackendStageLbBackendConfig"},"description":"The Scaleway Load Balancer linked to the backend stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the backend stage is associated with.\n"},"s3BackendConfig":{"$ref":"#/types/scaleway:edgeservices/BackendStageS3BackendConfig:BackendStageS3BackendConfig","description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the backend stage.\n"}},"required":["createdAt","pipelineId","projectId","updatedAt"],"inputProperties":{"lbBackendConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/BackendStageLbBackendConfig:BackendStageLbBackendConfig"},"description":"The Scaleway Load Balancer linked to the backend stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the backend stage is associated with.\n","willReplaceOnChanges":true},"s3BackendConfig":{"$ref":"#/types/scaleway:edgeservices/BackendStageS3BackendConfig:BackendStageS3BackendConfig","description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering BackendStage resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the backend stage.\n"},"lbBackendConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/BackendStageLbBackendConfig:BackendStageLbBackendConfig"},"description":"The Scaleway Load Balancer linked to the backend stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the backend stage is associated with.\n","willReplaceOnChanges":true},"s3BackendConfig":{"$ref":"#/types/scaleway:edgeservices/BackendStageS3BackendConfig:BackendStageS3BackendConfig","description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the backend stage.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/edgeServicesBackendStage:EdgeServicesBackendStage"}]},"scaleway:edgeservices/cacheStage:CacheStage":{"description":"Creates and manages Scaleway Edge Services Cache Stages.\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.edgeservices.CacheStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    backendStageId: mainScalewayEdgeServicesBackendStage.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.CacheStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    backend_stage_id=main_scaleway_edge_services_backend_stage[\"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 main = new Scaleway.Edgeservices.CacheStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        BackendStageId = mainScalewayEdgeServicesBackendStage.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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewCacheStage(ctx, \"main\", \u0026edgeservices.CacheStageArgs{\n\t\t\tPipelineId:     pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tBackendStageId: pulumi.Any(mainScalewayEdgeServicesBackendStage.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.edgeservices.CacheStage;\nimport com.pulumi.scaleway.edgeservices.CacheStageArgs;\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 CacheStage(\"main\", CacheStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .backendStageId(mainScalewayEdgeServicesBackendStage.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:CacheStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      backendStageId: ${mainScalewayEdgeServicesBackendStage.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Purge request\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.edgeservices.CacheStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    backendStageId: mainScalewayEdgeServicesBackendStage.id,\n    purge: [{\n        pipelineId: mainScalewayEdgeServicesPipeline.id,\n        all: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.CacheStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    backend_stage_id=main_scaleway_edge_services_backend_stage[\"id\"],\n    purge=[{\n        \"pipelineId\": main_scaleway_edge_services_pipeline[\"id\"],\n        \"all\": True,\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.Edgeservices.CacheStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        BackendStageId = mainScalewayEdgeServicesBackendStage.Id,\n        Purge = new[]\n        {\n            \n            {\n                { \"pipelineId\", mainScalewayEdgeServicesPipeline.Id },\n                { \"all\", true },\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewCacheStage(ctx, \"main\", \u0026edgeservices.CacheStageArgs{\n\t\t\tPipelineId:     pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tBackendStageId: pulumi.Any(mainScalewayEdgeServicesBackendStage.Id),\n\t\t\tPurge: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"pipelineId\": mainScalewayEdgeServicesPipeline.Id,\n\t\t\t\t\t\"all\":        true,\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.edgeservices.CacheStage;\nimport com.pulumi.scaleway.edgeservices.CacheStageArgs;\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 CacheStage(\"main\", CacheStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .backendStageId(mainScalewayEdgeServicesBackendStage.id())\n            .purge(List.of(Map.ofEntries(\n                Map.entry(\"pipelineId\", mainScalewayEdgeServicesPipeline.id()),\n                Map.entry(\"all\", true)\n            )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:CacheStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      backendStageId: ${mainScalewayEdgeServicesBackendStage.id}\n      purge:\n        - pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n          all: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCache stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:edgeservices/cacheStage:CacheStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the cache stage.\n"},"fallbackTtl":{"type":"integer","description":"The Time To Live (TTL) in seconds. Defines how long content is cached.\n"},"includeCookies":{"type":"boolean","description":"Defines whether responses to requests with cookies must be stored in the cache.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cache stage is associated with.\n"},"purgeRequests":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/CacheStagePurgeRequest:CacheStagePurgeRequest"},"description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"},"refreshCache":{"type":"string","description":"Trigger a refresh of the cache by changing this field's value.\n"},"routeStageId":{"type":"string","description":"The route stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the cache stage.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"required":["backendStageId","createdAt","pipelineId","projectId","routeStageId","updatedAt","wafStageId"],"inputProperties":{"backendStageId":{"type":"string","description":"The backend stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"fallbackTtl":{"type":"integer","description":"The Time To Live (TTL) in seconds. Defines how long content is cached.\n"},"includeCookies":{"type":"boolean","description":"Defines whether responses to requests with cookies must be stored in the cache.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cache stage is associated with.\n","willReplaceOnChanges":true},"purgeRequests":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/CacheStagePurgeRequest:CacheStagePurgeRequest"},"description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"},"refreshCache":{"type":"string","description":"Trigger a refresh of the cache by changing this field's value.\n"},"routeStageId":{"type":"string","description":"The route stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering CacheStage resources.\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the cache stage.\n"},"fallbackTtl":{"type":"integer","description":"The Time To Live (TTL) in seconds. Defines how long content is cached.\n"},"includeCookies":{"type":"boolean","description":"Defines whether responses to requests with cookies must be stored in the cache.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cache stage is associated with.\n","willReplaceOnChanges":true},"purgeRequests":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/CacheStagePurgeRequest:CacheStagePurgeRequest"},"description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"},"refreshCache":{"type":"string","description":"Trigger a refresh of the cache by changing this field's value.\n"},"routeStageId":{"type":"string","description":"The route stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the cache stage.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/edgeServicesCacheStage:EdgeServicesCacheStage"}]},"scaleway:edgeservices/dnsStage:DnsStage":{"description":"Creates and manages Scaleway Edge Services DNS Stages.\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.edgeservices.DnsStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    fqdns: [\"subdomain.example.com\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.DnsStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    fqdns=[\"subdomain.example.com\"])\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.Edgeservices.DnsStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        Fqdns = new[]\n        {\n            \"subdomain.example.com\",\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewDnsStage(ctx, \"main\", \u0026edgeservices.DnsStageArgs{\n\t\t\tPipelineId: pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tFqdns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"subdomain.example.com\"),\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.edgeservices.DnsStage;\nimport com.pulumi.scaleway.edgeservices.DnsStageArgs;\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 DnsStage(\"main\", DnsStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .fqdns(\"subdomain.example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:DnsStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      fqdns:\n        - subdomain.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDNS stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:edgeservices/dnsStage:DnsStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the DNS stage.\n"},"defaultFqdn":{"type":"string","description":"The Default Fully Qualified Domain Name attached to the stage.\n"},"fqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (in the format subdomain.example.com) to attach to the stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the DNS stage is associated with.\n"},"tlsStageId":{"type":"string","description":"The TLS stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"type":{"type":"string","description":"The type of the stage.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the DNS stage.\n"}},"required":["backendStageId","cacheStageId","createdAt","defaultFqdn","fqdns","pipelineId","projectId","tlsStageId","type","updatedAt"],"inputProperties":{"backendStageId":{"type":"string","description":"The backend stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"fqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (in the format subdomain.example.com) to attach to the stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the DNS stage is associated with.\n","willReplaceOnChanges":true},"tlsStageId":{"type":"string","description":"The TLS stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering DnsStage resources.\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the DNS stage.\n"},"defaultFqdn":{"type":"string","description":"The Default Fully Qualified Domain Name attached to the stage.\n"},"fqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (in the format subdomain.example.com) to attach to the stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the DNS stage is associated with.\n","willReplaceOnChanges":true},"tlsStageId":{"type":"string","description":"The TLS stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"type":{"type":"string","description":"The type of the stage.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the DNS stage.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/edgeServicesDnsStage:EdgeServicesDnsStage"}]},"scaleway:edgeservices/headStage:HeadStage":{"description":"Sets the Scaleway Edge Services head stage of your pipeline.\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.edgeservices.Pipeline(\"main\", {\n    name: \"my-edge_services-pipeline\",\n    description: \"pipeline description\",\n});\nconst mainDnsStage = new scaleway.edgeservices.DnsStage(\"main\", {\n    pipelineId: main.id,\n    tlsStageId: mainScalewayEdgeServicesTlsStage.id,\n    fqdns: [\"subdomain.example.com\"],\n});\nconst mainHeadStage = new scaleway.edgeservices.HeadStage(\"main\", {\n    pipelineId: main.id,\n    headStageId: mainDnsStage.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.Pipeline(\"main\",\n    name=\"my-edge_services-pipeline\",\n    description=\"pipeline description\")\nmain_dns_stage = scaleway.edgeservices.DnsStage(\"main\",\n    pipeline_id=main.id,\n    tls_stage_id=main_scaleway_edge_services_tls_stage[\"id\"],\n    fqdns=[\"subdomain.example.com\"])\nmain_head_stage = scaleway.edgeservices.HeadStage(\"main\",\n    pipeline_id=main.id,\n    head_stage_id=main_dns_stage.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 main = new Scaleway.Edgeservices.Pipeline(\"main\", new()\n    {\n        Name = \"my-edge_services-pipeline\",\n        Description = \"pipeline description\",\n    });\n\n    var mainDnsStage = new Scaleway.Edgeservices.DnsStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        TlsStageId = mainScalewayEdgeServicesTlsStage.Id,\n        Fqdns = new[]\n        {\n            \"subdomain.example.com\",\n        },\n    });\n\n    var mainHeadStage = new Scaleway.Edgeservices.HeadStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        HeadStageId = mainDnsStage.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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := edgeservices.NewPipeline(ctx, \"main\", \u0026edgeservices.PipelineArgs{\n\t\t\tName:        pulumi.String(\"my-edge_services-pipeline\"),\n\t\t\tDescription: pulumi.String(\"pipeline description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainDnsStage, err := edgeservices.NewDnsStage(ctx, \"main\", \u0026edgeservices.DnsStageArgs{\n\t\t\tPipelineId: main.ID(),\n\t\t\tTlsStageId: pulumi.Any(mainScalewayEdgeServicesTlsStage.Id),\n\t\t\tFqdns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"subdomain.example.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edgeservices.NewHeadStage(ctx, \"main\", \u0026edgeservices.HeadStageArgs{\n\t\t\tPipelineId:  main.ID(),\n\t\t\tHeadStageId: mainDnsStage.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.edgeservices.Pipeline;\nimport com.pulumi.scaleway.edgeservices.PipelineArgs;\nimport com.pulumi.scaleway.edgeservices.DnsStage;\nimport com.pulumi.scaleway.edgeservices.DnsStageArgs;\nimport com.pulumi.scaleway.edgeservices.HeadStage;\nimport com.pulumi.scaleway.edgeservices.HeadStageArgs;\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 Pipeline(\"main\", PipelineArgs.builder()\n            .name(\"my-edge_services-pipeline\")\n            .description(\"pipeline description\")\n            .build());\n\n        var mainDnsStage = new DnsStage(\"mainDnsStage\", DnsStageArgs.builder()\n            .pipelineId(main.id())\n            .tlsStageId(mainScalewayEdgeServicesTlsStage.id())\n            .fqdns(\"subdomain.example.com\")\n            .build());\n\n        var mainHeadStage = new HeadStage(\"mainHeadStage\", HeadStageArgs.builder()\n            .pipelineId(main.id())\n            .headStageId(mainDnsStage.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:Pipeline\n    properties:\n      name: my-edge_services-pipeline\n      description: pipeline description\n  mainDnsStage:\n    type: scaleway:edgeservices:DnsStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      tlsStageId: ${mainScalewayEdgeServicesTlsStage.id}\n      fqdns:\n        - subdomain.example.com\n  mainHeadStage:\n    type: scaleway:edgeservices:HeadStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      headStageId: ${mainDnsStage.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHead stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:edgeservices/headStage:HeadStage main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"headStageId":{"type":"string","description":"The ID of head stage of the pipeline.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"}},"required":["headStageId","pipelineId"],"inputProperties":{"headStageId":{"type":"string","description":"The ID of head stage of the pipeline.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n","willReplaceOnChanges":true}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering HeadStage resources.\n","properties":{"headStageId":{"type":"string","description":"The ID of head stage of the pipeline.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/edgeServicesHeadStage:EdgeServicesHeadStage"}]},"scaleway:edgeservices/pipeline:Pipeline":{"description":"Creates and manages Scaleway Edge Services Pipelines.\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.edgeservices.Pipeline(\"main\", {\n    name: \"pipeline-name\",\n    description: \"pipeline description\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.Pipeline(\"main\",\n    name=\"pipeline-name\",\n    description=\"pipeline description\")\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.Edgeservices.Pipeline(\"main\", new()\n    {\n        Name = \"pipeline-name\",\n        Description = \"pipeline description\",\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewPipeline(ctx, \"main\", \u0026edgeservices.PipelineArgs{\n\t\t\tName:        pulumi.String(\"pipeline-name\"),\n\t\t\tDescription: pulumi.String(\"pipeline description\"),\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.edgeservices.Pipeline;\nimport com.pulumi.scaleway.edgeservices.PipelineArgs;\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 Pipeline(\"main\", PipelineArgs.builder()\n            .name(\"pipeline-name\")\n            .description(\"pipeline description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:Pipeline\n    properties:\n      name: pipeline-name\n      description: pipeline description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Complete pipeline\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.edgeservices.Pipeline(\"main\", {\n    name: \"pipeline-name\",\n    description: \"pipeline description\",\n});\nconst mainBackendStage = new scaleway.edgeservices.BackendStage(\"main\", {\n    pipelineId: main.id,\n    s3BackendConfig: {\n        bucketName: \"my-bucket-name\",\n        bucketRegion: \"fr-par\",\n    },\n});\nconst mainWafStage = new scaleway.edgeservices.WafStage(\"main\", {\n    pipelineId: main.id,\n    backendStageId: mainBackendStage.id,\n    mode: \"enable\",\n    paranoiaLevel: 3,\n});\nconst mainRouteStage = new scaleway.edgeservices.RouteStage(\"main\", {\n    pipelineId: main.id,\n    wafStageId: mainWafStage.id,\n    rules: [{\n        backendStageId: mainBackendStage.id,\n        ruleHttpMatch: {\n            methodFilters: [\n                \"get\",\n                \"post\",\n            ],\n            pathFilter: {\n                pathFilterType: \"regex\",\n                value: \".*\",\n            },\n        },\n    }],\n});\nconst mainCacheStage = new scaleway.edgeservices.CacheStage(\"main\", {\n    pipelineId: main.id,\n    routeStageId: mainRouteStage.id,\n});\nconst mainTlsStage = new scaleway.edgeservices.TlsStage(\"main\", {\n    pipelineId: main.id,\n    cacheStageId: mainCacheStage.id,\n    managedCertificate: true,\n});\nconst mainDnsStage = new scaleway.edgeservices.DnsStage(\"main\", {\n    pipelineId: main.id,\n    tlsStageId: mainTlsStage.id,\n    fqdns: [\"subdomain.example.com\"],\n});\nconst mainHeadStage = new scaleway.edgeservices.HeadStage(\"main\", {\n    pipelineId: main.id,\n    headStageId: mainDnsStage.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.Pipeline(\"main\",\n    name=\"pipeline-name\",\n    description=\"pipeline description\")\nmain_backend_stage = scaleway.edgeservices.BackendStage(\"main\",\n    pipeline_id=main.id,\n    s3_backend_config={\n        \"bucket_name\": \"my-bucket-name\",\n        \"bucket_region\": \"fr-par\",\n    })\nmain_waf_stage = scaleway.edgeservices.WafStage(\"main\",\n    pipeline_id=main.id,\n    backend_stage_id=main_backend_stage.id,\n    mode=\"enable\",\n    paranoia_level=3)\nmain_route_stage = scaleway.edgeservices.RouteStage(\"main\",\n    pipeline_id=main.id,\n    waf_stage_id=main_waf_stage.id,\n    rules=[{\n        \"backend_stage_id\": main_backend_stage.id,\n        \"rule_http_match\": {\n            \"method_filters\": [\n                \"get\",\n                \"post\",\n            ],\n            \"path_filter\": {\n                \"path_filter_type\": \"regex\",\n                \"value\": \".*\",\n            },\n        },\n    }])\nmain_cache_stage = scaleway.edgeservices.CacheStage(\"main\",\n    pipeline_id=main.id,\n    route_stage_id=main_route_stage.id)\nmain_tls_stage = scaleway.edgeservices.TlsStage(\"main\",\n    pipeline_id=main.id,\n    cache_stage_id=main_cache_stage.id,\n    managed_certificate=True)\nmain_dns_stage = scaleway.edgeservices.DnsStage(\"main\",\n    pipeline_id=main.id,\n    tls_stage_id=main_tls_stage.id,\n    fqdns=[\"subdomain.example.com\"])\nmain_head_stage = scaleway.edgeservices.HeadStage(\"main\",\n    pipeline_id=main.id,\n    head_stage_id=main_dns_stage.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 main = new Scaleway.Edgeservices.Pipeline(\"main\", new()\n    {\n        Name = \"pipeline-name\",\n        Description = \"pipeline description\",\n    });\n\n    var mainBackendStage = new Scaleway.Edgeservices.BackendStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        S3BackendConfig = new Scaleway.Edgeservices.Inputs.BackendStageS3BackendConfigArgs\n        {\n            BucketName = \"my-bucket-name\",\n            BucketRegion = \"fr-par\",\n        },\n    });\n\n    var mainWafStage = new Scaleway.Edgeservices.WafStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        BackendStageId = mainBackendStage.Id,\n        Mode = \"enable\",\n        ParanoiaLevel = 3,\n    });\n\n    var mainRouteStage = new Scaleway.Edgeservices.RouteStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        WafStageId = mainWafStage.Id,\n        Rules = new[]\n        {\n            new Scaleway.Edgeservices.Inputs.RouteStageRuleArgs\n            {\n                BackendStageId = mainBackendStage.Id,\n                RuleHttpMatch = new Scaleway.Edgeservices.Inputs.RouteStageRuleRuleHttpMatchArgs\n                {\n                    MethodFilters = new[]\n                    {\n                        \"get\",\n                        \"post\",\n                    },\n                    PathFilter = new Scaleway.Edgeservices.Inputs.RouteStageRuleRuleHttpMatchPathFilterArgs\n                    {\n                        PathFilterType = \"regex\",\n                        Value = \".*\",\n                    },\n                },\n            },\n        },\n    });\n\n    var mainCacheStage = new Scaleway.Edgeservices.CacheStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        RouteStageId = mainRouteStage.Id,\n    });\n\n    var mainTlsStage = new Scaleway.Edgeservices.TlsStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        CacheStageId = mainCacheStage.Id,\n        ManagedCertificate = true,\n    });\n\n    var mainDnsStage = new Scaleway.Edgeservices.DnsStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        TlsStageId = mainTlsStage.Id,\n        Fqdns = new[]\n        {\n            \"subdomain.example.com\",\n        },\n    });\n\n    var mainHeadStage = new Scaleway.Edgeservices.HeadStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        HeadStageId = mainDnsStage.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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := edgeservices.NewPipeline(ctx, \"main\", \u0026edgeservices.PipelineArgs{\n\t\t\tName:        pulumi.String(\"pipeline-name\"),\n\t\t\tDescription: pulumi.String(\"pipeline description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainBackendStage, err := edgeservices.NewBackendStage(ctx, \"main\", \u0026edgeservices.BackendStageArgs{\n\t\t\tPipelineId: main.ID(),\n\t\t\tS3BackendConfig: \u0026edgeservices.BackendStageS3BackendConfigArgs{\n\t\t\t\tBucketName:   pulumi.String(\"my-bucket-name\"),\n\t\t\t\tBucketRegion: pulumi.String(\"fr-par\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainWafStage, err := edgeservices.NewWafStage(ctx, \"main\", \u0026edgeservices.WafStageArgs{\n\t\t\tPipelineId:     main.ID(),\n\t\t\tBackendStageId: mainBackendStage.ID(),\n\t\t\tMode:           pulumi.String(\"enable\"),\n\t\t\tParanoiaLevel:  pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainRouteStage, err := edgeservices.NewRouteStage(ctx, \"main\", \u0026edgeservices.RouteStageArgs{\n\t\t\tPipelineId: main.ID(),\n\t\t\tWafStageId: mainWafStage.ID(),\n\t\t\tRules: edgeservices.RouteStageRuleArray{\n\t\t\t\t\u0026edgeservices.RouteStageRuleArgs{\n\t\t\t\t\tBackendStageId: mainBackendStage.ID(),\n\t\t\t\t\tRuleHttpMatch: \u0026edgeservices.RouteStageRuleRuleHttpMatchArgs{\n\t\t\t\t\t\tMethodFilters: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\t\tpulumi.String(\"post\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPathFilter: \u0026edgeservices.RouteStageRuleRuleHttpMatchPathFilterArgs{\n\t\t\t\t\t\t\tPathFilterType: pulumi.String(\"regex\"),\n\t\t\t\t\t\t\tValue:          pulumi.String(\".*\"),\n\t\t\t\t\t\t},\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\tmainCacheStage, err := edgeservices.NewCacheStage(ctx, \"main\", \u0026edgeservices.CacheStageArgs{\n\t\t\tPipelineId:   main.ID(),\n\t\t\tRouteStageId: mainRouteStage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainTlsStage, err := edgeservices.NewTlsStage(ctx, \"main\", \u0026edgeservices.TlsStageArgs{\n\t\t\tPipelineId:         main.ID(),\n\t\t\tCacheStageId:       mainCacheStage.ID(),\n\t\t\tManagedCertificate: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainDnsStage, err := edgeservices.NewDnsStage(ctx, \"main\", \u0026edgeservices.DnsStageArgs{\n\t\t\tPipelineId: main.ID(),\n\t\t\tTlsStageId: mainTlsStage.ID(),\n\t\t\tFqdns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"subdomain.example.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edgeservices.NewHeadStage(ctx, \"main\", \u0026edgeservices.HeadStageArgs{\n\t\t\tPipelineId:  main.ID(),\n\t\t\tHeadStageId: mainDnsStage.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.edgeservices.Pipeline;\nimport com.pulumi.scaleway.edgeservices.PipelineArgs;\nimport com.pulumi.scaleway.edgeservices.BackendStage;\nimport com.pulumi.scaleway.edgeservices.BackendStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.BackendStageS3BackendConfigArgs;\nimport com.pulumi.scaleway.edgeservices.WafStage;\nimport com.pulumi.scaleway.edgeservices.WafStageArgs;\nimport com.pulumi.scaleway.edgeservices.RouteStage;\nimport com.pulumi.scaleway.edgeservices.RouteStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleRuleHttpMatchArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleRuleHttpMatchPathFilterArgs;\nimport com.pulumi.scaleway.edgeservices.CacheStage;\nimport com.pulumi.scaleway.edgeservices.CacheStageArgs;\nimport com.pulumi.scaleway.edgeservices.TlsStage;\nimport com.pulumi.scaleway.edgeservices.TlsStageArgs;\nimport com.pulumi.scaleway.edgeservices.DnsStage;\nimport com.pulumi.scaleway.edgeservices.DnsStageArgs;\nimport com.pulumi.scaleway.edgeservices.HeadStage;\nimport com.pulumi.scaleway.edgeservices.HeadStageArgs;\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 Pipeline(\"main\", PipelineArgs.builder()\n            .name(\"pipeline-name\")\n            .description(\"pipeline description\")\n            .build());\n\n        var mainBackendStage = new BackendStage(\"mainBackendStage\", BackendStageArgs.builder()\n            .pipelineId(main.id())\n            .s3BackendConfig(BackendStageS3BackendConfigArgs.builder()\n                .bucketName(\"my-bucket-name\")\n                .bucketRegion(\"fr-par\")\n                .build())\n            .build());\n\n        var mainWafStage = new WafStage(\"mainWafStage\", WafStageArgs.builder()\n            .pipelineId(main.id())\n            .backendStageId(mainBackendStage.id())\n            .mode(\"enable\")\n            .paranoiaLevel(3)\n            .build());\n\n        var mainRouteStage = new RouteStage(\"mainRouteStage\", RouteStageArgs.builder()\n            .pipelineId(main.id())\n            .wafStageId(mainWafStage.id())\n            .rules(RouteStageRuleArgs.builder()\n                .backendStageId(mainBackendStage.id())\n                .ruleHttpMatch(RouteStageRuleRuleHttpMatchArgs.builder()\n                    .methodFilters(                    \n                        \"get\",\n                        \"post\")\n                    .pathFilter(RouteStageRuleRuleHttpMatchPathFilterArgs.builder()\n                        .pathFilterType(\"regex\")\n                        .value(\".*\")\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var mainCacheStage = new CacheStage(\"mainCacheStage\", CacheStageArgs.builder()\n            .pipelineId(main.id())\n            .routeStageId(mainRouteStage.id())\n            .build());\n\n        var mainTlsStage = new TlsStage(\"mainTlsStage\", TlsStageArgs.builder()\n            .pipelineId(main.id())\n            .cacheStageId(mainCacheStage.id())\n            .managedCertificate(true)\n            .build());\n\n        var mainDnsStage = new DnsStage(\"mainDnsStage\", DnsStageArgs.builder()\n            .pipelineId(main.id())\n            .tlsStageId(mainTlsStage.id())\n            .fqdns(\"subdomain.example.com\")\n            .build());\n\n        var mainHeadStage = new HeadStage(\"mainHeadStage\", HeadStageArgs.builder()\n            .pipelineId(main.id())\n            .headStageId(mainDnsStage.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:Pipeline\n    properties:\n      name: pipeline-name\n      description: pipeline description\n  mainDnsStage:\n    type: scaleway:edgeservices:DnsStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      tlsStageId: ${mainTlsStage.id}\n      fqdns:\n        - subdomain.example.com\n  mainTlsStage:\n    type: scaleway:edgeservices:TlsStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      cacheStageId: ${mainCacheStage.id}\n      managedCertificate: true\n  mainCacheStage:\n    type: scaleway:edgeservices:CacheStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      routeStageId: ${mainRouteStage.id}\n  mainRouteStage:\n    type: scaleway:edgeservices:RouteStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      wafStageId: ${mainWafStage.id}\n      rules:\n        - backendStageId: ${mainBackendStage.id}\n          ruleHttpMatch:\n            methodFilters:\n              - get\n              - post\n            pathFilter:\n              pathFilterType: regex\n              value: .*\n  mainWafStage:\n    type: scaleway:edgeservices:WafStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      backendStageId: ${mainBackendStage.id}\n      mode: enable\n      paranoiaLevel: 3\n  mainBackendStage:\n    type: scaleway:edgeservices:BackendStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      s3BackendConfig:\n        bucketName: my-bucket-name\n        bucketRegion: fr-par\n  mainHeadStage:\n    type: scaleway:edgeservices:HeadStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      headStageId: ${mainDnsStage.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPipelines can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:edgeservices/pipeline:Pipeline basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the pipeline.\n"},"description":{"type":"string","description":"The description of the pipeline.\n"},"name":{"type":"string","description":"The name of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the pipeline is associated with.\n"},"status":{"type":"string","description":"The status of user pipeline.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the pipeline.\n"}},"required":["createdAt","name","projectId","status","updatedAt"],"inputProperties":{"description":{"type":"string","description":"The description of the pipeline.\n"},"name":{"type":"string","description":"The name of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the pipeline is associated with.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Pipeline resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the pipeline.\n"},"description":{"type":"string","description":"The description of the pipeline.\n"},"name":{"type":"string","description":"The name of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the pipeline is associated with.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of user pipeline.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the pipeline.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/edgeServicesPipeline:EdgeServicesPipeline"}]},"scaleway:edgeservices/plan:Plan":{"description":"Creates and manages Scaleway Edge Services plans.\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.edgeservices.Plan(\"main\", {name: \"starter\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.Plan(\"main\", name=\"starter\")\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.Edgeservices.Plan(\"main\", new()\n    {\n        Name = \"starter\",\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewPlan(ctx, \"main\", \u0026edgeservices.PlanArgs{\n\t\t\tName: pulumi.String(\"starter\"),\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.edgeservices.Plan;\nimport com.pulumi.scaleway.edgeservices.PlanArgs;\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 Plan(\"main\", PlanArgs.builder()\n            .name(\"starter\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:Plan\n    properties:\n      name: starter\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPlans can be imported using `{project_id}/{plan_name}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:edgeservices/plan:Plan main 11111111-1111-1111-1111-111111111111/starter\n```\n\n","properties":{"name":{"type":"string","description":"The name of the plan.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the plan is associated with.\n"}},"required":["name","projectId"],"inputProperties":{"name":{"type":"string","description":"The name of the plan.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the plan is associated with.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Plan resources.\n","properties":{"name":{"type":"string","description":"The name of the plan.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the plan is associated with.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/edgeServicesPlan:EdgeServicesPlan"}]},"scaleway:edgeservices/routeStage:RouteStage":{"description":"Creates and manages Scaleway Edge Services Route Stages.\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.edgeservices.RouteStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    wafStageId: waf.id,\n    rules: [{\n        backendStageId: backend.id,\n        ruleHttpMatch: {\n            methodFilters: [\n                \"get\",\n                \"post\",\n            ],\n            pathFilter: {\n                pathFilterType: \"regex\",\n                value: \".*\",\n            },\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.RouteStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    waf_stage_id=waf[\"id\"],\n    rules=[{\n        \"backend_stage_id\": backend[\"id\"],\n        \"rule_http_match\": {\n            \"method_filters\": [\n                \"get\",\n                \"post\",\n            ],\n            \"path_filter\": {\n                \"path_filter_type\": \"regex\",\n                \"value\": \".*\",\n            },\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.Edgeservices.RouteStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        WafStageId = waf.Id,\n        Rules = new[]\n        {\n            new Scaleway.Edgeservices.Inputs.RouteStageRuleArgs\n            {\n                BackendStageId = backend.Id,\n                RuleHttpMatch = new Scaleway.Edgeservices.Inputs.RouteStageRuleRuleHttpMatchArgs\n                {\n                    MethodFilters = new[]\n                    {\n                        \"get\",\n                        \"post\",\n                    },\n                    PathFilter = new Scaleway.Edgeservices.Inputs.RouteStageRuleRuleHttpMatchPathFilterArgs\n                    {\n                        PathFilterType = \"regex\",\n                        Value = \".*\",\n                    },\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewRouteStage(ctx, \"main\", \u0026edgeservices.RouteStageArgs{\n\t\t\tPipelineId: pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tWafStageId: pulumi.Any(waf.Id),\n\t\t\tRules: edgeservices.RouteStageRuleArray{\n\t\t\t\t\u0026edgeservices.RouteStageRuleArgs{\n\t\t\t\t\tBackendStageId: pulumi.Any(backend.Id),\n\t\t\t\t\tRuleHttpMatch: \u0026edgeservices.RouteStageRuleRuleHttpMatchArgs{\n\t\t\t\t\t\tMethodFilters: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\t\tpulumi.String(\"post\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPathFilter: \u0026edgeservices.RouteStageRuleRuleHttpMatchPathFilterArgs{\n\t\t\t\t\t\t\tPathFilterType: pulumi.String(\"regex\"),\n\t\t\t\t\t\t\tValue:          pulumi.String(\".*\"),\n\t\t\t\t\t\t},\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.edgeservices.RouteStage;\nimport com.pulumi.scaleway.edgeservices.RouteStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleRuleHttpMatchArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleRuleHttpMatchPathFilterArgs;\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 RouteStage(\"main\", RouteStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .wafStageId(waf.id())\n            .rules(RouteStageRuleArgs.builder()\n                .backendStageId(backend.id())\n                .ruleHttpMatch(RouteStageRuleRuleHttpMatchArgs.builder()\n                    .methodFilters(                    \n                        \"get\",\n                        \"post\")\n                    .pathFilter(RouteStageRuleRuleHttpMatchPathFilterArgs.builder()\n                        .pathFilterType(\"regex\")\n                        .value(\".*\")\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:RouteStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      wafStageId: ${waf.id}\n      rules:\n        - backendStageId: ${backend.id}\n          ruleHttpMatch:\n            methodFilters:\n              - get\n              - post\n            pathFilter:\n              pathFilterType: regex\n              value: .*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRoute stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:edgeservices/routeStage:RouteStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the route stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the route stage is associated with.\n"},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/RouteStageRule:RouteStageRule"},"description":"The list of rules to be checked against every HTTP request. The first matching rule will forward the request to its specified backend stage. If no rules are matched, the request is forwarded to the WAF stage defined by \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the route stage.\n"},"wafStageId":{"type":"string","description":"The ID of the WAF stage HTTP requests should be forwarded to when no rules are matched.\n"}},"required":["createdAt","pipelineId","projectId","updatedAt"],"inputProperties":{"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the route stage is associated with.\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/RouteStageRule:RouteStageRule"},"description":"The list of rules to be checked against every HTTP request. The first matching rule will forward the request to its specified backend stage. If no rules are matched, the request is forwarded to the WAF stage defined by \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e.\n"},"wafStageId":{"type":"string","description":"The ID of the WAF stage HTTP requests should be forwarded to when no rules are matched.\n"}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering RouteStage resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the route stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the route stage is associated with.\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/RouteStageRule:RouteStageRule"},"description":"The list of rules to be checked against every HTTP request. The first matching rule will forward the request to its specified backend stage. If no rules are matched, the request is forwarded to the WAF stage defined by \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the route stage.\n"},"wafStageId":{"type":"string","description":"The ID of the WAF stage HTTP requests should be forwarded to when no rules are matched.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/edgeServicesRouteStage:EdgeServicesRouteStage"}]},"scaleway:edgeservices/tlsStage:TlsStage":{"description":"Creates and manages Scaleway Edge Services TLS Stages.\n\n## Example Usage\n\n### Managed\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.edgeservices.TlsStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    managedCertificate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.TlsStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    managed_certificate=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 main = new Scaleway.Edgeservices.TlsStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        ManagedCertificate = 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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewTlsStage(ctx, \"main\", \u0026edgeservices.TlsStageArgs{\n\t\t\tPipelineId:         pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tManagedCertificate: 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.edgeservices.TlsStage;\nimport com.pulumi.scaleway.edgeservices.TlsStageArgs;\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 TlsStage(\"main\", TlsStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .managedCertificate(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:TlsStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      managedCertificate: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With a certificate stored in Scaleway Secret Manager\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.edgeservices.TlsStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    secrets: [{\n        secretId: \"11111111-1111-1111-1111-111111111111\",\n        region: \"fr-par\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.TlsStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    secrets=[{\n        \"secret_id\": \"11111111-1111-1111-1111-111111111111\",\n        \"region\": \"fr-par\",\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.Edgeservices.TlsStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        Secrets = new[]\n        {\n            new Scaleway.Edgeservices.Inputs.TlsStageSecretArgs\n            {\n                SecretId = \"11111111-1111-1111-1111-111111111111\",\n                Region = \"fr-par\",\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewTlsStage(ctx, \"main\", \u0026edgeservices.TlsStageArgs{\n\t\t\tPipelineId: pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tSecrets: edgeservices.TlsStageSecretArray{\n\t\t\t\t\u0026edgeservices.TlsStageSecretArgs{\n\t\t\t\t\tSecretId: pulumi.String(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\t\t\tRegion:   pulumi.String(\"fr-par\"),\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.edgeservices.TlsStage;\nimport com.pulumi.scaleway.edgeservices.TlsStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.TlsStageSecretArgs;\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 TlsStage(\"main\", TlsStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .secrets(TlsStageSecretArgs.builder()\n                .secretId(\"11111111-1111-1111-1111-111111111111\")\n                .region(\"fr-par\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:TlsStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      secrets:\n        - secretId: 11111111-1111-1111-1111-111111111111\n          region: fr-par\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTLS stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:edgeservices/tlsStage:TlsStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"certificateExpiresAt":{"type":"string","description":"The expiration date of the certificate.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the TLS stage.\n"},"managedCertificate":{"type":"boolean","description":"Set to true when Scaleway generates and manages a Let's Encrypt certificate for the TLS stage/custom endpoint.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the TLS stage is associated with.\n"},"routeStageId":{"type":"string","description":"The route stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/TlsStageSecret:TlsStageSecret"},"description":"The TLS secrets.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the TLS stage.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"required":["backendStageId","cacheStageId","certificateExpiresAt","createdAt","managedCertificate","pipelineId","projectId","routeStageId","secrets","updatedAt","wafStageId"],"inputProperties":{"backendStageId":{"type":"string","description":"The backend stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"managedCertificate":{"type":"boolean","description":"Set to true when Scaleway generates and manages a Let's Encrypt certificate for the TLS stage/custom endpoint.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the TLS stage is associated with.\n","willReplaceOnChanges":true},"routeStageId":{"type":"string","description":"The route stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/TlsStageSecret:TlsStageSecret"},"description":"The TLS secrets.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering TlsStage resources.\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"certificateExpiresAt":{"type":"string","description":"The expiration date of the certificate.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the TLS stage.\n"},"managedCertificate":{"type":"boolean","description":"Set to true when Scaleway generates and manages a Let's Encrypt certificate for the TLS stage/custom endpoint.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the TLS stage is associated with.\n","willReplaceOnChanges":true},"routeStageId":{"type":"string","description":"The route stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/scaleway:edgeservices/TlsStageSecret:TlsStageSecret"},"description":"The TLS secrets.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the TLS stage.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/edgeServicesTlsStage:EdgeServicesTlsStage"}]},"scaleway:edgeservices/wafStage:WafStage":{"description":"Creates and manages Scaleway Edge Services WAF Stages.\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.edgeservices.WafStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    mode: \"enable\",\n    paranoiaLevel: 3,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.WafStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    mode=\"enable\",\n    paranoia_level=3)\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.Edgeservices.WafStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        Mode = \"enable\",\n        ParanoiaLevel = 3,\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewWafStage(ctx, \"main\", \u0026edgeservices.WafStageArgs{\n\t\t\tPipelineId:    pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tMode:          pulumi.String(\"enable\"),\n\t\t\tParanoiaLevel: pulumi.Int(3),\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.edgeservices.WafStage;\nimport com.pulumi.scaleway.edgeservices.WafStageArgs;\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 WafStage(\"main\", WafStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .mode(\"enable\")\n            .paranoiaLevel(3)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:WafStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      mode: enable\n      paranoiaLevel: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nWAF stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:edgeservices/wafStage:WafStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backendStageId":{"type":"string","description":"The ID of the backend stage to forward requests to after the WAF stage.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the WAF stage.\n"},"mode":{"type":"string","description":"The mode defining WAF behavior (\u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`logOnly`\" pulumi-lang-dotnet=\"`LogOnly`\" pulumi-lang-go=\"`logOnly`\" pulumi-lang-python=\"`log_only`\" pulumi-lang-yaml=\"`logOnly`\" pulumi-lang-java=\"`logOnly`\"\u003e`log_only`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e).\n"},"paranoiaLevel":{"type":"integer","description":"The sensitivity level (\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the WAF stage is associated with.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the WAF stage.\n"}},"required":["backendStageId","createdAt","mode","paranoiaLevel","pipelineId","projectId","updatedAt"],"inputProperties":{"backendStageId":{"type":"string","description":"The ID of the backend stage to forward requests to after the WAF stage.\n"},"mode":{"type":"string","description":"The mode defining WAF behavior (\u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`logOnly`\" pulumi-lang-dotnet=\"`LogOnly`\" pulumi-lang-go=\"`logOnly`\" pulumi-lang-python=\"`log_only`\" pulumi-lang-yaml=\"`logOnly`\" pulumi-lang-java=\"`logOnly`\"\u003e`log_only`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e).\n"},"paranoiaLevel":{"type":"integer","description":"The sensitivity level (\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the WAF stage is associated with.\n","willReplaceOnChanges":true}},"requiredInputs":["paranoiaLevel","pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering WafStage resources.\n","properties":{"backendStageId":{"type":"string","description":"The ID of the backend stage to forward requests to after the WAF stage.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the WAF stage.\n"},"mode":{"type":"string","description":"The mode defining WAF behavior (\u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`logOnly`\" pulumi-lang-dotnet=\"`LogOnly`\" pulumi-lang-go=\"`logOnly`\" pulumi-lang-python=\"`log_only`\" pulumi-lang-yaml=\"`logOnly`\" pulumi-lang-java=\"`logOnly`\"\u003e`log_only`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e).\n"},"paranoiaLevel":{"type":"integer","description":"The sensitivity level (\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the WAF stage is associated with.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the WAF stage.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/edgeServicesWafStage:EdgeServicesWafStage"}]},"scaleway:elasticmetal/ip:Ip":{"description":"Creates and manages Scaleway flexible IPs.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip).\n\n\u003e **Note:**\nFlexible IPs are exclusively available for Elastic Metal (bare metal) servers. They are not compatible with other Scaleway products.\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.elasticmetal.Ip(\"main\", {reverse: \"my-reverse.com\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.elasticmetal.Ip(\"main\", reverse=\"my-reverse.com\")\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.Elasticmetal.Ip(\"main\", new()\n    {\n        Reverse = \"my-reverse.com\",\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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticmetal.NewIp(ctx, \"main\", \u0026elasticmetal.IpArgs{\n\t\t\tReverse: pulumi.String(\"my-reverse.com\"),\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.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\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 Ip(\"main\", IpArgs.builder()\n            .reverse(\"my-reverse.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      reverse: my-reverse.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With zone\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.elasticmetal.Ip(\"main\", {zone: \"fr-par-2\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.elasticmetal.Ip(\"main\", zone=\"fr-par-2\")\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.Elasticmetal.Ip(\"main\", new()\n    {\n        Zone = \"fr-par-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticmetal.NewIp(ctx, \"main\", \u0026elasticmetal.IpArgs{\n\t\t\tZone: pulumi.String(\"fr-par-2\"),\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.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\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 Ip(\"main\", IpArgs.builder()\n            .zone(\"fr-par-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      zone: fr-par-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPv6\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.elasticmetal.Ip(\"main\", {isIpv6: true});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.elasticmetal.Ip(\"main\", is_ipv6=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 main = new Scaleway.Elasticmetal.Ip(\"main\", new()\n    {\n        IsIpv6 = 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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticmetal.NewIp(ctx, \"main\", \u0026elasticmetal.IpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\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 Ip(\"main\", IpArgs.builder()\n            .isIpv6(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      isIpv6: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With baremetal server\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.account.SshKey(\"main\", {\n    name: \"main\",\n    publicKey: \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\",\n});\nconst byId = scaleway.elasticmetal.getOs({\n    zone: \"fr-par-2\",\n    name: \"Ubuntu\",\n    version: \"20.04 LTS (Focal Fossa)\",\n});\nconst myOffer = scaleway.elasticmetal.getOffer({\n    zone: \"fr-par-2\",\n    name: \"EM-A210R-HDD\",\n});\nconst base = new scaleway.elasticmetal.Server(\"base\", {\n    zone: \"fr-par-2\",\n    offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n    os: byId.then(byId =\u003e byId.osId),\n    sshKeyIds: main.id,\n});\nconst mainIp = new scaleway.elasticmetal.Ip(\"main\", {\n    serverId: base.id,\n    zone: \"fr-par-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.account.SshKey(\"main\",\n    name=\"main\",\n    public_key=\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\")\nby_id = scaleway.elasticmetal.get_os(zone=\"fr-par-2\",\n    name=\"Ubuntu\",\n    version=\"20.04 LTS (Focal Fossa)\")\nmy_offer = scaleway.elasticmetal.get_offer(zone=\"fr-par-2\",\n    name=\"EM-A210R-HDD\")\nbase = scaleway.elasticmetal.Server(\"base\",\n    zone=\"fr-par-2\",\n    offer=my_offer.offer_id,\n    os=by_id.os_id,\n    ssh_key_ids=main.id)\nmain_ip = scaleway.elasticmetal.Ip(\"main\",\n    server_id=base.id,\n    zone=\"fr-par-2\")\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.Account.SshKey(\"main\", new()\n    {\n        Name = \"main\",\n        PublicKey = \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\",\n    });\n\n    var byId = Scaleway.Elasticmetal.GetOs.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"Ubuntu\",\n        Version = \"20.04 LTS (Focal Fossa)\",\n    });\n\n    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"EM-A210R-HDD\",\n    });\n\n    var @base = new Scaleway.Elasticmetal.Server(\"base\", new()\n    {\n        Zone = \"fr-par-2\",\n        Offer = myOffer.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        Os = byId.Apply(getOsResult =\u003e getOsResult.OsId),\n        SshKeyIds = main.Id,\n    });\n\n    var mainIp = new Scaleway.Elasticmetal.Ip(\"main\", new()\n    {\n        ServerId = @base.Id,\n        Zone = \"fr-par-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := account.NewSshKey(ctx, \"main\", \u0026account.SshKeyArgs{\n\t\t\tName:      pulumi.String(\"main\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbyId, err := elasticmetal.GetOs(ctx, \u0026elasticmetal.GetOsArgs{\n\t\t\tZone:    pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName:    pulumi.StringRef(\"Ubuntu\"),\n\t\t\tVersion: pulumi.StringRef(\"20.04 LTS (Focal Fossa)\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOffer, err := elasticmetal.GetOffer(ctx, \u0026elasticmetal.GetOfferArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"EM-A210R-HDD\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbase, err := elasticmetal.NewServer(ctx, \"base\", \u0026elasticmetal.ServerArgs{\n\t\t\tZone:      pulumi.String(\"fr-par-2\"),\n\t\t\tOffer:     pulumi.String(myOffer.OfferId),\n\t\t\tOs:        pulumi.String(byId.OsId),\n\t\t\tSshKeyIds: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticmetal.NewIp(ctx, \"main\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t\tZone:     pulumi.String(\"fr-par-2\"),\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.account.SshKey;\nimport com.pulumi.scaleway.account.SshKeyArgs;\nimport com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.elasticmetal.Server;\nimport com.pulumi.scaleway.elasticmetal.ServerArgs;\nimport com.pulumi.scaleway.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\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 SshKey(\"main\", SshKeyArgs.builder()\n            .name(\"main\")\n            .publicKey(\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\")\n            .build());\n\n        final var byId = ElasticmetalFunctions.getOs(GetOsArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"Ubuntu\")\n            .version(\"20.04 LTS (Focal Fossa)\")\n            .build());\n\n        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"EM-A210R-HDD\")\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .zone(\"fr-par-2\")\n            .offer(myOffer.offerId())\n            .os(byId.osId())\n            .sshKeyIds(main.id())\n            .build());\n\n        var mainIp = new Ip(\"mainIp\", IpArgs.builder()\n            .serverId(base.id())\n            .zone(\"fr-par-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:account:SshKey\n    properties:\n      name: main\n      publicKey: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\n  base:\n    type: scaleway:elasticmetal:Server\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${byId.osId}\n      sshKeyIds: ${main.id}\n  mainIp:\n    type: scaleway:elasticmetal:Ip\n    name: main\n    properties:\n      serverId: ${base.id}\n      zone: fr-par-2\nvariables:\n  byId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\n      arguments:\n        zone: fr-par-2\n        name: Ubuntu\n        version: 20.04 LTS (Focal Fossa)\n  myOffer:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-2\n        name: EM-A210R-HDD\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFlexible IPs can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:elasticmetal/ip:Ip 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 Flexible IP (Format ISO 8601).\n"},"description":{"type":"string","description":"A description of the flexible IP.\n"},"ipAddress":{"type":"string","description":"The IP address of the Flexible IP.\n"},"isIpv6":{"type":"boolean","description":"Defines whether the flexible IP has an IPv6 address.\n"},"organizationId":{"type":"string","description":"The organization of the Flexible IP.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Flexible IP is associated with.\n"},"reverse":{"type":"string","description":"The reverse domain associated with this flexible IP.\n"},"serverId":{"type":"string","description":"The ID of the associated server.\n"},"status":{"type":"string","description":"The status of the flexible IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the flexible IP.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Flexible IP (Format ISO 8601).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Flexible IP.\n"}},"required":["createdAt","ipAddress","organizationId","projectId","reverse","status","updatedAt"],"inputProperties":{"description":{"type":"string","description":"A description of the flexible IP.\n"},"isIpv6":{"type":"boolean","description":"Defines whether the flexible IP has an IPv6 address.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Flexible IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse domain associated with this flexible IP.\n"},"serverId":{"type":"string","description":"The ID of the associated server.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the flexible IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Flexible IP.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Ip resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the Flexible IP (Format ISO 8601).\n"},"description":{"type":"string","description":"A description of the flexible IP.\n"},"ipAddress":{"type":"string","description":"The IP address of the Flexible IP.\n"},"isIpv6":{"type":"boolean","description":"Defines whether the flexible IP has an IPv6 address.\n","willReplaceOnChanges":true},"organizationId":{"type":"string","description":"The organization of the Flexible IP.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Flexible IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse domain associated with this flexible IP.\n"},"serverId":{"type":"string","description":"The ID of the associated server.\n"},"status":{"type":"string","description":"The status of the flexible IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the flexible IP.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Flexible IP (Format ISO 8601).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Flexible IP.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/flexibleIp:FlexibleIp"}]},"scaleway:elasticmetal/ipMacAddress:IpMacAddress":{"description":"Creates and manages Scaleway Flexible IP Mac Addresses.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip/).\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.elasticmetal.Ip(\"main\", {});\nconst mainIpMacAddress = new scaleway.elasticmetal.IpMacAddress(\"main\", {\n    flexibleIpId: main.id,\n    type: \"kvm\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.elasticmetal.Ip(\"main\")\nmain_ip_mac_address = scaleway.elasticmetal.IpMacAddress(\"main\",\n    flexible_ip_id=main.id,\n    type=\"kvm\")\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.Elasticmetal.Ip(\"main\");\n\n    var mainIpMacAddress = new Scaleway.Elasticmetal.IpMacAddress(\"main\", new()\n    {\n        FlexibleIpId = main.Id,\n        Type = \"kvm\",\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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := elasticmetal.NewIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticmetal.NewIpMacAddress(ctx, \"main\", \u0026elasticmetal.IpMacAddressArgs{\n\t\t\tFlexibleIpId: main.ID(),\n\t\t\tType:         pulumi.String(\"kvm\"),\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.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpMacAddress;\nimport com.pulumi.scaleway.elasticmetal.IpMacAddressArgs;\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 Ip(\"main\");\n\n        var mainIpMacAddress = new IpMacAddress(\"mainIpMacAddress\", IpMacAddressArgs.builder()\n            .flexibleIpId(main.id())\n            .type(\"kvm\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:elasticmetal:Ip\n  mainIpMacAddress:\n    type: scaleway:elasticmetal:IpMacAddress\n    name: main\n    properties:\n      flexibleIpId: ${main.id}\n      type: kvm\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Duplicate on many other flexible IPs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst myOffer = scaleway.elasticmetal.getOffer({\n    name: \"EM-B112X-SSD\",\n});\nconst base = new scaleway.elasticmetal.Server(\"base\", {\n    name: \"TestAccScalewayBaremetalServer_WithoutInstallConfig\",\n    offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n    installConfigAfterward: true,\n});\nconst ip01 = new scaleway.elasticmetal.Ip(\"ip01\", {serverId: base.id});\nconst ip02 = new scaleway.elasticmetal.Ip(\"ip02\", {serverId: base.id});\nconst ip03 = new scaleway.elasticmetal.Ip(\"ip03\", {serverId: base.id});\nconst main = new scaleway.elasticmetal.IpMacAddress(\"main\", {\n    flexibleIpId: ip01.id,\n    type: \"kvm\",\n    flexibleIpIdsToDuplicates: [\n        ip02.id,\n        ip03.id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmy_offer = scaleway.elasticmetal.get_offer(name=\"EM-B112X-SSD\")\nbase = scaleway.elasticmetal.Server(\"base\",\n    name=\"TestAccScalewayBaremetalServer_WithoutInstallConfig\",\n    offer=my_offer.offer_id,\n    install_config_afterward=True)\nip01 = scaleway.elasticmetal.Ip(\"ip01\", server_id=base.id)\nip02 = scaleway.elasticmetal.Ip(\"ip02\", server_id=base.id)\nip03 = scaleway.elasticmetal.Ip(\"ip03\", server_id=base.id)\nmain = scaleway.elasticmetal.IpMacAddress(\"main\",\n    flexible_ip_id=ip01.id,\n    type=\"kvm\",\n    flexible_ip_ids_to_duplicates=[\n        ip02.id,\n        ip03.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 myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()\n    {\n        Name = \"EM-B112X-SSD\",\n    });\n\n    var @base = new Scaleway.Elasticmetal.Server(\"base\", new()\n    {\n        Name = \"TestAccScalewayBaremetalServer_WithoutInstallConfig\",\n        Offer = myOffer.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        InstallConfigAfterward = true,\n    });\n\n    var ip01 = new Scaleway.Elasticmetal.Ip(\"ip01\", new()\n    {\n        ServerId = @base.Id,\n    });\n\n    var ip02 = new Scaleway.Elasticmetal.Ip(\"ip02\", new()\n    {\n        ServerId = @base.Id,\n    });\n\n    var ip03 = new Scaleway.Elasticmetal.Ip(\"ip03\", new()\n    {\n        ServerId = @base.Id,\n    });\n\n    var main = new Scaleway.Elasticmetal.IpMacAddress(\"main\", new()\n    {\n        FlexibleIpId = ip01.Id,\n        Type = \"kvm\",\n        FlexibleIpIdsToDuplicates = new[]\n        {\n            ip02.Id,\n            ip03.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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyOffer, err := elasticmetal.GetOffer(ctx, \u0026elasticmetal.GetOfferArgs{\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\tbase, err := elasticmetal.NewServer(ctx, \"base\", \u0026elasticmetal.ServerArgs{\n\t\t\tName:                   pulumi.String(\"TestAccScalewayBaremetalServer_WithoutInstallConfig\"),\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\tip01, err := elasticmetal.NewIp(ctx, \"ip01\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tip02, err := elasticmetal.NewIp(ctx, \"ip02\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tip03, err := elasticmetal.NewIp(ctx, \"ip03\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticmetal.NewIpMacAddress(ctx, \"main\", \u0026elasticmetal.IpMacAddressArgs{\n\t\t\tFlexibleIpId: ip01.ID(),\n\t\t\tType:         pulumi.String(\"kvm\"),\n\t\t\tFlexibleIpIdsToDuplicates: pulumi.StringArray{\n\t\t\t\tip02.ID(),\n\t\t\t\tip03.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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.elasticmetal.Server;\nimport com.pulumi.scaleway.elasticmetal.ServerArgs;\nimport com.pulumi.scaleway.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\nimport com.pulumi.scaleway.elasticmetal.IpMacAddress;\nimport com.pulumi.scaleway.elasticmetal.IpMacAddressArgs;\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 = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()\n            .name(\"EM-B112X-SSD\")\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .name(\"TestAccScalewayBaremetalServer_WithoutInstallConfig\")\n            .offer(myOffer.offerId())\n            .installConfigAfterward(true)\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .serverId(base.id())\n            .build());\n\n        var ip02 = new Ip(\"ip02\", IpArgs.builder()\n            .serverId(base.id())\n            .build());\n\n        var ip03 = new Ip(\"ip03\", IpArgs.builder()\n            .serverId(base.id())\n            .build());\n\n        var main = new IpMacAddress(\"main\", IpMacAddressArgs.builder()\n            .flexibleIpId(ip01.id())\n            .type(\"kvm\")\n            .flexibleIpIdsToDuplicates(            \n                ip02.id(),\n                ip03.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  base:\n    type: scaleway:elasticmetal:Server\n    properties:\n      name: TestAccScalewayBaremetalServer_WithoutInstallConfig\n      offer: ${myOffer.offerId}\n      installConfigAfterward: true\n  ip01:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      serverId: ${base.id}\n  ip02:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      serverId: ${base.id}\n  ip03:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      serverId: ${base.id}\n  main:\n    type: scaleway:elasticmetal:IpMacAddress\n    properties:\n      flexibleIpId: ${ip01.id}\n      type: kvm\n      flexibleIpIdsToDuplicates:\n        - ${ip02.id}\n        - ${ip03.id}\nvariables:\n  myOffer:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOffer\n      arguments:\n        name: EM-B112X-SSD\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFlexible IP Mac Addresses can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:elasticmetal/ipMacAddress:IpMacAddress main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"address":{"type":"string","description":"The Virtual MAC address.\n"},"createdAt":{"type":"string","description":"The date at which the Virtual Mac Address was created (RFC 3339 format).\n"},"flexibleIpId":{"type":"string","description":"The ID of the flexible IP for which to generate a virtual MAC.\n"},"flexibleIpIdsToDuplicates":{"type":"array","items":{"type":"string"},"description":"The IDs of the flexible IPs on which to duplicate the virtual MAC.\n\u003e **Important:** The flexible IPs need to be attached to the same server for the operation to work.\n"},"status":{"type":"string","description":"The Virtual MAC status.\n"},"type":{"type":"string","description":"The type of the virtual MAC.\n"},"updatedAt":{"type":"string","description":"The date at which the Virtual Mac Address was last updated (RFC 3339 format).\n"},"zone":{"type":"string","description":"The zone of the Virtual Mac Address.\n"}},"required":["address","createdAt","flexibleIpId","status","type","updatedAt"],"inputProperties":{"flexibleIpId":{"type":"string","description":"The ID of the flexible IP for which to generate a virtual MAC.\n"},"flexibleIpIdsToDuplicates":{"type":"array","items":{"type":"string"},"description":"The IDs of the flexible IPs on which to duplicate the virtual MAC.\n\u003e **Important:** The flexible IPs need to be attached to the same server for the operation to work.\n"},"type":{"type":"string","description":"The type of the virtual MAC.\n"},"zone":{"type":"string","description":"The zone of the Virtual Mac Address.\n","willReplaceOnChanges":true}},"requiredInputs":["flexibleIpId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering IpMacAddress resources.\n","properties":{"address":{"type":"string","description":"The Virtual MAC address.\n"},"createdAt":{"type":"string","description":"The date at which the Virtual Mac Address was created (RFC 3339 format).\n"},"flexibleIpId":{"type":"string","description":"The ID of the flexible IP for which to generate a virtual MAC.\n"},"flexibleIpIdsToDuplicates":{"type":"array","items":{"type":"string"},"description":"The IDs of the flexible IPs on which to duplicate the virtual MAC.\n\u003e **Important:** The flexible IPs need to be attached to the same server for the operation to work.\n"},"status":{"type":"string","description":"The Virtual MAC status.\n"},"type":{"type":"string","description":"The type of the virtual MAC.\n"},"updatedAt":{"type":"string","description":"The date at which the Virtual Mac Address was last updated (RFC 3339 format).\n"},"zone":{"type":"string","description":"The zone of the Virtual Mac Address.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/flexibleIpMacAddress:FlexibleIpMacAddress"}]},"scaleway:elasticmetal/server:Server":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  myServer:\n    type: scaleway:elasticmetal:Server\n    name: my_server\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${myOs.id}\n      sshKeyIds:\n        - ${mySshKey.id}\nvariables:\n  ### Basic\n  mySshKey:\n    fn::invoke:\n      function: scaleway:iam:getSshKey\n      arguments:\n        name: main\n        publicKey: ssh XXXXXXXXXXX\n  myOs:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\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:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-2\n        name: EM-I220E-NVME\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\nimport * as std from \"@pulumi/std\";\n\n//## With cloud-init\nconst mySshKey = scaleway.iam.getSshKey({\n    name: \"main\",\n});\nconst myOs = scaleway.elasticmetal.getOs({\n    zone: \"fr-par-1\",\n    name: \"Ubuntu\",\n    version: \"22.04 LTS (Jammy Jellyfish)\",\n});\nconst myOffer = scaleway.elasticmetal.getOffer({\n    zone: \"fr-par-2\",\n    name: \"EM-I220E-NVME\",\n});\nconst myServerCi = new scaleway.elasticmetal.Server(\"my_server_ci\", {\n    zone: \"fr-par-2\",\n    offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n    os: myOs.then(myOs =\u003e myOs.osId),\n    sshKeyIds: [mySshKey.then(mySshKey =\u003e mySshKey.id)],\n    cloudInit: std.index.file({\n        input: \"userdata.yaml\",\n    }).result,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumi_std as std\nimport pulumiverse_scaleway as scaleway\n\n### With cloud-init\nmy_ssh_key = scaleway.iam.get_ssh_key(name=\"main\")\nmy_os = scaleway.elasticmetal.get_os(zone=\"fr-par-1\",\n    name=\"Ubuntu\",\n    version=\"22.04 LTS (Jammy Jellyfish)\")\nmy_offer = scaleway.elasticmetal.get_offer(zone=\"fr-par-2\",\n    name=\"EM-I220E-NVME\")\nmy_server_ci = scaleway.elasticmetal.Server(\"my_server_ci\",\n    zone=\"fr-par-2\",\n    offer=my_offer.offer_id,\n    os=my_os.os_id,\n    ssh_key_ids=[my_ssh_key.id],\n    cloud_init=std.index.file(input=\"userdata.yaml\")[\"result\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //## With cloud-init\n    var mySshKey = Scaleway.Iam.GetSshKey.Invoke(new()\n    {\n        Name = \"main\",\n    });\n\n    var myOs = Scaleway.Elasticmetal.GetOs.Invoke(new()\n    {\n        Zone = \"fr-par-1\",\n        Name = \"Ubuntu\",\n        Version = \"22.04 LTS (Jammy Jellyfish)\",\n    });\n\n    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"EM-I220E-NVME\",\n    });\n\n    var myServerCi = new Scaleway.Elasticmetal.Server(\"my_server_ci\", new()\n    {\n        Zone = \"fr-par-2\",\n        Offer = myOffer.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        Os = myOs.Apply(getOsResult =\u003e getOsResult.OsId),\n        SshKeyIds = new[]\n        {\n            mySshKey.Apply(getSshKeyResult =\u003e getSshKeyResult.Id),\n        },\n        CloudInit = Std.Index.File.Invoke(new()\n        {\n            Input = \"userdata.yaml\",\n        }).Result,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## With cloud-init\n\t\tmySshKey, err := iam.LookupSshKey(ctx, \u0026iam.LookupSshKeyArgs{\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 := elasticmetal.GetOs(ctx, \u0026elasticmetal.GetOsArgs{\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 := elasticmetal.GetOffer(ctx, \u0026elasticmetal.GetOfferArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"EM-I220E-NVME\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFile, err := std.File(ctx, map[string]interface{}{\n\t\t\t\"input\": \"userdata.yaml\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticmetal.NewServer(ctx, \"my_server_ci\", \u0026elasticmetal.ServerArgs{\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(mySshKey.Id),\n\t\t\t},\n\t\t\tCloudInit: invokeFile.Result,\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.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetSshKeyArgs;\nimport com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.elasticmetal.Server;\nimport com.pulumi.scaleway.elasticmetal.ServerArgs;\nimport com.pulumi.std.StdFunctions;\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        //## With cloud-init\n        final var mySshKey = IamFunctions.getSshKey(GetSshKeyArgs.builder()\n            .name(\"main\")\n            .build());\n\n        final var myOs = ElasticmetalFunctions.getOs(GetOsArgs.builder()\n            .zone(\"fr-par-1\")\n            .name(\"Ubuntu\")\n            .version(\"22.04 LTS (Jammy Jellyfish)\")\n            .build());\n\n        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"EM-I220E-NVME\")\n            .build());\n\n        var myServerCi = new Server(\"myServerCi\", ServerArgs.builder()\n            .zone(\"fr-par-2\")\n            .offer(myOffer.offerId())\n            .os(myOs.osId())\n            .sshKeyIds(mySshKey.id())\n            .cloudInit(StdFunctions.file(Map.of(\"input\", \"userdata.yaml\")).result())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myServerCi:\n    type: scaleway:elasticmetal:Server\n    name: my_server_ci\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${myOs.osId}\n      sshKeyIds:\n        - ${mySshKey.id}\n      cloudInit:\n        fn::invoke:\n          function: std:file\n          arguments:\n            input: userdata.yaml\n          return: result\nvariables:\n  ### With cloud-init\n  mySshKey:\n    fn::invoke:\n      function: scaleway:iam:getSshKey\n      arguments:\n        name: main\n  myOs:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\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:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-2\n        name: EM-I220E-NVME\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  myServer:\n    type: scaleway:elasticmetal:Server\n    name: my_server\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${myOs.osId}\n      partitioning: |\n        {\n          \\\"disks\\\": [\n            {\n              \\\"device\\\": \\\"/dev/nvme0n1\\\",\n              \\\"partitions\\\": [\n                {\n                  \\\"label\\\": \\\"uefi\\\",\n                  \\\"number\\\": 1,\n                  \\\"size\\\": 536870912\n                },\n                {\n                  \\\"label\\\": \\\"swap\\\",\n                  \\\"number\\\": 2,\n                  \\\"size\\\": 4294967296\n                },\n                {\n                  \\\"label\\\": \\\"boot\\\",\n                  \\\"number\\\": 3,\n                  \\\"size\\\": 1073741824\n                },\n                {\n                  \\\"label\\\": \\\"root\\\",\n                  \\\"number\\\": 4,\n                  \\\"size\\\": 1017827045376\n                }\n              ]\n            },\n            {\n              \\\"device\\\": \\\"/dev/nvme1n1\\\",\n              \\\"partitions\\\": [\n                {\n                  \\\"label\\\": \\\"swap\\\",\n                  \\\"number\\\": 1,\n                  \\\"size\\\": 4294967296\n                },\n                {\n                  \\\"label\\\": \\\"boot\\\",\n                  \\\"number\\\": 2,\n                  \\\"size\\\": 1073741824\n                },\n                {\n                  \\\"label\\\": \\\"root\\\",\n                  \\\"number\\\": 3,\n                  \\\"size\\\": 1017827045376\n                }\n              ]\n            }\n          ],\n          \\\"filesystems\\\": [\n            {\n              \\\"device\\\": \\\"/dev/nvme0n1p1\\\",\n              \\\"format\\\": \\\"fat32\\\",\n              \\\"mountpoint\\\": \\\"/boot/efi\\\"\n            },\n            {\n              \\\"device\\\": \\\"/dev/md0\\\",\n              \\\"format\\\": \\\"ext4\\\",\n              \\\"mountpoint\\\": \\\"/boot\\\"\n            },\n            {\n              \\\"device\\\": \\\"/dev/md1\\\",\n              \\\"format\\\": \\\"ext4\\\",\n              \\\"mountpoint\\\": \\\"/\\\"\n            }\n          ],\n          \\\"raids\\\": [\n            {\n              \\\"devices\\\": [\\\"/dev/nvme0n1p3\\\", \\\"/dev/nvme1n1p2\\\"],\n              \\\"level\\\": \\\"raid_level_1\\\",\n              \\\"name\\\": \\\"/dev/md0\\\"\n            },\n            {\n              \\\"devices\\\": [\\\"/dev/nvme0n1p4\\\", \\\"/dev/nvme1n1p3\\\"],\n              \\\"level\\\": \\\"raid_level_1\\\",\n              \\\"name\\\": \\\"/dev/md1\\\"\n            }\n          ],\n          \\\"zfs\\\": {\n            \\\"pools\\\": []\n          }\n        }\n      sshKeyIds:\n        - ${mySshKey.id}\nvariables:\n  ### With custom partitioning\n  mySshKey:\n    fn::invoke:\n      function: scaleway:iam:getSshKey\n      arguments:\n        name: main\n        publicKey: ssh XXXXXXXXXXX\n  myOs:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\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:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-2\n        name: EM-I215E-NVME\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  ### With IPAM IP IDs\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: vpc_baremetal\n  pn01:\n    type: scaleway:network:PrivateNetwork\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:ipam:Ip\n    properties:\n      address: 172.16.64.7\n      sources:\n        - privateNetworkId: ${pn01.id}\n  myServer:\n    type: scaleway:elasticmetal:Server\n    name: my_server\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${myOs.osId}\n      sshKeyIds:\n        - ${mySshKey.id}\n      options:\n        - id: ${privateNetwork.optionId}\n      privateNetworks:\n        - id: ${pn01.id}\n          ipamIpIds:\n            - ${ip01.id}\nvariables:\n  mySshKey:\n    fn::invoke:\n      function: scaleway:iam:getSshKey\n      arguments:\n        name: main\n        publicKey: ssh XXXXXXXXXXX\n  myOs:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\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:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-1\n        name: EM-A115X-SSD\n  privateNetwork:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOption\n      arguments:\n        zone: fr-par-1\n        name: Private Network\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:elasticmetal/server:Server web fr-par-2/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"cloudInit":{"type":"string","description":"Configuration data to pass to cloud-init such as a YAML cloud config or a user-data script. Accepts either a string containing the content or a path to a file (for example `file(\"cloud-init.yml\")`). Max length: 127998 characters. Updates to \u003cspan pulumi-lang-nodejs=\"`cloudInit`\" pulumi-lang-dotnet=\"`CloudInit`\" pulumi-lang-go=\"`cloudInit`\" pulumi-lang-python=\"`cloud_init`\" pulumi-lang-yaml=\"`cloudInit`\" pulumi-lang-java=\"`cloudInit`\"\u003e`cloud_init`\u003c/span\u003e will update the server user-data via the API and do not trigger a reinstall; however, a reboot of the server is required for the OS to re-run cloud-init and apply the changes. Only supported for Offers that have cloud-init enabled. You can check available offers with `scw baremetal list offers` command.\n"},"description":{"type":"string","description":"A description for the server.\n"},"domain":{"type":"string","description":"The domain of the server.\n"},"hostname":{"type":"string","description":"The hostname of the server.\n"},"installConfigAfterward":{"type":"boolean","description":"If True, this boolean allows to create a server without the install config if you want to provide it later.\n"},"ips":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerIp:ServerIp"},"description":"(List of) The IPs of the server.\n"},"ipv4s":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerIpv4:ServerIpv4"},"description":"(List of) The IPv4 addresses of the server.\n"},"ipv6s":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerIpv6:ServerIpv6"},"description":"(List of) The IPv6 addresses of the server.\n"},"name":{"type":"string","description":"The name of the server.\n"},"offer":{"type":"string","description":"The offer UUID of the baremetal server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-servers-get-a-specific-elastic-metal-server) to find the right offer.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`offer`\" pulumi-lang-dotnet=\"`Offer`\" pulumi-lang-go=\"`offer`\" pulumi-lang-python=\"`offer`\" pulumi-lang-yaml=\"`offer`\" pulumi-lang-java=\"`offer`\"\u003e`offer`\u003c/span\u003e will recreate the server.\n\u003e **Important**  If you migrate to a monthly subscription, you cannot downgrade back to an hourly plan. Ensure that the monthly plan meets your needs before making the switch.\n"},"offerId":{"type":"string","description":"The ID of the offer.\n"},"offerName":{"type":"string","description":"The name of the offer.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerOption:ServerOption"},"description":"The options to enable on the server.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e block supports:\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"os":{"type":"string","description":"The UUID of the os to install on the server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-os-list-available-oses) to find the right OS ID.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`os`\" pulumi-lang-dotnet=\"`Os`\" pulumi-lang-go=\"`os`\" pulumi-lang-python=\"`os`\" pulumi-lang-yaml=\"`os`\" pulumi-lang-java=\"`os`\"\u003e`os`\u003c/span\u003e will reinstall the server.\n"},"osName":{"type":"string","description":"The name of the os.\n"},"partitioning":{"type":"string","description":"The partitioning schema in JSON format\n"},"password":{"type":"string","description":"Password used for the installation. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerPrivateIp:ServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerPrivateNetwork:ServerPrivateNetwork"},"description":"The private networks to attach to the server. For more information, see [the documentation](https://www.scaleway.com/en/docs/compute/elastic-metal/how-to/use-private-networks/)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n"},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"reinstallOnConfigChanges":{"type":"boolean","description":"If True, this boolean allows to reinstall the server on install config changes.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`sshKeyIds`\" pulumi-lang-dotnet=\"`SshKeyIds`\" pulumi-lang-go=\"`sshKeyIds`\" pulumi-lang-python=\"`ssh_key_ids`\" pulumi-lang-yaml=\"`sshKeyIds`\" pulumi-lang-java=\"`sshKeyIds`\"\u003e`ssh_key_ids`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serviceUser`\" pulumi-lang-dotnet=\"`ServiceUser`\" pulumi-lang-go=\"`serviceUser`\" pulumi-lang-python=\"`service_user`\" pulumi-lang-yaml=\"`serviceUser`\" pulumi-lang-java=\"`serviceUser`\"\u003e`service_user`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e will not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.\n"},"servicePassword":{"type":"string","description":"Password used for the service to install. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e should be specified.\n","secret":true},"servicePasswordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"servicePasswordWoVersion":{"type":"integer","description":"The version of the write-only service password. To update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWoVersion`\" pulumi-lang-dotnet=\"`ServicePasswordWoVersion`\" pulumi-lang-go=\"`servicePasswordWoVersion`\" pulumi-lang-python=\"`service_password_wo_version`\" pulumi-lang-yaml=\"`servicePasswordWoVersion`\" pulumi-lang-java=\"`servicePasswordWoVersion`\"\u003e`service_password_wo_version`\u003c/span\u003e.\n"},"serviceUser":{"type":"string","description":"User used for the service to install.\n"},"sshKeyIds":{"type":"array","items":{"type":"string"},"description":"List of SSH keys allowed to connect to the server.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"user":{"type":"string","description":"User used for the installation.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n"}},"required":["cloudInit","domain","ips","ipv4s","ipv6s","name","offer","offerId","offerName","organizationId","osName","privateIps","projectId","serviceUser","tags","user"],"inputProperties":{"cloudInit":{"type":"string","description":"Configuration data to pass to cloud-init such as a YAML cloud config or a user-data script. Accepts either a string containing the content or a path to a file (for example `file(\"cloud-init.yml\")`). Max length: 127998 characters. Updates to \u003cspan pulumi-lang-nodejs=\"`cloudInit`\" pulumi-lang-dotnet=\"`CloudInit`\" pulumi-lang-go=\"`cloudInit`\" pulumi-lang-python=\"`cloud_init`\" pulumi-lang-yaml=\"`cloudInit`\" pulumi-lang-java=\"`cloudInit`\"\u003e`cloud_init`\u003c/span\u003e will update the server user-data via the API and do not trigger a reinstall; however, a reboot of the server is required for the OS to re-run cloud-init and apply the changes. Only supported for Offers that have cloud-init enabled. You can check available offers with `scw baremetal list offers` command.\n"},"description":{"type":"string","description":"A description for the server.\n"},"hostname":{"type":"string","description":"The hostname of the server.\n"},"installConfigAfterward":{"type":"boolean","description":"If True, this boolean allows to create a server without the install config if you want to provide it later.\n"},"name":{"type":"string","description":"The name of the server.\n"},"offer":{"type":"string","description":"The offer UUID of the baremetal server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-servers-get-a-specific-elastic-metal-server) to find the right offer.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`offer`\" pulumi-lang-dotnet=\"`Offer`\" pulumi-lang-go=\"`offer`\" pulumi-lang-python=\"`offer`\" pulumi-lang-yaml=\"`offer`\" pulumi-lang-java=\"`offer`\"\u003e`offer`\u003c/span\u003e will recreate the server.\n\u003e **Important**  If you migrate to a monthly subscription, you cannot downgrade back to an hourly plan. Ensure that the monthly plan meets your needs before making the switch.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerOption:ServerOption"},"description":"The options to enable on the server.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e block supports:\n"},"os":{"type":"string","description":"The UUID of the os to install on the server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-os-list-available-oses) to find the right OS ID.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`os`\" pulumi-lang-dotnet=\"`Os`\" pulumi-lang-go=\"`os`\" pulumi-lang-python=\"`os`\" pulumi-lang-yaml=\"`os`\" pulumi-lang-java=\"`os`\"\u003e`os`\u003c/span\u003e will reinstall the server.\n"},"partitioning":{"type":"string","description":"The partitioning schema in JSON format\n"},"password":{"type":"string","description":"Password used for the installation. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerPrivateIp:ServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerPrivateNetwork:ServerPrivateNetwork"},"description":"The private networks to attach to the server. For more information, see [the documentation](https://www.scaleway.com/en/docs/compute/elastic-metal/how-to/use-private-networks/)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"reinstallOnConfigChanges":{"type":"boolean","description":"If True, this boolean allows to reinstall the server on install config changes.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`sshKeyIds`\" pulumi-lang-dotnet=\"`SshKeyIds`\" pulumi-lang-go=\"`sshKeyIds`\" pulumi-lang-python=\"`ssh_key_ids`\" pulumi-lang-yaml=\"`sshKeyIds`\" pulumi-lang-java=\"`sshKeyIds`\"\u003e`ssh_key_ids`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serviceUser`\" pulumi-lang-dotnet=\"`ServiceUser`\" pulumi-lang-go=\"`serviceUser`\" pulumi-lang-python=\"`service_user`\" pulumi-lang-yaml=\"`serviceUser`\" pulumi-lang-java=\"`serviceUser`\"\u003e`service_user`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e will not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.\n"},"servicePassword":{"type":"string","description":"Password used for the service to install. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e should be specified.\n","secret":true},"servicePasswordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"servicePasswordWoVersion":{"type":"integer","description":"The version of the write-only service password. To update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWoVersion`\" pulumi-lang-dotnet=\"`ServicePasswordWoVersion`\" pulumi-lang-go=\"`servicePasswordWoVersion`\" pulumi-lang-python=\"`service_password_wo_version`\" pulumi-lang-yaml=\"`servicePasswordWoVersion`\" pulumi-lang-java=\"`servicePasswordWoVersion`\"\u003e`service_password_wo_version`\u003c/span\u003e.\n"},"serviceUser":{"type":"string","description":"User used for the service to install.\n"},"sshKeyIds":{"type":"array","items":{"type":"string"},"description":"List of SSH keys allowed to connect to the server.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"user":{"type":"string","description":"User used for the installation.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["offer"],"stateInputs":{"description":"Input properties used for looking up and filtering Server resources.\n","properties":{"cloudInit":{"type":"string","description":"Configuration data to pass to cloud-init such as a YAML cloud config or a user-data script. Accepts either a string containing the content or a path to a file (for example `file(\"cloud-init.yml\")`). Max length: 127998 characters. Updates to \u003cspan pulumi-lang-nodejs=\"`cloudInit`\" pulumi-lang-dotnet=\"`CloudInit`\" pulumi-lang-go=\"`cloudInit`\" pulumi-lang-python=\"`cloud_init`\" pulumi-lang-yaml=\"`cloudInit`\" pulumi-lang-java=\"`cloudInit`\"\u003e`cloud_init`\u003c/span\u003e will update the server user-data via the API and do not trigger a reinstall; however, a reboot of the server is required for the OS to re-run cloud-init and apply the changes. Only supported for Offers that have cloud-init enabled. You can check available offers with `scw baremetal list offers` command.\n"},"description":{"type":"string","description":"A description for the server.\n"},"domain":{"type":"string","description":"The domain of the server.\n"},"hostname":{"type":"string","description":"The hostname of the server.\n"},"installConfigAfterward":{"type":"boolean","description":"If True, this boolean allows to create a server without the install config if you want to provide it later.\n"},"ips":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerIp:ServerIp"},"description":"(List of) The IPs of the server.\n"},"ipv4s":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerIpv4:ServerIpv4"},"description":"(List of) The IPv4 addresses of the server.\n"},"ipv6s":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerIpv6:ServerIpv6"},"description":"(List of) The IPv6 addresses of the server.\n"},"name":{"type":"string","description":"The name of the server.\n"},"offer":{"type":"string","description":"The offer UUID of the baremetal server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-servers-get-a-specific-elastic-metal-server) to find the right offer.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`offer`\" pulumi-lang-dotnet=\"`Offer`\" pulumi-lang-go=\"`offer`\" pulumi-lang-python=\"`offer`\" pulumi-lang-yaml=\"`offer`\" pulumi-lang-java=\"`offer`\"\u003e`offer`\u003c/span\u003e will recreate the server.\n\u003e **Important**  If you migrate to a monthly subscription, you cannot downgrade back to an hourly plan. Ensure that the monthly plan meets your needs before making the switch.\n"},"offerId":{"type":"string","description":"The ID of the offer.\n"},"offerName":{"type":"string","description":"The name of the offer.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerOption:ServerOption"},"description":"The options to enable on the server.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e block supports:\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"os":{"type":"string","description":"The UUID of the os to install on the server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-os-list-available-oses) to find the right OS ID.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`os`\" pulumi-lang-dotnet=\"`Os`\" pulumi-lang-go=\"`os`\" pulumi-lang-python=\"`os`\" pulumi-lang-yaml=\"`os`\" pulumi-lang-java=\"`os`\"\u003e`os`\u003c/span\u003e will reinstall the server.\n"},"osName":{"type":"string","description":"The name of the os.\n"},"partitioning":{"type":"string","description":"The partitioning schema in JSON format\n"},"password":{"type":"string","description":"Password used for the installation. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerPrivateIp:ServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:elasticmetal/ServerPrivateNetwork:ServerPrivateNetwork"},"description":"The private networks to attach to the server. For more information, see [the documentation](https://www.scaleway.com/en/docs/compute/elastic-metal/how-to/use-private-networks/)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"reinstallOnConfigChanges":{"type":"boolean","description":"If True, this boolean allows to reinstall the server on install config changes.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`sshKeyIds`\" pulumi-lang-dotnet=\"`SshKeyIds`\" pulumi-lang-go=\"`sshKeyIds`\" pulumi-lang-python=\"`ssh_key_ids`\" pulumi-lang-yaml=\"`sshKeyIds`\" pulumi-lang-java=\"`sshKeyIds`\"\u003e`ssh_key_ids`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serviceUser`\" pulumi-lang-dotnet=\"`ServiceUser`\" pulumi-lang-go=\"`serviceUser`\" pulumi-lang-python=\"`service_user`\" pulumi-lang-yaml=\"`serviceUser`\" pulumi-lang-java=\"`serviceUser`\"\u003e`service_user`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e will not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.\n"},"servicePassword":{"type":"string","description":"Password used for the service to install. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e should be specified.\n","secret":true},"servicePasswordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"servicePasswordWoVersion":{"type":"integer","description":"The version of the write-only service password. To update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWoVersion`\" pulumi-lang-dotnet=\"`ServicePasswordWoVersion`\" pulumi-lang-go=\"`servicePasswordWoVersion`\" pulumi-lang-python=\"`service_password_wo_version`\" pulumi-lang-yaml=\"`servicePasswordWoVersion`\" pulumi-lang-java=\"`servicePasswordWoVersion`\"\u003e`service_password_wo_version`\u003c/span\u003e.\n"},"serviceUser":{"type":"string","description":"User used for the service to install.\n"},"sshKeyIds":{"type":"array","items":{"type":"string"},"description":"List of SSH keys allowed to connect to the server.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"user":{"type":"string","description":"User used for the installation.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/baremetalServer:BaremetalServer"}]},"scaleway:functions/cron:Cron":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Cron`\" pulumi-lang-dotnet=\"`scaleway.functions.Cron`\" pulumi-lang-go=\"`functions.Cron`\" pulumi-lang-python=\"`functions.Cron`\" pulumi-lang-yaml=\"`scaleway.functions.Cron`\" pulumi-lang-java=\"`scaleway.functions.Cron`\"\u003e`scaleway.functions.Cron`\u003c/span\u003e resource allows you to create and manage CRON triggers for Scaleway [Serverless Functions](https://www.scaleway.com/en/docs/serverless/functions/).\n\nRefer to the Functions CRON triggers [documentation](https://www.scaleway.com/en/docs/serverless/functions/how-to/add-trigger-to-a-function/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-triggers-list-all-triggers) for more information.\n\n## Example Usage\n\nThe following command allows you to add a CRON trigger to a Serverless Function.\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.functions.Namespace(\"main\", {name: \"test-cron\"});\nconst mainFunction = new scaleway.functions.Function(\"main\", {\n    name: \"test-cron\",\n    namespaceId: main.id,\n    runtime: \"node14\",\n    privacy: \"private\",\n    handler: \"handler.handle\",\n});\nconst mainCron = new scaleway.functions.Cron(\"main\", {\n    name: \"test-cron\",\n    functionId: mainFunction.id,\n    schedule: \"0 0 * * *\",\n    args: JSON.stringify({\n        test: \"scw\",\n    }),\n});\nconst func = new scaleway.functions.Cron(\"func\", {\n    functionId: mainFunction.id,\n    schedule: \"0 1 * * *\",\n    args: JSON.stringify({\n        my_var: \"terraform\",\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.functions.Namespace(\"main\", name=\"test-cron\")\nmain_function = scaleway.functions.Function(\"main\",\n    name=\"test-cron\",\n    namespace_id=main.id,\n    runtime=\"node14\",\n    privacy=\"private\",\n    handler=\"handler.handle\")\nmain_cron = scaleway.functions.Cron(\"main\",\n    name=\"test-cron\",\n    function_id=main_function.id,\n    schedule=\"0 0 * * *\",\n    args=json.dumps({\n        \"test\": \"scw\",\n    }))\nfunc = scaleway.functions.Cron(\"func\",\n    function_id=main_function.id,\n    schedule=\"0 1 * * *\",\n    args=json.dumps({\n        \"my_var\": \"terraform\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Functions.Namespace(\"main\", new()\n    {\n        Name = \"test-cron\",\n    });\n\n    var mainFunction = new Scaleway.Functions.Function(\"main\", new()\n    {\n        Name = \"test-cron\",\n        NamespaceId = main.Id,\n        Runtime = \"node14\",\n        Privacy = \"private\",\n        Handler = \"handler.handle\",\n    });\n\n    var mainCron = new Scaleway.Functions.Cron(\"main\", new()\n    {\n        Name = \"test-cron\",\n        FunctionId = mainFunction.Id,\n        Schedule = \"0 0 * * *\",\n        Args = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"test\"] = \"scw\",\n        }),\n    });\n\n    var func = new Scaleway.Functions.Cron(\"func\", new()\n    {\n        FunctionId = mainFunction.Id,\n        Schedule = \"0 1 * * *\",\n        Args = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"my_var\"] = \"terraform\",\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := functions.NewNamespace(ctx, \"main\", \u0026functions.NamespaceArgs{\n\t\t\tName: pulumi.String(\"test-cron\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainFunction, err := functions.NewFunction(ctx, \"main\", \u0026functions.FunctionArgs{\n\t\t\tName:        pulumi.String(\"test-cron\"),\n\t\t\tNamespaceId: main.ID(),\n\t\t\tRuntime:     pulumi.String(\"node14\"),\n\t\t\tPrivacy:     pulumi.String(\"private\"),\n\t\t\tHandler:     pulumi.String(\"handler.handle\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"test\": \"scw\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = functions.NewCron(ctx, \"main\", \u0026functions.CronArgs{\n\t\t\tName:       pulumi.String(\"test-cron\"),\n\t\t\tFunctionId: mainFunction.ID(),\n\t\t\tSchedule:   pulumi.String(\"0 0 * * *\"),\n\t\t\tArgs:       pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"my_var\": \"terraform\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = functions.NewCron(ctx, \"func\", \u0026functions.CronArgs{\n\t\t\tFunctionId: mainFunction.ID(),\n\t\t\tSchedule:   pulumi.String(\"0 1 * * *\"),\n\t\t\tArgs:       pulumi.String(json1),\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.functions.Namespace;\nimport com.pulumi.scaleway.functions.NamespaceArgs;\nimport com.pulumi.scaleway.functions.Function;\nimport com.pulumi.scaleway.functions.FunctionArgs;\nimport com.pulumi.scaleway.functions.Cron;\nimport com.pulumi.scaleway.functions.CronArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"test-cron\")\n            .build());\n\n        var mainFunction = new Function(\"mainFunction\", FunctionArgs.builder()\n            .name(\"test-cron\")\n            .namespaceId(main.id())\n            .runtime(\"node14\")\n            .privacy(\"private\")\n            .handler(\"handler.handle\")\n            .build());\n\n        var mainCron = new Cron(\"mainCron\", CronArgs.builder()\n            .name(\"test-cron\")\n            .functionId(mainFunction.id())\n            .schedule(\"0 0 * * *\")\n            .args(serializeJson(\n                jsonObject(\n                    jsonProperty(\"test\", \"scw\")\n                )))\n            .build());\n\n        var func = new Cron(\"func\", CronArgs.builder()\n            .functionId(mainFunction.id())\n            .schedule(\"0 1 * * *\")\n            .args(serializeJson(\n                jsonObject(\n                    jsonProperty(\"my_var\", \"terraform\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Namespace\n    properties:\n      name: test-cron\n  mainFunction:\n    type: scaleway:functions:Function\n    name: main\n    properties:\n      name: test-cron\n      namespaceId: ${main.id}\n      runtime: node14\n      privacy: private\n      handler: handler.handle\n  mainCron:\n    type: scaleway:functions:Cron\n    name: main\n    properties:\n      name: test-cron\n      functionId: ${mainFunction.id}\n      schedule: 0 0 * * *\n      args:\n        fn::toJSON:\n          test: scw\n  func:\n    type: scaleway:functions:Cron\n    properties:\n      functionId: ${mainFunction.id}\n      schedule: 0 1 * * *\n      args:\n        fn::toJSON:\n          my_var: terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFunction Cron can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:functions/cron:Cron main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your function’s event object\n"},"functionId":{"type":"string","description":"The unique identifier of the function to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the function CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the function was created.\n"},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/functions/reference-content/cron-schedules/) for more information).\n"},"status":{"type":"string","description":"The CRON status.\n"}},"required":["args","functionId","name","schedule","status"],"inputProperties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your function’s event object\n"},"functionId":{"type":"string","description":"The unique identifier of the function to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the function CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the function was created.\n","willReplaceOnChanges":true},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/functions/reference-content/cron-schedules/) for more information).\n"}},"requiredInputs":["args","functionId","schedule"],"stateInputs":{"description":"Input properties used for looking up and filtering Cron resources.\n","properties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your function’s event object\n"},"functionId":{"type":"string","description":"The unique identifier of the function to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the function CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the function was created.\n","willReplaceOnChanges":true},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/functions/reference-content/cron-schedules/) for more information).\n"},"status":{"type":"string","description":"The CRON status.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/functionCron:FunctionCron"}]},"scaleway:functions/domain:Domain":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Domain`\" pulumi-lang-dotnet=\"`scaleway.functions.Domain`\" pulumi-lang-go=\"`functions.Domain`\" pulumi-lang-python=\"`functions.Domain`\" pulumi-lang-yaml=\"`scaleway.functions.Domain`\" pulumi-lang-java=\"`scaleway.functions.Domain`\"\u003e`scaleway.functions.Domain`\u003c/span\u003e resource allows you to create and manage domain name bindings for Scaleway [Serverless Functions](https://www.scaleway.com/en/docs/serverless/functions/).\n\nRefer to the Functions domain [documentation](https://www.scaleway.com/en/docs/serverless/functions/how-to/add-a-custom-domain-name-to-a-function/) and the [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-domains-list-all-domain-name-bindings) for more information.\n\n## Example Usage\n\nThis command allows to bind a custom domain name to a function.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainNamespace = new scaleway.functions.Namespace(\"main\", {});\nconst mainFunction = new scaleway.functions.Function(\"main\", {\n    namespaceId: mainNamespace.id,\n    runtime: \"go118\",\n    privacy: \"private\",\n    handler: \"Handle\",\n    zipFile: \"testfixture/gofunction.zip\",\n    deploy: true,\n});\nconst main = new scaleway.functions.Domain(\"main\", {\n    functionId: mainFunction.id,\n    hostname: \"example.com\",\n}, {\n    dependsOn: [mainFunction],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_namespace = scaleway.functions.Namespace(\"main\")\nmain_function = scaleway.functions.Function(\"main\",\n    namespace_id=main_namespace.id,\n    runtime=\"go118\",\n    privacy=\"private\",\n    handler=\"Handle\",\n    zip_file=\"testfixture/gofunction.zip\",\n    deploy=True)\nmain = scaleway.functions.Domain(\"main\",\n    function_id=main_function.id,\n    hostname=\"example.com\",\n    opts = pulumi.ResourceOptions(depends_on=[main_function]))\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 mainNamespace = new Scaleway.Functions.Namespace(\"main\");\n\n    var mainFunction = new Scaleway.Functions.Function(\"main\", new()\n    {\n        NamespaceId = mainNamespace.Id,\n        Runtime = \"go118\",\n        Privacy = \"private\",\n        Handler = \"Handle\",\n        ZipFile = \"testfixture/gofunction.zip\",\n        Deploy = true,\n    });\n\n    var main = new Scaleway.Functions.Domain(\"main\", new()\n    {\n        FunctionId = mainFunction.Id,\n        Hostname = \"example.com\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            mainFunction,\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/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainNamespace, err := functions.NewNamespace(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainFunction, err := functions.NewFunction(ctx, \"main\", \u0026functions.FunctionArgs{\n\t\t\tNamespaceId: mainNamespace.ID(),\n\t\t\tRuntime:     pulumi.String(\"go118\"),\n\t\t\tPrivacy:     pulumi.String(\"private\"),\n\t\t\tHandler:     pulumi.String(\"Handle\"),\n\t\t\tZipFile:     pulumi.String(\"testfixture/gofunction.zip\"),\n\t\t\tDeploy:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = functions.NewDomain(ctx, \"main\", \u0026functions.DomainArgs{\n\t\t\tFunctionId: mainFunction.ID(),\n\t\t\tHostname:   pulumi.String(\"example.com\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmainFunction,\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.functions.Namespace;\nimport com.pulumi.scaleway.functions.Function;\nimport com.pulumi.scaleway.functions.FunctionArgs;\nimport com.pulumi.scaleway.functions.Domain;\nimport com.pulumi.scaleway.functions.DomainArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mainNamespace = new Namespace(\"mainNamespace\");\n\n        var mainFunction = new Function(\"mainFunction\", FunctionArgs.builder()\n            .namespaceId(mainNamespace.id())\n            .runtime(\"go118\")\n            .privacy(\"private\")\n            .handler(\"Handle\")\n            .zipFile(\"testfixture/gofunction.zip\")\n            .deploy(true)\n            .build());\n\n        var main = new Domain(\"main\", DomainArgs.builder()\n            .functionId(mainFunction.id())\n            .hostname(\"example.com\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(mainFunction)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Domain\n    properties:\n      functionId: ${mainFunction.id}\n      hostname: example.com\n    options:\n      dependsOn:\n        - ${mainFunction}\n  mainNamespace:\n    type: scaleway:functions:Namespace\n    name: main\n  mainFunction:\n    type: scaleway:functions:Function\n    name: main\n    properties:\n      namespaceId: ${mainNamespace.id}\n      runtime: go118\n      privacy: private\n      handler: Handle\n      zipFile: testfixture/gofunction.zip\n      deploy: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFunction domain binding can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:functions/domain:Domain main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"functionId":{"type":"string","description":"The unique identifier of the function.\n"},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n\nWe recommend you use a CNAME domain record that point to your native function \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e for it.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`hostname`\" pulumi-lang-dotnet=\"`Hostname`\" pulumi-lang-go=\"`hostname`\" pulumi-lang-python=\"`hostname`\" pulumi-lang-yaml=\"`hostname`\" pulumi-lang-java=\"`hostname`\"\u003e`hostname`\u003c/span\u003e arguments will recreate the domain.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the domain was created.\n"},"url":{"type":"string","description":"The URL used to query the function.\n"}},"required":["functionId","hostname","url"],"inputProperties":{"functionId":{"type":"string","description":"The unique identifier of the function.\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n\nWe recommend you use a CNAME domain record that point to your native function \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e for it.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`hostname`\" pulumi-lang-dotnet=\"`Hostname`\" pulumi-lang-go=\"`hostname`\" pulumi-lang-python=\"`hostname`\" pulumi-lang-yaml=\"`hostname`\" pulumi-lang-java=\"`hostname`\"\u003e`hostname`\u003c/span\u003e arguments will recreate the domain.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the domain was created.\n","willReplaceOnChanges":true}},"requiredInputs":["functionId","hostname"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"functionId":{"type":"string","description":"The unique identifier of the function.\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n\nWe recommend you use a CNAME domain record that point to your native function \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e for it.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`hostname`\" pulumi-lang-dotnet=\"`Hostname`\" pulumi-lang-go=\"`hostname`\" pulumi-lang-python=\"`hostname`\" pulumi-lang-yaml=\"`hostname`\" pulumi-lang-java=\"`hostname`\"\u003e`hostname`\u003c/span\u003e arguments will recreate the domain.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the domain was created.\n","willReplaceOnChanges":true},"url":{"type":"string","description":"The URL used to query the function.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/functionDomain:FunctionDomain"}]},"scaleway:functions/function:Function":{"description":"\n\n## Import\n\nFunctions can be imported using, `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:functions/function:Function main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"cpuLimit":{"type":"integer","description":"The CPU limit in mVCPU for your function.\n"},"deploy":{"type":"boolean"},"description":{"type":"string","description":"The description of the function.\n"},"domainName":{"type":"string","description":"The native domain name of the function.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#environment-variables) of the function.\n"},"handler":{"type":"string","description":"Handler of the function, depends on the runtime. Refer to the [dedicated documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-create-a-new-function) for the list of supported runtimes.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"maxScale":{"type":"integer","description":"The maximum number of instances this function can scale to. Default to 20. Your function will scale automatically based on the incoming workload, but will never exceed the configured \u003cspan pulumi-lang-nodejs=\"`maxScale`\" pulumi-lang-dotnet=\"`MaxScale`\" pulumi-lang-go=\"`maxScale`\" pulumi-lang-python=\"`max_scale`\" pulumi-lang-yaml=\"`maxScale`\" pulumi-lang-java=\"`maxScale`\"\u003e`max_scale`\u003c/span\u003e value.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each function. Defaults to 256 MB.\n"},"minScale":{"type":"integer","description":"The minimum number of function instances running continuously. Defaults to 0. Functions are billed when executed, and using a \u003cspan pulumi-lang-nodejs=\"`minScale`\" pulumi-lang-dotnet=\"`MinScale`\" pulumi-lang-go=\"`minScale`\" pulumi-lang-python=\"`min_scale`\" pulumi-lang-yaml=\"`minScale`\" pulumi-lang-java=\"`minScale`\"\u003e`min_scale`\u003c/span\u003e greater than 0 will cause your function to run constantly.\n"},"name":{"type":"string","description":"The unique name of the function name.\n"},"namespaceId":{"type":"string","description":"The Functions namespace ID of the function.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the function.\n"},"organizationId":{"type":"string","description":"The organization ID the function is associated with.\n"},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your function. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-functions/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the function is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the functions namespace is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n"},"runtime":{"type":"string","description":"Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-get-a-function)\n"},"sandbox":{"type":"string","description":"Execution environment of the function.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) of the function.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the function.\n"},"timeout":{"type":"integer","description":"The maximum amount of time your function can spend processing a request before being stopped. Defaults to 300s.\n"},"zipFile":{"type":"string","description":"Path to the zip file containing your function sources to upload.\n"},"zipHash":{"type":"string","description":"The hash of your source zip file, changing it will re-apply function. Can be any string"}},"required":["cpuLimit","domainName","handler","name","namespaceId","organizationId","privacy","projectId","runtime","sandbox","timeout"],"inputProperties":{"deploy":{"type":"boolean"},"description":{"type":"string","description":"The description of the function.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#environment-variables) of the function.\n"},"handler":{"type":"string","description":"Handler of the function, depends on the runtime. Refer to the [dedicated documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-create-a-new-function) for the list of supported runtimes.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"maxScale":{"type":"integer","description":"The maximum number of instances this function can scale to. Default to 20. Your function will scale automatically based on the incoming workload, but will never exceed the configured \u003cspan pulumi-lang-nodejs=\"`maxScale`\" pulumi-lang-dotnet=\"`MaxScale`\" pulumi-lang-go=\"`maxScale`\" pulumi-lang-python=\"`max_scale`\" pulumi-lang-yaml=\"`maxScale`\" pulumi-lang-java=\"`maxScale`\"\u003e`max_scale`\u003c/span\u003e value.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each function. Defaults to 256 MB.\n"},"minScale":{"type":"integer","description":"The minimum number of function instances running continuously. Defaults to 0. Functions are billed when executed, and using a \u003cspan pulumi-lang-nodejs=\"`minScale`\" pulumi-lang-dotnet=\"`MinScale`\" pulumi-lang-go=\"`minScale`\" pulumi-lang-python=\"`min_scale`\" pulumi-lang-yaml=\"`minScale`\" pulumi-lang-java=\"`minScale`\"\u003e`min_scale`\u003c/span\u003e greater than 0 will cause your function to run constantly.\n"},"name":{"type":"string","description":"The unique name of the function name.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The Functions namespace ID of the function.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the function.\n","willReplaceOnChanges":true},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your function. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-functions/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the function is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the functions namespace is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n","willReplaceOnChanges":true},"runtime":{"type":"string","description":"Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-get-a-function)\n"},"sandbox":{"type":"string","description":"Execution environment of the function.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) of the function.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the function.\n"},"timeout":{"type":"integer","description":"The maximum amount of time your function can spend processing a request before being stopped. Defaults to 300s.\n"},"zipFile":{"type":"string","description":"Path to the zip file containing your function sources to upload.\n"},"zipHash":{"type":"string","description":"The hash of your source zip file, changing it will re-apply function. Can be any string"}},"requiredInputs":["handler","namespaceId","privacy","runtime"],"stateInputs":{"description":"Input properties used for looking up and filtering Function resources.\n","properties":{"cpuLimit":{"type":"integer","description":"The CPU limit in mVCPU for your function.\n"},"deploy":{"type":"boolean"},"description":{"type":"string","description":"The description of the function.\n"},"domainName":{"type":"string","description":"The native domain name of the function.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#environment-variables) of the function.\n"},"handler":{"type":"string","description":"Handler of the function, depends on the runtime. Refer to the [dedicated documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-create-a-new-function) for the list of supported runtimes.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"maxScale":{"type":"integer","description":"The maximum number of instances this function can scale to. Default to 20. Your function will scale automatically based on the incoming workload, but will never exceed the configured \u003cspan pulumi-lang-nodejs=\"`maxScale`\" pulumi-lang-dotnet=\"`MaxScale`\" pulumi-lang-go=\"`maxScale`\" pulumi-lang-python=\"`max_scale`\" pulumi-lang-yaml=\"`maxScale`\" pulumi-lang-java=\"`maxScale`\"\u003e`max_scale`\u003c/span\u003e value.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each function. Defaults to 256 MB.\n"},"minScale":{"type":"integer","description":"The minimum number of function instances running continuously. Defaults to 0. Functions are billed when executed, and using a \u003cspan pulumi-lang-nodejs=\"`minScale`\" pulumi-lang-dotnet=\"`MinScale`\" pulumi-lang-go=\"`minScale`\" pulumi-lang-python=\"`min_scale`\" pulumi-lang-yaml=\"`minScale`\" pulumi-lang-java=\"`minScale`\"\u003e`min_scale`\u003c/span\u003e greater than 0 will cause your function to run constantly.\n"},"name":{"type":"string","description":"The unique name of the function name.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The Functions namespace ID of the function.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the function.\n","willReplaceOnChanges":true},"organizationId":{"type":"string","description":"The organization ID the function is associated with.\n"},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your function. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-functions/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the function is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the functions namespace is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n","willReplaceOnChanges":true},"runtime":{"type":"string","description":"Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-get-a-function)\n"},"sandbox":{"type":"string","description":"Execution environment of the function.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) of the function.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the function.\n"},"timeout":{"type":"integer","description":"The maximum amount of time your function can spend processing a request before being stopped. Defaults to 300s.\n"},"zipFile":{"type":"string","description":"Path to the zip file containing your function sources to upload.\n"},"zipHash":{"type":"string","description":"The hash of your source zip file, changing it will re-apply function. Can be any string"}},"type":"object"},"aliases":[{"type":"scaleway:index/function:Function"}]},"scaleway:functions/namespace:Namespace":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Namespace`\" pulumi-lang-dotnet=\"`scaleway.functions.Namespace`\" pulumi-lang-go=\"`functions.Namespace`\" pulumi-lang-python=\"`functions.Namespace`\" pulumi-lang-yaml=\"`scaleway.functions.Namespace`\" pulumi-lang-java=\"`scaleway.functions.Namespace`\"\u003e`scaleway.functions.Namespace`\u003c/span\u003e resource allows you to\nfor Scaleway [Serverless Functions](https://www.scaleway.com/en/docs/serverless/functions/).\n\nRefer to the Functions namespace [documentation](https://www.scaleway.com/en/docs/serverless/functions/how-to/create-manage-delete-functions-namespace/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-namespaces-list-all-your-namespaces) for more information.\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.functions.Namespace(\"main\", {\n    name: \"main-function-namespace\",\n    description: \"Main function namespace\",\n    tags: [\n        \"tag1\",\n        \"tag2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.functions.Namespace(\"main\",\n    name=\"main-function-namespace\",\n    description=\"Main function namespace\",\n    tags=[\n        \"tag1\",\n        \"tag2\",\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.Functions.Namespace(\"main\", new()\n    {\n        Name = \"main-function-namespace\",\n        Description = \"Main function namespace\",\n        Tags = new[]\n        {\n            \"tag1\",\n            \"tag2\",\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/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := functions.NewNamespace(ctx, \"main\", \u0026functions.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"main-function-namespace\"),\n\t\t\tDescription: pulumi.String(\"Main function namespace\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tag1\"),\n\t\t\t\tpulumi.String(\"tag2\"),\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.functions.Namespace;\nimport com.pulumi.scaleway.functions.NamespaceArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"main-function-namespace\")\n            .description(\"Main function namespace\")\n            .tags(            \n                \"tag1\",\n                \"tag2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Namespace\n    properties:\n      name: main-function-namespace\n      description: Main function namespace\n      tags:\n        - tag1\n        - tag2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFunctions namespaces can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:functions/namespace:Namespace main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Functions of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Functions namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n"},"organizationId":{"type":"string","description":"The Organization ID with which the namespace is associated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n"},"registryEndpoint":{"type":"string","description":"The registry endpoint of the namespace.\n"},"registryNamespaceId":{"type":"string","description":"The registry namespace ID of the namespace.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"required":["name","organizationId","projectId","registryEndpoint","registryNamespaceId"],"inputProperties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Functions of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Functions namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Namespace resources.\n","properties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Functions of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Functions namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n","willReplaceOnChanges":true},"organizationId":{"type":"string","description":"The Organization ID with which the namespace is associated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"registryEndpoint":{"type":"string","description":"The registry endpoint of the namespace.\n"},"registryNamespaceId":{"type":"string","description":"The registry namespace ID of the namespace.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/functionNamespace:FunctionNamespace"}]},"scaleway:functions/token:Token":{"description":"\u003e **Important:** The resource \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Token`\" pulumi-lang-dotnet=\"`scaleway.functions.Token`\" pulumi-lang-go=\"`functions.Token`\" pulumi-lang-python=\"`functions.Token`\" pulumi-lang-yaml=\"`scaleway.functions.Token`\" pulumi-lang-java=\"`scaleway.functions.Token`\"\u003e`scaleway.functions.Token`\u003c/span\u003e has been deprecated and will no longer be supported in v1 of the API.\nPlease use IAM authentication instead. You will find an implementation example in the IAM authentication section of the Function documentation.\n\nThe \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Token`\" pulumi-lang-dotnet=\"`scaleway.functions.Token`\" pulumi-lang-go=\"`functions.Token`\" pulumi-lang-python=\"`functions.Token`\" pulumi-lang-yaml=\"`scaleway.functions.Token`\" pulumi-lang-java=\"`scaleway.functions.Token`\"\u003e`scaleway.functions.Token`\u003c/span\u003e resource allows you to create and manage authentication tokens for Scaleway [Serverless Functions](https://www.scaleway.com/en/docs/serverless/functions/).\n\nRefer to the Functions tokens [documentation](https://www.scaleway.com/en/docs/serverless/functions/how-to/create-auth-token-from-console/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-tokens-list-all-tokens) for more information.\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.functions.Namespace(\"main\", {name: \"test-function-token-ns\"});\nconst mainFunction = new scaleway.functions.Function(\"main\", {\n    namespaceId: main.id,\n    runtime: \"go118\",\n    handler: \"Handle\",\n    privacy: \"private\",\n});\n// Namespace Token\nconst namespace = new scaleway.functions.Token(\"namespace\", {\n    namespaceId: main.id,\n    expiresAt: \"2022-10-18T11:35:15+02:00\",\n});\n// Function Token\nconst _function = new scaleway.functions.Token(\"function\", {functionId: mainFunction.id});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.functions.Namespace(\"main\", name=\"test-function-token-ns\")\nmain_function = scaleway.functions.Function(\"main\",\n    namespace_id=main.id,\n    runtime=\"go118\",\n    handler=\"Handle\",\n    privacy=\"private\")\n# Namespace Token\nnamespace = scaleway.functions.Token(\"namespace\",\n    namespace_id=main.id,\n    expires_at=\"2022-10-18T11:35:15+02:00\")\n# Function Token\nfunction = scaleway.functions.Token(\"function\", function_id=main_function.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 main = new Scaleway.Functions.Namespace(\"main\", new()\n    {\n        Name = \"test-function-token-ns\",\n    });\n\n    var mainFunction = new Scaleway.Functions.Function(\"main\", new()\n    {\n        NamespaceId = main.Id,\n        Runtime = \"go118\",\n        Handler = \"Handle\",\n        Privacy = \"private\",\n    });\n\n    // Namespace Token\n    var @namespace = new Scaleway.Functions.Token(\"namespace\", new()\n    {\n        NamespaceId = main.Id,\n        ExpiresAt = \"2022-10-18T11:35:15+02:00\",\n    });\n\n    // Function Token\n    var function = new Scaleway.Functions.Token(\"function\", new()\n    {\n        FunctionId = mainFunction.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/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := functions.NewNamespace(ctx, \"main\", \u0026functions.NamespaceArgs{\n\t\t\tName: pulumi.String(\"test-function-token-ns\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainFunction, err := functions.NewFunction(ctx, \"main\", \u0026functions.FunctionArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tRuntime:     pulumi.String(\"go118\"),\n\t\t\tHandler:     pulumi.String(\"Handle\"),\n\t\t\tPrivacy:     pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Namespace Token\n\t\t_, err = functions.NewToken(ctx, \"namespace\", \u0026functions.TokenArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tExpiresAt:   pulumi.String(\"2022-10-18T11:35:15+02:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Function Token\n\t\t_, err = functions.NewToken(ctx, \"function\", \u0026functions.TokenArgs{\n\t\t\tFunctionId: mainFunction.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.functions.Namespace;\nimport com.pulumi.scaleway.functions.NamespaceArgs;\nimport com.pulumi.scaleway.functions.Function;\nimport com.pulumi.scaleway.functions.FunctionArgs;\nimport com.pulumi.scaleway.functions.Token;\nimport com.pulumi.scaleway.functions.TokenArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"test-function-token-ns\")\n            .build());\n\n        var mainFunction = new Function(\"mainFunction\", FunctionArgs.builder()\n            .namespaceId(main.id())\n            .runtime(\"go118\")\n            .handler(\"Handle\")\n            .privacy(\"private\")\n            .build());\n\n        // Namespace Token\n        var namespace = new Token(\"namespace\", TokenArgs.builder()\n            .namespaceId(main.id())\n            .expiresAt(\"2022-10-18T11:35:15+02:00\")\n            .build());\n\n        // Function Token\n        var function = new Token(\"function\", TokenArgs.builder()\n            .functionId(mainFunction.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Namespace\n    properties:\n      name: test-function-token-ns\n  mainFunction:\n    type: scaleway:functions:Function\n    name: main\n    properties:\n      namespaceId: ${main.id}\n      runtime: go118\n      handler: Handle\n      privacy: private\n  # Namespace Token\n  namespace:\n    type: scaleway:functions:Token\n    properties:\n      namespaceId: ${main.id}\n      expiresAt: 2022-10-18T11:35:15+02:00\n  # Function Token\n  function:\n    type: scaleway:functions:Token\n    properties:\n      functionId: ${mainFunction.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTokens can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:functions/token:Token main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"description":{"type":"string","description":"The description of the token.\n"},"expiresAt":{"type":"string","description":"The expiration date of the token.\n"},"functionId":{"type":"string","description":"The unique identifier of the function.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e must be set.\n"},"namespaceId":{"type":"string","description":"The unique identifier of the Functions namespace.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n"},"value":{"type":"string","description":"The token.\n","secret":true}},"required":["value"],"inputProperties":{"description":{"type":"string","description":"The description of the token.\n","willReplaceOnChanges":true},"expiresAt":{"type":"string","description":"The expiration date of the token.\n","willReplaceOnChanges":true},"functionId":{"type":"string","description":"The unique identifier of the function.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e must be set.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The unique identifier of the Functions namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Token resources.\n","properties":{"description":{"type":"string","description":"The description of the token.\n","willReplaceOnChanges":true},"expiresAt":{"type":"string","description":"The expiration date of the token.\n","willReplaceOnChanges":true},"functionId":{"type":"string","description":"The unique identifier of the function.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e must be set.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The unique identifier of the Functions namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The token.\n","secret":true}},"type":"object"},"aliases":[{"type":"scaleway:index/functionToken:FunctionToken"}]},"scaleway:functions/trigger:Trigger":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Trigger`\" pulumi-lang-dotnet=\"`scaleway.functions.Trigger`\" pulumi-lang-go=\"`functions.Trigger`\" pulumi-lang-python=\"`functions.Trigger`\" pulumi-lang-yaml=\"`scaleway.functions.Trigger`\" pulumi-lang-java=\"`scaleway.functions.Trigger`\"\u003e`scaleway.functions.Trigger`\u003c/span\u003e resource allows you to create and manage triggers for Scaleway [Serverless Functions](https://www.scaleway.com/en/docs/serverless/functions/).\n\nRefer to the Functions triggers [documentation](https://www.scaleway.com/en/docs/serverless/functions/how-to/add-trigger-to-a-function/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-triggers-list-all-triggers) for more information.\n\n## Example Usage\n\n### SQS\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.functions.Trigger(\"main\", {\n    functionId: mainScalewayFunction.id,\n    name: \"my-trigger\",\n    sqs: {\n        projectId: mainScalewayMnqSqs.projectId,\n        queue: \"MyQueue\",\n        region: mainScalewayMnqSqs.region,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.functions.Trigger(\"main\",\n    function_id=main_scaleway_function[\"id\"],\n    name=\"my-trigger\",\n    sqs={\n        \"project_id\": main_scaleway_mnq_sqs[\"projectId\"],\n        \"queue\": \"MyQueue\",\n        \"region\": main_scaleway_mnq_sqs[\"region\"],\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.Functions.Trigger(\"main\", new()\n    {\n        FunctionId = mainScalewayFunction.Id,\n        Name = \"my-trigger\",\n        Sqs = new Scaleway.Functions.Inputs.TriggerSqsArgs\n        {\n            ProjectId = mainScalewayMnqSqs.ProjectId,\n            Queue = \"MyQueue\",\n            Region = mainScalewayMnqSqs.Region,\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/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := functions.NewTrigger(ctx, \"main\", \u0026functions.TriggerArgs{\n\t\t\tFunctionId: pulumi.Any(mainScalewayFunction.Id),\n\t\t\tName:       pulumi.String(\"my-trigger\"),\n\t\t\tSqs: \u0026functions.TriggerSqsArgs{\n\t\t\t\tProjectId: pulumi.Any(mainScalewayMnqSqs.ProjectId),\n\t\t\t\tQueue:     pulumi.String(\"MyQueue\"),\n\t\t\t\tRegion:    pulumi.Any(mainScalewayMnqSqs.Region),\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.functions.Trigger;\nimport com.pulumi.scaleway.functions.TriggerArgs;\nimport com.pulumi.scaleway.functions.inputs.TriggerSqsArgs;\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 Trigger(\"main\", TriggerArgs.builder()\n            .functionId(mainScalewayFunction.id())\n            .name(\"my-trigger\")\n            .sqs(TriggerSqsArgs.builder()\n                .projectId(mainScalewayMnqSqs.projectId())\n                .queue(\"MyQueue\")\n                .region(mainScalewayMnqSqs.region())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Trigger\n    properties:\n      functionId: ${mainScalewayFunction.id}\n      name: my-trigger\n      sqs:\n        projectId: ${mainScalewayMnqSqs.projectId}\n        queue: MyQueue\n        region: ${mainScalewayMnqSqs.region}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### NATS\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.functions.Trigger(\"main\", {\n    functionId: mainScalewayFunction.id,\n    name: \"my-trigger\",\n    nats: {\n        accountId: mainScalewayMnqNatsAccount.id,\n        subject: \"MySubject\",\n        region: mainScalewayMnqNatsAccount.region,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.functions.Trigger(\"main\",\n    function_id=main_scaleway_function[\"id\"],\n    name=\"my-trigger\",\n    nats={\n        \"account_id\": main_scaleway_mnq_nats_account[\"id\"],\n        \"subject\": \"MySubject\",\n        \"region\": main_scaleway_mnq_nats_account[\"region\"],\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.Functions.Trigger(\"main\", new()\n    {\n        FunctionId = mainScalewayFunction.Id,\n        Name = \"my-trigger\",\n        Nats = new Scaleway.Functions.Inputs.TriggerNatsArgs\n        {\n            AccountId = mainScalewayMnqNatsAccount.Id,\n            Subject = \"MySubject\",\n            Region = mainScalewayMnqNatsAccount.Region,\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/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := functions.NewTrigger(ctx, \"main\", \u0026functions.TriggerArgs{\n\t\t\tFunctionId: pulumi.Any(mainScalewayFunction.Id),\n\t\t\tName:       pulumi.String(\"my-trigger\"),\n\t\t\tNats: \u0026functions.TriggerNatsArgs{\n\t\t\t\tAccountId: pulumi.Any(mainScalewayMnqNatsAccount.Id),\n\t\t\t\tSubject:   pulumi.String(\"MySubject\"),\n\t\t\t\tRegion:    pulumi.Any(mainScalewayMnqNatsAccount.Region),\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.functions.Trigger;\nimport com.pulumi.scaleway.functions.TriggerArgs;\nimport com.pulumi.scaleway.functions.inputs.TriggerNatsArgs;\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 Trigger(\"main\", TriggerArgs.builder()\n            .functionId(mainScalewayFunction.id())\n            .name(\"my-trigger\")\n            .nats(TriggerNatsArgs.builder()\n                .accountId(mainScalewayMnqNatsAccount.id())\n                .subject(\"MySubject\")\n                .region(mainScalewayMnqNatsAccount.region())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Trigger\n    properties:\n      functionId: ${mainScalewayFunction.id}\n      name: my-trigger\n      nats:\n        accountId: ${mainScalewayMnqNatsAccount.id}\n        subject: MySubject\n        region: ${mainScalewayMnqNatsAccount.region}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFunction Triggers can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:functions/trigger:Trigger main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"description":{"type":"string","description":"The description of the trigger.\n"},"functionId":{"type":"string","description":"The unique identifier of the function to create a trigger for.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:functions/TriggerNats:TriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n"},"sqs":{"$ref":"#/types/scaleway:functions/TriggerSqs:TriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n"}},"required":["functionId","name"],"inputProperties":{"description":{"type":"string","description":"The description of the trigger.\n"},"functionId":{"type":"string","description":"The unique identifier of the function to create a trigger for.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:functions/TriggerNats:TriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"sqs":{"$ref":"#/types/scaleway:functions/TriggerSqs:TriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n","willReplaceOnChanges":true}},"requiredInputs":["functionId"],"stateInputs":{"description":"Input properties used for looking up and filtering Trigger resources.\n","properties":{"description":{"type":"string","description":"The description of the trigger.\n"},"functionId":{"type":"string","description":"The unique identifier of the function to create a trigger for.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:functions/TriggerNats:TriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"sqs":{"$ref":"#/types/scaleway:functions/TriggerSqs:TriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/functionTrigger:FunctionTrigger"}]},"scaleway:hosting/hosting:Hosting":{"description":"Creates and manages Scaleway Web Hostings.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/webhosting/hosting-api/).\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 byName = scaleway.hosting.getOffer({\n    name: \"lite\",\n    controlPanel: \"Cpanel\",\n});\nconst main = new scaleway.hosting.Hosting(\"main\", {\n    offerId: byName.then(byName =\u003e byName.offerId),\n    email: \"your@email.com\",\n    domain: \"yourdomain.com\",\n    tags: [\n        \"webhosting\",\n        \"provider\",\n        \"terraform\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nby_name = scaleway.hosting.get_offer(name=\"lite\",\n    control_panel=\"Cpanel\")\nmain = scaleway.hosting.Hosting(\"main\",\n    offer_id=by_name.offer_id,\n    email=\"your@email.com\",\n    domain=\"yourdomain.com\",\n    tags=[\n        \"webhosting\",\n        \"provider\",\n        \"terraform\",\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 byName = Scaleway.Hosting.GetOffer.Invoke(new()\n    {\n        Name = \"lite\",\n        ControlPanel = \"Cpanel\",\n    });\n\n    var main = new Scaleway.Hosting.Hosting(\"main\", new()\n    {\n        OfferId = byName.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        Email = \"your@email.com\",\n        Domain = \"yourdomain.com\",\n        Tags = new[]\n        {\n            \"webhosting\",\n            \"provider\",\n            \"terraform\",\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/hosting\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbyName, err := hosting.GetOffer(ctx, \u0026hosting.GetOfferArgs{\n\t\t\tName:         pulumi.StringRef(\"lite\"),\n\t\t\tControlPanel: pulumi.StringRef(\"Cpanel\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hosting.NewHosting(ctx, \"main\", \u0026hosting.HostingArgs{\n\t\t\tOfferId: pulumi.String(byName.OfferId),\n\t\t\tEmail:   pulumi.String(\"your@email.com\"),\n\t\t\tDomain:  pulumi.String(\"yourdomain.com\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"webhosting\"),\n\t\t\t\tpulumi.String(\"provider\"),\n\t\t\t\tpulumi.String(\"terraform\"),\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.hosting.HostingFunctions;\nimport com.pulumi.scaleway.hosting.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.hosting.Hosting;\nimport com.pulumi.scaleway.hosting.HostingArgs;\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 byName = HostingFunctions.getOffer(GetOfferArgs.builder()\n            .name(\"lite\")\n            .controlPanel(\"Cpanel\")\n            .build());\n\n        var main = new Hosting(\"main\", HostingArgs.builder()\n            .offerId(byName.offerId())\n            .email(\"your@email.com\")\n            .domain(\"yourdomain.com\")\n            .tags(            \n                \"webhosting\",\n                \"provider\",\n                \"terraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:hosting:Hosting\n    properties:\n      offerId: ${byName.offerId}\n      email: your@email.com\n      domain: yourdomain.com\n      tags:\n        - webhosting\n        - provider\n        - terraform\nvariables:\n  byName:\n    fn::invoke:\n      function: scaleway:hosting:getOffer\n      arguments:\n        name: lite\n        controlPanel: Cpanel\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHostings can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:hosting/hosting:Hosting hosting01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"cpanelUrls":{"type":"array","items":{"$ref":"#/types/scaleway:hosting/HostingCpanelUrl:HostingCpanelUrl"},"description":"The URL to connect to cPanel Dashboard and to Webmail interface.\n"},"createdAt":{"type":"string","description":"Date and time of hosting's creation (RFC 3339 format).\n"},"dnsStatus":{"type":"string","description":"The DNS status of the hosting.\n"},"domain":{"type":"string","description":"The domain name of the hosting.\n"},"email":{"type":"string","description":"The contact email of the client for the hosting.\n"},"nameServers":{"type":"array","items":{"$ref":"#/types/scaleway:hosting/HostingNameServer:HostingNameServer"},"description":"List of nameservers associated with the webhosting."},"offerId":{"type":"string","description":"The ID of the selected offer for the hosting.\n"},"offerName":{"type":"string","description":"The name of the active offer.\n"},"optionIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the selected options for the hosting.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:hosting/HostingOption:HostingOption"},"description":"The active options of the hosting.\n"},"organizationId":{"type":"string","description":"(Deprecated) The organization ID the hosting is associated with.\n","deprecationMessage":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003efield is deprecated and will be removed in the next major version."},"platformHostname":{"type":"string","description":"The hostname of the host platform.\n"},"platformNumber":{"type":"integer","description":"The number of the host platform.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the VPC is associated with.\n"},"records":{"type":"array","items":{"$ref":"#/types/scaleway:hosting/HostingRecord:HostingRecord"},"description":"List of DNS records associated with the webhosting."},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Hosting.\n"},"status":{"type":"string","description":"The hosting status.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the hosting.\n"},"updatedAt":{"type":"string","description":"Date and time of hosting's last update (RFC 3339 format).\n"},"username":{"type":"string","description":"The main hosting cPanel username.\n"}},"required":["cpanelUrls","createdAt","dnsStatus","domain","email","nameServers","offerId","offerName","options","organizationId","platformHostname","platformNumber","projectId","records","status","tags","updatedAt","username"],"inputProperties":{"domain":{"type":"string","description":"The domain name of the hosting.\n"},"email":{"type":"string","description":"The contact email of the client for the hosting.\n"},"offerId":{"type":"string","description":"The ID of the selected offer for the hosting.\n"},"optionIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the selected options for the hosting.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the VPC is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Hosting.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the hosting.\n"}},"requiredInputs":["domain","email","offerId"],"stateInputs":{"description":"Input properties used for looking up and filtering Hosting resources.\n","properties":{"cpanelUrls":{"type":"array","items":{"$ref":"#/types/scaleway:hosting/HostingCpanelUrl:HostingCpanelUrl"},"description":"The URL to connect to cPanel Dashboard and to Webmail interface.\n"},"createdAt":{"type":"string","description":"Date and time of hosting's creation (RFC 3339 format).\n"},"dnsStatus":{"type":"string","description":"The DNS status of the hosting.\n"},"domain":{"type":"string","description":"The domain name of the hosting.\n"},"email":{"type":"string","description":"The contact email of the client for the hosting.\n"},"nameServers":{"type":"array","items":{"$ref":"#/types/scaleway:hosting/HostingNameServer:HostingNameServer"},"description":"List of nameservers associated with the webhosting."},"offerId":{"type":"string","description":"The ID of the selected offer for the hosting.\n"},"offerName":{"type":"string","description":"The name of the active offer.\n"},"optionIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the selected options for the hosting.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:hosting/HostingOption:HostingOption"},"description":"The active options of the hosting.\n"},"organizationId":{"type":"string","description":"(Deprecated) The organization ID the hosting is associated with.\n","deprecationMessage":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003efield is deprecated and will be removed in the next major version."},"platformHostname":{"type":"string","description":"The hostname of the host platform.\n"},"platformNumber":{"type":"integer","description":"The number of the host platform.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the VPC is associated with.\n","willReplaceOnChanges":true},"records":{"type":"array","items":{"$ref":"#/types/scaleway:hosting/HostingRecord:HostingRecord"},"description":"List of DNS records associated with the webhosting."},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Hosting.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The hosting status.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the hosting.\n"},"updatedAt":{"type":"string","description":"Date and time of hosting's last update (RFC 3339 format).\n"},"username":{"type":"string","description":"The main hosting cPanel username.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/webhosting:Webhosting"}]},"scaleway:iam/apiKey:ApiKey":{"description":"Creates and manages Scaleway API Keys. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae).\n\n## Example Usage\n\n### With application\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ciCd = new scaleway.iam.Application(\"ci_cd\", {name: \"My application\"});\nconst main = new scaleway.iam.ApiKey(\"main\", {\n    applicationId: mainScalewayIamApplication.id,\n    description: \"a description\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nci_cd = scaleway.iam.Application(\"ci_cd\", name=\"My application\")\nmain = scaleway.iam.ApiKey(\"main\",\n    application_id=main_scaleway_iam_application[\"id\"],\n    description=\"a description\")\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 ciCd = new Scaleway.Iam.Application(\"ci_cd\", new()\n    {\n        Name = \"My application\",\n    });\n\n    var main = new Scaleway.Iam.ApiKey(\"main\", new()\n    {\n        ApplicationId = mainScalewayIamApplication.Id,\n        Description = \"a description\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewApplication(ctx, \"ci_cd\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"My application\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewApiKey(ctx, \"main\", \u0026iam.ApiKeyArgs{\n\t\t\tApplicationId: pulumi.Any(mainScalewayIamApplication.Id),\n\t\t\tDescription:   pulumi.String(\"a description\"),\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.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.ApiKey;\nimport com.pulumi.scaleway.iam.ApiKeyArgs;\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 ciCd = new Application(\"ciCd\", ApplicationArgs.builder()\n            .name(\"My application\")\n            .build());\n\n        var main = new ApiKey(\"main\", ApiKeyArgs.builder()\n            .applicationId(mainScalewayIamApplication.id())\n            .description(\"a description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ciCd:\n    type: scaleway:iam:Application\n    name: ci_cd\n    properties:\n      name: My application\n  main:\n    type: scaleway:iam:ApiKey\n    properties:\n      applicationId: ${mainScalewayIamApplication.id}\n      description: a description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With user\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.iam.User(\"main\", {email: \"test@test.com\"});\nconst mainApiKey = new scaleway.iam.ApiKey(\"main\", {\n    userId: main.id,\n    description: \"a description\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iam.User(\"main\", email=\"test@test.com\")\nmain_api_key = scaleway.iam.ApiKey(\"main\",\n    user_id=main.id,\n    description=\"a description\")\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.Iam.User(\"main\", new()\n    {\n        Email = \"test@test.com\",\n    });\n\n    var mainApiKey = new Scaleway.Iam.ApiKey(\"main\", new()\n    {\n        UserId = main.Id,\n        Description = \"a description\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := iam.NewUser(ctx, \"main\", \u0026iam.UserArgs{\n\t\t\tEmail: pulumi.String(\"test@test.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewApiKey(ctx, \"main\", \u0026iam.ApiKeyArgs{\n\t\t\tUserId:      main.ID(),\n\t\t\tDescription: pulumi.String(\"a description\"),\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.iam.User;\nimport com.pulumi.scaleway.iam.UserArgs;\nimport com.pulumi.scaleway.iam.ApiKey;\nimport com.pulumi.scaleway.iam.ApiKeyArgs;\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 User(\"main\", UserArgs.builder()\n            .email(\"test@test.com\")\n            .build());\n\n        var mainApiKey = new ApiKey(\"mainApiKey\", ApiKeyArgs.builder()\n            .userId(main.id())\n            .description(\"a description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iam:User\n    properties:\n      email: test@test.com\n  mainApiKey:\n    type: scaleway:iam:ApiKey\n    name: main\n    properties:\n      userId: ${main.id}\n      description: a description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With expiration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\nimport * as time from \"@pulumi/time\";\n\nconst rotateAfterAYear = new time.index.Rotating(\"rotate_after_a_year\", {rotationYears: 1});\nconst main = new scaleway.iam.ApiKey(\"main\", {\n    applicationId: mainScalewayIamApplication.id,\n    expiresAt: rotateAfterAYear.rotationRfc3339,\n});\n```\n```python\nimport pulumi\nimport pulumi_time as time\nimport pulumiverse_scaleway as scaleway\n\nrotate_after_a_year = time.index.Rotating(\"rotate_after_a_year\", rotation_years=1)\nmain = scaleway.iam.ApiKey(\"main\",\n    application_id=main_scaleway_iam_application[\"id\"],\n    expires_at=rotate_after_a_year[\"rotationRfc3339\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rotateAfterAYear = new Time.Index.Rotating(\"rotate_after_a_year\", new()\n    {\n        RotationYears = 1,\n    });\n\n    var main = new Scaleway.Iam.ApiKey(\"main\", new()\n    {\n        ApplicationId = mainScalewayIamApplication.Id,\n        ExpiresAt = rotateAfterAYear.RotationRfc3339,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trotateAfterAYear, err := time.NewRotating(ctx, \"rotate_after_a_year\", \u0026time.RotatingArgs{\n\t\t\tRotationYears: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewApiKey(ctx, \"main\", \u0026iam.ApiKeyArgs{\n\t\t\tApplicationId: pulumi.Any(mainScalewayIamApplication.Id),\n\t\t\tExpiresAt:     rotateAfterAYear.RotationRfc3339,\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.time.Rotating;\nimport com.pulumi.time.RotatingArgs;\nimport com.pulumi.scaleway.iam.ApiKey;\nimport com.pulumi.scaleway.iam.ApiKeyArgs;\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 rotateAfterAYear = new Rotating(\"rotateAfterAYear\", RotatingArgs.builder()\n            .rotationYears(1)\n            .build());\n\n        var main = new ApiKey(\"main\", ApiKeyArgs.builder()\n            .applicationId(mainScalewayIamApplication.id())\n            .expiresAt(rotateAfterAYear.rotationRfc3339())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rotateAfterAYear:\n    type: time:Rotating\n    name: rotate_after_a_year\n    properties:\n      rotationYears: 1\n  main:\n    type: scaleway:iam:ApiKey\n    properties:\n      applicationId: ${mainScalewayIamApplication.id}\n      expiresAt: ${rotateAfterAYear.rotationRfc3339}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nApi keys can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:iam/apiKey:ApiKey main 11111111111111111111\n```\n\n","properties":{"accessKey":{"type":"string","description":"The access key of the IAM API key.\n"},"applicationId":{"type":"string","description":"ID of the application attached to the API key.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the IAM API key.\n"},"creationIp":{"type":"string","description":"The IP Address of the device which created the API key.\n"},"defaultProjectId":{"type":"string","description":"The default Project ID to use with Object Storage.\n"},"description":{"type":"string","description":"The description of the API key.\n"},"editable":{"type":"boolean","description":"Whether the IAM API key is editable.\n"},"expiresAt":{"type":"string","description":"The date and time of the expiration of the IAM API key. Please note that in case of any changes,\nthe resource will be recreated.\n"},"secretKey":{"type":"string","description":"The secret Key of the IAM API key.\n","secret":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the IAM API key.\n"},"userId":{"type":"string","description":"ID of the user attached to the API key.\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n"}},"required":["accessKey","createdAt","creationIp","defaultProjectId","editable","secretKey","updatedAt"],"inputProperties":{"applicationId":{"type":"string","description":"ID of the application attached to the API key.\n","willReplaceOnChanges":true},"defaultProjectId":{"type":"string","description":"The default Project ID to use with Object Storage.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the API key.\n"},"expiresAt":{"type":"string","description":"The date and time of the expiration of the IAM API key. Please note that in case of any changes,\nthe resource will be recreated.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"ID of the user attached to the API key.\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ApiKey resources.\n","properties":{"accessKey":{"type":"string","description":"The access key of the IAM API key.\n"},"applicationId":{"type":"string","description":"ID of the application attached to the API key.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"The date and time of the creation of the IAM API key.\n"},"creationIp":{"type":"string","description":"The IP Address of the device which created the API key.\n"},"defaultProjectId":{"type":"string","description":"The default Project ID to use with Object Storage.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the API key.\n"},"editable":{"type":"boolean","description":"Whether the IAM API key is editable.\n"},"expiresAt":{"type":"string","description":"The date and time of the expiration of the IAM API key. Please note that in case of any changes,\nthe resource will be recreated.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret Key of the IAM API key.\n","secret":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the IAM API key.\n"},"userId":{"type":"string","description":"ID of the user attached to the API key.\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/iamApiKey:IamApiKey"}]},"scaleway:iam/application:Application":{"description":"Creates and manages Scaleway IAM Applications. For more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#applications-83ce5e).\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.iam.Application(\"main\", {\n    name: \"My application\",\n    description: \"a description\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iam.Application(\"main\",\n    name=\"My application\",\n    description=\"a description\")\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.Iam.Application(\"main\", new()\n    {\n        Name = \"My application\",\n        Description = \"a description\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewApplication(ctx, \"main\", \u0026iam.ApplicationArgs{\n\t\t\tName:        pulumi.String(\"My application\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\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.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\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 Application(\"main\", ApplicationArgs.builder()\n            .name(\"My application\")\n            .description(\"a description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iam:Application\n    properties:\n      name: My application\n      description: a description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nApplications can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:iam/application:Application main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the application.\n"},"description":{"type":"string","description":"The description of the iam application.\n"},"editable":{"type":"boolean","description":"Whether the application is editable.\n"},"name":{"type":"string","description":"The name of the iam application.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the application is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the application.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the application.\n"}},"required":["createdAt","editable","name","organizationId","updatedAt"],"inputProperties":{"description":{"type":"string","description":"The description of the iam application.\n"},"name":{"type":"string","description":"The name of the iam application.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the application is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the application.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Application resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the application.\n"},"description":{"type":"string","description":"The description of the iam application.\n"},"editable":{"type":"boolean","description":"Whether the application is editable.\n"},"name":{"type":"string","description":"The name of the iam application.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the application is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the application.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the application.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/iamApplication:IamApplication"}]},"scaleway:iam/group:Group":{"description":"Creates and manages Scaleway IAM Groups.\nFor more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#groups-f592eb).\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 basic = new scaleway.iam.Group(\"basic\", {\n    name: \"iam_group_basic\",\n    description: \"basic description\",\n    applicationIds: [],\n    userIds: [],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbasic = scaleway.iam.Group(\"basic\",\n    name=\"iam_group_basic\",\n    description=\"basic description\",\n    application_ids=[],\n    user_ids=[])\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 basic = new Scaleway.Iam.Group(\"basic\", new()\n    {\n        Name = \"iam_group_basic\",\n        Description = \"basic description\",\n        ApplicationIds = new[] {},\n        UserIds = new[] {},\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewGroup(ctx, \"basic\", \u0026iam.GroupArgs{\n\t\t\tName:           pulumi.String(\"iam_group_basic\"),\n\t\t\tDescription:    pulumi.String(\"basic description\"),\n\t\t\tApplicationIds: pulumi.StringArray{},\n\t\t\tUserIds:        pulumi.StringArray{},\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.iam.Group;\nimport com.pulumi.scaleway.iam.GroupArgs;\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 basic = new Group(\"basic\", GroupArgs.builder()\n            .name(\"iam_group_basic\")\n            .description(\"basic description\")\n            .applicationIds()\n            .userIds()\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  basic:\n    type: scaleway:iam:Group\n    properties:\n      name: iam_group_basic\n      description: basic description\n      applicationIds: []\n      userIds: []\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With applications\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst app = new scaleway.iam.Application(\"app\", {});\nconst withApp = new scaleway.iam.Group(\"with_app\", {\n    name: \"iam_group_with_app\",\n    applicationIds: [app.id],\n    userIds: [],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\napp = scaleway.iam.Application(\"app\")\nwith_app = scaleway.iam.Group(\"with_app\",\n    name=\"iam_group_with_app\",\n    application_ids=[app.id],\n    user_ids=[])\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 app = new Scaleway.Iam.Application(\"app\");\n\n    var withApp = new Scaleway.Iam.Group(\"with_app\", new()\n    {\n        Name = \"iam_group_with_app\",\n        ApplicationIds = new[]\n        {\n            app.Id,\n        },\n        UserIds = new[] {},\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapp, err := iam.NewApplication(ctx, \"app\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewGroup(ctx, \"with_app\", \u0026iam.GroupArgs{\n\t\t\tName: pulumi.String(\"iam_group_with_app\"),\n\t\t\tApplicationIds: pulumi.StringArray{\n\t\t\t\tapp.ID(),\n\t\t\t},\n\t\t\tUserIds: pulumi.StringArray{},\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.iam.Application;\nimport com.pulumi.scaleway.iam.Group;\nimport com.pulumi.scaleway.iam.GroupArgs;\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 app = new Application(\"app\");\n\n        var withApp = new Group(\"withApp\", GroupArgs.builder()\n            .name(\"iam_group_with_app\")\n            .applicationIds(app.id())\n            .userIds()\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  app:\n    type: scaleway:iam:Application\n  withApp:\n    type: scaleway:iam:Group\n    name: with_app\n    properties:\n      name: iam_group_with_app\n      applicationIds:\n        - ${app.id}\n      userIds: []\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIAM groups can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:iam/group:Group basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"applicationIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the applications attached to the group.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the group"},"description":{"type":"string","description":"The description of the IAM group.\n"},"externalMembership":{"type":"boolean","description":"Manage membership externally. This make the resource ignore\u003cspan pulumi-lang-nodejs=\" userIds \" pulumi-lang-dotnet=\" UserIds \" pulumi-lang-go=\" userIds \" pulumi-lang-python=\" user_ids \" pulumi-lang-yaml=\" userIds \" pulumi-lang-java=\" userIds \"\u003e user_ids \u003c/span\u003eand application_ids. Should be used when using iam_group_membership\n"},"name":{"type":"string","description":"The name of the IAM group.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the group is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the group.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the group"},"userIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the users attached to the group.\n"}},"required":["createdAt","name","organizationId","updatedAt"],"inputProperties":{"applicationIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the applications attached to the group.\n"},"description":{"type":"string","description":"The description of the IAM group.\n"},"externalMembership":{"type":"boolean","description":"Manage membership externally. This make the resource ignore\u003cspan pulumi-lang-nodejs=\" userIds \" pulumi-lang-dotnet=\" UserIds \" pulumi-lang-go=\" userIds \" pulumi-lang-python=\" user_ids \" pulumi-lang-yaml=\" userIds \" pulumi-lang-java=\" userIds \"\u003e user_ids \u003c/span\u003eand application_ids. Should be used when using iam_group_membership\n"},"name":{"type":"string","description":"The name of the IAM group.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the group is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the group.\n"},"userIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the users attached to the group.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"applicationIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the applications attached to the group.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the group"},"description":{"type":"string","description":"The description of the IAM group.\n"},"externalMembership":{"type":"boolean","description":"Manage membership externally. This make the resource ignore\u003cspan pulumi-lang-nodejs=\" userIds \" pulumi-lang-dotnet=\" UserIds \" pulumi-lang-go=\" userIds \" pulumi-lang-python=\" user_ids \" pulumi-lang-yaml=\" userIds \" pulumi-lang-java=\" userIds \"\u003e user_ids \u003c/span\u003eand application_ids. Should be used when using iam_group_membership\n"},"name":{"type":"string","description":"The name of the IAM group.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the group is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the group.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the group"},"userIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the users attached to the group.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/iamGroup:IamGroup"}]},"scaleway:iam/groupMembership:GroupMembership":{"description":"Add members to an IAM group.\nFor more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#groups-f592eb).\n\n## Example Usage\n\n### Application Membership\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst group = new scaleway.iam.Group(\"group\", {\n    name: \"my_group\",\n    externalMembership: true,\n});\nconst app = new scaleway.iam.Application(\"app\", {name: \"my_app\"});\nconst member = new scaleway.iam.GroupMembership(\"member\", {\n    groupId: group.id,\n    applicationId: app.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ngroup = scaleway.iam.Group(\"group\",\n    name=\"my_group\",\n    external_membership=True)\napp = scaleway.iam.Application(\"app\", name=\"my_app\")\nmember = scaleway.iam.GroupMembership(\"member\",\n    group_id=group.id,\n    application_id=app.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 @group = new Scaleway.Iam.Group(\"group\", new()\n    {\n        Name = \"my_group\",\n        ExternalMembership = true,\n    });\n\n    var app = new Scaleway.Iam.Application(\"app\", new()\n    {\n        Name = \"my_app\",\n    });\n\n    var member = new Scaleway.Iam.GroupMembership(\"member\", new()\n    {\n        GroupId = @group.Id,\n        ApplicationId = app.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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgroup, err := iam.NewGroup(ctx, \"group\", \u0026iam.GroupArgs{\n\t\t\tName:               pulumi.String(\"my_group\"),\n\t\t\tExternalMembership: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapp, err := iam.NewApplication(ctx, \"app\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"my_app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewGroupMembership(ctx, \"member\", \u0026iam.GroupMembershipArgs{\n\t\t\tGroupId:       group.ID(),\n\t\t\tApplicationId: app.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.iam.Group;\nimport com.pulumi.scaleway.iam.GroupArgs;\nimport com.pulumi.scaleway.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.GroupMembership;\nimport com.pulumi.scaleway.iam.GroupMembershipArgs;\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 group = new Group(\"group\", GroupArgs.builder()\n            .name(\"my_group\")\n            .externalMembership(true)\n            .build());\n\n        var app = new Application(\"app\", ApplicationArgs.builder()\n            .name(\"my_app\")\n            .build());\n\n        var member = new GroupMembership(\"member\", GroupMembershipArgs.builder()\n            .groupId(group.id())\n            .applicationId(app.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group:\n    type: scaleway:iam:Group\n    properties:\n      name: my_group\n      externalMembership: true\n  app:\n    type: scaleway:iam:Application\n    properties:\n      name: my_app\n  member:\n    type: scaleway:iam:GroupMembership\n    properties:\n      groupId: ${group.id}\n      applicationId: ${app.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIAM group memberships can be imported using two format:\n\n- For user: `{group_id}/user/{user_id}`\n\n- For application: `{group_id}/app/{application_id}`\n\nbash\n\n```sh\n$ pulumi import scaleway:iam/groupMembership:GroupMembership app 11111111-1111-1111-1111-111111111111/app/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"applicationId":{"type":"string","description":"The ID of the application that will be added to the group.\n"},"groupId":{"type":"string","description":"ID of the group to add members to.\n"},"userId":{"type":"string","description":"The ID of the user that will be added to the group\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n"}},"required":["groupId"],"inputProperties":{"applicationId":{"type":"string","description":"The ID of the application that will be added to the group.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"ID of the group to add members to.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the user that will be added to the group\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["groupId"],"stateInputs":{"description":"Input properties used for looking up and filtering GroupMembership resources.\n","properties":{"applicationId":{"type":"string","description":"The ID of the application that will be added to the group.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"ID of the group to add members to.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the user that will be added to the group\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/iamGroupMembership:IamGroupMembership"}]},"scaleway:iam/policy:Policy":{"description":"Creates and manages Scaleway IAM Policies. For more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#path-policies-create-a-new-policy).\n\n\u003e You can find a detailed list of all permission sets available at Scaleway in the permission sets [reference page](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/).\n\n## Example Usage\n\n### Create a policy for an organization's project\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst _default = scaleway.account.getProject({\n    name: \"default\",\n});\nconst app = new scaleway.iam.Application(\"app\", {name: \"my app\"});\nconst objectReadOnly = new scaleway.iam.Policy(\"object_read_only\", {\n    name: \"my policy\",\n    description: \"gives app readonly access to object storage in project\",\n    applicationId: app.id,\n    rules: [{\n        projectIds: [_default.then(_default =\u003e _default.id)],\n        permissionSetNames: [\"ObjectStorageReadOnly\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\ndefault = scaleway.account.get_project(name=\"default\")\napp = scaleway.iam.Application(\"app\", name=\"my app\")\nobject_read_only = scaleway.iam.Policy(\"object_read_only\",\n    name=\"my policy\",\n    description=\"gives app readonly access to object storage in project\",\n    application_id=app.id,\n    rules=[{\n        \"project_ids\": [default.id],\n        \"permission_set_names\": [\"ObjectStorageReadOnly\"],\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 @default = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    var app = new Scaleway.Iam.Application(\"app\", new()\n    {\n        Name = \"my app\",\n    });\n\n    var objectReadOnly = new Scaleway.Iam.Policy(\"object_read_only\", new()\n    {\n        Name = \"my policy\",\n        Description = \"gives app readonly access to object storage in project\",\n        ApplicationId = app.Id,\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                ProjectIds = new[]\n                {\n                    @default.Apply(@default =\u003e @default.Apply(getProjectResult =\u003e getProjectResult.Id)),\n                },\n                PermissionSetNames = new[]\n                {\n                    \"ObjectStorageReadOnly\",\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapp, err := iam.NewApplication(ctx, \"app\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"my app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"object_read_only\", \u0026iam.PolicyArgs{\n\t\t\tName:          pulumi.String(\"my policy\"),\n\t\t\tDescription:   pulumi.String(\"gives app readonly access to object storage in project\"),\n\t\t\tApplicationId: app.ID(),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tProjectIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(_default.Id),\n\t\t\t\t\t},\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ObjectStorageReadOnly\"),\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\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 default = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        var app = new Application(\"app\", ApplicationArgs.builder()\n            .name(\"my app\")\n            .build());\n\n        var objectReadOnly = new Policy(\"objectReadOnly\", PolicyArgs.builder()\n            .name(\"my policy\")\n            .description(\"gives app readonly access to object storage in project\")\n            .applicationId(app.id())\n            .rules(PolicyRuleArgs.builder()\n                .projectIds(default_.id())\n                .permissionSetNames(\"ObjectStorageReadOnly\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  app:\n    type: scaleway:iam:Application\n    properties:\n      name: my app\n  objectReadOnly:\n    type: scaleway:iam:Policy\n    name: object_read_only\n    properties:\n      name: my policy\n      description: gives app readonly access to object storage in project\n      applicationId: ${app.id}\n      rules:\n        - projectIds:\n            - ${default.id}\n          permissionSetNames:\n            - ObjectStorageReadOnly\nvariables:\n  default:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a policy for all current and future projects in an organization\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst app = new scaleway.iam.Application(\"app\", {name: \"my app\"});\nconst objectReadOnly = new scaleway.iam.Policy(\"object_read_only\", {\n    name: \"my policy\",\n    description: \"gives app readonly access to object storage in project\",\n    applicationId: app.id,\n    rules: [{\n        organizationId: app.organizationId,\n        permissionSetNames: [\"ObjectStorageReadOnly\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\napp = scaleway.iam.Application(\"app\", name=\"my app\")\nobject_read_only = scaleway.iam.Policy(\"object_read_only\",\n    name=\"my policy\",\n    description=\"gives app readonly access to object storage in project\",\n    application_id=app.id,\n    rules=[{\n        \"organization_id\": app.organization_id,\n        \"permission_set_names\": [\"ObjectStorageReadOnly\"],\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 app = new Scaleway.Iam.Application(\"app\", new()\n    {\n        Name = \"my app\",\n    });\n\n    var objectReadOnly = new Scaleway.Iam.Policy(\"object_read_only\", new()\n    {\n        Name = \"my policy\",\n        Description = \"gives app readonly access to object storage in project\",\n        ApplicationId = app.Id,\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                OrganizationId = app.OrganizationId,\n                PermissionSetNames = new[]\n                {\n                    \"ObjectStorageReadOnly\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapp, err := iam.NewApplication(ctx, \"app\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"my app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"object_read_only\", \u0026iam.PolicyArgs{\n\t\t\tName:          pulumi.String(\"my policy\"),\n\t\t\tDescription:   pulumi.String(\"gives app readonly access to object storage in project\"),\n\t\t\tApplicationId: app.ID(),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tOrganizationId: app.OrganizationId,\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ObjectStorageReadOnly\"),\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.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\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 app = new Application(\"app\", ApplicationArgs.builder()\n            .name(\"my app\")\n            .build());\n\n        var objectReadOnly = new Policy(\"objectReadOnly\", PolicyArgs.builder()\n            .name(\"my policy\")\n            .description(\"gives app readonly access to object storage in project\")\n            .applicationId(app.id())\n            .rules(PolicyRuleArgs.builder()\n                .organizationId(app.organizationId())\n                .permissionSetNames(\"ObjectStorageReadOnly\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  app:\n    type: scaleway:iam:Application\n    properties:\n      name: my app\n  objectReadOnly:\n    type: scaleway:iam:Policy\n    name: object_read_only\n    properties:\n      name: my policy\n      description: gives app readonly access to object storage in project\n      applicationId: ${app.id}\n      rules:\n        - organizationId: ${app.organizationId}\n          permissionSetNames:\n            - ObjectStorageReadOnly\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a policy with a particular condition\n\nIAM policy rule can use a condition to be applied.\nThe following variables are available:\n\n- `request.ip`\n- `request.user_agent`\n- `request.time`\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.iam.Policy(\"main\", {\n    name: \"tf_tests_policy_condition\",\n    noPrincipal: true,\n    rules: [{\n        organizationId: \"%s\",\n        permissionSetNames: [\"AllProductsFullAccess\"],\n        condition: \"request.user_agent == 'My User Agent'\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iam.Policy(\"main\",\n    name=\"tf_tests_policy_condition\",\n    no_principal=True,\n    rules=[{\n        \"organization_id\": \"%s\",\n        \"permission_set_names\": [\"AllProductsFullAccess\"],\n        \"condition\": \"request.user_agent == 'My User Agent'\",\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.Iam.Policy(\"main\", new()\n    {\n        Name = \"tf_tests_policy_condition\",\n        NoPrincipal = true,\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                OrganizationId = \"%s\",\n                PermissionSetNames = new[]\n                {\n                    \"AllProductsFullAccess\",\n                },\n                Condition = \"request.user_agent == 'My User Agent'\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewPolicy(ctx, \"main\", \u0026iam.PolicyArgs{\n\t\t\tName:        pulumi.String(\"tf_tests_policy_condition\"),\n\t\t\tNoPrincipal: pulumi.Bool(true),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tOrganizationId: pulumi.String(\"%s\"),\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"AllProductsFullAccess\"),\n\t\t\t\t\t},\n\t\t\t\t\tCondition: pulumi.String(\"request.user_agent == 'My User Agent'\"),\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.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\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 Policy(\"main\", PolicyArgs.builder()\n            .name(\"tf_tests_policy_condition\")\n            .noPrincipal(true)\n            .rules(PolicyRuleArgs.builder()\n                .organizationId(\"%s\")\n                .permissionSetNames(\"AllProductsFullAccess\")\n                .condition(\"request.user_agent == 'My User Agent'\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iam:Policy\n    properties:\n      name: tf_tests_policy_condition\n      noPrincipal: true\n      rules:\n        - organizationId: '%s'\n          permissionSetNames:\n            - AllProductsFullAccess\n          condition: request.user_agent == 'My User Agent'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPolicies can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:iam/policy:Policy main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"applicationId":{"type":"string","description":"ID of the application the policy will be linked to\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the policy.\n"},"description":{"type":"string","description":"The description of the IAM policy.\n"},"editable":{"type":"boolean","description":"Whether the policy is editable.\n"},"groupId":{"type":"string","description":"ID of the group the policy will be linked to\n"},"name":{"type":"string","description":"The name of the IAM policy.\n"},"noPrincipal":{"type":"boolean","description":"If the policy doesn't apply to a principal.\n\n\u003e **Important** Only one of \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`noPrincipal`\" pulumi-lang-dotnet=\"`NoPrincipal`\" pulumi-lang-go=\"`noPrincipal`\" pulumi-lang-python=\"`no_principal`\" pulumi-lang-yaml=\"`noPrincipal`\" pulumi-lang-java=\"`noPrincipal`\"\u003e`no_principal`\u003c/span\u003e may be set.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the policy is associated with.\n"},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:iam/PolicyRule:PolicyRule"},"description":"List of rules in the policy.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IAM policy.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the policy.\n"},"userId":{"type":"string","description":"ID of the user the policy will be linked to\n"}},"required":["createdAt","editable","name","organizationId","rules","updatedAt"],"inputProperties":{"applicationId":{"type":"string","description":"ID of the application the policy will be linked to\n"},"description":{"type":"string","description":"The description of the IAM policy.\n"},"groupId":{"type":"string","description":"ID of the group the policy will be linked to\n"},"name":{"type":"string","description":"The name of the IAM policy.\n"},"noPrincipal":{"type":"boolean","description":"If the policy doesn't apply to a principal.\n\n\u003e **Important** Only one of \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`noPrincipal`\" pulumi-lang-dotnet=\"`NoPrincipal`\" pulumi-lang-go=\"`noPrincipal`\" pulumi-lang-python=\"`no_principal`\" pulumi-lang-yaml=\"`noPrincipal`\" pulumi-lang-java=\"`noPrincipal`\"\u003e`no_principal`\u003c/span\u003e may be set.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the policy is associated with.\n"},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:iam/PolicyRule:PolicyRule"},"description":"List of rules in the policy.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IAM policy.\n"},"userId":{"type":"string","description":"ID of the user the policy will be linked to\n"}},"requiredInputs":["rules"],"stateInputs":{"description":"Input properties used for looking up and filtering Policy resources.\n","properties":{"applicationId":{"type":"string","description":"ID of the application the policy will be linked to\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the policy.\n"},"description":{"type":"string","description":"The description of the IAM policy.\n"},"editable":{"type":"boolean","description":"Whether the policy is editable.\n"},"groupId":{"type":"string","description":"ID of the group the policy will be linked to\n"},"name":{"type":"string","description":"The name of the IAM policy.\n"},"noPrincipal":{"type":"boolean","description":"If the policy doesn't apply to a principal.\n\n\u003e **Important** Only one of \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`noPrincipal`\" pulumi-lang-dotnet=\"`NoPrincipal`\" pulumi-lang-go=\"`noPrincipal`\" pulumi-lang-python=\"`no_principal`\" pulumi-lang-yaml=\"`noPrincipal`\" pulumi-lang-java=\"`noPrincipal`\"\u003e`no_principal`\u003c/span\u003e may be set.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the policy is associated with.\n"},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:iam/PolicyRule:PolicyRule"},"description":"List of rules in the policy.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IAM policy.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the policy.\n"},"userId":{"type":"string","description":"ID of the user the policy will be linked to\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/iamPolicy:IamPolicy"}]},"scaleway:iam/sshKey:SshKey":{"description":"Creates and manages Scaleway IAM SSH Keys.\nFor more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#ssh-keys-d8ccd4).\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.iam.SshKey(\"main\", {\n    name: \"main\",\n    publicKey: \"\u003cYOUR-PUBLIC-SSH-KEY\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iam.SshKey(\"main\",\n    name=\"main\",\n    public_key=\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\")\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.Iam.SshKey(\"main\", new()\n    {\n        Name = \"main\",\n        PublicKey = \"\u003cYOUR-PUBLIC-SSH-KEY\u003e\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewSshKey(ctx, \"main\", \u0026iam.SshKeyArgs{\n\t\t\tName:      pulumi.String(\"main\"),\n\t\t\tPublicKey: pulumi.String(\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\"),\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.iam.SshKey;\nimport com.pulumi.scaleway.iam.SshKeyArgs;\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 SshKey(\"main\", SshKeyArgs.builder()\n            .name(\"main\")\n            .publicKey(\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iam:SshKey\n    properties:\n      name: main\n      publicKey: \u003cYOUR-PUBLIC-SSH-KEY\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSSH keys can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:iam/sshKey:SshKey main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the SSH key.\n"},"disabled":{"type":"boolean","description":"The SSH key status.\n"},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key.\n"},"name":{"type":"string","description":"The name of the SSH key.\n"},"organizationId":{"type":"string","description":"The ID of the organization the SSH key is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is\nassociated with.\n"},"publicKey":{"type":"string","description":"The public SSH key to be added.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the SSH key.\n"}},"required":["createdAt","fingerprint","name","organizationId","projectId","publicKey","updatedAt"],"inputProperties":{"disabled":{"type":"boolean","description":"The SSH key status.\n"},"name":{"type":"string","description":"The name of the SSH key.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is\nassociated with.\n","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"The public SSH key to be added.\n","willReplaceOnChanges":true}},"requiredInputs":["publicKey"],"stateInputs":{"description":"Input properties used for looking up and filtering SshKey resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the SSH key.\n"},"disabled":{"type":"boolean","description":"The SSH key status.\n"},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key.\n"},"name":{"type":"string","description":"The name of the SSH key.\n"},"organizationId":{"type":"string","description":"The ID of the organization the SSH key is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is\nassociated with.\n","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"The public SSH key to be added.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the SSH key.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/iamSshKey:IamSshKey"}]},"scaleway:iam/user:User":{"description":"Creates and manages Scaleway IAM [Users](https://www.scaleway.com/en/docs/iam/concepts/#member).\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/iam/#path-users-list-users-of-an-organization).\n\n\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\n//## Basic IAM user creation\nconst user = new scaleway.iam.User(\"user\", {\n    email: \"foo@test.com\",\n    tags: [\"test-tag\"],\n    username: \"foo\",\n    firstName: \"Foo\",\n    lastName: \"Bar\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Basic IAM user creation\nuser = scaleway.iam.User(\"user\",\n    email=\"foo@test.com\",\n    tags=[\"test-tag\"],\n    username=\"foo\",\n    first_name=\"Foo\",\n    last_name=\"Bar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //## Basic IAM user creation\n    var user = new Scaleway.Iam.User(\"user\", new()\n    {\n        Email = \"foo@test.com\",\n        Tags = new[]\n        {\n            \"test-tag\",\n        },\n        Username = \"foo\",\n        FirstName = \"Foo\",\n        LastName = \"Bar\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Basic IAM user creation\n\t\t_, err := iam.NewUser(ctx, \"user\", \u0026iam.UserArgs{\n\t\t\tEmail: pulumi.String(\"foo@test.com\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test-tag\"),\n\t\t\t},\n\t\t\tUsername:  pulumi.String(\"foo\"),\n\t\t\tFirstName: pulumi.String(\"Foo\"),\n\t\t\tLastName:  pulumi.String(\"Bar\"),\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.iam.User;\nimport com.pulumi.scaleway.iam.UserArgs;\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        //## Basic IAM user creation\n        var user = new User(\"user\", UserArgs.builder()\n            .email(\"foo@test.com\")\n            .tags(\"test-tag\")\n            .username(\"foo\")\n            .firstName(\"Foo\")\n            .lastName(\"Bar\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Basic IAM user creation\n  user:\n    type: scaleway:iam:User\n    properties:\n      email: foo@test.com\n      tags:\n        - test-tag\n      username: foo\n      firstName: Foo\n      lastName: Bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst users = [\n    {\n        email: \"test@test.com\",\n        username: \"test\",\n    },\n    {\n        email: \"test2@test.com\",\n        username: \"test2\",\n    },\n];\nconst usersUser: scaleway.iam.User[] = [];\nfor (const range = {value: 0}; range.value \u003c users.length; range.value++) {\n    usersUser.push(new scaleway.iam.User(`users-${range.value}`, {\n        email: users[range.value].email,\n        username: users[range.value].username,\n    }));\n}\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nusers = [\n    {\n        \"email\": \"test@test.com\",\n        \"username\": \"test\",\n    },\n    {\n        \"email\": \"test2@test.com\",\n        \"username\": \"test2\",\n    },\n]\nusers_user = []\nfor range in [{\"value\": i} for i in range(0, len(users))]:\n    users_user.append(scaleway.iam.User(f\"users-{range['value']}\",\n        email=users[range[\"value\"]][\"email\"],\n        username=users[range[\"value\"]][\"username\"]))\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 users = new[]\n    {\n        \n        {\n            { \"email\", \"test@test.com\" },\n            { \"username\", \"test\" },\n        },\n        \n        {\n            { \"email\", \"test2@test.com\" },\n            { \"username\", \"test2\" },\n        },\n    };\n\n    var usersUser = new List\u003cScaleway.Iam.User\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c users.Length; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        usersUser.Add(new Scaleway.Iam.User($\"users-{range.Value}\", new()\n        {\n            Email = users[range.Value].Email,\n            Username = users[range.Value].Username,\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tusers := []map[string]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"email\":    \"test@test.com\",\n\t\t\t\t\"username\": \"test\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"email\":    \"test2@test.com\",\n\t\t\t\t\"username\": \"test2\",\n\t\t\t},\n\t\t}\n\t\tvar usersUser []*iam.User\n\t\tfor index := 0; index \u003c len(users); index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := iam.NewUser(ctx, fmt.Sprintf(\"users-%v\", key0), \u0026iam.UserArgs{\n\t\t\t\tEmail:    pulumi.String(users[val0].Email),\n\t\t\t\tUsername: pulumi.String(users[val0].Username),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tusersUser = append(usersUser, __res)\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.iam.User;\nimport com.pulumi.scaleway.iam.UserArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\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 users = List.of(        \n            Map.ofEntries(\n                Map.entry(\"email\", \"test@test.com\"),\n                Map.entry(\"username\", \"test\")\n            ),\n            Map.ofEntries(\n                Map.entry(\"email\", \"test2@test.com\"),\n                Map.entry(\"username\", \"test2\")\n            ));\n\n        for (var i = 0; i \u003c users.length(); i++) {\n            new User(\"usersUser-\" + i, UserArgs.builder()\n                .email(users[range.value()].email())\n                .username(users[range.value()].username())\n                .build());\n\n        \n}\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIAM users can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:iam/user:User basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"accountRootUserId":{"type":"string","description":"The ID of the account root user associated with the user.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the IAM user.\n"},"deletable":{"type":"boolean","description":"Whether the IAM user is deletable.\n"},"email":{"type":"string","description":"The email of the IAM user. For Guest users, this argument is not editable.\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"lastLoginAt":{"type":"string","description":"The date of the last login.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"locale":{"type":"string","description":"The user's locale (e.g., en_US).\n"},"locked":{"type":"boolean","description":"Whether the user is locked.\n"},"mfa":{"type":"boolean","description":"Whether the MFA is enabled.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the user is associated with.\n"},"password":{"type":"string","description":"The password for first access. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"phoneNumber":{"type":"string","description":"The user's phone number.\n"},"sendPasswordEmail":{"type":"boolean","description":"Whether or not to send an email containing the password for first access.\n"},"sendWelcomeEmail":{"type":"boolean","description":"Whether or not to send a welcome email that includes onboarding information.\n"},"status":{"type":"string","description":"The status of user invitation. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the user.\n"},"type":{"type":"string","description":"The type of user. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the IAM user.\n"},"username":{"type":"string","description":"The username of the IAM user.\n"}},"required":["accountRootUserId","createdAt","deletable","email","lastLoginAt","locale","locked","mfa","organizationId","status","type","updatedAt","username"],"inputProperties":{"email":{"type":"string","description":"The email of the IAM user. For Guest users, this argument is not editable.\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"locale":{"type":"string","description":"The user's locale (e.g., en_US).\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the user is associated with.\n"},"password":{"type":"string","description":"The password for first access. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"phoneNumber":{"type":"string","description":"The user's phone number.\n"},"sendPasswordEmail":{"type":"boolean","description":"Whether or not to send an email containing the password for first access.\n"},"sendWelcomeEmail":{"type":"boolean","description":"Whether or not to send a welcome email that includes onboarding information.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the user.\n"},"username":{"type":"string","description":"The username of the IAM user.\n"}},"requiredInputs":["email","username"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"accountRootUserId":{"type":"string","description":"The ID of the account root user associated with the user.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the IAM user.\n"},"deletable":{"type":"boolean","description":"Whether the IAM user is deletable.\n"},"email":{"type":"string","description":"The email of the IAM user. For Guest users, this argument is not editable.\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"lastLoginAt":{"type":"string","description":"The date of the last login.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"locale":{"type":"string","description":"The user's locale (e.g., en_US).\n"},"locked":{"type":"boolean","description":"Whether the user is locked.\n"},"mfa":{"type":"boolean","description":"Whether the MFA is enabled.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the user is associated with.\n"},"password":{"type":"string","description":"The password for first access. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"phoneNumber":{"type":"string","description":"The user's phone number.\n"},"sendPasswordEmail":{"type":"boolean","description":"Whether or not to send an email containing the password for first access.\n"},"sendWelcomeEmail":{"type":"boolean","description":"Whether or not to send a welcome email that includes onboarding information.\n"},"status":{"type":"string","description":"The status of user invitation. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the user.\n"},"type":{"type":"string","description":"The type of user. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the IAM user.\n"},"username":{"type":"string","description":"The username of the IAM user.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/iamUser:IamUser"}]},"scaleway:index/accountProject:AccountProject":{"description":"\n\n## Import\n\nProjects can be imported using the `id` argument, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/accountProject:AccountProject project 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The creation time of the Project.\n"},"description":{"type":"string","description":"The description of the Project.\n"},"name":{"type":"string","description":"The name of the Project.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e)The organization ID the Project is associated with. Any change made to the \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e will recreate the resource.\n"},"updatedAt":{"type":"string","description":"The last update time of the Project.\n"}},"required":["createdAt","name","organizationId","updatedAt"],"inputProperties":{"description":{"type":"string","description":"The description of the Project.\n"},"name":{"type":"string","description":"The name of the Project.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e)The organization ID the Project is associated with. Any change made to the \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e will recreate the resource.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering AccountProject resources.\n","properties":{"createdAt":{"type":"string","description":"The creation time of the Project.\n"},"description":{"type":"string","description":"The description of the Project.\n"},"name":{"type":"string","description":"The name of the Project.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e)The organization ID the Project is associated with. Any change made to the \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e will recreate the resource.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The last update time of the Project.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/accountproject.AccountProject has been deprecated in favor of scaleway.account/project.Project"},"scaleway:index/accountSshKey:AccountSshKey":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.account.SshKey`\" pulumi-lang-dotnet=\"`scaleway.account.SshKey`\" pulumi-lang-go=\"`account.SshKey`\" pulumi-lang-python=\"`account.SshKey`\" pulumi-lang-yaml=\"`scaleway.account.SshKey`\" pulumi-lang-java=\"`scaleway.account.SshKey`\"\u003e`scaleway.account.SshKey`\u003c/span\u003e resource allows you to create and manage the Projects of a Scaleway Organization.\n\nRefer to the Organizations and Projects [documentation](https://www.scaleway.com/en/docs/organizations-and-projects/) and [API documentation](https://www.scaleway.com/en/developers/api/account/project-api/) for more information.\n\n!\u003e **Important:**  The resource \u003cspan pulumi-lang-nodejs=\"`scaleway.account.SshKey`\" pulumi-lang-dotnet=\"`scaleway.account.SshKey`\" pulumi-lang-go=\"`account.SshKey`\" pulumi-lang-python=\"`account.SshKey`\" pulumi-lang-yaml=\"`scaleway.account.SshKey`\" pulumi-lang-java=\"`scaleway.account.SshKey`\"\u003e`scaleway.account.SshKey`\u003c/span\u003e has been deprecated and will no longer be supported. Instead, use \u003cspan pulumi-lang-nodejs=\"`scaleway.iam.SshKey`\" pulumi-lang-dotnet=\"`scaleway.iam.SshKey`\" pulumi-lang-go=\"`iam.SshKey`\" pulumi-lang-python=\"`iam.SshKey`\" pulumi-lang-yaml=\"`scaleway.iam.SshKey`\" pulumi-lang-java=\"`scaleway.iam.SshKey`\"\u003e`scaleway.iam.SshKey`\u003c/span\u003e.\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.account.SshKey(\"main\", {\n    name: \"main\",\n    publicKey: \"\u003cYOUR-PUBLIC-SSH-KEY\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.account.SshKey(\"main\",\n    name=\"main\",\n    public_key=\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\")\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.Account.SshKey(\"main\", new()\n    {\n        Name = \"main\",\n        PublicKey = \"\u003cYOUR-PUBLIC-SSH-KEY\u003e\",\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/account\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := account.NewSshKey(ctx, \"main\", \u0026account.SshKeyArgs{\n\t\t\tName:      pulumi.String(\"main\"),\n\t\t\tPublicKey: pulumi.String(\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\"),\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.account.SshKey;\nimport com.pulumi.scaleway.account.SshKeyArgs;\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 SshKey(\"main\", SshKeyArgs.builder()\n            .name(\"main\")\n            .publicKey(\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:account:SshKey\n    properties:\n      name: main\n      publicKey: \u003cYOUR-PUBLIC-SSH-KEY\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSSH keys can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/accountSshKey:AccountSshKey main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the iam SSH Key"},"disabled":{"type":"boolean","description":"The SSH key status"},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key"},"name":{"type":"string","description":"The name of the SSH key.\n"},"organizationId":{"type":"string","description":"The organization ID the SSH key is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is associated with.\n"},"publicKey":{"type":"string","description":"The public SSH key to be added.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the iam SSH Key"}},"required":["createdAt","fingerprint","name","organizationId","projectId","publicKey","updatedAt"],"inputProperties":{"disabled":{"type":"boolean","description":"The SSH key status"},"name":{"type":"string","description":"The name of the SSH key.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is associated with.\n","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"The public SSH key to be added.\n","willReplaceOnChanges":true}},"requiredInputs":["publicKey"],"stateInputs":{"description":"Input properties used for looking up and filtering AccountSshKey resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the iam SSH Key"},"disabled":{"type":"boolean","description":"The SSH key status"},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key"},"name":{"type":"string","description":"The name of the SSH key.\n"},"organizationId":{"type":"string","description":"The organization ID the SSH key is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is associated with.\n","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"The public SSH key to be added.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the iam SSH Key"}},"type":"object"},"deprecationMessage":"scaleway.index/accountsshkey.AccountSshKey has been deprecated in favor of scaleway.account/sshkey.SshKey"},"scaleway:index/appleSiliconServer:AppleSiliconServer":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.applesilicon.Server`\" pulumi-lang-dotnet=\"`scaleway.applesilicon.Server`\" pulumi-lang-go=\"`applesilicon.Server`\" pulumi-lang-python=\"`applesilicon.Server`\" pulumi-lang-yaml=\"`scaleway.applesilicon.Server`\" pulumi-lang-java=\"`scaleway.applesilicon.Server`\"\u003e`scaleway.applesilicon.Server`\u003c/span\u003e resource creates and manages Scaleway Apple silicon servers.\n\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/apple-silicon/).\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 server = new scaleway.applesilicon.Server(\"server\", {\n    name: \"test-m1\",\n    type: \"M1-M\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver = scaleway.applesilicon.Server(\"server\",\n    name=\"test-m1\",\n    type=\"M1-M\")\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.Applesilicon.Server(\"server\", new()\n    {\n        Name = \"test-m1\",\n        Type = \"M1-M\",\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/applesilicon\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := applesilicon.NewServer(ctx, \"server\", \u0026applesilicon.ServerArgs{\n\t\t\tName: pulumi.String(\"test-m1\"),\n\t\t\tType: pulumi.String(\"M1-M\"),\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.applesilicon.Server;\nimport com.pulumi.scaleway.applesilicon.ServerArgs;\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 Server(\"server\", ServerArgs.builder()\n            .name(\"test-m1\")\n            .type(\"M1-M\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  server:\n    type: scaleway:applesilicon:Server\n    properties:\n      name: test-m1\n      type: M1-M\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable VPC and attach private network\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst vpc_apple_silicon = new scaleway.network.Vpc(\"vpc-apple-silicon\", {name: \"vpc-apple-silicon\"});\nconst pn_apple_silicon = new scaleway.network.PrivateNetwork(\"pn-apple-silicon\", {\n    name: \"pn-apple-silicon\",\n    vpcId: vpc_apple_silicon.id,\n});\nconst my_server = new scaleway.applesilicon.Server(\"my-server\", {\n    name: \"TestAccServerEnableVPC\",\n    type: \"M2-M\",\n    enableVpc: true,\n    privateNetworks: [{\n        id: pn_apple_silicon.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc_apple_silicon = scaleway.network.Vpc(\"vpc-apple-silicon\", name=\"vpc-apple-silicon\")\npn_apple_silicon = scaleway.network.PrivateNetwork(\"pn-apple-silicon\",\n    name=\"pn-apple-silicon\",\n    vpc_id=vpc_apple_silicon.id)\nmy_server = scaleway.applesilicon.Server(\"my-server\",\n    name=\"TestAccServerEnableVPC\",\n    type=\"M2-M\",\n    enable_vpc=True,\n    private_networks=[{\n        \"id\": pn_apple_silicon.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 vpc_apple_silicon = new Scaleway.Network.Vpc(\"vpc-apple-silicon\", new()\n    {\n        Name = \"vpc-apple-silicon\",\n    });\n\n    var pn_apple_silicon = new Scaleway.Network.PrivateNetwork(\"pn-apple-silicon\", new()\n    {\n        Name = \"pn-apple-silicon\",\n        VpcId = vpc_apple_silicon.Id,\n    });\n\n    var my_server = new Scaleway.Applesilicon.Server(\"my-server\", new()\n    {\n        Name = \"TestAccServerEnableVPC\",\n        Type = \"M2-M\",\n        EnableVpc = true,\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Applesilicon.Inputs.ServerPrivateNetworkArgs\n            {\n                Id = pn_apple_silicon.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/applesilicon\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc_apple_silicon, err := network.NewVpc(ctx, \"vpc-apple-silicon\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"vpc-apple-silicon\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn_apple_silicon, err := network.NewPrivateNetwork(ctx, \"pn-apple-silicon\", \u0026network.PrivateNetworkArgs{\n\t\t\tName:  pulumi.String(\"pn-apple-silicon\"),\n\t\t\tVpcId: vpc_apple_silicon.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = applesilicon.NewServer(ctx, \"my-server\", \u0026applesilicon.ServerArgs{\n\t\t\tName:      pulumi.String(\"TestAccServerEnableVPC\"),\n\t\t\tType:      pulumi.String(\"M2-M\"),\n\t\t\tEnableVpc: pulumi.Bool(true),\n\t\t\tPrivateNetworks: applesilicon.ServerPrivateNetworkArray{\n\t\t\t\t\u0026applesilicon.ServerPrivateNetworkArgs{\n\t\t\t\t\tId: pn_apple_silicon.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.applesilicon.Server;\nimport com.pulumi.scaleway.applesilicon.ServerArgs;\nimport com.pulumi.scaleway.applesilicon.inputs.ServerPrivateNetworkArgs;\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 vpc_apple_silicon = new Vpc(\"vpc-apple-silicon\", VpcArgs.builder()\n            .name(\"vpc-apple-silicon\")\n            .build());\n\n        var pn_apple_silicon = new PrivateNetwork(\"pn-apple-silicon\", PrivateNetworkArgs.builder()\n            .name(\"pn-apple-silicon\")\n            .vpcId(vpc_apple_silicon.id())\n            .build());\n\n        var my_server = new Server(\"my-server\", ServerArgs.builder()\n            .name(\"TestAccServerEnableVPC\")\n            .type(\"M2-M\")\n            .enableVpc(true)\n            .privateNetworks(ServerPrivateNetworkArgs.builder()\n                .id(pn_apple_silicon.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc-apple-silicon:\n    type: scaleway:network:Vpc\n    properties:\n      name: vpc-apple-silicon\n  pn-apple-silicon:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: pn-apple-silicon\n      vpcId: ${[\"vpc-apple-silicon\"].id}\n  my-server:\n    type: scaleway:applesilicon:Server\n    properties:\n      name: TestAccServerEnableVPC\n      type: M2-M\n      enableVpc: true\n      privateNetworks:\n        - id: ${[\"pn-apple-silicon\"].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With \u003cspan pulumi-lang-nodejs=\"`github`\" pulumi-lang-dotnet=\"`Github`\" pulumi-lang-go=\"`github`\" pulumi-lang-python=\"`github`\" pulumi-lang-yaml=\"`github`\" pulumi-lang-java=\"`github`\"\u003e`github`\u003c/span\u003e runner\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst byName = scaleway.applesilicon.getOs({\n    name: \"devos-sequoia-15.6\",\n});\nconst main = new scaleway.applesilicon.Runner(\"main\", {\n    name: \"TestAccRunnerGithub\",\n    ciProvider: \"github\",\n    url: \"https://github.com/my-repo-url\",\n    token: \"MY_GITHUB_RUNNER_TOKEN\",\n});\nconst mainServer = new scaleway.applesilicon.Server(\"main\", {\n    name: \"TestAccServerRunner\",\n    type: \"M2-L\",\n    publicBandwidth: 1000000000,\n    osId: byName.then(byName =\u003e byName.id),\n    runnerIds: [main.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nby_name = scaleway.applesilicon.get_os(name=\"devos-sequoia-15.6\")\nmain = scaleway.applesilicon.Runner(\"main\",\n    name=\"TestAccRunnerGithub\",\n    ci_provider=\"github\",\n    url=\"https://github.com/my-repo-url\",\n    token=\"MY_GITHUB_RUNNER_TOKEN\")\nmain_server = scaleway.applesilicon.Server(\"main\",\n    name=\"TestAccServerRunner\",\n    type=\"M2-L\",\n    public_bandwidth=1000000000,\n    os_id=by_name.id,\n    runner_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 byName = Scaleway.Applesilicon.GetOs.Invoke(new()\n    {\n        Name = \"devos-sequoia-15.6\",\n    });\n\n    var main = new Scaleway.Applesilicon.Runner(\"main\", new()\n    {\n        Name = \"TestAccRunnerGithub\",\n        CiProvider = \"github\",\n        Url = \"https://github.com/my-repo-url\",\n        Token = \"MY_GITHUB_RUNNER_TOKEN\",\n    });\n\n    var mainServer = new Scaleway.Applesilicon.Server(\"main\", new()\n    {\n        Name = \"TestAccServerRunner\",\n        Type = \"M2-L\",\n        PublicBandwidth = 1000000000,\n        OsId = byName.Apply(getOsResult =\u003e getOsResult.Id),\n        RunnerIds = new[]\n        {\n            main.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/applesilicon\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbyName, err := applesilicon.GetOs(ctx, \u0026applesilicon.GetOsArgs{\n\t\t\tName: pulumi.StringRef(\"devos-sequoia-15.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmain, err := applesilicon.NewRunner(ctx, \"main\", \u0026applesilicon.RunnerArgs{\n\t\t\tName:       pulumi.String(\"TestAccRunnerGithub\"),\n\t\t\tCiProvider: pulumi.String(\"github\"),\n\t\t\tUrl:        pulumi.String(\"https://github.com/my-repo-url\"),\n\t\t\tToken:      pulumi.String(\"MY_GITHUB_RUNNER_TOKEN\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = applesilicon.NewServer(ctx, \"main\", \u0026applesilicon.ServerArgs{\n\t\t\tName:            pulumi.String(\"TestAccServerRunner\"),\n\t\t\tType:            pulumi.String(\"M2-L\"),\n\t\t\tPublicBandwidth: pulumi.Int(1000000000),\n\t\t\tOsId:            pulumi.String(byName.Id),\n\t\t\tRunnerIds: pulumi.StringArray{\n\t\t\t\tmain.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.applesilicon.ApplesiliconFunctions;\nimport com.pulumi.scaleway.applesilicon.inputs.GetOsArgs;\nimport com.pulumi.scaleway.applesilicon.Runner;\nimport com.pulumi.scaleway.applesilicon.RunnerArgs;\nimport com.pulumi.scaleway.applesilicon.Server;\nimport com.pulumi.scaleway.applesilicon.ServerArgs;\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 byName = ApplesiliconFunctions.getOs(GetOsArgs.builder()\n            .name(\"devos-sequoia-15.6\")\n            .build());\n\n        var main = new Runner(\"main\", RunnerArgs.builder()\n            .name(\"TestAccRunnerGithub\")\n            .ciProvider(\"github\")\n            .url(\"https://github.com/my-repo-url\")\n            .token(\"MY_GITHUB_RUNNER_TOKEN\")\n            .build());\n\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .name(\"TestAccServerRunner\")\n            .type(\"M2-L\")\n            .publicBandwidth(1000000000)\n            .osId(byName.id())\n            .runnerIds(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:applesilicon:Runner\n    properties:\n      name: TestAccRunnerGithub\n      ciProvider: github\n      url: https://github.com/my-repo-url\n      token: MY_GITHUB_RUNNER_TOKEN\n  mainServer:\n    type: scaleway:applesilicon:Server\n    name: main\n    properties:\n      name: TestAccServerRunner\n      type: M2-L\n      publicBandwidth: 1e+09\n      osId: ${byName.id}\n      runnerIds:\n        - ${main.id}\nvariables:\n  byName:\n    fn::invoke:\n      function: scaleway:applesilicon:getOs\n      arguments:\n        name: devos-sequoia-15.6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstance servers can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/appleSiliconServer:AppleSiliconServer main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"commitment":{"type":"string","description":"The commitment period of the server"},"createdAt":{"type":"string","description":"The date and time the private network was created.\n"},"deletableAt":{"type":"string","description":"The minimal date and time on which you can delete this server due to Apple licence"},"enableVpc":{"type":"boolean","description":": Enables the VPC option when set to true.\n"},"ip":{"type":"string","description":"IPv4 address of the server (IPv4 address).\n"},"name":{"type":"string","description":"The name of the server.\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"osId":{"type":"string","description":"The ID of the OS to use for the server.\n"},"password":{"type":"string","description":"The password of the server","secret":true},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/AppleSiliconServerPrivateIp:AppleSiliconServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the server.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/AppleSiliconServerPrivateNetwork:AppleSiliconServerPrivateNetwork"},"description":"The private networks to attach to the server\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is\nassociated with.\n"},"publicBandwidth":{"type":"integer","description":"Configure the available public bandwidth for your server in bits per second. This option may not be available for all offers.\n"},"runnerIds":{"type":"array","items":{"type":"string"},"description":"List of runner IDs to assign to the server. At the moment, only a single runner can be attached to a server. Compatible only with runners of type \u003cspan pulumi-lang-nodejs=\"`github`\" pulumi-lang-dotnet=\"`Github`\" pulumi-lang-go=\"`github`\" pulumi-lang-python=\"`github`\" pulumi-lang-yaml=\"`github`\" pulumi-lang-java=\"`github`\"\u003e`github`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`gitlab`\" pulumi-lang-dotnet=\"`Gitlab`\" pulumi-lang-go=\"`gitlab`\" pulumi-lang-python=\"`gitlab`\" pulumi-lang-yaml=\"`gitlab`\" pulumi-lang-java=\"`gitlab`\"\u003e`gitlab`\u003c/span\u003e, with the `devos-sequoia-15.6` offer and `M2-L` server type\n"},"state":{"type":"string","description":"The state of the server.\n"},"type":{"type":"string","description":"The commercial type of the server. You find all the available types on\nthe [pricing page](https://www.scaleway.com/en/pricing/apple-silicon/). Updates to this field will recreate a new\nresource.\n"},"updatedAt":{"type":"string","description":"The date and time the private network was last updated.\n"},"username":{"type":"string","description":"The username of the server"},"vncUrl":{"type":"string","description":"URL of the VNC.\n"},"vpcStatus":{"type":"string","description":"The current status of the VPC option.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe server should be created.\n"}},"required":["createdAt","deletableAt","ip","name","organizationId","password","privateIps","projectId","publicBandwidth","runnerIds","state","type","updatedAt","username","vncUrl","vpcStatus"],"inputProperties":{"commitment":{"type":"string","description":"The commitment period of the server"},"enableVpc":{"type":"boolean","description":": Enables the VPC option when set to true.\n"},"name":{"type":"string","description":"The name of the server.\n"},"osId":{"type":"string","description":"The ID of the OS to use for the server.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/AppleSiliconServerPrivateIp:AppleSiliconServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the server.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/AppleSiliconServerPrivateNetwork:AppleSiliconServerPrivateNetwork"},"description":"The private networks to attach to the server\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is\nassociated with.\n","willReplaceOnChanges":true},"publicBandwidth":{"type":"integer","description":"Configure the available public bandwidth for your server in bits per second. This option may not be available for all offers.\n"},"runnerIds":{"type":"array","items":{"type":"string"},"description":"List of runner IDs to assign to the server. At the moment, only a single runner can be attached to a server. Compatible only with runners of type \u003cspan pulumi-lang-nodejs=\"`github`\" pulumi-lang-dotnet=\"`Github`\" pulumi-lang-go=\"`github`\" pulumi-lang-python=\"`github`\" pulumi-lang-yaml=\"`github`\" pulumi-lang-java=\"`github`\"\u003e`github`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`gitlab`\" pulumi-lang-dotnet=\"`Gitlab`\" pulumi-lang-go=\"`gitlab`\" pulumi-lang-python=\"`gitlab`\" pulumi-lang-yaml=\"`gitlab`\" pulumi-lang-java=\"`gitlab`\"\u003e`gitlab`\u003c/span\u003e, with the `devos-sequoia-15.6` offer and `M2-L` server type\n"},"type":{"type":"string","description":"The commercial type of the server. You find all the available types on\nthe [pricing page](https://www.scaleway.com/en/pricing/apple-silicon/). Updates to this field will recreate a new\nresource.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe server should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering AppleSiliconServer resources.\n","properties":{"commitment":{"type":"string","description":"The commitment period of the server"},"createdAt":{"type":"string","description":"The date and time the private network was created.\n"},"deletableAt":{"type":"string","description":"The minimal date and time on which you can delete this server due to Apple licence"},"enableVpc":{"type":"boolean","description":": Enables the VPC option when set to true.\n"},"ip":{"type":"string","description":"IPv4 address of the server (IPv4 address).\n"},"name":{"type":"string","description":"The name of the server.\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"osId":{"type":"string","description":"The ID of the OS to use for the server.\n"},"password":{"type":"string","description":"The password of the server","secret":true},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/AppleSiliconServerPrivateIp:AppleSiliconServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the server.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/AppleSiliconServerPrivateNetwork:AppleSiliconServerPrivateNetwork"},"description":"The private networks to attach to the server\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is\nassociated with.\n","willReplaceOnChanges":true},"publicBandwidth":{"type":"integer","description":"Configure the available public bandwidth for your server in bits per second. This option may not be available for all offers.\n"},"runnerIds":{"type":"array","items":{"type":"string"},"description":"List of runner IDs to assign to the server. At the moment, only a single runner can be attached to a server. Compatible only with runners of type \u003cspan pulumi-lang-nodejs=\"`github`\" pulumi-lang-dotnet=\"`Github`\" pulumi-lang-go=\"`github`\" pulumi-lang-python=\"`github`\" pulumi-lang-yaml=\"`github`\" pulumi-lang-java=\"`github`\"\u003e`github`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`gitlab`\" pulumi-lang-dotnet=\"`Gitlab`\" pulumi-lang-go=\"`gitlab`\" pulumi-lang-python=\"`gitlab`\" pulumi-lang-yaml=\"`gitlab`\" pulumi-lang-java=\"`gitlab`\"\u003e`gitlab`\u003c/span\u003e, with the `devos-sequoia-15.6` offer and `M2-L` server type\n"},"state":{"type":"string","description":"The state of the server.\n"},"type":{"type":"string","description":"The commercial type of the server. You find all the available types on\nthe [pricing page](https://www.scaleway.com/en/pricing/apple-silicon/). Updates to this field will recreate a new\nresource.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time the private network was last updated.\n"},"username":{"type":"string","description":"The username of the server"},"vncUrl":{"type":"string","description":"URL of the VNC.\n"},"vpcStatus":{"type":"string","description":"The current status of the VPC option.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe server should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/applesiliconserver.AppleSiliconServer has been deprecated in favor of scaleway.applesilicon/server.Server"},"scaleway:index/baremetalServer:BaremetalServer":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  myServer:\n    type: scaleway:elasticmetal:Server\n    name: my_server\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${myOs.id}\n      sshKeyIds:\n        - ${mySshKey.id}\nvariables:\n  ### Basic\n  mySshKey:\n    fn::invoke:\n      function: scaleway:iam:getSshKey\n      arguments:\n        name: main\n        publicKey: ssh XXXXXXXXXXX\n  myOs:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\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:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-2\n        name: EM-I220E-NVME\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\nimport * as std from \"@pulumi/std\";\n\n//## With cloud-init\nconst mySshKey = scaleway.iam.getSshKey({\n    name: \"main\",\n});\nconst myOs = scaleway.elasticmetal.getOs({\n    zone: \"fr-par-1\",\n    name: \"Ubuntu\",\n    version: \"22.04 LTS (Jammy Jellyfish)\",\n});\nconst myOffer = scaleway.elasticmetal.getOffer({\n    zone: \"fr-par-2\",\n    name: \"EM-I220E-NVME\",\n});\nconst myServerCi = new scaleway.elasticmetal.Server(\"my_server_ci\", {\n    zone: \"fr-par-2\",\n    offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n    os: myOs.then(myOs =\u003e myOs.osId),\n    sshKeyIds: [mySshKey.then(mySshKey =\u003e mySshKey.id)],\n    cloudInit: std.index.file({\n        input: \"userdata.yaml\",\n    }).result,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumi_std as std\nimport pulumiverse_scaleway as scaleway\n\n### With cloud-init\nmy_ssh_key = scaleway.iam.get_ssh_key(name=\"main\")\nmy_os = scaleway.elasticmetal.get_os(zone=\"fr-par-1\",\n    name=\"Ubuntu\",\n    version=\"22.04 LTS (Jammy Jellyfish)\")\nmy_offer = scaleway.elasticmetal.get_offer(zone=\"fr-par-2\",\n    name=\"EM-I220E-NVME\")\nmy_server_ci = scaleway.elasticmetal.Server(\"my_server_ci\",\n    zone=\"fr-par-2\",\n    offer=my_offer.offer_id,\n    os=my_os.os_id,\n    ssh_key_ids=[my_ssh_key.id],\n    cloud_init=std.index.file(input=\"userdata.yaml\")[\"result\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //## With cloud-init\n    var mySshKey = Scaleway.Iam.GetSshKey.Invoke(new()\n    {\n        Name = \"main\",\n    });\n\n    var myOs = Scaleway.Elasticmetal.GetOs.Invoke(new()\n    {\n        Zone = \"fr-par-1\",\n        Name = \"Ubuntu\",\n        Version = \"22.04 LTS (Jammy Jellyfish)\",\n    });\n\n    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"EM-I220E-NVME\",\n    });\n\n    var myServerCi = new Scaleway.Elasticmetal.Server(\"my_server_ci\", new()\n    {\n        Zone = \"fr-par-2\",\n        Offer = myOffer.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        Os = myOs.Apply(getOsResult =\u003e getOsResult.OsId),\n        SshKeyIds = new[]\n        {\n            mySshKey.Apply(getSshKeyResult =\u003e getSshKeyResult.Id),\n        },\n        CloudInit = Std.Index.File.Invoke(new()\n        {\n            Input = \"userdata.yaml\",\n        }).Result,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## With cloud-init\n\t\tmySshKey, err := iam.LookupSshKey(ctx, \u0026iam.LookupSshKeyArgs{\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 := elasticmetal.GetOs(ctx, \u0026elasticmetal.GetOsArgs{\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 := elasticmetal.GetOffer(ctx, \u0026elasticmetal.GetOfferArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"EM-I220E-NVME\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFile, err := std.File(ctx, map[string]interface{}{\n\t\t\t\"input\": \"userdata.yaml\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticmetal.NewServer(ctx, \"my_server_ci\", \u0026elasticmetal.ServerArgs{\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(mySshKey.Id),\n\t\t\t},\n\t\t\tCloudInit: invokeFile.Result,\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.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetSshKeyArgs;\nimport com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.elasticmetal.Server;\nimport com.pulumi.scaleway.elasticmetal.ServerArgs;\nimport com.pulumi.std.StdFunctions;\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        //## With cloud-init\n        final var mySshKey = IamFunctions.getSshKey(GetSshKeyArgs.builder()\n            .name(\"main\")\n            .build());\n\n        final var myOs = ElasticmetalFunctions.getOs(GetOsArgs.builder()\n            .zone(\"fr-par-1\")\n            .name(\"Ubuntu\")\n            .version(\"22.04 LTS (Jammy Jellyfish)\")\n            .build());\n\n        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"EM-I220E-NVME\")\n            .build());\n\n        var myServerCi = new Server(\"myServerCi\", ServerArgs.builder()\n            .zone(\"fr-par-2\")\n            .offer(myOffer.offerId())\n            .os(myOs.osId())\n            .sshKeyIds(mySshKey.id())\n            .cloudInit(StdFunctions.file(Map.of(\"input\", \"userdata.yaml\")).result())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myServerCi:\n    type: scaleway:elasticmetal:Server\n    name: my_server_ci\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${myOs.osId}\n      sshKeyIds:\n        - ${mySshKey.id}\n      cloudInit:\n        fn::invoke:\n          function: std:file\n          arguments:\n            input: userdata.yaml\n          return: result\nvariables:\n  ### With cloud-init\n  mySshKey:\n    fn::invoke:\n      function: scaleway:iam:getSshKey\n      arguments:\n        name: main\n  myOs:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\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:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-2\n        name: EM-I220E-NVME\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  myServer:\n    type: scaleway:elasticmetal:Server\n    name: my_server\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${myOs.osId}\n      partitioning: |\n        {\n          \\\"disks\\\": [\n            {\n              \\\"device\\\": \\\"/dev/nvme0n1\\\",\n              \\\"partitions\\\": [\n                {\n                  \\\"label\\\": \\\"uefi\\\",\n                  \\\"number\\\": 1,\n                  \\\"size\\\": 536870912\n                },\n                {\n                  \\\"label\\\": \\\"swap\\\",\n                  \\\"number\\\": 2,\n                  \\\"size\\\": 4294967296\n                },\n                {\n                  \\\"label\\\": \\\"boot\\\",\n                  \\\"number\\\": 3,\n                  \\\"size\\\": 1073741824\n                },\n                {\n                  \\\"label\\\": \\\"root\\\",\n                  \\\"number\\\": 4,\n                  \\\"size\\\": 1017827045376\n                }\n              ]\n            },\n            {\n              \\\"device\\\": \\\"/dev/nvme1n1\\\",\n              \\\"partitions\\\": [\n                {\n                  \\\"label\\\": \\\"swap\\\",\n                  \\\"number\\\": 1,\n                  \\\"size\\\": 4294967296\n                },\n                {\n                  \\\"label\\\": \\\"boot\\\",\n                  \\\"number\\\": 2,\n                  \\\"size\\\": 1073741824\n                },\n                {\n                  \\\"label\\\": \\\"root\\\",\n                  \\\"number\\\": 3,\n                  \\\"size\\\": 1017827045376\n                }\n              ]\n            }\n          ],\n          \\\"filesystems\\\": [\n            {\n              \\\"device\\\": \\\"/dev/nvme0n1p1\\\",\n              \\\"format\\\": \\\"fat32\\\",\n              \\\"mountpoint\\\": \\\"/boot/efi\\\"\n            },\n            {\n              \\\"device\\\": \\\"/dev/md0\\\",\n              \\\"format\\\": \\\"ext4\\\",\n              \\\"mountpoint\\\": \\\"/boot\\\"\n            },\n            {\n              \\\"device\\\": \\\"/dev/md1\\\",\n              \\\"format\\\": \\\"ext4\\\",\n              \\\"mountpoint\\\": \\\"/\\\"\n            }\n          ],\n          \\\"raids\\\": [\n            {\n              \\\"devices\\\": [\\\"/dev/nvme0n1p3\\\", \\\"/dev/nvme1n1p2\\\"],\n              \\\"level\\\": \\\"raid_level_1\\\",\n              \\\"name\\\": \\\"/dev/md0\\\"\n            },\n            {\n              \\\"devices\\\": [\\\"/dev/nvme0n1p4\\\", \\\"/dev/nvme1n1p3\\\"],\n              \\\"level\\\": \\\"raid_level_1\\\",\n              \\\"name\\\": \\\"/dev/md1\\\"\n            }\n          ],\n          \\\"zfs\\\": {\n            \\\"pools\\\": []\n          }\n        }\n      sshKeyIds:\n        - ${mySshKey.id}\nvariables:\n  ### With custom partitioning\n  mySshKey:\n    fn::invoke:\n      function: scaleway:iam:getSshKey\n      arguments:\n        name: main\n        publicKey: ssh XXXXXXXXXXX\n  myOs:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\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:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-2\n        name: EM-I215E-NVME\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  ### With IPAM IP IDs\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: vpc_baremetal\n  pn01:\n    type: scaleway:network:PrivateNetwork\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:ipam:Ip\n    properties:\n      address: 172.16.64.7\n      sources:\n        - privateNetworkId: ${pn01.id}\n  myServer:\n    type: scaleway:elasticmetal:Server\n    name: my_server\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${myOs.osId}\n      sshKeyIds:\n        - ${mySshKey.id}\n      options:\n        - id: ${privateNetwork.optionId}\n      privateNetworks:\n        - id: ${pn01.id}\n          ipamIpIds:\n            - ${ip01.id}\nvariables:\n  mySshKey:\n    fn::invoke:\n      function: scaleway:iam:getSshKey\n      arguments:\n        name: main\n        publicKey: ssh XXXXXXXXXXX\n  myOs:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\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:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-1\n        name: EM-A115X-SSD\n  privateNetwork:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOption\n      arguments:\n        zone: fr-par-1\n        name: Private Network\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":{"cloudInit":{"type":"string","description":"Configuration data to pass to cloud-init such as a YAML cloud config or a user-data script. Accepts either a string containing the content or a path to a file (for example `file(\"cloud-init.yml\")`). Max length: 127998 characters. Updates to \u003cspan pulumi-lang-nodejs=\"`cloudInit`\" pulumi-lang-dotnet=\"`CloudInit`\" pulumi-lang-go=\"`cloudInit`\" pulumi-lang-python=\"`cloud_init`\" pulumi-lang-yaml=\"`cloudInit`\" pulumi-lang-java=\"`cloudInit`\"\u003e`cloud_init`\u003c/span\u003e will update the server user-data via the API and do not trigger a reinstall; however, a reboot of the server is required for the OS to re-run cloud-init and apply the changes. Only supported for Offers that have cloud-init enabled. You can check available offers with `scw baremetal list offers` command.\n"},"description":{"type":"string","description":"A description for the server.\n"},"domain":{"type":"string","description":"The domain of the server.\n"},"hostname":{"type":"string","description":"The hostname of the server.\n"},"installConfigAfterward":{"type":"boolean","description":"If True, this boolean allows to create a server without the install config if you want to provide it later.\n"},"ips":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerIp:BaremetalServerIp"},"description":"(List of) The IPs of the server.\n"},"ipv4s":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerIpv4:BaremetalServerIpv4"},"description":"(List of) The IPv4 addresses of the server.\n"},"ipv6s":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerIpv6:BaremetalServerIpv6"},"description":"(List of) The IPv6 addresses of the server.\n"},"name":{"type":"string","description":"The name of the server.\n"},"offer":{"type":"string","description":"The offer UUID of the baremetal server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-servers-get-a-specific-elastic-metal-server) to find the right offer.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`offer`\" pulumi-lang-dotnet=\"`Offer`\" pulumi-lang-go=\"`offer`\" pulumi-lang-python=\"`offer`\" pulumi-lang-yaml=\"`offer`\" pulumi-lang-java=\"`offer`\"\u003e`offer`\u003c/span\u003e will recreate the server.\n\u003e **Important**  If you migrate to a monthly subscription, you cannot downgrade back to an hourly plan. Ensure that the monthly plan meets your needs before making the switch.\n"},"offerId":{"type":"string","description":"The ID of the offer.\n"},"offerName":{"type":"string","description":"The name of the offer.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerOption:BaremetalServerOption"},"description":"The options to enable on the server.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e block supports:\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"os":{"type":"string","description":"The UUID of the os to install on the server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-os-list-available-oses) to find the right OS ID.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`os`\" pulumi-lang-dotnet=\"`Os`\" pulumi-lang-go=\"`os`\" pulumi-lang-python=\"`os`\" pulumi-lang-yaml=\"`os`\" pulumi-lang-java=\"`os`\"\u003e`os`\u003c/span\u003e will reinstall the server.\n"},"osName":{"type":"string","description":"The name of the os.\n"},"partitioning":{"type":"string","description":"The partitioning schema in JSON format\n"},"password":{"type":"string","description":"Password used for the installation. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerPrivateIp:BaremetalServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerPrivateNetwork:BaremetalServerPrivateNetwork"},"description":"The private networks to attach to the server. For more information, see [the documentation](https://www.scaleway.com/en/docs/compute/elastic-metal/how-to/use-private-networks/)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n"},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"reinstallOnConfigChanges":{"type":"boolean","description":"If True, this boolean allows to reinstall the server on install config changes.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`sshKeyIds`\" pulumi-lang-dotnet=\"`SshKeyIds`\" pulumi-lang-go=\"`sshKeyIds`\" pulumi-lang-python=\"`ssh_key_ids`\" pulumi-lang-yaml=\"`sshKeyIds`\" pulumi-lang-java=\"`sshKeyIds`\"\u003e`ssh_key_ids`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serviceUser`\" pulumi-lang-dotnet=\"`ServiceUser`\" pulumi-lang-go=\"`serviceUser`\" pulumi-lang-python=\"`service_user`\" pulumi-lang-yaml=\"`serviceUser`\" pulumi-lang-java=\"`serviceUser`\"\u003e`service_user`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e will not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.\n"},"servicePassword":{"type":"string","description":"Password used for the service to install. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e should be specified.\n","secret":true},"servicePasswordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"servicePasswordWoVersion":{"type":"integer","description":"The version of the write-only service password. To update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWoVersion`\" pulumi-lang-dotnet=\"`ServicePasswordWoVersion`\" pulumi-lang-go=\"`servicePasswordWoVersion`\" pulumi-lang-python=\"`service_password_wo_version`\" pulumi-lang-yaml=\"`servicePasswordWoVersion`\" pulumi-lang-java=\"`servicePasswordWoVersion`\"\u003e`service_password_wo_version`\u003c/span\u003e.\n"},"serviceUser":{"type":"string","description":"User used for the service to install.\n"},"sshKeyIds":{"type":"array","items":{"type":"string"},"description":"List of SSH keys allowed to connect to the server.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"user":{"type":"string","description":"User used for the installation.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n"}},"required":["cloudInit","domain","ips","ipv4s","ipv6s","name","offer","offerId","offerName","organizationId","osName","privateIps","projectId","serviceUser","tags","user"],"inputProperties":{"cloudInit":{"type":"string","description":"Configuration data to pass to cloud-init such as a YAML cloud config or a user-data script. Accepts either a string containing the content or a path to a file (for example `file(\"cloud-init.yml\")`). Max length: 127998 characters. Updates to \u003cspan pulumi-lang-nodejs=\"`cloudInit`\" pulumi-lang-dotnet=\"`CloudInit`\" pulumi-lang-go=\"`cloudInit`\" pulumi-lang-python=\"`cloud_init`\" pulumi-lang-yaml=\"`cloudInit`\" pulumi-lang-java=\"`cloudInit`\"\u003e`cloud_init`\u003c/span\u003e will update the server user-data via the API and do not trigger a reinstall; however, a reboot of the server is required for the OS to re-run cloud-init and apply the changes. Only supported for Offers that have cloud-init enabled. You can check available offers with `scw baremetal list offers` command.\n"},"description":{"type":"string","description":"A description for the server.\n"},"hostname":{"type":"string","description":"The hostname of the server.\n"},"installConfigAfterward":{"type":"boolean","description":"If True, this boolean allows to create a server without the install config if you want to provide it later.\n"},"name":{"type":"string","description":"The name of the server.\n"},"offer":{"type":"string","description":"The offer UUID of the baremetal server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-servers-get-a-specific-elastic-metal-server) to find the right offer.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`offer`\" pulumi-lang-dotnet=\"`Offer`\" pulumi-lang-go=\"`offer`\" pulumi-lang-python=\"`offer`\" pulumi-lang-yaml=\"`offer`\" pulumi-lang-java=\"`offer`\"\u003e`offer`\u003c/span\u003e will recreate the server.\n\u003e **Important**  If you migrate to a monthly subscription, you cannot downgrade back to an hourly plan. Ensure that the monthly plan meets your needs before making the switch.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerOption:BaremetalServerOption"},"description":"The options to enable on the server.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e block supports:\n"},"os":{"type":"string","description":"The UUID of the os to install on the server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-os-list-available-oses) to find the right OS ID.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`os`\" pulumi-lang-dotnet=\"`Os`\" pulumi-lang-go=\"`os`\" pulumi-lang-python=\"`os`\" pulumi-lang-yaml=\"`os`\" pulumi-lang-java=\"`os`\"\u003e`os`\u003c/span\u003e will reinstall the server.\n"},"partitioning":{"type":"string","description":"The partitioning schema in JSON format\n"},"password":{"type":"string","description":"Password used for the installation. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerPrivateIp:BaremetalServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerPrivateNetwork:BaremetalServerPrivateNetwork"},"description":"The private networks to attach to the server. For more information, see [the documentation](https://www.scaleway.com/en/docs/compute/elastic-metal/how-to/use-private-networks/)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"reinstallOnConfigChanges":{"type":"boolean","description":"If True, this boolean allows to reinstall the server on install config changes.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`sshKeyIds`\" pulumi-lang-dotnet=\"`SshKeyIds`\" pulumi-lang-go=\"`sshKeyIds`\" pulumi-lang-python=\"`ssh_key_ids`\" pulumi-lang-yaml=\"`sshKeyIds`\" pulumi-lang-java=\"`sshKeyIds`\"\u003e`ssh_key_ids`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serviceUser`\" pulumi-lang-dotnet=\"`ServiceUser`\" pulumi-lang-go=\"`serviceUser`\" pulumi-lang-python=\"`service_user`\" pulumi-lang-yaml=\"`serviceUser`\" pulumi-lang-java=\"`serviceUser`\"\u003e`service_user`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e will not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.\n"},"servicePassword":{"type":"string","description":"Password used for the service to install. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e should be specified.\n","secret":true},"servicePasswordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"servicePasswordWoVersion":{"type":"integer","description":"The version of the write-only service password. To update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWoVersion`\" pulumi-lang-dotnet=\"`ServicePasswordWoVersion`\" pulumi-lang-go=\"`servicePasswordWoVersion`\" pulumi-lang-python=\"`service_password_wo_version`\" pulumi-lang-yaml=\"`servicePasswordWoVersion`\" pulumi-lang-java=\"`servicePasswordWoVersion`\"\u003e`service_password_wo_version`\u003c/span\u003e.\n"},"serviceUser":{"type":"string","description":"User used for the service to install.\n"},"sshKeyIds":{"type":"array","items":{"type":"string"},"description":"List of SSH keys allowed to connect to the server.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"user":{"type":"string","description":"User used for the installation.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["offer"],"stateInputs":{"description":"Input properties used for looking up and filtering BaremetalServer resources.\n","properties":{"cloudInit":{"type":"string","description":"Configuration data to pass to cloud-init such as a YAML cloud config or a user-data script. Accepts either a string containing the content or a path to a file (for example `file(\"cloud-init.yml\")`). Max length: 127998 characters. Updates to \u003cspan pulumi-lang-nodejs=\"`cloudInit`\" pulumi-lang-dotnet=\"`CloudInit`\" pulumi-lang-go=\"`cloudInit`\" pulumi-lang-python=\"`cloud_init`\" pulumi-lang-yaml=\"`cloudInit`\" pulumi-lang-java=\"`cloudInit`\"\u003e`cloud_init`\u003c/span\u003e will update the server user-data via the API and do not trigger a reinstall; however, a reboot of the server is required for the OS to re-run cloud-init and apply the changes. Only supported for Offers that have cloud-init enabled. You can check available offers with `scw baremetal list offers` command.\n"},"description":{"type":"string","description":"A description for the server.\n"},"domain":{"type":"string","description":"The domain of the server.\n"},"hostname":{"type":"string","description":"The hostname of the server.\n"},"installConfigAfterward":{"type":"boolean","description":"If True, this boolean allows to create a server without the install config if you want to provide it later.\n"},"ips":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerIp:BaremetalServerIp"},"description":"(List of) The IPs of the server.\n"},"ipv4s":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerIpv4:BaremetalServerIpv4"},"description":"(List of) The IPv4 addresses of the server.\n"},"ipv6s":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerIpv6:BaremetalServerIpv6"},"description":"(List of) The IPv6 addresses of the server.\n"},"name":{"type":"string","description":"The name of the server.\n"},"offer":{"type":"string","description":"The offer UUID of the baremetal server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-servers-get-a-specific-elastic-metal-server) to find the right offer.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`offer`\" pulumi-lang-dotnet=\"`Offer`\" pulumi-lang-go=\"`offer`\" pulumi-lang-python=\"`offer`\" pulumi-lang-yaml=\"`offer`\" pulumi-lang-java=\"`offer`\"\u003e`offer`\u003c/span\u003e will recreate the server.\n\u003e **Important**  If you migrate to a monthly subscription, you cannot downgrade back to an hourly plan. Ensure that the monthly plan meets your needs before making the switch.\n"},"offerId":{"type":"string","description":"The ID of the offer.\n"},"offerName":{"type":"string","description":"The name of the offer.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerOption:BaremetalServerOption"},"description":"The options to enable on the server.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`options`\" pulumi-lang-dotnet=\"`Options`\" pulumi-lang-go=\"`options`\" pulumi-lang-python=\"`options`\" pulumi-lang-yaml=\"`options`\" pulumi-lang-java=\"`options`\"\u003e`options`\u003c/span\u003e block supports:\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"os":{"type":"string","description":"The UUID of the os to install on the server.\nUse [this endpoint](https://www.scaleway.com/en/developers/api/elastic-metal/#path-os-list-available-oses) to find the right OS ID.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`os`\" pulumi-lang-dotnet=\"`Os`\" pulumi-lang-go=\"`os`\" pulumi-lang-python=\"`os`\" pulumi-lang-yaml=\"`os`\" pulumi-lang-java=\"`os`\"\u003e`os`\u003c/span\u003e will reinstall the server.\n"},"osName":{"type":"string","description":"The name of the os.\n"},"partitioning":{"type":"string","description":"The partitioning schema in JSON format\n"},"password":{"type":"string","description":"Password used for the installation. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerPrivateIp:BaremetalServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/BaremetalServerPrivateNetwork:BaremetalServerPrivateNetwork"},"description":"The private networks to attach to the server. For more information, see [the documentation](https://www.scaleway.com/en/docs/compute/elastic-metal/how-to/use-private-networks/)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"reinstallOnConfigChanges":{"type":"boolean","description":"If True, this boolean allows to reinstall the server on install config changes.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`sshKeyIds`\" pulumi-lang-dotnet=\"`SshKeyIds`\" pulumi-lang-go=\"`sshKeyIds`\" pulumi-lang-python=\"`ssh_key_ids`\" pulumi-lang-yaml=\"`sshKeyIds`\" pulumi-lang-java=\"`sshKeyIds`\"\u003e`ssh_key_ids`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serviceUser`\" pulumi-lang-dotnet=\"`ServiceUser`\" pulumi-lang-go=\"`serviceUser`\" pulumi-lang-python=\"`service_user`\" pulumi-lang-yaml=\"`serviceUser`\" pulumi-lang-java=\"`serviceUser`\"\u003e`service_user`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e will not take effect on the server, it requires to reinstall it. To do so please set 'reinstall_on_config_changes' argument to true.\n"},"servicePassword":{"type":"string","description":"Password used for the service to install. May be required depending on used os. Only one of \u003cspan pulumi-lang-nodejs=\"`servicePassword`\" pulumi-lang-dotnet=\"`ServicePassword`\" pulumi-lang-go=\"`servicePassword`\" pulumi-lang-python=\"`service_password`\" pulumi-lang-yaml=\"`servicePassword`\" pulumi-lang-java=\"`servicePassword`\"\u003e`service_password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e should be specified.\n","secret":true},"servicePasswordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"servicePasswordWoVersion":{"type":"integer","description":"The version of the write-only service password. To update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWo`\" pulumi-lang-dotnet=\"`ServicePasswordWo`\" pulumi-lang-go=\"`servicePasswordWo`\" pulumi-lang-python=\"`service_password_wo`\" pulumi-lang-yaml=\"`servicePasswordWo`\" pulumi-lang-java=\"`servicePasswordWo`\"\u003e`service_password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`servicePasswordWoVersion`\" pulumi-lang-dotnet=\"`ServicePasswordWoVersion`\" pulumi-lang-go=\"`servicePasswordWoVersion`\" pulumi-lang-python=\"`service_password_wo_version`\" pulumi-lang-yaml=\"`servicePasswordWoVersion`\" pulumi-lang-java=\"`servicePasswordWoVersion`\"\u003e`service_password_wo_version`\u003c/span\u003e.\n"},"serviceUser":{"type":"string","description":"User used for the service to install.\n"},"sshKeyIds":{"type":"array","items":{"type":"string"},"description":"List of SSH keys allowed to connect to the server.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"user":{"type":"string","description":"User used for the installation.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/baremetalserver.BaremetalServer has been deprecated in favor of scaleway.elasticmetal/server.Server"},"scaleway:index/blockSnapshot:BlockSnapshot":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.block.Snapshot`\" pulumi-lang-dotnet=\"`scaleway.block.Snapshot`\" pulumi-lang-go=\"`block.Snapshot`\" pulumi-lang-python=\"`block.Snapshot`\" pulumi-lang-yaml=\"`scaleway.block.Snapshot`\" pulumi-lang-java=\"`scaleway.block.Snapshot`\"\u003e`scaleway.block.Snapshot`\u003c/span\u003e resource is used to create and manage snapshots of Block Storage volumes.\n\nRefer to the Block Storage [product documentation](https://www.scaleway.com/en/docs/block-storage/) and [API documentation](https://www.scaleway.com/en/developers/api/block/) for more information.\n\n## Example Usage\n\n### Create a snapshot of a Block Storage volume\n\nThe following command allows you to create a snapshot (`some-snapshot-name`) from a Block Storage volume specified by its ID.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst blockVolume = new scaleway.block.Volume(\"block_volume\", {\n    iops: 5000,\n    name: \"some-volume-name\",\n    sizeInGb: 20,\n});\nconst blockSnapshot = new scaleway.block.Snapshot(\"block_snapshot\", {\n    name: \"some-snapshot-name\",\n    volumeId: blockVolume.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nblock_volume = scaleway.block.Volume(\"block_volume\",\n    iops=5000,\n    name=\"some-volume-name\",\n    size_in_gb=20)\nblock_snapshot = scaleway.block.Snapshot(\"block_snapshot\",\n    name=\"some-snapshot-name\",\n    volume_id=block_volume.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 blockVolume = new Scaleway.Block.Volume(\"block_volume\", new()\n    {\n        Iops = 5000,\n        Name = \"some-volume-name\",\n        SizeInGb = 20,\n    });\n\n    var blockSnapshot = new Scaleway.Block.Snapshot(\"block_snapshot\", new()\n    {\n        Name = \"some-snapshot-name\",\n        VolumeId = blockVolume.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/block\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tblockVolume, err := block.NewVolume(ctx, \"block_volume\", \u0026block.VolumeArgs{\n\t\t\tIops:     pulumi.Int(5000),\n\t\t\tName:     pulumi.String(\"some-volume-name\"),\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\t_, err = block.NewSnapshot(ctx, \"block_snapshot\", \u0026block.SnapshotArgs{\n\t\t\tName:     pulumi.String(\"some-snapshot-name\"),\n\t\t\tVolumeId: blockVolume.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.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport com.pulumi.scaleway.block.Snapshot;\nimport com.pulumi.scaleway.block.SnapshotArgs;\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 blockVolume = new Volume(\"blockVolume\", VolumeArgs.builder()\n            .iops(5000)\n            .name(\"some-volume-name\")\n            .sizeInGb(20)\n            .build());\n\n        var blockSnapshot = new Snapshot(\"blockSnapshot\", SnapshotArgs.builder()\n            .name(\"some-snapshot-name\")\n            .volumeId(blockVolume.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  blockVolume:\n    type: scaleway:block:Volume\n    name: block_volume\n    properties:\n      iops: 5000\n      name: some-volume-name\n      sizeInGb: 20\n  blockSnapshot:\n    type: scaleway:block:Snapshot\n    name: block_snapshot\n    properties:\n      name: some-snapshot-name\n      volumeId: ${blockVolume.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### How to import from Object Storage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst my_import_bucket = new scaleway.object.Bucket(\"my-import-bucket\", {name: \"snapshot-bucket-to-import\"});\nconst qcow_object = new scaleway.object.Item(\"qcow-object\", {\n    bucket: snapshot_bucket.name,\n    key: \"my-snapshot.qcow2\",\n    file: \"imported-snapshot/snapshot.qcow2\",\n});\nconst imported = new scaleway.block.Volume(\"imported\", {\n    iops: 5000,\n    name: \"imported-from-qcow\",\n    \"import\": [{\n        bucket: \"my-import-bucket\",\n        key: \"imported-snapshot/snapshot.qcow2\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmy_import_bucket = scaleway.object.Bucket(\"my-import-bucket\", name=\"snapshot-bucket-to-import\")\nqcow_object = scaleway.object.Item(\"qcow-object\",\n    bucket=snapshot_bucket[\"name\"],\n    key=\"my-snapshot.qcow2\",\n    file=\"imported-snapshot/snapshot.qcow2\")\nimported = scaleway.block.Volume(\"imported\",\n    iops=5000,\n    name=\"imported-from-qcow\",\n    import_=[{\n        \"bucket\": \"my-import-bucket\",\n        \"key\": \"imported-snapshot/snapshot.qcow2\",\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 my_import_bucket = new Scaleway.Object.Bucket(\"my-import-bucket\", new()\n    {\n        Name = \"snapshot-bucket-to-import\",\n    });\n\n    var qcow_object = new Scaleway.Object.Item(\"qcow-object\", new()\n    {\n        Bucket = snapshot_bucket.Name,\n        Key = \"my-snapshot.qcow2\",\n        File = \"imported-snapshot/snapshot.qcow2\",\n    });\n\n    var imported = new Scaleway.Block.Volume(\"imported\", new()\n    {\n        Iops = 5000,\n        Name = \"imported-from-qcow\",\n        Import = new[]\n        {\n            \n            {\n                { \"bucket\", \"my-import-bucket\" },\n                { \"key\", \"imported-snapshot/snapshot.qcow2\" },\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/block\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"my-import-bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"snapshot-bucket-to-import\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewItem(ctx, \"qcow-object\", \u0026object.ItemArgs{\n\t\t\tBucket: pulumi.Any(snapshot_bucket.Name),\n\t\t\tKey:    pulumi.String(\"my-snapshot.qcow2\"),\n\t\t\tFile:   pulumi.String(\"imported-snapshot/snapshot.qcow2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = block.NewVolume(ctx, \"imported\", \u0026block.VolumeArgs{\n\t\t\tIops: pulumi.Int(5000),\n\t\t\tName: pulumi.String(\"imported-from-qcow\"),\n\t\t\tImport: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"bucket\": \"my-import-bucket\",\n\t\t\t\t\t\"key\":    \"imported-snapshot/snapshot.qcow2\",\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.Item;\nimport com.pulumi.scaleway.object.ItemArgs;\nimport com.pulumi.scaleway.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_import_bucket = new Bucket(\"my-import-bucket\", BucketArgs.builder()\n            .name(\"snapshot-bucket-to-import\")\n            .build());\n\n        var qcow_object = new Item(\"qcow-object\", ItemArgs.builder()\n            .bucket(snapshot_bucket.name())\n            .key(\"my-snapshot.qcow2\")\n            .file(\"imported-snapshot/snapshot.qcow2\")\n            .build());\n\n        var imported = new Volume(\"imported\", VolumeArgs.builder()\n            .iops(5000)\n            .name(\"imported-from-qcow\")\n            .import_(List.of(Map.ofEntries(\n                Map.entry(\"bucket\", \"my-import-bucket\"),\n                Map.entry(\"key\", \"imported-snapshot/snapshot.qcow2\")\n            )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-import-bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: snapshot-bucket-to-import\n  qcow-object:\n    type: scaleway:object:Item\n    properties:\n      bucket: ${[\"snapshot-bucket\"].name}\n      key: my-snapshot.qcow2\n      file: imported-snapshot/snapshot.qcow2\n  imported:\n    type: scaleway:block:Volume\n    properties:\n      iops: 5000\n      name: imported-from-qcow\n      import:\n        - bucket: my-import-bucket\n          key: imported-snapshot/snapshot.qcow2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### How to export to Object Storage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst my_import_bucket = new scaleway.object.Bucket(\"my-import-bucket\", {name: \"snapshot-bucket-to-import\"});\nconst qcow_object = new scaleway.object.Item(\"qcow-object\", {\n    bucket: snapshot_bucket.name,\n    key: \"export/my-snapshot.qcow2\",\n});\nconst toExport = new scaleway.block.Volume(\"to_export\", {\n    iops: 5000,\n    name: \"to-export\",\n    \"export\": [{\n        bucket: \"snapshot-bucket-to-import\",\n        key: \"exports/my-snapshot.qcow2\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmy_import_bucket = scaleway.object.Bucket(\"my-import-bucket\", name=\"snapshot-bucket-to-import\")\nqcow_object = scaleway.object.Item(\"qcow-object\",\n    bucket=snapshot_bucket[\"name\"],\n    key=\"export/my-snapshot.qcow2\")\nto_export = scaleway.block.Volume(\"to_export\",\n    iops=5000,\n    name=\"to-export\",\n    export=[{\n        \"bucket\": \"snapshot-bucket-to-import\",\n        \"key\": \"exports/my-snapshot.qcow2\",\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 my_import_bucket = new Scaleway.Object.Bucket(\"my-import-bucket\", new()\n    {\n        Name = \"snapshot-bucket-to-import\",\n    });\n\n    var qcow_object = new Scaleway.Object.Item(\"qcow-object\", new()\n    {\n        Bucket = snapshot_bucket.Name,\n        Key = \"export/my-snapshot.qcow2\",\n    });\n\n    var toExport = new Scaleway.Block.Volume(\"to_export\", new()\n    {\n        Iops = 5000,\n        Name = \"to-export\",\n        Export = new[]\n        {\n            \n            {\n                { \"bucket\", \"snapshot-bucket-to-import\" },\n                { \"key\", \"exports/my-snapshot.qcow2\" },\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/block\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"my-import-bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"snapshot-bucket-to-import\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewItem(ctx, \"qcow-object\", \u0026object.ItemArgs{\n\t\t\tBucket: pulumi.Any(snapshot_bucket.Name),\n\t\t\tKey:    pulumi.String(\"export/my-snapshot.qcow2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = block.NewVolume(ctx, \"to_export\", \u0026block.VolumeArgs{\n\t\t\tIops: pulumi.Int(5000),\n\t\t\tName: pulumi.String(\"to-export\"),\n\t\t\tExport: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"bucket\": \"snapshot-bucket-to-import\",\n\t\t\t\t\t\"key\":    \"exports/my-snapshot.qcow2\",\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.Item;\nimport com.pulumi.scaleway.object.ItemArgs;\nimport com.pulumi.scaleway.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_import_bucket = new Bucket(\"my-import-bucket\", BucketArgs.builder()\n            .name(\"snapshot-bucket-to-import\")\n            .build());\n\n        var qcow_object = new Item(\"qcow-object\", ItemArgs.builder()\n            .bucket(snapshot_bucket.name())\n            .key(\"export/my-snapshot.qcow2\")\n            .build());\n\n        var toExport = new Volume(\"toExport\", VolumeArgs.builder()\n            .iops(5000)\n            .name(\"to-export\")\n            .export(List.of(Map.ofEntries(\n                Map.entry(\"bucket\", \"snapshot-bucket-to-import\"),\n                Map.entry(\"key\", \"exports/my-snapshot.qcow2\")\n            )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-import-bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: snapshot-bucket-to-import\n  qcow-object:\n    type: scaleway:object:Item\n    properties:\n      bucket: ${[\"snapshot-bucket\"].name}\n      key: export/my-snapshot.qcow2\n  toExport:\n    type: scaleway:block:Volume\n    name: to_export\n    properties:\n      iops: 5000\n      name: to-export\n      export:\n        - bucket: snapshot-bucket-to-import\n          key: exports/my-snapshot.qcow2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import the snapshot of a Block Storage volume using the zoned ID format (`{zone}/{id}`).\n\nbash\n\n```sh\n$ pulumi import scaleway:index/blockSnapshot:BlockSnapshot main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"export":{"$ref":"#/types/scaleway:index/BlockSnapshotExport:BlockSnapshotExport","description":"Use this block to export the volume as a QCOW file to Object Storage.\n"},"import":{"$ref":"#/types/scaleway:index/BlockSnapshotImport:BlockSnapshotImport","description":"Use this block to import a QCOW image from Object Storage to create a volume.\n"},"name":{"type":"string","description":"The name of the snapshot. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Scaleway Project the snapshot is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n"},"zone":{"type":"string","description":"). The zone in which the snapshot should be created.\n"}},"required":["name","projectId"],"inputProperties":{"export":{"$ref":"#/types/scaleway:index/BlockSnapshotExport:BlockSnapshotExport","description":"Use this block to export the volume as a QCOW file to Object Storage.\n"},"import":{"$ref":"#/types/scaleway:index/BlockSnapshotImport:BlockSnapshotImport","description":"Use this block to import a QCOW image from Object Storage to create a volume.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Scaleway Project the snapshot is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n"},"zone":{"type":"string","description":"). The zone in which the snapshot should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering BlockSnapshot resources.\n","properties":{"export":{"$ref":"#/types/scaleway:index/BlockSnapshotExport:BlockSnapshotExport","description":"Use this block to export the volume as a QCOW file to Object Storage.\n"},"import":{"$ref":"#/types/scaleway:index/BlockSnapshotImport:BlockSnapshotImport","description":"Use this block to import a QCOW image from Object Storage to create a volume.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Scaleway Project the snapshot is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n"},"zone":{"type":"string","description":"). The zone in which the snapshot should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/blocksnapshot.BlockSnapshot has been deprecated in favor of scaleway.block/snapshot.Snapshot"},"scaleway:index/blockVolume:BlockVolume":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.block.Volume`\" pulumi-lang-dotnet=\"`scaleway.block.Volume`\" pulumi-lang-go=\"`block.Volume`\" pulumi-lang-python=\"`block.Volume`\" pulumi-lang-yaml=\"`scaleway.block.Volume`\" pulumi-lang-java=\"`scaleway.block.Volume`\"\u003e`scaleway.block.Volume`\u003c/span\u003e resource is used to create and manage Scaleway Block Storage volumes.\n\nRefer to the Block Storage [product documentation](https://www.scaleway.com/en/docs/block-storage/) and [API documentation](https://www.scaleway.com/en/developers/api/block/) for more information.\n\n## Example Usage\n\n### Create a Block Storage volume\n\nThe following command allows you to create a Block Storage volume of 20 GB with a 5000 [IOPS](https://www.scaleway.com/en/docs/block-storage/concepts/#iops).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst blockVolume = new scaleway.block.Volume(\"block_volume\", {\n    iops: 5000,\n    name: \"some-volume-name\",\n    sizeInGb: 20,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nblock_volume = scaleway.block.Volume(\"block_volume\",\n    iops=5000,\n    name=\"some-volume-name\",\n    size_in_gb=20)\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 blockVolume = new Scaleway.Block.Volume(\"block_volume\", new()\n    {\n        Iops = 5000,\n        Name = \"some-volume-name\",\n        SizeInGb = 20,\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/block\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := block.NewVolume(ctx, \"block_volume\", \u0026block.VolumeArgs{\n\t\t\tIops:     pulumi.Int(5000),\n\t\t\tName:     pulumi.String(\"some-volume-name\"),\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\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.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\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 blockVolume = new Volume(\"blockVolume\", VolumeArgs.builder()\n            .iops(5000)\n            .name(\"some-volume-name\")\n            .sizeInGb(20)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  blockVolume:\n    type: scaleway:block:Volume\n    name: block_volume\n    properties:\n      iops: 5000\n      name: some-volume-name\n      sizeInGb: 20\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With snapshot\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst base = new scaleway.block.Volume(\"base\", {\n    name: \"block-volume-base\",\n    iops: 5000,\n    sizeInGb: 20,\n});\nconst main = new scaleway.block.Snapshot(\"main\", {\n    name: \"block-volume-from-snapshot\",\n    volumeId: base.id,\n});\nconst mainVolume = new scaleway.block.Volume(\"main\", {\n    name: \"block-volume-from-snapshot\",\n    iops: 5000,\n    snapshotId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbase = scaleway.block.Volume(\"base\",\n    name=\"block-volume-base\",\n    iops=5000,\n    size_in_gb=20)\nmain = scaleway.block.Snapshot(\"main\",\n    name=\"block-volume-from-snapshot\",\n    volume_id=base.id)\nmain_volume = scaleway.block.Volume(\"main\",\n    name=\"block-volume-from-snapshot\",\n    iops=5000,\n    snapshot_id=main.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 @base = new Scaleway.Block.Volume(\"base\", new()\n    {\n        Name = \"block-volume-base\",\n        Iops = 5000,\n        SizeInGb = 20,\n    });\n\n    var main = new Scaleway.Block.Snapshot(\"main\", new()\n    {\n        Name = \"block-volume-from-snapshot\",\n        VolumeId = @base.Id,\n    });\n\n    var mainVolume = new Scaleway.Block.Volume(\"main\", new()\n    {\n        Name = \"block-volume-from-snapshot\",\n        Iops = 5000,\n        SnapshotId = 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/block\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbase, err := block.NewVolume(ctx, \"base\", \u0026block.VolumeArgs{\n\t\t\tName:     pulumi.String(\"block-volume-base\"),\n\t\t\tIops:     pulumi.Int(5000),\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\tmain, err := block.NewSnapshot(ctx, \"main\", \u0026block.SnapshotArgs{\n\t\t\tName:     pulumi.String(\"block-volume-from-snapshot\"),\n\t\t\tVolumeId: base.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = block.NewVolume(ctx, \"main\", \u0026block.VolumeArgs{\n\t\t\tName:       pulumi.String(\"block-volume-from-snapshot\"),\n\t\t\tIops:       pulumi.Int(5000),\n\t\t\tSnapshotId: main.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.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport com.pulumi.scaleway.block.Snapshot;\nimport com.pulumi.scaleway.block.SnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var base = new Volume(\"base\", VolumeArgs.builder()\n            .name(\"block-volume-base\")\n            .iops(5000)\n            .sizeInGb(20)\n            .build());\n\n        var main = new Snapshot(\"main\", SnapshotArgs.builder()\n            .name(\"block-volume-from-snapshot\")\n            .volumeId(base.id())\n            .build());\n\n        var mainVolume = new Volume(\"mainVolume\", VolumeArgs.builder()\n            .name(\"block-volume-from-snapshot\")\n            .iops(5000)\n            .snapshotId(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  base:\n    type: scaleway:block:Volume\n    properties:\n      name: block-volume-base\n      iops: 5000\n      sizeInGb: 20\n  main:\n    type: scaleway:block:Snapshot\n    properties:\n      name: block-volume-from-snapshot\n      volumeId: ${base.id}\n  mainVolume:\n    type: scaleway:block:Volume\n    name: main\n    properties:\n      name: block-volume-from-snapshot\n      iops: 5000\n      snapshotId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import a Block Storage volume using the zoned ID (`{zone}/{id}`) format.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/blockVolume:BlockVolume block_volume fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"instanceVolumeId":{"type":"string","description":"The instance volume to create the block volume from"},"iops":{"type":"integer","description":"The maximum [IOPs](https://www.scaleway.com/en/docs/block-storage/concepts/#iops) expected, must match available options.\n"},"name":{"type":"string","description":"The name of the volume. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Project the volume is associated with.\n"},"sizeInGb":{"type":"integer","description":"The size of the volume in gigabytes.\n"},"snapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"zone":{"type":"string","description":"). The zone in which the volume should be created.\n"}},"required":["instanceVolumeId","iops","name","projectId","sizeInGb"],"inputProperties":{"instanceVolumeId":{"type":"string","description":"The instance volume to create the block volume from","willReplaceOnChanges":true},"iops":{"type":"integer","description":"The maximum [IOPs](https://www.scaleway.com/en/docs/block-storage/concepts/#iops) expected, must match available options.\n"},"name":{"type":"string","description":"The name of the volume. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Project the volume is associated with.\n","willReplaceOnChanges":true},"sizeInGb":{"type":"integer","description":"The size of the volume in gigabytes.\n"},"snapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"zone":{"type":"string","description":"). The zone in which the volume should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["iops"],"stateInputs":{"description":"Input properties used for looking up and filtering BlockVolume resources.\n","properties":{"instanceVolumeId":{"type":"string","description":"The instance volume to create the block volume from","willReplaceOnChanges":true},"iops":{"type":"integer","description":"The maximum [IOPs](https://www.scaleway.com/en/docs/block-storage/concepts/#iops) expected, must match available options.\n"},"name":{"type":"string","description":"The name of the volume. If not provided, a name will be randomly generated.\n"},"projectId":{"type":"string","description":"). The ID of the Project the volume is associated with.\n","willReplaceOnChanges":true},"sizeInGb":{"type":"integer","description":"The size of the volume in gigabytes.\n"},"snapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"zone":{"type":"string","description":"). The zone in which the volume should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/blockvolume.BlockVolume has been deprecated in favor of scaleway.block/volume.Volume"},"scaleway:index/cockpit:Cockpit":{"description":"\n\n## Import\n\nThis section explains how to import a Cockpit using its `{project_id}`.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/cockpit:Cockpit main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"endpoints":{"type":"array","items":{"$ref":"#/types/scaleway:index/CockpitEndpoint:CockpitEndpoint"},"description":"(Deprecated) A list of [endpoints](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#endpoints) related to Cockpit, each with specific URLs:\n","deprecationMessage":"Use 'scaleway_cockpit_source' instead of 'endpoints'. This field will be removed in future releases."},"plan":{"type":"string","description":"Name of the plan to use. Available plans are: free, premium, and custom.\n\u003e **Important:** The plan field is deprecated. Any modification or selection will have no effect.\n\n\u003e **Warning:** This entire resource is deprecated and will be removed after January 1st, 2025. Please migrate to the new specialized resources as described in the Cockpit Migration Guide.\n","deprecationMessage":"The 'plan' attribute is deprecated and no longer has any effect. Future updates will remove this attribute entirely."},"planId":{"type":"string","description":"(Deprecated) The ID of the current pricing plan.\n","deprecationMessage":"The 'plan_id' attribute is deprecated and will be removed in a future release."},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n"},"pushUrls":{"type":"array","items":{"$ref":"#/types/scaleway:index/CockpitPushUrl:CockpitPushUrl"},"description":"[DEPRECATED] Push_url","deprecationMessage":"Please use \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Source`\" pulumi-lang-dotnet=\"`scaleway.observability.Source`\" pulumi-lang-go=\"`observability.Source`\" pulumi-lang-python=\"`observability.Source`\" pulumi-lang-yaml=\"`scaleway.observability.Source`\" pulumi-lang-java=\"`scaleway.observability.Source`\"\u003e`scaleway.observability.Source`\u003c/span\u003e instead"}},"required":["endpoints","planId","projectId","pushUrls"],"inputProperties":{"plan":{"type":"string","description":"Name of the plan to use. Available plans are: free, premium, and custom.\n\u003e **Important:** The plan field is deprecated. Any modification or selection will have no effect.\n\n\u003e **Warning:** This entire resource is deprecated and will be removed after January 1st, 2025. Please migrate to the new specialized resources as described in the Cockpit Migration Guide.\n","deprecationMessage":"The 'plan' attribute is deprecated and no longer has any effect. Future updates will remove this attribute entirely."},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Cockpit resources.\n","properties":{"endpoints":{"type":"array","items":{"$ref":"#/types/scaleway:index/CockpitEndpoint:CockpitEndpoint"},"description":"(Deprecated) A list of [endpoints](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#endpoints) related to Cockpit, each with specific URLs:\n","deprecationMessage":"Use 'scaleway_cockpit_source' instead of 'endpoints'. This field will be removed in future releases."},"plan":{"type":"string","description":"Name of the plan to use. Available plans are: free, premium, and custom.\n\u003e **Important:** The plan field is deprecated. Any modification or selection will have no effect.\n\n\u003e **Warning:** This entire resource is deprecated and will be removed after January 1st, 2025. Please migrate to the new specialized resources as described in the Cockpit Migration Guide.\n","deprecationMessage":"The 'plan' attribute is deprecated and no longer has any effect. Future updates will remove this attribute entirely."},"planId":{"type":"string","description":"(Deprecated) The ID of the current pricing plan.\n","deprecationMessage":"The 'plan_id' attribute is deprecated and will be removed in a future release."},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"pushUrls":{"type":"array","items":{"$ref":"#/types/scaleway:index/CockpitPushUrl:CockpitPushUrl"},"description":"[DEPRECATED] Push_url","deprecationMessage":"Please use \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Source`\" pulumi-lang-dotnet=\"`scaleway.observability.Source`\" pulumi-lang-go=\"`observability.Source`\" pulumi-lang-python=\"`observability.Source`\" pulumi-lang-yaml=\"`scaleway.observability.Source`\" pulumi-lang-java=\"`scaleway.observability.Source`\"\u003e`scaleway.observability.Source`\u003c/span\u003e instead"}},"type":"object"},"deprecationMessage":"scaleway.index/cockpit.Cockpit has been deprecated in favor of scaleway.observability/cockpit.Cockpit"},"scaleway:index/cockpitAlertManager:CockpitAlertManager":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.AlertManager`\" pulumi-lang-dotnet=\"`scaleway.observability.AlertManager`\" pulumi-lang-go=\"`observability.AlertManager`\" pulumi-lang-python=\"`observability.AlertManager`\" pulumi-lang-yaml=\"`scaleway.observability.AlertManager`\" pulumi-lang-java=\"`scaleway.observability.AlertManager`\"\u003e`scaleway.observability.AlertManager`\u003c/span\u003e resource allows you to enable and manage the Scaleway Cockpit [alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).\n\nRefer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.\n\n## Example Usage\n\n### Enable preconfigured alerts (Recommended)\n\nUse preconfigured alerts to monitor your Scaleway resources with ready-to-use alert rules:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"my-observability-project\"});\nconst main = new scaleway.observability.Cockpit(\"main\", {projectId: project.id});\nconst all = scaleway.observability.getPreconfiguredAlertOutput({\n    projectId: main.projectId,\n});\nconst mainAlertManager = new scaleway.observability.AlertManager(\"main\", {\n    projectId: main.projectId,\n    preconfiguredAlertIds: all.apply(all =\u003e .filter(alert =\u003e alert.productName == \"instance\").map(alert =\u003e (alert.preconfiguredRuleId))),\n    contactPoints: [{\n        email: \"alerts@example.com\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"my-observability-project\")\nmain = scaleway.observability.Cockpit(\"main\", project_id=project.id)\nall = scaleway.observability.get_preconfigured_alert_output(project_id=main.project_id)\nmain_alert_manager = scaleway.observability.AlertManager(\"main\",\n    project_id=main.project_id,\n    preconfigured_alert_ids=all.apply(lambda all: [alert.preconfigured_rule_id for alert in all.alerts if alert.product_name == \"instance\"]),\n    contact_points=[{\n        \"email\": \"alerts@example.com\",\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"my-observability-project\",\n    });\n\n    var main = new Scaleway.Observability.Cockpit(\"main\", new()\n    {\n        ProjectId = project.Id,\n    });\n\n    var all = Scaleway.Observability.GetPreconfiguredAlert.Invoke(new()\n    {\n        ProjectId = main.ProjectId,\n    });\n\n    var mainAlertManager = new Scaleway.Observability.AlertManager(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        PreconfiguredAlertIds = .Where(alert =\u003e alert.ProductName == \"instance\").Select(alert =\u003e \n        {\n            return alert.PreconfiguredRuleId;\n        }).ToList(),\n        ContactPoints = new[]\n        {\n            new Scaleway.Observability.Inputs.AlertManagerContactPointArgs\n            {\n                Email = \"alerts@example.com\",\n            },\n        },\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable the alert manager with contact points\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"tf_test_project\"});\nconst alertManager = new scaleway.observability.AlertManager(\"alert_manager\", {\n    projectId: project.id,\n    contactPoints: [\n        {\n            email: \"alert1@example.com\",\n        },\n        {\n            email: \"alert2@example.com\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"tf_test_project\")\nalert_manager = scaleway.observability.AlertManager(\"alert_manager\",\n    project_id=project.id,\n    contact_points=[\n        {\n            \"email\": \"alert1@example.com\",\n        },\n        {\n            \"email\": \"alert2@example.com\",\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"tf_test_project\",\n    });\n\n    var alertManager = new Scaleway.Observability.AlertManager(\"alert_manager\", new()\n    {\n        ProjectId = project.Id,\n        ContactPoints = new[]\n        {\n            new Scaleway.Observability.Inputs.AlertManagerContactPointArgs\n            {\n                Email = \"alert1@example.com\",\n            },\n            new Scaleway.Observability.Inputs.AlertManagerContactPointArgs\n            {\n                Email = \"alert2@example.com\",\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.NewProject(ctx, \"project\", \u0026account.ProjectArgs{\n\t\t\tName: pulumi.String(\"tf_test_project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = observability.NewAlertManager(ctx, \"alert_manager\", \u0026observability.AlertManagerArgs{\n\t\t\tProjectId: project.ID(),\n\t\t\tContactPoints: observability.AlertManagerContactPointArray{\n\t\t\t\t\u0026observability.AlertManagerContactPointArgs{\n\t\t\t\t\tEmail: pulumi.String(\"alert1@example.com\"),\n\t\t\t\t},\n\t\t\t\t\u0026observability.AlertManagerContactPointArgs{\n\t\t\t\t\tEmail: pulumi.String(\"alert2@example.com\"),\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.account.Project;\nimport com.pulumi.scaleway.account.ProjectArgs;\nimport com.pulumi.scaleway.observability.AlertManager;\nimport com.pulumi.scaleway.observability.AlertManagerArgs;\nimport com.pulumi.scaleway.observability.inputs.AlertManagerContactPointArgs;\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 project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"tf_test_project\")\n            .build());\n\n        var alertManager = new AlertManager(\"alertManager\", AlertManagerArgs.builder()\n            .projectId(project.id())\n            .contactPoints(            \n                AlertManagerContactPointArgs.builder()\n                    .email(\"alert1@example.com\")\n                    .build(),\n                AlertManagerContactPointArgs.builder()\n                    .email(\"alert2@example.com\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: scaleway:account:Project\n    properties:\n      name: tf_test_project\n  alertManager:\n    type: scaleway:observability:AlertManager\n    name: alert_manager\n    properties:\n      projectId: ${project.id}\n      contactPoints:\n        - email: alert1@example.com\n        - email: alert2@example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Legacy: Enable managed alerts (Deprecated)\n\n\u003e **Deprecated:** The \u003cspan pulumi-lang-nodejs=\"`enableManagedAlerts`\" pulumi-lang-dotnet=\"`EnableManagedAlerts`\" pulumi-lang-go=\"`enableManagedAlerts`\" pulumi-lang-python=\"`enable_managed_alerts`\" pulumi-lang-yaml=\"`enableManagedAlerts`\" pulumi-lang-java=\"`enableManagedAlerts`\"\u003e`enable_managed_alerts`\u003c/span\u003e field is deprecated. Use \u003cspan pulumi-lang-nodejs=\"`preconfiguredAlertIds`\" pulumi-lang-dotnet=\"`PreconfiguredAlertIds`\" pulumi-lang-go=\"`preconfiguredAlertIds`\" pulumi-lang-python=\"`preconfigured_alert_ids`\" pulumi-lang-yaml=\"`preconfiguredAlertIds`\" pulumi-lang-java=\"`preconfiguredAlertIds`\"\u003e`preconfigured_alert_ids`\u003c/span\u003e instead.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"tf_test_project\"});\nconst alertManager = new scaleway.observability.AlertManager(\"alert_manager\", {\n    projectId: project.id,\n    enableManagedAlerts: true,\n    contactPoints: [{\n        email: \"alert@example.com\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"tf_test_project\")\nalert_manager = scaleway.observability.AlertManager(\"alert_manager\",\n    project_id=project.id,\n    enable_managed_alerts=True,\n    contact_points=[{\n        \"email\": \"alert@example.com\",\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"tf_test_project\",\n    });\n\n    var alertManager = new Scaleway.Observability.AlertManager(\"alert_manager\", new()\n    {\n        ProjectId = project.Id,\n        EnableManagedAlerts = true,\n        ContactPoints = new[]\n        {\n            new Scaleway.Observability.Inputs.AlertManagerContactPointArgs\n            {\n                Email = \"alert@example.com\",\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.NewProject(ctx, \"project\", \u0026account.ProjectArgs{\n\t\t\tName: pulumi.String(\"tf_test_project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = observability.NewAlertManager(ctx, \"alert_manager\", \u0026observability.AlertManagerArgs{\n\t\t\tProjectId:           project.ID(),\n\t\t\tEnableManagedAlerts: pulumi.Bool(true),\n\t\t\tContactPoints: observability.AlertManagerContactPointArray{\n\t\t\t\t\u0026observability.AlertManagerContactPointArgs{\n\t\t\t\t\tEmail: pulumi.String(\"alert@example.com\"),\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.account.Project;\nimport com.pulumi.scaleway.account.ProjectArgs;\nimport com.pulumi.scaleway.observability.AlertManager;\nimport com.pulumi.scaleway.observability.AlertManagerArgs;\nimport com.pulumi.scaleway.observability.inputs.AlertManagerContactPointArgs;\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 project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"tf_test_project\")\n            .build());\n\n        var alertManager = new AlertManager(\"alertManager\", AlertManagerArgs.builder()\n            .projectId(project.id())\n            .enableManagedAlerts(true)\n            .contactPoints(AlertManagerContactPointArgs.builder()\n                .email(\"alert@example.com\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: scaleway:account:Project\n    properties:\n      name: tf_test_project\n  alertManager:\n    type: scaleway:observability:AlertManager\n    name: alert_manager\n    properties:\n      projectId: ${project.id}\n      enableManagedAlerts: true\n      contactPoints:\n        - email: alert@example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import alert managers using the ID of the Project associated with Cockpit.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/cockpitAlertManager:CockpitAlertManager main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"alertManagerUrl":{"type":"string","description":"The URL of the alert manager.\n"},"contactPoints":{"type":"array","items":{"$ref":"#/types/scaleway:index/CockpitAlertManagerContactPoint:CockpitAlertManagerContactPoint"},"description":"A list of contact points with email addresses that will receive alerts. Each map should contain a single key \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e.\n"},"enableManagedAlerts":{"type":"boolean","description":"**Deprecated** (Optional, Boolean) Use \u003cspan pulumi-lang-nodejs=\"`preconfiguredAlertIds`\" pulumi-lang-dotnet=\"`PreconfiguredAlertIds`\" pulumi-lang-go=\"`preconfiguredAlertIds`\" pulumi-lang-python=\"`preconfigured_alert_ids`\" pulumi-lang-yaml=\"`preconfiguredAlertIds`\" pulumi-lang-java=\"`preconfiguredAlertIds`\"\u003e`preconfigured_alert_ids`\u003c/span\u003e instead. This field will be removed in a future version. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, it enables *all* preconfigured alerts for the project. You cannot filter or disable individual alerts with this legacy flag.\n","deprecationMessage":"Use 'preconfigured_alert_ids' instead. This field will be removed in a future version."},"preconfiguredAlertIds":{"type":"array","items":{"type":"string"},"description":"A set of preconfigured alert rule IDs to enable explicitly. Use the \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-dotnet=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-go=\"`observability.getPreconfiguredAlert`\" pulumi-lang-python=\"`observability_get_preconfigured_alert`\" pulumi-lang-yaml=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-java=\"`scaleway.observability.getPreconfiguredAlert`\"\u003e`scaleway.observability.getPreconfiguredAlert`\u003c/span\u003e data source to list available alerts.\n"},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n"},"region":{"type":"string","description":") The region where the [alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager) should be enabled.\n"}},"required":["alertManagerUrl","enableManagedAlerts","projectId"],"inputProperties":{"contactPoints":{"type":"array","items":{"$ref":"#/types/scaleway:index/CockpitAlertManagerContactPoint:CockpitAlertManagerContactPoint"},"description":"A list of contact points with email addresses that will receive alerts. Each map should contain a single key \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e.\n"},"enableManagedAlerts":{"type":"boolean","description":"**Deprecated** (Optional, Boolean) Use \u003cspan pulumi-lang-nodejs=\"`preconfiguredAlertIds`\" pulumi-lang-dotnet=\"`PreconfiguredAlertIds`\" pulumi-lang-go=\"`preconfiguredAlertIds`\" pulumi-lang-python=\"`preconfigured_alert_ids`\" pulumi-lang-yaml=\"`preconfiguredAlertIds`\" pulumi-lang-java=\"`preconfiguredAlertIds`\"\u003e`preconfigured_alert_ids`\u003c/span\u003e instead. This field will be removed in a future version. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, it enables *all* preconfigured alerts for the project. You cannot filter or disable individual alerts with this legacy flag.\n","deprecationMessage":"Use 'preconfigured_alert_ids' instead. This field will be removed in a future version."},"preconfiguredAlertIds":{"type":"array","items":{"type":"string"},"description":"A set of preconfigured alert rule IDs to enable explicitly. Use the \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-dotnet=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-go=\"`observability.getPreconfiguredAlert`\" pulumi-lang-python=\"`observability_get_preconfigured_alert`\" pulumi-lang-yaml=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-java=\"`scaleway.observability.getPreconfiguredAlert`\"\u003e`scaleway.observability.getPreconfiguredAlert`\u003c/span\u003e data source to list available alerts.\n"},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":") The region where the [alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager) should be enabled.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering CockpitAlertManager resources.\n","properties":{"alertManagerUrl":{"type":"string","description":"The URL of the alert manager.\n"},"contactPoints":{"type":"array","items":{"$ref":"#/types/scaleway:index/CockpitAlertManagerContactPoint:CockpitAlertManagerContactPoint"},"description":"A list of contact points with email addresses that will receive alerts. Each map should contain a single key \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e.\n"},"enableManagedAlerts":{"type":"boolean","description":"**Deprecated** (Optional, Boolean) Use \u003cspan pulumi-lang-nodejs=\"`preconfiguredAlertIds`\" pulumi-lang-dotnet=\"`PreconfiguredAlertIds`\" pulumi-lang-go=\"`preconfiguredAlertIds`\" pulumi-lang-python=\"`preconfigured_alert_ids`\" pulumi-lang-yaml=\"`preconfiguredAlertIds`\" pulumi-lang-java=\"`preconfiguredAlertIds`\"\u003e`preconfigured_alert_ids`\u003c/span\u003e instead. This field will be removed in a future version. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, it enables *all* preconfigured alerts for the project. You cannot filter or disable individual alerts with this legacy flag.\n","deprecationMessage":"Use 'preconfigured_alert_ids' instead. This field will be removed in a future version."},"preconfiguredAlertIds":{"type":"array","items":{"type":"string"},"description":"A set of preconfigured alert rule IDs to enable explicitly. Use the \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-dotnet=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-go=\"`observability.getPreconfiguredAlert`\" pulumi-lang-python=\"`observability_get_preconfigured_alert`\" pulumi-lang-yaml=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-java=\"`scaleway.observability.getPreconfiguredAlert`\"\u003e`scaleway.observability.getPreconfiguredAlert`\u003c/span\u003e data source to list available alerts.\n"},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":") The region where the [alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager) should be enabled.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/cockpitalertmanager.CockpitAlertManager has been deprecated in favor of scaleway.observability/alertmanager.AlertManager"},"scaleway:index/cockpitGrafanaUser:CockpitGrafanaUser":{"description":"\n\n## Import\n\nThis section explains how to import Grafana users using the ID of the Project associated with Cockpit, and the Grafana user ID in the `{project_id}/{grafana_user_id}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/cockpitGrafanaUser:CockpitGrafanaUser main 11111111-1111-1111-1111-111111111111/2\n```\n\n","properties":{"grafanaUrl":{"type":"string","description":"URL for Grafana.\n"},"login":{"type":"string","description":"The username of the Grafana user. The \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.\n"},"password":{"type":"string","description":"The password of the Grafana user.\n","secret":true},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n"},"role":{"type":"string","description":"The role assigned to the Grafana user. Must be \u003cspan pulumi-lang-nodejs=\"`editor`\" pulumi-lang-dotnet=\"`Editor`\" pulumi-lang-go=\"`editor`\" pulumi-lang-python=\"`editor`\" pulumi-lang-yaml=\"`editor`\" pulumi-lang-java=\"`editor`\"\u003e`editor`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`viewer`\" pulumi-lang-dotnet=\"`Viewer`\" pulumi-lang-go=\"`viewer`\" pulumi-lang-python=\"`viewer`\" pulumi-lang-yaml=\"`viewer`\" pulumi-lang-java=\"`viewer`\"\u003e`viewer`\u003c/span\u003e.\n"}},"required":["grafanaUrl","login","password","projectId","role"],"inputProperties":{"login":{"type":"string","description":"The username of the Grafana user. The \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"role":{"type":"string","description":"The role assigned to the Grafana user. Must be \u003cspan pulumi-lang-nodejs=\"`editor`\" pulumi-lang-dotnet=\"`Editor`\" pulumi-lang-go=\"`editor`\" pulumi-lang-python=\"`editor`\" pulumi-lang-yaml=\"`editor`\" pulumi-lang-java=\"`editor`\"\u003e`editor`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`viewer`\" pulumi-lang-dotnet=\"`Viewer`\" pulumi-lang-go=\"`viewer`\" pulumi-lang-python=\"`viewer`\" pulumi-lang-yaml=\"`viewer`\" pulumi-lang-java=\"`viewer`\"\u003e`viewer`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["login","role"],"stateInputs":{"description":"Input properties used for looking up and filtering CockpitGrafanaUser resources.\n","properties":{"grafanaUrl":{"type":"string","description":"URL for Grafana.\n"},"login":{"type":"string","description":"The username of the Grafana user. The \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the Grafana user.\n","secret":true},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"role":{"type":"string","description":"The role assigned to the Grafana user. Must be \u003cspan pulumi-lang-nodejs=\"`editor`\" pulumi-lang-dotnet=\"`Editor`\" pulumi-lang-go=\"`editor`\" pulumi-lang-python=\"`editor`\" pulumi-lang-yaml=\"`editor`\" pulumi-lang-java=\"`editor`\"\u003e`editor`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`viewer`\" pulumi-lang-dotnet=\"`Viewer`\" pulumi-lang-go=\"`viewer`\" pulumi-lang-python=\"`viewer`\" pulumi-lang-yaml=\"`viewer`\" pulumi-lang-java=\"`viewer`\"\u003e`viewer`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/cockpitgrafanauser.CockpitGrafanaUser has been deprecated in favor of scaleway.observability/grafanauser.GrafanaUser"},"scaleway:index/cockpitSource:CockpitSource":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Source`\" pulumi-lang-dotnet=\"`scaleway.observability.Source`\" pulumi-lang-go=\"`observability.Source`\" pulumi-lang-python=\"`observability.Source`\" pulumi-lang-yaml=\"`scaleway.observability.Source`\" pulumi-lang-java=\"`scaleway.observability.Source`\"\u003e`scaleway.observability.Source`\u003c/span\u003e resource allows you to create and manage [data sources](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-sources) in Scaleway's Cockpit.\n\nRefer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.\n\n## Example Usage\n\n### Create a data source\n\nThe following command allows you to create a [metrics](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#metric) data source named `my-data-source` in a given Project.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"test project data source\"});\nconst main = new scaleway.observability.Source(\"main\", {\n    projectId: project.id,\n    name: \"my-data-source\",\n    type: \"metrics\",\n    retentionDays: 6,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"test project data source\")\nmain = scaleway.observability.Source(\"main\",\n    project_id=project.id,\n    name=\"my-data-source\",\n    type=\"metrics\",\n    retention_days=6)\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"test project data source\",\n    });\n\n    var main = new Scaleway.Observability.Source(\"main\", new()\n    {\n        ProjectId = project.Id,\n        Name = \"my-data-source\",\n        Type = \"metrics\",\n        RetentionDays = 6,\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.NewProject(ctx, \"project\", \u0026account.ProjectArgs{\n\t\t\tName: pulumi.String(\"test project data source\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = observability.NewSource(ctx, \"main\", \u0026observability.SourceArgs{\n\t\t\tProjectId:     project.ID(),\n\t\t\tName:          pulumi.String(\"my-data-source\"),\n\t\t\tType:          pulumi.String(\"metrics\"),\n\t\t\tRetentionDays: pulumi.Int(6),\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.account.Project;\nimport com.pulumi.scaleway.account.ProjectArgs;\nimport com.pulumi.scaleway.observability.Source;\nimport com.pulumi.scaleway.observability.SourceArgs;\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 project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"test project data source\")\n            .build());\n\n        var main = new Source(\"main\", SourceArgs.builder()\n            .projectId(project.id())\n            .name(\"my-data-source\")\n            .type(\"metrics\")\n            .retentionDays(6)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: scaleway:account:Project\n    properties:\n      name: test project data source\n  main:\n    type: scaleway:observability:Source\n    properties:\n      projectId: ${project.id}\n      name: my-data-source\n      type: metrics\n      retentionDays: 6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import a data source using the ID of the region it is located in, in the `{region}/{id}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/cockpitSource:CockpitSource main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time the data source was created (in RFC 3339 format).\n"},"name":{"type":"string","description":"The name of the data source.\n"},"origin":{"type":"string","description":"The origin of the Cockpit data source.\n"},"projectId":{"type":"string","description":") The ID of the Project the data source is associated with.\n"},"pushUrl":{"type":"string","description":"The URL endpoint used for pushing data to the Cockpit data source.\n"},"region":{"type":"string","description":") The region where the data source is located.\n"},"retentionDays":{"type":"integer","description":"The number of days to retain data in the data source. Must be a value between 1 and 365. For more details on retention policies, please refer to the [Scaleway Retention Documentation](https://www.scaleway.com/en/docs/cockpit/concepts/#retention). Note: Changes to this field will force the creation of a new resource.\n"},"synchronizedWithGrafana":{"type":"boolean","description":"Indicates whether the data source is synchronized with Grafana.\n"},"type":{"type":"string","description":"The [type](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-types) of data source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logs`\" pulumi-lang-dotnet=\"`Logs`\" pulumi-lang-go=\"`logs`\" pulumi-lang-python=\"`logs`\" pulumi-lang-yaml=\"`logs`\" pulumi-lang-java=\"`logs`\"\u003e`logs`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`traces`\" pulumi-lang-dotnet=\"`Traces`\" pulumi-lang-go=\"`traces`\" pulumi-lang-python=\"`traces`\" pulumi-lang-yaml=\"`traces`\" pulumi-lang-java=\"`traces`\"\u003e`traces`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"The date and time the data source was last updated (in RFC 3339 format).\n"},"url":{"type":"string","description":"The URL of the Cockpit data source.\n"}},"required":["createdAt","name","origin","projectId","pushUrl","retentionDays","synchronizedWithGrafana","updatedAt","url"],"inputProperties":{"name":{"type":"string","description":"The name of the data source.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":") The ID of the Project the data source is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":") The region where the data source is located.\n","willReplaceOnChanges":true},"retentionDays":{"type":"integer","description":"The number of days to retain data in the data source. Must be a value between 1 and 365. For more details on retention policies, please refer to the [Scaleway Retention Documentation](https://www.scaleway.com/en/docs/cockpit/concepts/#retention). Note: Changes to this field will force the creation of a new resource.\n"},"type":{"type":"string","description":"The [type](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-types) of data source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logs`\" pulumi-lang-dotnet=\"`Logs`\" pulumi-lang-go=\"`logs`\" pulumi-lang-python=\"`logs`\" pulumi-lang-yaml=\"`logs`\" pulumi-lang-java=\"`logs`\"\u003e`logs`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`traces`\" pulumi-lang-dotnet=\"`Traces`\" pulumi-lang-go=\"`traces`\" pulumi-lang-python=\"`traces`\" pulumi-lang-yaml=\"`traces`\" pulumi-lang-java=\"`traces`\"\u003e`traces`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["retentionDays"],"stateInputs":{"description":"Input properties used for looking up and filtering CockpitSource resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time the data source was created (in RFC 3339 format).\n"},"name":{"type":"string","description":"The name of the data source.\n","willReplaceOnChanges":true},"origin":{"type":"string","description":"The origin of the Cockpit data source.\n"},"projectId":{"type":"string","description":") The ID of the Project the data source is associated with.\n","willReplaceOnChanges":true},"pushUrl":{"type":"string","description":"The URL endpoint used for pushing data to the Cockpit data source.\n"},"region":{"type":"string","description":") The region where the data source is located.\n","willReplaceOnChanges":true},"retentionDays":{"type":"integer","description":"The number of days to retain data in the data source. Must be a value between 1 and 365. For more details on retention policies, please refer to the [Scaleway Retention Documentation](https://www.scaleway.com/en/docs/cockpit/concepts/#retention). Note: Changes to this field will force the creation of a new resource.\n"},"synchronizedWithGrafana":{"type":"boolean","description":"Indicates whether the data source is synchronized with Grafana.\n"},"type":{"type":"string","description":"The [type](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-types) of data source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logs`\" pulumi-lang-dotnet=\"`Logs`\" pulumi-lang-go=\"`logs`\" pulumi-lang-python=\"`logs`\" pulumi-lang-yaml=\"`logs`\" pulumi-lang-java=\"`logs`\"\u003e`logs`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`traces`\" pulumi-lang-dotnet=\"`Traces`\" pulumi-lang-go=\"`traces`\" pulumi-lang-python=\"`traces`\" pulumi-lang-yaml=\"`traces`\" pulumi-lang-java=\"`traces`\"\u003e`traces`\u003c/span\u003e.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time the data source was last updated (in RFC 3339 format).\n"},"url":{"type":"string","description":"The URL of the Cockpit data source.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/cockpitsource.CockpitSource has been deprecated in favor of scaleway.observability/source.Source"},"scaleway:index/cockpitToken:CockpitToken":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Token`\" pulumi-lang-dotnet=\"`scaleway.observability.Token`\" pulumi-lang-go=\"`observability.Token`\" pulumi-lang-python=\"`observability.Token`\" pulumi-lang-yaml=\"`scaleway.observability.Token`\" pulumi-lang-java=\"`scaleway.observability.Token`\"\u003e`scaleway.observability.Token`\u003c/span\u003e resource allows you to create and manage your Cockpit [tokens](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#tokens).\n\nRefer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.\n\n## Example Usage\n\n### Use a Cockpit token\n\nThe following commands allow you to:\n\n- create a Scaleway Project named `my-project`\n- create a Cockpit token named `my-awesome-token` inside the Project\n- assign \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e permissions to the token for metrics and logs\n- disable \u003cspan pulumi-lang-nodejs=\"`write`\" pulumi-lang-dotnet=\"`Write`\" pulumi-lang-go=\"`write`\" pulumi-lang-python=\"`write`\" pulumi-lang-yaml=\"`write`\" pulumi-lang-java=\"`write`\"\u003e`write`\u003c/span\u003e permissions for metrics and logs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"my-project\"});\nconst main = new scaleway.observability.Token(\"main\", {\n    projectId: project.id,\n    name: \"my-awesome-token\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"my-project\")\nmain = scaleway.observability.Token(\"main\",\n    project_id=project.id,\n    name=\"my-awesome-token\")\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"my-project\",\n    });\n\n    var main = new Scaleway.Observability.Token(\"main\", new()\n    {\n        ProjectId = project.Id,\n        Name = \"my-awesome-token\",\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.NewProject(ctx, \"project\", \u0026account.ProjectArgs{\n\t\t\tName: pulumi.String(\"my-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = observability.NewToken(ctx, \"main\", \u0026observability.TokenArgs{\n\t\t\tProjectId: project.ID(),\n\t\t\tName:      pulumi.String(\"my-awesome-token\"),\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.account.Project;\nimport com.pulumi.scaleway.account.ProjectArgs;\nimport com.pulumi.scaleway.observability.Token;\nimport com.pulumi.scaleway.observability.TokenArgs;\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 project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"my-project\")\n            .build());\n\n        var main = new Token(\"main\", TokenArgs.builder()\n            .projectId(project.id())\n            .name(\"my-awesome-token\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: scaleway:account:Project\n    properties:\n      name: my-project\n  main:\n    type: scaleway:observability:Token\n    properties:\n      projectId: ${project.id}\n      name: my-awesome-token\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"my-project\"});\n// Create a token that can read metrics and logs but not write\nconst main = new scaleway.observability.Token(\"main\", {\n    projectId: project.id,\n    name: \"my-awesome-token\",\n    scopes: {\n        queryMetrics: true,\n        writeMetrics: false,\n        queryLogs: true,\n        writeLogs: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"my-project\")\n# Create a token that can read metrics and logs but not write\nmain = scaleway.observability.Token(\"main\",\n    project_id=project.id,\n    name=\"my-awesome-token\",\n    scopes={\n        \"query_metrics\": True,\n        \"write_metrics\": False,\n        \"query_logs\": True,\n        \"write_logs\": False,\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"my-project\",\n    });\n\n    // Create a token that can read metrics and logs but not write\n    var main = new Scaleway.Observability.Token(\"main\", new()\n    {\n        ProjectId = project.Id,\n        Name = \"my-awesome-token\",\n        Scopes = new Scaleway.Observability.Inputs.TokenScopesArgs\n        {\n            QueryMetrics = true,\n            WriteMetrics = false,\n            QueryLogs = true,\n            WriteLogs = false,\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.NewProject(ctx, \"project\", \u0026account.ProjectArgs{\n\t\t\tName: pulumi.String(\"my-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a token that can read metrics and logs but not write\n\t\t_, err = observability.NewToken(ctx, \"main\", \u0026observability.TokenArgs{\n\t\t\tProjectId: project.ID(),\n\t\t\tName:      pulumi.String(\"my-awesome-token\"),\n\t\t\tScopes: \u0026observability.TokenScopesArgs{\n\t\t\t\tQueryMetrics: pulumi.Bool(true),\n\t\t\t\tWriteMetrics: pulumi.Bool(false),\n\t\t\t\tQueryLogs:    pulumi.Bool(true),\n\t\t\t\tWriteLogs:    pulumi.Bool(false),\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.account.Project;\nimport com.pulumi.scaleway.account.ProjectArgs;\nimport com.pulumi.scaleway.observability.Token;\nimport com.pulumi.scaleway.observability.TokenArgs;\nimport com.pulumi.scaleway.observability.inputs.TokenScopesArgs;\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 project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"my-project\")\n            .build());\n\n        // Create a token that can read metrics and logs but not write\n        var main = new Token(\"main\", TokenArgs.builder()\n            .projectId(project.id())\n            .name(\"my-awesome-token\")\n            .scopes(TokenScopesArgs.builder()\n                .queryMetrics(true)\n                .writeMetrics(false)\n                .queryLogs(true)\n                .writeLogs(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: scaleway:account:Project\n    properties:\n      name: my-project\n  # Create a token that can read metrics and logs but not write\n  main:\n    type: scaleway:observability:Token\n    properties:\n      projectId: ${project.id}\n      name: my-awesome-token\n      scopes:\n        queryMetrics: true\n        writeMetrics: false\n        queryLogs: true\n        writeLogs: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import a Cockpit token using the `{region}/{id}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/cockpitToken:CockpitToken main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the Cockpit Token (Format ISO 8601)"},"name":{"type":"string","description":"The name of the token.\n"},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n"},"region":{"type":"string","description":") The region where the Cockpit token is located.\n"},"scopes":{"$ref":"#/types/scaleway:index/CockpitTokenScopes:CockpitTokenScopes","description":"Scopes allowed, each with default values:\n"},"secretKey":{"type":"string","description":"The secret key of the token.\n","secret":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the Cockpit Token (Format ISO 8601)"}},"required":["createdAt","name","projectId","scopes","secretKey","updatedAt"],"inputProperties":{"name":{"type":"string","description":"The name of the token.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":") The region where the Cockpit token is located.\n","willReplaceOnChanges":true},"scopes":{"$ref":"#/types/scaleway:index/CockpitTokenScopes:CockpitTokenScopes","description":"Scopes allowed, each with default values:\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering CockpitToken resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the Cockpit Token (Format ISO 8601)"},"name":{"type":"string","description":"The name of the token.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":") The region where the Cockpit token is located.\n","willReplaceOnChanges":true},"scopes":{"$ref":"#/types/scaleway:index/CockpitTokenScopes:CockpitTokenScopes","description":"Scopes allowed, each with default values:\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret key of the token.\n","secret":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the Cockpit Token (Format ISO 8601)"}},"type":"object"},"deprecationMessage":"scaleway.index/cockpittoken.CockpitToken has been deprecated in favor of scaleway.observability/token.Token"},"scaleway:index/container:Container":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Container`\" pulumi-lang-dotnet=\"`scaleway.containers.Container`\" pulumi-lang-go=\"`containers.Container`\" pulumi-lang-python=\"`containers.Container`\" pulumi-lang-yaml=\"`scaleway.containers.Container`\" pulumi-lang-java=\"`scaleway.containers.Container`\"\u003e`scaleway.containers.Container`\u003c/span\u003e resource allows you to create and manage [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Serverless Containers [product documentation](https://www.scaleway.com/en/docs/serverless/containers/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/) for more information.\n\nFor more information on the limitations of Serverless Containers, refer to the [dedicated documentation](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/).\n\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.containers.Namespace(\"main\", {\n    name: \"my-ns-test\",\n    description: \"test container\",\n});\nconst mainContainer = new scaleway.containers.Container(\"main\", {\n    name: \"my-container-02\",\n    description: \"environment variables test\",\n    tags: [\n        \"tag1\",\n        \"tag2\",\n    ],\n    namespaceId: main.id,\n    registryImage: pulumi.interpolate`${main.registryEndpoint}/alpine:test`,\n    port: 9997,\n    cpuLimit: 1024,\n    memoryLimit: 2048,\n    minScale: 3,\n    maxScale: 5,\n    timeout: 600,\n    maxConcurrency: 80,\n    privacy: \"private\",\n    protocol: \"http1\",\n    deploy: true,\n    commands: [\n        \"bash\",\n        \"-c\",\n        \"script.sh\",\n    ],\n    args: [\n        \"some\",\n        \"args\",\n    ],\n    environmentVariables: {\n        foo: \"var\",\n    },\n    secretEnvironmentVariables: {\n        key: \"secret\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\",\n    name=\"my-ns-test\",\n    description=\"test container\")\nmain_container = scaleway.containers.Container(\"main\",\n    name=\"my-container-02\",\n    description=\"environment variables test\",\n    tags=[\n        \"tag1\",\n        \"tag2\",\n    ],\n    namespace_id=main.id,\n    registry_image=main.registry_endpoint.apply(lambda registry_endpoint: f\"{registry_endpoint}/alpine:test\"),\n    port=9997,\n    cpu_limit=1024,\n    memory_limit=2048,\n    min_scale=3,\n    max_scale=5,\n    timeout=600,\n    max_concurrency=80,\n    privacy=\"private\",\n    protocol=\"http1\",\n    deploy=True,\n    commands=[\n        \"bash\",\n        \"-c\",\n        \"script.sh\",\n    ],\n    args=[\n        \"some\",\n        \"args\",\n    ],\n    environment_variables={\n        \"foo\": \"var\",\n    },\n    secret_environment_variables={\n        \"key\": \"secret\",\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.Containers.Namespace(\"main\", new()\n    {\n        Name = \"my-ns-test\",\n        Description = \"test container\",\n    });\n\n    var mainContainer = new Scaleway.Containers.Container(\"main\", new()\n    {\n        Name = \"my-container-02\",\n        Description = \"environment variables test\",\n        Tags = new[]\n        {\n            \"tag1\",\n            \"tag2\",\n        },\n        NamespaceId = main.Id,\n        RegistryImage = main.RegistryEndpoint.Apply(registryEndpoint =\u003e $\"{registryEndpoint}/alpine:test\"),\n        Port = 9997,\n        CpuLimit = 1024,\n        MemoryLimit = 2048,\n        MinScale = 3,\n        MaxScale = 5,\n        Timeout = 600,\n        MaxConcurrency = 80,\n        Privacy = \"private\",\n        Protocol = \"http1\",\n        Deploy = true,\n        Commands = new[]\n        {\n            \"bash\",\n            \"-c\",\n            \"script.sh\",\n        },\n        Args = new[]\n        {\n            \"some\",\n            \"args\",\n        },\n        EnvironmentVariables = \n        {\n            { \"foo\", \"var\" },\n        },\n        SecretEnvironmentVariables = \n        {\n            { \"key\", \"secret\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := containers.NewNamespace(ctx, \"main\", \u0026containers.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"my-ns-test\"),\n\t\t\tDescription: pulumi.String(\"test container\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"my-container-02\"),\n\t\t\tDescription: pulumi.String(\"environment variables test\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tag1\"),\n\t\t\t\tpulumi.String(\"tag2\"),\n\t\t\t},\n\t\t\tNamespaceId: main.ID(),\n\t\t\tRegistryImage: main.RegistryEndpoint.ApplyT(func(registryEndpoint string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/alpine:test\", registryEndpoint), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tPort:           pulumi.Int(9997),\n\t\t\tCpuLimit:       pulumi.Int(1024),\n\t\t\tMemoryLimit:    pulumi.Int(2048),\n\t\t\tMinScale:       pulumi.Int(3),\n\t\t\tMaxScale:       pulumi.Int(5),\n\t\t\tTimeout:        pulumi.Int(600),\n\t\t\tMaxConcurrency: pulumi.Int(80),\n\t\t\tPrivacy:        pulumi.String(\"private\"),\n\t\t\tProtocol:       pulumi.String(\"http1\"),\n\t\t\tDeploy:         pulumi.Bool(true),\n\t\t\tCommands: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"bash\"),\n\t\t\t\tpulumi.String(\"-c\"),\n\t\t\t\tpulumi.String(\"script.sh\"),\n\t\t\t},\n\t\t\tArgs: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"some\"),\n\t\t\t\tpulumi.String(\"args\"),\n\t\t\t},\n\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"var\"),\n\t\t\t},\n\t\t\tSecretEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"secret\"),\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.containers.Namespace;\nimport com.pulumi.scaleway.containers.NamespaceArgs;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"my-ns-test\")\n            .description(\"test container\")\n            .build());\n\n        var mainContainer = new Container(\"mainContainer\", ContainerArgs.builder()\n            .name(\"my-container-02\")\n            .description(\"environment variables test\")\n            .tags(            \n                \"tag1\",\n                \"tag2\")\n            .namespaceId(main.id())\n            .registryImage(main.registryEndpoint().applyValue(_registryEndpoint -\u003e String.format(\"%s/alpine:test\", _registryEndpoint)))\n            .port(9997)\n            .cpuLimit(1024)\n            .memoryLimit(2048)\n            .minScale(3)\n            .maxScale(5)\n            .timeout(600)\n            .maxConcurrency(80)\n            .privacy(\"private\")\n            .protocol(\"http1\")\n            .deploy(true)\n            .commands(            \n                \"bash\",\n                \"-c\",\n                \"script.sh\")\n            .args(            \n                \"some\",\n                \"args\")\n            .environmentVariables(Map.of(\"foo\", \"var\"))\n            .secretEnvironmentVariables(Map.of(\"key\", \"secret\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n    properties:\n      name: my-ns-test\n      description: test container\n  mainContainer:\n    type: scaleway:containers:Container\n    name: main\n    properties:\n      name: my-container-02\n      description: environment variables test\n      tags:\n        - tag1\n        - tag2\n      namespaceId: ${main.id}\n      registryImage: ${main.registryEndpoint}/alpine:test\n      port: 9997\n      cpuLimit: 1024\n      memoryLimit: 2048\n      minScale: 3\n      maxScale: 5\n      timeout: 600\n      maxConcurrency: 80\n      privacy: private\n      protocol: http1\n      deploy: true\n      commands:\n        - bash\n        - -c\n        - script.sh\n      args:\n        - some\n        - args\n      environmentVariables:\n        foo: var\n      secretEnvironmentVariables:\n        key: secret\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Project to be referenced in the IAM policy\nconst _default = scaleway.account.getProject({\n    name: \"default\",\n});\n// IAM resources\nconst containerAuth = new scaleway.iam.Application(\"container_auth\", {name: \"container-auth\"});\nconst accessPrivateContainers = new scaleway.iam.Policy(\"access_private_containers\", {\n    applicationId: containerAuth.id,\n    rules: [{\n        projectIds: [_default.then(_default =\u003e _default.id)],\n        permissionSetNames: [\"ContainersPrivateAccess\"],\n    }],\n});\nconst apiKey = new scaleway.iam.ApiKey(\"api_key\", {applicationId: containerAuth.id});\n// Container resources\nconst _private = new scaleway.containers.Namespace(\"private\", {name: \"private-container-namespace\"});\nconst privateContainer = new scaleway.containers.Container(\"private\", {\n    namespaceId: _private.id,\n    registryImage: \"rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\",\n    privacy: \"private\",\n    deploy: true,\n});\nexport const secretKey = apiKey.secretKey;\nexport const containerEndpoint = privateContainer.domainName;\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Project to be referenced in the IAM policy\ndefault = scaleway.account.get_project(name=\"default\")\n# IAM resources\ncontainer_auth = scaleway.iam.Application(\"container_auth\", name=\"container-auth\")\naccess_private_containers = scaleway.iam.Policy(\"access_private_containers\",\n    application_id=container_auth.id,\n    rules=[{\n        \"project_ids\": [default.id],\n        \"permission_set_names\": [\"ContainersPrivateAccess\"],\n    }])\napi_key = scaleway.iam.ApiKey(\"api_key\", application_id=container_auth.id)\n# Container resources\nprivate = scaleway.containers.Namespace(\"private\", name=\"private-container-namespace\")\nprivate_container = scaleway.containers.Container(\"private\",\n    namespace_id=private.id,\n    registry_image=\"rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\",\n    privacy=\"private\",\n    deploy=True)\npulumi.export(\"secretKey\", api_key.secret_key)\npulumi.export(\"containerEndpoint\", private_container.domain_name)\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    // Project to be referenced in the IAM policy\n    var @default = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    // IAM resources\n    var containerAuth = new Scaleway.Iam.Application(\"container_auth\", new()\n    {\n        Name = \"container-auth\",\n    });\n\n    var accessPrivateContainers = new Scaleway.Iam.Policy(\"access_private_containers\", new()\n    {\n        ApplicationId = containerAuth.Id,\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                ProjectIds = new[]\n                {\n                    @default.Apply(@default =\u003e @default.Apply(getProjectResult =\u003e getProjectResult.Id)),\n                },\n                PermissionSetNames = new[]\n                {\n                    \"ContainersPrivateAccess\",\n                },\n            },\n        },\n    });\n\n    var apiKey = new Scaleway.Iam.ApiKey(\"api_key\", new()\n    {\n        ApplicationId = containerAuth.Id,\n    });\n\n    // Container resources\n    var @private = new Scaleway.Containers.Namespace(\"private\", new()\n    {\n        Name = \"private-container-namespace\",\n    });\n\n    var privateContainer = new Scaleway.Containers.Container(\"private\", new()\n    {\n        NamespaceId = @private.Id,\n        RegistryImage = \"rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\",\n        Privacy = \"private\",\n        Deploy = true,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"secretKey\"] = apiKey.SecretKey,\n        [\"containerEndpoint\"] = privateContainer.DomainName,\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/containers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Project to be referenced in the IAM policy\n\t\t_default, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// IAM resources\n\t\tcontainerAuth, err := iam.NewApplication(ctx, \"container_auth\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"container-auth\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"access_private_containers\", \u0026iam.PolicyArgs{\n\t\t\tApplicationId: containerAuth.ID(),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tProjectIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(_default.Id),\n\t\t\t\t\t},\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ContainersPrivateAccess\"),\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\tapiKey, err := iam.NewApiKey(ctx, \"api_key\", \u0026iam.ApiKeyArgs{\n\t\t\tApplicationId: containerAuth.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Container resources\n\t\tprivate, err := containers.NewNamespace(ctx, \"private\", \u0026containers.NamespaceArgs{\n\t\t\tName: pulumi.String(\"private-container-namespace\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateContainer, err := containers.NewContainer(ctx, \"private\", \u0026containers.ContainerArgs{\n\t\t\tNamespaceId:   private.ID(),\n\t\t\tRegistryImage: pulumi.String(\"rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\"),\n\t\t\tPrivacy:       pulumi.String(\"private\"),\n\t\t\tDeploy:        pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"secretKey\", apiKey.SecretKey)\n\t\tctx.Export(\"containerEndpoint\", privateContainer.DomainName)\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\nimport com.pulumi.scaleway.iam.ApiKey;\nimport com.pulumi.scaleway.iam.ApiKeyArgs;\nimport com.pulumi.scaleway.containers.Namespace;\nimport com.pulumi.scaleway.containers.NamespaceArgs;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\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        // Project to be referenced in the IAM policy\n        final var default = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        // IAM resources\n        var containerAuth = new Application(\"containerAuth\", ApplicationArgs.builder()\n            .name(\"container-auth\")\n            .build());\n\n        var accessPrivateContainers = new Policy(\"accessPrivateContainers\", PolicyArgs.builder()\n            .applicationId(containerAuth.id())\n            .rules(PolicyRuleArgs.builder()\n                .projectIds(default_.id())\n                .permissionSetNames(\"ContainersPrivateAccess\")\n                .build())\n            .build());\n\n        var apiKey = new ApiKey(\"apiKey\", ApiKeyArgs.builder()\n            .applicationId(containerAuth.id())\n            .build());\n\n        // Container resources\n        var private_ = new Namespace(\"private\", NamespaceArgs.builder()\n            .name(\"private-container-namespace\")\n            .build());\n\n        var privateContainer = new Container(\"privateContainer\", ContainerArgs.builder()\n            .namespaceId(private_.id())\n            .registryImage(\"rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\")\n            .privacy(\"private\")\n            .deploy(true)\n            .build());\n\n        ctx.export(\"secretKey\", apiKey.secretKey());\n        ctx.export(\"containerEndpoint\", privateContainer.domainName());\n    }\n}\n```\n```yaml\nresources:\n  # IAM resources\n  containerAuth:\n    type: scaleway:iam:Application\n    name: container_auth\n    properties:\n      name: container-auth\n  accessPrivateContainers:\n    type: scaleway:iam:Policy\n    name: access_private_containers\n    properties:\n      applicationId: ${containerAuth.id}\n      rules:\n        - projectIds:\n            - ${default.id}\n          permissionSetNames:\n            - ContainersPrivateAccess\n  apiKey:\n    type: scaleway:iam:ApiKey\n    name: api_key\n    properties:\n      applicationId: ${containerAuth.id}\n  # Container resources\n  private:\n    type: scaleway:containers:Namespace\n    properties:\n      name: private-container-namespace\n  privateContainer:\n    type: scaleway:containers:Container\n    name: private\n    properties:\n      namespaceId: ${private.id}\n      registryImage: rg.fr-par.scw.cloud/my-registry-ns/my-image:latest\n      privacy: private\n      deploy: true\nvariables:\n  # Project to be referenced in the IAM policy\n  default:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\noutputs:\n  # Output the secret key and the container's endpoint for the curl command\n  secretKey: ${apiKey.secretKey}\n  containerEndpoint: ${privateContainer.domainName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along \n// with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n// Ideally, you would create the namespace separately.\n// For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n// in the referenced namespace.\nconst main = new scaleway.registry.Namespace(\"main\", {name: \"some-unique-name\"});\nconst nginx = scaleway.registry.getImageOutput({\n    namespaceId: main.id,\n    name: \"nginx\",\n});\nconst nginxLatest = nginx.apply(nginx =\u003e scaleway.registry.getImageTagOutput({\n    imageId: nginx.id,\n    name: \"latest\",\n}));\nconst mainNamespace = new scaleway.containers.Namespace(\"main\", {name: \"my-container-namespace\"});\nconst mainContainer = new scaleway.containers.Container(\"main\", {\n    name: \"nginx-latest\",\n    namespaceId: mainNamespace.id,\n    registryImage: pulumi.interpolate`${main.endpoint}/nginx:latest`,\n    registrySha256: nginxLatest.apply(nginxLatest =\u003e nginxLatest.digest),\n    port: 80,\n    deploy: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along \n# with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n# Ideally, you would create the namespace separately.\n# For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n# in the referenced namespace.\nmain = scaleway.registry.Namespace(\"main\", name=\"some-unique-name\")\nnginx = scaleway.registry.get_image_output(namespace_id=main.id,\n    name=\"nginx\")\nnginx_latest = nginx.apply(lambda nginx: scaleway.registry.get_image_tag_output(image_id=nginx.id,\n    name=\"latest\"))\nmain_namespace = scaleway.containers.Namespace(\"main\", name=\"my-container-namespace\")\nmain_container = scaleway.containers.Container(\"main\",\n    name=\"nginx-latest\",\n    namespace_id=main_namespace.id,\n    registry_image=main.endpoint.apply(lambda endpoint: f\"{endpoint}/nginx:latest\"),\n    registry_sha256=nginx_latest.digest,\n    port=80,\n    deploy=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    // When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along \n    // with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n    // Ideally, you would create the namespace separately.\n    // For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n    // in the referenced namespace.\n    var main = new Scaleway.Registry.Namespace(\"main\", new()\n    {\n        Name = \"some-unique-name\",\n    });\n\n    var nginx = Scaleway.Registry.GetImage.Invoke(new()\n    {\n        NamespaceId = main.Id,\n        Name = \"nginx\",\n    });\n\n    var nginxLatest = Scaleway.Registry.GetImageTag.Invoke(new()\n    {\n        ImageId = nginx.Apply(getImageResult =\u003e getImageResult.Id),\n        Name = \"latest\",\n    });\n\n    var mainNamespace = new Scaleway.Containers.Namespace(\"main\", new()\n    {\n        Name = \"my-container-namespace\",\n    });\n\n    var mainContainer = new Scaleway.Containers.Container(\"main\", new()\n    {\n        Name = \"nginx-latest\",\n        NamespaceId = mainNamespace.Id,\n        RegistryImage = main.Endpoint.Apply(endpoint =\u003e $\"{endpoint}/nginx:latest\"),\n        RegistrySha256 = nginxLatest.Apply(getImageTagResult =\u003e getImageTagResult.Digest),\n        Port = 80,\n        Deploy = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/containers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/registry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along\n\t\t// with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n\t\t// Ideally, you would create the namespace separately.\n\t\t// For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n\t\t// in the referenced namespace.\n\t\tmain, err := registry.NewNamespace(ctx, \"main\", \u0026registry.NamespaceArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnginx := registry.GetImageOutput(ctx, registry.GetImageOutputArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tName:        pulumi.String(\"nginx\"),\n\t\t}, nil)\n\t\tnginxLatest := nginx.ApplyT(func(nginx registry.GetImageResult) (registry.GetImageTagResult, error) {\n\t\t\treturn registry.GetImageTagResult(interface{}(registry.GetImageTag(ctx, \u0026registry.GetImageTagArgs{\n\t\t\t\tImageId: nginx.Id,\n\t\t\t\tName:    pulumi.StringRef(pulumi.StringRef(\"latest\")),\n\t\t\t}, nil))), nil\n\t\t}).(registry.GetImageTagResultOutput)\n\t\tmainNamespace, err := containers.NewNamespace(ctx, \"main\", \u0026containers.NamespaceArgs{\n\t\t\tName: pulumi.String(\"my-container-namespace\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"nginx-latest\"),\n\t\t\tNamespaceId: mainNamespace.ID(),\n\t\t\tRegistryImage: main.Endpoint.ApplyT(func(endpoint string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/nginx:latest\", endpoint), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tRegistrySha256: pulumi.String(nginxLatest.ApplyT(func(nginxLatest registry.GetImageTagResult) (*string, error) {\n\t\t\t\treturn \u0026nginxLatest.Digest, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPort:   pulumi.Int(80),\n\t\t\tDeploy: 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.registry.RegistryFunctions;\nimport com.pulumi.scaleway.registry.inputs.GetImageArgs;\nimport com.pulumi.scaleway.registry.inputs.GetImageTagArgs;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\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        // When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along \n        // with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n        // Ideally, you would create the namespace separately.\n        // For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n        // in the referenced namespace.\n        var main = new com.pulumi.scaleway.registry.Namespace(\"main\", com.pulumi.scaleway.registry.NamespaceArgs.builder()\n            .name(\"some-unique-name\")\n            .build());\n\n        final var nginx = RegistryFunctions.getImage(GetImageArgs.builder()\n            .namespaceId(main.id())\n            .name(\"nginx\")\n            .build());\n\n        final var nginxLatest = nginx.applyValue(_nginx -\u003e RegistryFunctions.getImageTag(GetImageTagArgs.builder()\n            .imageId(_nginx.id())\n            .name(\"latest\")\n            .build()));\n\n        var mainNamespace = new com.pulumi.scaleway.containers.Namespace(\"mainNamespace\", com.pulumi.scaleway.containers.NamespaceArgs.builder()\n            .name(\"my-container-namespace\")\n            .build());\n\n        var mainContainer = new Container(\"mainContainer\", ContainerArgs.builder()\n            .name(\"nginx-latest\")\n            .namespaceId(mainNamespace.id())\n            .registryImage(main.endpoint().applyValue(_endpoint -\u003e String.format(\"%s/nginx:latest\", _endpoint)))\n            .registrySha256(nginxLatest.applyValue(_nginxLatest -\u003e _nginxLatest.digest()))\n            .port(80)\n            .deploy(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # When using mutable images (e.g., `latest` tag), you can use the `scaleway_registry_image_tag` data source along \n  # with the `registry_sha256` argument to trigger container redeployments when the image is updated.\n\n  # Ideally, you would create the namespace separately.\n  # For demonstration purposes, this example assumes the \"nginx:latest\" image is already available\n  # in the referenced namespace.\n  main:\n    type: scaleway:registry:Namespace\n    properties:\n      name: some-unique-name\n  mainNamespace:\n    type: scaleway:containers:Namespace\n    name: main\n    properties:\n      name: my-container-namespace\n  mainContainer:\n    type: scaleway:containers:Container\n    name: main\n    properties:\n      name: nginx-latest\n      namespaceId: ${mainNamespace.id}\n      registryImage: ${main.endpoint}/nginx:latest\n      registrySha256: ${nginxLatest.digest}\n      port: 80\n      deploy: true\nvariables:\n  nginx:\n    fn::invoke:\n      function: scaleway:registry:getImage\n      arguments:\n        namespaceId: ${main.id}\n        name: nginx\n  nginxLatest:\n    fn::invoke:\n      function: scaleway:registry:getImageTag\n      arguments:\n        imageId: ${nginx.id}\n        name: latest\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\n\n## Protocols\n\nThe following protocols are supported:\n\n* \u003cspan pulumi-lang-nodejs=\"`h2c`\" pulumi-lang-dotnet=\"`H2c`\" pulumi-lang-go=\"`h2c`\" pulumi-lang-python=\"`h2c`\" pulumi-lang-yaml=\"`h2c`\" pulumi-lang-java=\"`h2c`\"\u003e`h2c`\u003c/span\u003e: HTTP/2 over TCP.\n* \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e: Hypertext Transfer Protocol.\n\n\u003e **Important:** Refer to the official [Apache documentation](https://httpd.apache.org/docs/2.4/howto/http2.html) for more information.\n\n## Privacy\n\nBy default, creating a container will make it \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e, meaning that anybody knowing the endpoint can execute it.\n\nA container can be made \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e with the privacy parameter.\n\nRefer to the [technical information](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8) for more information on container authentication.\n\n## Memory and vCPUs configuration\n\nThe vCPU represents a portion of the underlying, physical CPU that is assigned to a particular virtual machine (VM).\n\nYou can determine the computing resources to allocate to each container.\n\nThe \u003cspan pulumi-lang-nodejs=\"`memoryLimit`\" pulumi-lang-dotnet=\"`MemoryLimit`\" pulumi-lang-go=\"`memoryLimit`\" pulumi-lang-python=\"`memory_limit`\" pulumi-lang-yaml=\"`memoryLimit`\" pulumi-lang-java=\"`memoryLimit`\"\u003e`memory_limit`\u003c/span\u003e (in MB) must correspond with the right amount of vCPU. Refer to the table below to determine the right memory/vCPU combination.\n\n| Memory (in MB) | vCPU |\n|----------------|------|\n| 128            | 70m  |\n| 256            | 140m |\n| 512            | 280m |\n| 1024           | 560m |\n| 2048           | 1120 |\n| 3072           | 1680 |\n| 4096           | 2240 |\n\n~\u003e**Important:** Make sure to select the right resources, as you will be billed based on compute usage over time and the number of Containers executions.\nRefer to the [Serverless Containers pricing](https://www.scaleway.com/en/docs/faq/serverless-containers/#prices) for more information.\n\n## Health check configuration\n\nCustom health checks can be configured on the container.\n\nIt's possible to specify the HTTP path that the probe will listen to and the number of failures before considering the container as unhealthy.\nDuring a deployment, if a newly created container fails to pass the health check, the deployment is aborted.\nAs a result, lowering this value can help to reduce the time it takes to detect a failed deployment.\nThe period between health checks is also configurable.\n\nExample:\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.containers.Container(\"main\", {\n    name: \"my-container-02\",\n    namespaceId: mainScalewayContainerNamespace.id,\n    healthChecks: [{\n        https: [{\n            path: \"/ping\",\n        }],\n        failureThreshold: 40,\n        interval: \"5s\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Container(\"main\",\n    name=\"my-container-02\",\n    namespace_id=main_scaleway_container_namespace[\"id\"],\n    health_checks=[{\n        \"https\": [{\n            \"path\": \"/ping\",\n        }],\n        \"failure_threshold\": 40,\n        \"interval\": \"5s\",\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.Containers.Container(\"main\", new()\n    {\n        Name = \"my-container-02\",\n        NamespaceId = mainScalewayContainerNamespace.Id,\n        HealthChecks = new[]\n        {\n            new Scaleway.Containers.Inputs.ContainerHealthCheckArgs\n            {\n                Https = new[]\n                {\n                    new Scaleway.Containers.Inputs.ContainerHealthCheckHttpArgs\n                    {\n                        Path = \"/ping\",\n                    },\n                },\n                FailureThreshold = 40,\n                Interval = \"5s\",\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"my-container-02\"),\n\t\t\tNamespaceId: pulumi.Any(mainScalewayContainerNamespace.Id),\n\t\t\tHealthChecks: containers.ContainerHealthCheckArray{\n\t\t\t\t\u0026containers.ContainerHealthCheckArgs{\n\t\t\t\t\tHttps: containers.ContainerHealthCheckHttpArray{\n\t\t\t\t\t\t\u0026containers.ContainerHealthCheckHttpArgs{\n\t\t\t\t\t\t\tPath: pulumi.String(\"/ping\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tFailureThreshold: pulumi.Int(40),\n\t\t\t\t\tInterval:         pulumi.String(\"5s\"),\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.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.containers.inputs.ContainerHealthCheckArgs;\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 Container(\"main\", ContainerArgs.builder()\n            .name(\"my-container-02\")\n            .namespaceId(mainScalewayContainerNamespace.id())\n            .healthChecks(ContainerHealthCheckArgs.builder()\n                .https(ContainerHealthCheckHttpArgs.builder()\n                    .path(\"/ping\")\n                    .build())\n                .failureThreshold(40)\n                .interval(\"5s\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Container\n    properties:\n      name: my-container-02\n      namespaceId: ${mainScalewayContainerNamespace.id}\n      healthChecks:\n        - https:\n            - path: /ping\n          failureThreshold: 40\n          interval: 5s\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n~\u003e**Important:** Another probe type can be set to TCP with the API, but currently the SDK has not been updated with this parameter.\nThis is why the only probe that can be used here is the HTTP probe.\nRefer to the [Serverless Containers pricing](https://www.scaleway.com/en/docs/faq/serverless-containers/#prices) for more information.\n\n## Scaling option configuration\n\nScaling option block configuration allows you to choose which parameter will scale up/down containers.\nOptions are number of concurrent requests, CPU or memory usage.\nIt replaces current \u003cspan pulumi-lang-nodejs=\"`maxConcurrency`\" pulumi-lang-dotnet=\"`MaxConcurrency`\" pulumi-lang-go=\"`maxConcurrency`\" pulumi-lang-python=\"`max_concurrency`\" pulumi-lang-yaml=\"`maxConcurrency`\" pulumi-lang-java=\"`maxConcurrency`\"\u003e`max_concurrency`\u003c/span\u003e that has been deprecated.\n\nExample:\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.containers.Container(\"main\", {\n    name: \"my-container-02\",\n    namespaceId: mainScalewayContainerNamespace.id,\n    scalingOptions: [{\n        concurrentRequestsThreshold: 15,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Container(\"main\",\n    name=\"my-container-02\",\n    namespace_id=main_scaleway_container_namespace[\"id\"],\n    scaling_options=[{\n        \"concurrent_requests_threshold\": 15,\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.Containers.Container(\"main\", new()\n    {\n        Name = \"my-container-02\",\n        NamespaceId = mainScalewayContainerNamespace.Id,\n        ScalingOptions = new[]\n        {\n            new Scaleway.Containers.Inputs.ContainerScalingOptionArgs\n            {\n                ConcurrentRequestsThreshold = 15,\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"my-container-02\"),\n\t\t\tNamespaceId: pulumi.Any(mainScalewayContainerNamespace.Id),\n\t\t\tScalingOptions: containers.ContainerScalingOptionArray{\n\t\t\t\t\u0026containers.ContainerScalingOptionArgs{\n\t\t\t\t\tConcurrentRequestsThreshold: pulumi.Int(15),\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.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.containers.inputs.ContainerScalingOptionArgs;\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 Container(\"main\", ContainerArgs.builder()\n            .name(\"my-container-02\")\n            .namespaceId(mainScalewayContainerNamespace.id())\n            .scalingOptions(ContainerScalingOptionArgs.builder()\n                .concurrentRequestsThreshold(15)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Container\n    properties:\n      name: my-container-02\n      namespaceId: ${mainScalewayContainerNamespace.id}\n      scalingOptions:\n        - concurrentRequestsThreshold: 15\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n~\u003e**Important**: A maximum of one of these parameters may be set. Also, when \u003cspan pulumi-lang-nodejs=\"`cpuUsageThreshold`\" pulumi-lang-dotnet=\"`CpuUsageThreshold`\" pulumi-lang-go=\"`cpuUsageThreshold`\" pulumi-lang-python=\"`cpu_usage_threshold`\" pulumi-lang-yaml=\"`cpuUsageThreshold`\" pulumi-lang-java=\"`cpuUsageThreshold`\"\u003e`cpu_usage_threshold`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`memoryUsageThreshold`\" pulumi-lang-dotnet=\"`MemoryUsageThreshold`\" pulumi-lang-go=\"`memoryUsageThreshold`\" pulumi-lang-python=\"`memory_usage_threshold`\" pulumi-lang-yaml=\"`memoryUsageThreshold`\" pulumi-lang-java=\"`memoryUsageThreshold`\"\u003e`memory_usage_threshold`\u003c/span\u003e are used, \u003cspan pulumi-lang-nodejs=\"`minScale`\" pulumi-lang-dotnet=\"`MinScale`\" pulumi-lang-go=\"`minScale`\" pulumi-lang-python=\"`min_scale`\" pulumi-lang-yaml=\"`minScale`\" pulumi-lang-java=\"`minScale`\"\u003e`min_scale`\u003c/span\u003e can't be set to 0.\nRefer to the [API Reference](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-create-a-new-container) for more information.\n\n## Import\n\nContainers can be imported using, `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/container:Container main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments passed to the command specified in the \"command\" field. These override the default arguments from the container image, and behave like command-line parameters.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Command executed when the container starts. This overrides the default command defined in the container image. This is usually the main executable, or entry point script to run.\n"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container.\n"},"cronStatus":{"type":"string","description":"The cron status of the container.\n"},"deploy":{"type":"boolean","description":"Boolean indicating whether the container is in a production environment.\n"},"description":{"type":"string","description":"The description of the container.\n"},"domainName":{"type":"string","description":"The native domain name of the container\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#environment-variables) of the container.\n"},"errorMessage":{"type":"string","description":"The error message of the container.\n"},"healthChecks":{"type":"array","items":{"$ref":"#/types/scaleway:index/ContainerHealthCheck:ContainerHealthCheck"},"description":"Health check configuration block of the container.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"localStorageLimit":{"type":"integer","description":"Local storage limit of the container (in MB)\n"},"maxConcurrency":{"type":"integer","description":"The maximum number of simultaneous requests your container can handle at the same time. Use `scaling_option.concurrent_requests_threshold` instead.\n","deprecationMessage":"Use scaling_option.concurrent_requests_threshold instead. This attribute will be removed."},"maxScale":{"type":"integer","description":"The maximum number of instances this container can scale to.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each container.\n"},"minScale":{"type":"integer","description":"The minimum number of container instances running continuously.\n"},"name":{"type":"string","description":"The unique name of the container name.\n"},"namespaceId":{"type":"string","description":"The Containers namespace ID of the container.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the container.\n"},"port":{"type":"integer","description":"The port to expose the container.\n"},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your container. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the container is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\nNote that if you want to use your own configuration, you must consult our configuration [restrictions](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/#configuration-restrictions) section.\n"},"protocol":{"type":"string","description":"The communication [protocol](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`h2c`\" pulumi-lang-dotnet=\"`H2c`\" pulumi-lang-go=\"`h2c`\" pulumi-lang-python=\"`h2c`\" pulumi-lang-yaml=\"`h2c`\" pulumi-lang-java=\"`h2c`\"\u003e`h2c`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container was created.\n"},"registryImage":{"type":"string","description":"The registry image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`)\n"},"registrySha256":{"type":"string","description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n"},"sandbox":{"type":"string","description":"Execution environment of the container.\n"},"scalingOptions":{"type":"array","items":{"$ref":"#/types/scaleway:index/ContainerScalingOption:ContainerScalingOption"},"description":"Configuration block used to decide when to scale up or down. Possible values:\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#secrets) of the container.\n","secret":true},"status":{"type":"string","description":"The container status.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the container.\n"},"timeout":{"type":"integer","description":"The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e seconds.\n"}},"required":["cpuLimit","cronStatus","domainName","environmentVariables","errorMessage","healthChecks","localStorageLimit","maxConcurrency","maxScale","memoryLimit","minScale","name","namespaceId","port","registryImage","sandbox","scalingOptions","status","timeout"],"inputProperties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments passed to the command specified in the \"command\" field. These override the default arguments from the container image, and behave like command-line parameters.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Command executed when the container starts. This overrides the default command defined in the container image. This is usually the main executable, or entry point script to run.\n"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container.\n"},"deploy":{"type":"boolean","description":"Boolean indicating whether the container is in a production environment.\n"},"description":{"type":"string","description":"The description of the container.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#environment-variables) of the container.\n"},"healthChecks":{"type":"array","items":{"$ref":"#/types/scaleway:index/ContainerHealthCheck:ContainerHealthCheck"},"description":"Health check configuration block of the container.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"localStorageLimit":{"type":"integer","description":"Local storage limit of the container (in MB)\n"},"maxConcurrency":{"type":"integer","description":"The maximum number of simultaneous requests your container can handle at the same time. Use `scaling_option.concurrent_requests_threshold` instead.\n","deprecationMessage":"Use scaling_option.concurrent_requests_threshold instead. This attribute will be removed."},"maxScale":{"type":"integer","description":"The maximum number of instances this container can scale to.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each container.\n"},"minScale":{"type":"integer","description":"The minimum number of container instances running continuously.\n"},"name":{"type":"string","description":"The unique name of the container name.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The Containers namespace ID of the container.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the container.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The port to expose the container.\n"},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your container. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the container is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\nNote that if you want to use your own configuration, you must consult our configuration [restrictions](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/#configuration-restrictions) section.\n"},"protocol":{"type":"string","description":"The communication [protocol](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`h2c`\" pulumi-lang-dotnet=\"`H2c`\" pulumi-lang-go=\"`h2c`\" pulumi-lang-python=\"`h2c`\" pulumi-lang-yaml=\"`h2c`\" pulumi-lang-java=\"`h2c`\"\u003e`h2c`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container was created.\n","willReplaceOnChanges":true},"registryImage":{"type":"string","description":"The registry image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`)\n"},"registrySha256":{"type":"string","description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n"},"sandbox":{"type":"string","description":"Execution environment of the container.\n"},"scalingOptions":{"type":"array","items":{"$ref":"#/types/scaleway:index/ContainerScalingOption:ContainerScalingOption"},"description":"Configuration block used to decide when to scale up or down. Possible values:\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#secrets) of the container.\n","secret":true},"status":{"type":"string","description":"The container status.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the container.\n"},"timeout":{"type":"integer","description":"The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e seconds.\n"}},"requiredInputs":["namespaceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Container resources.\n","properties":{"args":{"type":"array","items":{"type":"string"},"description":"Arguments passed to the command specified in the \"command\" field. These override the default arguments from the container image, and behave like command-line parameters.\n"},"commands":{"type":"array","items":{"type":"string"},"description":"Command executed when the container starts. This overrides the default command defined in the container image. This is usually the main executable, or entry point script to run.\n"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container.\n"},"cronStatus":{"type":"string","description":"The cron status of the container.\n"},"deploy":{"type":"boolean","description":"Boolean indicating whether the container is in a production environment.\n"},"description":{"type":"string","description":"The description of the container.\n"},"domainName":{"type":"string","description":"The native domain name of the container\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#environment-variables) of the container.\n"},"errorMessage":{"type":"string","description":"The error message of the container.\n"},"healthChecks":{"type":"array","items":{"$ref":"#/types/scaleway:index/ContainerHealthCheck:ContainerHealthCheck"},"description":"Health check configuration block of the container.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"localStorageLimit":{"type":"integer","description":"Local storage limit of the container (in MB)\n"},"maxConcurrency":{"type":"integer","description":"The maximum number of simultaneous requests your container can handle at the same time. Use `scaling_option.concurrent_requests_threshold` instead.\n","deprecationMessage":"Use scaling_option.concurrent_requests_threshold instead. This attribute will be removed."},"maxScale":{"type":"integer","description":"The maximum number of instances this container can scale to.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each container.\n"},"minScale":{"type":"integer","description":"The minimum number of container instances running continuously.\n"},"name":{"type":"string","description":"The unique name of the container name.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The Containers namespace ID of the container.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the container.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The port to expose the container.\n"},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your container. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-containers/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the container is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\nNote that if you want to use your own configuration, you must consult our configuration [restrictions](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/#configuration-restrictions) section.\n"},"protocol":{"type":"string","description":"The communication [protocol](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`h2c`\" pulumi-lang-dotnet=\"`H2c`\" pulumi-lang-go=\"`h2c`\" pulumi-lang-python=\"`h2c`\" pulumi-lang-yaml=\"`h2c`\" pulumi-lang-java=\"`h2c`\"\u003e`h2c`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container was created.\n","willReplaceOnChanges":true},"registryImage":{"type":"string","description":"The registry image address (e.g., `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`)\n"},"registrySha256":{"type":"string","description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n"},"sandbox":{"type":"string","description":"Execution environment of the container.\n"},"scalingOptions":{"type":"array","items":{"$ref":"#/types/scaleway:index/ContainerScalingOption:ContainerScalingOption"},"description":"Configuration block used to decide when to scale up or down. Possible values:\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/serverless-containers/concepts/#secrets) of the container.\n","secret":true},"status":{"type":"string","description":"The container status.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the container.\n"},"timeout":{"type":"integer","description":"The maximum amount of time in seconds your container can spend processing a request before being stopped. Default to \u003cspan pulumi-lang-nodejs=\"`300`\" pulumi-lang-dotnet=\"`300`\" pulumi-lang-go=\"`300`\" pulumi-lang-python=\"`300`\" pulumi-lang-yaml=\"`300`\" pulumi-lang-java=\"`300`\"\u003e`300`\u003c/span\u003e seconds.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/container.Container has been deprecated in favor of scaleway.containers/container.Container"},"scaleway:index/containerCron:ContainerCron":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Cron`\" pulumi-lang-dotnet=\"`scaleway.containers.Cron`\" pulumi-lang-go=\"`containers.Cron`\" pulumi-lang-python=\"`containers.Cron`\" pulumi-lang-yaml=\"`scaleway.containers.Cron`\" pulumi-lang-java=\"`scaleway.containers.Cron`\"\u003e`scaleway.containers.Cron`\u003c/span\u003e resource allows you to create and manage CRON triggers for Scaleway [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Containers CRON triggers [documentation](https://www.scaleway.com/en/docs/serverless/containers/how-to/add-trigger-to-a-container/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-triggers-list-all-triggers) for more information.\n\n## Example Usage\n\nThe following command allows you to add a CRON trigger to a Serverless Container.\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.containers.Namespace(\"main\", {});\nconst mainContainer = new scaleway.containers.Container(\"main\", {\n    name: \"my-container-with-cron-tf\",\n    namespaceId: main.id,\n});\nconst mainCron = new scaleway.containers.Cron(\"main\", {\n    containerId: mainContainer.id,\n    name: \"my-cron-name\",\n    schedule: \"5 4 1 * *\",\n    args: JSON.stringify({\n        address: {\n            city: \"Paris\",\n            country: \"FR\",\n        },\n        age: 23,\n        firstName: \"John\",\n        isAlive: true,\n        lastName: \"Smith\",\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\")\nmain_container = scaleway.containers.Container(\"main\",\n    name=\"my-container-with-cron-tf\",\n    namespace_id=main.id)\nmain_cron = scaleway.containers.Cron(\"main\",\n    container_id=main_container.id,\n    name=\"my-cron-name\",\n    schedule=\"5 4 1 * *\",\n    args=json.dumps({\n        \"address\": {\n            \"city\": \"Paris\",\n            \"country\": \"FR\",\n        },\n        \"age\": 23,\n        \"firstName\": \"John\",\n        \"isAlive\": True,\n        \"lastName\": \"Smith\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Containers.Namespace(\"main\");\n\n    var mainContainer = new Scaleway.Containers.Container(\"main\", new()\n    {\n        Name = \"my-container-with-cron-tf\",\n        NamespaceId = main.Id,\n    });\n\n    var mainCron = new Scaleway.Containers.Cron(\"main\", new()\n    {\n        ContainerId = mainContainer.Id,\n        Name = \"my-cron-name\",\n        Schedule = \"5 4 1 * *\",\n        Args = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"address\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"city\"] = \"Paris\",\n                [\"country\"] = \"FR\",\n            },\n            [\"age\"] = 23,\n            [\"firstName\"] = \"John\",\n            [\"isAlive\"] = true,\n            [\"lastName\"] = \"Smith\",\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := containers.NewNamespace(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainContainer, err := containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"my-container-with-cron-tf\"),\n\t\t\tNamespaceId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"address\": map[string]interface{}{\n\t\t\t\t\"city\":    \"Paris\",\n\t\t\t\t\"country\": \"FR\",\n\t\t\t},\n\t\t\t\"age\":       23,\n\t\t\t\"firstName\": \"John\",\n\t\t\t\"isAlive\":   true,\n\t\t\t\"lastName\":  \"Smith\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = containers.NewCron(ctx, \"main\", \u0026containers.CronArgs{\n\t\t\tContainerId: mainContainer.ID(),\n\t\t\tName:        pulumi.String(\"my-cron-name\"),\n\t\t\tSchedule:    pulumi.String(\"5 4 1 * *\"),\n\t\t\tArgs:        pulumi.String(json0),\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.containers.Namespace;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.containers.Cron;\nimport com.pulumi.scaleway.containers.CronArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 Namespace(\"main\");\n\n        var mainContainer = new Container(\"mainContainer\", ContainerArgs.builder()\n            .name(\"my-container-with-cron-tf\")\n            .namespaceId(main.id())\n            .build());\n\n        var mainCron = new Cron(\"mainCron\", CronArgs.builder()\n            .containerId(mainContainer.id())\n            .name(\"my-cron-name\")\n            .schedule(\"5 4 1 * *\")\n            .args(serializeJson(\n                jsonObject(\n                    jsonProperty(\"address\", jsonObject(\n                        jsonProperty(\"city\", \"Paris\"),\n                        jsonProperty(\"country\", \"FR\")\n                    )),\n                    jsonProperty(\"age\", 23),\n                    jsonProperty(\"firstName\", \"John\"),\n                    jsonProperty(\"isAlive\", true),\n                    jsonProperty(\"lastName\", \"Smith\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n  mainContainer:\n    type: scaleway:containers:Container\n    name: main\n    properties:\n      name: my-container-with-cron-tf\n      namespaceId: ${main.id}\n  mainCron:\n    type: scaleway:containers:Cron\n    name: main\n    properties:\n      containerId: ${mainContainer.id}\n      name: my-cron-name\n      schedule: 5 4 1 * *\n      args:\n        fn::toJSON:\n          address:\n            city: Paris\n            country: FR\n          age: 23\n          firstName: John\n          isAlive: true\n          lastName: Smith\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nContainer Cron can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/containerCron:ContainerCron main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your container’s event object\n"},"containerId":{"type":"string","description":"The unique identifier of the container to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the container CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the CRON trigger is created.\n"},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/containers/reference-content/cron-schedules/) for more information).\n"},"status":{"type":"string","description":"The CRON status.\n"}},"required":["args","containerId","name","schedule","status"],"inputProperties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your container’s event object\n"},"containerId":{"type":"string","description":"The unique identifier of the container to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the container CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the CRON trigger is created.\n","willReplaceOnChanges":true},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/containers/reference-content/cron-schedules/) for more information).\n"}},"requiredInputs":["args","containerId","schedule"],"stateInputs":{"description":"Input properties used for looking up and filtering ContainerCron resources.\n","properties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your container’s event object\n"},"containerId":{"type":"string","description":"The unique identifier of the container to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the container CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the CRON trigger is created.\n","willReplaceOnChanges":true},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/containers/reference-content/cron-schedules/) for more information).\n"},"status":{"type":"string","description":"The CRON status.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/containercron.ContainerCron has been deprecated in favor of scaleway.containers/cron.Cron"},"scaleway:index/containerDomain:ContainerDomain":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Domain`\" pulumi-lang-dotnet=\"`scaleway.containers.Domain`\" pulumi-lang-go=\"`containers.Domain`\" pulumi-lang-python=\"`containers.Domain`\" pulumi-lang-yaml=\"`scaleway.containers.Domain`\" pulumi-lang-java=\"`scaleway.containers.Domain`\"\u003e`scaleway.containers.Domain`\u003c/span\u003e resource allows you to create and manage domain name bindings for Scaleway [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Containers domain [documentation](https://www.scaleway.com/en/docs/serverless-containers/how-to/add-a-custom-domain-to-a-container/) and the [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-domains-list-all-domain-name-bindings) for more information.\n\n## Example Usage\n\nThe commands below shows how to bind a custom domain name to a container.\n\n### Simple\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst app = new scaleway.containers.Container(\"app\", {});\nconst appDomain = new scaleway.containers.Domain(\"app\", {\n    containerId: app.id,\n    hostname: \"container.domain.tld\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\napp = scaleway.containers.Container(\"app\")\napp_domain = scaleway.containers.Domain(\"app\",\n    container_id=app.id,\n    hostname=\"container.domain.tld\")\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 app = new Scaleway.Containers.Container(\"app\");\n\n    var appDomain = new Scaleway.Containers.Domain(\"app\", new()\n    {\n        ContainerId = app.Id,\n        Hostname = \"container.domain.tld\",\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapp, err := containers.NewContainer(ctx, \"app\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containers.NewDomain(ctx, \"app\", \u0026containers.DomainArgs{\n\t\t\tContainerId: app.ID(),\n\t\t\tHostname:    pulumi.String(\"container.domain.tld\"),\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.containers.Container;\nimport com.pulumi.scaleway.containers.Domain;\nimport com.pulumi.scaleway.containers.DomainArgs;\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 app = new Container(\"app\");\n\n        var appDomain = new Domain(\"appDomain\", DomainArgs.builder()\n            .containerId(app.id())\n            .hostname(\"container.domain.tld\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  app:\n    type: scaleway:containers:Container\n  appDomain:\n    type: scaleway:containers:Domain\n    name: app\n    properties:\n      containerId: ${app.id}\n      hostname: container.domain.tld\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Complete example with domain\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.containers.Namespace(\"main\", {\n    name: \"my-ns-test\",\n    description: \"test container\",\n});\nconst app = new scaleway.containers.Container(\"app\", {\n    name: \"app\",\n    namespaceId: main.id,\n    registryImage: pulumi.interpolate`${main.registryEndpoint}/nginx:alpine`,\n    port: 80,\n    cpuLimit: 140,\n    memoryLimit: 256,\n    minScale: 1,\n    maxScale: 1,\n    timeout: 600,\n    maxConcurrency: 80,\n    privacy: \"public\",\n    protocol: \"http1\",\n    deploy: true,\n});\nconst appRecord = new scaleway.domain.Record(\"app\", {\n    dnsZone: \"domain.tld\",\n    name: \"subdomain\",\n    type: \"CNAME\",\n    data: pulumi.interpolate`${app.domainName}.`,\n    ttl: 3600,\n});\nconst appDomain = new scaleway.containers.Domain(\"app\", {\n    containerId: app.id,\n    hostname: pulumi.interpolate`${appRecord.name}.${appRecord.dnsZone}`,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\",\n    name=\"my-ns-test\",\n    description=\"test container\")\napp = scaleway.containers.Container(\"app\",\n    name=\"app\",\n    namespace_id=main.id,\n    registry_image=main.registry_endpoint.apply(lambda registry_endpoint: f\"{registry_endpoint}/nginx:alpine\"),\n    port=80,\n    cpu_limit=140,\n    memory_limit=256,\n    min_scale=1,\n    max_scale=1,\n    timeout=600,\n    max_concurrency=80,\n    privacy=\"public\",\n    protocol=\"http1\",\n    deploy=True)\napp_record = scaleway.domain.Record(\"app\",\n    dns_zone=\"domain.tld\",\n    name=\"subdomain\",\n    type=\"CNAME\",\n    data=app.domain_name.apply(lambda domain_name: f\"{domain_name}.\"),\n    ttl=3600)\napp_domain = scaleway.containers.Domain(\"app\",\n    container_id=app.id,\n    hostname=pulumi.Output.all(\n        name=app_record.name,\n        dns_zone=app_record.dns_zone\n).apply(lambda resolved_outputs: f\"{resolved_outputs['name']}.{resolved_outputs['dns_zone']}\")\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.Containers.Namespace(\"main\", new()\n    {\n        Name = \"my-ns-test\",\n        Description = \"test container\",\n    });\n\n    var app = new Scaleway.Containers.Container(\"app\", new()\n    {\n        Name = \"app\",\n        NamespaceId = main.Id,\n        RegistryImage = main.RegistryEndpoint.Apply(registryEndpoint =\u003e $\"{registryEndpoint}/nginx:alpine\"),\n        Port = 80,\n        CpuLimit = 140,\n        MemoryLimit = 256,\n        MinScale = 1,\n        MaxScale = 1,\n        Timeout = 600,\n        MaxConcurrency = 80,\n        Privacy = \"public\",\n        Protocol = \"http1\",\n        Deploy = true,\n    });\n\n    var appRecord = new Scaleway.Domain.Record(\"app\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"subdomain\",\n        Type = \"CNAME\",\n        Data = app.DomainName.Apply(domainName =\u003e $\"{domainName}.\"),\n        Ttl = 3600,\n    });\n\n    var appDomain = new Scaleway.Containers.Domain(\"app\", new()\n    {\n        ContainerId = app.Id,\n        Hostname = Output.Tuple(appRecord.Name, appRecord.DnsZone).Apply(values =\u003e\n        {\n            var name = values.Item1;\n            var dnsZone = values.Item2;\n            return $\"{name}.{dnsZone}\";\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/containers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/domain\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := containers.NewNamespace(ctx, \"main\", \u0026containers.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"my-ns-test\"),\n\t\t\tDescription: pulumi.String(\"test container\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapp, err := containers.NewContainer(ctx, \"app\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"app\"),\n\t\t\tNamespaceId: main.ID(),\n\t\t\tRegistryImage: main.RegistryEndpoint.ApplyT(func(registryEndpoint string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/nginx:alpine\", registryEndpoint), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tPort:           pulumi.Int(80),\n\t\t\tCpuLimit:       pulumi.Int(140),\n\t\t\tMemoryLimit:    pulumi.Int(256),\n\t\t\tMinScale:       pulumi.Int(1),\n\t\t\tMaxScale:       pulumi.Int(1),\n\t\t\tTimeout:        pulumi.Int(600),\n\t\t\tMaxConcurrency: pulumi.Int(80),\n\t\t\tPrivacy:        pulumi.String(\"public\"),\n\t\t\tProtocol:       pulumi.String(\"http1\"),\n\t\t\tDeploy:         pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tappRecord, err := domain.NewRecord(ctx, \"app\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"subdomain\"),\n\t\t\tType:    pulumi.String(\"CNAME\"),\n\t\t\tData: app.DomainName.ApplyT(func(domainName string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v.\", domainName), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tTtl: pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containers.NewDomain(ctx, \"app\", \u0026containers.DomainArgs{\n\t\t\tContainerId: app.ID(),\n\t\t\tHostname: pulumi.All(appRecord.Name, appRecord.DnsZone).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tname := _args[0].(string)\n\t\t\t\tdnsZone := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"%v.%v\", name, dnsZone), nil\n\t\t\t}).(pulumi.StringOutput),\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.containers.Namespace;\nimport com.pulumi.scaleway.containers.NamespaceArgs;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.scaleway.containers.Domain;\nimport com.pulumi.scaleway.containers.DomainArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"my-ns-test\")\n            .description(\"test container\")\n            .build());\n\n        var app = new Container(\"app\", ContainerArgs.builder()\n            .name(\"app\")\n            .namespaceId(main.id())\n            .registryImage(main.registryEndpoint().applyValue(_registryEndpoint -\u003e String.format(\"%s/nginx:alpine\", _registryEndpoint)))\n            .port(80)\n            .cpuLimit(140)\n            .memoryLimit(256)\n            .minScale(1)\n            .maxScale(1)\n            .timeout(600)\n            .maxConcurrency(80)\n            .privacy(\"public\")\n            .protocol(\"http1\")\n            .deploy(true)\n            .build());\n\n        var appRecord = new Record(\"appRecord\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"subdomain\")\n            .type(\"CNAME\")\n            .data(app.domainName().applyValue(_domainName -\u003e String.format(\"%s.\", _domainName)))\n            .ttl(3600)\n            .build());\n\n        var appDomain = new Domain(\"appDomain\", DomainArgs.builder()\n            .containerId(app.id())\n            .hostname(Output.tuple(appRecord.name(), appRecord.dnsZone()).applyValue(values -\u003e {\n                var name = values.t1;\n                var dnsZone = values.t2;\n                return String.format(\"%s.%s\", name,dnsZone);\n            }))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n    properties:\n      name: my-ns-test\n      description: test container\n  app:\n    type: scaleway:containers:Container\n    properties:\n      name: app\n      namespaceId: ${main.id}\n      registryImage: ${main.registryEndpoint}/nginx:alpine\n      port: 80\n      cpuLimit: 140\n      memoryLimit: 256\n      minScale: 1\n      maxScale: 1\n      timeout: 600\n      maxConcurrency: 80\n      privacy: public\n      protocol: http1\n      deploy: true\n  appRecord:\n    type: scaleway:domain:Record\n    name: app\n    properties:\n      dnsZone: domain.tld\n      name: subdomain\n      type: CNAME\n      data: ${app.domainName}.\n      ttl: 3600\n  appDomain:\n    type: scaleway:containers:Domain\n    name: app\n    properties:\n      containerId: ${app.id}\n      hostname: ${appRecord.name}.${appRecord.dnsZone}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nContainer domain binding can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/containerDomain:ContainerDomain main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n"},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container exists.\n"},"url":{"type":"string","description":"The URL used to query the container.\n"}},"required":["containerId","hostname","url"],"inputProperties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container exists.\n","willReplaceOnChanges":true}},"requiredInputs":["containerId","hostname"],"stateInputs":{"description":"Input properties used for looking up and filtering ContainerDomain resources.\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container exists.\n","willReplaceOnChanges":true},"url":{"type":"string","description":"The URL used to query the container.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/containerdomain.ContainerDomain has been deprecated in favor of scaleway.containers/domain.Domain"},"scaleway:index/containerNamespace:ContainerNamespace":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Namespace`\" pulumi-lang-dotnet=\"`scaleway.containers.Namespace`\" pulumi-lang-go=\"`containers.Namespace`\" pulumi-lang-python=\"`containers.Namespace`\" pulumi-lang-yaml=\"`scaleway.containers.Namespace`\" pulumi-lang-java=\"`scaleway.containers.Namespace`\"\u003e`scaleway.containers.Namespace`\u003c/span\u003e resource allows you to\nfor Scaleway [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Containers namespace [documentation](https://www.scaleway.com/en/docs/serverless/containers/how-to/create-manage-delete-containers-namespace/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-namespaces-list-all-your-namespaces) for more information.\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.containers.Namespace(\"main\", {\n    name: \"main-container-namespace\",\n    description: \"Main container namespace\",\n    tags: [\n        \"tag1\",\n        \"tag2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\",\n    name=\"main-container-namespace\",\n    description=\"Main container namespace\",\n    tags=[\n        \"tag1\",\n        \"tag2\",\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.Containers.Namespace(\"main\", new()\n    {\n        Name = \"main-container-namespace\",\n        Description = \"Main container namespace\",\n        Tags = new[]\n        {\n            \"tag1\",\n            \"tag2\",\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containers.NewNamespace(ctx, \"main\", \u0026containers.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"main-container-namespace\"),\n\t\t\tDescription: pulumi.String(\"Main container namespace\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tag1\"),\n\t\t\t\tpulumi.String(\"tag2\"),\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.containers.Namespace;\nimport com.pulumi.scaleway.containers.NamespaceArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"main-container-namespace\")\n            .description(\"Main container namespace\")\n            .tags(            \n                \"tag1\",\n                \"tag2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n    properties:\n      name: main-container-namespace\n      description: Main container namespace\n      tags:\n        - tag1\n        - tag2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nContainers namespaces can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/containerNamespace:ContainerNamespace main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Containers of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"destroyRegistry":{"type":"boolean","description":"Destroy registry on deletion","deprecationMessage":"Registry namespace is automatically destroyed with namespace"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Containers namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n"},"organizationId":{"type":"string","description":"The Organization ID with which the namespace is associated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n"},"registryEndpoint":{"type":"string","description":"The registry endpoint of the namespace.\n"},"registryNamespaceId":{"type":"string","description":"The registry namespace ID of the namespace.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"required":["name","organizationId","projectId","registryEndpoint","registryNamespaceId"],"inputProperties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Containers of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"destroyRegistry":{"type":"boolean","description":"Destroy registry on deletion","deprecationMessage":"Registry namespace is automatically destroyed with namespace"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Containers namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering ContainerNamespace resources.\n","properties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Containers of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"destroyRegistry":{"type":"boolean","description":"Destroy registry on deletion","deprecationMessage":"Registry namespace is automatically destroyed with namespace"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Containers namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n","willReplaceOnChanges":true},"organizationId":{"type":"string","description":"The Organization ID with which the namespace is associated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"registryEndpoint":{"type":"string","description":"The registry endpoint of the namespace.\n"},"registryNamespaceId":{"type":"string","description":"The registry namespace ID of the namespace.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/containernamespace.ContainerNamespace has been deprecated in favor of scaleway.containers/namespace.Namespace"},"scaleway:index/containerToken:ContainerToken":{"description":"\u003e **Important:** The resource \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Token`\" pulumi-lang-dotnet=\"`scaleway.containers.Token`\" pulumi-lang-go=\"`containers.Token`\" pulumi-lang-python=\"`containers.Token`\" pulumi-lang-yaml=\"`scaleway.containers.Token`\" pulumi-lang-java=\"`scaleway.containers.Token`\"\u003e`scaleway.containers.Token`\u003c/span\u003e has been deprecated and will no longer be supported in v1 of the API.\nPlease use IAM authentication instead. You will find an implementation example in the IAM authentication section of the Container documentation.\n\nThe \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Token`\" pulumi-lang-dotnet=\"`scaleway.containers.Token`\" pulumi-lang-go=\"`containers.Token`\" pulumi-lang-python=\"`containers.Token`\" pulumi-lang-yaml=\"`scaleway.containers.Token`\" pulumi-lang-java=\"`scaleway.containers.Token`\"\u003e`scaleway.containers.Token`\u003c/span\u003e resource allows you to create and manage authentication tokens for Scaleway [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Containers tokens [documentation](https://www.scaleway.com/en/docs/serverless/containers/how-to/create-auth-token-from-console/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-tokens-list-all-tokens) for more information.\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.containers.Namespace(\"main\", {name: \"test-container-token-ns\"});\nconst mainContainer = new scaleway.containers.Container(\"main\", {namespaceId: main.id});\n// Namespace Token\nconst namespace = new scaleway.containers.Token(\"namespace\", {\n    namespaceId: main.id,\n    expiresAt: \"2022-10-18T11:35:15+02:00\",\n});\n// Container Token\nconst container = new scaleway.containers.Token(\"container\", {containerId: mainContainer.id});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\", name=\"test-container-token-ns\")\nmain_container = scaleway.containers.Container(\"main\", namespace_id=main.id)\n# Namespace Token\nnamespace = scaleway.containers.Token(\"namespace\",\n    namespace_id=main.id,\n    expires_at=\"2022-10-18T11:35:15+02:00\")\n# Container Token\ncontainer = scaleway.containers.Token(\"container\", container_id=main_container.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 main = new Scaleway.Containers.Namespace(\"main\", new()\n    {\n        Name = \"test-container-token-ns\",\n    });\n\n    var mainContainer = new Scaleway.Containers.Container(\"main\", new()\n    {\n        NamespaceId = main.Id,\n    });\n\n    // Namespace Token\n    var @namespace = new Scaleway.Containers.Token(\"namespace\", new()\n    {\n        NamespaceId = main.Id,\n        ExpiresAt = \"2022-10-18T11:35:15+02:00\",\n    });\n\n    // Container Token\n    var container = new Scaleway.Containers.Token(\"container\", new()\n    {\n        ContainerId = mainContainer.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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := containers.NewNamespace(ctx, \"main\", \u0026containers.NamespaceArgs{\n\t\t\tName: pulumi.String(\"test-container-token-ns\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainContainer, err := containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Namespace Token\n\t\t_, err = containers.NewToken(ctx, \"namespace\", \u0026containers.TokenArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tExpiresAt:   pulumi.String(\"2022-10-18T11:35:15+02:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Container Token\n\t\t_, err = containers.NewToken(ctx, \"container\", \u0026containers.TokenArgs{\n\t\t\tContainerId: mainContainer.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.containers.Namespace;\nimport com.pulumi.scaleway.containers.NamespaceArgs;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.containers.Token;\nimport com.pulumi.scaleway.containers.TokenArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"test-container-token-ns\")\n            .build());\n\n        var mainContainer = new Container(\"mainContainer\", ContainerArgs.builder()\n            .namespaceId(main.id())\n            .build());\n\n        // Namespace Token\n        var namespace = new Token(\"namespace\", TokenArgs.builder()\n            .namespaceId(main.id())\n            .expiresAt(\"2022-10-18T11:35:15+02:00\")\n            .build());\n\n        // Container Token\n        var container = new Token(\"container\", TokenArgs.builder()\n            .containerId(mainContainer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n    properties:\n      name: test-container-token-ns\n  mainContainer:\n    type: scaleway:containers:Container\n    name: main\n    properties:\n      namespaceId: ${main.id}\n  # Namespace Token\n  namespace:\n    type: scaleway:containers:Token\n    properties:\n      namespaceId: ${main.id}\n      expiresAt: 2022-10-18T11:35:15+02:00\n  # Container Token\n  container:\n    type: scaleway:containers:Token\n    properties:\n      containerId: ${mainContainer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTokens can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/containerToken:ContainerToken main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e must be set.\n"},"description":{"type":"string","description":"The description of the token.\n"},"expiresAt":{"type":"string","description":"The expiration date of the token.\n"},"namespaceId":{"type":"string","description":"The unique identifier of the Containers namespace.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n"},"value":{"type":"string","description":"The token.\n","secret":true}},"required":["value"],"inputProperties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e must be set.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the token.\n","willReplaceOnChanges":true},"expiresAt":{"type":"string","description":"The expiration date of the token.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The unique identifier of the Containers namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering ContainerToken resources.\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e must be set.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the token.\n","willReplaceOnChanges":true},"expiresAt":{"type":"string","description":"The expiration date of the token.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The unique identifier of the Containers namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The token.\n","secret":true}},"type":"object"},"deprecationMessage":"scaleway.index/containertoken.ContainerToken has been deprecated in favor of scaleway.containers/token.Token"},"scaleway:index/containerTrigger:ContainerTrigger":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Trigger`\" pulumi-lang-dotnet=\"`scaleway.containers.Trigger`\" pulumi-lang-go=\"`containers.Trigger`\" pulumi-lang-python=\"`containers.Trigger`\" pulumi-lang-yaml=\"`scaleway.containers.Trigger`\" pulumi-lang-java=\"`scaleway.containers.Trigger`\"\u003e`scaleway.containers.Trigger`\u003c/span\u003e resource allows you to create and manage triggers for Scaleway [Serverless Containers](https://www.scaleway.com/en/docs/serverless/containers/).\n\nRefer to the Containers triggers [documentation](https://www.scaleway.com/en/docs/serverless/containers/how-to/add-trigger-to-a-container/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-triggers-list-all-triggers) for more information.\n\n## Example Usage\n\n### SQS\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.containers.Trigger(\"main\", {\n    containerId: mainScalewayContainer.id,\n    name: \"my-trigger\",\n    sqs: {\n        projectId: mainScalewayMnqSqs.projectId,\n        queue: \"MyQueue\",\n        region: mainScalewayMnqSqs.region,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Trigger(\"main\",\n    container_id=main_scaleway_container[\"id\"],\n    name=\"my-trigger\",\n    sqs={\n        \"project_id\": main_scaleway_mnq_sqs[\"projectId\"],\n        \"queue\": \"MyQueue\",\n        \"region\": main_scaleway_mnq_sqs[\"region\"],\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.Containers.Trigger(\"main\", new()\n    {\n        ContainerId = mainScalewayContainer.Id,\n        Name = \"my-trigger\",\n        Sqs = new Scaleway.Containers.Inputs.TriggerSqsArgs\n        {\n            ProjectId = mainScalewayMnqSqs.ProjectId,\n            Queue = \"MyQueue\",\n            Region = mainScalewayMnqSqs.Region,\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containers.NewTrigger(ctx, \"main\", \u0026containers.TriggerArgs{\n\t\t\tContainerId: pulumi.Any(mainScalewayContainer.Id),\n\t\t\tName:        pulumi.String(\"my-trigger\"),\n\t\t\tSqs: \u0026containers.TriggerSqsArgs{\n\t\t\t\tProjectId: pulumi.Any(mainScalewayMnqSqs.ProjectId),\n\t\t\t\tQueue:     pulumi.String(\"MyQueue\"),\n\t\t\t\tRegion:    pulumi.Any(mainScalewayMnqSqs.Region),\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.containers.Trigger;\nimport com.pulumi.scaleway.containers.TriggerArgs;\nimport com.pulumi.scaleway.containers.inputs.TriggerSqsArgs;\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 Trigger(\"main\", TriggerArgs.builder()\n            .containerId(mainScalewayContainer.id())\n            .name(\"my-trigger\")\n            .sqs(TriggerSqsArgs.builder()\n                .projectId(mainScalewayMnqSqs.projectId())\n                .queue(\"MyQueue\")\n                .region(mainScalewayMnqSqs.region())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Trigger\n    properties:\n      containerId: ${mainScalewayContainer.id}\n      name: my-trigger\n      sqs:\n        projectId: ${mainScalewayMnqSqs.projectId}\n        queue: MyQueue\n        region: ${mainScalewayMnqSqs.region}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### NATS\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.containers.Trigger(\"main\", {\n    containerId: mainScalewayContainer.id,\n    name: \"my-trigger\",\n    nats: {\n        accountId: mainScalewayMnqNatsAccount.id,\n        subject: \"MySubject\",\n        region: mainScalewayMnqNatsAccount.region,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Trigger(\"main\",\n    container_id=main_scaleway_container[\"id\"],\n    name=\"my-trigger\",\n    nats={\n        \"account_id\": main_scaleway_mnq_nats_account[\"id\"],\n        \"subject\": \"MySubject\",\n        \"region\": main_scaleway_mnq_nats_account[\"region\"],\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.Containers.Trigger(\"main\", new()\n    {\n        ContainerId = mainScalewayContainer.Id,\n        Name = \"my-trigger\",\n        Nats = new Scaleway.Containers.Inputs.TriggerNatsArgs\n        {\n            AccountId = mainScalewayMnqNatsAccount.Id,\n            Subject = \"MySubject\",\n            Region = mainScalewayMnqNatsAccount.Region,\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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := containers.NewTrigger(ctx, \"main\", \u0026containers.TriggerArgs{\n\t\t\tContainerId: pulumi.Any(mainScalewayContainer.Id),\n\t\t\tName:        pulumi.String(\"my-trigger\"),\n\t\t\tNats: \u0026containers.TriggerNatsArgs{\n\t\t\t\tAccountId: pulumi.Any(mainScalewayMnqNatsAccount.Id),\n\t\t\t\tSubject:   pulumi.String(\"MySubject\"),\n\t\t\t\tRegion:    pulumi.Any(mainScalewayMnqNatsAccount.Region),\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.containers.Trigger;\nimport com.pulumi.scaleway.containers.TriggerArgs;\nimport com.pulumi.scaleway.containers.inputs.TriggerNatsArgs;\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 Trigger(\"main\", TriggerArgs.builder()\n            .containerId(mainScalewayContainer.id())\n            .name(\"my-trigger\")\n            .nats(TriggerNatsArgs.builder()\n                .accountId(mainScalewayMnqNatsAccount.id())\n                .subject(\"MySubject\")\n                .region(mainScalewayMnqNatsAccount.region())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Trigger\n    properties:\n      containerId: ${mainScalewayContainer.id}\n      name: my-trigger\n      nats:\n        accountId: ${mainScalewayMnqNatsAccount.id}\n        subject: MySubject\n        region: ${mainScalewayMnqNatsAccount.region}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nContainer Triggers can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/containerTrigger:ContainerTrigger main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container to create a trigger for.\n"},"description":{"type":"string","description":"The description of the trigger.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:index/ContainerTriggerNats:ContainerTriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n"},"sqs":{"$ref":"#/types/scaleway:index/ContainerTriggerSqs:ContainerTriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n"}},"required":["containerId","name"],"inputProperties":{"containerId":{"type":"string","description":"The unique identifier of the container to create a trigger for.\n"},"description":{"type":"string","description":"The description of the trigger.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:index/ContainerTriggerNats:ContainerTriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"sqs":{"$ref":"#/types/scaleway:index/ContainerTriggerSqs:ContainerTriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n","willReplaceOnChanges":true}},"requiredInputs":["containerId"],"stateInputs":{"description":"Input properties used for looking up and filtering ContainerTrigger resources.\n","properties":{"containerId":{"type":"string","description":"The unique identifier of the container to create a trigger for.\n"},"description":{"type":"string","description":"The description of the trigger.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:index/ContainerTriggerNats:ContainerTriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"sqs":{"$ref":"#/types/scaleway:index/ContainerTriggerSqs:ContainerTriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/containertrigger.ContainerTrigger has been deprecated in favor of scaleway.containers/trigger.Trigger"},"scaleway:index/database:Database":{"description":"Creates and manages databases.\nFor more information, refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\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.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst mainDatabase = new scaleway.databases.Database(\"main\", {\n    instanceId: main.id,\n    name: \"my-new-database\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\nmain_database = scaleway.databases.Database(\"main\",\n    instance_id=main.id,\n    name=\"my-new-database\")\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.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var mainDatabase = new Scaleway.Databases.Database(\"main\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"my-new-database\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewDatabase(ctx, \"main\", \u0026databases.DatabaseArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"my-new-database\"),\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.Database;\nimport com.pulumi.scaleway.databases.DatabaseArgs;\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 Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var mainDatabase = new Database(\"mainDatabase\", DatabaseArgs.builder()\n            .instanceId(main.id())\n            .name(\"my-new-database\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  mainDatabase:\n    type: scaleway:databases:Database\n    name: main\n    properties:\n      instanceId: ${main.id}\n      name: my-new-database\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRDB Database can be imported using the `{region}/{id}/{DBNAME}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/database:Database rdb01_mydb fr-par/11111111-1111-1111-1111-111111111111/mydb\n```\n\n","properties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database.\n"},"managed":{"type":"boolean","description":"Whether the database is managed or not.\n"},"name":{"type":"string","description":"Name of the database (e.g. `my-new-database`).\n"},"owner":{"type":"string","description":"The name of the owner of the database.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n"},"size":{"type":"string","description":"Size of the database (in bytes).\n"}},"required":["instanceId","managed","name","owner","size"],"inputProperties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the database (e.g. `my-new-database`).\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Database resources.\n","properties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database.\n","willReplaceOnChanges":true},"managed":{"type":"boolean","description":"Whether the database is managed or not.\n"},"name":{"type":"string","description":"Name of the database (e.g. `my-new-database`).\n","willReplaceOnChanges":true},"owner":{"type":"string","description":"The name of the owner of the database.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true},"size":{"type":"string","description":"Size of the database (in bytes).\n"}},"type":"object"},"deprecationMessage":"scaleway.index/database.Database has been deprecated in favor of scaleway.databases/database.Database"},"scaleway:index/databaseAcl:DatabaseAcl":{"description":"Creates and manages Scaleway Database instance authorized IPs.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/#acl-rules-allowed-ips).\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.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst mainAcl = new scaleway.databases.Acl(\"main\", {\n    instanceId: main.id,\n    aclRules: [{\n        ip: \"1.2.3.4/32\",\n        description: \"foo\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\nmain_acl = scaleway.databases.Acl(\"main\",\n    instance_id=main.id,\n    acl_rules=[{\n        \"ip\": \"1.2.3.4/32\",\n        \"description\": \"foo\",\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.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var mainAcl = new Scaleway.Databases.Acl(\"main\", new()\n    {\n        InstanceId = main.Id,\n        AclRules = new[]\n        {\n            new Scaleway.Databases.Inputs.AclAclRuleArgs\n            {\n                Ip = \"1.2.3.4/32\",\n                Description = \"foo\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewAcl(ctx, \"main\", \u0026databases.AclArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tAclRules: databases.AclAclRuleArray{\n\t\t\t\t\u0026databases.AclAclRuleArgs{\n\t\t\t\t\tIp:          pulumi.String(\"1.2.3.4/32\"),\n\t\t\t\t\tDescription: pulumi.String(\"foo\"),\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.Acl;\nimport com.pulumi.scaleway.databases.AclArgs;\nimport com.pulumi.scaleway.databases.inputs.AclAclRuleArgs;\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 Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var mainAcl = new Acl(\"mainAcl\", AclArgs.builder()\n            .instanceId(main.id())\n            .aclRules(AclAclRuleArgs.builder()\n                .ip(\"1.2.3.4/32\")\n                .description(\"foo\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  mainAcl:\n    type: scaleway:databases:Acl\n    name: main\n    properties:\n      instanceId: ${main.id}\n      aclRules:\n        - ip: 1.2.3.4/32\n          description: foo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Multiple ACL Rules\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.databases.Acl(\"main\", {\n    instanceId: mainScalewayRdbInstance.id,\n    aclRules: [\n        {\n            ip: \"1.2.3.4/32\",\n            description: \"Office IP\",\n        },\n        {\n            ip: \"5.6.7.8/32\",\n            description: \"Home IP\",\n        },\n        {\n            ip: \"10.0.0.0/24\",\n            description: \"Internal network\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Acl(\"main\",\n    instance_id=main_scaleway_rdb_instance[\"id\"],\n    acl_rules=[\n        {\n            \"ip\": \"1.2.3.4/32\",\n            \"description\": \"Office IP\",\n        },\n        {\n            \"ip\": \"5.6.7.8/32\",\n            \"description\": \"Home IP\",\n        },\n        {\n            \"ip\": \"10.0.0.0/24\",\n            \"description\": \"Internal network\",\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.Databases.Acl(\"main\", new()\n    {\n        InstanceId = mainScalewayRdbInstance.Id,\n        AclRules = new[]\n        {\n            new Scaleway.Databases.Inputs.AclAclRuleArgs\n            {\n                Ip = \"1.2.3.4/32\",\n                Description = \"Office IP\",\n            },\n            new Scaleway.Databases.Inputs.AclAclRuleArgs\n            {\n                Ip = \"5.6.7.8/32\",\n                Description = \"Home IP\",\n            },\n            new Scaleway.Databases.Inputs.AclAclRuleArgs\n            {\n                Ip = \"10.0.0.0/24\",\n                Description = \"Internal network\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.NewAcl(ctx, \"main\", \u0026databases.AclArgs{\n\t\t\tInstanceId: pulumi.Any(mainScalewayRdbInstance.Id),\n\t\t\tAclRules: databases.AclAclRuleArray{\n\t\t\t\t\u0026databases.AclAclRuleArgs{\n\t\t\t\t\tIp:          pulumi.String(\"1.2.3.4/32\"),\n\t\t\t\t\tDescription: pulumi.String(\"Office IP\"),\n\t\t\t\t},\n\t\t\t\t\u0026databases.AclAclRuleArgs{\n\t\t\t\t\tIp:          pulumi.String(\"5.6.7.8/32\"),\n\t\t\t\t\tDescription: pulumi.String(\"Home IP\"),\n\t\t\t\t},\n\t\t\t\t\u0026databases.AclAclRuleArgs{\n\t\t\t\t\tIp:          pulumi.String(\"10.0.0.0/24\"),\n\t\t\t\t\tDescription: pulumi.String(\"Internal network\"),\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.databases.Acl;\nimport com.pulumi.scaleway.databases.AclArgs;\nimport com.pulumi.scaleway.databases.inputs.AclAclRuleArgs;\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 Acl(\"main\", AclArgs.builder()\n            .instanceId(mainScalewayRdbInstance.id())\n            .aclRules(            \n                AclAclRuleArgs.builder()\n                    .ip(\"1.2.3.4/32\")\n                    .description(\"Office IP\")\n                    .build(),\n                AclAclRuleArgs.builder()\n                    .ip(\"5.6.7.8/32\")\n                    .description(\"Home IP\")\n                    .build(),\n                AclAclRuleArgs.builder()\n                    .ip(\"10.0.0.0/24\")\n                    .description(\"Internal network\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Acl\n    properties:\n      instanceId: ${mainScalewayRdbInstance.id}\n      aclRules:\n        - ip: 1.2.3.4/32\n          description: Office IP\n        - ip: 5.6.7.8/32\n          description: Home IP\n        - ip: 10.0.0.0/24\n          description: Internal network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Dynamic ACL Rules with Variables\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\n// Map of allowed IPs with descriptions\nconst allowedIps = config.getObject\u003cRecord\u003cstring, string\u003e\u003e(\"allowedIps\") || {\n    \"1.2.3.4/32\": \"Office IP\",\n    \"10.0.0.0/24\": \"Internal network\",\n    \"5.6.7.8/32\": \"Home IP\",\n};\nconst main = new scaleway.databases.Acl(\"main\", {\n    aclRules: Object.entries(allowedIps).map(([k, v]) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n        ip: entry.key,\n        description: entry.value,\n    })),\n    instanceId: mainScalewayRdbInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\n# Map of allowed IPs with descriptions\nallowed_ips = config.get_object(\"allowedIps\")\nif allowed_ips is None:\n    allowed_ips = {\n        \"1.2.3.4/32\": \"Office IP\",\n        \"10.0.0.0/24\": \"Internal network\",\n        \"5.6.7.8/32\": \"Home IP\",\n    }\nmain = scaleway.databases.Acl(\"main\",\n    acl_rules=[{\n        \"ip\": entry[\"key\"],\n        \"description\": entry[\"value\"],\n    } for entry in [{\"key\": k, \"value\": v} for k, v in allowed_ips]],\n    instance_id=main_scaleway_rdb_instance[\"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 config = new Config();\n    // Map of allowed IPs with descriptions\n    var allowedIps = config.GetObject\u003cDictionary\u003cstring, string\u003e\u003e(\"allowedIps\") ?? \n    {\n        { \"1.2.3.4/32\", \"Office IP\" },\n        { \"10.0.0.0/24\", \"Internal network\" },\n        { \"5.6.7.8/32\", \"Home IP\" },\n    };\n    var main = new Scaleway.Databases.Acl(\"main\", new()\n    {\n        AclRules = allowedIps.Select(pair =\u003e new { pair.Key, pair.Value }).Select(entry =\u003e \n        {\n            return new Scaleway.Databases.Inputs.AclAclRuleArgs\n            {\n                Ip = entry.Key,\n                Description = entry.Value,\n            };\n        }).ToList(),\n        InstanceId = mainScalewayRdbInstance.Id,\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabase Instance can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/databaseAcl:DatabaseAcl acl01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"aclRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/DatabaseAclAclRule:DatabaseAclAclRule"},"description":"A list of ACLs (structure is described below)\n\n\u003e **Important:** The \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resource replaces **all** ACL rules for the given instance. Multiple \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resources targeting the same \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will conflict with each other. Use multiple \u003cspan pulumi-lang-nodejs=\"`aclRules`\" pulumi-lang-dotnet=\"`AclRules`\" pulumi-lang-go=\"`aclRules`\" pulumi-lang-python=\"`acl_rules`\" pulumi-lang-yaml=\"`aclRules`\" pulumi-lang-java=\"`aclRules`\"\u003e`acl_rules`\u003c/span\u003e blocks within a single resource instead.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the Database ACL.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n"}},"required":["aclRules","instanceId"],"inputProperties":{"aclRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/DatabaseAclAclRule:DatabaseAclAclRule"},"description":"A list of ACLs (structure is described below)\n\n\u003e **Important:** The \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resource replaces **all** ACL rules for the given instance. Multiple \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resources targeting the same \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will conflict with each other. Use multiple \u003cspan pulumi-lang-nodejs=\"`aclRules`\" pulumi-lang-dotnet=\"`AclRules`\" pulumi-lang-go=\"`aclRules`\" pulumi-lang-python=\"`acl_rules`\" pulumi-lang-yaml=\"`aclRules`\" pulumi-lang-java=\"`aclRules`\"\u003e`acl_rules`\u003c/span\u003e blocks within a single resource instead.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the Database ACL.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["aclRules","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabaseAcl resources.\n","properties":{"aclRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/DatabaseAclAclRule:DatabaseAclAclRule"},"description":"A list of ACLs (structure is described below)\n\n\u003e **Important:** The \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resource replaces **all** ACL rules for the given instance. Multiple \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.Acl`\" pulumi-lang-dotnet=\"`scaleway.databases.Acl`\" pulumi-lang-go=\"`databases.Acl`\" pulumi-lang-python=\"`databases.Acl`\" pulumi-lang-yaml=\"`scaleway.databases.Acl`\" pulumi-lang-java=\"`scaleway.databases.Acl`\"\u003e`scaleway.databases.Acl`\u003c/span\u003e resources targeting the same \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will conflict with each other. Use multiple \u003cspan pulumi-lang-nodejs=\"`aclRules`\" pulumi-lang-dotnet=\"`AclRules`\" pulumi-lang-go=\"`aclRules`\" pulumi-lang-python=\"`acl_rules`\" pulumi-lang-yaml=\"`aclRules`\" pulumi-lang-java=\"`aclRules`\"\u003e`acl_rules`\u003c/span\u003e blocks within a single resource instead.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the Database ACL.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/databaseacl.DatabaseAcl has been deprecated in favor of scaleway.databases/acl.Acl"},"scaleway:index/databaseBackup:DatabaseBackup":{"description":"Creates and manages database backups.\nFor more information, refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\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.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst mainDatabase = new scaleway.databases.Database(\"main\", {\n    instanceId: main.id,\n    name: \"database\",\n});\nconst mainDatabaseBackup = new scaleway.databases.DatabaseBackup(\"main\", {\n    instanceId: main.id,\n    databaseName: mainDatabase.name,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\nmain_database = scaleway.databases.Database(\"main\",\n    instance_id=main.id,\n    name=\"database\")\nmain_database_backup = scaleway.databases.DatabaseBackup(\"main\",\n    instance_id=main.id,\n    database_name=main_database.name)\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.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var mainDatabase = new Scaleway.Databases.Database(\"main\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"database\",\n    });\n\n    var mainDatabaseBackup = new Scaleway.Databases.DatabaseBackup(\"main\", new()\n    {\n        InstanceId = main.Id,\n        DatabaseName = mainDatabase.Name,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainDatabase, err := databases.NewDatabase(ctx, \"main\", \u0026databases.DatabaseArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"database\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewDatabaseBackup(ctx, \"main\", \u0026databases.DatabaseBackupArgs{\n\t\t\tInstanceId:   main.ID(),\n\t\t\tDatabaseName: mainDatabase.Name,\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.Database;\nimport com.pulumi.scaleway.databases.DatabaseArgs;\nimport com.pulumi.scaleway.databases.DatabaseBackup;\nimport com.pulumi.scaleway.databases.DatabaseBackupArgs;\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 Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var mainDatabase = new Database(\"mainDatabase\", DatabaseArgs.builder()\n            .instanceId(main.id())\n            .name(\"database\")\n            .build());\n\n        var mainDatabaseBackup = new DatabaseBackup(\"mainDatabaseBackup\", DatabaseBackupArgs.builder()\n            .instanceId(main.id())\n            .databaseName(mainDatabase.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  mainDatabase:\n    type: scaleway:databases:Database\n    name: main\n    properties:\n      instanceId: ${main.id}\n      name: database\n  mainDatabaseBackup:\n    type: scaleway:databases:DatabaseBackup\n    name: main\n    properties:\n      instanceId: ${main.id}\n      databaseName: ${mainDatabase.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With expiration\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.databases.DatabaseBackup(\"main\", {\n    instanceId: mainScalewayRdbInstance.id,\n    databaseName: mainScalewayRdbDatabase.name,\n    expiresAt: \"2022-06-16T07:48:44Z\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.DatabaseBackup(\"main\",\n    instance_id=main_scaleway_rdb_instance[\"id\"],\n    database_name=main_scaleway_rdb_database[\"name\"],\n    expires_at=\"2022-06-16T07:48:44Z\")\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.Databases.DatabaseBackup(\"main\", new()\n    {\n        InstanceId = mainScalewayRdbInstance.Id,\n        DatabaseName = mainScalewayRdbDatabase.Name,\n        ExpiresAt = \"2022-06-16T07:48:44Z\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.NewDatabaseBackup(ctx, \"main\", \u0026databases.DatabaseBackupArgs{\n\t\t\tInstanceId:   pulumi.Any(mainScalewayRdbInstance.Id),\n\t\t\tDatabaseName: pulumi.Any(mainScalewayRdbDatabase.Name),\n\t\t\tExpiresAt:    pulumi.String(\"2022-06-16T07:48:44Z\"),\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.databases.DatabaseBackup;\nimport com.pulumi.scaleway.databases.DatabaseBackupArgs;\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 DatabaseBackup(\"main\", DatabaseBackupArgs.builder()\n            .instanceId(mainScalewayRdbInstance.id())\n            .databaseName(mainScalewayRdbDatabase.name())\n            .expiresAt(\"2022-06-16T07:48:44Z\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:DatabaseBackup\n    properties:\n      instanceId: ${mainScalewayRdbInstance.id}\n      databaseName: ${mainScalewayRdbDatabase.name}\n      expiresAt: 2022-06-16T07:48:44Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabases can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/databaseBackup:DatabaseBackup mybackup fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"Creation date (Format ISO 8601).\n"},"databaseName":{"type":"string","description":"Name of the database of this backup."},"downloadUrl":{"type":"string","description":"URL you can download the backup from (when exporting)."},"downloadUrlExpiresAt":{"type":"string","description":"Expiration date of the download link (Format ISO 8601)."},"expiresAt":{"type":"string","description":"Expiration date (Format ISO 8601).\n\n\u003e **Important:** \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed after being set.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the backup.\n"},"instanceName":{"type":"string","description":"Name of the instance of the backup.\n"},"name":{"type":"string","description":"Name of the database (e.g. `my-database`).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n"},"sameRegion":{"type":"boolean","description":"Whether the backup is stored in the same region as the source instance."},"size":{"type":"integer","description":"Size of the backup (in bytes).\n"},"status":{"type":"string","description":"Status of the backup (creating, ready, restoring, deleting, error, exporting, locked)."},"updatedAt":{"type":"string","description":"Updated date (Format ISO 8601).\n"}},"required":["createdAt","databaseName","downloadUrl","downloadUrlExpiresAt","instanceId","instanceName","name","sameRegion","size","status","updatedAt"],"inputProperties":{"databaseName":{"type":"string","description":"Name of the database of this backup.","willReplaceOnChanges":true},"expiresAt":{"type":"string","description":"Expiration date (Format ISO 8601).\n\n\u003e **Important:** \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed after being set.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the backup.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"Name of the database (e.g. `my-database`).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true}},"requiredInputs":["databaseName","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabaseBackup resources.\n","properties":{"createdAt":{"type":"string","description":"Creation date (Format ISO 8601).\n"},"databaseName":{"type":"string","description":"Name of the database of this backup.","willReplaceOnChanges":true},"downloadUrl":{"type":"string","description":"URL you can download the backup from (when exporting)."},"downloadUrlExpiresAt":{"type":"string","description":"Expiration date of the download link (Format ISO 8601)."},"expiresAt":{"type":"string","description":"Expiration date (Format ISO 8601).\n\n\u003e **Important:** \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed after being set.\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the backup.\n","willReplaceOnChanges":true},"instanceName":{"type":"string","description":"Name of the instance of the backup.\n"},"name":{"type":"string","description":"Name of the database (e.g. `my-database`).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true},"sameRegion":{"type":"boolean","description":"Whether the backup is stored in the same region as the source instance."},"size":{"type":"integer","description":"Size of the backup (in bytes).\n"},"status":{"type":"string","description":"Status of the backup (creating, ready, restoring, deleting, error, exporting, locked)."},"updatedAt":{"type":"string","description":"Updated date (Format ISO 8601).\n"}},"type":"object"},"deprecationMessage":"scaleway.index/databasebackup.DatabaseBackup has been deprecated in favor of scaleway.databases/databasebackup.DatabaseBackup"},"scaleway:index/databaseInstance:DatabaseInstance":{"description":"Creates and manages Scaleway Database Instances.\nFor more information, see refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\n\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\n//## Example Basic\nconst main = new scaleway.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    encryptionAtRest: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Example Basic\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    encryption_at_rest=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    //## Example Basic\n    var main = new Scaleway.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        EncryptionAtRest = 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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Example Basic\n\t\t_, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:             pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:         pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:           pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:      pulumi.Bool(true),\n\t\t\tDisableBackup:    pulumi.Bool(true),\n\t\t\tUserName:         pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:         pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tEncryptionAtRest: 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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\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        //## Example Basic\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .encryptionAtRest(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Example Basic\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      encryptionAtRest: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n//## Example Engine Upgrade\n// Initial creation with PostgreSQL 14\nconst main = new scaleway.databases.Instance(\"main\", {\n    name: \"my-database\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-14\",\n    isHaCluster: false,\n    disableBackup: true,\n    userName: \"my_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nexport const upgradableVersions = main.upgradableVersions;\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Example Engine Upgrade\n# Initial creation with PostgreSQL 14\nmain = scaleway.databases.Instance(\"main\",\n    name=\"my-database\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-14\",\n    is_ha_cluster=False,\n    disable_backup=True,\n    user_name=\"my_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\npulumi.export(\"upgradableVersions\", main.upgradable_versions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //## Example Engine Upgrade\n    // Initial creation with PostgreSQL 14\n    var main = new Scaleway.Databases.Instance(\"main\", new()\n    {\n        Name = \"my-database\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-14\",\n        IsHaCluster = false,\n        DisableBackup = true,\n        UserName = \"my_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"upgradableVersions\"] = main.UpgradableVersions,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Example Engine Upgrade\n\t\t// Initial creation with PostgreSQL 14\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"my-database\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-14\"),\n\t\t\tIsHaCluster:   pulumi.Bool(false),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"upgradableVersions\", main.UpgradableVersions)\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\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        //## Example Engine Upgrade\n        // Initial creation with PostgreSQL 14\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"my-database\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-14\")\n            .isHaCluster(false)\n            .disableBackup(true)\n            .userName(\"my_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        ctx.export(\"upgradableVersions\", main.upgradableVersions());\n    }\n}\n```\n```yaml\nresources:\n  ### Example Engine Upgrade\n\n  # Initial creation with PostgreSQL 14\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: my-database\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-14\n      isHaCluster: false\n      disableBackup: true\n      userName: my_user\n      password: thiZ_is_v\u0026ry_s3cret\noutputs:\n  # Check available versions for upgrade\n  upgradableVersions: ${main.upgradableVersions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabase Instance can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/databaseInstance:DatabaseInstance rdb01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backupSameRegion":{"type":"boolean","description":"Boolean to store logical backups in the same region as the database instance"},"backupScheduleFrequency":{"type":"integer","description":"Backup schedule frequency in hours"},"backupScheduleRetention":{"type":"integer","description":"Backup schedule retention in days"},"certificate":{"type":"string","description":"Certificate of the Database Instance.\n"},"disableBackup":{"type":"boolean","description":"Disable automated backup for the database instance"},"encryptionAtRest":{"type":"boolean","description":"Enable or disable encryption at rest for the Database Instance.\n"},"endpointIp":{"type":"string","description":"(Deprecated) The IP of the Database Instance. Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute.\n","deprecationMessage":"Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute"},"endpointPort":{"type":"integer","description":"(Deprecated) The port of the Database Instance. Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute.\n","deprecationMessage":"Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute"},"engine":{"type":"string","description":"Database's engine version name (e.g., 'PostgreSQL-16', 'MySQL-8'). Changing this value triggers a blue/green upgrade using MajorUpgradeWorkflow with automatic endpoint migration"},"initSettings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set at database initialisation."},"isHaCluster":{"type":"boolean","description":"Enable or disable high availability for the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`isHaCluster`\" pulumi-lang-dotnet=\"`IsHaCluster`\" pulumi-lang-go=\"`isHaCluster`\" pulumi-lang-python=\"`is_ha_cluster`\" pulumi-lang-yaml=\"`isHaCluster`\" pulumi-lang-java=\"`isHaCluster`\"\u003e`is_ha_cluster`\u003c/span\u003e will recreate the Database Instance.\n"},"loadBalancer":{"$ref":"#/types/scaleway:index/DatabaseInstanceLoadBalancer:DatabaseInstanceLoadBalancer","description":"List of Load Balancer endpoints of the Database Instance.\n"},"logsPolicy":{"$ref":"#/types/scaleway:index/DatabaseInstanceLogsPolicy:DatabaseInstanceLogsPolicy","description":"Logs policy configuration"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"nodeType":{"type":"string","description":"The type of Database Instance you want to create (e.g. `db-dev-s`).\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will upgrade the Database Instance to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e without any\ninterruption.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, if you are using \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e storage, you should upgrade the \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e, and if you are using \u003cspan pulumi-lang-nodejs=\"`bssd`\" pulumi-lang-dotnet=\"`Bssd`\" pulumi-lang-go=\"`bssd`\" pulumi-lang-python=\"`bssd`\" pulumi-lang-yaml=\"`bssd`\" pulumi-lang-java=\"`bssd`\"\u003e`bssd`\u003c/span\u003e storage, you should increase the volume size before making any other changes to your Database Instance.\n"},"organizationId":{"type":"string","description":"The organization ID the Database Instance is associated with.\n"},"password":{"type":"string","description":"Password for the first user of the Database Instance. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/DatabaseInstancePrivateIp:DatabaseInstancePrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetwork":{"$ref":"#/types/scaleway:index/DatabaseInstancePrivateNetwork:DatabaseInstancePrivateNetwork","description":"List of Private Networks endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Database\nInstance is associated with.\n"},"readReplicas":{"type":"array","items":{"$ref":"#/types/scaleway:index/DatabaseInstanceReadReplica:DatabaseInstanceReadReplica"},"description":"List of read replicas of the Database Instance.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Database Instance should be created.\n"},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set on a running instance."},"snapshotId":{"type":"string","description":"The ID of an existing snapshot to restore or create the Database Instance from. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`engine`\" pulumi-lang-dotnet=\"`Engine`\" pulumi-lang-go=\"`engine`\" pulumi-lang-python=\"`engine`\" pulumi-lang-yaml=\"`engine`\" pulumi-lang-java=\"`engine`\"\u003e`engine`\u003c/span\u003e parameter and backup settings.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Database Instance.\n"},"upgradableVersions":{"type":"array","items":{"$ref":"#/types/scaleway:index/DatabaseInstanceUpgradableVersion:DatabaseInstanceUpgradableVersion"},"description":"List of available engine versions for upgrade. Each version contains:\n"},"userName":{"type":"string","description":"Identifier for the first user of the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e will recreate the Database Instance.\n"},"volumeSizeInGb":{"type":"integer","description":"Volume size (in GB). Cannot be used when \u003cspan pulumi-lang-nodejs=\"`volumeType`\" pulumi-lang-dotnet=\"`VolumeType`\" pulumi-lang-go=\"`volumeType`\" pulumi-lang-python=\"`volume_type`\" pulumi-lang-yaml=\"`volumeType`\" pulumi-lang-java=\"`volumeType`\"\u003e`volume_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, you should increase the volume size before making any other change to your Database Instance.\n"},"volumeType":{"type":"string","description":"Type of volume where data are stored (\u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sbs5k`\" pulumi-lang-dotnet=\"`Sbs5k`\" pulumi-lang-go=\"`sbs5k`\" pulumi-lang-python=\"`sbs_5k`\" pulumi-lang-yaml=\"`sbs5k`\" pulumi-lang-java=\"`sbs5k`\"\u003e`sbs_5k`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sbs15k`\" pulumi-lang-dotnet=\"`Sbs15k`\" pulumi-lang-go=\"`sbs15k`\" pulumi-lang-python=\"`sbs_15k`\" pulumi-lang-yaml=\"`sbs15k`\" pulumi-lang-java=\"`sbs15k`\"\u003e`sbs_15k`\u003c/span\u003e).\n"}},"required":["backupSameRegion","backupScheduleFrequency","backupScheduleRetention","certificate","endpointIp","endpointPort","engine","loadBalancer","logsPolicy","name","nodeType","organizationId","privateIps","projectId","readReplicas","settings","upgradableVersions","userName","volumeSizeInGb"],"inputProperties":{"backupSameRegion":{"type":"boolean","description":"Boolean to store logical backups in the same region as the database instance"},"backupScheduleFrequency":{"type":"integer","description":"Backup schedule frequency in hours"},"backupScheduleRetention":{"type":"integer","description":"Backup schedule retention in days"},"disableBackup":{"type":"boolean","description":"Disable automated backup for the database instance"},"encryptionAtRest":{"type":"boolean","description":"Enable or disable encryption at rest for the Database Instance.\n"},"engine":{"type":"string","description":"Database's engine version name (e.g., 'PostgreSQL-16', 'MySQL-8'). Changing this value triggers a blue/green upgrade using MajorUpgradeWorkflow with automatic endpoint migration"},"initSettings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set at database initialisation.","willReplaceOnChanges":true},"isHaCluster":{"type":"boolean","description":"Enable or disable high availability for the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`isHaCluster`\" pulumi-lang-dotnet=\"`IsHaCluster`\" pulumi-lang-go=\"`isHaCluster`\" pulumi-lang-python=\"`is_ha_cluster`\" pulumi-lang-yaml=\"`isHaCluster`\" pulumi-lang-java=\"`isHaCluster`\"\u003e`is_ha_cluster`\u003c/span\u003e will recreate the Database Instance.\n"},"loadBalancer":{"$ref":"#/types/scaleway:index/DatabaseInstanceLoadBalancer:DatabaseInstanceLoadBalancer","description":"List of Load Balancer endpoints of the Database Instance.\n"},"logsPolicy":{"$ref":"#/types/scaleway:index/DatabaseInstanceLogsPolicy:DatabaseInstanceLogsPolicy","description":"Logs policy configuration"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"nodeType":{"type":"string","description":"The type of Database Instance you want to create (e.g. `db-dev-s`).\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will upgrade the Database Instance to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e without any\ninterruption.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, if you are using \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e storage, you should upgrade the \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e, and if you are using \u003cspan pulumi-lang-nodejs=\"`bssd`\" pulumi-lang-dotnet=\"`Bssd`\" pulumi-lang-go=\"`bssd`\" pulumi-lang-python=\"`bssd`\" pulumi-lang-yaml=\"`bssd`\" pulumi-lang-java=\"`bssd`\"\u003e`bssd`\u003c/span\u003e storage, you should increase the volume size before making any other changes to your Database Instance.\n"},"password":{"type":"string","description":"Password for the first user of the Database Instance. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/DatabaseInstancePrivateIp:DatabaseInstancePrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetwork":{"$ref":"#/types/scaleway:index/DatabaseInstancePrivateNetwork:DatabaseInstancePrivateNetwork","description":"List of Private Networks endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Database\nInstance is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Database Instance should be created.\n","willReplaceOnChanges":true},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set on a running instance."},"snapshotId":{"type":"string","description":"The ID of an existing snapshot to restore or create the Database Instance from. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`engine`\" pulumi-lang-dotnet=\"`Engine`\" pulumi-lang-go=\"`engine`\" pulumi-lang-python=\"`engine`\" pulumi-lang-yaml=\"`engine`\" pulumi-lang-java=\"`engine`\"\u003e`engine`\u003c/span\u003e parameter and backup settings.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Database Instance.\n"},"userName":{"type":"string","description":"Identifier for the first user of the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e will recreate the Database Instance.\n","willReplaceOnChanges":true},"volumeSizeInGb":{"type":"integer","description":"Volume size (in GB). Cannot be used when \u003cspan pulumi-lang-nodejs=\"`volumeType`\" pulumi-lang-dotnet=\"`VolumeType`\" pulumi-lang-go=\"`volumeType`\" pulumi-lang-python=\"`volume_type`\" pulumi-lang-yaml=\"`volumeType`\" pulumi-lang-java=\"`volumeType`\"\u003e`volume_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, you should increase the volume size before making any other change to your Database Instance.\n"},"volumeType":{"type":"string","description":"Type of volume where data are stored (\u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sbs5k`\" pulumi-lang-dotnet=\"`Sbs5k`\" pulumi-lang-go=\"`sbs5k`\" pulumi-lang-python=\"`sbs_5k`\" pulumi-lang-yaml=\"`sbs5k`\" pulumi-lang-java=\"`sbs5k`\"\u003e`sbs_5k`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sbs15k`\" pulumi-lang-dotnet=\"`Sbs15k`\" pulumi-lang-go=\"`sbs15k`\" pulumi-lang-python=\"`sbs_15k`\" pulumi-lang-yaml=\"`sbs15k`\" pulumi-lang-java=\"`sbs15k`\"\u003e`sbs_15k`\u003c/span\u003e).\n"}},"requiredInputs":["nodeType"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabaseInstance resources.\n","properties":{"backupSameRegion":{"type":"boolean","description":"Boolean to store logical backups in the same region as the database instance"},"backupScheduleFrequency":{"type":"integer","description":"Backup schedule frequency in hours"},"backupScheduleRetention":{"type":"integer","description":"Backup schedule retention in days"},"certificate":{"type":"string","description":"Certificate of the Database Instance.\n"},"disableBackup":{"type":"boolean","description":"Disable automated backup for the database instance"},"encryptionAtRest":{"type":"boolean","description":"Enable or disable encryption at rest for the Database Instance.\n"},"endpointIp":{"type":"string","description":"(Deprecated) The IP of the Database Instance. Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute.\n","deprecationMessage":"Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute"},"endpointPort":{"type":"integer","description":"(Deprecated) The port of the Database Instance. Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute.\n","deprecationMessage":"Please use the\u003cspan pulumi-lang-nodejs=\" privateNetwork \" pulumi-lang-dotnet=\" PrivateNetwork \" pulumi-lang-go=\" privateNetwork \" pulumi-lang-python=\" private_network \" pulumi-lang-yaml=\" privateNetwork \" pulumi-lang-java=\" privateNetwork \"\u003e private_network \u003c/span\u003eor the\u003cspan pulumi-lang-nodejs=\" loadBalancer \" pulumi-lang-dotnet=\" LoadBalancer \" pulumi-lang-go=\" loadBalancer \" pulumi-lang-python=\" load_balancer \" pulumi-lang-yaml=\" loadBalancer \" pulumi-lang-java=\" loadBalancer \"\u003e load_balancer \u003c/span\u003eattribute"},"engine":{"type":"string","description":"Database's engine version name (e.g., 'PostgreSQL-16', 'MySQL-8'). Changing this value triggers a blue/green upgrade using MajorUpgradeWorkflow with automatic endpoint migration"},"initSettings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set at database initialisation.","willReplaceOnChanges":true},"isHaCluster":{"type":"boolean","description":"Enable or disable high availability for the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`isHaCluster`\" pulumi-lang-dotnet=\"`IsHaCluster`\" pulumi-lang-go=\"`isHaCluster`\" pulumi-lang-python=\"`is_ha_cluster`\" pulumi-lang-yaml=\"`isHaCluster`\" pulumi-lang-java=\"`isHaCluster`\"\u003e`is_ha_cluster`\u003c/span\u003e will recreate the Database Instance.\n"},"loadBalancer":{"$ref":"#/types/scaleway:index/DatabaseInstanceLoadBalancer:DatabaseInstanceLoadBalancer","description":"List of Load Balancer endpoints of the Database Instance.\n"},"logsPolicy":{"$ref":"#/types/scaleway:index/DatabaseInstanceLogsPolicy:DatabaseInstanceLogsPolicy","description":"Logs policy configuration"},"name":{"type":"string","description":"The name of the Database Instance.\n"},"nodeType":{"type":"string","description":"The type of Database Instance you want to create (e.g. `db-dev-s`).\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will upgrade the Database Instance to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e without any\ninterruption.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, if you are using \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e storage, you should upgrade the \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e, and if you are using \u003cspan pulumi-lang-nodejs=\"`bssd`\" pulumi-lang-dotnet=\"`Bssd`\" pulumi-lang-go=\"`bssd`\" pulumi-lang-python=\"`bssd`\" pulumi-lang-yaml=\"`bssd`\" pulumi-lang-java=\"`bssd`\"\u003e`bssd`\u003c/span\u003e storage, you should increase the volume size before making any other changes to your Database Instance.\n"},"organizationId":{"type":"string","description":"The organization ID the Database Instance is associated with.\n"},"password":{"type":"string","description":"Password for the first user of the Database Instance. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/DatabaseInstancePrivateIp:DatabaseInstancePrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetwork":{"$ref":"#/types/scaleway:index/DatabaseInstancePrivateNetwork:DatabaseInstancePrivateNetwork","description":"List of Private Networks endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Database\nInstance is associated with.\n","willReplaceOnChanges":true},"readReplicas":{"type":"array","items":{"$ref":"#/types/scaleway:index/DatabaseInstanceReadReplica:DatabaseInstanceReadReplica"},"description":"List of read replicas of the Database Instance.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Database Instance should be created.\n","willReplaceOnChanges":true},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of engine settings to be set on a running instance."},"snapshotId":{"type":"string","description":"The ID of an existing snapshot to restore or create the Database Instance from. Conflicts with the \u003cspan pulumi-lang-nodejs=\"`engine`\" pulumi-lang-dotnet=\"`Engine`\" pulumi-lang-go=\"`engine`\" pulumi-lang-python=\"`engine`\" pulumi-lang-yaml=\"`engine`\" pulumi-lang-java=\"`engine`\"\u003e`engine`\u003c/span\u003e parameter and backup settings.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Database Instance.\n"},"upgradableVersions":{"type":"array","items":{"$ref":"#/types/scaleway:index/DatabaseInstanceUpgradableVersion:DatabaseInstanceUpgradableVersion"},"description":"List of available engine versions for upgrade. Each version contains:\n"},"userName":{"type":"string","description":"Identifier for the first user of the Database Instance.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e will recreate the Database Instance.\n","willReplaceOnChanges":true},"volumeSizeInGb":{"type":"integer","description":"Volume size (in GB). Cannot be used when \u003cspan pulumi-lang-nodejs=\"`volumeType`\" pulumi-lang-dotnet=\"`VolumeType`\" pulumi-lang-go=\"`volumeType`\" pulumi-lang-python=\"`volume_type`\" pulumi-lang-yaml=\"`volumeType`\" pulumi-lang-java=\"`volumeType`\"\u003e`volume_type`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e.\n\n\u003e **Important** Once your Database Instance reaches \u003cspan pulumi-lang-nodejs=\"`diskFull`\" pulumi-lang-dotnet=\"`DiskFull`\" pulumi-lang-go=\"`diskFull`\" pulumi-lang-python=\"`disk_full`\" pulumi-lang-yaml=\"`diskFull`\" pulumi-lang-java=\"`diskFull`\"\u003e`disk_full`\u003c/span\u003e status, you should increase the volume size before making any other change to your Database Instance.\n"},"volumeType":{"type":"string","description":"Type of volume where data are stored (\u003cspan pulumi-lang-nodejs=\"`lssd`\" pulumi-lang-dotnet=\"`Lssd`\" pulumi-lang-go=\"`lssd`\" pulumi-lang-python=\"`lssd`\" pulumi-lang-yaml=\"`lssd`\" pulumi-lang-java=\"`lssd`\"\u003e`lssd`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sbs5k`\" pulumi-lang-dotnet=\"`Sbs5k`\" pulumi-lang-go=\"`sbs5k`\" pulumi-lang-python=\"`sbs_5k`\" pulumi-lang-yaml=\"`sbs5k`\" pulumi-lang-java=\"`sbs5k`\"\u003e`sbs_5k`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sbs15k`\" pulumi-lang-dotnet=\"`Sbs15k`\" pulumi-lang-go=\"`sbs15k`\" pulumi-lang-python=\"`sbs_15k`\" pulumi-lang-yaml=\"`sbs15k`\" pulumi-lang-java=\"`sbs15k`\"\u003e`sbs_15k`\u003c/span\u003e).\n"}},"type":"object"},"deprecationMessage":"scaleway.index/databaseinstance.DatabaseInstance has been deprecated in favor of scaleway.databases/instance.Instance"},"scaleway:index/databasePrivilege:DatabasePrivilege":{"description":"Create and manage Scaleway database privileges.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/#user-and-permissions).\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.databases.Instance(\"main\", {\n    name: \"rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-11\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst mainDatabase = new scaleway.databases.Database(\"main\", {\n    instanceId: main.id,\n    name: \"database\",\n});\nconst mainUser = new scaleway.databases.User(\"main\", {\n    instanceId: main.id,\n    name: \"my-db-user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    isAdmin: false,\n});\nconst mainPrivilege = new scaleway.databases.Privilege(\"main\", {\n    instanceId: main.id,\n    userName: mainUser.name,\n    databaseName: mainDatabase.name,\n    permission: \"all\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Instance(\"main\",\n    name=\"rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-11\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\nmain_database = scaleway.databases.Database(\"main\",\n    instance_id=main.id,\n    name=\"database\")\nmain_user = scaleway.databases.User(\"main\",\n    instance_id=main.id,\n    name=\"my-db-user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    is_admin=False)\nmain_privilege = scaleway.databases.Privilege(\"main\",\n    instance_id=main.id,\n    user_name=main_user.name,\n    database_name=main_database.name,\n    permission=\"all\")\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.Databases.Instance(\"main\", new()\n    {\n        Name = \"rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-11\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var mainDatabase = new Scaleway.Databases.Database(\"main\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"database\",\n    });\n\n    var mainUser = new Scaleway.Databases.User(\"main\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"my-db-user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        IsAdmin = false,\n    });\n\n    var mainPrivilege = new Scaleway.Databases.Privilege(\"main\", new()\n    {\n        InstanceId = main.Id,\n        UserName = mainUser.Name,\n        DatabaseName = mainDatabase.Name,\n        Permission = \"all\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-11\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainDatabase, err := databases.NewDatabase(ctx, \"main\", \u0026databases.DatabaseArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"database\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainUser, err := databases.NewUser(ctx, \"main\", \u0026databases.UserArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"my-db-user\"),\n\t\t\tPassword:   pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tIsAdmin:    pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewPrivilege(ctx, \"main\", \u0026databases.PrivilegeArgs{\n\t\t\tInstanceId:   main.ID(),\n\t\t\tUserName:     mainUser.Name,\n\t\t\tDatabaseName: mainDatabase.Name,\n\t\t\tPermission:   pulumi.String(\"all\"),\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.Database;\nimport com.pulumi.scaleway.databases.DatabaseArgs;\nimport com.pulumi.scaleway.databases.User;\nimport com.pulumi.scaleway.databases.UserArgs;\nimport com.pulumi.scaleway.databases.Privilege;\nimport com.pulumi.scaleway.databases.PrivilegeArgs;\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 Instance(\"main\", InstanceArgs.builder()\n            .name(\"rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-11\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var mainDatabase = new Database(\"mainDatabase\", DatabaseArgs.builder()\n            .instanceId(main.id())\n            .name(\"database\")\n            .build());\n\n        var mainUser = new User(\"mainUser\", UserArgs.builder()\n            .instanceId(main.id())\n            .name(\"my-db-user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .isAdmin(false)\n            .build());\n\n        var mainPrivilege = new Privilege(\"mainPrivilege\", PrivilegeArgs.builder()\n            .instanceId(main.id())\n            .userName(mainUser.name())\n            .databaseName(mainDatabase.name())\n            .permission(\"all\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-11\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  mainDatabase:\n    type: scaleway:databases:Database\n    name: main\n    properties:\n      instanceId: ${main.id}\n      name: database\n  mainUser:\n    type: scaleway:databases:User\n    name: main\n    properties:\n      instanceId: ${main.id}\n      name: my-db-user\n      password: thiZ_is_v\u0026ry_s3cret\n      isAdmin: false\n  mainPrivilege:\n    type: scaleway:databases:Privilege\n    name: main\n    properties:\n      instanceId: ${main.id}\n      userName: ${mainUser.name}\n      databaseName: ${mainDatabase.name}\n      permission: all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThe user privileges can be imported using the `{region}/{instance_id}/{database_name}/{user_name}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/databasePrivilege:DatabasePrivilege o fr-par/11111111-1111-1111-1111-111111111111/database_name/foo\n```\n\n","properties":{"databaseName":{"type":"string","description":"Name of the database (e.g. `my-db-name`).\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n"},"permission":{"type":"string","description":"Permission to set. Valid values are \u003cspan pulumi-lang-nodejs=\"`readonly`\" pulumi-lang-dotnet=\"`Readonly`\" pulumi-lang-go=\"`readonly`\" pulumi-lang-python=\"`readonly`\" pulumi-lang-yaml=\"`readonly`\" pulumi-lang-java=\"`readonly`\"\u003e`readonly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n"},"userName":{"type":"string","description":"Name of the user (e.g. `my-db-user`).\n"}},"required":["databaseName","instanceId","permission","userName"],"inputProperties":{"databaseName":{"type":"string","description":"Name of the database (e.g. `my-db-name`).\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Permission to set. Valid values are \u003cspan pulumi-lang-nodejs=\"`readonly`\" pulumi-lang-dotnet=\"`Readonly`\" pulumi-lang-go=\"`readonly`\" pulumi-lang-python=\"`readonly`\" pulumi-lang-yaml=\"`readonly`\" pulumi-lang-java=\"`readonly`\"\u003e`readonly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"Name of the user (e.g. `my-db-user`).\n"}},"requiredInputs":["databaseName","instanceId","permission","userName"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabasePrivilege resources.\n","properties":{"databaseName":{"type":"string","description":"Name of the database (e.g. `my-db-name`).\n"},"instanceId":{"type":"string","description":"UUID of the Database Instance.\n","willReplaceOnChanges":true},"permission":{"type":"string","description":"Permission to set. Valid values are \u003cspan pulumi-lang-nodejs=\"`readonly`\" pulumi-lang-dotnet=\"`Readonly`\" pulumi-lang-go=\"`readonly`\" pulumi-lang-python=\"`readonly`\" pulumi-lang-yaml=\"`readonly`\" pulumi-lang-java=\"`readonly`\"\u003e`readonly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"Name of the user (e.g. `my-db-user`).\n"}},"type":"object"},"deprecationMessage":"scaleway.index/databaseprivilege.DatabasePrivilege has been deprecated in favor of scaleway.databases/privilege.Privilege"},"scaleway:index/databaseReadReplica:DatabaseReadReplica":{"description":"Creates and manages Read Replicas.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\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 instance = new scaleway.databases.Instance(\"instance\", {\n    name: \"test-rdb-rr-update\",\n    nodeType: \"db-dev-s\",\n    engine: \"PostgreSQL-14\",\n    isHaCluster: false,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    tags: [\n        \"terraform-test\",\n        \"scaleway_rdb_read_replica\",\n        \"minimal\",\n    ],\n});\nconst replica = new scaleway.databases.ReadReplica(\"replica\", {\n    instanceId: instance.id,\n    directAccess: {},\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ninstance = scaleway.databases.Instance(\"instance\",\n    name=\"test-rdb-rr-update\",\n    node_type=\"db-dev-s\",\n    engine=\"PostgreSQL-14\",\n    is_ha_cluster=False,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    tags=[\n        \"terraform-test\",\n        \"scaleway_rdb_read_replica\",\n        \"minimal\",\n    ])\nreplica = scaleway.databases.ReadReplica(\"replica\",\n    instance_id=instance.id,\n    direct_access={})\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 instance = new Scaleway.Databases.Instance(\"instance\", new()\n    {\n        Name = \"test-rdb-rr-update\",\n        NodeType = \"db-dev-s\",\n        Engine = \"PostgreSQL-14\",\n        IsHaCluster = false,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        Tags = new[]\n        {\n            \"terraform-test\",\n            \"scaleway_rdb_read_replica\",\n            \"minimal\",\n        },\n    });\n\n    var replica = new Scaleway.Databases.ReadReplica(\"replica\", new()\n    {\n        InstanceId = instance.Id,\n        DirectAccess = null,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance, err := databases.NewInstance(ctx, \"instance\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb-rr-update\"),\n\t\t\tNodeType:      pulumi.String(\"db-dev-s\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-14\"),\n\t\t\tIsHaCluster:   pulumi.Bool(false),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform-test\"),\n\t\t\t\tpulumi.String(\"scaleway_rdb_read_replica\"),\n\t\t\t\tpulumi.String(\"minimal\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewReadReplica(ctx, \"replica\", \u0026databases.ReadReplicaArgs{\n\t\t\tInstanceId:   instance.ID(),\n\t\t\tDirectAccess: \u0026databases.ReadReplicaDirectAccessArgs{},\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.ReadReplica;\nimport com.pulumi.scaleway.databases.ReadReplicaArgs;\nimport com.pulumi.scaleway.databases.inputs.ReadReplicaDirectAccessArgs;\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 instance = new Instance(\"instance\", InstanceArgs.builder()\n            .name(\"test-rdb-rr-update\")\n            .nodeType(\"db-dev-s\")\n            .engine(\"PostgreSQL-14\")\n            .isHaCluster(false)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .tags(            \n                \"terraform-test\",\n                \"scaleway_rdb_read_replica\",\n                \"minimal\")\n            .build());\n\n        var replica = new ReadReplica(\"replica\", ReadReplicaArgs.builder()\n            .instanceId(instance.id())\n            .directAccess(ReadReplicaDirectAccessArgs.builder()\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb-rr-update\n      nodeType: db-dev-s\n      engine: PostgreSQL-14\n      isHaCluster: false\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      tags:\n        - terraform-test\n        - scaleway_rdb_read_replica\n        - minimal\n  replica:\n    type: scaleway:databases:ReadReplica\n    properties:\n      instanceId: ${instance.id}\n      directAccess: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private network with static endpoint\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst instance = new scaleway.databases.Instance(\"instance\", {\n    name: \"rdb_instance\",\n    nodeType: \"db-dev-s\",\n    engine: \"PostgreSQL-14\",\n    isHaCluster: false,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst replica = new scaleway.databases.ReadReplica(\"replica\", {\n    instanceId: instance.id,\n    privateNetwork: {\n        privateNetworkId: pn.id,\n        serviceIp: \"192.168.1.254/24\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ninstance = scaleway.databases.Instance(\"instance\",\n    name=\"rdb_instance\",\n    node_type=\"db-dev-s\",\n    engine=\"PostgreSQL-14\",\n    is_ha_cluster=False,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\npn = scaleway.network.PrivateNetwork(\"pn\")\nreplica = scaleway.databases.ReadReplica(\"replica\",\n    instance_id=instance.id,\n    private_network={\n        \"private_network_id\": pn.id,\n        \"service_ip\": \"192.168.1.254/24\",\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 instance = new Scaleway.Databases.Instance(\"instance\", new()\n    {\n        Name = \"rdb_instance\",\n        NodeType = \"db-dev-s\",\n        Engine = \"PostgreSQL-14\",\n        IsHaCluster = false,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var replica = new Scaleway.Databases.ReadReplica(\"replica\", new()\n    {\n        InstanceId = instance.Id,\n        PrivateNetwork = new Scaleway.Databases.Inputs.ReadReplicaPrivateNetworkArgs\n        {\n            PrivateNetworkId = pn.Id,\n            ServiceIp = \"192.168.1.254/24\",\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/databases\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance, err := databases.NewInstance(ctx, \"instance\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"rdb_instance\"),\n\t\t\tNodeType:      pulumi.String(\"db-dev-s\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-14\"),\n\t\t\tIsHaCluster:   pulumi.Bool(false),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewReadReplica(ctx, \"replica\", \u0026databases.ReadReplicaArgs{\n\t\t\tInstanceId: instance.ID(),\n\t\t\tPrivateNetwork: \u0026databases.ReadReplicaPrivateNetworkArgs{\n\t\t\t\tPrivateNetworkId: pn.ID(),\n\t\t\t\tServiceIp:        pulumi.String(\"192.168.1.254/24\"),\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.databases.ReadReplica;\nimport com.pulumi.scaleway.databases.ReadReplicaArgs;\nimport com.pulumi.scaleway.databases.inputs.ReadReplicaPrivateNetworkArgs;\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 instance = new Instance(\"instance\", InstanceArgs.builder()\n            .name(\"rdb_instance\")\n            .nodeType(\"db-dev-s\")\n            .engine(\"PostgreSQL-14\")\n            .isHaCluster(false)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var pn = new PrivateNetwork(\"pn\");\n\n        var replica = new ReadReplica(\"replica\", ReadReplicaArgs.builder()\n            .instanceId(instance.id())\n            .privateNetwork(ReadReplicaPrivateNetworkArgs.builder()\n                .privateNetworkId(pn.id())\n                .serviceIp(\"192.168.1.254/24\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance:\n    type: scaleway:databases:Instance\n    properties:\n      name: rdb_instance\n      nodeType: db-dev-s\n      engine: PostgreSQL-14\n      isHaCluster: false\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  pn:\n    type: scaleway:network:PrivateNetwork\n  replica:\n    type: scaleway:databases:ReadReplica\n    properties:\n      instanceId: ${instance.id}\n      privateNetwork:\n        privateNetworkId: ${pn.id}\n        serviceIp: 192.168.1.254/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private network with IPAM\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst instance = new scaleway.databases.Instance(\"instance\", {\n    name: \"rdb_instance\",\n    nodeType: \"db-dev-s\",\n    engine: \"PostgreSQL-14\",\n    isHaCluster: false,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst replica = new scaleway.databases.ReadReplica(\"replica\", {\n    instanceId: instance.id,\n    privateNetwork: {\n        privateNetworkId: pn.id,\n        enableIpam: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ninstance = scaleway.databases.Instance(\"instance\",\n    name=\"rdb_instance\",\n    node_type=\"db-dev-s\",\n    engine=\"PostgreSQL-14\",\n    is_ha_cluster=False,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\npn = scaleway.network.PrivateNetwork(\"pn\")\nreplica = scaleway.databases.ReadReplica(\"replica\",\n    instance_id=instance.id,\n    private_network={\n        \"private_network_id\": pn.id,\n        \"enable_ipam\": True,\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 instance = new Scaleway.Databases.Instance(\"instance\", new()\n    {\n        Name = \"rdb_instance\",\n        NodeType = \"db-dev-s\",\n        Engine = \"PostgreSQL-14\",\n        IsHaCluster = false,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var replica = new Scaleway.Databases.ReadReplica(\"replica\", new()\n    {\n        InstanceId = instance.Id,\n        PrivateNetwork = new Scaleway.Databases.Inputs.ReadReplicaPrivateNetworkArgs\n        {\n            PrivateNetworkId = pn.Id,\n            EnableIpam = true,\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/databases\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance, err := databases.NewInstance(ctx, \"instance\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"rdb_instance\"),\n\t\t\tNodeType:      pulumi.String(\"db-dev-s\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-14\"),\n\t\t\tIsHaCluster:   pulumi.Bool(false),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewReadReplica(ctx, \"replica\", \u0026databases.ReadReplicaArgs{\n\t\t\tInstanceId: instance.ID(),\n\t\t\tPrivateNetwork: \u0026databases.ReadReplicaPrivateNetworkArgs{\n\t\t\t\tPrivateNetworkId: pn.ID(),\n\t\t\t\tEnableIpam:       pulumi.Bool(true),\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.databases.ReadReplica;\nimport com.pulumi.scaleway.databases.ReadReplicaArgs;\nimport com.pulumi.scaleway.databases.inputs.ReadReplicaPrivateNetworkArgs;\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 instance = new Instance(\"instance\", InstanceArgs.builder()\n            .name(\"rdb_instance\")\n            .nodeType(\"db-dev-s\")\n            .engine(\"PostgreSQL-14\")\n            .isHaCluster(false)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var pn = new PrivateNetwork(\"pn\");\n\n        var replica = new ReadReplica(\"replica\", ReadReplicaArgs.builder()\n            .instanceId(instance.id())\n            .privateNetwork(ReadReplicaPrivateNetworkArgs.builder()\n                .privateNetworkId(pn.id())\n                .enableIpam(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  instance:\n    type: scaleway:databases:Instance\n    properties:\n      name: rdb_instance\n      nodeType: db-dev-s\n      engine: PostgreSQL-14\n      isHaCluster: false\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  pn:\n    type: scaleway:network:PrivateNetwork\n  replica:\n    type: scaleway:databases:ReadReplica\n    properties:\n      instanceId: ${instance.id}\n      privateNetwork:\n        privateNetworkId: ${pn.id}\n        enableIpam: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRead Replicas can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/databaseReadReplica:DatabaseReadReplica rr fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"directAccess":{"$ref":"#/types/scaleway:index/DatabaseReadReplicaDirectAccess:DatabaseReadReplicaDirectAccess","description":"Creates a direct access endpoint to rdb replica.\n"},"instanceId":{"type":"string","description":"UUID of the rdb instance.\n\n\u003e **Important:** The replica musts contains at least one \u003cspan pulumi-lang-nodejs=\"`directAccess`\" pulumi-lang-dotnet=\"`DirectAccess`\" pulumi-lang-go=\"`directAccess`\" pulumi-lang-python=\"`direct_access`\" pulumi-lang-yaml=\"`directAccess`\" pulumi-lang-java=\"`directAccess`\"\u003e`direct_access`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e. It can contain both.\n"},"privateNetwork":{"$ref":"#/types/scaleway:index/DatabaseReadReplicaPrivateNetwork:DatabaseReadReplicaPrivateNetwork","description":"Create an endpoint in a Private Netork.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Read Replica should be created.\n"},"sameZone":{"type":"boolean","description":"Defines whether to create the replica in the same availability zone as the main instance nodes or not.\n"}},"required":["instanceId"],"inputProperties":{"directAccess":{"$ref":"#/types/scaleway:index/DatabaseReadReplicaDirectAccess:DatabaseReadReplicaDirectAccess","description":"Creates a direct access endpoint to rdb replica.\n"},"instanceId":{"type":"string","description":"UUID of the rdb instance.\n\n\u003e **Important:** The replica musts contains at least one \u003cspan pulumi-lang-nodejs=\"`directAccess`\" pulumi-lang-dotnet=\"`DirectAccess`\" pulumi-lang-go=\"`directAccess`\" pulumi-lang-python=\"`direct_access`\" pulumi-lang-yaml=\"`directAccess`\" pulumi-lang-java=\"`directAccess`\"\u003e`direct_access`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e. It can contain both.\n"},"privateNetwork":{"$ref":"#/types/scaleway:index/DatabaseReadReplicaPrivateNetwork:DatabaseReadReplicaPrivateNetwork","description":"Create an endpoint in a Private Netork.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Read Replica should be created.\n","willReplaceOnChanges":true},"sameZone":{"type":"boolean","description":"Defines whether to create the replica in the same availability zone as the main instance nodes or not.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabaseReadReplica resources.\n","properties":{"directAccess":{"$ref":"#/types/scaleway:index/DatabaseReadReplicaDirectAccess:DatabaseReadReplicaDirectAccess","description":"Creates a direct access endpoint to rdb replica.\n"},"instanceId":{"type":"string","description":"UUID of the rdb instance.\n\n\u003e **Important:** The replica musts contains at least one \u003cspan pulumi-lang-nodejs=\"`directAccess`\" pulumi-lang-dotnet=\"`DirectAccess`\" pulumi-lang-go=\"`directAccess`\" pulumi-lang-python=\"`direct_access`\" pulumi-lang-yaml=\"`directAccess`\" pulumi-lang-java=\"`directAccess`\"\u003e`direct_access`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e. It can contain both.\n"},"privateNetwork":{"$ref":"#/types/scaleway:index/DatabaseReadReplicaPrivateNetwork:DatabaseReadReplicaPrivateNetwork","description":"Create an endpoint in a Private Netork.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the Read Replica should be created.\n","willReplaceOnChanges":true},"sameZone":{"type":"boolean","description":"Defines whether to create the replica in the same availability zone as the main instance nodes or not.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/databasereadreplica.DatabaseReadReplica has been deprecated in favor of scaleway.databases/readreplica.ReadReplica"},"scaleway:index/databaseUser:DatabaseUser":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.User`\" pulumi-lang-dotnet=\"`scaleway.databases.User`\" pulumi-lang-go=\"`databases.User`\" pulumi-lang-python=\"`databases.User`\" pulumi-lang-yaml=\"`scaleway.databases.User`\" pulumi-lang-java=\"`scaleway.databases.User`\"\u003e`scaleway.databases.User`\u003c/span\u003e resource creates and manages database users.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\n\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as random from \"@pulumi/random\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n//## Basic user creation\nconst main = new scaleway.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n});\nconst dbPassword = new random.index.Password(\"db_password\", {\n    length: 20,\n    special: true,\n    upper: true,\n    lower: true,\n    numeric: true,\n    minUpper: 1,\n    minLower: 1,\n    minNumeric: 1,\n    minSpecial: 1,\n    overrideSpecial: \"!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?\",\n});\nconst dbAdmin = new scaleway.databases.User(\"db_admin\", {\n    instanceId: main.id,\n    name: \"devtools\",\n    password: dbPassword.result,\n    isAdmin: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_random as random\nimport pulumiverse_scaleway as scaleway\n\n### Basic user creation\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\")\ndb_password = random.index.Password(\"db_password\",\n    length=20,\n    special=True,\n    upper=True,\n    lower=True,\n    numeric=True,\n    min_upper=1,\n    min_lower=1,\n    min_numeric=1,\n    min_special=1,\n    override_special=!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?)\ndb_admin = scaleway.databases.User(\"db_admin\",\n    instance_id=main.id,\n    name=\"devtools\",\n    password=db_password[\"result\"],\n    is_admin=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Random = Pulumi.Random;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //## Basic user creation\n    var main = new Scaleway.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n    });\n\n    var dbPassword = new Random.Index.Password(\"db_password\", new()\n    {\n        Length = 20,\n        Special = true,\n        Upper = true,\n        Lower = true,\n        Numeric = true,\n        MinUpper = 1,\n        MinLower = 1,\n        MinNumeric = 1,\n        MinSpecial = 1,\n        OverrideSpecial = \"!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?\",\n    });\n\n    var dbAdmin = new Scaleway.Databases.User(\"db_admin\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"devtools\",\n        Password = dbPassword.Result,\n        IsAdmin = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Basic user creation\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdbPassword, err := random.NewPassword(ctx, \"db_password\", \u0026random.PasswordArgs{\n\t\t\tLength:          20,\n\t\t\tSpecial:         true,\n\t\t\tUpper:           true,\n\t\t\tLower:           true,\n\t\t\tNumeric:         true,\n\t\t\tMinUpper:        1,\n\t\t\tMinLower:        1,\n\t\t\tMinNumeric:      1,\n\t\t\tMinSpecial:      1,\n\t\t\tOverrideSpecial: \"!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewUser(ctx, \"db_admin\", \u0026databases.UserArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"devtools\"),\n\t\t\tPassword:   dbPassword.Result,\n\t\t\tIsAdmin:    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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.random.Password;\nimport com.pulumi.random.PasswordArgs;\nimport com.pulumi.scaleway.databases.User;\nimport com.pulumi.scaleway.databases.UserArgs;\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        //## Basic user creation\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .build());\n\n        var dbPassword = new Password(\"dbPassword\", PasswordArgs.builder()\n            .length(20)\n            .special(true)\n            .upper(true)\n            .lower(true)\n            .numeric(true)\n            .minUpper(1)\n            .minLower(1)\n            .minNumeric(1)\n            .minSpecial(1)\n            .overrideSpecial(\"!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?\")\n            .build());\n\n        var dbAdmin = new User(\"dbAdmin\", UserArgs.builder()\n            .instanceId(main.id())\n            .name(\"devtools\")\n            .password(dbPassword.result())\n            .isAdmin(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Basic user creation\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n  dbPassword:\n    type: random:Password\n    name: db_password\n    properties:\n      length: 20\n      special: true\n      upper: true\n      lower: true\n      numeric: true\n      minUpper: 1\n      minLower: 1\n      minNumeric: 1\n      minSpecial: 1 # Exclude characters that might cause issues in some contexts\n      overrideSpecial: '!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?'\n  dbAdmin:\n    type: scaleway:databases:User\n    name: db_admin\n    properties:\n      instanceId: ${main.id}\n      name: devtools\n      password: ${dbPassword.result}\n      isAdmin: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabase users can be imported using `{region}/{instance_id}/{user_name}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/databaseUser:DatabaseUser admin fr-par/11111111-1111-1111-1111-111111111111/admin\n```\n\n","properties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database user.\n"},"isAdmin":{"type":"boolean","description":"Grant admin permissions to the database user.\n"},"name":{"type":"string","description":"database user name.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the database user.\n"},"password":{"type":"string","description":"database user password. The password must meet the following requirements based on ISO27001 standards:\n- **Length**: 8-128 characters\n- **Character types required**:\n- At least 1 lowercase letter (a-z)\n- At least 1 uppercase letter (A-Z)\n- At least 1 digit (0-9)\n- At least 1 special character (!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?)\n\nFor secure password generation, consider using the \u003cspan pulumi-lang-nodejs=\"`randomPassword`\" pulumi-lang-dotnet=\"`RandomPassword`\" pulumi-lang-go=\"`randomPassword`\" pulumi-lang-python=\"`random_password`\" pulumi-lang-yaml=\"`randomPassword`\" pulumi-lang-java=\"`randomPassword`\"\u003e`random_password`\u003c/span\u003e resource with appropriate parameters.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"region":{"type":"string","description":"The Scaleway region this resource resides in.\n"}},"required":["instanceId","name"],"inputProperties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database user.\n","willReplaceOnChanges":true},"isAdmin":{"type":"boolean","description":"Grant admin permissions to the database user.\n"},"name":{"type":"string","description":"database user name.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the database user.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"database user password. The password must meet the following requirements based on ISO27001 standards:\n- **Length**: 8-128 characters\n- **Character types required**:\n- At least 1 lowercase letter (a-z)\n- At least 1 uppercase letter (A-Z)\n- At least 1 digit (0-9)\n- At least 1 special character (!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?)\n\nFor secure password generation, consider using the \u003cspan pulumi-lang-nodejs=\"`randomPassword`\" pulumi-lang-dotnet=\"`RandomPassword`\" pulumi-lang-go=\"`randomPassword`\" pulumi-lang-python=\"`random_password`\" pulumi-lang-yaml=\"`randomPassword`\" pulumi-lang-java=\"`randomPassword`\"\u003e`random_password`\u003c/span\u003e resource with appropriate parameters.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"region":{"type":"string","description":"The Scaleway region this resource resides in.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabaseUser resources.\n","properties":{"instanceId":{"type":"string","description":"UUID of the Database Instance.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e will recreate the database user.\n","willReplaceOnChanges":true},"isAdmin":{"type":"boolean","description":"Grant admin permissions to the database user.\n"},"name":{"type":"string","description":"database user name.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the database user.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"database user password. The password must meet the following requirements based on ISO27001 standards:\n- **Length**: 8-128 characters\n- **Character types required**:\n- At least 1 lowercase letter (a-z)\n- At least 1 uppercase letter (A-Z)\n- At least 1 digit (0-9)\n- At least 1 special character (!@#$%^\u0026*()_+-=[]{}|;:,.\u003c\u003e?)\n\nFor secure password generation, consider using the \u003cspan pulumi-lang-nodejs=\"`randomPassword`\" pulumi-lang-dotnet=\"`RandomPassword`\" pulumi-lang-go=\"`randomPassword`\" pulumi-lang-python=\"`random_password`\" pulumi-lang-yaml=\"`randomPassword`\" pulumi-lang-java=\"`randomPassword`\"\u003e`random_password`\u003c/span\u003e resource with appropriate parameters.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"region":{"type":"string","description":"The Scaleway region this resource resides in.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/databaseuser.DatabaseUser has been deprecated in favor of scaleway.databases/user.User"},"scaleway:index/domainRecord:DomainRecord":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.domain.Record`\" pulumi-lang-dotnet=\"`scaleway.domain.Record`\" pulumi-lang-go=\"`domain.Record`\" pulumi-lang-python=\"`domain.Record`\" pulumi-lang-yaml=\"`scaleway.domain.Record`\" pulumi-lang-java=\"`scaleway.domain.Record`\"\u003e`scaleway.domain.Record`\u003c/span\u003e resource allows you to create and manage DNS records for Scaleway domains.\n\nRefer to the Domains and DNS [product documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) and [API documentation](https://www.scaleway.com/en/developers/api/domains-and-dns/) for more information.\n\n## Example Usage\n\n### Create basic DNS records\n\nThe following commands allow you to:\n\n- create an A record for the `www.domain.tld` domain, pointing to `1.2.3.4` and another one pointing to `1.2.3.5`\n\n- create an MX record with the `mx.online.net.` mail server and a priority of 10, and another one with the `mx-cache.online.net.` mail server and a priority of 20\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst www = new scaleway.domain.Record(\"www\", {\n    dnsZone: \"domain.tld\",\n    name: \"www\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n    ttl: 3600,\n});\nconst www2 = new scaleway.domain.Record(\"www2\", {\n    dnsZone: \"domain.tld\",\n    name: \"www\",\n    type: \"A\",\n    data: \"1.2.3.5\",\n    ttl: 3600,\n});\nconst mx = new scaleway.domain.Record(\"mx\", {\n    dnsZone: \"domain.tld\",\n    name: \"\",\n    type: \"MX\",\n    data: \"mx.online.net.\",\n    ttl: 3600,\n    priority: 10,\n});\nconst mx2 = new scaleway.domain.Record(\"mx2\", {\n    dnsZone: \"domain.tld\",\n    name: \"\",\n    type: \"MX\",\n    data: \"mx-cache.online.net.\",\n    ttl: 3600,\n    priority: 20,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nwww = scaleway.domain.Record(\"www\",\n    dns_zone=\"domain.tld\",\n    name=\"www\",\n    type=\"A\",\n    data=\"1.2.3.4\",\n    ttl=3600)\nwww2 = scaleway.domain.Record(\"www2\",\n    dns_zone=\"domain.tld\",\n    name=\"www\",\n    type=\"A\",\n    data=\"1.2.3.5\",\n    ttl=3600)\nmx = scaleway.domain.Record(\"mx\",\n    dns_zone=\"domain.tld\",\n    name=\"\",\n    type=\"MX\",\n    data=\"mx.online.net.\",\n    ttl=3600,\n    priority=10)\nmx2 = scaleway.domain.Record(\"mx2\",\n    dns_zone=\"domain.tld\",\n    name=\"\",\n    type=\"MX\",\n    data=\"mx-cache.online.net.\",\n    ttl=3600,\n    priority=20)\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 www = new Scaleway.Domain.Record(\"www\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"www\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n        Ttl = 3600,\n    });\n\n    var www2 = new Scaleway.Domain.Record(\"www2\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"www\",\n        Type = \"A\",\n        Data = \"1.2.3.5\",\n        Ttl = 3600,\n    });\n\n    var mx = new Scaleway.Domain.Record(\"mx\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"\",\n        Type = \"MX\",\n        Data = \"mx.online.net.\",\n        Ttl = 3600,\n        Priority = 10,\n    });\n\n    var mx2 = new Scaleway.Domain.Record(\"mx2\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"\",\n        Type = \"MX\",\n        Data = \"mx-cache.online.net.\",\n        Ttl = 3600,\n        Priority = 20,\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/domain\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := domain.NewRecord(ctx, \"www\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"www\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.4\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"www2\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"www\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.5\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"mx\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"domain.tld\"),\n\t\t\tName:     pulumi.String(\"\"),\n\t\t\tType:     pulumi.String(\"MX\"),\n\t\t\tData:     pulumi.String(\"mx.online.net.\"),\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"mx2\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"domain.tld\"),\n\t\t\tName:     pulumi.String(\"\"),\n\t\t\tType:     pulumi.String(\"MX\"),\n\t\t\tData:     pulumi.String(\"mx-cache.online.net.\"),\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: pulumi.Int(20),\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.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\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 www = new Record(\"www\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"www\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .ttl(3600)\n            .build());\n\n        var www2 = new Record(\"www2\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"www\")\n            .type(\"A\")\n            .data(\"1.2.3.5\")\n            .ttl(3600)\n            .build());\n\n        var mx = new Record(\"mx\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"\")\n            .type(\"MX\")\n            .data(\"mx.online.net.\")\n            .ttl(3600)\n            .priority(10)\n            .build());\n\n        var mx2 = new Record(\"mx2\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"\")\n            .type(\"MX\")\n            .data(\"mx-cache.online.net.\")\n            .ttl(3600)\n            .priority(20)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  www:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: www\n      type: A\n      data: 1.2.3.4\n      ttl: 3600\n  www2:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: www\n      type: A\n      data: 1.2.3.5\n      ttl: 3600\n  mx:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: \"\"\n      type: MX\n      data: mx.online.net.\n      ttl: 3600\n      priority: 10\n  mx2:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: \"\"\n      type: MX\n      data: mx-cache.online.net.\n      ttl: 3600\n      priority: 20\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create dynamic records\n\nThe following commands allow you to:\n\n- create a Geo IP record for `images.domain.tld` that points to different IPs based on the user's location: `1.2.3.5` for users in France (EU), and `4.3.2.1` for users in North America (NA)\n\n- create an HTTP service record for `app.domain.tld` that checks the health of specified IPs and responds based on their status.\n\n- create view-based records for `db.domain.tld` that resolve differently based on the client's subnet.\n\n- create a weighted record for `web.domain.tld` that directs traffic to different IPs based on their weights.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst geoIp = new scaleway.domain.Record(\"geo_ip\", {\n    dnsZone: \"domain.tld\",\n    name: \"images\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n    ttl: 3600,\n    geoIp: {\n        matches: [\n            {\n                continents: [\"EU\"],\n                countries: [\"FR\"],\n                data: \"1.2.3.5\",\n            },\n            {\n                continents: [\"NA\"],\n                data: \"4.3.2.1\",\n            },\n        ],\n    },\n});\nconst httpService = new scaleway.domain.Record(\"http_service\", {\n    dnsZone: \"domain.tld\",\n    name: \"app\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n    ttl: 3600,\n    httpService: {\n        ips: [\n            \"1.2.3.5\",\n            \"1.2.3.6\",\n        ],\n        mustContain: \"up\",\n        url: \"http://mywebsite.com/health\",\n        userAgent: \"scw_service_up\",\n        strategy: \"hashed\",\n    },\n});\nconst view = new scaleway.domain.Record(\"view\", {\n    dnsZone: \"domain.tld\",\n    name: \"db\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n    ttl: 3600,\n    views: [\n        {\n            subnet: \"100.0.0.0/16\",\n            data: \"1.2.3.5\",\n        },\n        {\n            subnet: \"100.1.0.0/16\",\n            data: \"1.2.3.6\",\n        },\n    ],\n});\nconst weighted = new scaleway.domain.Record(\"weighted\", {\n    dnsZone: \"domain.tld\",\n    name: \"web\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n    ttl: 3600,\n    weighteds: [\n        {\n            ip: \"1.2.3.5\",\n            weight: 1,\n        },\n        {\n            ip: \"1.2.3.6\",\n            weight: 2,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ngeo_ip = scaleway.domain.Record(\"geo_ip\",\n    dns_zone=\"domain.tld\",\n    name=\"images\",\n    type=\"A\",\n    data=\"1.2.3.4\",\n    ttl=3600,\n    geo_ip={\n        \"matches\": [\n            {\n                \"continents\": [\"EU\"],\n                \"countries\": [\"FR\"],\n                \"data\": \"1.2.3.5\",\n            },\n            {\n                \"continents\": [\"NA\"],\n                \"data\": \"4.3.2.1\",\n            },\n        ],\n    })\nhttp_service = scaleway.domain.Record(\"http_service\",\n    dns_zone=\"domain.tld\",\n    name=\"app\",\n    type=\"A\",\n    data=\"1.2.3.4\",\n    ttl=3600,\n    http_service={\n        \"ips\": [\n            \"1.2.3.5\",\n            \"1.2.3.6\",\n        ],\n        \"must_contain\": \"up\",\n        \"url\": \"http://mywebsite.com/health\",\n        \"user_agent\": \"scw_service_up\",\n        \"strategy\": \"hashed\",\n    })\nview = scaleway.domain.Record(\"view\",\n    dns_zone=\"domain.tld\",\n    name=\"db\",\n    type=\"A\",\n    data=\"1.2.3.4\",\n    ttl=3600,\n    views=[\n        {\n            \"subnet\": \"100.0.0.0/16\",\n            \"data\": \"1.2.3.5\",\n        },\n        {\n            \"subnet\": \"100.1.0.0/16\",\n            \"data\": \"1.2.3.6\",\n        },\n    ])\nweighted = scaleway.domain.Record(\"weighted\",\n    dns_zone=\"domain.tld\",\n    name=\"web\",\n    type=\"A\",\n    data=\"1.2.3.4\",\n    ttl=3600,\n    weighteds=[\n        {\n            \"ip\": \"1.2.3.5\",\n            \"weight\": 1,\n        },\n        {\n            \"ip\": \"1.2.3.6\",\n            \"weight\": 2,\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 geoIp = new Scaleway.Domain.Record(\"geo_ip\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"images\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n        Ttl = 3600,\n        GeoIp = new Scaleway.Domain.Inputs.RecordGeoIpArgs\n        {\n            Matches = new[]\n            {\n                new Scaleway.Domain.Inputs.RecordGeoIpMatchArgs\n                {\n                    Continents = new[]\n                    {\n                        \"EU\",\n                    },\n                    Countries = new[]\n                    {\n                        \"FR\",\n                    },\n                    Data = \"1.2.3.5\",\n                },\n                new Scaleway.Domain.Inputs.RecordGeoIpMatchArgs\n                {\n                    Continents = new[]\n                    {\n                        \"NA\",\n                    },\n                    Data = \"4.3.2.1\",\n                },\n            },\n        },\n    });\n\n    var httpService = new Scaleway.Domain.Record(\"http_service\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"app\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n        Ttl = 3600,\n        HttpService = new Scaleway.Domain.Inputs.RecordHttpServiceArgs\n        {\n            Ips = new[]\n            {\n                \"1.2.3.5\",\n                \"1.2.3.6\",\n            },\n            MustContain = \"up\",\n            Url = \"http://mywebsite.com/health\",\n            UserAgent = \"scw_service_up\",\n            Strategy = \"hashed\",\n        },\n    });\n\n    var view = new Scaleway.Domain.Record(\"view\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"db\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n        Ttl = 3600,\n        Views = new[]\n        {\n            new Scaleway.Domain.Inputs.RecordViewArgs\n            {\n                Subnet = \"100.0.0.0/16\",\n                Data = \"1.2.3.5\",\n            },\n            new Scaleway.Domain.Inputs.RecordViewArgs\n            {\n                Subnet = \"100.1.0.0/16\",\n                Data = \"1.2.3.6\",\n            },\n        },\n    });\n\n    var weighted = new Scaleway.Domain.Record(\"weighted\", new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"web\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n        Ttl = 3600,\n        Weighteds = new[]\n        {\n            new Scaleway.Domain.Inputs.RecordWeightedArgs\n            {\n                Ip = \"1.2.3.5\",\n                Weight = 1,\n            },\n            new Scaleway.Domain.Inputs.RecordWeightedArgs\n            {\n                Ip = \"1.2.3.6\",\n                Weight = 2,\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/domain\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := domain.NewRecord(ctx, \"geo_ip\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"images\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.4\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t\tGeoIp: \u0026domain.RecordGeoIpArgs{\n\t\t\t\tMatches: domain.RecordGeoIpMatchArray{\n\t\t\t\t\t\u0026domain.RecordGeoIpMatchArgs{\n\t\t\t\t\t\tContinents: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"EU\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCountries: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"FR\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tData: pulumi.String(\"1.2.3.5\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026domain.RecordGeoIpMatchArgs{\n\t\t\t\t\t\tContinents: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"NA\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tData: pulumi.String(\"4.3.2.1\"),\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\t_, err = domain.NewRecord(ctx, \"http_service\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"app\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.4\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t\tHttpService: \u0026domain.RecordHttpServiceArgs{\n\t\t\t\tIps: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"1.2.3.5\"),\n\t\t\t\t\tpulumi.String(\"1.2.3.6\"),\n\t\t\t\t},\n\t\t\t\tMustContain: pulumi.String(\"up\"),\n\t\t\t\tUrl:         pulumi.String(\"http://mywebsite.com/health\"),\n\t\t\t\tUserAgent:   pulumi.String(\"scw_service_up\"),\n\t\t\t\tStrategy:    pulumi.String(\"hashed\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"view\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"db\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.4\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t\tViews: domain.RecordViewArray{\n\t\t\t\t\u0026domain.RecordViewArgs{\n\t\t\t\t\tSubnet: pulumi.String(\"100.0.0.0/16\"),\n\t\t\t\t\tData:   pulumi.String(\"1.2.3.5\"),\n\t\t\t\t},\n\t\t\t\t\u0026domain.RecordViewArgs{\n\t\t\t\t\tSubnet: pulumi.String(\"100.1.0.0/16\"),\n\t\t\t\t\tData:   pulumi.String(\"1.2.3.6\"),\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 = domain.NewRecord(ctx, \"weighted\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(\"domain.tld\"),\n\t\t\tName:    pulumi.String(\"web\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    pulumi.String(\"1.2.3.4\"),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t\tWeighteds: domain.RecordWeightedArray{\n\t\t\t\t\u0026domain.RecordWeightedArgs{\n\t\t\t\t\tIp:     pulumi.String(\"1.2.3.5\"),\n\t\t\t\t\tWeight: pulumi.Int(1),\n\t\t\t\t},\n\t\t\t\t\u0026domain.RecordWeightedArgs{\n\t\t\t\t\tIp:     pulumi.String(\"1.2.3.6\"),\n\t\t\t\t\tWeight: pulumi.Int(2),\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.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.scaleway.domain.inputs.RecordGeoIpArgs;\nimport com.pulumi.scaleway.domain.inputs.RecordHttpServiceArgs;\nimport com.pulumi.scaleway.domain.inputs.RecordViewArgs;\nimport com.pulumi.scaleway.domain.inputs.RecordWeightedArgs;\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 geoIp = new Record(\"geoIp\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"images\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .ttl(3600)\n            .geoIp(RecordGeoIpArgs.builder()\n                .matches(                \n                    RecordGeoIpMatchArgs.builder()\n                        .continents(\"EU\")\n                        .countries(\"FR\")\n                        .data(\"1.2.3.5\")\n                        .build(),\n                    RecordGeoIpMatchArgs.builder()\n                        .continents(\"NA\")\n                        .data(\"4.3.2.1\")\n                        .build())\n                .build())\n            .build());\n\n        var httpService = new Record(\"httpService\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"app\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .ttl(3600)\n            .httpService(RecordHttpServiceArgs.builder()\n                .ips(                \n                    \"1.2.3.5\",\n                    \"1.2.3.6\")\n                .mustContain(\"up\")\n                .url(\"http://mywebsite.com/health\")\n                .userAgent(\"scw_service_up\")\n                .strategy(\"hashed\")\n                .build())\n            .build());\n\n        var view = new Record(\"view\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"db\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .ttl(3600)\n            .views(            \n                RecordViewArgs.builder()\n                    .subnet(\"100.0.0.0/16\")\n                    .data(\"1.2.3.5\")\n                    .build(),\n                RecordViewArgs.builder()\n                    .subnet(\"100.1.0.0/16\")\n                    .data(\"1.2.3.6\")\n                    .build())\n            .build());\n\n        var weighted = new Record(\"weighted\", RecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"web\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .ttl(3600)\n            .weighteds(            \n                RecordWeightedArgs.builder()\n                    .ip(\"1.2.3.5\")\n                    .weight(1)\n                    .build(),\n                RecordWeightedArgs.builder()\n                    .ip(\"1.2.3.6\")\n                    .weight(2)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  geoIp:\n    type: scaleway:domain:Record\n    name: geo_ip\n    properties:\n      dnsZone: domain.tld\n      name: images\n      type: A\n      data: 1.2.3.4\n      ttl: 3600\n      geoIp:\n        matches:\n          - continents:\n              - EU\n            countries:\n              - FR\n            data: 1.2.3.5\n          - continents:\n              - NA\n            data: 4.3.2.1\n  httpService:\n    type: scaleway:domain:Record\n    name: http_service\n    properties:\n      dnsZone: domain.tld\n      name: app\n      type: A\n      data: 1.2.3.4\n      ttl: 3600\n      httpService:\n        ips:\n          - 1.2.3.5\n          - 1.2.3.6\n        mustContain: up\n        url: http://mywebsite.com/health\n        userAgent: scw_service_up\n        strategy: hashed\n  view:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: db\n      type: A\n      data: 1.2.3.4\n      ttl: 3600\n      views:\n        - subnet: 100.0.0.0/16\n          data: 1.2.3.5\n        - subnet: 100.1.0.0/16\n          data: 1.2.3.6\n  weighted:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: domain.tld\n      name: web\n      type: A\n      data: 1.2.3.4\n      ttl: 3600\n      weighteds:\n        - ip: 1.2.3.5\n          weight: 1\n        - ip: 1.2.3.6\n          weight: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create an Instance and add records with the new Instance IP\n\nThe following commands allow you to:\n\n- create a Scaleway Instance\n- assign The Instance's IP address to various DNS records for a specified DNS zone\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\n// Your project ID.\nconst projectId = config.require(\"projectId\");\n// The DNS Zone used for testing records.\nconst dnsZone = config.require(\"dnsZone\");\nconst publicIp = new scaleway.instance.Ip(\"public_ip\", {projectId: projectId});\nconst web = new scaleway.instance.Server(\"web\", {\n    projectId: projectId,\n    type: \"DEV1-S\",\n    image: \"ubuntu_jammy\",\n    tags: [\n        \"front\",\n        \"web\",\n    ],\n    ipId: publicIp.id,\n    rootVolume: {\n        sizeInGb: 20,\n    },\n});\nconst webA = new scaleway.domain.Record(\"web_A\", {\n    dnsZone: dnsZone,\n    name: \"web\",\n    type: \"A\",\n    data: web.publicIp,\n    ttl: 3600,\n});\nconst webCname = new scaleway.domain.Record(\"web_cname\", {\n    dnsZone: dnsZone,\n    name: \"www\",\n    type: \"CNAME\",\n    data: `web.${dnsZone}.`,\n    ttl: 3600,\n});\nconst webAlias = new scaleway.domain.Record(\"web_alias\", {\n    dnsZone: dnsZone,\n    name: \"\",\n    type: \"ALIAS\",\n    data: `web.${dnsZone}.`,\n    ttl: 3600,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\n# Your project ID.\nproject_id = config.require(\"projectId\")\n# The DNS Zone used for testing records.\ndns_zone = config.require(\"dnsZone\")\npublic_ip = scaleway.instance.Ip(\"public_ip\", project_id=project_id)\nweb = scaleway.instance.Server(\"web\",\n    project_id=project_id,\n    type=\"DEV1-S\",\n    image=\"ubuntu_jammy\",\n    tags=[\n        \"front\",\n        \"web\",\n    ],\n    ip_id=public_ip.id,\n    root_volume={\n        \"size_in_gb\": 20,\n    })\nweb_a = scaleway.domain.Record(\"web_A\",\n    dns_zone=dns_zone,\n    name=\"web\",\n    type=\"A\",\n    data=web.public_ip,\n    ttl=3600)\nweb_cname = scaleway.domain.Record(\"web_cname\",\n    dns_zone=dns_zone,\n    name=\"www\",\n    type=\"CNAME\",\n    data=f\"web.{dns_zone}.\",\n    ttl=3600)\nweb_alias = scaleway.domain.Record(\"web_alias\",\n    dns_zone=dns_zone,\n    name=\"\",\n    type=\"ALIAS\",\n    data=f\"web.{dns_zone}.\",\n    ttl=3600)\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 config = new Config();\n    // Your project ID.\n    var projectId = config.Require(\"projectId\");\n    // The DNS Zone used for testing records.\n    var dnsZone = config.Require(\"dnsZone\");\n    var publicIp = new Scaleway.Instance.Ip(\"public_ip\", new()\n    {\n        ProjectId = projectId,\n    });\n\n    var web = new Scaleway.Instance.Server(\"web\", new()\n    {\n        ProjectId = projectId,\n        Type = \"DEV1-S\",\n        Image = \"ubuntu_jammy\",\n        Tags = new[]\n        {\n            \"front\",\n            \"web\",\n        },\n        IpId = publicIp.Id,\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            SizeInGb = 20,\n        },\n    });\n\n    var webA = new Scaleway.Domain.Record(\"web_A\", new()\n    {\n        DnsZone = dnsZone,\n        Name = \"web\",\n        Type = \"A\",\n        Data = web.PublicIp,\n        Ttl = 3600,\n    });\n\n    var webCname = new Scaleway.Domain.Record(\"web_cname\", new()\n    {\n        DnsZone = dnsZone,\n        Name = \"www\",\n        Type = \"CNAME\",\n        Data = $\"web.{dnsZone}.\",\n        Ttl = 3600,\n    });\n\n    var webAlias = new Scaleway.Domain.Record(\"web_alias\", new()\n    {\n        DnsZone = dnsZone,\n        Name = \"\",\n        Type = \"ALIAS\",\n        Data = $\"web.{dnsZone}.\",\n        Ttl = 3600,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\t// Your project ID.\n\t\tprojectId := cfg.Require(\"projectId\")\n\t\t// The DNS Zone used for testing records.\n\t\tdnsZone := cfg.Require(\"dnsZone\")\n\t\tpublicIp, err := instance.NewIp(ctx, \"public_ip\", \u0026instance.IpArgs{\n\t\t\tProjectId: pulumi.String(projectId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tweb, err := instance.NewServer(ctx, \"web\", \u0026instance.ServerArgs{\n\t\t\tProjectId: pulumi.String(projectId),\n\t\t\tType:      pulumi.String(\"DEV1-S\"),\n\t\t\tImage:     pulumi.String(\"ubuntu_jammy\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"front\"),\n\t\t\t\tpulumi.String(\"web\"),\n\t\t\t},\n\t\t\tIpId: publicIp.ID(),\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tSizeInGb: pulumi.Int(20),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"web_A\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(dnsZone),\n\t\t\tName:    pulumi.String(\"web\"),\n\t\t\tType:    pulumi.String(\"A\"),\n\t\t\tData:    web.PublicIp,\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"web_cname\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(dnsZone),\n\t\t\tName:    pulumi.String(\"www\"),\n\t\t\tType:    pulumi.String(\"CNAME\"),\n\t\t\tData:    pulumi.Sprintf(\"web.%v.\", dnsZone),\n\t\t\tTtl:     pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"web_alias\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(dnsZone),\n\t\t\tName:    pulumi.String(\"\"),\n\t\t\tType:    pulumi.String(\"ALIAS\"),\n\t\t\tData:    pulumi.Sprintf(\"web.%v.\", dnsZone),\n\t\t\tTtl:     pulumi.Int(3600),\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.instance.Ip;\nimport com.pulumi.scaleway.instance.IpArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var projectId = config.get(\"projectId\");\n        final var dnsZone = config.get(\"dnsZone\");\n        var publicIp = new Ip(\"publicIp\", IpArgs.builder()\n            .projectId(projectId)\n            .build());\n\n        var web = new Server(\"web\", ServerArgs.builder()\n            .projectId(projectId)\n            .type(\"DEV1-S\")\n            .image(\"ubuntu_jammy\")\n            .tags(            \n                \"front\",\n                \"web\")\n            .ipId(publicIp.id())\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .sizeInGb(20)\n                .build())\n            .build());\n\n        var webA = new Record(\"webA\", RecordArgs.builder()\n            .dnsZone(dnsZone)\n            .name(\"web\")\n            .type(\"A\")\n            .data(web.publicIp())\n            .ttl(3600)\n            .build());\n\n        var webCname = new Record(\"webCname\", RecordArgs.builder()\n            .dnsZone(dnsZone)\n            .name(\"www\")\n            .type(\"CNAME\")\n            .data(String.format(\"web.%s.\", dnsZone))\n            .ttl(3600)\n            .build());\n\n        var webAlias = new Record(\"webAlias\", RecordArgs.builder()\n            .dnsZone(dnsZone)\n            .name(\"\")\n            .type(\"ALIAS\")\n            .data(String.format(\"web.%s.\", dnsZone))\n            .ttl(3600)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  projectId:\n    type: string\n  dnsZone:\n    type: string\nresources:\n  publicIp:\n    type: scaleway:instance:Ip\n    name: public_ip\n    properties:\n      projectId: ${projectId}\n  web:\n    type: scaleway:instance:Server\n    properties:\n      projectId: ${projectId}\n      type: DEV1-S\n      image: ubuntu_jammy\n      tags:\n        - front\n        - web\n      ipId: ${publicIp.id}\n      rootVolume:\n        sizeInGb: 20\n  webA:\n    type: scaleway:domain:Record\n    name: web_A\n    properties:\n      dnsZone: ${dnsZone}\n      name: web\n      type: A\n      data: ${web.publicIp}\n      ttl: 3600\n  webCname:\n    type: scaleway:domain:Record\n    name: web_cname\n    properties:\n      dnsZone: ${dnsZone}\n      name: www\n      type: CNAME\n      data: web.${dnsZone}.\n      ttl: 3600\n  webAlias:\n    type: scaleway:domain:Record\n    name: web_alias\n    properties:\n      dnsZone: ${dnsZone}\n      name: \"\"\n      type: ALIAS\n      data: web.${dnsZone}.\n      ttl: 3600\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Multiple records\n\nSome record types can have multiple data with the same name (e.g., `A`, `AAAA`, `MX`, `NS`, etc.). You can duplicate a \u003cspan pulumi-lang-nodejs=\"`scaleway.domain.Record`\" pulumi-lang-dotnet=\"`scaleway.domain.Record`\" pulumi-lang-go=\"`domain.Record`\" pulumi-lang-python=\"`domain.Record`\" pulumi-lang-yaml=\"`scaleway.domain.Record`\" pulumi-lang-java=\"`scaleway.domain.Record`\"\u003e`scaleway.domain.Record`\u003c/span\u003e  resource with the same \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, and the records will be added.\n\nNote however, that some records (e.g., CNAME, multiple dynamic records of different types) must be unique.\n\n## Import\n\nThis section explains how to import a record using the `{dns_zone}/{id}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/domainRecord:DomainRecord www subdomain.domain.tld/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"data":{"type":"string","description":"The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).\n"},"dnsZone":{"type":"string","description":"The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.\n"},"fqdn":{"type":"string","description":"The FQDN of the record.\n"},"geoIp":{"$ref":"#/types/scaleway:index/DomainRecordGeoIp:DomainRecordGeoIp","description":"Return record based on client localisation"},"httpService":{"$ref":"#/types/scaleway:index/DomainRecordHttpService:DomainRecordHttpService","description":"Return record based on client localisation"},"name":{"type":"string","description":"The name of the record (can be an empty string for a root record).\n"},"priority":{"type":"integer","description":"The priority of the record (mostly used with an `MX` record).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"rootZone":{"type":"boolean","description":"Does the DNS zone is the root zone or not"},"ttl":{"type":"integer","description":"Time To Live of the record in seconds.\n"},"type":{"type":"string","description":"The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).\n"},"views":{"type":"array","items":{"$ref":"#/types/scaleway:index/DomainRecordView:DomainRecordView"},"description":"Return record based on client subnet"},"weighteds":{"type":"array","items":{"$ref":"#/types/scaleway:index/DomainRecordWeighted:DomainRecordWeighted"},"description":"Return record based on weight"}},"required":["data","dnsZone","fqdn","name","priority","projectId","rootZone","type"],"inputProperties":{"data":{"type":"string","description":"The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).\n"},"dnsZone":{"type":"string","description":"The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.\n","willReplaceOnChanges":true},"geoIp":{"$ref":"#/types/scaleway:index/DomainRecordGeoIp:DomainRecordGeoIp","description":"Return record based on client localisation"},"httpService":{"$ref":"#/types/scaleway:index/DomainRecordHttpService:DomainRecordHttpService","description":"Return record based on client localisation"},"name":{"type":"string","description":"The name of the record (can be an empty string for a root record).\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"The priority of the record (mostly used with an `MX` record).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"ttl":{"type":"integer","description":"Time To Live of the record in seconds.\n"},"type":{"type":"string","description":"The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).\n","willReplaceOnChanges":true},"views":{"type":"array","items":{"$ref":"#/types/scaleway:index/DomainRecordView:DomainRecordView"},"description":"Return record based on client subnet"},"weighteds":{"type":"array","items":{"$ref":"#/types/scaleway:index/DomainRecordWeighted:DomainRecordWeighted"},"description":"Return record based on weight"}},"requiredInputs":["data","dnsZone","type"],"stateInputs":{"description":"Input properties used for looking up and filtering DomainRecord resources.\n","properties":{"data":{"type":"string","description":"The content of the record (an IPv4 for an `A` record, a string for a `TXT` record, etc.).\n"},"dnsZone":{"type":"string","description":"The DNS zone of the domain. If the domain has no DNS zone, one will be automatically created.\n","willReplaceOnChanges":true},"fqdn":{"type":"string","description":"The FQDN of the record.\n"},"geoIp":{"$ref":"#/types/scaleway:index/DomainRecordGeoIp:DomainRecordGeoIp","description":"Return record based on client localisation"},"httpService":{"$ref":"#/types/scaleway:index/DomainRecordHttpService:DomainRecordHttpService","description":"Return record based on client localisation"},"name":{"type":"string","description":"The name of the record (can be an empty string for a root record).\n","willReplaceOnChanges":true},"priority":{"type":"integer","description":"The priority of the record (mostly used with an `MX` record).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"rootZone":{"type":"boolean","description":"Does the DNS zone is the root zone or not"},"ttl":{"type":"integer","description":"Time To Live of the record in seconds.\n"},"type":{"type":"string","description":"The type of the record (`A`, `AAAA`, `MX`, `CNAME`, `DNAME`, `ALIAS`, `NS`, `PTR`, `SRV`, `TXT`, `TLSA`, or `CAA`).\n","willReplaceOnChanges":true},"views":{"type":"array","items":{"$ref":"#/types/scaleway:index/DomainRecordView:DomainRecordView"},"description":"Return record based on client subnet"},"weighteds":{"type":"array","items":{"$ref":"#/types/scaleway:index/DomainRecordWeighted:DomainRecordWeighted"},"description":"Return record based on weight"}},"type":"object"},"deprecationMessage":"scaleway.index/domainrecord.DomainRecord has been deprecated in favor of scaleway.domain/record.Record"},"scaleway:index/domainZone:DomainZone":{"description":"\n\n## Import\n\nThis section explains how to import a zone using the `{subdomain}.{domain}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/domainZone:DomainZone test test.scaleway-terraform.com\n```\n\n","properties":{"domain":{"type":"string","description":"The main domain where the DNS zone will be created.\n"},"message":{"type":"string","description":"Message.\n"},"ns":{"type":"array","items":{"type":"string"},"description":"The list of same servers for the zone.\n"},"nsDefaults":{"type":"array","items":{"type":"string"},"description":"The default list of same servers for the zone.\n"},"nsMasters":{"type":"array","items":{"type":"string"},"description":"The master list of same servers for the zone.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project associated with the domain.\n"},"status":{"type":"string","description":"The status of the domain zone.\n"},"subdomain":{"type":"string","description":"The name of the subdomain (zone name) to create within the domain.\n"},"updatedAt":{"type":"string","description":"The date and time at which the DNS zone was last updated.\n"}},"required":["domain","message","ns","nsDefaults","nsMasters","projectId","status","subdomain","updatedAt"],"inputProperties":{"domain":{"type":"string","description":"The main domain where the DNS zone will be created.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project associated with the domain.\n","willReplaceOnChanges":true},"subdomain":{"type":"string","description":"The name of the subdomain (zone name) to create within the domain.\n"}},"requiredInputs":["domain","subdomain"],"stateInputs":{"description":"Input properties used for looking up and filtering DomainZone resources.\n","properties":{"domain":{"type":"string","description":"The main domain where the DNS zone will be created.\n","willReplaceOnChanges":true},"message":{"type":"string","description":"Message.\n"},"ns":{"type":"array","items":{"type":"string"},"description":"The list of same servers for the zone.\n"},"nsDefaults":{"type":"array","items":{"type":"string"},"description":"The default list of same servers for the zone.\n"},"nsMasters":{"type":"array","items":{"type":"string"},"description":"The master list of same servers for the zone.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project associated with the domain.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the domain zone.\n"},"subdomain":{"type":"string","description":"The name of the subdomain (zone name) to create within the domain.\n"},"updatedAt":{"type":"string","description":"The date and time at which the DNS zone was last updated.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/domainzone.DomainZone has been deprecated in favor of scaleway.domain/zone.Zone"},"scaleway:index/edgeServicesBackendStage:EdgeServicesBackendStage":{"description":"Creates and manages Scaleway Edge Services Backend Stages.\n\n## Example Usage\n\n### With object backend\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.object.Bucket(\"main\", {\n    name: \"my-bucket-name\",\n    tags: {\n        foo: \"bar\",\n    },\n});\nconst mainPipeline = new scaleway.edgeservices.Pipeline(\"main\", {name: \"my-pipeline\"});\nconst mainBackendStage = new scaleway.edgeservices.BackendStage(\"main\", {\n    pipelineId: mainPipeline.id,\n    s3BackendConfig: {\n        bucketName: main.name,\n        bucketRegion: \"fr-par\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.object.Bucket(\"main\",\n    name=\"my-bucket-name\",\n    tags={\n        \"foo\": \"bar\",\n    })\nmain_pipeline = scaleway.edgeservices.Pipeline(\"main\", name=\"my-pipeline\")\nmain_backend_stage = scaleway.edgeservices.BackendStage(\"main\",\n    pipeline_id=main_pipeline.id,\n    s3_backend_config={\n        \"bucket_name\": main.name,\n        \"bucket_region\": \"fr-par\",\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.Object.Bucket(\"main\", new()\n    {\n        Name = \"my-bucket-name\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n    var mainPipeline = new Scaleway.Edgeservices.Pipeline(\"main\", new()\n    {\n        Name = \"my-pipeline\",\n    });\n\n    var mainBackendStage = new Scaleway.Edgeservices.BackendStage(\"main\", new()\n    {\n        PipelineId = mainPipeline.Id,\n        S3BackendConfig = new Scaleway.Edgeservices.Inputs.BackendStageS3BackendConfigArgs\n        {\n            BucketName = main.Name,\n            BucketRegion = \"fr-par\",\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/edgeservices\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"my-bucket-name\"),\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\tmainPipeline, err := edgeservices.NewPipeline(ctx, \"main\", \u0026edgeservices.PipelineArgs{\n\t\t\tName: pulumi.String(\"my-pipeline\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edgeservices.NewBackendStage(ctx, \"main\", \u0026edgeservices.BackendStageArgs{\n\t\t\tPipelineId: mainPipeline.ID(),\n\t\t\tS3BackendConfig: \u0026edgeservices.BackendStageS3BackendConfigArgs{\n\t\t\t\tBucketName:   main.Name,\n\t\t\t\tBucketRegion: pulumi.String(\"fr-par\"),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.edgeservices.Pipeline;\nimport com.pulumi.scaleway.edgeservices.PipelineArgs;\nimport com.pulumi.scaleway.edgeservices.BackendStage;\nimport com.pulumi.scaleway.edgeservices.BackendStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.BackendStageS3BackendConfigArgs;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"my-bucket-name\")\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n        var mainPipeline = new Pipeline(\"mainPipeline\", PipelineArgs.builder()\n            .name(\"my-pipeline\")\n            .build());\n\n        var mainBackendStage = new BackendStage(\"mainBackendStage\", BackendStageArgs.builder()\n            .pipelineId(mainPipeline.id())\n            .s3BackendConfig(BackendStageS3BackendConfigArgs.builder()\n                .bucketName(main.name())\n                .bucketRegion(\"fr-par\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\n    properties:\n      name: my-bucket-name\n      tags:\n        foo: bar\n  mainPipeline:\n    type: scaleway:edgeservices:Pipeline\n    name: main\n    properties:\n      name: my-pipeline\n  mainBackendStage:\n    type: scaleway:edgeservices:BackendStage\n    name: main\n    properties:\n      pipelineId: ${mainPipeline.id}\n      s3BackendConfig:\n        bucketName: ${main.name}\n        bucketRegion: fr-par\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With LB backend\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.loadbalancers.LoadBalancer(\"main\", {\n    ipIds: [mainScalewayLbIp.id],\n    zone: \"fr-par-1\",\n    type: \"LB-S\",\n});\nconst mainFrontend = new scaleway.loadbalancers.Frontend(\"main\", {\n    lbId: main.id,\n    backendId: mainScalewayLbBackend.id,\n    name: \"frontend01\",\n    inboundPort: 443,\n    certificateIds: [cert01.id],\n});\nconst mainPipeline = new scaleway.edgeservices.Pipeline(\"main\", {name: \"my-pipeline\"});\nconst mainBackendStage = new scaleway.edgeservices.BackendStage(\"main\", {\n    pipelineId: mainPipeline.id,\n    lbBackendConfigs: [{\n        lbConfig: {\n            id: main.id,\n            frontendId: id,\n            isSsl: true,\n            zone: \"fr-par-1\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.loadbalancers.LoadBalancer(\"main\",\n    ip_ids=[main_scaleway_lb_ip[\"id\"]],\n    zone=\"fr-par-1\",\n    type=\"LB-S\")\nmain_frontend = scaleway.loadbalancers.Frontend(\"main\",\n    lb_id=main.id,\n    backend_id=main_scaleway_lb_backend[\"id\"],\n    name=\"frontend01\",\n    inbound_port=443,\n    certificate_ids=[cert01[\"id\"]])\nmain_pipeline = scaleway.edgeservices.Pipeline(\"main\", name=\"my-pipeline\")\nmain_backend_stage = scaleway.edgeservices.BackendStage(\"main\",\n    pipeline_id=main_pipeline.id,\n    lb_backend_configs=[{\n        \"lb_config\": {\n            \"id\": main.id,\n            \"frontend_id\": id,\n            \"is_ssl\": True,\n            \"zone\": \"fr-par-1\",\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.Loadbalancers.LoadBalancer(\"main\", new()\n    {\n        IpIds = new[]\n        {\n            mainScalewayLbIp.Id,\n        },\n        Zone = \"fr-par-1\",\n        Type = \"LB-S\",\n    });\n\n    var mainFrontend = new Scaleway.Loadbalancers.Frontend(\"main\", new()\n    {\n        LbId = main.Id,\n        BackendId = mainScalewayLbBackend.Id,\n        Name = \"frontend01\",\n        InboundPort = 443,\n        CertificateIds = new[]\n        {\n            cert01.Id,\n        },\n    });\n\n    var mainPipeline = new Scaleway.Edgeservices.Pipeline(\"main\", new()\n    {\n        Name = \"my-pipeline\",\n    });\n\n    var mainBackendStage = new Scaleway.Edgeservices.BackendStage(\"main\", new()\n    {\n        PipelineId = mainPipeline.Id,\n        LbBackendConfigs = new[]\n        {\n            new Scaleway.Edgeservices.Inputs.BackendStageLbBackendConfigArgs\n            {\n                LbConfig = new Scaleway.Edgeservices.Inputs.BackendStageLbBackendConfigLbConfigArgs\n                {\n                    Id = main.Id,\n                    FrontendId = id,\n                    IsSsl = true,\n                    Zone = \"fr-par-1\",\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/edgeservices\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := loadbalancers.NewLoadBalancer(ctx, \"main\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tmainScalewayLbIp.Id,\n\t\t\t},\n\t\t\tZone: pulumi.String(\"fr-par-1\"),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewFrontend(ctx, \"main\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        main.ID(),\n\t\t\tBackendId:   pulumi.Any(mainScalewayLbBackend.Id),\n\t\t\tName:        pulumi.String(\"frontend01\"),\n\t\t\tInboundPort: pulumi.Int(443),\n\t\t\tCertificateIds: pulumi.StringArray{\n\t\t\t\tcert01.Id,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPipeline, err := edgeservices.NewPipeline(ctx, \"main\", \u0026edgeservices.PipelineArgs{\n\t\t\tName: pulumi.String(\"my-pipeline\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edgeservices.NewBackendStage(ctx, \"main\", \u0026edgeservices.BackendStageArgs{\n\t\t\tPipelineId: mainPipeline.ID(),\n\t\t\tLbBackendConfigs: edgeservices.BackendStageLbBackendConfigArray{\n\t\t\t\t\u0026edgeservices.BackendStageLbBackendConfigArgs{\n\t\t\t\t\tLbConfig: \u0026edgeservices.BackendStageLbBackendConfigLbConfigArgs{\n\t\t\t\t\t\tId:         main.ID(),\n\t\t\t\t\t\tFrontendId: pulumi.Any(id),\n\t\t\t\t\t\tIsSsl:      pulumi.Bool(true),\n\t\t\t\t\t\tZone:       pulumi.String(\"fr-par-1\"),\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.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.edgeservices.Pipeline;\nimport com.pulumi.scaleway.edgeservices.PipelineArgs;\nimport com.pulumi.scaleway.edgeservices.BackendStage;\nimport com.pulumi.scaleway.edgeservices.BackendStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.BackendStageLbBackendConfigArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.BackendStageLbBackendConfigLbConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var main = new LoadBalancer(\"main\", LoadBalancerArgs.builder()\n            .ipIds(mainScalewayLbIp.id())\n            .zone(\"fr-par-1\")\n            .type(\"LB-S\")\n            .build());\n\n        var mainFrontend = new Frontend(\"mainFrontend\", FrontendArgs.builder()\n            .lbId(main.id())\n            .backendId(mainScalewayLbBackend.id())\n            .name(\"frontend01\")\n            .inboundPort(443)\n            .certificateIds(cert01.id())\n            .build());\n\n        var mainPipeline = new Pipeline(\"mainPipeline\", PipelineArgs.builder()\n            .name(\"my-pipeline\")\n            .build());\n\n        var mainBackendStage = new BackendStage(\"mainBackendStage\", BackendStageArgs.builder()\n            .pipelineId(mainPipeline.id())\n            .lbBackendConfigs(BackendStageLbBackendConfigArgs.builder()\n                .lbConfig(BackendStageLbBackendConfigLbConfigArgs.builder()\n                    .id(main.id())\n                    .frontendId(id)\n                    .isSsl(true)\n                    .zone(\"fr-par-1\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipIds:\n        - ${mainScalewayLbIp.id}\n      zone: fr-par-1\n      type: LB-S\n  mainFrontend:\n    type: scaleway:loadbalancers:Frontend\n    name: main\n    properties:\n      lbId: ${main.id}\n      backendId: ${mainScalewayLbBackend.id}\n      name: frontend01\n      inboundPort: '443'\n      certificateIds:\n        - ${cert01.id}\n  mainPipeline:\n    type: scaleway:edgeservices:Pipeline\n    name: main\n    properties:\n      name: my-pipeline\n  mainBackendStage:\n    type: scaleway:edgeservices:BackendStage\n    name: main\n    properties:\n      pipelineId: ${mainPipeline.id}\n      lbBackendConfigs:\n        - lbConfig:\n            id: ${main.id}\n            frontendId: ${id}\n            isSsl: true\n            zone: fr-par-1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBackend stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/edgeServicesBackendStage:EdgeServicesBackendStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the backend stage.\n"},"lbBackendConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesBackendStageLbBackendConfig:EdgeServicesBackendStageLbBackendConfig"},"description":"The Scaleway Load Balancer linked to the backend stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the backend stage is associated with.\n"},"s3BackendConfig":{"$ref":"#/types/scaleway:index/EdgeServicesBackendStageS3BackendConfig:EdgeServicesBackendStageS3BackendConfig","description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the backend stage.\n"}},"required":["createdAt","pipelineId","projectId","updatedAt"],"inputProperties":{"lbBackendConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesBackendStageLbBackendConfig:EdgeServicesBackendStageLbBackendConfig"},"description":"The Scaleway Load Balancer linked to the backend stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the backend stage is associated with.\n","willReplaceOnChanges":true},"s3BackendConfig":{"$ref":"#/types/scaleway:index/EdgeServicesBackendStageS3BackendConfig:EdgeServicesBackendStageS3BackendConfig","description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering EdgeServicesBackendStage resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the backend stage.\n"},"lbBackendConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesBackendStageLbBackendConfig:EdgeServicesBackendStageLbBackendConfig"},"description":"The Scaleway Load Balancer linked to the backend stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the backend stage is associated with.\n","willReplaceOnChanges":true},"s3BackendConfig":{"$ref":"#/types/scaleway:index/EdgeServicesBackendStageS3BackendConfig:EdgeServicesBackendStageS3BackendConfig","description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the backend stage.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/edgeservicesbackendstage.EdgeServicesBackendStage has been deprecated in favor of scaleway.edgeservices/backendstage.BackendStage"},"scaleway:index/edgeServicesCacheStage:EdgeServicesCacheStage":{"description":"Creates and manages Scaleway Edge Services Cache Stages.\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.edgeservices.CacheStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    backendStageId: mainScalewayEdgeServicesBackendStage.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.CacheStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    backend_stage_id=main_scaleway_edge_services_backend_stage[\"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 main = new Scaleway.Edgeservices.CacheStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        BackendStageId = mainScalewayEdgeServicesBackendStage.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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewCacheStage(ctx, \"main\", \u0026edgeservices.CacheStageArgs{\n\t\t\tPipelineId:     pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tBackendStageId: pulumi.Any(mainScalewayEdgeServicesBackendStage.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.edgeservices.CacheStage;\nimport com.pulumi.scaleway.edgeservices.CacheStageArgs;\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 CacheStage(\"main\", CacheStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .backendStageId(mainScalewayEdgeServicesBackendStage.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:CacheStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      backendStageId: ${mainScalewayEdgeServicesBackendStage.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Purge request\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.edgeservices.CacheStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    backendStageId: mainScalewayEdgeServicesBackendStage.id,\n    purge: [{\n        pipelineId: mainScalewayEdgeServicesPipeline.id,\n        all: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.CacheStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    backend_stage_id=main_scaleway_edge_services_backend_stage[\"id\"],\n    purge=[{\n        \"pipelineId\": main_scaleway_edge_services_pipeline[\"id\"],\n        \"all\": True,\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.Edgeservices.CacheStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        BackendStageId = mainScalewayEdgeServicesBackendStage.Id,\n        Purge = new[]\n        {\n            \n            {\n                { \"pipelineId\", mainScalewayEdgeServicesPipeline.Id },\n                { \"all\", true },\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewCacheStage(ctx, \"main\", \u0026edgeservices.CacheStageArgs{\n\t\t\tPipelineId:     pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tBackendStageId: pulumi.Any(mainScalewayEdgeServicesBackendStage.Id),\n\t\t\tPurge: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"pipelineId\": mainScalewayEdgeServicesPipeline.Id,\n\t\t\t\t\t\"all\":        true,\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.edgeservices.CacheStage;\nimport com.pulumi.scaleway.edgeservices.CacheStageArgs;\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 CacheStage(\"main\", CacheStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .backendStageId(mainScalewayEdgeServicesBackendStage.id())\n            .purge(List.of(Map.ofEntries(\n                Map.entry(\"pipelineId\", mainScalewayEdgeServicesPipeline.id()),\n                Map.entry(\"all\", true)\n            )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:CacheStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      backendStageId: ${mainScalewayEdgeServicesBackendStage.id}\n      purge:\n        - pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n          all: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCache stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/edgeServicesCacheStage:EdgeServicesCacheStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the cache stage.\n"},"fallbackTtl":{"type":"integer","description":"The Time To Live (TTL) in seconds. Defines how long content is cached.\n"},"includeCookies":{"type":"boolean","description":"Defines whether responses to requests with cookies must be stored in the cache.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cache stage is associated with.\n"},"purgeRequests":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesCacheStagePurgeRequest:EdgeServicesCacheStagePurgeRequest"},"description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"},"refreshCache":{"type":"string","description":"Trigger a refresh of the cache by changing this field's value.\n"},"routeStageId":{"type":"string","description":"The route stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the cache stage.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"required":["backendStageId","createdAt","pipelineId","projectId","routeStageId","updatedAt","wafStageId"],"inputProperties":{"backendStageId":{"type":"string","description":"The backend stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"fallbackTtl":{"type":"integer","description":"The Time To Live (TTL) in seconds. Defines how long content is cached.\n"},"includeCookies":{"type":"boolean","description":"Defines whether responses to requests with cookies must be stored in the cache.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cache stage is associated with.\n","willReplaceOnChanges":true},"purgeRequests":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesCacheStagePurgeRequest:EdgeServicesCacheStagePurgeRequest"},"description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"},"refreshCache":{"type":"string","description":"Trigger a refresh of the cache by changing this field's value.\n"},"routeStageId":{"type":"string","description":"The route stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering EdgeServicesCacheStage resources.\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the cache stage.\n"},"fallbackTtl":{"type":"integer","description":"The Time To Live (TTL) in seconds. Defines how long content is cached.\n"},"includeCookies":{"type":"boolean","description":"Defines whether responses to requests with cookies must be stored in the cache.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cache stage is associated with.\n","willReplaceOnChanges":true},"purgeRequests":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesCacheStagePurgeRequest:EdgeServicesCacheStagePurgeRequest"},"description":"The Scaleway Object Storage origin bucket (S3) linked to the backend stage.\n"},"refreshCache":{"type":"string","description":"Trigger a refresh of the cache by changing this field's value.\n"},"routeStageId":{"type":"string","description":"The route stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the cache stage.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the cache stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/edgeservicescachestage.EdgeServicesCacheStage has been deprecated in favor of scaleway.edgeservices/cachestage.CacheStage"},"scaleway:index/edgeServicesDnsStage:EdgeServicesDnsStage":{"description":"Creates and manages Scaleway Edge Services DNS Stages.\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.edgeservices.DnsStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    fqdns: [\"subdomain.example.com\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.DnsStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    fqdns=[\"subdomain.example.com\"])\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.Edgeservices.DnsStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        Fqdns = new[]\n        {\n            \"subdomain.example.com\",\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewDnsStage(ctx, \"main\", \u0026edgeservices.DnsStageArgs{\n\t\t\tPipelineId: pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tFqdns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"subdomain.example.com\"),\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.edgeservices.DnsStage;\nimport com.pulumi.scaleway.edgeservices.DnsStageArgs;\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 DnsStage(\"main\", DnsStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .fqdns(\"subdomain.example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:DnsStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      fqdns:\n        - subdomain.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDNS stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/edgeServicesDnsStage:EdgeServicesDnsStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the DNS stage.\n"},"defaultFqdn":{"type":"string","description":"The Default Fully Qualified Domain Name attached to the stage.\n"},"fqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (in the format subdomain.example.com) to attach to the stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the DNS stage is associated with.\n"},"tlsStageId":{"type":"string","description":"The TLS stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"type":{"type":"string","description":"The type of the stage.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the DNS stage.\n"}},"required":["backendStageId","cacheStageId","createdAt","defaultFqdn","fqdns","pipelineId","projectId","tlsStageId","type","updatedAt"],"inputProperties":{"backendStageId":{"type":"string","description":"The backend stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"fqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (in the format subdomain.example.com) to attach to the stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the DNS stage is associated with.\n","willReplaceOnChanges":true},"tlsStageId":{"type":"string","description":"The TLS stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering EdgeServicesDnsStage resources.\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the DNS stage.\n"},"defaultFqdn":{"type":"string","description":"The Default Fully Qualified Domain Name attached to the stage.\n"},"fqdns":{"type":"array","items":{"type":"string"},"description":"Fully Qualified Domain Name (in the format subdomain.example.com) to attach to the stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the DNS stage is associated with.\n","willReplaceOnChanges":true},"tlsStageId":{"type":"string","description":"The TLS stage ID the DNS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`tlsStageId`\" pulumi-lang-dotnet=\"`TlsStageId`\" pulumi-lang-go=\"`tlsStageId`\" pulumi-lang-python=\"`tls_stage_id`\" pulumi-lang-yaml=\"`tlsStageId`\" pulumi-lang-java=\"`tlsStageId`\"\u003e`tls_stage_id`\u003c/span\u003e should be specified.\n"},"type":{"type":"string","description":"The type of the stage.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the DNS stage.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/edgeservicesdnsstage.EdgeServicesDnsStage has been deprecated in favor of scaleway.edgeservices/dnsstage.DnsStage"},"scaleway:index/edgeServicesHeadStage:EdgeServicesHeadStage":{"description":"Sets the Scaleway Edge Services head stage of your pipeline.\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.edgeservices.Pipeline(\"main\", {\n    name: \"my-edge_services-pipeline\",\n    description: \"pipeline description\",\n});\nconst mainDnsStage = new scaleway.edgeservices.DnsStage(\"main\", {\n    pipelineId: main.id,\n    tlsStageId: mainScalewayEdgeServicesTlsStage.id,\n    fqdns: [\"subdomain.example.com\"],\n});\nconst mainHeadStage = new scaleway.edgeservices.HeadStage(\"main\", {\n    pipelineId: main.id,\n    headStageId: mainDnsStage.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.Pipeline(\"main\",\n    name=\"my-edge_services-pipeline\",\n    description=\"pipeline description\")\nmain_dns_stage = scaleway.edgeservices.DnsStage(\"main\",\n    pipeline_id=main.id,\n    tls_stage_id=main_scaleway_edge_services_tls_stage[\"id\"],\n    fqdns=[\"subdomain.example.com\"])\nmain_head_stage = scaleway.edgeservices.HeadStage(\"main\",\n    pipeline_id=main.id,\n    head_stage_id=main_dns_stage.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 main = new Scaleway.Edgeservices.Pipeline(\"main\", new()\n    {\n        Name = \"my-edge_services-pipeline\",\n        Description = \"pipeline description\",\n    });\n\n    var mainDnsStage = new Scaleway.Edgeservices.DnsStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        TlsStageId = mainScalewayEdgeServicesTlsStage.Id,\n        Fqdns = new[]\n        {\n            \"subdomain.example.com\",\n        },\n    });\n\n    var mainHeadStage = new Scaleway.Edgeservices.HeadStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        HeadStageId = mainDnsStage.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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := edgeservices.NewPipeline(ctx, \"main\", \u0026edgeservices.PipelineArgs{\n\t\t\tName:        pulumi.String(\"my-edge_services-pipeline\"),\n\t\t\tDescription: pulumi.String(\"pipeline description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainDnsStage, err := edgeservices.NewDnsStage(ctx, \"main\", \u0026edgeservices.DnsStageArgs{\n\t\t\tPipelineId: main.ID(),\n\t\t\tTlsStageId: pulumi.Any(mainScalewayEdgeServicesTlsStage.Id),\n\t\t\tFqdns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"subdomain.example.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edgeservices.NewHeadStage(ctx, \"main\", \u0026edgeservices.HeadStageArgs{\n\t\t\tPipelineId:  main.ID(),\n\t\t\tHeadStageId: mainDnsStage.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.edgeservices.Pipeline;\nimport com.pulumi.scaleway.edgeservices.PipelineArgs;\nimport com.pulumi.scaleway.edgeservices.DnsStage;\nimport com.pulumi.scaleway.edgeservices.DnsStageArgs;\nimport com.pulumi.scaleway.edgeservices.HeadStage;\nimport com.pulumi.scaleway.edgeservices.HeadStageArgs;\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 Pipeline(\"main\", PipelineArgs.builder()\n            .name(\"my-edge_services-pipeline\")\n            .description(\"pipeline description\")\n            .build());\n\n        var mainDnsStage = new DnsStage(\"mainDnsStage\", DnsStageArgs.builder()\n            .pipelineId(main.id())\n            .tlsStageId(mainScalewayEdgeServicesTlsStage.id())\n            .fqdns(\"subdomain.example.com\")\n            .build());\n\n        var mainHeadStage = new HeadStage(\"mainHeadStage\", HeadStageArgs.builder()\n            .pipelineId(main.id())\n            .headStageId(mainDnsStage.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:Pipeline\n    properties:\n      name: my-edge_services-pipeline\n      description: pipeline description\n  mainDnsStage:\n    type: scaleway:edgeservices:DnsStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      tlsStageId: ${mainScalewayEdgeServicesTlsStage.id}\n      fqdns:\n        - subdomain.example.com\n  mainHeadStage:\n    type: scaleway:edgeservices:HeadStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      headStageId: ${mainDnsStage.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHead stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/edgeServicesHeadStage:EdgeServicesHeadStage main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"headStageId":{"type":"string","description":"The ID of head stage of the pipeline.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"}},"required":["headStageId","pipelineId"],"inputProperties":{"headStageId":{"type":"string","description":"The ID of head stage of the pipeline.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n","willReplaceOnChanges":true}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering EdgeServicesHeadStage resources.\n","properties":{"headStageId":{"type":"string","description":"The ID of head stage of the pipeline.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/edgeservicesheadstage.EdgeServicesHeadStage has been deprecated in favor of scaleway.edgeservices/headstage.HeadStage"},"scaleway:index/edgeServicesPipeline:EdgeServicesPipeline":{"description":"Creates and manages Scaleway Edge Services Pipelines.\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.edgeservices.Pipeline(\"main\", {\n    name: \"pipeline-name\",\n    description: \"pipeline description\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.Pipeline(\"main\",\n    name=\"pipeline-name\",\n    description=\"pipeline description\")\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.Edgeservices.Pipeline(\"main\", new()\n    {\n        Name = \"pipeline-name\",\n        Description = \"pipeline description\",\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewPipeline(ctx, \"main\", \u0026edgeservices.PipelineArgs{\n\t\t\tName:        pulumi.String(\"pipeline-name\"),\n\t\t\tDescription: pulumi.String(\"pipeline description\"),\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.edgeservices.Pipeline;\nimport com.pulumi.scaleway.edgeservices.PipelineArgs;\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 Pipeline(\"main\", PipelineArgs.builder()\n            .name(\"pipeline-name\")\n            .description(\"pipeline description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:Pipeline\n    properties:\n      name: pipeline-name\n      description: pipeline description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Complete pipeline\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.edgeservices.Pipeline(\"main\", {\n    name: \"pipeline-name\",\n    description: \"pipeline description\",\n});\nconst mainBackendStage = new scaleway.edgeservices.BackendStage(\"main\", {\n    pipelineId: main.id,\n    s3BackendConfig: {\n        bucketName: \"my-bucket-name\",\n        bucketRegion: \"fr-par\",\n    },\n});\nconst mainWafStage = new scaleway.edgeservices.WafStage(\"main\", {\n    pipelineId: main.id,\n    backendStageId: mainBackendStage.id,\n    mode: \"enable\",\n    paranoiaLevel: 3,\n});\nconst mainRouteStage = new scaleway.edgeservices.RouteStage(\"main\", {\n    pipelineId: main.id,\n    wafStageId: mainWafStage.id,\n    rules: [{\n        backendStageId: mainBackendStage.id,\n        ruleHttpMatch: {\n            methodFilters: [\n                \"get\",\n                \"post\",\n            ],\n            pathFilter: {\n                pathFilterType: \"regex\",\n                value: \".*\",\n            },\n        },\n    }],\n});\nconst mainCacheStage = new scaleway.edgeservices.CacheStage(\"main\", {\n    pipelineId: main.id,\n    routeStageId: mainRouteStage.id,\n});\nconst mainTlsStage = new scaleway.edgeservices.TlsStage(\"main\", {\n    pipelineId: main.id,\n    cacheStageId: mainCacheStage.id,\n    managedCertificate: true,\n});\nconst mainDnsStage = new scaleway.edgeservices.DnsStage(\"main\", {\n    pipelineId: main.id,\n    tlsStageId: mainTlsStage.id,\n    fqdns: [\"subdomain.example.com\"],\n});\nconst mainHeadStage = new scaleway.edgeservices.HeadStage(\"main\", {\n    pipelineId: main.id,\n    headStageId: mainDnsStage.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.Pipeline(\"main\",\n    name=\"pipeline-name\",\n    description=\"pipeline description\")\nmain_backend_stage = scaleway.edgeservices.BackendStage(\"main\",\n    pipeline_id=main.id,\n    s3_backend_config={\n        \"bucket_name\": \"my-bucket-name\",\n        \"bucket_region\": \"fr-par\",\n    })\nmain_waf_stage = scaleway.edgeservices.WafStage(\"main\",\n    pipeline_id=main.id,\n    backend_stage_id=main_backend_stage.id,\n    mode=\"enable\",\n    paranoia_level=3)\nmain_route_stage = scaleway.edgeservices.RouteStage(\"main\",\n    pipeline_id=main.id,\n    waf_stage_id=main_waf_stage.id,\n    rules=[{\n        \"backend_stage_id\": main_backend_stage.id,\n        \"rule_http_match\": {\n            \"method_filters\": [\n                \"get\",\n                \"post\",\n            ],\n            \"path_filter\": {\n                \"path_filter_type\": \"regex\",\n                \"value\": \".*\",\n            },\n        },\n    }])\nmain_cache_stage = scaleway.edgeservices.CacheStage(\"main\",\n    pipeline_id=main.id,\n    route_stage_id=main_route_stage.id)\nmain_tls_stage = scaleway.edgeservices.TlsStage(\"main\",\n    pipeline_id=main.id,\n    cache_stage_id=main_cache_stage.id,\n    managed_certificate=True)\nmain_dns_stage = scaleway.edgeservices.DnsStage(\"main\",\n    pipeline_id=main.id,\n    tls_stage_id=main_tls_stage.id,\n    fqdns=[\"subdomain.example.com\"])\nmain_head_stage = scaleway.edgeservices.HeadStage(\"main\",\n    pipeline_id=main.id,\n    head_stage_id=main_dns_stage.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 main = new Scaleway.Edgeservices.Pipeline(\"main\", new()\n    {\n        Name = \"pipeline-name\",\n        Description = \"pipeline description\",\n    });\n\n    var mainBackendStage = new Scaleway.Edgeservices.BackendStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        S3BackendConfig = new Scaleway.Edgeservices.Inputs.BackendStageS3BackendConfigArgs\n        {\n            BucketName = \"my-bucket-name\",\n            BucketRegion = \"fr-par\",\n        },\n    });\n\n    var mainWafStage = new Scaleway.Edgeservices.WafStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        BackendStageId = mainBackendStage.Id,\n        Mode = \"enable\",\n        ParanoiaLevel = 3,\n    });\n\n    var mainRouteStage = new Scaleway.Edgeservices.RouteStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        WafStageId = mainWafStage.Id,\n        Rules = new[]\n        {\n            new Scaleway.Edgeservices.Inputs.RouteStageRuleArgs\n            {\n                BackendStageId = mainBackendStage.Id,\n                RuleHttpMatch = new Scaleway.Edgeservices.Inputs.RouteStageRuleRuleHttpMatchArgs\n                {\n                    MethodFilters = new[]\n                    {\n                        \"get\",\n                        \"post\",\n                    },\n                    PathFilter = new Scaleway.Edgeservices.Inputs.RouteStageRuleRuleHttpMatchPathFilterArgs\n                    {\n                        PathFilterType = \"regex\",\n                        Value = \".*\",\n                    },\n                },\n            },\n        },\n    });\n\n    var mainCacheStage = new Scaleway.Edgeservices.CacheStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        RouteStageId = mainRouteStage.Id,\n    });\n\n    var mainTlsStage = new Scaleway.Edgeservices.TlsStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        CacheStageId = mainCacheStage.Id,\n        ManagedCertificate = true,\n    });\n\n    var mainDnsStage = new Scaleway.Edgeservices.DnsStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        TlsStageId = mainTlsStage.Id,\n        Fqdns = new[]\n        {\n            \"subdomain.example.com\",\n        },\n    });\n\n    var mainHeadStage = new Scaleway.Edgeservices.HeadStage(\"main\", new()\n    {\n        PipelineId = main.Id,\n        HeadStageId = mainDnsStage.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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := edgeservices.NewPipeline(ctx, \"main\", \u0026edgeservices.PipelineArgs{\n\t\t\tName:        pulumi.String(\"pipeline-name\"),\n\t\t\tDescription: pulumi.String(\"pipeline description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainBackendStage, err := edgeservices.NewBackendStage(ctx, \"main\", \u0026edgeservices.BackendStageArgs{\n\t\t\tPipelineId: main.ID(),\n\t\t\tS3BackendConfig: \u0026edgeservices.BackendStageS3BackendConfigArgs{\n\t\t\t\tBucketName:   pulumi.String(\"my-bucket-name\"),\n\t\t\t\tBucketRegion: pulumi.String(\"fr-par\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainWafStage, err := edgeservices.NewWafStage(ctx, \"main\", \u0026edgeservices.WafStageArgs{\n\t\t\tPipelineId:     main.ID(),\n\t\t\tBackendStageId: mainBackendStage.ID(),\n\t\t\tMode:           pulumi.String(\"enable\"),\n\t\t\tParanoiaLevel:  pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainRouteStage, err := edgeservices.NewRouteStage(ctx, \"main\", \u0026edgeservices.RouteStageArgs{\n\t\t\tPipelineId: main.ID(),\n\t\t\tWafStageId: mainWafStage.ID(),\n\t\t\tRules: edgeservices.RouteStageRuleArray{\n\t\t\t\t\u0026edgeservices.RouteStageRuleArgs{\n\t\t\t\t\tBackendStageId: mainBackendStage.ID(),\n\t\t\t\t\tRuleHttpMatch: \u0026edgeservices.RouteStageRuleRuleHttpMatchArgs{\n\t\t\t\t\t\tMethodFilters: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\t\tpulumi.String(\"post\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPathFilter: \u0026edgeservices.RouteStageRuleRuleHttpMatchPathFilterArgs{\n\t\t\t\t\t\t\tPathFilterType: pulumi.String(\"regex\"),\n\t\t\t\t\t\t\tValue:          pulumi.String(\".*\"),\n\t\t\t\t\t\t},\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\tmainCacheStage, err := edgeservices.NewCacheStage(ctx, \"main\", \u0026edgeservices.CacheStageArgs{\n\t\t\tPipelineId:   main.ID(),\n\t\t\tRouteStageId: mainRouteStage.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainTlsStage, err := edgeservices.NewTlsStage(ctx, \"main\", \u0026edgeservices.TlsStageArgs{\n\t\t\tPipelineId:         main.ID(),\n\t\t\tCacheStageId:       mainCacheStage.ID(),\n\t\t\tManagedCertificate: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainDnsStage, err := edgeservices.NewDnsStage(ctx, \"main\", \u0026edgeservices.DnsStageArgs{\n\t\t\tPipelineId: main.ID(),\n\t\t\tTlsStageId: mainTlsStage.ID(),\n\t\t\tFqdns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"subdomain.example.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = edgeservices.NewHeadStage(ctx, \"main\", \u0026edgeservices.HeadStageArgs{\n\t\t\tPipelineId:  main.ID(),\n\t\t\tHeadStageId: mainDnsStage.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.edgeservices.Pipeline;\nimport com.pulumi.scaleway.edgeservices.PipelineArgs;\nimport com.pulumi.scaleway.edgeservices.BackendStage;\nimport com.pulumi.scaleway.edgeservices.BackendStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.BackendStageS3BackendConfigArgs;\nimport com.pulumi.scaleway.edgeservices.WafStage;\nimport com.pulumi.scaleway.edgeservices.WafStageArgs;\nimport com.pulumi.scaleway.edgeservices.RouteStage;\nimport com.pulumi.scaleway.edgeservices.RouteStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleRuleHttpMatchArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleRuleHttpMatchPathFilterArgs;\nimport com.pulumi.scaleway.edgeservices.CacheStage;\nimport com.pulumi.scaleway.edgeservices.CacheStageArgs;\nimport com.pulumi.scaleway.edgeservices.TlsStage;\nimport com.pulumi.scaleway.edgeservices.TlsStageArgs;\nimport com.pulumi.scaleway.edgeservices.DnsStage;\nimport com.pulumi.scaleway.edgeservices.DnsStageArgs;\nimport com.pulumi.scaleway.edgeservices.HeadStage;\nimport com.pulumi.scaleway.edgeservices.HeadStageArgs;\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 Pipeline(\"main\", PipelineArgs.builder()\n            .name(\"pipeline-name\")\n            .description(\"pipeline description\")\n            .build());\n\n        var mainBackendStage = new BackendStage(\"mainBackendStage\", BackendStageArgs.builder()\n            .pipelineId(main.id())\n            .s3BackendConfig(BackendStageS3BackendConfigArgs.builder()\n                .bucketName(\"my-bucket-name\")\n                .bucketRegion(\"fr-par\")\n                .build())\n            .build());\n\n        var mainWafStage = new WafStage(\"mainWafStage\", WafStageArgs.builder()\n            .pipelineId(main.id())\n            .backendStageId(mainBackendStage.id())\n            .mode(\"enable\")\n            .paranoiaLevel(3)\n            .build());\n\n        var mainRouteStage = new RouteStage(\"mainRouteStage\", RouteStageArgs.builder()\n            .pipelineId(main.id())\n            .wafStageId(mainWafStage.id())\n            .rules(RouteStageRuleArgs.builder()\n                .backendStageId(mainBackendStage.id())\n                .ruleHttpMatch(RouteStageRuleRuleHttpMatchArgs.builder()\n                    .methodFilters(                    \n                        \"get\",\n                        \"post\")\n                    .pathFilter(RouteStageRuleRuleHttpMatchPathFilterArgs.builder()\n                        .pathFilterType(\"regex\")\n                        .value(\".*\")\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var mainCacheStage = new CacheStage(\"mainCacheStage\", CacheStageArgs.builder()\n            .pipelineId(main.id())\n            .routeStageId(mainRouteStage.id())\n            .build());\n\n        var mainTlsStage = new TlsStage(\"mainTlsStage\", TlsStageArgs.builder()\n            .pipelineId(main.id())\n            .cacheStageId(mainCacheStage.id())\n            .managedCertificate(true)\n            .build());\n\n        var mainDnsStage = new DnsStage(\"mainDnsStage\", DnsStageArgs.builder()\n            .pipelineId(main.id())\n            .tlsStageId(mainTlsStage.id())\n            .fqdns(\"subdomain.example.com\")\n            .build());\n\n        var mainHeadStage = new HeadStage(\"mainHeadStage\", HeadStageArgs.builder()\n            .pipelineId(main.id())\n            .headStageId(mainDnsStage.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:Pipeline\n    properties:\n      name: pipeline-name\n      description: pipeline description\n  mainDnsStage:\n    type: scaleway:edgeservices:DnsStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      tlsStageId: ${mainTlsStage.id}\n      fqdns:\n        - subdomain.example.com\n  mainTlsStage:\n    type: scaleway:edgeservices:TlsStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      cacheStageId: ${mainCacheStage.id}\n      managedCertificate: true\n  mainCacheStage:\n    type: scaleway:edgeservices:CacheStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      routeStageId: ${mainRouteStage.id}\n  mainRouteStage:\n    type: scaleway:edgeservices:RouteStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      wafStageId: ${mainWafStage.id}\n      rules:\n        - backendStageId: ${mainBackendStage.id}\n          ruleHttpMatch:\n            methodFilters:\n              - get\n              - post\n            pathFilter:\n              pathFilterType: regex\n              value: .*\n  mainWafStage:\n    type: scaleway:edgeservices:WafStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      backendStageId: ${mainBackendStage.id}\n      mode: enable\n      paranoiaLevel: 3\n  mainBackendStage:\n    type: scaleway:edgeservices:BackendStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      s3BackendConfig:\n        bucketName: my-bucket-name\n        bucketRegion: fr-par\n  mainHeadStage:\n    type: scaleway:edgeservices:HeadStage\n    name: main\n    properties:\n      pipelineId: ${main.id}\n      headStageId: ${mainDnsStage.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPipelines can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/edgeServicesPipeline:EdgeServicesPipeline basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the pipeline.\n"},"description":{"type":"string","description":"The description of the pipeline.\n"},"name":{"type":"string","description":"The name of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the pipeline is associated with.\n"},"status":{"type":"string","description":"The status of user pipeline.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the pipeline.\n"}},"required":["createdAt","name","projectId","status","updatedAt"],"inputProperties":{"description":{"type":"string","description":"The description of the pipeline.\n"},"name":{"type":"string","description":"The name of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the pipeline is associated with.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering EdgeServicesPipeline resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the pipeline.\n"},"description":{"type":"string","description":"The description of the pipeline.\n"},"name":{"type":"string","description":"The name of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the pipeline is associated with.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of user pipeline.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the pipeline.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/edgeservicespipeline.EdgeServicesPipeline has been deprecated in favor of scaleway.edgeservices/pipeline.Pipeline"},"scaleway:index/edgeServicesPlan:EdgeServicesPlan":{"description":"Creates and manages Scaleway Edge Services plans.\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.edgeservices.Plan(\"main\", {name: \"starter\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.Plan(\"main\", name=\"starter\")\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.Edgeservices.Plan(\"main\", new()\n    {\n        Name = \"starter\",\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewPlan(ctx, \"main\", \u0026edgeservices.PlanArgs{\n\t\t\tName: pulumi.String(\"starter\"),\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.edgeservices.Plan;\nimport com.pulumi.scaleway.edgeservices.PlanArgs;\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 Plan(\"main\", PlanArgs.builder()\n            .name(\"starter\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:Plan\n    properties:\n      name: starter\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPlans can be imported using `{project_id}/{plan_name}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/edgeServicesPlan:EdgeServicesPlan main 11111111-1111-1111-1111-111111111111/starter\n```\n\n","properties":{"name":{"type":"string","description":"The name of the plan.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the plan is associated with.\n"}},"required":["name","projectId"],"inputProperties":{"name":{"type":"string","description":"The name of the plan.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the plan is associated with.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering EdgeServicesPlan resources.\n","properties":{"name":{"type":"string","description":"The name of the plan.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the plan is associated with.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/edgeservicesplan.EdgeServicesPlan has been deprecated in favor of scaleway.edgeservices/plan.Plan"},"scaleway:index/edgeServicesRouteStage:EdgeServicesRouteStage":{"description":"Creates and manages Scaleway Edge Services Route Stages.\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.edgeservices.RouteStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    wafStageId: waf.id,\n    rules: [{\n        backendStageId: backend.id,\n        ruleHttpMatch: {\n            methodFilters: [\n                \"get\",\n                \"post\",\n            ],\n            pathFilter: {\n                pathFilterType: \"regex\",\n                value: \".*\",\n            },\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.RouteStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    waf_stage_id=waf[\"id\"],\n    rules=[{\n        \"backend_stage_id\": backend[\"id\"],\n        \"rule_http_match\": {\n            \"method_filters\": [\n                \"get\",\n                \"post\",\n            ],\n            \"path_filter\": {\n                \"path_filter_type\": \"regex\",\n                \"value\": \".*\",\n            },\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.Edgeservices.RouteStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        WafStageId = waf.Id,\n        Rules = new[]\n        {\n            new Scaleway.Edgeservices.Inputs.RouteStageRuleArgs\n            {\n                BackendStageId = backend.Id,\n                RuleHttpMatch = new Scaleway.Edgeservices.Inputs.RouteStageRuleRuleHttpMatchArgs\n                {\n                    MethodFilters = new[]\n                    {\n                        \"get\",\n                        \"post\",\n                    },\n                    PathFilter = new Scaleway.Edgeservices.Inputs.RouteStageRuleRuleHttpMatchPathFilterArgs\n                    {\n                        PathFilterType = \"regex\",\n                        Value = \".*\",\n                    },\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewRouteStage(ctx, \"main\", \u0026edgeservices.RouteStageArgs{\n\t\t\tPipelineId: pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tWafStageId: pulumi.Any(waf.Id),\n\t\t\tRules: edgeservices.RouteStageRuleArray{\n\t\t\t\t\u0026edgeservices.RouteStageRuleArgs{\n\t\t\t\t\tBackendStageId: pulumi.Any(backend.Id),\n\t\t\t\t\tRuleHttpMatch: \u0026edgeservices.RouteStageRuleRuleHttpMatchArgs{\n\t\t\t\t\t\tMethodFilters: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"get\"),\n\t\t\t\t\t\t\tpulumi.String(\"post\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPathFilter: \u0026edgeservices.RouteStageRuleRuleHttpMatchPathFilterArgs{\n\t\t\t\t\t\t\tPathFilterType: pulumi.String(\"regex\"),\n\t\t\t\t\t\t\tValue:          pulumi.String(\".*\"),\n\t\t\t\t\t\t},\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.edgeservices.RouteStage;\nimport com.pulumi.scaleway.edgeservices.RouteStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleRuleHttpMatchArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.RouteStageRuleRuleHttpMatchPathFilterArgs;\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 RouteStage(\"main\", RouteStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .wafStageId(waf.id())\n            .rules(RouteStageRuleArgs.builder()\n                .backendStageId(backend.id())\n                .ruleHttpMatch(RouteStageRuleRuleHttpMatchArgs.builder()\n                    .methodFilters(                    \n                        \"get\",\n                        \"post\")\n                    .pathFilter(RouteStageRuleRuleHttpMatchPathFilterArgs.builder()\n                        .pathFilterType(\"regex\")\n                        .value(\".*\")\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:RouteStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      wafStageId: ${waf.id}\n      rules:\n        - backendStageId: ${backend.id}\n          ruleHttpMatch:\n            methodFilters:\n              - get\n              - post\n            pathFilter:\n              pathFilterType: regex\n              value: .*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRoute stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/edgeServicesRouteStage:EdgeServicesRouteStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the route stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the route stage is associated with.\n"},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesRouteStageRule:EdgeServicesRouteStageRule"},"description":"The list of rules to be checked against every HTTP request. The first matching rule will forward the request to its specified backend stage. If no rules are matched, the request is forwarded to the WAF stage defined by \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the route stage.\n"},"wafStageId":{"type":"string","description":"The ID of the WAF stage HTTP requests should be forwarded to when no rules are matched.\n"}},"required":["createdAt","pipelineId","projectId","updatedAt"],"inputProperties":{"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the route stage is associated with.\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesRouteStageRule:EdgeServicesRouteStageRule"},"description":"The list of rules to be checked against every HTTP request. The first matching rule will forward the request to its specified backend stage. If no rules are matched, the request is forwarded to the WAF stage defined by \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e.\n"},"wafStageId":{"type":"string","description":"The ID of the WAF stage HTTP requests should be forwarded to when no rules are matched.\n"}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering EdgeServicesRouteStage resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the route stage.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the route stage is associated with.\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesRouteStageRule:EdgeServicesRouteStageRule"},"description":"The list of rules to be checked against every HTTP request. The first matching rule will forward the request to its specified backend stage. If no rules are matched, the request is forwarded to the WAF stage defined by \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the route stage.\n"},"wafStageId":{"type":"string","description":"The ID of the WAF stage HTTP requests should be forwarded to when no rules are matched.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/edgeservicesroutestage.EdgeServicesRouteStage has been deprecated in favor of scaleway.edgeservices/routestage.RouteStage"},"scaleway:index/edgeServicesTlsStage:EdgeServicesTlsStage":{"description":"Creates and manages Scaleway Edge Services TLS Stages.\n\n## Example Usage\n\n### Managed\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.edgeservices.TlsStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    managedCertificate: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.TlsStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    managed_certificate=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 main = new Scaleway.Edgeservices.TlsStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        ManagedCertificate = 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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewTlsStage(ctx, \"main\", \u0026edgeservices.TlsStageArgs{\n\t\t\tPipelineId:         pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tManagedCertificate: 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.edgeservices.TlsStage;\nimport com.pulumi.scaleway.edgeservices.TlsStageArgs;\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 TlsStage(\"main\", TlsStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .managedCertificate(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:TlsStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      managedCertificate: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With a certificate stored in Scaleway Secret Manager\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.edgeservices.TlsStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    secrets: [{\n        secretId: \"11111111-1111-1111-1111-111111111111\",\n        region: \"fr-par\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.TlsStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    secrets=[{\n        \"secret_id\": \"11111111-1111-1111-1111-111111111111\",\n        \"region\": \"fr-par\",\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.Edgeservices.TlsStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        Secrets = new[]\n        {\n            new Scaleway.Edgeservices.Inputs.TlsStageSecretArgs\n            {\n                SecretId = \"11111111-1111-1111-1111-111111111111\",\n                Region = \"fr-par\",\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewTlsStage(ctx, \"main\", \u0026edgeservices.TlsStageArgs{\n\t\t\tPipelineId: pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tSecrets: edgeservices.TlsStageSecretArray{\n\t\t\t\t\u0026edgeservices.TlsStageSecretArgs{\n\t\t\t\t\tSecretId: pulumi.String(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\t\t\tRegion:   pulumi.String(\"fr-par\"),\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.edgeservices.TlsStage;\nimport com.pulumi.scaleway.edgeservices.TlsStageArgs;\nimport com.pulumi.scaleway.edgeservices.inputs.TlsStageSecretArgs;\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 TlsStage(\"main\", TlsStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .secrets(TlsStageSecretArgs.builder()\n                .secretId(\"11111111-1111-1111-1111-111111111111\")\n                .region(\"fr-par\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:TlsStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      secrets:\n        - secretId: 11111111-1111-1111-1111-111111111111\n          region: fr-par\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTLS stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/edgeServicesTlsStage:EdgeServicesTlsStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"certificateExpiresAt":{"type":"string","description":"The expiration date of the certificate.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the TLS stage.\n"},"managedCertificate":{"type":"boolean","description":"Set to true when Scaleway generates and manages a Let's Encrypt certificate for the TLS stage/custom endpoint.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the TLS stage is associated with.\n"},"routeStageId":{"type":"string","description":"The route stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesTlsStageSecret:EdgeServicesTlsStageSecret"},"description":"The TLS secrets.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the TLS stage.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"required":["backendStageId","cacheStageId","certificateExpiresAt","createdAt","managedCertificate","pipelineId","projectId","routeStageId","secrets","updatedAt","wafStageId"],"inputProperties":{"backendStageId":{"type":"string","description":"The backend stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"managedCertificate":{"type":"boolean","description":"Set to true when Scaleway generates and manages a Let's Encrypt certificate for the TLS stage/custom endpoint.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the TLS stage is associated with.\n","willReplaceOnChanges":true},"routeStageId":{"type":"string","description":"The route stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesTlsStageSecret:EdgeServicesTlsStageSecret"},"description":"The TLS secrets.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"requiredInputs":["pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering EdgeServicesTlsStage resources.\n","properties":{"backendStageId":{"type":"string","description":"The backend stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"cacheStageId":{"type":"string","description":"The cache stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"certificateExpiresAt":{"type":"string","description":"The expiration date of the certificate.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the TLS stage.\n"},"managedCertificate":{"type":"boolean","description":"Set to true when Scaleway generates and manages a Let's Encrypt certificate for the TLS stage/custom endpoint.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the TLS stage is associated with.\n","willReplaceOnChanges":true},"routeStageId":{"type":"string","description":"The route stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/scaleway:index/EdgeServicesTlsStageSecret:EdgeServicesTlsStageSecret"},"description":"The TLS secrets.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the TLS stage.\n"},"wafStageId":{"type":"string","description":"The WAF stage ID the TLS stage will be linked to. Only one of \u003cspan pulumi-lang-nodejs=\"`backendStageId`\" pulumi-lang-dotnet=\"`BackendStageId`\" pulumi-lang-go=\"`backendStageId`\" pulumi-lang-python=\"`backend_stage_id`\" pulumi-lang-yaml=\"`backendStageId`\" pulumi-lang-java=\"`backendStageId`\"\u003e`backend_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cacheStageId`\" pulumi-lang-dotnet=\"`CacheStageId`\" pulumi-lang-go=\"`cacheStageId`\" pulumi-lang-python=\"`cache_stage_id`\" pulumi-lang-yaml=\"`cacheStageId`\" pulumi-lang-java=\"`cacheStageId`\"\u003e`cache_stage_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routeStageId`\" pulumi-lang-dotnet=\"`RouteStageId`\" pulumi-lang-go=\"`routeStageId`\" pulumi-lang-python=\"`route_stage_id`\" pulumi-lang-yaml=\"`routeStageId`\" pulumi-lang-java=\"`routeStageId`\"\u003e`route_stage_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`wafStageId`\" pulumi-lang-dotnet=\"`WafStageId`\" pulumi-lang-go=\"`wafStageId`\" pulumi-lang-python=\"`waf_stage_id`\" pulumi-lang-yaml=\"`wafStageId`\" pulumi-lang-java=\"`wafStageId`\"\u003e`waf_stage_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/edgeservicestlsstage.EdgeServicesTlsStage has been deprecated in favor of scaleway.edgeservices/tlsstage.TlsStage"},"scaleway:index/edgeServicesWafStage:EdgeServicesWafStage":{"description":"Creates and manages Scaleway Edge Services WAF Stages.\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.edgeservices.WafStage(\"main\", {\n    pipelineId: mainScalewayEdgeServicesPipeline.id,\n    mode: \"enable\",\n    paranoiaLevel: 3,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.edgeservices.WafStage(\"main\",\n    pipeline_id=main_scaleway_edge_services_pipeline[\"id\"],\n    mode=\"enable\",\n    paranoia_level=3)\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.Edgeservices.WafStage(\"main\", new()\n    {\n        PipelineId = mainScalewayEdgeServicesPipeline.Id,\n        Mode = \"enable\",\n        ParanoiaLevel = 3,\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/edgeservices\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := edgeservices.NewWafStage(ctx, \"main\", \u0026edgeservices.WafStageArgs{\n\t\t\tPipelineId:    pulumi.Any(mainScalewayEdgeServicesPipeline.Id),\n\t\t\tMode:          pulumi.String(\"enable\"),\n\t\t\tParanoiaLevel: pulumi.Int(3),\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.edgeservices.WafStage;\nimport com.pulumi.scaleway.edgeservices.WafStageArgs;\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 WafStage(\"main\", WafStageArgs.builder()\n            .pipelineId(mainScalewayEdgeServicesPipeline.id())\n            .mode(\"enable\")\n            .paranoiaLevel(3)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:edgeservices:WafStage\n    properties:\n      pipelineId: ${mainScalewayEdgeServicesPipeline.id}\n      mode: enable\n      paranoiaLevel: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nWAF stages can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/edgeServicesWafStage:EdgeServicesWafStage basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backendStageId":{"type":"string","description":"The ID of the backend stage to forward requests to after the WAF stage.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the WAF stage.\n"},"mode":{"type":"string","description":"The mode defining WAF behavior (\u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`logOnly`\" pulumi-lang-dotnet=\"`LogOnly`\" pulumi-lang-go=\"`logOnly`\" pulumi-lang-python=\"`log_only`\" pulumi-lang-yaml=\"`logOnly`\" pulumi-lang-java=\"`logOnly`\"\u003e`log_only`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e).\n"},"paranoiaLevel":{"type":"integer","description":"The sensitivity level (\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the WAF stage is associated with.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the WAF stage.\n"}},"required":["backendStageId","createdAt","mode","paranoiaLevel","pipelineId","projectId","updatedAt"],"inputProperties":{"backendStageId":{"type":"string","description":"The ID of the backend stage to forward requests to after the WAF stage.\n"},"mode":{"type":"string","description":"The mode defining WAF behavior (\u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`logOnly`\" pulumi-lang-dotnet=\"`LogOnly`\" pulumi-lang-go=\"`logOnly`\" pulumi-lang-python=\"`log_only`\" pulumi-lang-yaml=\"`logOnly`\" pulumi-lang-java=\"`logOnly`\"\u003e`log_only`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e).\n"},"paranoiaLevel":{"type":"integer","description":"The sensitivity level (\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the WAF stage is associated with.\n","willReplaceOnChanges":true}},"requiredInputs":["paranoiaLevel","pipelineId"],"stateInputs":{"description":"Input properties used for looking up and filtering EdgeServicesWafStage resources.\n","properties":{"backendStageId":{"type":"string","description":"The ID of the backend stage to forward requests to after the WAF stage.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the WAF stage.\n"},"mode":{"type":"string","description":"The mode defining WAF behavior (\u003cspan pulumi-lang-nodejs=\"`disable`\" pulumi-lang-dotnet=\"`Disable`\" pulumi-lang-go=\"`disable`\" pulumi-lang-python=\"`disable`\" pulumi-lang-yaml=\"`disable`\" pulumi-lang-java=\"`disable`\"\u003e`disable`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`logOnly`\" pulumi-lang-dotnet=\"`LogOnly`\" pulumi-lang-go=\"`logOnly`\" pulumi-lang-python=\"`log_only`\" pulumi-lang-yaml=\"`logOnly`\" pulumi-lang-java=\"`logOnly`\"\u003e`log_only`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`enable`\" pulumi-lang-dotnet=\"`Enable`\" pulumi-lang-go=\"`enable`\" pulumi-lang-python=\"`enable`\" pulumi-lang-yaml=\"`enable`\" pulumi-lang-java=\"`enable`\"\u003e`enable`\u003c/span\u003e).\n"},"paranoiaLevel":{"type":"integer","description":"The sensitivity level (\u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`3`\" pulumi-lang-dotnet=\"`3`\" pulumi-lang-go=\"`3`\" pulumi-lang-python=\"`3`\" pulumi-lang-yaml=\"`3`\" pulumi-lang-java=\"`3`\"\u003e`3`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e) to use when classifying requests as malicious. With a high level, requests are more likely to be classed as malicious, and false positives are expected. With a lower level, requests are more likely to be classed as benign.\n"},"pipelineId":{"type":"string","description":"The ID of the pipeline.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the WAF stage is associated with.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the WAF stage.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/edgeserviceswafstage.EdgeServicesWafStage has been deprecated in favor of scaleway.edgeservices/wafstage.WafStage"},"scaleway:index/fileFilesystem:FileFilesystem":{"description":"\u003e **This product is currently in private beta. To request access, please contact your Technical Account Manager.**\n\nCreates and manages a Scaleway File Storage filesystem in a specific region. A filesystem is a scalable storage resource that can be mounted on Compute instances and is typically used for share persistent storage between multiple instances (RWX).\n\nThis resource allows you to define and manage the size, tags, and region of a filesystem, and track its creation and update timestamps, current status, and number of active attachments.\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 file = new scaleway.FileFilesystem(\"file\", {\n    name: \"my-nfs-filesystem\",\n    sizeInGb: 100,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nfile = scaleway.FileFilesystem(\"file\",\n    name=\"my-nfs-filesystem\",\n    size_in_gb=100)\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 file = new Scaleway.FileFilesystem(\"file\", new()\n    {\n        Name = \"my-nfs-filesystem\",\n        SizeInGb = 100,\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.NewFileFilesystem(ctx, \"file\", \u0026scaleway.FileFilesystemArgs{\n\t\t\tName:     pulumi.String(\"my-nfs-filesystem\"),\n\t\t\tSizeInGb: pulumi.Int(100),\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.FileFilesystem;\nimport com.pulumi.scaleway.FileFilesystemArgs;\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 file = new FileFilesystem(\"file\", FileFilesystemArgs.builder()\n            .name(\"my-nfs-filesystem\")\n            .sizeInGb(100)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  file:\n    type: scaleway:FileFilesystem\n    properties:\n      name: my-nfs-filesystem\n      sizeInGb: 100\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFile Storage filesystems can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/fileFilesystem:FileFilesystem main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time when the File Storage filesystem was created.\n"},"name":{"type":"string","description":"The name of the filesystem. If not provided, a random name will be generated.\n"},"numberOfAttachments":{"type":"integer","description":"The number of active attachments (mounts) on the filesystem.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the user is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is\nassociated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region where the filesystem will be created (e.g., fr-par, nl-ams).\n"},"sizeInGb":{"type":"integer","description":"The size of the filesystem in bytes, with a granularity of 100 GB (10¹¹ bytes).\n- Minimum: 100 GB (100000000000 bytes)\n- Maximum: 10 TB (10000000000000 bytes)\n"},"status":{"type":"string","description":"The current status of the filesystem. Possible values include creating, available, etc.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags associated with the filesystem.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update to the File Storage filesystem.\n"}},"required":["createdAt","name","numberOfAttachments","organizationId","projectId","sizeInGb","status","updatedAt"],"inputProperties":{"name":{"type":"string","description":"The name of the filesystem. If not provided, a random name will be generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is\nassociated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region where the filesystem will be created (e.g., fr-par, nl-ams).\n","willReplaceOnChanges":true},"sizeInGb":{"type":"integer","description":"The size of the filesystem in bytes, with a granularity of 100 GB (10¹¹ bytes).\n- Minimum: 100 GB (100000000000 bytes)\n- Maximum: 10 TB (10000000000000 bytes)\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags associated with the filesystem.\n"}},"requiredInputs":["sizeInGb"],"stateInputs":{"description":"Input properties used for looking up and filtering FileFilesystem resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time when the File Storage filesystem was created.\n"},"name":{"type":"string","description":"The name of the filesystem. If not provided, a random name will be generated.\n"},"numberOfAttachments":{"type":"integer","description":"The number of active attachments (mounts) on the filesystem.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the user is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is\nassociated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region where the filesystem will be created (e.g., fr-par, nl-ams).\n","willReplaceOnChanges":true},"sizeInGb":{"type":"integer","description":"The size of the filesystem in bytes, with a granularity of 100 GB (10¹¹ bytes).\n- Minimum: 100 GB (100000000000 bytes)\n- Maximum: 10 TB (10000000000000 bytes)\n"},"status":{"type":"string","description":"The current status of the filesystem. Possible values include creating, available, etc.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags associated with the filesystem.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update to the File Storage filesystem.\n"}},"type":"object"}},"scaleway:index/flexibleIp:FlexibleIp":{"description":"Creates and manages Scaleway flexible IPs.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip).\n\n\u003e **Note:**\nFlexible IPs are exclusively available for Elastic Metal (bare metal) servers. They are not compatible with other Scaleway products.\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.elasticmetal.Ip(\"main\", {reverse: \"my-reverse.com\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.elasticmetal.Ip(\"main\", reverse=\"my-reverse.com\")\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.Elasticmetal.Ip(\"main\", new()\n    {\n        Reverse = \"my-reverse.com\",\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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticmetal.NewIp(ctx, \"main\", \u0026elasticmetal.IpArgs{\n\t\t\tReverse: pulumi.String(\"my-reverse.com\"),\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.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\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 Ip(\"main\", IpArgs.builder()\n            .reverse(\"my-reverse.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      reverse: my-reverse.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With zone\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.elasticmetal.Ip(\"main\", {zone: \"fr-par-2\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.elasticmetal.Ip(\"main\", zone=\"fr-par-2\")\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.Elasticmetal.Ip(\"main\", new()\n    {\n        Zone = \"fr-par-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticmetal.NewIp(ctx, \"main\", \u0026elasticmetal.IpArgs{\n\t\t\tZone: pulumi.String(\"fr-par-2\"),\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.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\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 Ip(\"main\", IpArgs.builder()\n            .zone(\"fr-par-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      zone: fr-par-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPv6\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.elasticmetal.Ip(\"main\", {isIpv6: true});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.elasticmetal.Ip(\"main\", is_ipv6=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 main = new Scaleway.Elasticmetal.Ip(\"main\", new()\n    {\n        IsIpv6 = 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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticmetal.NewIp(ctx, \"main\", \u0026elasticmetal.IpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\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 Ip(\"main\", IpArgs.builder()\n            .isIpv6(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      isIpv6: 'true'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With baremetal server\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.account.SshKey(\"main\", {\n    name: \"main\",\n    publicKey: \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\",\n});\nconst byId = scaleway.elasticmetal.getOs({\n    zone: \"fr-par-2\",\n    name: \"Ubuntu\",\n    version: \"20.04 LTS (Focal Fossa)\",\n});\nconst myOffer = scaleway.elasticmetal.getOffer({\n    zone: \"fr-par-2\",\n    name: \"EM-A210R-HDD\",\n});\nconst base = new scaleway.elasticmetal.Server(\"base\", {\n    zone: \"fr-par-2\",\n    offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n    os: byId.then(byId =\u003e byId.osId),\n    sshKeyIds: main.id,\n});\nconst mainIp = new scaleway.elasticmetal.Ip(\"main\", {\n    serverId: base.id,\n    zone: \"fr-par-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.account.SshKey(\"main\",\n    name=\"main\",\n    public_key=\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\")\nby_id = scaleway.elasticmetal.get_os(zone=\"fr-par-2\",\n    name=\"Ubuntu\",\n    version=\"20.04 LTS (Focal Fossa)\")\nmy_offer = scaleway.elasticmetal.get_offer(zone=\"fr-par-2\",\n    name=\"EM-A210R-HDD\")\nbase = scaleway.elasticmetal.Server(\"base\",\n    zone=\"fr-par-2\",\n    offer=my_offer.offer_id,\n    os=by_id.os_id,\n    ssh_key_ids=main.id)\nmain_ip = scaleway.elasticmetal.Ip(\"main\",\n    server_id=base.id,\n    zone=\"fr-par-2\")\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.Account.SshKey(\"main\", new()\n    {\n        Name = \"main\",\n        PublicKey = \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\",\n    });\n\n    var byId = Scaleway.Elasticmetal.GetOs.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"Ubuntu\",\n        Version = \"20.04 LTS (Focal Fossa)\",\n    });\n\n    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"EM-A210R-HDD\",\n    });\n\n    var @base = new Scaleway.Elasticmetal.Server(\"base\", new()\n    {\n        Zone = \"fr-par-2\",\n        Offer = myOffer.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        Os = byId.Apply(getOsResult =\u003e getOsResult.OsId),\n        SshKeyIds = main.Id,\n    });\n\n    var mainIp = new Scaleway.Elasticmetal.Ip(\"main\", new()\n    {\n        ServerId = @base.Id,\n        Zone = \"fr-par-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := account.NewSshKey(ctx, \"main\", \u0026account.SshKeyArgs{\n\t\t\tName:      pulumi.String(\"main\"),\n\t\t\tPublicKey: pulumi.String(\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbyId, err := elasticmetal.GetOs(ctx, \u0026elasticmetal.GetOsArgs{\n\t\t\tZone:    pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName:    pulumi.StringRef(\"Ubuntu\"),\n\t\t\tVersion: pulumi.StringRef(\"20.04 LTS (Focal Fossa)\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyOffer, err := elasticmetal.GetOffer(ctx, \u0026elasticmetal.GetOfferArgs{\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t\tName: pulumi.StringRef(\"EM-A210R-HDD\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbase, err := elasticmetal.NewServer(ctx, \"base\", \u0026elasticmetal.ServerArgs{\n\t\t\tZone:      pulumi.String(\"fr-par-2\"),\n\t\t\tOffer:     pulumi.String(myOffer.OfferId),\n\t\t\tOs:        pulumi.String(byId.OsId),\n\t\t\tSshKeyIds: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticmetal.NewIp(ctx, \"main\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t\tZone:     pulumi.String(\"fr-par-2\"),\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.account.SshKey;\nimport com.pulumi.scaleway.account.SshKeyArgs;\nimport com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.elasticmetal.Server;\nimport com.pulumi.scaleway.elasticmetal.ServerArgs;\nimport com.pulumi.scaleway.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\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 SshKey(\"main\", SshKeyArgs.builder()\n            .name(\"main\")\n            .publicKey(\"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\")\n            .build());\n\n        final var byId = ElasticmetalFunctions.getOs(GetOsArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"Ubuntu\")\n            .version(\"20.04 LTS (Focal Fossa)\")\n            .build());\n\n        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"EM-A210R-HDD\")\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .zone(\"fr-par-2\")\n            .offer(myOffer.offerId())\n            .os(byId.osId())\n            .sshKeyIds(main.id())\n            .build());\n\n        var mainIp = new Ip(\"mainIp\", IpArgs.builder()\n            .serverId(base.id())\n            .zone(\"fr-par-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:account:SshKey\n    properties:\n      name: main\n      publicKey: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILHy/M5FVm5ydLGcal3e5LNcfTalbeN7QL/ZGCvDEdqJ foobar@example.com\n  base:\n    type: scaleway:elasticmetal:Server\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${byId.osId}\n      sshKeyIds: ${main.id}\n  mainIp:\n    type: scaleway:elasticmetal:Ip\n    name: main\n    properties:\n      serverId: ${base.id}\n      zone: fr-par-2\nvariables:\n  byId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\n      arguments:\n        zone: fr-par-2\n        name: Ubuntu\n        version: 20.04 LTS (Focal Fossa)\n  myOffer:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-2\n        name: EM-A210R-HDD\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFlexible IPs can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/flexibleIp:FlexibleIp 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 Flexible IP (Format ISO 8601).\n"},"description":{"type":"string","description":"A description of the flexible IP.\n"},"ipAddress":{"type":"string","description":"The IP address of the Flexible IP.\n"},"isIpv6":{"type":"boolean","description":"Defines whether the flexible IP has an IPv6 address.\n"},"organizationId":{"type":"string","description":"The organization of the Flexible IP.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Flexible IP is associated with.\n"},"reverse":{"type":"string","description":"The reverse domain associated with this flexible IP.\n"},"serverId":{"type":"string","description":"The ID of the associated server.\n"},"status":{"type":"string","description":"The status of the flexible IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the flexible IP.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Flexible IP (Format ISO 8601).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Flexible IP.\n"}},"required":["createdAt","ipAddress","organizationId","projectId","reverse","status","updatedAt"],"inputProperties":{"description":{"type":"string","description":"A description of the flexible IP.\n"},"isIpv6":{"type":"boolean","description":"Defines whether the flexible IP has an IPv6 address.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Flexible IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse domain associated with this flexible IP.\n"},"serverId":{"type":"string","description":"The ID of the associated server.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the flexible IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Flexible IP.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering FlexibleIp resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the Flexible IP (Format ISO 8601).\n"},"description":{"type":"string","description":"A description of the flexible IP.\n"},"ipAddress":{"type":"string","description":"The IP address of the Flexible IP.\n"},"isIpv6":{"type":"boolean","description":"Defines whether the flexible IP has an IPv6 address.\n","willReplaceOnChanges":true},"organizationId":{"type":"string","description":"The organization of the Flexible IP.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Flexible IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse domain associated with this flexible IP.\n"},"serverId":{"type":"string","description":"The ID of the associated server.\n"},"status":{"type":"string","description":"The status of the flexible IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the flexible IP.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Flexible IP (Format ISO 8601).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Flexible IP.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/flexibleip.FlexibleIp has been deprecated in favor of scaleway.elasticmetal/ip.Ip"},"scaleway:index/flexibleIpMacAddress:FlexibleIpMacAddress":{"description":"Creates and manages Scaleway Flexible IP Mac Addresses.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/elastic-metal-flexible-ip/).\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.elasticmetal.Ip(\"main\", {});\nconst mainIpMacAddress = new scaleway.elasticmetal.IpMacAddress(\"main\", {\n    flexibleIpId: main.id,\n    type: \"kvm\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.elasticmetal.Ip(\"main\")\nmain_ip_mac_address = scaleway.elasticmetal.IpMacAddress(\"main\",\n    flexible_ip_id=main.id,\n    type=\"kvm\")\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.Elasticmetal.Ip(\"main\");\n\n    var mainIpMacAddress = new Scaleway.Elasticmetal.IpMacAddress(\"main\", new()\n    {\n        FlexibleIpId = main.Id,\n        Type = \"kvm\",\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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := elasticmetal.NewIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticmetal.NewIpMacAddress(ctx, \"main\", \u0026elasticmetal.IpMacAddressArgs{\n\t\t\tFlexibleIpId: main.ID(),\n\t\t\tType:         pulumi.String(\"kvm\"),\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.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpMacAddress;\nimport com.pulumi.scaleway.elasticmetal.IpMacAddressArgs;\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 Ip(\"main\");\n\n        var mainIpMacAddress = new IpMacAddress(\"mainIpMacAddress\", IpMacAddressArgs.builder()\n            .flexibleIpId(main.id())\n            .type(\"kvm\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:elasticmetal:Ip\n  mainIpMacAddress:\n    type: scaleway:elasticmetal:IpMacAddress\n    name: main\n    properties:\n      flexibleIpId: ${main.id}\n      type: kvm\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Duplicate on many other flexible IPs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst myOffer = scaleway.elasticmetal.getOffer({\n    name: \"EM-B112X-SSD\",\n});\nconst base = new scaleway.elasticmetal.Server(\"base\", {\n    name: \"TestAccScalewayBaremetalServer_WithoutInstallConfig\",\n    offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n    installConfigAfterward: true,\n});\nconst ip01 = new scaleway.elasticmetal.Ip(\"ip01\", {serverId: base.id});\nconst ip02 = new scaleway.elasticmetal.Ip(\"ip02\", {serverId: base.id});\nconst ip03 = new scaleway.elasticmetal.Ip(\"ip03\", {serverId: base.id});\nconst main = new scaleway.elasticmetal.IpMacAddress(\"main\", {\n    flexibleIpId: ip01.id,\n    type: \"kvm\",\n    flexibleIpIdsToDuplicates: [\n        ip02.id,\n        ip03.id,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmy_offer = scaleway.elasticmetal.get_offer(name=\"EM-B112X-SSD\")\nbase = scaleway.elasticmetal.Server(\"base\",\n    name=\"TestAccScalewayBaremetalServer_WithoutInstallConfig\",\n    offer=my_offer.offer_id,\n    install_config_afterward=True)\nip01 = scaleway.elasticmetal.Ip(\"ip01\", server_id=base.id)\nip02 = scaleway.elasticmetal.Ip(\"ip02\", server_id=base.id)\nip03 = scaleway.elasticmetal.Ip(\"ip03\", server_id=base.id)\nmain = scaleway.elasticmetal.IpMacAddress(\"main\",\n    flexible_ip_id=ip01.id,\n    type=\"kvm\",\n    flexible_ip_ids_to_duplicates=[\n        ip02.id,\n        ip03.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 myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()\n    {\n        Name = \"EM-B112X-SSD\",\n    });\n\n    var @base = new Scaleway.Elasticmetal.Server(\"base\", new()\n    {\n        Name = \"TestAccScalewayBaremetalServer_WithoutInstallConfig\",\n        Offer = myOffer.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        InstallConfigAfterward = true,\n    });\n\n    var ip01 = new Scaleway.Elasticmetal.Ip(\"ip01\", new()\n    {\n        ServerId = @base.Id,\n    });\n\n    var ip02 = new Scaleway.Elasticmetal.Ip(\"ip02\", new()\n    {\n        ServerId = @base.Id,\n    });\n\n    var ip03 = new Scaleway.Elasticmetal.Ip(\"ip03\", new()\n    {\n        ServerId = @base.Id,\n    });\n\n    var main = new Scaleway.Elasticmetal.IpMacAddress(\"main\", new()\n    {\n        FlexibleIpId = ip01.Id,\n        Type = \"kvm\",\n        FlexibleIpIdsToDuplicates = new[]\n        {\n            ip02.Id,\n            ip03.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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyOffer, err := elasticmetal.GetOffer(ctx, \u0026elasticmetal.GetOfferArgs{\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\tbase, err := elasticmetal.NewServer(ctx, \"base\", \u0026elasticmetal.ServerArgs{\n\t\t\tName:                   pulumi.String(\"TestAccScalewayBaremetalServer_WithoutInstallConfig\"),\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\tip01, err := elasticmetal.NewIp(ctx, \"ip01\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tip02, err := elasticmetal.NewIp(ctx, \"ip02\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tip03, err := elasticmetal.NewIp(ctx, \"ip03\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticmetal.NewIpMacAddress(ctx, \"main\", \u0026elasticmetal.IpMacAddressArgs{\n\t\t\tFlexibleIpId: ip01.ID(),\n\t\t\tType:         pulumi.String(\"kvm\"),\n\t\t\tFlexibleIpIdsToDuplicates: pulumi.StringArray{\n\t\t\t\tip02.ID(),\n\t\t\t\tip03.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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.elasticmetal.Server;\nimport com.pulumi.scaleway.elasticmetal.ServerArgs;\nimport com.pulumi.scaleway.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\nimport com.pulumi.scaleway.elasticmetal.IpMacAddress;\nimport com.pulumi.scaleway.elasticmetal.IpMacAddressArgs;\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 = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()\n            .name(\"EM-B112X-SSD\")\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .name(\"TestAccScalewayBaremetalServer_WithoutInstallConfig\")\n            .offer(myOffer.offerId())\n            .installConfigAfterward(true)\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .serverId(base.id())\n            .build());\n\n        var ip02 = new Ip(\"ip02\", IpArgs.builder()\n            .serverId(base.id())\n            .build());\n\n        var ip03 = new Ip(\"ip03\", IpArgs.builder()\n            .serverId(base.id())\n            .build());\n\n        var main = new IpMacAddress(\"main\", IpMacAddressArgs.builder()\n            .flexibleIpId(ip01.id())\n            .type(\"kvm\")\n            .flexibleIpIdsToDuplicates(            \n                ip02.id(),\n                ip03.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  base:\n    type: scaleway:elasticmetal:Server\n    properties:\n      name: TestAccScalewayBaremetalServer_WithoutInstallConfig\n      offer: ${myOffer.offerId}\n      installConfigAfterward: true\n  ip01:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      serverId: ${base.id}\n  ip02:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      serverId: ${base.id}\n  ip03:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      serverId: ${base.id}\n  main:\n    type: scaleway:elasticmetal:IpMacAddress\n    properties:\n      flexibleIpId: ${ip01.id}\n      type: kvm\n      flexibleIpIdsToDuplicates:\n        - ${ip02.id}\n        - ${ip03.id}\nvariables:\n  myOffer:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOffer\n      arguments:\n        name: EM-B112X-SSD\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFlexible IP Mac Addresses can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/flexibleIpMacAddress:FlexibleIpMacAddress main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"address":{"type":"string","description":"The Virtual MAC address.\n"},"createdAt":{"type":"string","description":"The date at which the Virtual Mac Address was created (RFC 3339 format).\n"},"flexibleIpId":{"type":"string","description":"The ID of the flexible IP for which to generate a virtual MAC.\n"},"flexibleIpIdsToDuplicates":{"type":"array","items":{"type":"string"},"description":"The IDs of the flexible IPs on which to duplicate the virtual MAC.\n\u003e **Important:** The flexible IPs need to be attached to the same server for the operation to work.\n"},"status":{"type":"string","description":"The Virtual MAC status.\n"},"type":{"type":"string","description":"The type of the virtual MAC.\n"},"updatedAt":{"type":"string","description":"The date at which the Virtual Mac Address was last updated (RFC 3339 format).\n"},"zone":{"type":"string","description":"The zone of the Virtual Mac Address.\n"}},"required":["address","createdAt","flexibleIpId","status","type","updatedAt"],"inputProperties":{"flexibleIpId":{"type":"string","description":"The ID of the flexible IP for which to generate a virtual MAC.\n"},"flexibleIpIdsToDuplicates":{"type":"array","items":{"type":"string"},"description":"The IDs of the flexible IPs on which to duplicate the virtual MAC.\n\u003e **Important:** The flexible IPs need to be attached to the same server for the operation to work.\n"},"type":{"type":"string","description":"The type of the virtual MAC.\n"},"zone":{"type":"string","description":"The zone of the Virtual Mac Address.\n","willReplaceOnChanges":true}},"requiredInputs":["flexibleIpId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering FlexibleIpMacAddress resources.\n","properties":{"address":{"type":"string","description":"The Virtual MAC address.\n"},"createdAt":{"type":"string","description":"The date at which the Virtual Mac Address was created (RFC 3339 format).\n"},"flexibleIpId":{"type":"string","description":"The ID of the flexible IP for which to generate a virtual MAC.\n"},"flexibleIpIdsToDuplicates":{"type":"array","items":{"type":"string"},"description":"The IDs of the flexible IPs on which to duplicate the virtual MAC.\n\u003e **Important:** The flexible IPs need to be attached to the same server for the operation to work.\n"},"status":{"type":"string","description":"The Virtual MAC status.\n"},"type":{"type":"string","description":"The type of the virtual MAC.\n"},"updatedAt":{"type":"string","description":"The date at which the Virtual Mac Address was last updated (RFC 3339 format).\n"},"zone":{"type":"string","description":"The zone of the Virtual Mac Address.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/flexibleipmacaddress.FlexibleIpMacAddress has been deprecated in favor of scaleway.elasticmetal/ipmacaddress.IpMacAddress"},"scaleway:index/function:Function":{"description":"\n\n## Import\n\nFunctions can be imported using, `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/function:Function main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"cpuLimit":{"type":"integer","description":"The CPU limit in mVCPU for your function.\n"},"deploy":{"type":"boolean"},"description":{"type":"string","description":"The description of the function.\n"},"domainName":{"type":"string","description":"The native domain name of the function.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#environment-variables) of the function.\n"},"handler":{"type":"string","description":"Handler of the function, depends on the runtime. Refer to the [dedicated documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-create-a-new-function) for the list of supported runtimes.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"maxScale":{"type":"integer","description":"The maximum number of instances this function can scale to. Default to 20. Your function will scale automatically based on the incoming workload, but will never exceed the configured \u003cspan pulumi-lang-nodejs=\"`maxScale`\" pulumi-lang-dotnet=\"`MaxScale`\" pulumi-lang-go=\"`maxScale`\" pulumi-lang-python=\"`max_scale`\" pulumi-lang-yaml=\"`maxScale`\" pulumi-lang-java=\"`maxScale`\"\u003e`max_scale`\u003c/span\u003e value.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each function. Defaults to 256 MB.\n"},"minScale":{"type":"integer","description":"The minimum number of function instances running continuously. Defaults to 0. Functions are billed when executed, and using a \u003cspan pulumi-lang-nodejs=\"`minScale`\" pulumi-lang-dotnet=\"`MinScale`\" pulumi-lang-go=\"`minScale`\" pulumi-lang-python=\"`min_scale`\" pulumi-lang-yaml=\"`minScale`\" pulumi-lang-java=\"`minScale`\"\u003e`min_scale`\u003c/span\u003e greater than 0 will cause your function to run constantly.\n"},"name":{"type":"string","description":"The unique name of the function name.\n"},"namespaceId":{"type":"string","description":"The Functions namespace ID of the function.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the function.\n"},"organizationId":{"type":"string","description":"The organization ID the function is associated with.\n"},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your function. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-functions/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the function is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the functions namespace is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n"},"runtime":{"type":"string","description":"Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-get-a-function)\n"},"sandbox":{"type":"string","description":"Execution environment of the function.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) of the function.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the function.\n"},"timeout":{"type":"integer","description":"The maximum amount of time your function can spend processing a request before being stopped. Defaults to 300s.\n"},"zipFile":{"type":"string","description":"Path to the zip file containing your function sources to upload.\n"},"zipHash":{"type":"string","description":"The hash of your source zip file, changing it will re-apply function. Can be any string"}},"required":["cpuLimit","domainName","handler","name","namespaceId","organizationId","privacy","projectId","runtime","sandbox","timeout"],"inputProperties":{"deploy":{"type":"boolean"},"description":{"type":"string","description":"The description of the function.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#environment-variables) of the function.\n"},"handler":{"type":"string","description":"Handler of the function, depends on the runtime. Refer to the [dedicated documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-create-a-new-function) for the list of supported runtimes.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"maxScale":{"type":"integer","description":"The maximum number of instances this function can scale to. Default to 20. Your function will scale automatically based on the incoming workload, but will never exceed the configured \u003cspan pulumi-lang-nodejs=\"`maxScale`\" pulumi-lang-dotnet=\"`MaxScale`\" pulumi-lang-go=\"`maxScale`\" pulumi-lang-python=\"`max_scale`\" pulumi-lang-yaml=\"`maxScale`\" pulumi-lang-java=\"`maxScale`\"\u003e`max_scale`\u003c/span\u003e value.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each function. Defaults to 256 MB.\n"},"minScale":{"type":"integer","description":"The minimum number of function instances running continuously. Defaults to 0. Functions are billed when executed, and using a \u003cspan pulumi-lang-nodejs=\"`minScale`\" pulumi-lang-dotnet=\"`MinScale`\" pulumi-lang-go=\"`minScale`\" pulumi-lang-python=\"`min_scale`\" pulumi-lang-yaml=\"`minScale`\" pulumi-lang-java=\"`minScale`\"\u003e`min_scale`\u003c/span\u003e greater than 0 will cause your function to run constantly.\n"},"name":{"type":"string","description":"The unique name of the function name.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The Functions namespace ID of the function.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the function.\n","willReplaceOnChanges":true},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your function. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-functions/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the function is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the functions namespace is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n","willReplaceOnChanges":true},"runtime":{"type":"string","description":"Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-get-a-function)\n"},"sandbox":{"type":"string","description":"Execution environment of the function.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) of the function.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the function.\n"},"timeout":{"type":"integer","description":"The maximum amount of time your function can spend processing a request before being stopped. Defaults to 300s.\n"},"zipFile":{"type":"string","description":"Path to the zip file containing your function sources to upload.\n"},"zipHash":{"type":"string","description":"The hash of your source zip file, changing it will re-apply function. Can be any string"}},"requiredInputs":["handler","namespaceId","privacy","runtime"],"stateInputs":{"description":"Input properties used for looking up and filtering Function resources.\n","properties":{"cpuLimit":{"type":"integer","description":"The CPU limit in mVCPU for your function.\n"},"deploy":{"type":"boolean"},"description":{"type":"string","description":"The description of the function.\n"},"domainName":{"type":"string","description":"The native domain name of the function.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#environment-variables) of the function.\n"},"handler":{"type":"string","description":"Handler of the function, depends on the runtime. Refer to the [dedicated documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-create-a-new-function) for the list of supported runtimes.\n"},"httpOption":{"type":"string","description":"Allows both HTTP and HTTPS (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e) or redirect HTTP to HTTPS (\u003cspan pulumi-lang-nodejs=\"`redirected`\" pulumi-lang-dotnet=\"`Redirected`\" pulumi-lang-go=\"`redirected`\" pulumi-lang-python=\"`redirected`\" pulumi-lang-yaml=\"`redirected`\" pulumi-lang-java=\"`redirected`\"\u003e`redirected`\u003c/span\u003e). Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"maxScale":{"type":"integer","description":"The maximum number of instances this function can scale to. Default to 20. Your function will scale automatically based on the incoming workload, but will never exceed the configured \u003cspan pulumi-lang-nodejs=\"`maxScale`\" pulumi-lang-dotnet=\"`MaxScale`\" pulumi-lang-go=\"`maxScale`\" pulumi-lang-python=\"`max_scale`\" pulumi-lang-yaml=\"`maxScale`\" pulumi-lang-java=\"`maxScale`\"\u003e`max_scale`\u003c/span\u003e value.\n"},"memoryLimit":{"type":"integer","description":"The memory resources in MB to allocate to each function. Defaults to 256 MB.\n"},"minScale":{"type":"integer","description":"The minimum number of function instances running continuously. Defaults to 0. Functions are billed when executed, and using a \u003cspan pulumi-lang-nodejs=\"`minScale`\" pulumi-lang-dotnet=\"`MinScale`\" pulumi-lang-go=\"`minScale`\" pulumi-lang-python=\"`min_scale`\" pulumi-lang-yaml=\"`minScale`\" pulumi-lang-java=\"`minScale`\"\u003e`min_scale`\u003c/span\u003e greater than 0 will cause your function to run constantly.\n"},"name":{"type":"string","description":"The unique name of the function name.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The Functions namespace ID of the function.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the function.\n","willReplaceOnChanges":true},"organizationId":{"type":"string","description":"The organization ID the function is associated with.\n"},"privacy":{"type":"string","description":"The privacy type defines the way to authenticate to your function. Please check our dedicated [section](https://www.scaleway.com/en/developers/api/serverless-functions/#protocol-9dd4c8).\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the function is connected to.\n\n\u003e **Important** This feature is currently in beta and requires a namespace with VPC integration activated by setting the \u003cspan pulumi-lang-nodejs=\"`activateVpcIntegration`\" pulumi-lang-dotnet=\"`ActivateVpcIntegration`\" pulumi-lang-go=\"`activateVpcIntegration`\" pulumi-lang-python=\"`activate_vpc_integration`\" pulumi-lang-yaml=\"`activateVpcIntegration`\" pulumi-lang-java=\"`activateVpcIntegration`\"\u003e`activate_vpc_integration`\u003c/span\u003e attribute to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the functions namespace is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n","willReplaceOnChanges":true},"runtime":{"type":"string","description":"Runtime of the function. Runtimes can be fetched using [specific route](https://www.scaleway.com/en/developers/api/serverless-functions/#path-functions-get-a-function)\n"},"sandbox":{"type":"string","description":"Execution environment of the function.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The [secret environment variables](https://www.scaleway.com/en/docs/compute/functions/concepts/#secrets) of the function.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the function.\n"},"timeout":{"type":"integer","description":"The maximum amount of time your function can spend processing a request before being stopped. Defaults to 300s.\n"},"zipFile":{"type":"string","description":"Path to the zip file containing your function sources to upload.\n"},"zipHash":{"type":"string","description":"The hash of your source zip file, changing it will re-apply function. Can be any string"}},"type":"object"},"deprecationMessage":"scaleway.index/function.Function has been deprecated in favor of scaleway.functions/function.Function"},"scaleway:index/functionCron:FunctionCron":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Cron`\" pulumi-lang-dotnet=\"`scaleway.functions.Cron`\" pulumi-lang-go=\"`functions.Cron`\" pulumi-lang-python=\"`functions.Cron`\" pulumi-lang-yaml=\"`scaleway.functions.Cron`\" pulumi-lang-java=\"`scaleway.functions.Cron`\"\u003e`scaleway.functions.Cron`\u003c/span\u003e resource allows you to create and manage CRON triggers for Scaleway [Serverless Functions](https://www.scaleway.com/en/docs/serverless/functions/).\n\nRefer to the Functions CRON triggers [documentation](https://www.scaleway.com/en/docs/serverless/functions/how-to/add-trigger-to-a-function/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-triggers-list-all-triggers) for more information.\n\n## Example Usage\n\nThe following command allows you to add a CRON trigger to a Serverless Function.\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.functions.Namespace(\"main\", {name: \"test-cron\"});\nconst mainFunction = new scaleway.functions.Function(\"main\", {\n    name: \"test-cron\",\n    namespaceId: main.id,\n    runtime: \"node14\",\n    privacy: \"private\",\n    handler: \"handler.handle\",\n});\nconst mainCron = new scaleway.functions.Cron(\"main\", {\n    name: \"test-cron\",\n    functionId: mainFunction.id,\n    schedule: \"0 0 * * *\",\n    args: JSON.stringify({\n        test: \"scw\",\n    }),\n});\nconst func = new scaleway.functions.Cron(\"func\", {\n    functionId: mainFunction.id,\n    schedule: \"0 1 * * *\",\n    args: JSON.stringify({\n        my_var: \"terraform\",\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.functions.Namespace(\"main\", name=\"test-cron\")\nmain_function = scaleway.functions.Function(\"main\",\n    name=\"test-cron\",\n    namespace_id=main.id,\n    runtime=\"node14\",\n    privacy=\"private\",\n    handler=\"handler.handle\")\nmain_cron = scaleway.functions.Cron(\"main\",\n    name=\"test-cron\",\n    function_id=main_function.id,\n    schedule=\"0 0 * * *\",\n    args=json.dumps({\n        \"test\": \"scw\",\n    }))\nfunc = scaleway.functions.Cron(\"func\",\n    function_id=main_function.id,\n    schedule=\"0 1 * * *\",\n    args=json.dumps({\n        \"my_var\": \"terraform\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Functions.Namespace(\"main\", new()\n    {\n        Name = \"test-cron\",\n    });\n\n    var mainFunction = new Scaleway.Functions.Function(\"main\", new()\n    {\n        Name = \"test-cron\",\n        NamespaceId = main.Id,\n        Runtime = \"node14\",\n        Privacy = \"private\",\n        Handler = \"handler.handle\",\n    });\n\n    var mainCron = new Scaleway.Functions.Cron(\"main\", new()\n    {\n        Name = \"test-cron\",\n        FunctionId = mainFunction.Id,\n        Schedule = \"0 0 * * *\",\n        Args = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"test\"] = \"scw\",\n        }),\n    });\n\n    var func = new Scaleway.Functions.Cron(\"func\", new()\n    {\n        FunctionId = mainFunction.Id,\n        Schedule = \"0 1 * * *\",\n        Args = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"my_var\"] = \"terraform\",\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := functions.NewNamespace(ctx, \"main\", \u0026functions.NamespaceArgs{\n\t\t\tName: pulumi.String(\"test-cron\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainFunction, err := functions.NewFunction(ctx, \"main\", \u0026functions.FunctionArgs{\n\t\t\tName:        pulumi.String(\"test-cron\"),\n\t\t\tNamespaceId: main.ID(),\n\t\t\tRuntime:     pulumi.String(\"node14\"),\n\t\t\tPrivacy:     pulumi.String(\"private\"),\n\t\t\tHandler:     pulumi.String(\"handler.handle\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"test\": \"scw\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = functions.NewCron(ctx, \"main\", \u0026functions.CronArgs{\n\t\t\tName:       pulumi.String(\"test-cron\"),\n\t\t\tFunctionId: mainFunction.ID(),\n\t\t\tSchedule:   pulumi.String(\"0 0 * * *\"),\n\t\t\tArgs:       pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"my_var\": \"terraform\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = functions.NewCron(ctx, \"func\", \u0026functions.CronArgs{\n\t\t\tFunctionId: mainFunction.ID(),\n\t\t\tSchedule:   pulumi.String(\"0 1 * * *\"),\n\t\t\tArgs:       pulumi.String(json1),\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.functions.Namespace;\nimport com.pulumi.scaleway.functions.NamespaceArgs;\nimport com.pulumi.scaleway.functions.Function;\nimport com.pulumi.scaleway.functions.FunctionArgs;\nimport com.pulumi.scaleway.functions.Cron;\nimport com.pulumi.scaleway.functions.CronArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"test-cron\")\n            .build());\n\n        var mainFunction = new Function(\"mainFunction\", FunctionArgs.builder()\n            .name(\"test-cron\")\n            .namespaceId(main.id())\n            .runtime(\"node14\")\n            .privacy(\"private\")\n            .handler(\"handler.handle\")\n            .build());\n\n        var mainCron = new Cron(\"mainCron\", CronArgs.builder()\n            .name(\"test-cron\")\n            .functionId(mainFunction.id())\n            .schedule(\"0 0 * * *\")\n            .args(serializeJson(\n                jsonObject(\n                    jsonProperty(\"test\", \"scw\")\n                )))\n            .build());\n\n        var func = new Cron(\"func\", CronArgs.builder()\n            .functionId(mainFunction.id())\n            .schedule(\"0 1 * * *\")\n            .args(serializeJson(\n                jsonObject(\n                    jsonProperty(\"my_var\", \"terraform\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Namespace\n    properties:\n      name: test-cron\n  mainFunction:\n    type: scaleway:functions:Function\n    name: main\n    properties:\n      name: test-cron\n      namespaceId: ${main.id}\n      runtime: node14\n      privacy: private\n      handler: handler.handle\n  mainCron:\n    type: scaleway:functions:Cron\n    name: main\n    properties:\n      name: test-cron\n      functionId: ${mainFunction.id}\n      schedule: 0 0 * * *\n      args:\n        fn::toJSON:\n          test: scw\n  func:\n    type: scaleway:functions:Cron\n    properties:\n      functionId: ${mainFunction.id}\n      schedule: 0 1 * * *\n      args:\n        fn::toJSON:\n          my_var: terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFunction Cron can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/functionCron:FunctionCron main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your function’s event object\n"},"functionId":{"type":"string","description":"The unique identifier of the function to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the function CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the function was created.\n"},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/functions/reference-content/cron-schedules/) for more information).\n"},"status":{"type":"string","description":"The CRON status.\n"}},"required":["args","functionId","name","schedule","status"],"inputProperties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your function’s event object\n"},"functionId":{"type":"string","description":"The unique identifier of the function to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the function CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the function was created.\n","willReplaceOnChanges":true},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/functions/reference-content/cron-schedules/) for more information).\n"}},"requiredInputs":["args","functionId","schedule"],"stateInputs":{"description":"Input properties used for looking up and filtering FunctionCron resources.\n","properties":{"args":{"type":"string","description":"The key-value mapping to define arguments that will be passed to your function’s event object\n"},"functionId":{"type":"string","description":"The unique identifier of the function to link to your CRON trigger.\n"},"name":{"type":"string","description":"The name of the function CRON trigger. If not provided, a random name is generated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the function was created.\n","willReplaceOnChanges":true},"schedule":{"type":"string","description":"CRON format string (refer to the [CRON schedule reference](https://www.scaleway.com/en/docs/serverless/functions/reference-content/cron-schedules/) for more information).\n"},"status":{"type":"string","description":"The CRON status.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/functioncron.FunctionCron has been deprecated in favor of scaleway.functions/cron.Cron"},"scaleway:index/functionDomain:FunctionDomain":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Domain`\" pulumi-lang-dotnet=\"`scaleway.functions.Domain`\" pulumi-lang-go=\"`functions.Domain`\" pulumi-lang-python=\"`functions.Domain`\" pulumi-lang-yaml=\"`scaleway.functions.Domain`\" pulumi-lang-java=\"`scaleway.functions.Domain`\"\u003e`scaleway.functions.Domain`\u003c/span\u003e resource allows you to create and manage domain name bindings for Scaleway [Serverless Functions](https://www.scaleway.com/en/docs/serverless/functions/).\n\nRefer to the Functions domain [documentation](https://www.scaleway.com/en/docs/serverless/functions/how-to/add-a-custom-domain-name-to-a-function/) and the [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-domains-list-all-domain-name-bindings) for more information.\n\n## Example Usage\n\nThis command allows to bind a custom domain name to a function.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainNamespace = new scaleway.functions.Namespace(\"main\", {});\nconst mainFunction = new scaleway.functions.Function(\"main\", {\n    namespaceId: mainNamespace.id,\n    runtime: \"go118\",\n    privacy: \"private\",\n    handler: \"Handle\",\n    zipFile: \"testfixture/gofunction.zip\",\n    deploy: true,\n});\nconst main = new scaleway.functions.Domain(\"main\", {\n    functionId: mainFunction.id,\n    hostname: \"example.com\",\n}, {\n    dependsOn: [mainFunction],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_namespace = scaleway.functions.Namespace(\"main\")\nmain_function = scaleway.functions.Function(\"main\",\n    namespace_id=main_namespace.id,\n    runtime=\"go118\",\n    privacy=\"private\",\n    handler=\"Handle\",\n    zip_file=\"testfixture/gofunction.zip\",\n    deploy=True)\nmain = scaleway.functions.Domain(\"main\",\n    function_id=main_function.id,\n    hostname=\"example.com\",\n    opts = pulumi.ResourceOptions(depends_on=[main_function]))\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 mainNamespace = new Scaleway.Functions.Namespace(\"main\");\n\n    var mainFunction = new Scaleway.Functions.Function(\"main\", new()\n    {\n        NamespaceId = mainNamespace.Id,\n        Runtime = \"go118\",\n        Privacy = \"private\",\n        Handler = \"Handle\",\n        ZipFile = \"testfixture/gofunction.zip\",\n        Deploy = true,\n    });\n\n    var main = new Scaleway.Functions.Domain(\"main\", new()\n    {\n        FunctionId = mainFunction.Id,\n        Hostname = \"example.com\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            mainFunction,\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/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainNamespace, err := functions.NewNamespace(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainFunction, err := functions.NewFunction(ctx, \"main\", \u0026functions.FunctionArgs{\n\t\t\tNamespaceId: mainNamespace.ID(),\n\t\t\tRuntime:     pulumi.String(\"go118\"),\n\t\t\tPrivacy:     pulumi.String(\"private\"),\n\t\t\tHandler:     pulumi.String(\"Handle\"),\n\t\t\tZipFile:     pulumi.String(\"testfixture/gofunction.zip\"),\n\t\t\tDeploy:      pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = functions.NewDomain(ctx, \"main\", \u0026functions.DomainArgs{\n\t\t\tFunctionId: mainFunction.ID(),\n\t\t\tHostname:   pulumi.String(\"example.com\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmainFunction,\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.functions.Namespace;\nimport com.pulumi.scaleway.functions.Function;\nimport com.pulumi.scaleway.functions.FunctionArgs;\nimport com.pulumi.scaleway.functions.Domain;\nimport com.pulumi.scaleway.functions.DomainArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var mainNamespace = new Namespace(\"mainNamespace\");\n\n        var mainFunction = new Function(\"mainFunction\", FunctionArgs.builder()\n            .namespaceId(mainNamespace.id())\n            .runtime(\"go118\")\n            .privacy(\"private\")\n            .handler(\"Handle\")\n            .zipFile(\"testfixture/gofunction.zip\")\n            .deploy(true)\n            .build());\n\n        var main = new Domain(\"main\", DomainArgs.builder()\n            .functionId(mainFunction.id())\n            .hostname(\"example.com\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(mainFunction)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Domain\n    properties:\n      functionId: ${mainFunction.id}\n      hostname: example.com\n    options:\n      dependsOn:\n        - ${mainFunction}\n  mainNamespace:\n    type: scaleway:functions:Namespace\n    name: main\n  mainFunction:\n    type: scaleway:functions:Function\n    name: main\n    properties:\n      namespaceId: ${mainNamespace.id}\n      runtime: go118\n      privacy: private\n      handler: Handle\n      zipFile: testfixture/gofunction.zip\n      deploy: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFunction domain binding can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/functionDomain:FunctionDomain main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"functionId":{"type":"string","description":"The unique identifier of the function.\n"},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n\nWe recommend you use a CNAME domain record that point to your native function \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e for it.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`hostname`\" pulumi-lang-dotnet=\"`Hostname`\" pulumi-lang-go=\"`hostname`\" pulumi-lang-python=\"`hostname`\" pulumi-lang-yaml=\"`hostname`\" pulumi-lang-java=\"`hostname`\"\u003e`hostname`\u003c/span\u003e arguments will recreate the domain.\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the domain was created.\n"},"url":{"type":"string","description":"The URL used to query the function.\n"}},"required":["functionId","hostname","url"],"inputProperties":{"functionId":{"type":"string","description":"The unique identifier of the function.\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n\nWe recommend you use a CNAME domain record that point to your native function \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e for it.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`hostname`\" pulumi-lang-dotnet=\"`Hostname`\" pulumi-lang-go=\"`hostname`\" pulumi-lang-python=\"`hostname`\" pulumi-lang-yaml=\"`hostname`\" pulumi-lang-java=\"`hostname`\"\u003e`hostname`\u003c/span\u003e arguments will recreate the domain.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the domain was created.\n","willReplaceOnChanges":true}},"requiredInputs":["functionId","hostname"],"stateInputs":{"description":"Input properties used for looking up and filtering FunctionDomain resources.\n","properties":{"functionId":{"type":"string","description":"The unique identifier of the function.\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"The hostname with a CNAME record.\n\nWe recommend you use a CNAME domain record that point to your native function \u003cspan pulumi-lang-nodejs=\"`domainName`\" pulumi-lang-dotnet=\"`DomainName`\" pulumi-lang-go=\"`domainName`\" pulumi-lang-python=\"`domain_name`\" pulumi-lang-yaml=\"`domainName`\" pulumi-lang-java=\"`domainName`\"\u003e`domain_name`\u003c/span\u003e for it.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`hostname`\" pulumi-lang-dotnet=\"`Hostname`\" pulumi-lang-go=\"`hostname`\" pulumi-lang-python=\"`hostname`\" pulumi-lang-yaml=\"`hostname`\" pulumi-lang-java=\"`hostname`\"\u003e`hostname`\u003c/span\u003e arguments will recreate the domain.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the domain was created.\n","willReplaceOnChanges":true},"url":{"type":"string","description":"The URL used to query the function.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/functiondomain.FunctionDomain has been deprecated in favor of scaleway.functions/domain.Domain"},"scaleway:index/functionNamespace:FunctionNamespace":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Namespace`\" pulumi-lang-dotnet=\"`scaleway.functions.Namespace`\" pulumi-lang-go=\"`functions.Namespace`\" pulumi-lang-python=\"`functions.Namespace`\" pulumi-lang-yaml=\"`scaleway.functions.Namespace`\" pulumi-lang-java=\"`scaleway.functions.Namespace`\"\u003e`scaleway.functions.Namespace`\u003c/span\u003e resource allows you to\nfor Scaleway [Serverless Functions](https://www.scaleway.com/en/docs/serverless/functions/).\n\nRefer to the Functions namespace [documentation](https://www.scaleway.com/en/docs/serverless/functions/how-to/create-manage-delete-functions-namespace/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-namespaces-list-all-your-namespaces) for more information.\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.functions.Namespace(\"main\", {\n    name: \"main-function-namespace\",\n    description: \"Main function namespace\",\n    tags: [\n        \"tag1\",\n        \"tag2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.functions.Namespace(\"main\",\n    name=\"main-function-namespace\",\n    description=\"Main function namespace\",\n    tags=[\n        \"tag1\",\n        \"tag2\",\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.Functions.Namespace(\"main\", new()\n    {\n        Name = \"main-function-namespace\",\n        Description = \"Main function namespace\",\n        Tags = new[]\n        {\n            \"tag1\",\n            \"tag2\",\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/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := functions.NewNamespace(ctx, \"main\", \u0026functions.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"main-function-namespace\"),\n\t\t\tDescription: pulumi.String(\"Main function namespace\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tag1\"),\n\t\t\t\tpulumi.String(\"tag2\"),\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.functions.Namespace;\nimport com.pulumi.scaleway.functions.NamespaceArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"main-function-namespace\")\n            .description(\"Main function namespace\")\n            .tags(            \n                \"tag1\",\n                \"tag2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Namespace\n    properties:\n      name: main-function-namespace\n      description: Main function namespace\n      tags:\n        - tag1\n        - tag2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFunctions namespaces can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/functionNamespace:FunctionNamespace main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Functions of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Functions namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n"},"organizationId":{"type":"string","description":"The Organization ID with which the namespace is associated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n"},"registryEndpoint":{"type":"string","description":"The registry endpoint of the namespace.\n"},"registryNamespaceId":{"type":"string","description":"The registry namespace ID of the namespace.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"required":["name","organizationId","projectId","registryEndpoint","registryNamespaceId"],"inputProperties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Functions of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Functions namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering FunctionNamespace resources.\n","properties":{"activateVpcIntegration":{"type":"boolean","description":"Activates VPC integration for the namespace. Functions of a namespace with VPC integration activated will be able to connect to a Private Network.\n\n\u003e **Important:** VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\".\n","deprecationMessage":"VPC integration is now available on all namespaces, so this field is not configurable anymore and its value will always be \"true\"."},"description":{"type":"string","description":"The description of the namespace.\n"},"environmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n"},"name":{"type":"string","description":"The unique name of the Functions namespace.\n\n\u003e **Important** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the namespace.\n","willReplaceOnChanges":true},"organizationId":{"type":"string","description":"The Organization ID with which the namespace is associated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project that contains the namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"registryEndpoint":{"type":"string","description":"The registry endpoint of the namespace.\n"},"registryNamespaceId":{"type":"string","description":"The registry namespace ID of the namespace.\n"},"secretEnvironmentVariables":{"type":"object","additionalProperties":{"type":"string"},"description":"The secret environment variables of the namespace.\n","secret":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags associated with the namespace.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/functionnamespace.FunctionNamespace has been deprecated in favor of scaleway.functions/namespace.Namespace"},"scaleway:index/functionToken:FunctionToken":{"description":"\u003e **Important:** The resource \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Token`\" pulumi-lang-dotnet=\"`scaleway.functions.Token`\" pulumi-lang-go=\"`functions.Token`\" pulumi-lang-python=\"`functions.Token`\" pulumi-lang-yaml=\"`scaleway.functions.Token`\" pulumi-lang-java=\"`scaleway.functions.Token`\"\u003e`scaleway.functions.Token`\u003c/span\u003e has been deprecated and will no longer be supported in v1 of the API.\nPlease use IAM authentication instead. You will find an implementation example in the IAM authentication section of the Function documentation.\n\nThe \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Token`\" pulumi-lang-dotnet=\"`scaleway.functions.Token`\" pulumi-lang-go=\"`functions.Token`\" pulumi-lang-python=\"`functions.Token`\" pulumi-lang-yaml=\"`scaleway.functions.Token`\" pulumi-lang-java=\"`scaleway.functions.Token`\"\u003e`scaleway.functions.Token`\u003c/span\u003e resource allows you to create and manage authentication tokens for Scaleway [Serverless Functions](https://www.scaleway.com/en/docs/serverless/functions/).\n\nRefer to the Functions tokens [documentation](https://www.scaleway.com/en/docs/serverless/functions/how-to/create-auth-token-from-console/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-tokens-list-all-tokens) for more information.\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.functions.Namespace(\"main\", {name: \"test-function-token-ns\"});\nconst mainFunction = new scaleway.functions.Function(\"main\", {\n    namespaceId: main.id,\n    runtime: \"go118\",\n    handler: \"Handle\",\n    privacy: \"private\",\n});\n// Namespace Token\nconst namespace = new scaleway.functions.Token(\"namespace\", {\n    namespaceId: main.id,\n    expiresAt: \"2022-10-18T11:35:15+02:00\",\n});\n// Function Token\nconst _function = new scaleway.functions.Token(\"function\", {functionId: mainFunction.id});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.functions.Namespace(\"main\", name=\"test-function-token-ns\")\nmain_function = scaleway.functions.Function(\"main\",\n    namespace_id=main.id,\n    runtime=\"go118\",\n    handler=\"Handle\",\n    privacy=\"private\")\n# Namespace Token\nnamespace = scaleway.functions.Token(\"namespace\",\n    namespace_id=main.id,\n    expires_at=\"2022-10-18T11:35:15+02:00\")\n# Function Token\nfunction = scaleway.functions.Token(\"function\", function_id=main_function.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 main = new Scaleway.Functions.Namespace(\"main\", new()\n    {\n        Name = \"test-function-token-ns\",\n    });\n\n    var mainFunction = new Scaleway.Functions.Function(\"main\", new()\n    {\n        NamespaceId = main.Id,\n        Runtime = \"go118\",\n        Handler = \"Handle\",\n        Privacy = \"private\",\n    });\n\n    // Namespace Token\n    var @namespace = new Scaleway.Functions.Token(\"namespace\", new()\n    {\n        NamespaceId = main.Id,\n        ExpiresAt = \"2022-10-18T11:35:15+02:00\",\n    });\n\n    // Function Token\n    var function = new Scaleway.Functions.Token(\"function\", new()\n    {\n        FunctionId = mainFunction.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/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := functions.NewNamespace(ctx, \"main\", \u0026functions.NamespaceArgs{\n\t\t\tName: pulumi.String(\"test-function-token-ns\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainFunction, err := functions.NewFunction(ctx, \"main\", \u0026functions.FunctionArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tRuntime:     pulumi.String(\"go118\"),\n\t\t\tHandler:     pulumi.String(\"Handle\"),\n\t\t\tPrivacy:     pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Namespace Token\n\t\t_, err = functions.NewToken(ctx, \"namespace\", \u0026functions.TokenArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tExpiresAt:   pulumi.String(\"2022-10-18T11:35:15+02:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Function Token\n\t\t_, err = functions.NewToken(ctx, \"function\", \u0026functions.TokenArgs{\n\t\t\tFunctionId: mainFunction.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.functions.Namespace;\nimport com.pulumi.scaleway.functions.NamespaceArgs;\nimport com.pulumi.scaleway.functions.Function;\nimport com.pulumi.scaleway.functions.FunctionArgs;\nimport com.pulumi.scaleway.functions.Token;\nimport com.pulumi.scaleway.functions.TokenArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"test-function-token-ns\")\n            .build());\n\n        var mainFunction = new Function(\"mainFunction\", FunctionArgs.builder()\n            .namespaceId(main.id())\n            .runtime(\"go118\")\n            .handler(\"Handle\")\n            .privacy(\"private\")\n            .build());\n\n        // Namespace Token\n        var namespace = new Token(\"namespace\", TokenArgs.builder()\n            .namespaceId(main.id())\n            .expiresAt(\"2022-10-18T11:35:15+02:00\")\n            .build());\n\n        // Function Token\n        var function = new Token(\"function\", TokenArgs.builder()\n            .functionId(mainFunction.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Namespace\n    properties:\n      name: test-function-token-ns\n  mainFunction:\n    type: scaleway:functions:Function\n    name: main\n    properties:\n      namespaceId: ${main.id}\n      runtime: go118\n      handler: Handle\n      privacy: private\n  # Namespace Token\n  namespace:\n    type: scaleway:functions:Token\n    properties:\n      namespaceId: ${main.id}\n      expiresAt: 2022-10-18T11:35:15+02:00\n  # Function Token\n  function:\n    type: scaleway:functions:Token\n    properties:\n      functionId: ${mainFunction.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTokens can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/functionToken:FunctionToken main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"description":{"type":"string","description":"The description of the token.\n"},"expiresAt":{"type":"string","description":"The expiration date of the token.\n"},"functionId":{"type":"string","description":"The unique identifier of the function.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e must be set.\n"},"namespaceId":{"type":"string","description":"The unique identifier of the Functions namespace.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n"},"value":{"type":"string","description":"The token.\n","secret":true}},"required":["value"],"inputProperties":{"description":{"type":"string","description":"The description of the token.\n","willReplaceOnChanges":true},"expiresAt":{"type":"string","description":"The expiration date of the token.\n","willReplaceOnChanges":true},"functionId":{"type":"string","description":"The unique identifier of the function.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e must be set.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The unique identifier of the Functions namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering FunctionToken resources.\n","properties":{"description":{"type":"string","description":"The description of the token.\n","willReplaceOnChanges":true},"expiresAt":{"type":"string","description":"The expiration date of the token.\n","willReplaceOnChanges":true},"functionId":{"type":"string","description":"The unique identifier of the function.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e must be set.\n","willReplaceOnChanges":true},"namespaceId":{"type":"string","description":"The unique identifier of the Functions namespace.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n\n\u003e **Important** Updating any of the arguments above will recreate the token.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"The token.\n","secret":true}},"type":"object"},"deprecationMessage":"scaleway.index/functiontoken.FunctionToken has been deprecated in favor of scaleway.functions/token.Token"},"scaleway:index/functionTrigger:FunctionTrigger":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Trigger`\" pulumi-lang-dotnet=\"`scaleway.functions.Trigger`\" pulumi-lang-go=\"`functions.Trigger`\" pulumi-lang-python=\"`functions.Trigger`\" pulumi-lang-yaml=\"`scaleway.functions.Trigger`\" pulumi-lang-java=\"`scaleway.functions.Trigger`\"\u003e`scaleway.functions.Trigger`\u003c/span\u003e resource allows you to create and manage triggers for Scaleway [Serverless Functions](https://www.scaleway.com/en/docs/serverless/functions/).\n\nRefer to the Functions triggers [documentation](https://www.scaleway.com/en/docs/serverless/functions/how-to/add-trigger-to-a-function/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/#path-triggers-list-all-triggers) for more information.\n\n## Example Usage\n\n### SQS\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.functions.Trigger(\"main\", {\n    functionId: mainScalewayFunction.id,\n    name: \"my-trigger\",\n    sqs: {\n        projectId: mainScalewayMnqSqs.projectId,\n        queue: \"MyQueue\",\n        region: mainScalewayMnqSqs.region,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.functions.Trigger(\"main\",\n    function_id=main_scaleway_function[\"id\"],\n    name=\"my-trigger\",\n    sqs={\n        \"project_id\": main_scaleway_mnq_sqs[\"projectId\"],\n        \"queue\": \"MyQueue\",\n        \"region\": main_scaleway_mnq_sqs[\"region\"],\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.Functions.Trigger(\"main\", new()\n    {\n        FunctionId = mainScalewayFunction.Id,\n        Name = \"my-trigger\",\n        Sqs = new Scaleway.Functions.Inputs.TriggerSqsArgs\n        {\n            ProjectId = mainScalewayMnqSqs.ProjectId,\n            Queue = \"MyQueue\",\n            Region = mainScalewayMnqSqs.Region,\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/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := functions.NewTrigger(ctx, \"main\", \u0026functions.TriggerArgs{\n\t\t\tFunctionId: pulumi.Any(mainScalewayFunction.Id),\n\t\t\tName:       pulumi.String(\"my-trigger\"),\n\t\t\tSqs: \u0026functions.TriggerSqsArgs{\n\t\t\t\tProjectId: pulumi.Any(mainScalewayMnqSqs.ProjectId),\n\t\t\t\tQueue:     pulumi.String(\"MyQueue\"),\n\t\t\t\tRegion:    pulumi.Any(mainScalewayMnqSqs.Region),\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.functions.Trigger;\nimport com.pulumi.scaleway.functions.TriggerArgs;\nimport com.pulumi.scaleway.functions.inputs.TriggerSqsArgs;\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 Trigger(\"main\", TriggerArgs.builder()\n            .functionId(mainScalewayFunction.id())\n            .name(\"my-trigger\")\n            .sqs(TriggerSqsArgs.builder()\n                .projectId(mainScalewayMnqSqs.projectId())\n                .queue(\"MyQueue\")\n                .region(mainScalewayMnqSqs.region())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Trigger\n    properties:\n      functionId: ${mainScalewayFunction.id}\n      name: my-trigger\n      sqs:\n        projectId: ${mainScalewayMnqSqs.projectId}\n        queue: MyQueue\n        region: ${mainScalewayMnqSqs.region}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### NATS\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.functions.Trigger(\"main\", {\n    functionId: mainScalewayFunction.id,\n    name: \"my-trigger\",\n    nats: {\n        accountId: mainScalewayMnqNatsAccount.id,\n        subject: \"MySubject\",\n        region: mainScalewayMnqNatsAccount.region,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.functions.Trigger(\"main\",\n    function_id=main_scaleway_function[\"id\"],\n    name=\"my-trigger\",\n    nats={\n        \"account_id\": main_scaleway_mnq_nats_account[\"id\"],\n        \"subject\": \"MySubject\",\n        \"region\": main_scaleway_mnq_nats_account[\"region\"],\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.Functions.Trigger(\"main\", new()\n    {\n        FunctionId = mainScalewayFunction.Id,\n        Name = \"my-trigger\",\n        Nats = new Scaleway.Functions.Inputs.TriggerNatsArgs\n        {\n            AccountId = mainScalewayMnqNatsAccount.Id,\n            Subject = \"MySubject\",\n            Region = mainScalewayMnqNatsAccount.Region,\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/functions\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := functions.NewTrigger(ctx, \"main\", \u0026functions.TriggerArgs{\n\t\t\tFunctionId: pulumi.Any(mainScalewayFunction.Id),\n\t\t\tName:       pulumi.String(\"my-trigger\"),\n\t\t\tNats: \u0026functions.TriggerNatsArgs{\n\t\t\t\tAccountId: pulumi.Any(mainScalewayMnqNatsAccount.Id),\n\t\t\t\tSubject:   pulumi.String(\"MySubject\"),\n\t\t\t\tRegion:    pulumi.Any(mainScalewayMnqNatsAccount.Region),\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.functions.Trigger;\nimport com.pulumi.scaleway.functions.TriggerArgs;\nimport com.pulumi.scaleway.functions.inputs.TriggerNatsArgs;\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 Trigger(\"main\", TriggerArgs.builder()\n            .functionId(mainScalewayFunction.id())\n            .name(\"my-trigger\")\n            .nats(TriggerNatsArgs.builder()\n                .accountId(mainScalewayMnqNatsAccount.id())\n                .subject(\"MySubject\")\n                .region(mainScalewayMnqNatsAccount.region())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:functions:Trigger\n    properties:\n      functionId: ${mainScalewayFunction.id}\n      name: my-trigger\n      nats:\n        accountId: ${mainScalewayMnqNatsAccount.id}\n        subject: MySubject\n        region: ${mainScalewayMnqNatsAccount.region}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFunction Triggers can be imported using `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/functionTrigger:FunctionTrigger main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"description":{"type":"string","description":"The description of the trigger.\n"},"functionId":{"type":"string","description":"The unique identifier of the function to create a trigger for.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:index/FunctionTriggerNats:FunctionTriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n"},"sqs":{"$ref":"#/types/scaleway:index/FunctionTriggerSqs:FunctionTriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n"}},"required":["functionId","name"],"inputProperties":{"description":{"type":"string","description":"The description of the trigger.\n"},"functionId":{"type":"string","description":"The unique identifier of the function to create a trigger for.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:index/FunctionTriggerNats:FunctionTriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"sqs":{"$ref":"#/types/scaleway:index/FunctionTriggerSqs:FunctionTriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n","willReplaceOnChanges":true}},"requiredInputs":["functionId"],"stateInputs":{"description":"Input properties used for looking up and filtering FunctionTrigger resources.\n","properties":{"description":{"type":"string","description":"The description of the trigger.\n"},"functionId":{"type":"string","description":"The unique identifier of the function to create a trigger for.\n"},"name":{"type":"string","description":"The unique name of the trigger. If not provided, a random name is generated.\n"},"nats":{"$ref":"#/types/scaleway:index/FunctionTriggerNats:FunctionTriggerNats","description":"The configuration for the Scaleway NATS account used by the trigger\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace is created.\n","willReplaceOnChanges":true},"sqs":{"$ref":"#/types/scaleway:index/FunctionTriggerSqs:FunctionTriggerSqs","description":"The configuration of the Scaleway SQS queue used by the trigger\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/functiontrigger.FunctionTrigger has been deprecated in favor of scaleway.functions/trigger.Trigger"},"scaleway:index/iamApiKey:IamApiKey":{"description":"Creates and manages Scaleway API Keys. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae).\n\n## Example Usage\n\n### With application\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ciCd = new scaleway.iam.Application(\"ci_cd\", {name: \"My application\"});\nconst main = new scaleway.iam.ApiKey(\"main\", {\n    applicationId: mainScalewayIamApplication.id,\n    description: \"a description\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nci_cd = scaleway.iam.Application(\"ci_cd\", name=\"My application\")\nmain = scaleway.iam.ApiKey(\"main\",\n    application_id=main_scaleway_iam_application[\"id\"],\n    description=\"a description\")\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 ciCd = new Scaleway.Iam.Application(\"ci_cd\", new()\n    {\n        Name = \"My application\",\n    });\n\n    var main = new Scaleway.Iam.ApiKey(\"main\", new()\n    {\n        ApplicationId = mainScalewayIamApplication.Id,\n        Description = \"a description\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewApplication(ctx, \"ci_cd\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"My application\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewApiKey(ctx, \"main\", \u0026iam.ApiKeyArgs{\n\t\t\tApplicationId: pulumi.Any(mainScalewayIamApplication.Id),\n\t\t\tDescription:   pulumi.String(\"a description\"),\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.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.ApiKey;\nimport com.pulumi.scaleway.iam.ApiKeyArgs;\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 ciCd = new Application(\"ciCd\", ApplicationArgs.builder()\n            .name(\"My application\")\n            .build());\n\n        var main = new ApiKey(\"main\", ApiKeyArgs.builder()\n            .applicationId(mainScalewayIamApplication.id())\n            .description(\"a description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ciCd:\n    type: scaleway:iam:Application\n    name: ci_cd\n    properties:\n      name: My application\n  main:\n    type: scaleway:iam:ApiKey\n    properties:\n      applicationId: ${mainScalewayIamApplication.id}\n      description: a description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With user\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.iam.User(\"main\", {email: \"test@test.com\"});\nconst mainApiKey = new scaleway.iam.ApiKey(\"main\", {\n    userId: main.id,\n    description: \"a description\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iam.User(\"main\", email=\"test@test.com\")\nmain_api_key = scaleway.iam.ApiKey(\"main\",\n    user_id=main.id,\n    description=\"a description\")\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.Iam.User(\"main\", new()\n    {\n        Email = \"test@test.com\",\n    });\n\n    var mainApiKey = new Scaleway.Iam.ApiKey(\"main\", new()\n    {\n        UserId = main.Id,\n        Description = \"a description\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := iam.NewUser(ctx, \"main\", \u0026iam.UserArgs{\n\t\t\tEmail: pulumi.String(\"test@test.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewApiKey(ctx, \"main\", \u0026iam.ApiKeyArgs{\n\t\t\tUserId:      main.ID(),\n\t\t\tDescription: pulumi.String(\"a description\"),\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.iam.User;\nimport com.pulumi.scaleway.iam.UserArgs;\nimport com.pulumi.scaleway.iam.ApiKey;\nimport com.pulumi.scaleway.iam.ApiKeyArgs;\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 User(\"main\", UserArgs.builder()\n            .email(\"test@test.com\")\n            .build());\n\n        var mainApiKey = new ApiKey(\"mainApiKey\", ApiKeyArgs.builder()\n            .userId(main.id())\n            .description(\"a description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iam:User\n    properties:\n      email: test@test.com\n  mainApiKey:\n    type: scaleway:iam:ApiKey\n    name: main\n    properties:\n      userId: ${main.id}\n      description: a description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With expiration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\nimport * as time from \"@pulumi/time\";\n\nconst rotateAfterAYear = new time.index.Rotating(\"rotate_after_a_year\", {rotationYears: 1});\nconst main = new scaleway.iam.ApiKey(\"main\", {\n    applicationId: mainScalewayIamApplication.id,\n    expiresAt: rotateAfterAYear.rotationRfc3339,\n});\n```\n```python\nimport pulumi\nimport pulumi_time as time\nimport pulumiverse_scaleway as scaleway\n\nrotate_after_a_year = time.index.Rotating(\"rotate_after_a_year\", rotation_years=1)\nmain = scaleway.iam.ApiKey(\"main\",\n    application_id=main_scaleway_iam_application[\"id\"],\n    expires_at=rotate_after_a_year[\"rotationRfc3339\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rotateAfterAYear = new Time.Index.Rotating(\"rotate_after_a_year\", new()\n    {\n        RotationYears = 1,\n    });\n\n    var main = new Scaleway.Iam.ApiKey(\"main\", new()\n    {\n        ApplicationId = mainScalewayIamApplication.Id,\n        ExpiresAt = rotateAfterAYear.RotationRfc3339,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trotateAfterAYear, err := time.NewRotating(ctx, \"rotate_after_a_year\", \u0026time.RotatingArgs{\n\t\t\tRotationYears: 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewApiKey(ctx, \"main\", \u0026iam.ApiKeyArgs{\n\t\t\tApplicationId: pulumi.Any(mainScalewayIamApplication.Id),\n\t\t\tExpiresAt:     rotateAfterAYear.RotationRfc3339,\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.time.Rotating;\nimport com.pulumi.time.RotatingArgs;\nimport com.pulumi.scaleway.iam.ApiKey;\nimport com.pulumi.scaleway.iam.ApiKeyArgs;\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 rotateAfterAYear = new Rotating(\"rotateAfterAYear\", RotatingArgs.builder()\n            .rotationYears(1)\n            .build());\n\n        var main = new ApiKey(\"main\", ApiKeyArgs.builder()\n            .applicationId(mainScalewayIamApplication.id())\n            .expiresAt(rotateAfterAYear.rotationRfc3339())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rotateAfterAYear:\n    type: time:Rotating\n    name: rotate_after_a_year\n    properties:\n      rotationYears: 1\n  main:\n    type: scaleway:iam:ApiKey\n    properties:\n      applicationId: ${mainScalewayIamApplication.id}\n      expiresAt: ${rotateAfterAYear.rotationRfc3339}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nApi keys can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iamApiKey:IamApiKey main 11111111111111111111\n```\n\n","properties":{"accessKey":{"type":"string","description":"The access key of the IAM API key.\n"},"applicationId":{"type":"string","description":"ID of the application attached to the API key.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the IAM API key.\n"},"creationIp":{"type":"string","description":"The IP Address of the device which created the API key.\n"},"defaultProjectId":{"type":"string","description":"The default Project ID to use with Object Storage.\n"},"description":{"type":"string","description":"The description of the API key.\n"},"editable":{"type":"boolean","description":"Whether the IAM API key is editable.\n"},"expiresAt":{"type":"string","description":"The date and time of the expiration of the IAM API key. Please note that in case of any changes,\nthe resource will be recreated.\n"},"secretKey":{"type":"string","description":"The secret Key of the IAM API key.\n","secret":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the IAM API key.\n"},"userId":{"type":"string","description":"ID of the user attached to the API key.\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n"}},"required":["accessKey","createdAt","creationIp","defaultProjectId","editable","secretKey","updatedAt"],"inputProperties":{"applicationId":{"type":"string","description":"ID of the application attached to the API key.\n","willReplaceOnChanges":true},"defaultProjectId":{"type":"string","description":"The default Project ID to use with Object Storage.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the API key.\n"},"expiresAt":{"type":"string","description":"The date and time of the expiration of the IAM API key. Please note that in case of any changes,\nthe resource will be recreated.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"ID of the user attached to the API key.\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IamApiKey resources.\n","properties":{"accessKey":{"type":"string","description":"The access key of the IAM API key.\n"},"applicationId":{"type":"string","description":"ID of the application attached to the API key.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"The date and time of the creation of the IAM API key.\n"},"creationIp":{"type":"string","description":"The IP Address of the device which created the API key.\n"},"defaultProjectId":{"type":"string","description":"The default Project ID to use with Object Storage.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the API key.\n"},"editable":{"type":"boolean","description":"Whether the IAM API key is editable.\n"},"expiresAt":{"type":"string","description":"The date and time of the expiration of the IAM API key. Please note that in case of any changes,\nthe resource will be recreated.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret Key of the IAM API key.\n","secret":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the IAM API key.\n"},"userId":{"type":"string","description":"ID of the user attached to the API key.\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/iamapikey.IamApiKey has been deprecated in favor of scaleway.iam/apikey.ApiKey"},"scaleway:index/iamApplication:IamApplication":{"description":"Creates and manages Scaleway IAM Applications. For more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#applications-83ce5e).\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.iam.Application(\"main\", {\n    name: \"My application\",\n    description: \"a description\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iam.Application(\"main\",\n    name=\"My application\",\n    description=\"a description\")\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.Iam.Application(\"main\", new()\n    {\n        Name = \"My application\",\n        Description = \"a description\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewApplication(ctx, \"main\", \u0026iam.ApplicationArgs{\n\t\t\tName:        pulumi.String(\"My application\"),\n\t\t\tDescription: pulumi.String(\"a description\"),\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.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\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 Application(\"main\", ApplicationArgs.builder()\n            .name(\"My application\")\n            .description(\"a description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iam:Application\n    properties:\n      name: My application\n      description: a description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nApplications can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iamApplication:IamApplication main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the application.\n"},"description":{"type":"string","description":"The description of the iam application.\n"},"editable":{"type":"boolean","description":"Whether the application is editable.\n"},"name":{"type":"string","description":"The name of the iam application.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the application is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the application.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the application.\n"}},"required":["createdAt","editable","name","organizationId","updatedAt"],"inputProperties":{"description":{"type":"string","description":"The description of the iam application.\n"},"name":{"type":"string","description":"The name of the iam application.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the application is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the application.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IamApplication resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the application.\n"},"description":{"type":"string","description":"The description of the iam application.\n"},"editable":{"type":"boolean","description":"Whether the application is editable.\n"},"name":{"type":"string","description":"The name of the iam application.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the application is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the application.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the application.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/iamapplication.IamApplication has been deprecated in favor of scaleway.iam/application.Application"},"scaleway:index/iamGroup:IamGroup":{"description":"Creates and manages Scaleway IAM Groups.\nFor more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#groups-f592eb).\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 basic = new scaleway.iam.Group(\"basic\", {\n    name: \"iam_group_basic\",\n    description: \"basic description\",\n    applicationIds: [],\n    userIds: [],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbasic = scaleway.iam.Group(\"basic\",\n    name=\"iam_group_basic\",\n    description=\"basic description\",\n    application_ids=[],\n    user_ids=[])\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 basic = new Scaleway.Iam.Group(\"basic\", new()\n    {\n        Name = \"iam_group_basic\",\n        Description = \"basic description\",\n        ApplicationIds = new[] {},\n        UserIds = new[] {},\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewGroup(ctx, \"basic\", \u0026iam.GroupArgs{\n\t\t\tName:           pulumi.String(\"iam_group_basic\"),\n\t\t\tDescription:    pulumi.String(\"basic description\"),\n\t\t\tApplicationIds: pulumi.StringArray{},\n\t\t\tUserIds:        pulumi.StringArray{},\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.iam.Group;\nimport com.pulumi.scaleway.iam.GroupArgs;\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 basic = new Group(\"basic\", GroupArgs.builder()\n            .name(\"iam_group_basic\")\n            .description(\"basic description\")\n            .applicationIds()\n            .userIds()\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  basic:\n    type: scaleway:iam:Group\n    properties:\n      name: iam_group_basic\n      description: basic description\n      applicationIds: []\n      userIds: []\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With applications\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst app = new scaleway.iam.Application(\"app\", {});\nconst withApp = new scaleway.iam.Group(\"with_app\", {\n    name: \"iam_group_with_app\",\n    applicationIds: [app.id],\n    userIds: [],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\napp = scaleway.iam.Application(\"app\")\nwith_app = scaleway.iam.Group(\"with_app\",\n    name=\"iam_group_with_app\",\n    application_ids=[app.id],\n    user_ids=[])\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 app = new Scaleway.Iam.Application(\"app\");\n\n    var withApp = new Scaleway.Iam.Group(\"with_app\", new()\n    {\n        Name = \"iam_group_with_app\",\n        ApplicationIds = new[]\n        {\n            app.Id,\n        },\n        UserIds = new[] {},\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapp, err := iam.NewApplication(ctx, \"app\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewGroup(ctx, \"with_app\", \u0026iam.GroupArgs{\n\t\t\tName: pulumi.String(\"iam_group_with_app\"),\n\t\t\tApplicationIds: pulumi.StringArray{\n\t\t\t\tapp.ID(),\n\t\t\t},\n\t\t\tUserIds: pulumi.StringArray{},\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.iam.Application;\nimport com.pulumi.scaleway.iam.Group;\nimport com.pulumi.scaleway.iam.GroupArgs;\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 app = new Application(\"app\");\n\n        var withApp = new Group(\"withApp\", GroupArgs.builder()\n            .name(\"iam_group_with_app\")\n            .applicationIds(app.id())\n            .userIds()\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  app:\n    type: scaleway:iam:Application\n  withApp:\n    type: scaleway:iam:Group\n    name: with_app\n    properties:\n      name: iam_group_with_app\n      applicationIds:\n        - ${app.id}\n      userIds: []\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIAM groups can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iamGroup:IamGroup basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"applicationIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the applications attached to the group.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the group"},"description":{"type":"string","description":"The description of the IAM group.\n"},"externalMembership":{"type":"boolean","description":"Manage membership externally. This make the resource ignore\u003cspan pulumi-lang-nodejs=\" userIds \" pulumi-lang-dotnet=\" UserIds \" pulumi-lang-go=\" userIds \" pulumi-lang-python=\" user_ids \" pulumi-lang-yaml=\" userIds \" pulumi-lang-java=\" userIds \"\u003e user_ids \u003c/span\u003eand application_ids. Should be used when using iam_group_membership\n"},"name":{"type":"string","description":"The name of the IAM group.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the group is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the group.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the group"},"userIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the users attached to the group.\n"}},"required":["createdAt","name","organizationId","updatedAt"],"inputProperties":{"applicationIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the applications attached to the group.\n"},"description":{"type":"string","description":"The description of the IAM group.\n"},"externalMembership":{"type":"boolean","description":"Manage membership externally. This make the resource ignore\u003cspan pulumi-lang-nodejs=\" userIds \" pulumi-lang-dotnet=\" UserIds \" pulumi-lang-go=\" userIds \" pulumi-lang-python=\" user_ids \" pulumi-lang-yaml=\" userIds \" pulumi-lang-java=\" userIds \"\u003e user_ids \u003c/span\u003eand application_ids. Should be used when using iam_group_membership\n"},"name":{"type":"string","description":"The name of the IAM group.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the group is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the group.\n"},"userIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the users attached to the group.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering IamGroup resources.\n","properties":{"applicationIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the applications attached to the group.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the group"},"description":{"type":"string","description":"The description of the IAM group.\n"},"externalMembership":{"type":"boolean","description":"Manage membership externally. This make the resource ignore\u003cspan pulumi-lang-nodejs=\" userIds \" pulumi-lang-dotnet=\" UserIds \" pulumi-lang-go=\" userIds \" pulumi-lang-python=\" user_ids \" pulumi-lang-yaml=\" userIds \" pulumi-lang-java=\" userIds \"\u003e user_ids \u003c/span\u003eand application_ids. Should be used when using iam_group_membership\n"},"name":{"type":"string","description":"The name of the IAM group.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the group is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the group.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the group"},"userIds":{"type":"array","items":{"type":"string"},"description":"The list of IDs of the users attached to the group.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/iamgroup.IamGroup has been deprecated in favor of scaleway.iam/group.Group"},"scaleway:index/iamGroupMembership:IamGroupMembership":{"description":"Add members to an IAM group.\nFor more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#groups-f592eb).\n\n## Example Usage\n\n### Application Membership\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst group = new scaleway.iam.Group(\"group\", {\n    name: \"my_group\",\n    externalMembership: true,\n});\nconst app = new scaleway.iam.Application(\"app\", {name: \"my_app\"});\nconst member = new scaleway.iam.GroupMembership(\"member\", {\n    groupId: group.id,\n    applicationId: app.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ngroup = scaleway.iam.Group(\"group\",\n    name=\"my_group\",\n    external_membership=True)\napp = scaleway.iam.Application(\"app\", name=\"my_app\")\nmember = scaleway.iam.GroupMembership(\"member\",\n    group_id=group.id,\n    application_id=app.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 @group = new Scaleway.Iam.Group(\"group\", new()\n    {\n        Name = \"my_group\",\n        ExternalMembership = true,\n    });\n\n    var app = new Scaleway.Iam.Application(\"app\", new()\n    {\n        Name = \"my_app\",\n    });\n\n    var member = new Scaleway.Iam.GroupMembership(\"member\", new()\n    {\n        GroupId = @group.Id,\n        ApplicationId = app.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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgroup, err := iam.NewGroup(ctx, \"group\", \u0026iam.GroupArgs{\n\t\t\tName:               pulumi.String(\"my_group\"),\n\t\t\tExternalMembership: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapp, err := iam.NewApplication(ctx, \"app\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"my_app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewGroupMembership(ctx, \"member\", \u0026iam.GroupMembershipArgs{\n\t\t\tGroupId:       group.ID(),\n\t\t\tApplicationId: app.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.iam.Group;\nimport com.pulumi.scaleway.iam.GroupArgs;\nimport com.pulumi.scaleway.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.GroupMembership;\nimport com.pulumi.scaleway.iam.GroupMembershipArgs;\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 group = new Group(\"group\", GroupArgs.builder()\n            .name(\"my_group\")\n            .externalMembership(true)\n            .build());\n\n        var app = new Application(\"app\", ApplicationArgs.builder()\n            .name(\"my_app\")\n            .build());\n\n        var member = new GroupMembership(\"member\", GroupMembershipArgs.builder()\n            .groupId(group.id())\n            .applicationId(app.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  group:\n    type: scaleway:iam:Group\n    properties:\n      name: my_group\n      externalMembership: true\n  app:\n    type: scaleway:iam:Application\n    properties:\n      name: my_app\n  member:\n    type: scaleway:iam:GroupMembership\n    properties:\n      groupId: ${group.id}\n      applicationId: ${app.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIAM group memberships can be imported using two format:\n\n- For user: `{group_id}/user/{user_id}`\n\n- For application: `{group_id}/app/{application_id}`\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iamGroupMembership:IamGroupMembership app 11111111-1111-1111-1111-111111111111/app/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"applicationId":{"type":"string","description":"The ID of the application that will be added to the group.\n"},"groupId":{"type":"string","description":"ID of the group to add members to.\n"},"userId":{"type":"string","description":"The ID of the user that will be added to the group\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n"}},"required":["groupId"],"inputProperties":{"applicationId":{"type":"string","description":"The ID of the application that will be added to the group.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"ID of the group to add members to.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the user that will be added to the group\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["groupId"],"stateInputs":{"description":"Input properties used for looking up and filtering IamGroupMembership resources.\n","properties":{"applicationId":{"type":"string","description":"The ID of the application that will be added to the group.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"ID of the group to add members to.\n","willReplaceOnChanges":true},"userId":{"type":"string","description":"The ID of the user that will be added to the group\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/iamgroupmembership.IamGroupMembership has been deprecated in favor of scaleway.iam/groupmembership.GroupMembership"},"scaleway:index/iamPolicy:IamPolicy":{"description":"Creates and manages Scaleway IAM Policies. For more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#path-policies-create-a-new-policy).\n\n\u003e You can find a detailed list of all permission sets available at Scaleway in the permission sets [reference page](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/).\n\n## Example Usage\n\n### Create a policy for an organization's project\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst _default = scaleway.account.getProject({\n    name: \"default\",\n});\nconst app = new scaleway.iam.Application(\"app\", {name: \"my app\"});\nconst objectReadOnly = new scaleway.iam.Policy(\"object_read_only\", {\n    name: \"my policy\",\n    description: \"gives app readonly access to object storage in project\",\n    applicationId: app.id,\n    rules: [{\n        projectIds: [_default.then(_default =\u003e _default.id)],\n        permissionSetNames: [\"ObjectStorageReadOnly\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\ndefault = scaleway.account.get_project(name=\"default\")\napp = scaleway.iam.Application(\"app\", name=\"my app\")\nobject_read_only = scaleway.iam.Policy(\"object_read_only\",\n    name=\"my policy\",\n    description=\"gives app readonly access to object storage in project\",\n    application_id=app.id,\n    rules=[{\n        \"project_ids\": [default.id],\n        \"permission_set_names\": [\"ObjectStorageReadOnly\"],\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 @default = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    var app = new Scaleway.Iam.Application(\"app\", new()\n    {\n        Name = \"my app\",\n    });\n\n    var objectReadOnly = new Scaleway.Iam.Policy(\"object_read_only\", new()\n    {\n        Name = \"my policy\",\n        Description = \"gives app readonly access to object storage in project\",\n        ApplicationId = app.Id,\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                ProjectIds = new[]\n                {\n                    @default.Apply(@default =\u003e @default.Apply(getProjectResult =\u003e getProjectResult.Id)),\n                },\n                PermissionSetNames = new[]\n                {\n                    \"ObjectStorageReadOnly\",\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapp, err := iam.NewApplication(ctx, \"app\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"my app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"object_read_only\", \u0026iam.PolicyArgs{\n\t\t\tName:          pulumi.String(\"my policy\"),\n\t\t\tDescription:   pulumi.String(\"gives app readonly access to object storage in project\"),\n\t\t\tApplicationId: app.ID(),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tProjectIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(_default.Id),\n\t\t\t\t\t},\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ObjectStorageReadOnly\"),\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\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 default = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        var app = new Application(\"app\", ApplicationArgs.builder()\n            .name(\"my app\")\n            .build());\n\n        var objectReadOnly = new Policy(\"objectReadOnly\", PolicyArgs.builder()\n            .name(\"my policy\")\n            .description(\"gives app readonly access to object storage in project\")\n            .applicationId(app.id())\n            .rules(PolicyRuleArgs.builder()\n                .projectIds(default_.id())\n                .permissionSetNames(\"ObjectStorageReadOnly\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  app:\n    type: scaleway:iam:Application\n    properties:\n      name: my app\n  objectReadOnly:\n    type: scaleway:iam:Policy\n    name: object_read_only\n    properties:\n      name: my policy\n      description: gives app readonly access to object storage in project\n      applicationId: ${app.id}\n      rules:\n        - projectIds:\n            - ${default.id}\n          permissionSetNames:\n            - ObjectStorageReadOnly\nvariables:\n  default:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a policy for all current and future projects in an organization\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst app = new scaleway.iam.Application(\"app\", {name: \"my app\"});\nconst objectReadOnly = new scaleway.iam.Policy(\"object_read_only\", {\n    name: \"my policy\",\n    description: \"gives app readonly access to object storage in project\",\n    applicationId: app.id,\n    rules: [{\n        organizationId: app.organizationId,\n        permissionSetNames: [\"ObjectStorageReadOnly\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\napp = scaleway.iam.Application(\"app\", name=\"my app\")\nobject_read_only = scaleway.iam.Policy(\"object_read_only\",\n    name=\"my policy\",\n    description=\"gives app readonly access to object storage in project\",\n    application_id=app.id,\n    rules=[{\n        \"organization_id\": app.organization_id,\n        \"permission_set_names\": [\"ObjectStorageReadOnly\"],\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 app = new Scaleway.Iam.Application(\"app\", new()\n    {\n        Name = \"my app\",\n    });\n\n    var objectReadOnly = new Scaleway.Iam.Policy(\"object_read_only\", new()\n    {\n        Name = \"my policy\",\n        Description = \"gives app readonly access to object storage in project\",\n        ApplicationId = app.Id,\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                OrganizationId = app.OrganizationId,\n                PermissionSetNames = new[]\n                {\n                    \"ObjectStorageReadOnly\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapp, err := iam.NewApplication(ctx, \"app\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"my app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"object_read_only\", \u0026iam.PolicyArgs{\n\t\t\tName:          pulumi.String(\"my policy\"),\n\t\t\tDescription:   pulumi.String(\"gives app readonly access to object storage in project\"),\n\t\t\tApplicationId: app.ID(),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tOrganizationId: app.OrganizationId,\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ObjectStorageReadOnly\"),\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.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\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 app = new Application(\"app\", ApplicationArgs.builder()\n            .name(\"my app\")\n            .build());\n\n        var objectReadOnly = new Policy(\"objectReadOnly\", PolicyArgs.builder()\n            .name(\"my policy\")\n            .description(\"gives app readonly access to object storage in project\")\n            .applicationId(app.id())\n            .rules(PolicyRuleArgs.builder()\n                .organizationId(app.organizationId())\n                .permissionSetNames(\"ObjectStorageReadOnly\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  app:\n    type: scaleway:iam:Application\n    properties:\n      name: my app\n  objectReadOnly:\n    type: scaleway:iam:Policy\n    name: object_read_only\n    properties:\n      name: my policy\n      description: gives app readonly access to object storage in project\n      applicationId: ${app.id}\n      rules:\n        - organizationId: ${app.organizationId}\n          permissionSetNames:\n            - ObjectStorageReadOnly\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a policy with a particular condition\n\nIAM policy rule can use a condition to be applied.\nThe following variables are available:\n\n- `request.ip`\n- `request.user_agent`\n- `request.time`\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.iam.Policy(\"main\", {\n    name: \"tf_tests_policy_condition\",\n    noPrincipal: true,\n    rules: [{\n        organizationId: \"%s\",\n        permissionSetNames: [\"AllProductsFullAccess\"],\n        condition: \"request.user_agent == 'My User Agent'\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iam.Policy(\"main\",\n    name=\"tf_tests_policy_condition\",\n    no_principal=True,\n    rules=[{\n        \"organization_id\": \"%s\",\n        \"permission_set_names\": [\"AllProductsFullAccess\"],\n        \"condition\": \"request.user_agent == 'My User Agent'\",\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.Iam.Policy(\"main\", new()\n    {\n        Name = \"tf_tests_policy_condition\",\n        NoPrincipal = true,\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                OrganizationId = \"%s\",\n                PermissionSetNames = new[]\n                {\n                    \"AllProductsFullAccess\",\n                },\n                Condition = \"request.user_agent == 'My User Agent'\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewPolicy(ctx, \"main\", \u0026iam.PolicyArgs{\n\t\t\tName:        pulumi.String(\"tf_tests_policy_condition\"),\n\t\t\tNoPrincipal: pulumi.Bool(true),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tOrganizationId: pulumi.String(\"%s\"),\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"AllProductsFullAccess\"),\n\t\t\t\t\t},\n\t\t\t\t\tCondition: pulumi.String(\"request.user_agent == 'My User Agent'\"),\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.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\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 Policy(\"main\", PolicyArgs.builder()\n            .name(\"tf_tests_policy_condition\")\n            .noPrincipal(true)\n            .rules(PolicyRuleArgs.builder()\n                .organizationId(\"%s\")\n                .permissionSetNames(\"AllProductsFullAccess\")\n                .condition(\"request.user_agent == 'My User Agent'\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iam:Policy\n    properties:\n      name: tf_tests_policy_condition\n      noPrincipal: true\n      rules:\n        - organizationId: '%s'\n          permissionSetNames:\n            - AllProductsFullAccess\n          condition: request.user_agent == 'My User Agent'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPolicies can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iamPolicy:IamPolicy main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"applicationId":{"type":"string","description":"ID of the application the policy will be linked to\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the policy.\n"},"description":{"type":"string","description":"The description of the IAM policy.\n"},"editable":{"type":"boolean","description":"Whether the policy is editable.\n"},"groupId":{"type":"string","description":"ID of the group the policy will be linked to\n"},"name":{"type":"string","description":"The name of the IAM policy.\n"},"noPrincipal":{"type":"boolean","description":"If the policy doesn't apply to a principal.\n\n\u003e **Important** Only one of \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`noPrincipal`\" pulumi-lang-dotnet=\"`NoPrincipal`\" pulumi-lang-go=\"`noPrincipal`\" pulumi-lang-python=\"`no_principal`\" pulumi-lang-yaml=\"`noPrincipal`\" pulumi-lang-java=\"`noPrincipal`\"\u003e`no_principal`\u003c/span\u003e may be set.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the policy is associated with.\n"},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:index/IamPolicyRule:IamPolicyRule"},"description":"List of rules in the policy.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IAM policy.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the policy.\n"},"userId":{"type":"string","description":"ID of the user the policy will be linked to\n"}},"required":["createdAt","editable","name","organizationId","rules","updatedAt"],"inputProperties":{"applicationId":{"type":"string","description":"ID of the application the policy will be linked to\n"},"description":{"type":"string","description":"The description of the IAM policy.\n"},"groupId":{"type":"string","description":"ID of the group the policy will be linked to\n"},"name":{"type":"string","description":"The name of the IAM policy.\n"},"noPrincipal":{"type":"boolean","description":"If the policy doesn't apply to a principal.\n\n\u003e **Important** Only one of \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`noPrincipal`\" pulumi-lang-dotnet=\"`NoPrincipal`\" pulumi-lang-go=\"`noPrincipal`\" pulumi-lang-python=\"`no_principal`\" pulumi-lang-yaml=\"`noPrincipal`\" pulumi-lang-java=\"`noPrincipal`\"\u003e`no_principal`\u003c/span\u003e may be set.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the policy is associated with.\n"},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:index/IamPolicyRule:IamPolicyRule"},"description":"List of rules in the policy.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IAM policy.\n"},"userId":{"type":"string","description":"ID of the user the policy will be linked to\n"}},"requiredInputs":["rules"],"stateInputs":{"description":"Input properties used for looking up and filtering IamPolicy resources.\n","properties":{"applicationId":{"type":"string","description":"ID of the application the policy will be linked to\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the policy.\n"},"description":{"type":"string","description":"The description of the IAM policy.\n"},"editable":{"type":"boolean","description":"Whether the policy is editable.\n"},"groupId":{"type":"string","description":"ID of the group the policy will be linked to\n"},"name":{"type":"string","description":"The name of the IAM policy.\n"},"noPrincipal":{"type":"boolean","description":"If the policy doesn't apply to a principal.\n\n\u003e **Important** Only one of \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`noPrincipal`\" pulumi-lang-dotnet=\"`NoPrincipal`\" pulumi-lang-go=\"`noPrincipal`\" pulumi-lang-python=\"`no_principal`\" pulumi-lang-yaml=\"`noPrincipal`\" pulumi-lang-java=\"`noPrincipal`\"\u003e`no_principal`\u003c/span\u003e may be set.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the policy is associated with.\n"},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:index/IamPolicyRule:IamPolicyRule"},"description":"List of rules in the policy.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IAM policy.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the policy.\n"},"userId":{"type":"string","description":"ID of the user the policy will be linked to\n"}},"type":"object"},"deprecationMessage":"scaleway.index/iampolicy.IamPolicy has been deprecated in favor of scaleway.iam/policy.Policy"},"scaleway:index/iamSshKey:IamSshKey":{"description":"Creates and manages Scaleway IAM SSH Keys.\nFor more information refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#ssh-keys-d8ccd4).\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.iam.SshKey(\"main\", {\n    name: \"main\",\n    publicKey: \"\u003cYOUR-PUBLIC-SSH-KEY\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iam.SshKey(\"main\",\n    name=\"main\",\n    public_key=\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\")\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.Iam.SshKey(\"main\", new()\n    {\n        Name = \"main\",\n        PublicKey = \"\u003cYOUR-PUBLIC-SSH-KEY\u003e\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewSshKey(ctx, \"main\", \u0026iam.SshKeyArgs{\n\t\t\tName:      pulumi.String(\"main\"),\n\t\t\tPublicKey: pulumi.String(\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\"),\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.iam.SshKey;\nimport com.pulumi.scaleway.iam.SshKeyArgs;\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 SshKey(\"main\", SshKeyArgs.builder()\n            .name(\"main\")\n            .publicKey(\"\u003cYOUR-PUBLIC-SSH-KEY\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iam:SshKey\n    properties:\n      name: main\n      publicKey: \u003cYOUR-PUBLIC-SSH-KEY\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSSH keys can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iamSshKey:IamSshKey main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the SSH key.\n"},"disabled":{"type":"boolean","description":"The SSH key status.\n"},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key.\n"},"name":{"type":"string","description":"The name of the SSH key.\n"},"organizationId":{"type":"string","description":"The ID of the organization the SSH key is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is\nassociated with.\n"},"publicKey":{"type":"string","description":"The public SSH key to be added.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the SSH key.\n"}},"required":["createdAt","fingerprint","name","organizationId","projectId","publicKey","updatedAt"],"inputProperties":{"disabled":{"type":"boolean","description":"The SSH key status.\n"},"name":{"type":"string","description":"The name of the SSH key.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is\nassociated with.\n","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"The public SSH key to be added.\n","willReplaceOnChanges":true}},"requiredInputs":["publicKey"],"stateInputs":{"description":"Input properties used for looking up and filtering IamSshKey resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the SSH key.\n"},"disabled":{"type":"boolean","description":"The SSH key status.\n"},"fingerprint":{"type":"string","description":"The fingerprint of the iam SSH key.\n"},"name":{"type":"string","description":"The name of the SSH key.\n"},"organizationId":{"type":"string","description":"The ID of the organization the SSH key is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH key is\nassociated with.\n","willReplaceOnChanges":true},"publicKey":{"type":"string","description":"The public SSH key to be added.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the SSH key.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/iamsshkey.IamSshKey has been deprecated in favor of scaleway.iam/sshkey.SshKey"},"scaleway:index/iamUser:IamUser":{"description":"Creates and manages Scaleway IAM [Users](https://www.scaleway.com/en/docs/iam/concepts/#member).\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/iam/#path-users-list-users-of-an-organization).\n\n\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\n//## Basic IAM user creation\nconst user = new scaleway.iam.User(\"user\", {\n    email: \"foo@test.com\",\n    tags: [\"test-tag\"],\n    username: \"foo\",\n    firstName: \"Foo\",\n    lastName: \"Bar\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Basic IAM user creation\nuser = scaleway.iam.User(\"user\",\n    email=\"foo@test.com\",\n    tags=[\"test-tag\"],\n    username=\"foo\",\n    first_name=\"Foo\",\n    last_name=\"Bar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //## Basic IAM user creation\n    var user = new Scaleway.Iam.User(\"user\", new()\n    {\n        Email = \"foo@test.com\",\n        Tags = new[]\n        {\n            \"test-tag\",\n        },\n        Username = \"foo\",\n        FirstName = \"Foo\",\n        LastName = \"Bar\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Basic IAM user creation\n\t\t_, err := iam.NewUser(ctx, \"user\", \u0026iam.UserArgs{\n\t\t\tEmail: pulumi.String(\"foo@test.com\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test-tag\"),\n\t\t\t},\n\t\t\tUsername:  pulumi.String(\"foo\"),\n\t\t\tFirstName: pulumi.String(\"Foo\"),\n\t\t\tLastName:  pulumi.String(\"Bar\"),\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.iam.User;\nimport com.pulumi.scaleway.iam.UserArgs;\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        //## Basic IAM user creation\n        var user = new User(\"user\", UserArgs.builder()\n            .email(\"foo@test.com\")\n            .tags(\"test-tag\")\n            .username(\"foo\")\n            .firstName(\"Foo\")\n            .lastName(\"Bar\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Basic IAM user creation\n  user:\n    type: scaleway:iam:User\n    properties:\n      email: foo@test.com\n      tags:\n        - test-tag\n      username: foo\n      firstName: Foo\n      lastName: Bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst users = [\n    {\n        email: \"test@test.com\",\n        username: \"test\",\n    },\n    {\n        email: \"test2@test.com\",\n        username: \"test2\",\n    },\n];\nconst usersUser: scaleway.iam.User[] = [];\nfor (const range = {value: 0}; range.value \u003c users.length; range.value++) {\n    usersUser.push(new scaleway.iam.User(`users-${range.value}`, {\n        email: users[range.value].email,\n        username: users[range.value].username,\n    }));\n}\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nusers = [\n    {\n        \"email\": \"test@test.com\",\n        \"username\": \"test\",\n    },\n    {\n        \"email\": \"test2@test.com\",\n        \"username\": \"test2\",\n    },\n]\nusers_user = []\nfor range in [{\"value\": i} for i in range(0, len(users))]:\n    users_user.append(scaleway.iam.User(f\"users-{range['value']}\",\n        email=users[range[\"value\"]][\"email\"],\n        username=users[range[\"value\"]][\"username\"]))\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 users = new[]\n    {\n        \n        {\n            { \"email\", \"test@test.com\" },\n            { \"username\", \"test\" },\n        },\n        \n        {\n            { \"email\", \"test2@test.com\" },\n            { \"username\", \"test2\" },\n        },\n    };\n\n    var usersUser = new List\u003cScaleway.Iam.User\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c users.Length; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        usersUser.Add(new Scaleway.Iam.User($\"users-{range.Value}\", new()\n        {\n            Email = users[range.Value].Email,\n            Username = users[range.Value].Username,\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tusers := []map[string]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"email\":    \"test@test.com\",\n\t\t\t\t\"username\": \"test\",\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"email\":    \"test2@test.com\",\n\t\t\t\t\"username\": \"test2\",\n\t\t\t},\n\t\t}\n\t\tvar usersUser []*iam.User\n\t\tfor index := 0; index \u003c len(users); index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := iam.NewUser(ctx, fmt.Sprintf(\"users-%v\", key0), \u0026iam.UserArgs{\n\t\t\t\tEmail:    pulumi.String(users[val0].Email),\n\t\t\t\tUsername: pulumi.String(users[val0].Username),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tusersUser = append(usersUser, __res)\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.iam.User;\nimport com.pulumi.scaleway.iam.UserArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\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 users = List.of(        \n            Map.ofEntries(\n                Map.entry(\"email\", \"test@test.com\"),\n                Map.entry(\"username\", \"test\")\n            ),\n            Map.ofEntries(\n                Map.entry(\"email\", \"test2@test.com\"),\n                Map.entry(\"username\", \"test2\")\n            ));\n\n        for (var i = 0; i \u003c users.length(); i++) {\n            new User(\"usersUser-\" + i, UserArgs.builder()\n                .email(users[range.value()].email())\n                .username(users[range.value()].username())\n                .build());\n\n        \n}\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIAM users can be imported using the `{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iamUser:IamUser basic 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"accountRootUserId":{"type":"string","description":"The ID of the account root user associated with the user.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the IAM user.\n"},"deletable":{"type":"boolean","description":"Whether the IAM user is deletable.\n"},"email":{"type":"string","description":"The email of the IAM user. For Guest users, this argument is not editable.\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"lastLoginAt":{"type":"string","description":"The date of the last login.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"locale":{"type":"string","description":"The user's locale (e.g., en_US).\n"},"locked":{"type":"boolean","description":"Whether the user is locked.\n"},"mfa":{"type":"boolean","description":"Whether the MFA is enabled.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the user is associated with.\n"},"password":{"type":"string","description":"The password for first access. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"phoneNumber":{"type":"string","description":"The user's phone number.\n"},"sendPasswordEmail":{"type":"boolean","description":"Whether or not to send an email containing the password for first access.\n"},"sendWelcomeEmail":{"type":"boolean","description":"Whether or not to send a welcome email that includes onboarding information.\n"},"status":{"type":"string","description":"The status of user invitation. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the user.\n"},"type":{"type":"string","description":"The type of user. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the IAM user.\n"},"username":{"type":"string","description":"The username of the IAM user.\n"}},"required":["accountRootUserId","createdAt","deletable","email","lastLoginAt","locale","locked","mfa","organizationId","status","type","updatedAt","username"],"inputProperties":{"email":{"type":"string","description":"The email of the IAM user. For Guest users, this argument is not editable.\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"locale":{"type":"string","description":"The user's locale (e.g., en_US).\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the user is associated with.\n"},"password":{"type":"string","description":"The password for first access. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"phoneNumber":{"type":"string","description":"The user's phone number.\n"},"sendPasswordEmail":{"type":"boolean","description":"Whether or not to send an email containing the password for first access.\n"},"sendWelcomeEmail":{"type":"boolean","description":"Whether or not to send a welcome email that includes onboarding information.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the user.\n"},"username":{"type":"string","description":"The username of the IAM user.\n"}},"requiredInputs":["email","username"],"stateInputs":{"description":"Input properties used for looking up and filtering IamUser resources.\n","properties":{"accountRootUserId":{"type":"string","description":"The ID of the account root user associated with the user.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the IAM user.\n"},"deletable":{"type":"boolean","description":"Whether the IAM user is deletable.\n"},"email":{"type":"string","description":"The email of the IAM user. For Guest users, this argument is not editable.\n"},"firstName":{"type":"string","description":"The user's first name.\n"},"lastLoginAt":{"type":"string","description":"The date of the last login.\n"},"lastName":{"type":"string","description":"The user's last name.\n"},"locale":{"type":"string","description":"The user's locale (e.g., en_US).\n"},"locked":{"type":"boolean","description":"Whether the user is locked.\n"},"mfa":{"type":"boolean","description":"Whether the MFA is enabled.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the user is associated with.\n"},"password":{"type":"string","description":"The password for first access. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"phoneNumber":{"type":"string","description":"The user's phone number.\n"},"sendPasswordEmail":{"type":"boolean","description":"Whether or not to send an email containing the password for first access.\n"},"sendWelcomeEmail":{"type":"boolean","description":"Whether or not to send a welcome email that includes onboarding information.\n"},"status":{"type":"string","description":"The status of user invitation. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the user.\n"},"type":{"type":"string","description":"The type of user. Check the possible values in the [API doc](https://www.scaleway.com/en/developers/api/iam/#path-users-get-a-given-user).\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the IAM user.\n"},"username":{"type":"string","description":"The username of the IAM user.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/iamuser.IamUser has been deprecated in favor of scaleway.iam/user.User"},"scaleway:index/inferenceDeployment:InferenceDeployment":{"description":"Creates and manages Scaleway Managed Inference deployments.\nFor more information, see the [API 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 myModel = scaleway.inference.getModel({\n    name: \"meta/llama-3.1-8b-instruct:fp8\",\n});\nconst deployment = new scaleway.inference.Deployment(\"deployment\", {\n    name: \"tf-inference-deployment\",\n    nodeType: \"L4\",\n    modelName: myModel.then(myModel =\u003e myModel.id),\n    publicEndpoint: {\n        isEnabled: true,\n    },\n    acceptEula: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmy_model = scaleway.inference.get_model(name=\"meta/llama-3.1-8b-instruct:fp8\")\ndeployment = scaleway.inference.Deployment(\"deployment\",\n    name=\"tf-inference-deployment\",\n    node_type=\"L4\",\n    model_name=my_model.id,\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 = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myModel = Scaleway.Inference.GetModel.Invoke(new()\n    {\n        Name = \"meta/llama-3.1-8b-instruct:fp8\",\n    });\n\n    var deployment = new Scaleway.Inference.Deployment(\"deployment\", new()\n    {\n        Name = \"tf-inference-deployment\",\n        NodeType = \"L4\",\n        ModelName = myModel.Apply(getModelResult =\u003e getModelResult.Id),\n        PublicEndpoint = new Scaleway.Inference.Inputs.DeploymentPublicEndpointArgs\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/inference\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyModel, err := inference.LookupModel(ctx, \u0026inference.LookupModelArgs{\n\t\t\tName: pulumi.StringRef(\"meta/llama-3.1-8b-instruct:fp8\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = inference.NewDeployment(ctx, \"deployment\", \u0026inference.DeploymentArgs{\n\t\t\tName:      pulumi.String(\"tf-inference-deployment\"),\n\t\t\tNodeType:  pulumi.String(\"L4\"),\n\t\t\tModelName: myModel.Id,\n\t\t\tPublicEndpoint: \u0026inference.DeploymentPublicEndpointArgs{\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.inference.InferenceFunctions;\nimport com.pulumi.scaleway.inference.inputs.GetModelArgs;\nimport com.pulumi.scaleway.inference.Deployment;\nimport com.pulumi.scaleway.inference.DeploymentArgs;\nimport com.pulumi.scaleway.inference.inputs.DeploymentPublicEndpointArgs;\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 myModel = InferenceFunctions.getModel(GetModelArgs.builder()\n            .name(\"meta/llama-3.1-8b-instruct:fp8\")\n            .build());\n\n        var deployment = new Deployment(\"deployment\", DeploymentArgs.builder()\n            .name(\"tf-inference-deployment\")\n            .nodeType(\"L4\")\n            .modelName(myModel.id())\n            .publicEndpoint(DeploymentPublicEndpointArgs.builder()\n                .isEnabled(true)\n                .build())\n            .acceptEula(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  deployment:\n    type: scaleway:inference:Deployment\n    properties:\n      name: tf-inference-deployment\n      nodeType: L4\n      modelName: ${myModel.id}\n      publicEndpoint:\n        isEnabled: true\n      acceptEula: true\nvariables:\n  myModel:\n    fn::invoke:\n      function: scaleway:inference:getModel\n      arguments:\n        name: meta/llama-3.1-8b-instruct:fp8\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":{"acceptEula":{"type":"boolean","description":"Some models (e.g Meta Llama) require end-user license agreements. Set \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to accept.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the deployment.\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool.\n"},"modelId":{"type":"string","description":"The model id used for the deployment.\n"},"modelName":{"type":"string","description":"The model name used 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 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"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InferenceDeploymentPrivateIp:InferenceDeploymentPrivateIp"},"description":"The private IPv4 address associated with the deployment.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n"},"publicEndpoint":{"$ref":"#/types/scaleway:index/InferenceDeploymentPublicEndpoint:InferenceDeploymentPublicEndpoint","description":"Configuration of the deployment's public endpoint.\n"},"quantization":{"type":"integer","description":"The number of bits each model parameter should be quantized to"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment is created.\n"},"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"}},"required":["createdAt","modelId","modelName","name","nodeType","privateIps","projectId","size","status","updatedAt"],"inputProperties":{"acceptEula":{"type":"boolean","description":"Some models (e.g Meta Llama) require end-user license agreements. Set \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to accept.\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool.\n"},"modelId":{"type":"string","description":"The model id used for the deployment.\n","willReplaceOnChanges":true},"name":{"type":"string","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","willReplaceOnChanges":true},"privateEndpoint":{"$ref":"#/types/scaleway:index/InferenceDeploymentPrivateEndpoint:InferenceDeploymentPrivateEndpoint","description":"Configuration of the deployment's private endpoint.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InferenceDeploymentPrivateIp:InferenceDeploymentPrivateIp"},"description":"The private IPv4 address associated with the deployment.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n","willReplaceOnChanges":true},"publicEndpoint":{"$ref":"#/types/scaleway:index/InferenceDeploymentPublicEndpoint:InferenceDeploymentPublicEndpoint","description":"Configuration of the deployment's public endpoint.\n"},"quantization":{"type":"integer","description":"The number of bits each model parameter should be quantized to"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment is created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the deployment.\n"}},"requiredInputs":["modelId","nodeType"],"stateInputs":{"description":"Input properties used for looking up and filtering InferenceDeployment resources.\n","properties":{"acceptEula":{"type":"boolean","description":"Some models (e.g Meta Llama) require end-user license agreements. Set \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to accept.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the deployment.\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool.\n"},"modelId":{"type":"string","description":"The model id used for the deployment.\n","willReplaceOnChanges":true},"modelName":{"type":"string","description":"The model name used 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 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","willReplaceOnChanges":true},"privateEndpoint":{"$ref":"#/types/scaleway:index/InferenceDeploymentPrivateEndpoint:InferenceDeploymentPrivateEndpoint","description":"Configuration of the deployment's private endpoint.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InferenceDeploymentPrivateIp:InferenceDeploymentPrivateIp"},"description":"The private IPv4 address associated with the deployment.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n","willReplaceOnChanges":true},"publicEndpoint":{"$ref":"#/types/scaleway:index/InferenceDeploymentPublicEndpoint:InferenceDeploymentPublicEndpoint","description":"Configuration of the deployment's public endpoint.\n"},"quantization":{"type":"integer","description":"The number of bits each model parameter should be quantized to"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) 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"},"deprecationMessage":"scaleway.index/inferencedeployment.InferenceDeployment has been deprecated in favor of scaleway.inference/deployment.Deployment"},"scaleway:index/instanceImage:InstanceImage":{"description":"Creates and manages Scaleway Compute Images.\nFor more information, see the [API 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.instance.Volume(\"volume\", {\n    type: \"b_ssd\",\n    sizeInGb: 20,\n});\nconst volumeSnapshot = new scaleway.instance.Snapshot(\"volume_snapshot\", {volumeId: volume.id});\nconst volumeImage = new scaleway.instance.Image(\"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.instance.Volume(\"volume\",\n    type=\"b_ssd\",\n    size_in_gb=20)\nvolume_snapshot = scaleway.instance.Snapshot(\"volume_snapshot\", volume_id=volume.id)\nvolume_image = scaleway.instance.Image(\"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.Instance.Volume(\"volume\", new()\n    {\n        Type = \"b_ssd\",\n        SizeInGb = 20,\n    });\n\n    var volumeSnapshot = new Scaleway.Instance.Snapshot(\"volume_snapshot\", new()\n    {\n        VolumeId = volume.Id,\n    });\n\n    var volumeImage = new Scaleway.Instance.Image(\"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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume, err := instance.NewVolume(ctx, \"volume\", \u0026instance.VolumeArgs{\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 := instance.NewSnapshot(ctx, \"volume_snapshot\", \u0026instance.SnapshotArgs{\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 = instance.NewImage(ctx, \"volume_image\", \u0026instance.ImageArgs{\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.instance.Volume;\nimport com.pulumi.scaleway.instance.VolumeArgs;\nimport com.pulumi.scaleway.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\nimport com.pulumi.scaleway.instance.Image;\nimport com.pulumi.scaleway.instance.ImageArgs;\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 Volume(\"volume\", VolumeArgs.builder()\n            .type(\"b_ssd\")\n            .sizeInGb(20)\n            .build());\n\n        var volumeSnapshot = new Snapshot(\"volumeSnapshot\", SnapshotArgs.builder()\n            .volumeId(volume.id())\n            .build());\n\n        var volumeImage = new Image(\"volumeImage\", ImageArgs.builder()\n            .name(\"image_from_volume\")\n            .rootVolumeId(volumeSnapshot.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume:\n    type: scaleway:instance:Volume\n    properties:\n      type: b_ssd\n      sizeInGb: 20\n  volumeSnapshot:\n    type: scaleway:instance:Snapshot\n    name: volume_snapshot\n    properties:\n      volumeId: ${volume.id}\n  volumeImage:\n    type: scaleway:instance:Image\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.instance.Server(\"server\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n});\nconst serverSnapshot = new scaleway.instance.Snapshot(\"server_snapshot\", {volumeId: main.rootVolume[0].volumeId});\nconst serverImage = new scaleway.instance.Image(\"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.instance.Server(\"server\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\")\nserver_snapshot = scaleway.instance.Snapshot(\"server_snapshot\", volume_id=main[\"rootVolume\"][0][\"volumeId\"])\nserver_image = scaleway.instance.Image(\"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.Instance.Server(\"server\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n    });\n\n    var serverSnapshot = new Scaleway.Instance.Snapshot(\"server_snapshot\", new()\n    {\n        VolumeId = main.RootVolume[0].VolumeId,\n    });\n\n    var serverImage = new Scaleway.Instance.Image(\"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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewServer(ctx, \"server\", \u0026instance.ServerArgs{\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 := instance.NewSnapshot(ctx, \"server_snapshot\", \u0026instance.SnapshotArgs{\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 = instance.NewImage(ctx, \"server_image\", \u0026instance.ImageArgs{\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.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\nimport com.pulumi.scaleway.instance.Image;\nimport com.pulumi.scaleway.instance.ImageArgs;\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 Server(\"server\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .build());\n\n        var serverSnapshot = new Snapshot(\"serverSnapshot\", SnapshotArgs.builder()\n            .volumeId(main.rootVolume()[0].volumeId())\n            .build());\n\n        var serverImage = new Image(\"serverImage\", ImageArgs.builder()\n            .name(\"image_from_server\")\n            .rootVolumeId(serverSnapshot.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  server:\n    type: scaleway:instance:Server\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n  serverSnapshot:\n    type: scaleway:instance:Snapshot\n    name: server_snapshot\n    properties:\n      volumeId: ${main.rootVolume[0].volumeId}\n  serverImage:\n    type: scaleway:instance:Image\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```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst server = new scaleway.instance.Server(\"server\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n});\nconst volume = new scaleway.instance.Volume(\"volume\", {\n    type: \"b_ssd\",\n    sizeInGb: 20,\n});\nconst volumeSnapshot = new scaleway.instance.Snapshot(\"volume_snapshot\", {volumeId: volume.id});\nconst serverSnapshot = new scaleway.instance.Snapshot(\"server_snapshot\", {volumeId: main.rootVolume[0].volumeId});\nconst image = new scaleway.instance.Image(\"image\", {\n    name: \"image_with_extra_volumes\",\n    rootVolumeId: serverSnapshot.id,\n    additionalVolumeIds: [volumeSnapshot.id],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver = scaleway.instance.Server(\"server\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\")\nvolume = scaleway.instance.Volume(\"volume\",\n    type=\"b_ssd\",\n    size_in_gb=20)\nvolume_snapshot = scaleway.instance.Snapshot(\"volume_snapshot\", volume_id=volume.id)\nserver_snapshot = scaleway.instance.Snapshot(\"server_snapshot\", volume_id=main[\"rootVolume\"][0][\"volumeId\"])\nimage = scaleway.instance.Image(\"image\",\n    name=\"image_with_extra_volumes\",\n    root_volume_id=server_snapshot.id,\n    additional_volume_ids=[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 server = new Scaleway.Instance.Server(\"server\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n    });\n\n    var volume = new Scaleway.Instance.Volume(\"volume\", new()\n    {\n        Type = \"b_ssd\",\n        SizeInGb = 20,\n    });\n\n    var volumeSnapshot = new Scaleway.Instance.Snapshot(\"volume_snapshot\", new()\n    {\n        VolumeId = volume.Id,\n    });\n\n    var serverSnapshot = new Scaleway.Instance.Snapshot(\"server_snapshot\", new()\n    {\n        VolumeId = main.RootVolume[0].VolumeId,\n    });\n\n    var image = new Scaleway.Instance.Image(\"image\", new()\n    {\n        Name = \"image_with_extra_volumes\",\n        RootVolumeId = serverSnapshot.Id,\n        AdditionalVolumeIds = new[]\n        {\n            volumeSnapshot.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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewServer(ctx, \"server\", \u0026instance.ServerArgs{\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\tvolume, err := instance.NewVolume(ctx, \"volume\", \u0026instance.VolumeArgs{\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 := instance.NewSnapshot(ctx, \"volume_snapshot\", \u0026instance.SnapshotArgs{\n\t\t\tVolumeId: volume.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserverSnapshot, err := instance.NewSnapshot(ctx, \"server_snapshot\", \u0026instance.SnapshotArgs{\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 = instance.NewImage(ctx, \"image\", \u0026instance.ImageArgs{\n\t\t\tName:         pulumi.String(\"image_with_extra_volumes\"),\n\t\t\tRootVolumeId: serverSnapshot.ID(),\n\t\t\tAdditionalVolumeIds: pulumi.StringArray{\n\t\t\t\tvolumeSnapshot.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.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.Volume;\nimport com.pulumi.scaleway.instance.VolumeArgs;\nimport com.pulumi.scaleway.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\nimport com.pulumi.scaleway.instance.Image;\nimport com.pulumi.scaleway.instance.ImageArgs;\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 Server(\"server\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .build());\n\n        var volume = new Volume(\"volume\", VolumeArgs.builder()\n            .type(\"b_ssd\")\n            .sizeInGb(20)\n            .build());\n\n        var volumeSnapshot = new Snapshot(\"volumeSnapshot\", SnapshotArgs.builder()\n            .volumeId(volume.id())\n            .build());\n\n        var serverSnapshot = new Snapshot(\"serverSnapshot\", SnapshotArgs.builder()\n            .volumeId(main.rootVolume()[0].volumeId())\n            .build());\n\n        var image = new Image(\"image\", ImageArgs.builder()\n            .name(\"image_with_extra_volumes\")\n            .rootVolumeId(serverSnapshot.id())\n            .additionalVolumeIds(volumeSnapshot.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  server:\n    type: scaleway:instance:Server\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n  volume:\n    type: scaleway:instance:Volume\n    properties:\n      type: b_ssd\n      sizeInGb: 20\n  volumeSnapshot:\n    type: scaleway:instance:Snapshot\n    name: volume_snapshot\n    properties:\n      volumeId: ${volume.id}\n  serverSnapshot:\n    type: scaleway:instance:Snapshot\n    name: server_snapshot\n    properties:\n      volumeId: ${main.rootVolume[0].volumeId}\n  image:\n    type: scaleway:instance:Image\n    properties:\n      name: image_with_extra_volumes\n      rootVolumeId: ${serverSnapshot.id}\n      additionalVolumeIds:\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":"array","items":{"type":"string"},"description":"List of IDs of the snapshots of the additional volumes to be attached to the image.\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: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`arm`\" pulumi-lang-dotnet=\"`Arm`\" pulumi-lang-go=\"`arm`\" pulumi-lang-python=\"`arm`\" pulumi-lang-yaml=\"`arm`\" pulumi-lang-java=\"`arm`\"\u003e`arm`\u003c/span\u003e.\n"},"creationDate":{"type":"string","description":"Date of the image 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 image 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 \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e 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"},"rootVolumes":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceImageRootVolume:InstanceImageRootVolume"},"description":"The description of the root volume attached to the image.\n"},"state":{"type":"string","description":"State of the image. Possible values are: \u003cspan pulumi-lang-nodejs=\"`available`\" pulumi-lang-dotnet=\"`Available`\" pulumi-lang-go=\"`available`\" pulumi-lang-python=\"`available`\" pulumi-lang-yaml=\"`available`\" pulumi-lang-java=\"`available`\"\u003e`available`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e.\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","rootVolumes","rootVolumeId","state"],"inputProperties":{"additionalVolumeIds":{"type":"array","items":{"type":"string"},"description":"List of IDs of the snapshots of the additional volumes to be attached to the image.\n"},"architecture":{"type":"string","description":"The architecture the image is compatible with. Possible values are: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`arm`\" pulumi-lang-dotnet=\"`Arm`\" pulumi-lang-go=\"`arm`\" pulumi-lang-python=\"`arm`\" pulumi-lang-yaml=\"`arm`\" pulumi-lang-java=\"`arm`\"\u003e`arm`\u003c/span\u003e.\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 \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e 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","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}},"requiredInputs":["rootVolumeId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceImage resources.\n","properties":{"additionalVolumeIds":{"type":"array","items":{"type":"string"},"description":"List of IDs of the snapshots of the additional volumes to be attached to the image.\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: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`arm`\" pulumi-lang-dotnet=\"`Arm`\" pulumi-lang-go=\"`arm`\" pulumi-lang-python=\"`arm`\" pulumi-lang-yaml=\"`arm`\" pulumi-lang-java=\"`arm`\"\u003e`arm`\u003c/span\u003e.\n"},"creationDate":{"type":"string","description":"Date of the image 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 image 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 \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e 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","willReplaceOnChanges":true},"rootVolumes":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceImageRootVolume:InstanceImageRootVolume"},"description":"The description of the root volume attached to the image.\n"},"state":{"type":"string","description":"State of the image. Possible values are: \u003cspan pulumi-lang-nodejs=\"`available`\" pulumi-lang-dotnet=\"`Available`\" pulumi-lang-go=\"`available`\" pulumi-lang-python=\"`available`\" pulumi-lang-yaml=\"`available`\" pulumi-lang-java=\"`available`\"\u003e`available`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e.\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}},"type":"object"},"deprecationMessage":"scaleway.index/instanceimage.InstanceImage has been deprecated in favor of scaleway.instance/image.Image"},"scaleway:index/instanceIp:InstanceIp":{"description":"Creates and manages Scaleway compute Instance IPs. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-ips-list-all-flexible-ips).\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 serverIp = new scaleway.instance.Ip(\"server_ip\", {});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver_ip = scaleway.instance.Ip(\"server_ip\")\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 serverIp = new Scaleway.Instance.Ip(\"server_ip\");\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewIp(ctx, \"server_ip\", 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.instance.Ip;\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 serverIp = new Ip(\"serverIp\");\n\n    }\n}\n```\n```yaml\nresources:\n  serverIp:\n    type: scaleway:instance:Ip\n    name: server_ip\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIPs can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instanceIp:InstanceIp server_ip fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"address":{"type":"string","description":"The IP address.\n"},"organizationId":{"type":"string","description":"The organization ID the IP is associated with.\n"},"prefix":{"type":"string","description":"The IP Prefix.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is associated with.\n"},"reverse":{"type":"string","description":"The reverse dns attached to this IP\n"},"serverId":{"type":"string","description":"The server associated with this IP"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"},"type":{"type":"string","description":"The type of the IP (\u003cspan pulumi-lang-nodejs=\"`routedIpv4`\" pulumi-lang-dotnet=\"`RoutedIpv4`\" pulumi-lang-go=\"`routedIpv4`\" pulumi-lang-python=\"`routed_ipv4`\" pulumi-lang-yaml=\"`routedIpv4`\" pulumi-lang-java=\"`routedIpv4`\"\u003e`routed_ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routedIpv6`\" pulumi-lang-dotnet=\"`RoutedIpv6`\" pulumi-lang-go=\"`routedIpv6`\" pulumi-lang-python=\"`routed_ipv6`\" pulumi-lang-yaml=\"`routedIpv6`\" pulumi-lang-java=\"`routedIpv6`\"\u003e`routed_ipv6`\u003c/span\u003e), more information in [the documentation](https://www.scaleway.com/en/docs/compute/instances/api-cli/using-routed-ips/)\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n"}},"required":["address","organizationId","prefix","projectId","reverse","serverId","type"],"inputProperties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"},"type":{"type":"string","description":"The type of the IP (\u003cspan pulumi-lang-nodejs=\"`routedIpv4`\" pulumi-lang-dotnet=\"`RoutedIpv4`\" pulumi-lang-go=\"`routedIpv4`\" pulumi-lang-python=\"`routed_ipv4`\" pulumi-lang-yaml=\"`routedIpv4`\" pulumi-lang-java=\"`routedIpv4`\"\u003e`routed_ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routedIpv6`\" pulumi-lang-dotnet=\"`RoutedIpv6`\" pulumi-lang-go=\"`routedIpv6`\" pulumi-lang-python=\"`routed_ipv6`\" pulumi-lang-yaml=\"`routedIpv6`\" pulumi-lang-java=\"`routedIpv6`\"\u003e`routed_ipv6`\u003c/span\u003e), more information in [the documentation](https://www.scaleway.com/en/docs/compute/instances/api-cli/using-routed-ips/)\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering InstanceIp resources.\n","properties":{"address":{"type":"string","description":"The IP address.\n"},"organizationId":{"type":"string","description":"The organization ID the IP is associated with.\n"},"prefix":{"type":"string","description":"The IP Prefix.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse dns attached to this IP\n"},"serverId":{"type":"string","description":"The server associated with this IP"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"},"type":{"type":"string","description":"The type of the IP (\u003cspan pulumi-lang-nodejs=\"`routedIpv4`\" pulumi-lang-dotnet=\"`RoutedIpv4`\" pulumi-lang-go=\"`routedIpv4`\" pulumi-lang-python=\"`routed_ipv4`\" pulumi-lang-yaml=\"`routedIpv4`\" pulumi-lang-java=\"`routedIpv4`\"\u003e`routed_ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routedIpv6`\" pulumi-lang-dotnet=\"`RoutedIpv6`\" pulumi-lang-go=\"`routedIpv6`\" pulumi-lang-python=\"`routed_ipv6`\" pulumi-lang-yaml=\"`routedIpv6`\" pulumi-lang-java=\"`routedIpv6`\"\u003e`routed_ipv6`\u003c/span\u003e), more information in [the documentation](https://www.scaleway.com/en/docs/compute/instances/api-cli/using-routed-ips/)\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/instanceip.InstanceIp has been deprecated in favor of scaleway.instance/ip.Ip"},"scaleway:index/instanceIpReverseDns:InstanceIpReverseDns":{"description":"Manages Scaleway compute Instance IPs Reverse DNS.\n\nPlease check our [guide](https://www.scaleway.com/en/docs/compute/instances/how-to/configure-reverse-dns/) for more details\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 serverIp = new scaleway.instance.Ip(\"server_ip\", {});\nconst tfA = new scaleway.domain.Record(\"tf_A\", {\n    dnsZone: \"scaleway.com\",\n    name: \"www\",\n    type: \"A\",\n    data: serverIp.address,\n    ttl: 3600,\n    priority: 1,\n});\nconst reverse = new scaleway.instance.IpReverseDns(\"reverse\", {\n    ipId: serverIp.id,\n    reverse: \"www.scaleway.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver_ip = scaleway.instance.Ip(\"server_ip\")\ntf_a = scaleway.domain.Record(\"tf_A\",\n    dns_zone=\"scaleway.com\",\n    name=\"www\",\n    type=\"A\",\n    data=server_ip.address,\n    ttl=3600,\n    priority=1)\nreverse = scaleway.instance.IpReverseDns(\"reverse\",\n    ip_id=server_ip.id,\n    reverse=\"www.scaleway.com\")\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 serverIp = new Scaleway.Instance.Ip(\"server_ip\");\n\n    var tfA = new Scaleway.Domain.Record(\"tf_A\", new()\n    {\n        DnsZone = \"scaleway.com\",\n        Name = \"www\",\n        Type = \"A\",\n        Data = serverIp.Address,\n        Ttl = 3600,\n        Priority = 1,\n    });\n\n    var reverse = new Scaleway.Instance.IpReverseDns(\"reverse\", new()\n    {\n        IpId = serverIp.Id,\n        Reverse = \"www.scaleway.com\",\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/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserverIp, err := instance.NewIp(ctx, \"server_ip\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"tf_A\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"scaleway.com\"),\n\t\t\tName:     pulumi.String(\"www\"),\n\t\t\tType:     pulumi.String(\"A\"),\n\t\t\tData:     serverIp.Address,\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewIpReverseDns(ctx, \"reverse\", \u0026instance.IpReverseDnsArgs{\n\t\t\tIpId:    serverIp.ID(),\n\t\t\tReverse: pulumi.String(\"www.scaleway.com\"),\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.instance.Ip;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.scaleway.instance.IpReverseDns;\nimport com.pulumi.scaleway.instance.IpReverseDnsArgs;\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 serverIp = new Ip(\"serverIp\");\n\n        var tfA = new Record(\"tfA\", RecordArgs.builder()\n            .dnsZone(\"scaleway.com\")\n            .name(\"www\")\n            .type(\"A\")\n            .data(serverIp.address())\n            .ttl(3600)\n            .priority(1)\n            .build());\n\n        var reverse = new IpReverseDns(\"reverse\", IpReverseDnsArgs.builder()\n            .ipId(serverIp.id())\n            .reverse(\"www.scaleway.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  serverIp:\n    type: scaleway:instance:Ip\n    name: server_ip\n  tfA:\n    type: scaleway:domain:Record\n    name: tf_A\n    properties:\n      dnsZone: scaleway.com\n      name: www\n      type: A\n      data: ${serverIp.address}\n      ttl: 3600\n      priority: 1\n  reverse:\n    type: scaleway:instance:IpReverseDns\n    properties:\n      ipId: ${serverIp.id}\n      reverse: www.scaleway.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIPs reverse DNS can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instanceIpReverseDns:InstanceIpReverseDns reverse fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"ipId":{"type":"string","description":"The IP ID\n"},"reverse":{"type":"string","description":"The reverse DNS for this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n"}},"required":["ipId","reverse"],"inputProperties":{"ipId":{"type":"string","description":"The IP ID\n"},"reverse":{"type":"string","description":"The reverse DNS for this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"requiredInputs":["ipId","reverse"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceIpReverseDns resources.\n","properties":{"ipId":{"type":"string","description":"The IP ID\n"},"reverse":{"type":"string","description":"The reverse DNS for this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/instanceipreversedns.InstanceIpReverseDns has been deprecated in favor of scaleway.instance/ipreversedns.IpReverseDns"},"scaleway:index/instancePlacementGroup:InstancePlacementGroup":{"description":"Creates and manages Compute Instance Placement Groups. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-list-placement-groups).\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 availabilityGroup = new scaleway.instance.PlacementGroup(\"availability_group\", {});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\navailability_group = scaleway.instance.PlacementGroup(\"availability_group\")\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 availabilityGroup = new Scaleway.Instance.PlacementGroup(\"availability_group\");\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewPlacementGroup(ctx, \"availability_group\", 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.instance.PlacementGroup;\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 availabilityGroup = new PlacementGroup(\"availabilityGroup\");\n\n    }\n}\n```\n```yaml\nresources:\n  availabilityGroup:\n    type: scaleway:instance:PlacementGroup\n    name: availability_group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPlacement groups can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instancePlacementGroup:InstancePlacementGroup availability_group fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"name":{"type":"string","description":"The name of the placement group.\n"},"organizationId":{"type":"string","description":"The organization ID the placement group is associated with.\n"},"policyMode":{"type":"string","description":"The [policy mode](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`optional`\" pulumi-lang-dotnet=\"`Optional`\" pulumi-lang-go=\"`optional`\" pulumi-lang-python=\"`optional`\" pulumi-lang-yaml=\"`optional`\" pulumi-lang-java=\"`optional`\"\u003e`optional`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`enforced`\" pulumi-lang-dotnet=\"`Enforced`\" pulumi-lang-go=\"`enforced`\" pulumi-lang-python=\"`enforced`\" pulumi-lang-yaml=\"`enforced`\" pulumi-lang-java=\"`enforced`\"\u003e`enforced`\u003c/span\u003e.\n"},"policyRespected":{"type":"boolean","description":"Is true when the policy is respected.\n"},"policyType":{"type":"string","description":"The [policy type](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-grou) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`lowLatency`\" pulumi-lang-dotnet=\"`LowLatency`\" pulumi-lang-go=\"`lowLatency`\" pulumi-lang-python=\"`low_latency`\" pulumi-lang-yaml=\"`lowLatency`\" pulumi-lang-java=\"`lowLatency`\"\u003e`low_latency`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`maxAvailability`\" pulumi-lang-dotnet=\"`MaxAvailability`\" pulumi-lang-go=\"`maxAvailability`\" pulumi-lang-python=\"`max_availability`\" pulumi-lang-yaml=\"`maxAvailability`\" pulumi-lang-java=\"`maxAvailability`\"\u003e`max_availability`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the placement group is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the placement group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the placement group should be created.\n"}},"required":["name","organizationId","policyRespected","projectId"],"inputProperties":{"name":{"type":"string","description":"The name of the placement group.\n"},"policyMode":{"type":"string","description":"The [policy mode](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`optional`\" pulumi-lang-dotnet=\"`Optional`\" pulumi-lang-go=\"`optional`\" pulumi-lang-python=\"`optional`\" pulumi-lang-yaml=\"`optional`\" pulumi-lang-java=\"`optional`\"\u003e`optional`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`enforced`\" pulumi-lang-dotnet=\"`Enforced`\" pulumi-lang-go=\"`enforced`\" pulumi-lang-python=\"`enforced`\" pulumi-lang-yaml=\"`enforced`\" pulumi-lang-java=\"`enforced`\"\u003e`enforced`\u003c/span\u003e.\n"},"policyType":{"type":"string","description":"The [policy type](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-grou) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`lowLatency`\" pulumi-lang-dotnet=\"`LowLatency`\" pulumi-lang-go=\"`lowLatency`\" pulumi-lang-python=\"`low_latency`\" pulumi-lang-yaml=\"`lowLatency`\" pulumi-lang-java=\"`lowLatency`\"\u003e`low_latency`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`maxAvailability`\" pulumi-lang-dotnet=\"`MaxAvailability`\" pulumi-lang-go=\"`maxAvailability`\" pulumi-lang-python=\"`max_availability`\" pulumi-lang-yaml=\"`maxAvailability`\" pulumi-lang-java=\"`maxAvailability`\"\u003e`max_availability`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the placement group is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the placement group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the placement group should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering InstancePlacementGroup resources.\n","properties":{"name":{"type":"string","description":"The name of the placement group.\n"},"organizationId":{"type":"string","description":"The organization ID the placement group is associated with.\n"},"policyMode":{"type":"string","description":"The [policy mode](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`optional`\" pulumi-lang-dotnet=\"`Optional`\" pulumi-lang-go=\"`optional`\" pulumi-lang-python=\"`optional`\" pulumi-lang-yaml=\"`optional`\" pulumi-lang-java=\"`optional`\"\u003e`optional`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`enforced`\" pulumi-lang-dotnet=\"`Enforced`\" pulumi-lang-go=\"`enforced`\" pulumi-lang-python=\"`enforced`\" pulumi-lang-yaml=\"`enforced`\" pulumi-lang-java=\"`enforced`\"\u003e`enforced`\u003c/span\u003e.\n"},"policyRespected":{"type":"boolean","description":"Is true when the policy is respected.\n"},"policyType":{"type":"string","description":"The [policy type](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-grou) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`lowLatency`\" pulumi-lang-dotnet=\"`LowLatency`\" pulumi-lang-go=\"`lowLatency`\" pulumi-lang-python=\"`low_latency`\" pulumi-lang-yaml=\"`lowLatency`\" pulumi-lang-java=\"`lowLatency`\"\u003e`low_latency`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`maxAvailability`\" pulumi-lang-dotnet=\"`MaxAvailability`\" pulumi-lang-go=\"`maxAvailability`\" pulumi-lang-python=\"`max_availability`\" pulumi-lang-yaml=\"`maxAvailability`\" pulumi-lang-java=\"`maxAvailability`\"\u003e`max_availability`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the placement group is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the placement group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the placement group should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/instanceplacementgroup.InstancePlacementGroup has been deprecated in favor of scaleway.instance/placementgroup.PlacementGroup"},"scaleway:index/instancePrivateNic:InstancePrivateNic":{"description":"Creates and manages Scaleway Instance Private NICs. For more information, see\nthe [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics).\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 pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    serverId: \"fr-par-1/11111111-1111-1111-1111-111111111111\",\n    privateNetworkId: \"fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    server_id=\"fr-par-1/11111111-1111-1111-1111-111111111111\",\n    private_network_id=\"fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\")\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 pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        ServerId = \"fr-par-1/11111111-1111-1111-1111-111111111111\",\n        PrivateNetworkId = \"fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         pulumi.String(\"fr-par-1/11111111-1111-1111-1111-111111111111\"),\n\t\t\tPrivateNetworkId: pulumi.String(\"fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\"),\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.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\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 pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .serverId(\"fr-par-1/11111111-1111-1111-1111-111111111111\")\n            .privateNetworkId(\"fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      serverId: fr-par-1/11111111-1111-1111-1111-111111111111\n      privateNetworkId: fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With zone\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"private_network_instance\",\n    region: \"fr-par\",\n});\nconst base = new scaleway.instance.Server(\"base\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    zone: pn01.zone,\n});\nconst pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    serverId: base.id,\n    privateNetworkId: pn01.id,\n    zone: pn01.zone,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"private_network_instance\",\n    region=\"fr-par\")\nbase = scaleway.instance.Server(\"base\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    zone=pn01.zone)\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    server_id=base.id,\n    private_network_id=pn01.id,\n    zone=pn01.zone)\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 pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"private_network_instance\",\n        Region = \"fr-par\",\n    });\n\n    var @base = new Scaleway.Instance.Server(\"base\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        Zone = pn01.Zone,\n    });\n\n    var pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        ServerId = @base.Id,\n        PrivateNetworkId = pn01.Id,\n        Zone = pn01.Zone,\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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName:   pulumi.String(\"private_network_instance\"),\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbase, err := instance.NewServer(ctx, \"base\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tZone:  pn01.Zone,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         base.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tZone:             pn01.Zone,\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\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 pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"private_network_instance\")\n            .region(\"fr-par\")\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .zone(pn01.zone())\n            .build());\n\n        var pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .serverId(base.id())\n            .privateNetworkId(pn01.id())\n            .zone(pn01.zone())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: private_network_instance\n      region: fr-par\n  base:\n    type: scaleway:instance:Server\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      zone: ${pn01.zone}\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      serverId: ${base.id}\n      privateNetworkId: ${pn01.id}\n      zone: ${pn01.zone}\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 \"@pulumiverse/scaleway\";\n\nconst vpc01 = new scaleway.network.Vpc(\"vpc01\", {name: \"vpc_instance\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"private_network_instance\",\n    ipv4Subnet: {\n        subnet: \"172.16.64.0/22\",\n    },\n    vpcId: vpc01.id,\n});\nconst ip01 = new scaleway.ipam.Ip(\"ip01\", {\n    address: \"172.16.64.7\",\n    sources: [{\n        privateNetworkId: pn01.id,\n    }],\n});\nconst server01 = new scaleway.instance.Server(\"server01\", {\n    image: \"ubuntu_focal\",\n    type: \"PLAY2-MICRO\",\n});\nconst pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    privateNetworkId: pn01.id,\n    serverId: server01.id,\n    ipamIpIds: [ip01.id],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"vpc_instance\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"private_network_instance\",\n    ipv4_subnet={\n        \"subnet\": \"172.16.64.0/22\",\n    },\n    vpc_id=vpc01.id)\nip01 = scaleway.ipam.Ip(\"ip01\",\n    address=\"172.16.64.7\",\n    sources=[{\n        \"private_network_id\": pn01.id,\n    }])\nserver01 = scaleway.instance.Server(\"server01\",\n    image=\"ubuntu_focal\",\n    type=\"PLAY2-MICRO\")\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    private_network_id=pn01.id,\n    server_id=server01.id,\n    ipam_ip_ids=[ip01.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 vpc01 = new Scaleway.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"vpc_instance\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"private_network_instance\",\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.64.0/22\",\n        },\n        VpcId = vpc01.Id,\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Address = \"172.16.64.7\",\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\n            {\n                PrivateNetworkId = pn01.Id,\n            },\n        },\n    });\n\n    var server01 = new Scaleway.Instance.Server(\"server01\", new()\n    {\n        Image = \"ubuntu_focal\",\n        Type = \"PLAY2-MICRO\",\n    });\n\n    var pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        PrivateNetworkId = pn01.Id,\n        ServerId = server01.Id,\n        IpamIpIds = new[]\n        {\n            ip01.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"vpc_instance\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"private_network_instance\"),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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 := ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.64.7\"),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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\tserver01, err := instance.NewServer(ctx, \"server01\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_focal\"),\n\t\t\tType:  pulumi.String(\"PLAY2-MICRO\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tServerId:         server01.ID(),\n\t\t\tIpamIpIds: pulumi.StringArray{\n\t\t\t\tip01.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\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_instance\")\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"private_network_instance\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.64.0/22\")\n                .build())\n            .vpcId(vpc01.id())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .address(\"172.16.64.7\")\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n        var server01 = new Server(\"server01\", ServerArgs.builder()\n            .image(\"ubuntu_focal\")\n            .type(\"PLAY2-MICRO\")\n            .build());\n\n        var pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .privateNetworkId(pn01.id())\n            .serverId(server01.id())\n            .ipamIpIds(ip01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: vpc_instance\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: private_network_instance\n      ipv4Subnet:\n        subnet: 172.16.64.0/22\n      vpcId: ${vpc01.id}\n  ip01:\n    type: scaleway:ipam:Ip\n    properties:\n      address: 172.16.64.7\n      sources:\n        - privateNetworkId: ${pn01.id}\n  server01:\n    type: scaleway:instance:Server\n    properties:\n      image: ubuntu_focal\n      type: PLAY2-MICRO\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      privateNetworkId: ${pn01.id}\n      serverId: ${server01.id}\n      ipamIpIds:\n        - ${ip01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPrivate NICs can be imported using the `{zone}/{server_id}/{private_nic_id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instancePrivateNic:InstancePrivateNic pnic01 fr-par-1/11111111-1111-1111-1111-111111111111/22222222-2222-2222-2222-222222222222\n```\n\n","properties":{"ipIds":{"type":"array","items":{"type":"string"},"description":"IPAM ip list, should be for internal use only"},"ipamIpIds":{"type":"array","items":{"type":"string"},"description":"IPAM IDs of a pre-reserved IP addresses to assign to the Instance in the requested private network.\n"},"macAddress":{"type":"string","description":"The MAC address of the private NIC.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstancePrivateNicPrivateIp:InstancePrivateNicPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the private network attached to.\n"},"serverId":{"type":"string","description":"The ID of the server associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the private NIC.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server must be created.\n"}},"required":["macAddress","privateIps","privateNetworkId","serverId"],"inputProperties":{"ipIds":{"type":"array","items":{"type":"string"},"description":"IPAM ip list, should be for internal use only","willReplaceOnChanges":true},"ipamIpIds":{"type":"array","items":{"type":"string"},"description":"IPAM IDs of a pre-reserved IP addresses to assign to the Instance in the requested private network.\n","willReplaceOnChanges":true},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstancePrivateNicPrivateIp:InstancePrivateNicPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the private network attached to.\n","willReplaceOnChanges":true},"serverId":{"type":"string","description":"The ID of the server associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the private NIC.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server must be created.\n","willReplaceOnChanges":true}},"requiredInputs":["privateNetworkId","serverId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstancePrivateNic resources.\n","properties":{"ipIds":{"type":"array","items":{"type":"string"},"description":"IPAM ip list, should be for internal use only","willReplaceOnChanges":true},"ipamIpIds":{"type":"array","items":{"type":"string"},"description":"IPAM IDs of a pre-reserved IP addresses to assign to the Instance in the requested private network.\n","willReplaceOnChanges":true},"macAddress":{"type":"string","description":"The MAC address of the private NIC.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstancePrivateNicPrivateIp:InstancePrivateNicPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the private network attached to.\n","willReplaceOnChanges":true},"serverId":{"type":"string","description":"The ID of the server associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the private NIC.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server must be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/instanceprivatenic.InstancePrivateNic has been deprecated in favor of scaleway.instance/privatenic.PrivateNic"},"scaleway:index/instanceSecurityGroup:InstanceSecurityGroup":{"description":"\n\n## Import\n\nInstance security group can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instanceSecurityGroup:InstanceSecurityGroup web fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"description":{"type":"string","description":"The description of the security group.\n"},"enableDefaultSecurity":{"type":"boolean","description":"Whether to block SMTP on IPv4/IPv6 (Port 25, 465, 587). Set to false will unblock SMTP if your account is authorized to. If your organization is not yet authorized to send SMTP traffic, [open a support ticket](https://console.scaleway.com/support/tickets).\n"},"externalRules":{"type":"boolean","description":"A boolean to specify whether to use instance_security_group_rules.\nIf \u003cspan pulumi-lang-nodejs=\"`externalRules`\" pulumi-lang-dotnet=\"`ExternalRules`\" pulumi-lang-go=\"`externalRules`\" pulumi-lang-python=\"`external_rules`\" pulumi-lang-yaml=\"`externalRules`\" pulumi-lang-java=\"`externalRules`\"\u003e`external_rules`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inboundRule`\" pulumi-lang-dotnet=\"`InboundRule`\" pulumi-lang-go=\"`inboundRule`\" pulumi-lang-python=\"`inbound_rule`\" pulumi-lang-yaml=\"`inboundRule`\" pulumi-lang-java=\"`inboundRule`\"\u003e`inbound_rule`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`outboundRule`\" pulumi-lang-dotnet=\"`OutboundRule`\" pulumi-lang-go=\"`outboundRule`\" pulumi-lang-python=\"`outbound_rule`\" pulumi-lang-yaml=\"`outboundRule`\" pulumi-lang-java=\"`outboundRule`\"\u003e`outbound_rule`\u003c/span\u003e can not be set directly in the security group.\n"},"inboundDefaultPolicy":{"type":"string","description":"The default policy on incoming traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupInboundRule:InstanceSecurityGroupInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"name":{"type":"string","description":"The name of the security group.\n"},"organizationId":{"type":"string","description":"The organization ID the security group is associated with.\n"},"outboundDefaultPolicy":{"type":"string","description":"The default policy on outgoing traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupOutboundRule:InstanceSecurityGroupOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the security group is associated with.\n"},"stateful":{"type":"boolean","description":"A boolean to specify whether the security group should be stateful or not.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags of the security group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the security group should be created.\n"}},"required":["name","organizationId","projectId"],"inputProperties":{"description":{"type":"string","description":"The description of the security group.\n"},"enableDefaultSecurity":{"type":"boolean","description":"Whether to block SMTP on IPv4/IPv6 (Port 25, 465, 587). Set to false will unblock SMTP if your account is authorized to. If your organization is not yet authorized to send SMTP traffic, [open a support ticket](https://console.scaleway.com/support/tickets).\n"},"externalRules":{"type":"boolean","description":"A boolean to specify whether to use instance_security_group_rules.\nIf \u003cspan pulumi-lang-nodejs=\"`externalRules`\" pulumi-lang-dotnet=\"`ExternalRules`\" pulumi-lang-go=\"`externalRules`\" pulumi-lang-python=\"`external_rules`\" pulumi-lang-yaml=\"`externalRules`\" pulumi-lang-java=\"`externalRules`\"\u003e`external_rules`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inboundRule`\" pulumi-lang-dotnet=\"`InboundRule`\" pulumi-lang-go=\"`inboundRule`\" pulumi-lang-python=\"`inbound_rule`\" pulumi-lang-yaml=\"`inboundRule`\" pulumi-lang-java=\"`inboundRule`\"\u003e`inbound_rule`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`outboundRule`\" pulumi-lang-dotnet=\"`OutboundRule`\" pulumi-lang-go=\"`outboundRule`\" pulumi-lang-python=\"`outbound_rule`\" pulumi-lang-yaml=\"`outboundRule`\" pulumi-lang-java=\"`outboundRule`\"\u003e`outbound_rule`\u003c/span\u003e can not be set directly in the security group.\n"},"inboundDefaultPolicy":{"type":"string","description":"The default policy on incoming traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupInboundRule:InstanceSecurityGroupInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"name":{"type":"string","description":"The name of the security group.\n"},"outboundDefaultPolicy":{"type":"string","description":"The default policy on outgoing traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupOutboundRule:InstanceSecurityGroupOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the security group is associated with.\n","willReplaceOnChanges":true},"stateful":{"type":"boolean","description":"A boolean to specify whether the security group should be stateful or not.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags of the security group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the security group should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering InstanceSecurityGroup resources.\n","properties":{"description":{"type":"string","description":"The description of the security group.\n"},"enableDefaultSecurity":{"type":"boolean","description":"Whether to block SMTP on IPv4/IPv6 (Port 25, 465, 587). Set to false will unblock SMTP if your account is authorized to. If your organization is not yet authorized to send SMTP traffic, [open a support ticket](https://console.scaleway.com/support/tickets).\n"},"externalRules":{"type":"boolean","description":"A boolean to specify whether to use instance_security_group_rules.\nIf \u003cspan pulumi-lang-nodejs=\"`externalRules`\" pulumi-lang-dotnet=\"`ExternalRules`\" pulumi-lang-go=\"`externalRules`\" pulumi-lang-python=\"`external_rules`\" pulumi-lang-yaml=\"`externalRules`\" pulumi-lang-java=\"`externalRules`\"\u003e`external_rules`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inboundRule`\" pulumi-lang-dotnet=\"`InboundRule`\" pulumi-lang-go=\"`inboundRule`\" pulumi-lang-python=\"`inbound_rule`\" pulumi-lang-yaml=\"`inboundRule`\" pulumi-lang-java=\"`inboundRule`\"\u003e`inbound_rule`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`outboundRule`\" pulumi-lang-dotnet=\"`OutboundRule`\" pulumi-lang-go=\"`outboundRule`\" pulumi-lang-python=\"`outbound_rule`\" pulumi-lang-yaml=\"`outboundRule`\" pulumi-lang-java=\"`outboundRule`\"\u003e`outbound_rule`\u003c/span\u003e can not be set directly in the security group.\n"},"inboundDefaultPolicy":{"type":"string","description":"The default policy on incoming traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupInboundRule:InstanceSecurityGroupInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"name":{"type":"string","description":"The name of the security group.\n"},"organizationId":{"type":"string","description":"The organization ID the security group is associated with.\n"},"outboundDefaultPolicy":{"type":"string","description":"The default policy on outgoing traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupOutboundRule:InstanceSecurityGroupOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the security group is associated with.\n","willReplaceOnChanges":true},"stateful":{"type":"boolean","description":"A boolean to specify whether the security group should be stateful or not.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags of the security group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the security group should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/instancesecuritygroup.InstanceSecurityGroup has been deprecated in favor of scaleway.instance/securitygroup.SecurityGroup"},"scaleway:index/instanceSecurityGroupRules:InstanceSecurityGroupRules":{"description":"Creates and manages Scaleway compute Instance security group rules. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-list-security-groups).\n\nThis resource can be used to externalize rules from a \u003cspan pulumi-lang-nodejs=\"`scaleway.instance.SecurityGroup`\" pulumi-lang-dotnet=\"`scaleway.instance.SecurityGroup`\" pulumi-lang-go=\"`instance.SecurityGroup`\" pulumi-lang-python=\"`instance.SecurityGroup`\" pulumi-lang-yaml=\"`scaleway.instance.SecurityGroup`\" pulumi-lang-java=\"`scaleway.instance.SecurityGroup`\"\u003e`scaleway.instance.SecurityGroup`\u003c/span\u003e to solve circular dependency problems. When using this resource do not forget to set \u003cspan pulumi-lang-nodejs=\"`externalRules \" pulumi-lang-dotnet=\"`ExternalRules \" pulumi-lang-go=\"`externalRules \" pulumi-lang-python=\"`external_rules \" pulumi-lang-yaml=\"`externalRules \" pulumi-lang-java=\"`externalRules \"\u003e`external_rules \u003c/span\u003e= true` on the security group.\n\n\u003e **Warning:** In order to guaranty rules order in a given security group only one\u003cspan pulumi-lang-nodejs=\" scaleway.instance.SecurityGroupRules \" pulumi-lang-dotnet=\" scaleway.instance.SecurityGroupRules \" pulumi-lang-go=\" instance.SecurityGroupRules \" pulumi-lang-python=\" instance.SecurityGroupRules \" pulumi-lang-yaml=\" scaleway.instance.SecurityGroupRules \" pulumi-lang-java=\" scaleway.instance.SecurityGroupRules \"\u003e scaleway.instance.SecurityGroupRules \u003c/span\u003eis allowed per security group.\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 sg01 = new scaleway.instance.SecurityGroup(\"sg01\", {externalRules: true});\nconst sgrs01 = new scaleway.instance.SecurityGroupRules(\"sgrs01\", {\n    securityGroupId: sg01.id,\n    inboundRules: [{\n        action: \"accept\",\n        port: 80,\n        ipRange: \"0.0.0.0/0\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsg01 = scaleway.instance.SecurityGroup(\"sg01\", external_rules=True)\nsgrs01 = scaleway.instance.SecurityGroupRules(\"sgrs01\",\n    security_group_id=sg01.id,\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"port\": 80,\n        \"ip_range\": \"0.0.0.0/0\",\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 sg01 = new Scaleway.Instance.SecurityGroup(\"sg01\", new()\n    {\n        ExternalRules = true,\n    });\n\n    var sgrs01 = new Scaleway.Instance.SecurityGroupRules(\"sgrs01\", new()\n    {\n        SecurityGroupId = sg01.Id,\n        InboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupRulesInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 80,\n                IpRange = \"0.0.0.0/0\",\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsg01, err := instance.NewSecurityGroup(ctx, \"sg01\", \u0026instance.SecurityGroupArgs{\n\t\t\tExternalRules: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewSecurityGroupRules(ctx, \"sgrs01\", \u0026instance.SecurityGroupRulesArgs{\n\t\t\tSecurityGroupId: sg01.ID(),\n\t\t\tInboundRules: instance.SecurityGroupRulesInboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupRulesInboundRuleArgs{\n\t\t\t\t\tAction:  pulumi.String(\"accept\"),\n\t\t\t\t\tPort:    pulumi.Int(80),\n\t\t\t\t\tIpRange: pulumi.String(\"0.0.0.0/0\"),\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.instance.SecurityGroup;\nimport com.pulumi.scaleway.instance.SecurityGroupArgs;\nimport com.pulumi.scaleway.instance.SecurityGroupRules;\nimport com.pulumi.scaleway.instance.SecurityGroupRulesArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupRulesInboundRuleArgs;\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 sg01 = new SecurityGroup(\"sg01\", SecurityGroupArgs.builder()\n            .externalRules(true)\n            .build());\n\n        var sgrs01 = new SecurityGroupRules(\"sgrs01\", SecurityGroupRulesArgs.builder()\n            .securityGroupId(sg01.id())\n            .inboundRules(SecurityGroupRulesInboundRuleArgs.builder()\n                .action(\"accept\")\n                .port(80)\n                .ipRange(\"0.0.0.0/0\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sg01:\n    type: scaleway:instance:SecurityGroup\n    properties:\n      externalRules: true\n  sgrs01:\n    type: scaleway:instance:SecurityGroupRules\n    properties:\n      securityGroupId: ${sg01.id}\n      inboundRules:\n        - action: accept\n          port: 80\n          ipRange: 0.0.0.0/0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Simplify your rules using dynamic block and \u003cspan pulumi-lang-nodejs=\"`forEach`\" pulumi-lang-dotnet=\"`ForEach`\" pulumi-lang-go=\"`forEach`\" pulumi-lang-python=\"`for_each`\" pulumi-lang-yaml=\"`forEach`\" pulumi-lang-java=\"`forEach`\"\u003e`for_each`\u003c/span\u003e loop\n\nYou can use \u003cspan pulumi-lang-nodejs=\"`forEach`\" pulumi-lang-dotnet=\"`ForEach`\" pulumi-lang-go=\"`forEach`\" pulumi-lang-python=\"`for_each`\" pulumi-lang-yaml=\"`forEach`\" pulumi-lang-java=\"`forEach`\"\u003e`for_each`\u003c/span\u003e syntax to simplify the definition of your rules.\nLet's suppose that your inbound default policy is to drop, but you want to build a list of exceptions to accept.\nCreate a local containing your exceptions (`locals.trusted`) and use the \u003cspan pulumi-lang-nodejs=\"`forEach`\" pulumi-lang-dotnet=\"`ForEach`\" pulumi-lang-go=\"`forEach`\" pulumi-lang-python=\"`for_each`\" pulumi-lang-yaml=\"`forEach`\" pulumi-lang-java=\"`forEach`\"\u003e`for_each`\u003c/span\u003e syntax in a dynamic block:\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.instance.SecurityGroup(\"main\", {\n    description: \"test\",\n    name: \"terraform test\",\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n});\nconst trusted = [\n    \"1.2.3.4/32\",\n    \"4.5.6.7/32\",\n    \"7.8.9.10/24\",\n];\nconst mainSecurityGroupRules = new scaleway.instance.SecurityGroupRules(\"main\", {\n    inboundRules: trusted.map((v, k) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n        action: \"accept\",\n        ipRange: entry.value,\n        port: 80,\n    })),\n    securityGroupId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.instance.SecurityGroup(\"main\",\n    description=\"test\",\n    name=\"terraform test\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\")\ntrusted = [\n    \"1.2.3.4/32\",\n    \"4.5.6.7/32\",\n    \"7.8.9.10/24\",\n]\nmain_security_group_rules = scaleway.instance.SecurityGroupRules(\"main\",\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"ip_range\": entry[\"value\"],\n        \"port\": 80,\n    } for entry in [{\"key\": k, \"value\": v} for k, v in trusted]],\n    security_group_id=main.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 main = new Scaleway.Instance.SecurityGroup(\"main\", new()\n    {\n        Description = \"test\",\n        Name = \"terraform test\",\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n    });\n\n    var trusted = new[]\n    {\n        \"1.2.3.4/32\",\n        \"4.5.6.7/32\",\n        \"7.8.9.10/24\",\n    };\n\n    var mainSecurityGroupRules = new Scaleway.Instance.SecurityGroupRules(\"main\", new()\n    {\n        InboundRules = trusted.Select((v, k) =\u003e new { Key = k, Value = v }).Select(entry =\u003e \n        {\n            return new Scaleway.Instance.Inputs.SecurityGroupRulesInboundRuleArgs\n            {\n                Action = \"accept\",\n                IpRange = entry.Value,\n                Port = 80,\n            };\n        }).ToList(),\n        SecurityGroupId = main.Id,\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nYou can also use object to assign IP and port in the same time.\nIn your locals, you can use objects to encapsulate several values that will be used later on in the loop:\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.instance.SecurityGroup(\"main\", {\n    description: \"test\",\n    name: \"terraform test\",\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n});\nconst trusted = [\n    {\n        ipRange: \"1.2.3.4/32\",\n        port: \"80\",\n    },\n    {\n        ipRange: \"5.6.7.8/32\",\n        port: \"81\",\n    },\n    {\n        ipRange: \"9.10.11.12/32\",\n        port: \"81\",\n    },\n];\nconst mainSecurityGroupRules = new scaleway.instance.SecurityGroupRules(\"main\", {\n    inboundRules: trusted.map((v, k) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n        action: \"accept\",\n        ipRange: entry.value.ipRange,\n        port: entry.value.port,\n    })),\n    securityGroupId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.instance.SecurityGroup(\"main\",\n    description=\"test\",\n    name=\"terraform test\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\")\ntrusted = [\n    {\n        \"ipRange\": \"1.2.3.4/32\",\n        \"port\": \"80\",\n    },\n    {\n        \"ipRange\": \"5.6.7.8/32\",\n        \"port\": \"81\",\n    },\n    {\n        \"ipRange\": \"9.10.11.12/32\",\n        \"port\": \"81\",\n    },\n]\nmain_security_group_rules = scaleway.instance.SecurityGroupRules(\"main\",\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"ip_range\": entry[\"value\"][\"ipRange\"],\n        \"port\": entry[\"value\"][\"port\"],\n    } for entry in [{\"key\": k, \"value\": v} for k, v in trusted]],\n    security_group_id=main.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 main = new Scaleway.Instance.SecurityGroup(\"main\", new()\n    {\n        Description = \"test\",\n        Name = \"terraform test\",\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n    });\n\n    var trusted = new[]\n    {\n        \n        {\n            { \"ipRange\", \"1.2.3.4/32\" },\n            { \"port\", \"80\" },\n        },\n        \n        {\n            { \"ipRange\", \"5.6.7.8/32\" },\n            { \"port\", \"81\" },\n        },\n        \n        {\n            { \"ipRange\", \"9.10.11.12/32\" },\n            { \"port\", \"81\" },\n        },\n    };\n\n    var mainSecurityGroupRules = new Scaleway.Instance.SecurityGroupRules(\"main\", new()\n    {\n        InboundRules = trusted.Select((v, k) =\u003e new { Key = k, Value = v }).Select(entry =\u003e \n        {\n            return new Scaleway.Instance.Inputs.SecurityGroupRulesInboundRuleArgs\n            {\n                Action = \"accept\",\n                IpRange = entry.Value.IpRange,\n                Port = entry.Value.Port,\n            };\n        }).ToList(),\n        SecurityGroupId = main.Id,\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstance security group rules can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instanceSecurityGroupRules:InstanceSecurityGroupRules web fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupRulesInboundRule:InstanceSecurityGroupRulesInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupRulesOutboundRule:InstanceSecurityGroupRulesOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"}},"required":["securityGroupId"],"inputProperties":{"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupRulesInboundRule:InstanceSecurityGroupRulesInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupRulesOutboundRule:InstanceSecurityGroupRulesOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n","willReplaceOnChanges":true}},"requiredInputs":["securityGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceSecurityGroupRules resources.\n","properties":{"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupRulesInboundRule:InstanceSecurityGroupRulesInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceSecurityGroupRulesOutboundRule:InstanceSecurityGroupRulesOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/instancesecuritygrouprules.InstanceSecurityGroupRules has been deprecated in favor of scaleway.instance/securitygrouprules.SecurityGroupRules"},"scaleway:index/instanceServer:InstanceServer":{"description":"Creates and manages Scaleway compute Instances. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-instances-list-all-instances).\n\nPlease check our [FAQ - Instances](https://www.scaleway.com/en/docs/faq/instances).\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 publicIp = new scaleway.instance.Ip(\"public_ip\", {});\nconst web = new scaleway.instance.Server(\"web\", {\n    type: \"DEV1-S\",\n    image: \"ubuntu_jammy\",\n    ipId: publicIp.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npublic_ip = scaleway.instance.Ip(\"public_ip\")\nweb = scaleway.instance.Server(\"web\",\n    type=\"DEV1-S\",\n    image=\"ubuntu_jammy\",\n    ip_id=public_ip.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 publicIp = new Scaleway.Instance.Ip(\"public_ip\");\n\n    var web = new Scaleway.Instance.Server(\"web\", new()\n    {\n        Type = \"DEV1-S\",\n        Image = \"ubuntu_jammy\",\n        IpId = publicIp.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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpublicIp, err := instance.NewIp(ctx, \"public_ip\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"web\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tIpId:  publicIp.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.instance.Ip;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\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 publicIp = new Ip(\"publicIp\");\n\n        var web = new Server(\"web\", ServerArgs.builder()\n            .type(\"DEV1-S\")\n            .image(\"ubuntu_jammy\")\n            .ipId(publicIp.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  publicIp:\n    type: scaleway:instance:Ip\n    name: public_ip\n  web:\n    type: scaleway:instance:Server\n    properties:\n      type: DEV1-S\n      image: ubuntu_jammy\n      ipId: ${publicIp.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With additional volumes and tags\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst data = new scaleway.block.Volume(\"data\", {\n    sizeInGb: 100,\n    iops: 5000,\n});\nconst web = new scaleway.instance.Server(\"web\", {\n    type: \"DEV1-S\",\n    image: \"ubuntu_jammy\",\n    tags: [\n        \"hello\",\n        \"public\",\n    ],\n    rootVolume: {\n        deleteOnTermination: false,\n    },\n    additionalVolumeIds: [data.id],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ndata = scaleway.block.Volume(\"data\",\n    size_in_gb=100,\n    iops=5000)\nweb = scaleway.instance.Server(\"web\",\n    type=\"DEV1-S\",\n    image=\"ubuntu_jammy\",\n    tags=[\n        \"hello\",\n        \"public\",\n    ],\n    root_volume={\n        \"delete_on_termination\": False,\n    },\n    additional_volume_ids=[data.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 data = new Scaleway.Block.Volume(\"data\", new()\n    {\n        SizeInGb = 100,\n        Iops = 5000,\n    });\n\n    var web = new Scaleway.Instance.Server(\"web\", new()\n    {\n        Type = \"DEV1-S\",\n        Image = \"ubuntu_jammy\",\n        Tags = new[]\n        {\n            \"hello\",\n            \"public\",\n        },\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            DeleteOnTermination = false,\n        },\n        AdditionalVolumeIds = new[]\n        {\n            data.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/block\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdata, err := block.NewVolume(ctx, \"data\", \u0026block.VolumeArgs{\n\t\t\tSizeInGb: pulumi.Int(100),\n\t\t\tIops:     pulumi.Int(5000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"web\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"hello\"),\n\t\t\t\tpulumi.String(\"public\"),\n\t\t\t},\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tDeleteOnTermination: pulumi.Bool(false),\n\t\t\t},\n\t\t\tAdditionalVolumeIds: pulumi.StringArray{\n\t\t\t\tdata.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.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\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 data = new Volume(\"data\", VolumeArgs.builder()\n            .sizeInGb(100)\n            .iops(5000)\n            .build());\n\n        var web = new Server(\"web\", ServerArgs.builder()\n            .type(\"DEV1-S\")\n            .image(\"ubuntu_jammy\")\n            .tags(            \n                \"hello\",\n                \"public\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .deleteOnTermination(false)\n                .build())\n            .additionalVolumeIds(data.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  data:\n    type: scaleway:block:Volume\n    properties:\n      sizeInGb: 100\n      iops: 5000\n  web:\n    type: scaleway:instance:Server\n    properties:\n      type: DEV1-S\n      image: ubuntu_jammy\n      tags:\n        - hello\n        - public\n      rootVolume:\n        deleteOnTermination: false\n      additionalVolumeIds:\n        - ${data.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With filesystem\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.block.Volume(\"volume\", {\n    iops: 15000,\n    sizeInGb: 15,\n});\nconst terraformInstanceFilesystem = new scaleway.FileFilesystem(\"terraform_instance_filesystem\", {\n    name: \"filesystem-instance-terraform\",\n    sizeInGb: 100,\n});\nconst base = new scaleway.instance.Server(\"base\", {\n    type: \"POP2-HM-2C-16G\",\n    state: \"started\",\n    tags: [\n        \"terraform-test\",\n        \"scaleway_instance_server\",\n        \"state\",\n    ],\n    rootVolume: {\n        volumeType: \"sbs_volume\",\n        volumeId: volume.id,\n    },\n    filesystems: [{\n        filesystemId: terraformInstanceFilesystem.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvolume = scaleway.block.Volume(\"volume\",\n    iops=15000,\n    size_in_gb=15)\nterraform_instance_filesystem = scaleway.FileFilesystem(\"terraform_instance_filesystem\",\n    name=\"filesystem-instance-terraform\",\n    size_in_gb=100)\nbase = scaleway.instance.Server(\"base\",\n    type=\"POP2-HM-2C-16G\",\n    state=\"started\",\n    tags=[\n        \"terraform-test\",\n        \"scaleway_instance_server\",\n        \"state\",\n    ],\n    root_volume={\n        \"volume_type\": \"sbs_volume\",\n        \"volume_id\": volume.id,\n    },\n    filesystems=[{\n        \"filesystem_id\": terraform_instance_filesystem.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 volume = new Scaleway.Block.Volume(\"volume\", new()\n    {\n        Iops = 15000,\n        SizeInGb = 15,\n    });\n\n    var terraformInstanceFilesystem = new Scaleway.FileFilesystem(\"terraform_instance_filesystem\", new()\n    {\n        Name = \"filesystem-instance-terraform\",\n        SizeInGb = 100,\n    });\n\n    var @base = new Scaleway.Instance.Server(\"base\", new()\n    {\n        Type = \"POP2-HM-2C-16G\",\n        State = \"started\",\n        Tags = new[]\n        {\n            \"terraform-test\",\n            \"scaleway_instance_server\",\n            \"state\",\n        },\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            VolumeType = \"sbs_volume\",\n            VolumeId = volume.Id,\n        },\n        Filesystems = new[]\n        {\n            new Scaleway.Instance.Inputs.ServerFilesystemArgs\n            {\n                FilesystemId = terraformInstanceFilesystem.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\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/block\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume, err := block.NewVolume(ctx, \"volume\", \u0026block.VolumeArgs{\n\t\t\tIops:     pulumi.Int(15000),\n\t\t\tSizeInGb: pulumi.Int(15),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tterraformInstanceFilesystem, err := scaleway.NewFileFilesystem(ctx, \"terraform_instance_filesystem\", \u0026scaleway.FileFilesystemArgs{\n\t\t\tName:     pulumi.String(\"filesystem-instance-terraform\"),\n\t\t\tSizeInGb: pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"base\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"POP2-HM-2C-16G\"),\n\t\t\tState: pulumi.String(\"started\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform-test\"),\n\t\t\t\tpulumi.String(\"scaleway_instance_server\"),\n\t\t\t\tpulumi.String(\"state\"),\n\t\t\t},\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tVolumeType: pulumi.String(\"sbs_volume\"),\n\t\t\t\tVolumeId:   volume.ID(),\n\t\t\t},\n\t\t\tFilesystems: instance.ServerFilesystemArray{\n\t\t\t\t\u0026instance.ServerFilesystemArgs{\n\t\t\t\t\tFilesystemId: terraformInstanceFilesystem.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.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport com.pulumi.scaleway.FileFilesystem;\nimport com.pulumi.scaleway.FileFilesystemArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerFilesystemArgs;\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 Volume(\"volume\", VolumeArgs.builder()\n            .iops(15000)\n            .sizeInGb(15)\n            .build());\n\n        var terraformInstanceFilesystem = new FileFilesystem(\"terraformInstanceFilesystem\", FileFilesystemArgs.builder()\n            .name(\"filesystem-instance-terraform\")\n            .sizeInGb(100)\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .type(\"POP2-HM-2C-16G\")\n            .state(\"started\")\n            .tags(            \n                \"terraform-test\",\n                \"scaleway_instance_server\",\n                \"state\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .volumeType(\"sbs_volume\")\n                .volumeId(volume.id())\n                .build())\n            .filesystems(ServerFilesystemArgs.builder()\n                .filesystemId(terraformInstanceFilesystem.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume:\n    type: scaleway:block:Volume\n    properties:\n      iops: 15000\n      sizeInGb: 15\n  terraformInstanceFilesystem:\n    type: scaleway:FileFilesystem\n    name: terraform_instance_filesystem\n    properties:\n      name: filesystem-instance-terraform\n      sizeInGb: 100\n  base:\n    type: scaleway:instance:Server\n    properties:\n      type: POP2-HM-2C-16G\n      state: started\n      tags:\n        - terraform-test\n        - scaleway_instance_server\n        - state\n      rootVolume:\n        volumeType: sbs_volume\n        volumeId: ${volume.id}\n      filesystems:\n        - filesystemId: ${terraformInstanceFilesystem.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With a reserved IP\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ip = new scaleway.instance.Ip(\"ip\", {});\nconst web = new scaleway.instance.Server(\"web\", {\n    type: \"DEV1-S\",\n    image: \"f974feac-abae-4365-b988-8ec7d1cec10d\",\n    tags: [\n        \"hello\",\n        \"public\",\n    ],\n    ipId: ip.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nip = scaleway.instance.Ip(\"ip\")\nweb = scaleway.instance.Server(\"web\",\n    type=\"DEV1-S\",\n    image=\"f974feac-abae-4365-b988-8ec7d1cec10d\",\n    tags=[\n        \"hello\",\n        \"public\",\n    ],\n    ip_id=ip.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 ip = new Scaleway.Instance.Ip(\"ip\");\n\n    var web = new Scaleway.Instance.Server(\"web\", new()\n    {\n        Type = \"DEV1-S\",\n        Image = \"f974feac-abae-4365-b988-8ec7d1cec10d\",\n        Tags = new[]\n        {\n            \"hello\",\n            \"public\",\n        },\n        IpId = ip.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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip, err := instance.NewIp(ctx, \"ip\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"web\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tImage: pulumi.String(\"f974feac-abae-4365-b988-8ec7d1cec10d\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"hello\"),\n\t\t\t\tpulumi.String(\"public\"),\n\t\t\t},\n\t\t\tIpId: ip.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.instance.Ip;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\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 ip = new Ip(\"ip\");\n\n        var web = new Server(\"web\", ServerArgs.builder()\n            .type(\"DEV1-S\")\n            .image(\"f974feac-abae-4365-b988-8ec7d1cec10d\")\n            .tags(            \n                \"hello\",\n                \"public\")\n            .ipId(ip.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip:\n    type: scaleway:instance:Ip\n  web:\n    type: scaleway:instance:Server\n    properties:\n      type: DEV1-S\n      image: f974feac-abae-4365-b988-8ec7d1cec10d\n      tags:\n        - hello\n        - public\n      ipId: ${ip.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With security group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst www = new scaleway.instance.SecurityGroup(\"www\", {\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n    inboundRules: [\n        {\n            action: \"accept\",\n            port: 22,\n            ip: \"212.47.225.64\",\n        },\n        {\n            action: \"accept\",\n            port: 80,\n        },\n        {\n            action: \"accept\",\n            port: 443,\n        },\n    ],\n    outboundRules: [{\n        action: \"drop\",\n        ipRange: \"10.20.0.0/24\",\n    }],\n});\nconst web = new scaleway.instance.Server(\"web\", {\n    type: \"DEV1-S\",\n    image: \"ubuntu_jammy\",\n    securityGroupId: www.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nwww = scaleway.instance.SecurityGroup(\"www\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\",\n    inbound_rules=[\n        {\n            \"action\": \"accept\",\n            \"port\": 22,\n            \"ip\": \"212.47.225.64\",\n        },\n        {\n            \"action\": \"accept\",\n            \"port\": 80,\n        },\n        {\n            \"action\": \"accept\",\n            \"port\": 443,\n        },\n    ],\n    outbound_rules=[{\n        \"action\": \"drop\",\n        \"ip_range\": \"10.20.0.0/24\",\n    }])\nweb = scaleway.instance.Server(\"web\",\n    type=\"DEV1-S\",\n    image=\"ubuntu_jammy\",\n    security_group_id=www.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 www = new Scaleway.Instance.SecurityGroup(\"www\", new()\n    {\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n        InboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 22,\n                Ip = \"212.47.225.64\",\n            },\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 80,\n            },\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 443,\n            },\n        },\n        OutboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupOutboundRuleArgs\n            {\n                Action = \"drop\",\n                IpRange = \"10.20.0.0/24\",\n            },\n        },\n    });\n\n    var web = new Scaleway.Instance.Server(\"web\", new()\n    {\n        Type = \"DEV1-S\",\n        Image = \"ubuntu_jammy\",\n        SecurityGroupId = www.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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\twww, err := instance.NewSecurityGroup(ctx, \"www\", \u0026instance.SecurityGroupArgs{\n\t\t\tInboundDefaultPolicy:  pulumi.String(\"drop\"),\n\t\t\tOutboundDefaultPolicy: pulumi.String(\"accept\"),\n\t\t\tInboundRules: instance.SecurityGroupInboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"accept\"),\n\t\t\t\t\tPort:   pulumi.Int(22),\n\t\t\t\t\tIp:     pulumi.String(\"212.47.225.64\"),\n\t\t\t\t},\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"accept\"),\n\t\t\t\t\tPort:   pulumi.Int(80),\n\t\t\t\t},\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"accept\"),\n\t\t\t\t\tPort:   pulumi.Int(443),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOutboundRules: instance.SecurityGroupOutboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupOutboundRuleArgs{\n\t\t\t\t\tAction:  pulumi.String(\"drop\"),\n\t\t\t\t\tIpRange: pulumi.String(\"10.20.0.0/24\"),\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 = instance.NewServer(ctx, \"web\", \u0026instance.ServerArgs{\n\t\t\tType:            pulumi.String(\"DEV1-S\"),\n\t\t\tImage:           pulumi.String(\"ubuntu_jammy\"),\n\t\t\tSecurityGroupId: www.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.instance.SecurityGroup;\nimport com.pulumi.scaleway.instance.SecurityGroupArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupInboundRuleArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupOutboundRuleArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\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 www = new SecurityGroup(\"www\", SecurityGroupArgs.builder()\n            .inboundDefaultPolicy(\"drop\")\n            .outboundDefaultPolicy(\"accept\")\n            .inboundRules(            \n                SecurityGroupInboundRuleArgs.builder()\n                    .action(\"accept\")\n                    .port(22)\n                    .ip(\"212.47.225.64\")\n                    .build(),\n                SecurityGroupInboundRuleArgs.builder()\n                    .action(\"accept\")\n                    .port(80)\n                    .build(),\n                SecurityGroupInboundRuleArgs.builder()\n                    .action(\"accept\")\n                    .port(443)\n                    .build())\n            .outboundRules(SecurityGroupOutboundRuleArgs.builder()\n                .action(\"drop\")\n                .ipRange(\"10.20.0.0/24\")\n                .build())\n            .build());\n\n        var web = new Server(\"web\", ServerArgs.builder()\n            .type(\"DEV1-S\")\n            .image(\"ubuntu_jammy\")\n            .securityGroupId(www.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  www:\n    type: scaleway:instance:SecurityGroup\n    properties:\n      inboundDefaultPolicy: drop\n      outboundDefaultPolicy: accept\n      inboundRules:\n        - action: accept\n          port: '22'\n          ip: 212.47.225.64\n        - action: accept\n          port: '80'\n        - action: accept\n          port: '443'\n      outboundRules:\n        - action: drop\n          ipRange: 10.20.0.0/24\n  web:\n    type: scaleway:instance:Server\n    properties:\n      type: DEV1-S\n      image: ubuntu_jammy\n      securityGroupId: ${www.id}\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 \"@pulumiverse/scaleway\";\n\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {name: \"private_network_instance\"});\nconst base = new scaleway.instance.Server(\"base\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    privateNetworks: [{\n        pnId: pn01.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn01 = scaleway.network.PrivateNetwork(\"pn01\", name=\"private_network_instance\")\nbase = scaleway.instance.Server(\"base\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    private_networks=[{\n        \"pn_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 pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"private_network_instance\",\n    });\n\n    var @base = new Scaleway.Instance.Server(\"base\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Instance.Inputs.ServerPrivateNetworkArgs\n            {\n                PnId = 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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"private_network_instance\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"base\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tPrivateNetworks: instance.ServerPrivateNetworkArray{\n\t\t\t\t\u0026instance.ServerPrivateNetworkArgs{\n\t\t\t\t\tPnId: 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.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerPrivateNetworkArgs;\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 pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"private_network_instance\")\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .privateNetworks(ServerPrivateNetworkArgs.builder()\n                .pnId(pn01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: private_network_instance\n  base:\n    type: scaleway:instance:Server\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      privateNetworks:\n        - pnId: ${pn01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Root volume configuration\n\n### Resized block volume with installed image\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst image = new scaleway.instance.Server(\"image\", {\n    type: \"PRO2-XXS\",\n    image: \"ubuntu_jammy\",\n    rootVolume: {\n        sizeInGb: 100,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nimage = scaleway.instance.Server(\"image\",\n    type=\"PRO2-XXS\",\n    image=\"ubuntu_jammy\",\n    root_volume={\n        \"size_in_gb\": 100,\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 image = new Scaleway.Instance.Server(\"image\", new()\n    {\n        Type = \"PRO2-XXS\",\n        Image = \"ubuntu_jammy\",\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            SizeInGb = 100,\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewServer(ctx, \"image\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"PRO2-XXS\"),\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tSizeInGb: pulumi.Int(100),\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.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\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 image = new Server(\"image\", ServerArgs.builder()\n            .type(\"PRO2-XXS\")\n            .image(\"ubuntu_jammy\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .sizeInGb(100)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  image:\n    type: scaleway:instance:Server\n    properties:\n      type: PRO2-XXS\n      image: ubuntu_jammy\n      rootVolume:\n        sizeInGb: 100\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### From snapshot\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst snapshot = scaleway.block.getSnapshot({\n    name: \"my_snapshot\",\n});\nconst fromSnapshot = new scaleway.block.Volume(\"from_snapshot\", {\n    snapshotId: snapshot.then(snapshot =\u003e snapshot.id),\n    iops: 5000,\n});\nconst fromSnapshotServer = new scaleway.instance.Server(\"from_snapshot\", {\n    type: \"PRO2-XXS\",\n    rootVolume: {\n        volumeId: fromSnapshot.id,\n        volumeType: \"sbs_volume\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nsnapshot = scaleway.block.get_snapshot(name=\"my_snapshot\")\nfrom_snapshot = scaleway.block.Volume(\"from_snapshot\",\n    snapshot_id=snapshot.id,\n    iops=5000)\nfrom_snapshot_server = scaleway.instance.Server(\"from_snapshot\",\n    type=\"PRO2-XXS\",\n    root_volume={\n        \"volume_id\": from_snapshot.id,\n        \"volume_type\": \"sbs_volume\",\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 snapshot = Scaleway.Block.GetSnapshot.Invoke(new()\n    {\n        Name = \"my_snapshot\",\n    });\n\n    var fromSnapshot = new Scaleway.Block.Volume(\"from_snapshot\", new()\n    {\n        SnapshotId = snapshot.Apply(getSnapshotResult =\u003e getSnapshotResult.Id),\n        Iops = 5000,\n    });\n\n    var fromSnapshotServer = new Scaleway.Instance.Server(\"from_snapshot\", new()\n    {\n        Type = \"PRO2-XXS\",\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            VolumeId = fromSnapshot.Id,\n            VolumeType = \"sbs_volume\",\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/block\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsnapshot, err := block.LookupSnapshot(ctx, \u0026block.LookupSnapshotArgs{\n\t\t\tName: pulumi.StringRef(\"my_snapshot\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfromSnapshot, err := block.NewVolume(ctx, \"from_snapshot\", \u0026block.VolumeArgs{\n\t\t\tSnapshotId: pulumi.String(snapshot.Id),\n\t\t\tIops:       pulumi.Int(5000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"from_snapshot\", \u0026instance.ServerArgs{\n\t\t\tType: pulumi.String(\"PRO2-XXS\"),\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tVolumeId:   fromSnapshot.ID(),\n\t\t\t\tVolumeType: pulumi.String(\"sbs_volume\"),\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.block.BlockFunctions;\nimport com.pulumi.scaleway.block.inputs.GetSnapshotArgs;\nimport com.pulumi.scaleway.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\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 snapshot = BlockFunctions.getSnapshot(GetSnapshotArgs.builder()\n            .name(\"my_snapshot\")\n            .build());\n\n        var fromSnapshot = new Volume(\"fromSnapshot\", VolumeArgs.builder()\n            .snapshotId(snapshot.id())\n            .iops(5000)\n            .build());\n\n        var fromSnapshotServer = new Server(\"fromSnapshotServer\", ServerArgs.builder()\n            .type(\"PRO2-XXS\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .volumeId(fromSnapshot.id())\n                .volumeType(\"sbs_volume\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fromSnapshot:\n    type: scaleway:block:Volume\n    name: from_snapshot\n    properties:\n      snapshotId: ${snapshot.id}\n      iops: 5000\n  fromSnapshotServer:\n    type: scaleway:instance:Server\n    name: from_snapshot\n    properties:\n      type: PRO2-XXS\n      rootVolume:\n        volumeId: ${fromSnapshot.id}\n        volumeType: sbs_volume\nvariables:\n  snapshot:\n    fn::invoke:\n      function: scaleway:block:getSnapshot\n      arguments:\n        name: my_snapshot\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Scaleway Block Storage (SBS) volume\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.instance.Server(\"server\", {\n    type: \"PLAY2-MICRO\",\n    image: \"ubuntu_jammy\",\n    rootVolume: {\n        volumeType: \"sbs_volume\",\n        sbsIops: 15000,\n        sizeInGb: 50,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver = scaleway.instance.Server(\"server\",\n    type=\"PLAY2-MICRO\",\n    image=\"ubuntu_jammy\",\n    root_volume={\n        \"volume_type\": \"sbs_volume\",\n        \"sbs_iops\": 15000,\n        \"size_in_gb\": 50,\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 server = new Scaleway.Instance.Server(\"server\", new()\n    {\n        Type = \"PLAY2-MICRO\",\n        Image = \"ubuntu_jammy\",\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            VolumeType = \"sbs_volume\",\n            SbsIops = 15000,\n            SizeInGb = 50,\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewServer(ctx, \"server\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"PLAY2-MICRO\"),\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tVolumeType: pulumi.String(\"sbs_volume\"),\n\t\t\t\tSbsIops:    pulumi.Int(15000),\n\t\t\t\tSizeInGb:   pulumi.Int(50),\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.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\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 Server(\"server\", ServerArgs.builder()\n            .type(\"PLAY2-MICRO\")\n            .image(\"ubuntu_jammy\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .volumeType(\"sbs_volume\")\n                .sbsIops(15000)\n                .sizeInGb(50)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  server:\n    type: scaleway:instance:Server\n    properties:\n      type: PLAY2-MICRO\n      image: ubuntu_jammy\n      rootVolume:\n        volumeType: sbs_volume\n        sbsIops: 15000\n        sizeInGb: 50\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Private Network\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e will recreate a new private network interface.\n\n- \u003cspan pulumi-lang-nodejs=\"`pnId`\" pulumi-lang-dotnet=\"`PnId`\" pulumi-lang-go=\"`pnId`\" pulumi-lang-python=\"`pn_id`\" pulumi-lang-yaml=\"`pnId`\" pulumi-lang-java=\"`pnId`\"\u003e`pn_id`\u003c/span\u003e - (Required) The private network ID where to connect.\n- \u003cspan pulumi-lang-nodejs=\"`macAddress`\" pulumi-lang-dotnet=\"`MacAddress`\" pulumi-lang-go=\"`macAddress`\" pulumi-lang-python=\"`mac_address`\" pulumi-lang-yaml=\"`macAddress`\" pulumi-lang-java=\"`macAddress`\"\u003e`mac_address`\u003c/span\u003e The private NIC MAC address.\n- \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e The private NIC state.\n- \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e - (Defaults to provider \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server must be created.\n\n\u003e **Important:** You can only attach an instance in the same zone as a private network.\n\u003e **Important:** Instance supports a maximum of 8 different private networks.\n\n## Import\n\nInstance servers can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instanceServer:InstanceServer web fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"additionalVolumeIds":{"type":"array","items":{"type":"string"},"description":"The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)\nattached to the server. Updates to this field will trigger a stop/start of the server.\n\n\u003e **Important:** If this field contains local volumes, the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n\n\u003e **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.\n"},"adminPasswordEncryptionSshKeyId":{"type":"string","description":"The ID of the SSH RSA key that will be used to encrypt the initial admin password for OS requiring it.\nMandatory for Windows OS. The\u003cspan pulumi-lang-nodejs=\" publicKey \" pulumi-lang-dotnet=\" PublicKey \" pulumi-lang-go=\" publicKey \" pulumi-lang-python=\" public_key \" pulumi-lang-yaml=\" publicKey \" pulumi-lang-java=\" publicKey \"\u003e public_key \u003c/span\u003evalue of this key is used to encrypt the admin password.\nWhen set to an empty string, it resets this value and\u003cspan pulumi-lang-nodejs=\" adminPasswordEncryptedValue \" pulumi-lang-dotnet=\" AdminPasswordEncryptedValue \" pulumi-lang-go=\" adminPasswordEncryptedValue \" pulumi-lang-python=\" admin_password_encrypted_value \" pulumi-lang-yaml=\" adminPasswordEncryptedValue \" pulumi-lang-java=\" adminPasswordEncryptedValue \"\u003e admin_password_encrypted_value \u003c/span\u003eto an empty string so a new password may be generated.\n"},"bootType":{"type":"string","description":"The boot Type of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bootscript`\" pulumi-lang-dotnet=\"`Bootscript`\" pulumi-lang-go=\"`bootscript`\" pulumi-lang-python=\"`bootscript`\" pulumi-lang-yaml=\"`bootscript`\" pulumi-lang-java=\"`bootscript`\"\u003e`bootscript`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`rescue`\" pulumi-lang-dotnet=\"`Rescue`\" pulumi-lang-go=\"`rescue`\" pulumi-lang-python=\"`rescue`\" pulumi-lang-yaml=\"`rescue`\" pulumi-lang-java=\"`rescue`\"\u003e`rescue`\u003c/span\u003e.\n"},"bootscriptId":{"type":"string","description":"ID of the target bootscript (set\u003cspan pulumi-lang-nodejs=\" bootType \" pulumi-lang-dotnet=\" BootType \" pulumi-lang-go=\" bootType \" pulumi-lang-python=\" boot_type \" pulumi-lang-yaml=\" bootType \" pulumi-lang-java=\" bootType \"\u003e boot_type \u003c/span\u003eto bootscript)","deprecationMessage":"bootscript is not supported anymore."},"cloudInit":{"type":"string","description":"The cloud init script associated with this server"},"enableDynamicIp":{"type":"boolean","description":"If true a dynamic IP will be attached to the server.\n"},"filesystems":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerFilesystem:InstanceServerFilesystem"},"description":"List of filesystems attached to the server.\n"},"image":{"type":"string","description":"The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)\nto find either the right \u003cspan pulumi-lang-nodejs=\"`label`\" pulumi-lang-dotnet=\"`Label`\" pulumi-lang-go=\"`label`\" pulumi-lang-python=\"`label`\" pulumi-lang-yaml=\"`label`\" pulumi-lang-java=\"`label`\"\u003e`label`\u003c/span\u003e or the right local image `ID` for a given \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n\nTo obtain a local-image UUID from a label, please use: ```scw marketplace local-image list image-label=\u003cLABEL\u003e```\n"},"ipId":{"type":"string","description":"The ID of the reserved IP that is attached to the server.\n"},"ipIds":{"type":"array","items":{"type":"string"},"description":"List of ID of reserved IPs that are attached to the server. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e.\n\n\u003e \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e migration: if moving the ip from the old \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e field to the new \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e, it should not detach the ip.\n"},"name":{"type":"string","description":"The name of the server.\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"placementGroupId":{"type":"string","description":"The [placement group](\u003chttps://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group\u003e the server is attached to.\n\n\u003e **Important:** When updating \u003cspan pulumi-lang-nodejs=\"`placementGroupId`\" pulumi-lang-dotnet=\"`PlacementGroupId`\" pulumi-lang-go=\"`placementGroupId`\" pulumi-lang-python=\"`placement_group_id`\" pulumi-lang-yaml=\"`placementGroupId`\" pulumi-lang-java=\"`placementGroupId`\"\u003e`placement_group_id`\u003c/span\u003e the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n"},"placementGroupPolicyRespected":{"type":"boolean","description":"(Deprecated) Always false, use\u003cspan pulumi-lang-nodejs=\" instancePlacementGroup \" pulumi-lang-dotnet=\" InstancePlacementGroup \" pulumi-lang-go=\" instancePlacementGroup \" pulumi-lang-python=\" instance_placement_group \" pulumi-lang-yaml=\" instancePlacementGroup \" pulumi-lang-java=\" instancePlacementGroup \"\u003e instance_placement_group \u003c/span\u003eresource to known when the placement group policy is respected.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerPrivateIp:InstanceServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerPrivateNetwork:InstanceServerPrivateNetwork"},"description":"The private network associated with the server.\nUse the \u003cspan pulumi-lang-nodejs=\"`pnId`\" pulumi-lang-dotnet=\"`PnId`\" pulumi-lang-go=\"`pnId`\" pulumi-lang-python=\"`pn_id`\" pulumi-lang-yaml=\"`pnId`\" pulumi-lang-java=\"`pnId`\"\u003e`pn_id`\u003c/span\u003e key to attach a \u003cspan pulumi-lang-nodejs=\"[privateNetwork]\" pulumi-lang-dotnet=\"[PrivateNetwork]\" pulumi-lang-go=\"[privateNetwork]\" pulumi-lang-python=\"[private_network]\" pulumi-lang-yaml=\"[privateNetwork]\" pulumi-lang-java=\"[privateNetwork]\"\u003e[private_network]\u003c/span\u003e(https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n"},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"publicIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerPublicIp:InstanceServerPublicIp"},"description":"The list of public IPs of the server.\n"},"replaceOnTypeChange":{"type":"boolean","description":"If true, the server will be replaced if \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is changed. Otherwise, the server will migrate.\n"},"rootVolume":{"$ref":"#/types/scaleway:index/InstanceServerRootVolume:InstanceServerRootVolume","description":"Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.\n"},"securityGroupId":{"type":"string","description":"The security group the server is attached to"},"state":{"type":"string","description":"The state of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`started`\" pulumi-lang-dotnet=\"`Started`\" pulumi-lang-go=\"`started`\" pulumi-lang-python=\"`started`\" pulumi-lang-yaml=\"`started`\" pulumi-lang-java=\"`started`\"\u003e`started`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`standby`\" pulumi-lang-dotnet=\"`Standby`\" pulumi-lang-go=\"`standby`\" pulumi-lang-python=\"`standby`\" pulumi-lang-yaml=\"`standby`\" pulumi-lang-java=\"`standby`\"\u003e`standby`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"type":{"type":"string","description":"The commercial type of the server.\nYou find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).\nUpdates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).\nUse \u003cspan pulumi-lang-nodejs=\"`replaceOnTypeChange`\" pulumi-lang-dotnet=\"`ReplaceOnTypeChange`\" pulumi-lang-go=\"`replaceOnTypeChange`\" pulumi-lang-python=\"`replace_on_type_change`\" pulumi-lang-yaml=\"`replaceOnTypeChange`\" pulumi-lang-java=\"`replaceOnTypeChange`\"\u003e`replace_on_type_change`\u003c/span\u003e to trigger replacement instead of migration.\n\n\u003e **Important:** If \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.\n"},"userData":{"type":"object","additionalProperties":{"type":"string"},"description":"The user data associated with the server.\nUse the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n- Binary files using filebase64.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n"}},"required":["bootscriptId","cloudInit","filesystems","name","organizationId","placementGroupPolicyRespected","privateIps","projectId","publicIps","rootVolume","securityGroupId","state","type","userData"],"inputProperties":{"additionalVolumeIds":{"type":"array","items":{"type":"string"},"description":"The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)\nattached to the server. Updates to this field will trigger a stop/start of the server.\n\n\u003e **Important:** If this field contains local volumes, the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n\n\u003e **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.\n"},"adminPasswordEncryptionSshKeyId":{"type":"string","description":"The ID of the SSH RSA key that will be used to encrypt the initial admin password for OS requiring it.\nMandatory for Windows OS. The\u003cspan pulumi-lang-nodejs=\" publicKey \" pulumi-lang-dotnet=\" PublicKey \" pulumi-lang-go=\" publicKey \" pulumi-lang-python=\" public_key \" pulumi-lang-yaml=\" publicKey \" pulumi-lang-java=\" publicKey \"\u003e public_key \u003c/span\u003evalue of this key is used to encrypt the admin password.\nWhen set to an empty string, it resets this value and\u003cspan pulumi-lang-nodejs=\" adminPasswordEncryptedValue \" pulumi-lang-dotnet=\" AdminPasswordEncryptedValue \" pulumi-lang-go=\" adminPasswordEncryptedValue \" pulumi-lang-python=\" admin_password_encrypted_value \" pulumi-lang-yaml=\" adminPasswordEncryptedValue \" pulumi-lang-java=\" adminPasswordEncryptedValue \"\u003e admin_password_encrypted_value \u003c/span\u003eto an empty string so a new password may be generated.\n"},"bootType":{"type":"string","description":"The boot Type of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bootscript`\" pulumi-lang-dotnet=\"`Bootscript`\" pulumi-lang-go=\"`bootscript`\" pulumi-lang-python=\"`bootscript`\" pulumi-lang-yaml=\"`bootscript`\" pulumi-lang-java=\"`bootscript`\"\u003e`bootscript`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`rescue`\" pulumi-lang-dotnet=\"`Rescue`\" pulumi-lang-go=\"`rescue`\" pulumi-lang-python=\"`rescue`\" pulumi-lang-yaml=\"`rescue`\" pulumi-lang-java=\"`rescue`\"\u003e`rescue`\u003c/span\u003e.\n"},"bootscriptId":{"type":"string","description":"ID of the target bootscript (set\u003cspan pulumi-lang-nodejs=\" bootType \" pulumi-lang-dotnet=\" BootType \" pulumi-lang-go=\" bootType \" pulumi-lang-python=\" boot_type \" pulumi-lang-yaml=\" bootType \" pulumi-lang-java=\" bootType \"\u003e boot_type \u003c/span\u003eto bootscript)","deprecationMessage":"bootscript is not supported anymore."},"cloudInit":{"type":"string","description":"The cloud init script associated with this server"},"enableDynamicIp":{"type":"boolean","description":"If true a dynamic IP will be attached to the server.\n"},"filesystems":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerFilesystem:InstanceServerFilesystem"},"description":"List of filesystems attached to the server.\n"},"image":{"type":"string","description":"The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)\nto find either the right \u003cspan pulumi-lang-nodejs=\"`label`\" pulumi-lang-dotnet=\"`Label`\" pulumi-lang-go=\"`label`\" pulumi-lang-python=\"`label`\" pulumi-lang-yaml=\"`label`\" pulumi-lang-java=\"`label`\"\u003e`label`\u003c/span\u003e or the right local image `ID` for a given \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n\nTo obtain a local-image UUID from a label, please use: ```scw marketplace local-image list image-label=\u003cLABEL\u003e```\n"},"ipId":{"type":"string","description":"The ID of the reserved IP that is attached to the server.\n"},"ipIds":{"type":"array","items":{"type":"string"},"description":"List of ID of reserved IPs that are attached to the server. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e.\n\n\u003e \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e migration: if moving the ip from the old \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e field to the new \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e, it should not detach the ip.\n"},"name":{"type":"string","description":"The name of the server.\n"},"placementGroupId":{"type":"string","description":"The [placement group](\u003chttps://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group\u003e the server is attached to.\n\n\u003e **Important:** When updating \u003cspan pulumi-lang-nodejs=\"`placementGroupId`\" pulumi-lang-dotnet=\"`PlacementGroupId`\" pulumi-lang-go=\"`placementGroupId`\" pulumi-lang-python=\"`placement_group_id`\" pulumi-lang-yaml=\"`placementGroupId`\" pulumi-lang-java=\"`placementGroupId`\"\u003e`placement_group_id`\u003c/span\u003e the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerPrivateIp:InstanceServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerPrivateNetwork:InstanceServerPrivateNetwork"},"description":"The private network associated with the server.\nUse the \u003cspan pulumi-lang-nodejs=\"`pnId`\" pulumi-lang-dotnet=\"`PnId`\" pulumi-lang-go=\"`pnId`\" pulumi-lang-python=\"`pn_id`\" pulumi-lang-yaml=\"`pnId`\" pulumi-lang-java=\"`pnId`\"\u003e`pn_id`\u003c/span\u003e key to attach a \u003cspan pulumi-lang-nodejs=\"[privateNetwork]\" pulumi-lang-dotnet=\"[PrivateNetwork]\" pulumi-lang-go=\"[privateNetwork]\" pulumi-lang-python=\"[private_network]\" pulumi-lang-yaml=\"[privateNetwork]\" pulumi-lang-java=\"[privateNetwork]\"\u003e[private_network]\u003c/span\u003e(https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"publicIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerPublicIp:InstanceServerPublicIp"},"description":"The list of public IPs of the server.\n"},"replaceOnTypeChange":{"type":"boolean","description":"If true, the server will be replaced if \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is changed. Otherwise, the server will migrate.\n"},"rootVolume":{"$ref":"#/types/scaleway:index/InstanceServerRootVolume:InstanceServerRootVolume","description":"Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.\n"},"securityGroupId":{"type":"string","description":"The security group the server is attached to"},"state":{"type":"string","description":"The state of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`started`\" pulumi-lang-dotnet=\"`Started`\" pulumi-lang-go=\"`started`\" pulumi-lang-python=\"`started`\" pulumi-lang-yaml=\"`started`\" pulumi-lang-java=\"`started`\"\u003e`started`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`standby`\" pulumi-lang-dotnet=\"`Standby`\" pulumi-lang-go=\"`standby`\" pulumi-lang-python=\"`standby`\" pulumi-lang-yaml=\"`standby`\" pulumi-lang-java=\"`standby`\"\u003e`standby`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"type":{"type":"string","description":"The commercial type of the server.\nYou find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).\nUpdates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).\nUse \u003cspan pulumi-lang-nodejs=\"`replaceOnTypeChange`\" pulumi-lang-dotnet=\"`ReplaceOnTypeChange`\" pulumi-lang-go=\"`replaceOnTypeChange`\" pulumi-lang-python=\"`replace_on_type_change`\" pulumi-lang-yaml=\"`replaceOnTypeChange`\" pulumi-lang-java=\"`replaceOnTypeChange`\"\u003e`replace_on_type_change`\u003c/span\u003e to trigger replacement instead of migration.\n\n\u003e **Important:** If \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.\n"},"userData":{"type":"object","additionalProperties":{"type":"string"},"description":"The user data associated with the server.\nUse the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n- Binary files using filebase64.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceServer resources.\n","properties":{"additionalVolumeIds":{"type":"array","items":{"type":"string"},"description":"The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)\nattached to the server. Updates to this field will trigger a stop/start of the server.\n\n\u003e **Important:** If this field contains local volumes, the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n\n\u003e **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.\n"},"adminPasswordEncryptionSshKeyId":{"type":"string","description":"The ID of the SSH RSA key that will be used to encrypt the initial admin password for OS requiring it.\nMandatory for Windows OS. The\u003cspan pulumi-lang-nodejs=\" publicKey \" pulumi-lang-dotnet=\" PublicKey \" pulumi-lang-go=\" publicKey \" pulumi-lang-python=\" public_key \" pulumi-lang-yaml=\" publicKey \" pulumi-lang-java=\" publicKey \"\u003e public_key \u003c/span\u003evalue of this key is used to encrypt the admin password.\nWhen set to an empty string, it resets this value and\u003cspan pulumi-lang-nodejs=\" adminPasswordEncryptedValue \" pulumi-lang-dotnet=\" AdminPasswordEncryptedValue \" pulumi-lang-go=\" adminPasswordEncryptedValue \" pulumi-lang-python=\" admin_password_encrypted_value \" pulumi-lang-yaml=\" adminPasswordEncryptedValue \" pulumi-lang-java=\" adminPasswordEncryptedValue \"\u003e admin_password_encrypted_value \u003c/span\u003eto an empty string so a new password may be generated.\n"},"bootType":{"type":"string","description":"The boot Type of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bootscript`\" pulumi-lang-dotnet=\"`Bootscript`\" pulumi-lang-go=\"`bootscript`\" pulumi-lang-python=\"`bootscript`\" pulumi-lang-yaml=\"`bootscript`\" pulumi-lang-java=\"`bootscript`\"\u003e`bootscript`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`rescue`\" pulumi-lang-dotnet=\"`Rescue`\" pulumi-lang-go=\"`rescue`\" pulumi-lang-python=\"`rescue`\" pulumi-lang-yaml=\"`rescue`\" pulumi-lang-java=\"`rescue`\"\u003e`rescue`\u003c/span\u003e.\n"},"bootscriptId":{"type":"string","description":"ID of the target bootscript (set\u003cspan pulumi-lang-nodejs=\" bootType \" pulumi-lang-dotnet=\" BootType \" pulumi-lang-go=\" bootType \" pulumi-lang-python=\" boot_type \" pulumi-lang-yaml=\" bootType \" pulumi-lang-java=\" bootType \"\u003e boot_type \u003c/span\u003eto bootscript)","deprecationMessage":"bootscript is not supported anymore."},"cloudInit":{"type":"string","description":"The cloud init script associated with this server"},"enableDynamicIp":{"type":"boolean","description":"If true a dynamic IP will be attached to the server.\n"},"filesystems":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerFilesystem:InstanceServerFilesystem"},"description":"List of filesystems attached to the server.\n"},"image":{"type":"string","description":"The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)\nto find either the right \u003cspan pulumi-lang-nodejs=\"`label`\" pulumi-lang-dotnet=\"`Label`\" pulumi-lang-go=\"`label`\" pulumi-lang-python=\"`label`\" pulumi-lang-yaml=\"`label`\" pulumi-lang-java=\"`label`\"\u003e`label`\u003c/span\u003e or the right local image `ID` for a given \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n\nTo obtain a local-image UUID from a label, please use: ```scw marketplace local-image list image-label=\u003cLABEL\u003e```\n"},"ipId":{"type":"string","description":"The ID of the reserved IP that is attached to the server.\n"},"ipIds":{"type":"array","items":{"type":"string"},"description":"List of ID of reserved IPs that are attached to the server. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e.\n\n\u003e \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e migration: if moving the ip from the old \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e field to the new \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e, it should not detach the ip.\n"},"name":{"type":"string","description":"The name of the server.\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"placementGroupId":{"type":"string","description":"The [placement group](\u003chttps://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group\u003e the server is attached to.\n\n\u003e **Important:** When updating \u003cspan pulumi-lang-nodejs=\"`placementGroupId`\" pulumi-lang-dotnet=\"`PlacementGroupId`\" pulumi-lang-go=\"`placementGroupId`\" pulumi-lang-python=\"`placement_group_id`\" pulumi-lang-yaml=\"`placementGroupId`\" pulumi-lang-java=\"`placementGroupId`\"\u003e`placement_group_id`\u003c/span\u003e the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n"},"placementGroupPolicyRespected":{"type":"boolean","description":"(Deprecated) Always false, use\u003cspan pulumi-lang-nodejs=\" instancePlacementGroup \" pulumi-lang-dotnet=\" InstancePlacementGroup \" pulumi-lang-go=\" instancePlacementGroup \" pulumi-lang-python=\" instance_placement_group \" pulumi-lang-yaml=\" instancePlacementGroup \" pulumi-lang-java=\" instancePlacementGroup \"\u003e instance_placement_group \u003c/span\u003eresource to known when the placement group policy is respected.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerPrivateIp:InstanceServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerPrivateNetwork:InstanceServerPrivateNetwork"},"description":"The private network associated with the server.\nUse the \u003cspan pulumi-lang-nodejs=\"`pnId`\" pulumi-lang-dotnet=\"`PnId`\" pulumi-lang-go=\"`pnId`\" pulumi-lang-python=\"`pn_id`\" pulumi-lang-yaml=\"`pnId`\" pulumi-lang-java=\"`pnId`\"\u003e`pn_id`\u003c/span\u003e key to attach a \u003cspan pulumi-lang-nodejs=\"[privateNetwork]\" pulumi-lang-dotnet=\"[PrivateNetwork]\" pulumi-lang-go=\"[privateNetwork]\" pulumi-lang-python=\"[private_network]\" pulumi-lang-yaml=\"[privateNetwork]\" pulumi-lang-java=\"[privateNetwork]\"\u003e[private_network]\u003c/span\u003e(https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"publicIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/InstanceServerPublicIp:InstanceServerPublicIp"},"description":"The list of public IPs of the server.\n"},"replaceOnTypeChange":{"type":"boolean","description":"If true, the server will be replaced if \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is changed. Otherwise, the server will migrate.\n"},"rootVolume":{"$ref":"#/types/scaleway:index/InstanceServerRootVolume:InstanceServerRootVolume","description":"Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.\n"},"securityGroupId":{"type":"string","description":"The security group the server is attached to"},"state":{"type":"string","description":"The state of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`started`\" pulumi-lang-dotnet=\"`Started`\" pulumi-lang-go=\"`started`\" pulumi-lang-python=\"`started`\" pulumi-lang-yaml=\"`started`\" pulumi-lang-java=\"`started`\"\u003e`started`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`standby`\" pulumi-lang-dotnet=\"`Standby`\" pulumi-lang-go=\"`standby`\" pulumi-lang-python=\"`standby`\" pulumi-lang-yaml=\"`standby`\" pulumi-lang-java=\"`standby`\"\u003e`standby`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"type":{"type":"string","description":"The commercial type of the server.\nYou find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).\nUpdates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).\nUse \u003cspan pulumi-lang-nodejs=\"`replaceOnTypeChange`\" pulumi-lang-dotnet=\"`ReplaceOnTypeChange`\" pulumi-lang-go=\"`replaceOnTypeChange`\" pulumi-lang-python=\"`replace_on_type_change`\" pulumi-lang-yaml=\"`replaceOnTypeChange`\" pulumi-lang-java=\"`replaceOnTypeChange`\"\u003e`replace_on_type_change`\u003c/span\u003e to trigger replacement instead of migration.\n\n\u003e **Important:** If \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.\n"},"userData":{"type":"object","additionalProperties":{"type":"string"},"description":"The user data associated with the server.\nUse the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n- Binary files using filebase64.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/instanceserver.InstanceServer has been deprecated in favor of scaleway.instance/server.Server"},"scaleway:index/instanceSnapshot:InstanceSnapshot":{"description":"Creates and manages Scaleway Compute Snapshots.\nFor more information,\nsee the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-snapshots-list-snapshots).\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.instance.Snapshot(\"main\", {\n    name: \"some-snapshot-name\",\n    volumeId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.instance.Snapshot(\"main\",\n    name=\"some-snapshot-name\",\n    volume_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 main = new Scaleway.Instance.Snapshot(\"main\", new()\n    {\n        Name = \"some-snapshot-name\",\n        VolumeId = \"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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewSnapshot(ctx, \"main\", \u0026instance.SnapshotArgs{\n\t\t\tName:     pulumi.String(\"some-snapshot-name\"),\n\t\t\tVolumeId: 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.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\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 Snapshot(\"main\", SnapshotArgs.builder()\n            .name(\"some-snapshot-name\")\n            .volumeId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:instance:Snapshot\n    properties:\n      name: some-snapshot-name\n      volumeId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with Unified type snapshot\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.instance.Volume(\"main\", {\n    type: \"l_ssd\",\n    sizeInGb: 10,\n});\nconst mainServer = new scaleway.instance.Server(\"main\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    rootVolume: {\n        sizeInGb: 10,\n        volumeType: \"l_ssd\",\n    },\n    additionalVolumeIds: [main.id],\n});\nconst mainSnapshot = new scaleway.instance.Snapshot(\"main\", {volumeId: main.id}, {\n    dependsOn: [mainServer],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.instance.Volume(\"main\",\n    type=\"l_ssd\",\n    size_in_gb=10)\nmain_server = scaleway.instance.Server(\"main\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    root_volume={\n        \"size_in_gb\": 10,\n        \"volume_type\": \"l_ssd\",\n    },\n    additional_volume_ids=[main.id])\nmain_snapshot = scaleway.instance.Snapshot(\"main\", volume_id=main.id,\nopts = pulumi.ResourceOptions(depends_on=[main_server]))\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.Instance.Volume(\"main\", new()\n    {\n        Type = \"l_ssd\",\n        SizeInGb = 10,\n    });\n\n    var mainServer = new Scaleway.Instance.Server(\"main\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            SizeInGb = 10,\n            VolumeType = \"l_ssd\",\n        },\n        AdditionalVolumeIds = new[]\n        {\n            main.Id,\n        },\n    });\n\n    var mainSnapshot = new Scaleway.Instance.Snapshot(\"main\", new()\n    {\n        VolumeId = main.Id,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            mainServer,\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := instance.NewVolume(ctx, \"main\", \u0026instance.VolumeArgs{\n\t\t\tType:     pulumi.String(\"l_ssd\"),\n\t\t\tSizeInGb: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainServer, err := instance.NewServer(ctx, \"main\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tSizeInGb:   pulumi.Int(10),\n\t\t\t\tVolumeType: pulumi.String(\"l_ssd\"),\n\t\t\t},\n\t\t\tAdditionalVolumeIds: pulumi.StringArray{\n\t\t\t\tmain.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewSnapshot(ctx, \"main\", \u0026instance.SnapshotArgs{\n\t\t\tVolumeId: main.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmainServer,\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.instance.Volume;\nimport com.pulumi.scaleway.instance.VolumeArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\nimport com.pulumi.scaleway.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var main = new Volume(\"main\", VolumeArgs.builder()\n            .type(\"l_ssd\")\n            .sizeInGb(10)\n            .build());\n\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .sizeInGb(10)\n                .volumeType(\"l_ssd\")\n                .build())\n            .additionalVolumeIds(main.id())\n            .build());\n\n        var mainSnapshot = new Snapshot(\"mainSnapshot\", SnapshotArgs.builder()\n            .volumeId(main.id())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(mainServer)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:instance:Volume\n    properties:\n      type: l_ssd\n      sizeInGb: 10\n  mainServer:\n    type: scaleway:instance:Server\n    name: main\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      rootVolume:\n        sizeInGb: 10\n        volumeType: l_ssd\n      additionalVolumeIds:\n        - ${main.id}\n  mainSnapshot:\n    type: scaleway:instance:Snapshot\n    name: main\n    properties:\n      volumeId: ${main.id}\n    options:\n      dependsOn:\n        - ${mainServer}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example importing a local qcow2 file\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst bucket = new scaleway.object.Bucket(\"bucket\", {name: \"snapshot-qcow-import\"});\nconst qcow = new scaleway.object.Item(\"qcow\", {\n    bucket: bucket.name,\n    key: \"server.qcow2\",\n    file: \"myqcow.qcow2\",\n});\nconst snapshot = new scaleway.instance.Snapshot(\"snapshot\", {\"import\": {\n    bucket: qcow.bucket,\n    key: qcow.key,\n}});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbucket = scaleway.object.Bucket(\"bucket\", name=\"snapshot-qcow-import\")\nqcow = scaleway.object.Item(\"qcow\",\n    bucket=bucket.name,\n    key=\"server.qcow2\",\n    file=\"myqcow.qcow2\")\nsnapshot = scaleway.instance.Snapshot(\"snapshot\", import_={\n    \"bucket\": qcow.bucket,\n    \"key\": qcow.key,\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 bucket = new Scaleway.Object.Bucket(\"bucket\", new()\n    {\n        Name = \"snapshot-qcow-import\",\n    });\n\n    var qcow = new Scaleway.Object.Item(\"qcow\", new()\n    {\n        Bucket = bucket.Name,\n        Key = \"server.qcow2\",\n        File = \"myqcow.qcow2\",\n    });\n\n    var snapshot = new Scaleway.Instance.Snapshot(\"snapshot\", new()\n    {\n        Import = new Scaleway.Instance.Inputs.SnapshotImportArgs\n        {\n            Bucket = qcow.Bucket,\n            Key = qcow.Key,\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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := object.NewBucket(ctx, \"bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"snapshot-qcow-import\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqcow, err := object.NewItem(ctx, \"qcow\", \u0026object.ItemArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tKey:    pulumi.String(\"server.qcow2\"),\n\t\t\tFile:   pulumi.String(\"myqcow.qcow2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewSnapshot(ctx, \"snapshot\", \u0026instance.SnapshotArgs{\n\t\t\tImport: \u0026instance.SnapshotImportArgs{\n\t\t\t\tBucket: qcow.Bucket,\n\t\t\t\tKey:    qcow.Key,\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.Item;\nimport com.pulumi.scaleway.object.ItemArgs;\nimport com.pulumi.scaleway.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\nimport com.pulumi.scaleway.instance.inputs.SnapshotImportArgs;\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 bucket = new Bucket(\"bucket\", BucketArgs.builder()\n            .name(\"snapshot-qcow-import\")\n            .build());\n\n        var qcow = new Item(\"qcow\", ItemArgs.builder()\n            .bucket(bucket.name())\n            .key(\"server.qcow2\")\n            .file(\"myqcow.qcow2\")\n            .build());\n\n        var snapshot = new Snapshot(\"snapshot\", SnapshotArgs.builder()\n            .import_(SnapshotImportArgs.builder()\n                .bucket(qcow.bucket())\n                .key(qcow.key())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: snapshot-qcow-import\n  qcow:\n    type: scaleway:object:Item\n    properties:\n      bucket: ${bucket.name}\n      key: server.qcow2\n      file: myqcow.qcow2\n  snapshot:\n    type: scaleway:instance:Snapshot\n    properties:\n      import:\n        bucket: ${qcow.bucket}\n        key: ${qcow.key}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSnapshots can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instanceSnapshot:InstanceSnapshot main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The snapshot creation time.\n"},"import":{"$ref":"#/types/scaleway:index/InstanceSnapshotImport:InstanceSnapshotImport","description":"Import a snapshot from a qcow2 file located in a bucket\n"},"name":{"type":"string","description":"The name of the snapshot. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The organization ID the snapshot is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the snapshot is\nassociated with.\n"},"sizeInGb":{"type":"integer","description":"(Optional) The size of the snapshot.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"type":{"type":"string","description":"The snapshot's volume type.  The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD).\nUpdates to this field will recreate a new resource.\n"},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe snapshot should be created.\n"}},"required":["createdAt","name","organizationId","projectId","sizeInGb","type"],"inputProperties":{"import":{"$ref":"#/types/scaleway:index/InstanceSnapshotImport:InstanceSnapshotImport","description":"Import a snapshot from a qcow2 file located in a bucket\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot. If not provided it will be randomly generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the snapshot is\nassociated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"type":{"type":"string","description":"The snapshot's volume type.  The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD).\nUpdates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe snapshot should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering InstanceSnapshot resources.\n","properties":{"createdAt":{"type":"string","description":"The snapshot creation time.\n"},"import":{"$ref":"#/types/scaleway:index/InstanceSnapshotImport:InstanceSnapshotImport","description":"Import a snapshot from a qcow2 file located in a bucket\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The organization ID the snapshot is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the snapshot is\nassociated with.\n","willReplaceOnChanges":true},"sizeInGb":{"type":"integer","description":"(Optional) The size of the snapshot.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"type":{"type":"string","description":"The snapshot's volume type.  The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD).\nUpdates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe snapshot should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/instancesnapshot.InstanceSnapshot has been deprecated in favor of scaleway.instance/snapshot.Snapshot"},"scaleway:index/instanceUserData:InstanceUserData":{"description":"Creates and manages Scaleway compute Instance User Data values.\n\nUser data is a key value store API you can use to provide data from and to your server without authentication. It is the mechanism by which a user can pass information contained in a local file to an Instance at launch time.\n\nThe typical use case is to pass something like a shell script or a configuration file as user data.\n\nFor more information about \u003cspan pulumi-lang-nodejs=\"[userData]\" pulumi-lang-dotnet=\"[UserData]\" pulumi-lang-go=\"[userData]\" pulumi-lang-python=\"[user_data]\" pulumi-lang-yaml=\"[userData]\" pulumi-lang-java=\"[userData]\"\u003e[user_data]\u003c/span\u003e(https://www.scaleway.com/en/developers/api/instance/#path-user-data-list-user-data) check [our documentation guide](https://www.scaleway.com/en/docs/compute/instances/how-to/use-boot-modes/#how-to-use-cloud-init).\n\nAbout cloud-init documentation please check [the official documentation](https://cloudinit.readthedocs.io/en/latest/).\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 config = new pulumi.Config();\nconst userData = config.getObject\u003cRecord\u003cstring, any\u003e\u003e(\"userData\") || {\n    \"cloud-init\": `#cloud-config\napt-update: true\napt-upgrade: true\n`,\n    foo: \"bar\",\n};\nconst mainServer = new scaleway.instance.Server(\"main\", {\n    image: \"ubuntu_focal\",\n    type: \"DEV1-S\",\n});\n// User data with a single value\nconst main = new scaleway.instance.UserData(\"main\", {\n    serverId: mainServer.id,\n    key: \"foo\",\n    value: \"bar\",\n});\n// User Data with many keys.\nconst data: scaleway.instance.UserData[] = [];\nfor (const range of Object.entries(userData).map(([k, v]) =\u003e ({key: k, value: v}))) {\n    data.push(new scaleway.instance.UserData(`data-${range.key}`, {\n        serverId: mainServer.id,\n        key: range.key,\n        value: range.value,\n    }));\n}\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\nuser_data = config.get_object(\"userData\")\nif user_data is None:\n    user_data = {\n        \"cloud-init\": \"\"\"#cloud-config\napt-update: true\napt-upgrade: true\n\"\"\",\n        \"foo\": \"bar\",\n    }\nmain_server = scaleway.instance.Server(\"main\",\n    image=\"ubuntu_focal\",\n    type=\"DEV1-S\")\n# User data with a single value\nmain = scaleway.instance.UserData(\"main\",\n    server_id=main_server.id,\n    key=\"foo\",\n    value=\"bar\")\n# User Data with many keys.\ndata = []\nfor range in [{\"key\": k, \"value\": v} for [k, v] in enumerate(user_data)]:\n    data.append(scaleway.instance.UserData(f\"data-{range['key']}\",\n        server_id=main_server.id,\n        key=range[\"key\"],\n        value=range[\"value\"]))\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 config = new Config();\n    var userData = config.GetObject\u003cDictionary\u003cstring, dynamic\u003e\u003e(\"userData\") ?? \n    {\n        { \"cloud-init\", @\"#cloud-config\napt-update: true\napt-upgrade: true\n\" },\n        { \"foo\", \"bar\" },\n    };\n    var mainServer = new Scaleway.Instance.Server(\"main\", new()\n    {\n        Image = \"ubuntu_focal\",\n        Type = \"DEV1-S\",\n    });\n\n    // User data with a single value\n    var main = new Scaleway.Instance.UserData(\"main\", new()\n    {\n        ServerId = mainServer.Id,\n        Key = \"foo\",\n        Value = \"bar\",\n    });\n\n    // User Data with many keys.\n    var data = new List\u003cScaleway.Instance.UserData\u003e();\n    foreach (var range in userData.Select(pair =\u003e new { pair.Key, pair.Value }))\n    {\n        data.Add(new Scaleway.Instance.UserData($\"data-{range.Key}\", new()\n        {\n            ServerId = mainServer.Id,\n            Key = range.Key,\n            Value = range.Value,\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tuserData := map[string]interface{}{\n\t\t\t\"cloud-init\": \"#cloud-config\\napt-update: true\\napt-upgrade: true\\n\",\n\t\t\t\"foo\":        \"bar\",\n\t\t}\n\t\tif param := cfg.GetObject(\"userData\"); param != nil {\n\t\t\tuserData = param\n\t\t}\n\t\tmainServer, err := instance.NewServer(ctx, \"main\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_focal\"),\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\t// User data with a single value\n\t\t_, err = instance.NewUserData(ctx, \"main\", \u0026instance.UserDataArgs{\n\t\t\tServerId: mainServer.ID(),\n\t\t\tKey:      pulumi.String(\"foo\"),\n\t\t\tValue:    pulumi.String(\"bar\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// User Data with many keys.\n\t\tvar data []*instance.UserData\n\t\tfor key0, val0 := range userData {\n\t\t\t__res, err := instance.NewUserData(ctx, fmt.Sprintf(\"data-%v\", key0), \u0026instance.UserDataArgs{\n\t\t\t\tServerId: mainServer.ID(),\n\t\t\t\tKey:      pulumi.String(key0),\n\t\t\t\tValue:    pulumi.Any(val0),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdata = append(data, __res)\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.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.UserData;\nimport com.pulumi.scaleway.instance.UserDataArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var userData = config.get(\"userData\").orElse(Map.ofEntries(\n            Map.entry(\"cloud-init\", \"\"\"\n#cloud-config\napt-update: true\napt-upgrade: true\n            \"\"\"),\n            Map.entry(\"foo\", \"bar\")\n        ));\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .image(\"ubuntu_focal\")\n            .type(\"DEV1-S\")\n            .build());\n\n        // User data with a single value\n        var main = new UserData(\"main\", UserDataArgs.builder()\n            .serverId(mainServer.id())\n            .key(\"foo\")\n            .value(\"bar\")\n            .build());\n\n        // User Data with many keys.\n        for (var range : KeyedValue.of(userData)) {\n            new UserData(\"data-\" + range.key(), UserDataArgs.builder()\n                .serverId(mainServer.id())\n                .key(range.key())\n                .value(range.value())\n                .build());\n        }\n\n    }\n}\n```\n```yaml\nconfiguration:\n  userData:\n    type: map(dynamic)\n    default:\n      cloud-init: |\n        #cloud-config\n        apt-update: true\n        apt-upgrade: true\n      foo: bar\nresources:\n  # User data with a single value\n  main:\n    type: scaleway:instance:UserData\n    properties:\n      serverId: ${mainServer.id}\n      key: foo\n      value: bar\n  # User Data with many keys.\n  data:\n    type: scaleway:instance:UserData\n    properties:\n      serverId: ${mainServer.id}\n      key: ${range.key}\n      value: ${range.value}\n    options: {}\n  mainServer:\n    type: scaleway:instance:Server\n    name: main\n    properties:\n      image: ubuntu_focal\n      type: DEV1-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUser data can be imported using the `{zone}/{key}/{server_id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instanceUserData:InstanceUserData main fr-par-1/cloud-init/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"key":{"type":"string","description":"Key of the user data.\n"},"serverId":{"type":"string","description":"The ID of the server associated with.\n"},"value":{"type":"string","description":"Value associated with your key\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n\n\u003e **Important:**   Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n"}},"required":["key","serverId","value"],"inputProperties":{"key":{"type":"string","description":"Key of the user data.\n"},"serverId":{"type":"string","description":"The ID of the server associated with.\n"},"value":{"type":"string","description":"Value associated with your key\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n\n\u003e **Important:**   Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n","willReplaceOnChanges":true}},"requiredInputs":["key","serverId","value"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceUserData resources.\n","properties":{"key":{"type":"string","description":"Key of the user data.\n"},"serverId":{"type":"string","description":"The ID of the server associated with.\n"},"value":{"type":"string","description":"Value associated with your key\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n\n\u003e **Important:**   Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/instanceuserdata.InstanceUserData has been deprecated in favor of scaleway.instance/userdata.UserData"},"scaleway:index/instanceVolume:InstanceVolume":{"description":"Creates and manages Scaleway compute Instance Volumes.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-volumes-list-volumes).\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 serverVolume = new scaleway.instance.Volume(\"server_volume\", {\n    type: \"l_ssd\",\n    name: \"some-volume-name\",\n    sizeInGb: 20,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver_volume = scaleway.instance.Volume(\"server_volume\",\n    type=\"l_ssd\",\n    name=\"some-volume-name\",\n    size_in_gb=20)\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 serverVolume = new Scaleway.Instance.Volume(\"server_volume\", new()\n    {\n        Type = \"l_ssd\",\n        Name = \"some-volume-name\",\n        SizeInGb = 20,\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewVolume(ctx, \"server_volume\", \u0026instance.VolumeArgs{\n\t\t\tType:     pulumi.String(\"l_ssd\"),\n\t\t\tName:     pulumi.String(\"some-volume-name\"),\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\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.instance.Volume;\nimport com.pulumi.scaleway.instance.VolumeArgs;\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 serverVolume = new Volume(\"serverVolume\", VolumeArgs.builder()\n            .type(\"l_ssd\")\n            .name(\"some-volume-name\")\n            .sizeInGb(20)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  serverVolume:\n    type: scaleway:instance:Volume\n    name: server_volume\n    properties:\n      type: l_ssd\n      name: some-volume-name\n      sizeInGb: 20\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nvolumes can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/instanceVolume:InstanceVolume server_volume fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"fromSnapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n"},"migrateToSbs":{"type":"boolean","description":"If true, consider that this volume may have been migrated and no longer exists."},"name":{"type":"string","description":"The name of the volume. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The organization ID the volume is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the volume is associated with.\n"},"serverId":{"type":"string","description":"The id of the associated server.\n"},"sizeInGb":{"type":"integer","description":"The size of the volume. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n\n\u003e **Important:** It is not possible to resize local and scratch volumes. Updates to this field will recreate the resource.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"type":{"type":"string","description":"The type of the volume. The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD), \u003cspan pulumi-lang-nodejs=\"`scratch`\" pulumi-lang-dotnet=\"`Scratch`\" pulumi-lang-go=\"`scratch`\" pulumi-lang-python=\"`scratch`\" pulumi-lang-yaml=\"`scratch`\" pulumi-lang-java=\"`scratch`\"\u003e`scratch`\u003c/span\u003e (Local Scratch SSD).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the volume should be created.\n"}},"required":["name","organizationId","projectId","serverId","type"],"inputProperties":{"fromSnapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n","willReplaceOnChanges":true},"migrateToSbs":{"type":"boolean","description":"If true, consider that this volume may have been migrated and no longer exists."},"name":{"type":"string","description":"The name of the volume. If not provided it will be randomly generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the volume is associated with.\n","willReplaceOnChanges":true},"sizeInGb":{"type":"integer","description":"The size of the volume. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n\n\u003e **Important:** It is not possible to resize local and scratch volumes. Updates to this field will recreate the resource.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"type":{"type":"string","description":"The type of the volume. The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD), \u003cspan pulumi-lang-nodejs=\"`scratch`\" pulumi-lang-dotnet=\"`Scratch`\" pulumi-lang-go=\"`scratch`\" pulumi-lang-python=\"`scratch`\" pulumi-lang-yaml=\"`scratch`\" pulumi-lang-java=\"`scratch`\"\u003e`scratch`\u003c/span\u003e (Local Scratch SSD).\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the volume should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering InstanceVolume resources.\n","properties":{"fromSnapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n","willReplaceOnChanges":true},"migrateToSbs":{"type":"boolean","description":"If true, consider that this volume may have been migrated and no longer exists."},"name":{"type":"string","description":"The name of the volume. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The organization ID the volume is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the volume is associated with.\n","willReplaceOnChanges":true},"serverId":{"type":"string","description":"The id of the associated server.\n"},"sizeInGb":{"type":"integer","description":"The size of the volume. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n\n\u003e **Important:** It is not possible to resize local and scratch volumes. Updates to this field will recreate the resource.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"type":{"type":"string","description":"The type of the volume. The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD), \u003cspan pulumi-lang-nodejs=\"`scratch`\" pulumi-lang-dotnet=\"`Scratch`\" pulumi-lang-go=\"`scratch`\" pulumi-lang-python=\"`scratch`\" pulumi-lang-yaml=\"`scratch`\" pulumi-lang-java=\"`scratch`\"\u003e`scratch`\u003c/span\u003e (Local Scratch SSD).\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the volume should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/instancevolume.InstanceVolume has been deprecated in favor of scaleway.instance/volume.Volume"},"scaleway:index/iotDevice:IotDevice":{"description":"## 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.iot.Hub(\"main\", {\n    name: \"test-iot\",\n    productPlan: \"plan_shared\",\n});\nconst mainDevice = new scaleway.iot.Device(\"main\", {\n    hubId: main.id,\n    name: \"test-iot\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iot.Hub(\"main\",\n    name=\"test-iot\",\n    product_plan=\"plan_shared\")\nmain_device = scaleway.iot.Device(\"main\",\n    hub_id=main.id,\n    name=\"test-iot\")\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.Iot.Hub(\"main\", new()\n    {\n        Name = \"test-iot\",\n        ProductPlan = \"plan_shared\",\n    });\n\n    var mainDevice = new Scaleway.Iot.Device(\"main\", new()\n    {\n        HubId = main.Id,\n        Name = \"test-iot\",\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/iot\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\n\t\t\tName:        pulumi.String(\"test-iot\"),\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 = iot.NewDevice(ctx, \"main\", \u0026iot.DeviceArgs{\n\t\t\tHubId: main.ID(),\n\t\t\tName:  pulumi.String(\"test-iot\"),\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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\nimport com.pulumi.scaleway.iot.Device;\nimport com.pulumi.scaleway.iot.DeviceArgs;\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 Hub(\"main\", HubArgs.builder()\n            .name(\"test-iot\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n        var mainDevice = new Device(\"mainDevice\", DeviceArgs.builder()\n            .hubId(main.id())\n            .name(\"test-iot\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iot:Hub\n    properties:\n      name: test-iot\n      productPlan: plan_shared\n  mainDevice:\n    type: scaleway:iot:Device\n    name: main\n    properties:\n      hubId: ${main.id}\n      name: test-iot\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIoT devices can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iotDevice:IotDevice device01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"allowInsecure":{"type":"boolean","description":"Allow plain and server-authenticated TLS connections in addition to mutually-authenticated ones.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowInsecure`\" pulumi-lang-dotnet=\"`AllowInsecure`\" pulumi-lang-go=\"`allowInsecure`\" pulumi-lang-python=\"`allow_insecure`\" pulumi-lang-yaml=\"`allowInsecure`\" pulumi-lang-java=\"`allowInsecure`\"\u003e`allow_insecure`\u003c/span\u003e can disconnect eventually connected devices.\n"},"allowMultipleConnections":{"type":"boolean","description":"Allow more than one simultaneous connection using the same device credentials.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowMultipleConnections`\" pulumi-lang-dotnet=\"`AllowMultipleConnections`\" pulumi-lang-go=\"`allowMultipleConnections`\" pulumi-lang-python=\"`allow_multiple_connections`\" pulumi-lang-yaml=\"`allowMultipleConnections`\" pulumi-lang-java=\"`allowMultipleConnections`\"\u003e`allow_multiple_connections`\u003c/span\u003e can disconnect eventually connected devices.\n"},"certificate":{"$ref":"#/types/scaleway:index/IotDeviceCertificate:IotDeviceCertificate","description":"The certificate bundle of the device.\n"},"createdAt":{"type":"string","description":"The date and time the device was created.\n"},"description":{"type":"string","description":"The description of the IoT device (e.g. `living room`).\n"},"hubId":{"type":"string","description":"The ID of the hub on which this device will be created.\n"},"isConnected":{"type":"boolean","description":"The current connection status of the device.\n"},"lastActivityAt":{"type":"string","description":"The last MQTT activity of the device.\n"},"messageFilters":{"$ref":"#/types/scaleway:index/IotDeviceMessageFilters:IotDeviceMessageFilters","description":"Rules that define which messages are authorized or denied based on their topic.\n"},"name":{"type":"string","description":"The name of the IoT device you want to create (e.g. `my-device`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will destroy and recreate a new resource.\n"},"region":{"type":"string","description":"The region you want to attach the resource to"},"status":{"type":"string","description":"The current status of the device.\n"},"updatedAt":{"type":"string","description":"The date and time the device resource was updated.\n"}},"required":["certificate","createdAt","hubId","isConnected","lastActivityAt","name","status","updatedAt"],"inputProperties":{"allowInsecure":{"type":"boolean","description":"Allow plain and server-authenticated TLS connections in addition to mutually-authenticated ones.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowInsecure`\" pulumi-lang-dotnet=\"`AllowInsecure`\" pulumi-lang-go=\"`allowInsecure`\" pulumi-lang-python=\"`allow_insecure`\" pulumi-lang-yaml=\"`allowInsecure`\" pulumi-lang-java=\"`allowInsecure`\"\u003e`allow_insecure`\u003c/span\u003e can disconnect eventually connected devices.\n"},"allowMultipleConnections":{"type":"boolean","description":"Allow more than one simultaneous connection using the same device credentials.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowMultipleConnections`\" pulumi-lang-dotnet=\"`AllowMultipleConnections`\" pulumi-lang-go=\"`allowMultipleConnections`\" pulumi-lang-python=\"`allow_multiple_connections`\" pulumi-lang-yaml=\"`allowMultipleConnections`\" pulumi-lang-java=\"`allowMultipleConnections`\"\u003e`allow_multiple_connections`\u003c/span\u003e can disconnect eventually connected devices.\n"},"certificate":{"$ref":"#/types/scaleway:index/IotDeviceCertificate:IotDeviceCertificate","description":"The certificate bundle of the device.\n"},"description":{"type":"string","description":"The description of the IoT device (e.g. `living room`).\n"},"hubId":{"type":"string","description":"The ID of the hub on which this device will be created.\n"},"messageFilters":{"$ref":"#/types/scaleway:index/IotDeviceMessageFilters:IotDeviceMessageFilters","description":"Rules that define which messages are authorized or denied based on their topic.\n"},"name":{"type":"string","description":"The name of the IoT device you want to create (e.g. `my-device`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will destroy and recreate a new resource.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true}},"requiredInputs":["hubId"],"stateInputs":{"description":"Input properties used for looking up and filtering IotDevice resources.\n","properties":{"allowInsecure":{"type":"boolean","description":"Allow plain and server-authenticated TLS connections in addition to mutually-authenticated ones.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowInsecure`\" pulumi-lang-dotnet=\"`AllowInsecure`\" pulumi-lang-go=\"`allowInsecure`\" pulumi-lang-python=\"`allow_insecure`\" pulumi-lang-yaml=\"`allowInsecure`\" pulumi-lang-java=\"`allowInsecure`\"\u003e`allow_insecure`\u003c/span\u003e can disconnect eventually connected devices.\n"},"allowMultipleConnections":{"type":"boolean","description":"Allow more than one simultaneous connection using the same device credentials.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowMultipleConnections`\" pulumi-lang-dotnet=\"`AllowMultipleConnections`\" pulumi-lang-go=\"`allowMultipleConnections`\" pulumi-lang-python=\"`allow_multiple_connections`\" pulumi-lang-yaml=\"`allowMultipleConnections`\" pulumi-lang-java=\"`allowMultipleConnections`\"\u003e`allow_multiple_connections`\u003c/span\u003e can disconnect eventually connected devices.\n"},"certificate":{"$ref":"#/types/scaleway:index/IotDeviceCertificate:IotDeviceCertificate","description":"The certificate bundle of the device.\n"},"createdAt":{"type":"string","description":"The date and time the device was created.\n"},"description":{"type":"string","description":"The description of the IoT device (e.g. `living room`).\n"},"hubId":{"type":"string","description":"The ID of the hub on which this device will be created.\n"},"isConnected":{"type":"boolean","description":"The current connection status of the device.\n"},"lastActivityAt":{"type":"string","description":"The last MQTT activity of the device.\n"},"messageFilters":{"$ref":"#/types/scaleway:index/IotDeviceMessageFilters:IotDeviceMessageFilters","description":"Rules that define which messages are authorized or denied based on their topic.\n"},"name":{"type":"string","description":"The name of the IoT device you want to create (e.g. `my-device`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will destroy and recreate a new resource.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true},"status":{"type":"string","description":"The current status of the device.\n"},"updatedAt":{"type":"string","description":"The date and time the device resource was updated.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/iotdevice.IotDevice has been deprecated in favor of scaleway.iot/device.Device"},"scaleway:index/iotHub:IotHub":{"description":"## 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.iot.Hub(\"main\", {\n    name: \"test-iot\",\n    productPlan: \"plan_shared\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iot.Hub(\"main\",\n    name=\"test-iot\",\n    product_plan=\"plan_shared\")\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.Iot.Hub(\"main\", new()\n    {\n        Name = \"test-iot\",\n        ProductPlan = \"plan_shared\",\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/iot\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\n\t\t\tName:        pulumi.String(\"test-iot\"),\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\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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\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 Hub(\"main\", HubArgs.builder()\n            .name(\"test-iot\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iot:Hub\n    properties:\n      name: test-iot\n      productPlan: plan_shared\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIoT Hubs can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iotHub:IotHub hub01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"connectedDeviceCount":{"type":"integer","description":"The current number of connected devices in the Hub.\n"},"createdAt":{"type":"string","description":"The date and time the Hub was created.\n"},"deviceAutoProvisioning":{"type":"boolean","description":"Wether to enable the device auto provisioning or not"},"deviceCount":{"type":"integer","description":"The number of registered devices in the Hub.\n"},"disableEvents":{"type":"boolean","description":"Whether to enable the hub events or not"},"enabled":{"type":"boolean","description":"Whether the IoT Hub instance should be enabled or not.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e will disconnect eventually connected devices.\n"},"endpoint":{"type":"string","description":"The MQTT network endpoint to connect MQTT devices to.\n"},"eventsTopicPrefix":{"type":"string","description":"Topic prefix for the hub events"},"hubCa":{"type":"string","description":"Custom user provided certificate authority"},"hubCaChallenge":{"type":"string","description":"Challenge certificate for the user provided hub CA"},"mqttCa":{"type":"string","description":"The MQTT certificate content\n"},"mqttCaUrl":{"type":"string","description":"The MQTT ca url\n"},"name":{"type":"string","description":"The name of the IoT Hub instance you want to create (e.g. `my-hub`).\n"},"organizationId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003eyou want to attach the resource to"},"productPlan":{"type":"string","description":"Product plan to create the hub, see documentation for available product plans (e.g. \u003cspan pulumi-lang-nodejs=\"`planShared`\" pulumi-lang-dotnet=\"`PlanShared`\" pulumi-lang-go=\"`planShared`\" pulumi-lang-python=\"`plan_shared`\" pulumi-lang-yaml=\"`planShared`\" pulumi-lang-java=\"`planShared`\"\u003e`plan_shared`\u003c/span\u003e)\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`productPlan`\" pulumi-lang-dotnet=\"`ProductPlan`\" pulumi-lang-go=\"`productPlan`\" pulumi-lang-python=\"`product_plan`\" pulumi-lang-yaml=\"`productPlan`\" pulumi-lang-java=\"`productPlan`\"\u003e`product_plan`\u003c/span\u003e will recreate the IoT Hub Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IoT Hub Instance is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n"},"status":{"type":"string","description":"The current status of the Hub.\n"},"updatedAt":{"type":"string","description":"The date and time the Hub resource was updated.\n"}},"required":["connectedDeviceCount","createdAt","deviceCount","endpoint","mqttCa","mqttCaUrl","name","organizationId","productPlan","projectId","status","updatedAt"],"inputProperties":{"deviceAutoProvisioning":{"type":"boolean","description":"Wether to enable the device auto provisioning or not"},"disableEvents":{"type":"boolean","description":"Whether to enable the hub events or not"},"enabled":{"type":"boolean","description":"Whether the IoT Hub instance should be enabled or not.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e will disconnect eventually connected devices.\n"},"eventsTopicPrefix":{"type":"string","description":"Topic prefix for the hub events"},"hubCa":{"type":"string","description":"Custom user provided certificate authority"},"hubCaChallenge":{"type":"string","description":"Challenge certificate for the user provided hub CA"},"name":{"type":"string","description":"The name of the IoT Hub instance you want to create (e.g. `my-hub`).\n"},"productPlan":{"type":"string","description":"Product plan to create the hub, see documentation for available product plans (e.g. \u003cspan pulumi-lang-nodejs=\"`planShared`\" pulumi-lang-dotnet=\"`PlanShared`\" pulumi-lang-go=\"`planShared`\" pulumi-lang-python=\"`plan_shared`\" pulumi-lang-yaml=\"`planShared`\" pulumi-lang-java=\"`planShared`\"\u003e`plan_shared`\u003c/span\u003e)\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`productPlan`\" pulumi-lang-dotnet=\"`ProductPlan`\" pulumi-lang-go=\"`productPlan`\" pulumi-lang-python=\"`product_plan`\" pulumi-lang-yaml=\"`productPlan`\" pulumi-lang-java=\"`productPlan`\"\u003e`product_plan`\u003c/span\u003e will recreate the IoT Hub Instance.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IoT Hub Instance is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["productPlan"],"stateInputs":{"description":"Input properties used for looking up and filtering IotHub resources.\n","properties":{"connectedDeviceCount":{"type":"integer","description":"The current number of connected devices in the Hub.\n"},"createdAt":{"type":"string","description":"The date and time the Hub was created.\n"},"deviceAutoProvisioning":{"type":"boolean","description":"Wether to enable the device auto provisioning or not"},"deviceCount":{"type":"integer","description":"The number of registered devices in the Hub.\n"},"disableEvents":{"type":"boolean","description":"Whether to enable the hub events or not"},"enabled":{"type":"boolean","description":"Whether the IoT Hub instance should be enabled or not.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e will disconnect eventually connected devices.\n"},"endpoint":{"type":"string","description":"The MQTT network endpoint to connect MQTT devices to.\n"},"eventsTopicPrefix":{"type":"string","description":"Topic prefix for the hub events"},"hubCa":{"type":"string","description":"Custom user provided certificate authority"},"hubCaChallenge":{"type":"string","description":"Challenge certificate for the user provided hub CA"},"mqttCa":{"type":"string","description":"The MQTT certificate content\n"},"mqttCaUrl":{"type":"string","description":"The MQTT ca url\n"},"name":{"type":"string","description":"The name of the IoT Hub instance you want to create (e.g. `my-hub`).\n"},"organizationId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003eyou want to attach the resource to"},"productPlan":{"type":"string","description":"Product plan to create the hub, see documentation for available product plans (e.g. \u003cspan pulumi-lang-nodejs=\"`planShared`\" pulumi-lang-dotnet=\"`PlanShared`\" pulumi-lang-go=\"`planShared`\" pulumi-lang-python=\"`plan_shared`\" pulumi-lang-yaml=\"`planShared`\" pulumi-lang-java=\"`planShared`\"\u003e`plan_shared`\u003c/span\u003e)\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`productPlan`\" pulumi-lang-dotnet=\"`ProductPlan`\" pulumi-lang-go=\"`productPlan`\" pulumi-lang-python=\"`product_plan`\" pulumi-lang-yaml=\"`productPlan`\" pulumi-lang-java=\"`productPlan`\"\u003e`product_plan`\u003c/span\u003e will recreate the IoT Hub Instance.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IoT Hub Instance is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The current status of the Hub.\n"},"updatedAt":{"type":"string","description":"The date and time the Hub resource was updated.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/iothub.IotHub has been deprecated in favor of scaleway.iot/hub.Hub"},"scaleway:index/iotNetwork:IotNetwork":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainHub = new scaleway.iot.Hub(\"main\", {\n    name: \"main\",\n    productPlan: \"plan_shared\",\n});\nconst main = new scaleway.iot.Network(\"main\", {\n    name: \"main\",\n    hubId: mainHub.id,\n    type: \"sigfox\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_hub = scaleway.iot.Hub(\"main\",\n    name=\"main\",\n    product_plan=\"plan_shared\")\nmain = scaleway.iot.Network(\"main\",\n    name=\"main\",\n    hub_id=main_hub.id,\n    type=\"sigfox\")\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 mainHub = new Scaleway.Iot.Hub(\"main\", new()\n    {\n        Name = \"main\",\n        ProductPlan = \"plan_shared\",\n    });\n\n    var main = new Scaleway.Iot.Network(\"main\", new()\n    {\n        Name = \"main\",\n        HubId = mainHub.Id,\n        Type = \"sigfox\",\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/iot\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainHub, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\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 = iot.NewNetwork(ctx, \"main\", \u0026iot.NetworkArgs{\n\t\t\tName:  pulumi.String(\"main\"),\n\t\t\tHubId: mainHub.ID(),\n\t\t\tType:  pulumi.String(\"sigfox\"),\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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\nimport com.pulumi.scaleway.iot.Network;\nimport com.pulumi.scaleway.iot.NetworkArgs;\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 mainHub = new Hub(\"mainHub\", HubArgs.builder()\n            .name(\"main\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n        var main = new Network(\"main\", NetworkArgs.builder()\n            .name(\"main\")\n            .hubId(mainHub.id())\n            .type(\"sigfox\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iot:Network\n    properties:\n      name: main\n      hubId: ${mainHub.id}\n      type: sigfox\n  mainHub:\n    type: scaleway:iot:Hub\n    name: main\n    properties:\n      name: main\n      productPlan: plan_shared\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIoT Networks can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/iotNetwork:IotNetwork net01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time the Network was created.\n"},"endpoint":{"type":"string","description":"The endpoint to use when interacting with the network.\n"},"hubId":{"type":"string","description":"The hub ID to which the Network will be attached to.\n"},"name":{"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 \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Network is attached to.\n"},"secret":{"type":"string","description":"The endpoint key to keep secret.\n","secret":true},"topicPrefix":{"type":"string","description":"The prefix that will be prepended to all topics for this Network.\n"},"type":{"type":"string","description":"The network type to create (e.g. \u003cspan pulumi-lang-nodejs=\"`sigfox`\" pulumi-lang-dotnet=\"`Sigfox`\" pulumi-lang-go=\"`sigfox`\" pulumi-lang-python=\"`sigfox`\" pulumi-lang-yaml=\"`sigfox`\" pulumi-lang-java=\"`sigfox`\"\u003e`sigfox`\u003c/span\u003e).\n"}},"required":["createdAt","endpoint","hubId","name","secret","type"],"inputProperties":{"hubId":{"type":"string","description":"The hub ID to which the Network will be attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","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 \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) 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","willReplaceOnChanges":true},"type":{"type":"string","description":"The network type to create (e.g. \u003cspan pulumi-lang-nodejs=\"`sigfox`\" pulumi-lang-dotnet=\"`Sigfox`\" pulumi-lang-go=\"`sigfox`\" pulumi-lang-python=\"`sigfox`\" pulumi-lang-yaml=\"`sigfox`\" pulumi-lang-java=\"`sigfox`\"\u003e`sigfox`\u003c/span\u003e).\n","willReplaceOnChanges":true}},"requiredInputs":["hubId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering IotNetwork resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time the Network was created.\n"},"endpoint":{"type":"string","description":"The endpoint to use when interacting with the network.\n"},"hubId":{"type":"string","description":"The hub ID to which the Network will be attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","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 \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Network is attached to.\n","willReplaceOnChanges":true},"secret":{"type":"string","description":"The endpoint key to keep secret.\n","secret":true},"topicPrefix":{"type":"string","description":"The prefix that will be prepended to all topics for this Network.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The network type to create (e.g. \u003cspan pulumi-lang-nodejs=\"`sigfox`\" pulumi-lang-dotnet=\"`Sigfox`\" pulumi-lang-go=\"`sigfox`\" pulumi-lang-python=\"`sigfox`\" pulumi-lang-yaml=\"`sigfox`\" pulumi-lang-java=\"`sigfox`\"\u003e`sigfox`\u003c/span\u003e).\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/iotnetwork.IotNetwork has been deprecated in favor of scaleway.iot/network.Network"},"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 mainHub = new scaleway.iot.Hub(\"main\", {\n    name: \"main\",\n    productPlan: \"plan_shared\",\n});\nconst iot = new scaleway.databases.Instance(\"iot\", {\n    name: \"iot\",\n    nodeType: \"db-dev-s\",\n    engine: \"PostgreSQL-12\",\n    userName: \"root\",\n    password: \"T3stP4ssw0rdD0N0tUs3!\",\n});\nconst main = new scaleway.iot.Route(\"main\", {\n    name: \"default\",\n    hubId: mainHub.id,\n    topic: \"#\",\n    database: {\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```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_hub = scaleway.iot.Hub(\"main\",\n    name=\"main\",\n    product_plan=\"plan_shared\")\niot = scaleway.databases.Instance(\"iot\",\n    name=\"iot\",\n    node_type=\"db-dev-s\",\n    engine=\"PostgreSQL-12\",\n    user_name=\"root\",\n    password=\"T3stP4ssw0rdD0N0tUs3!\")\nmain = scaleway.iot.Route(\"main\",\n    name=\"default\",\n    hub_id=main_hub.id,\n    topic=\"#\",\n    database={\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.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 mainHub = new Scaleway.Iot.Hub(\"main\", new()\n    {\n        Name = \"main\",\n        ProductPlan = \"plan_shared\",\n    });\n\n    var iot = new Scaleway.Databases.Instance(\"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.Iot.Route(\"main\", new()\n    {\n        Name = \"default\",\n        HubId = mainHub.Id,\n        Topic = \"#\",\n        Database = new Scaleway.Iot.Inputs.RouteDatabaseArgs\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/databases\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iot\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainHub, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\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 := databases.NewInstance(ctx, \"iot\", \u0026databases.InstanceArgs{\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 = iot.NewRoute(ctx, \"main\", \u0026iot.RouteArgs{\n\t\t\tName:  pulumi.String(\"default\"),\n\t\t\tHubId: mainHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tDatabase: \u0026iot.RouteDatabaseArgs{\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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\nimport com.pulumi.scaleway.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.iot.Route;\nimport com.pulumi.scaleway.iot.RouteArgs;\nimport com.pulumi.scaleway.iot.inputs.RouteDatabaseArgs;\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 mainHub = new Hub(\"mainHub\", HubArgs.builder()\n            .name(\"main\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n        var iot = new Instance(\"iot\", InstanceArgs.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 Route(\"main\", RouteArgs.builder()\n            .name(\"default\")\n            .hubId(mainHub.id())\n            .topic(\"#\")\n            .database(RouteDatabaseArgs.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:iot:Route\n    properties:\n      name: default\n      hubId: ${mainHub.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  mainHub:\n    type: scaleway:iot:Hub\n    name: main\n    properties:\n      name: main\n      productPlan: plan_shared\n  iot:\n    type: scaleway:databases:Instance\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 mainHub = new scaleway.iot.Hub(\"main\", {\n    name: \"main\",\n    productPlan: \"plan_shared\",\n});\nconst mainBucket = new scaleway.object.Bucket(\"main\", {\n    region: \"fr-par\",\n    name: \"my_awesome-bucket\",\n});\nconst main = new scaleway.iot.Route(\"main\", {\n    name: \"main\",\n    hubId: mainHub.id,\n    topic: \"#\",\n    s3: {\n        bucketRegion: mainBucket.region,\n        bucketName: mainBucket.name,\n        objectPrefix: \"foo\",\n        strategy: \"per_topic\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_hub = scaleway.iot.Hub(\"main\",\n    name=\"main\",\n    product_plan=\"plan_shared\")\nmain_bucket = scaleway.object.Bucket(\"main\",\n    region=\"fr-par\",\n    name=\"my_awesome-bucket\")\nmain = scaleway.iot.Route(\"main\",\n    name=\"main\",\n    hub_id=main_hub.id,\n    topic=\"#\",\n    s3={\n        \"bucket_region\": main_bucket.region,\n        \"bucket_name\": main_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 mainHub = new Scaleway.Iot.Hub(\"main\", new()\n    {\n        Name = \"main\",\n        ProductPlan = \"plan_shared\",\n    });\n\n    var mainBucket = new Scaleway.Object.Bucket(\"main\", new()\n    {\n        Region = \"fr-par\",\n        Name = \"my_awesome-bucket\",\n    });\n\n    var main = new Scaleway.Iot.Route(\"main\", new()\n    {\n        Name = \"main\",\n        HubId = mainHub.Id,\n        Topic = \"#\",\n        S3 = new Scaleway.Iot.Inputs.RouteS3Args\n        {\n            BucketRegion = mainBucket.Region,\n            BucketName = mainBucket.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/iot\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainHub, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\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\tmainBucket, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\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 = iot.NewRoute(ctx, \"main\", \u0026iot.RouteArgs{\n\t\t\tName:  pulumi.String(\"main\"),\n\t\t\tHubId: mainHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tS3: \u0026iot.RouteS3Args{\n\t\t\t\tBucketRegion: mainBucket.Region,\n\t\t\t\tBucketName:   mainBucket.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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\nimport com.pulumi.scaleway.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.iot.Route;\nimport com.pulumi.scaleway.iot.RouteArgs;\nimport com.pulumi.scaleway.iot.inputs.RouteS3Args;\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 mainHub = new Hub(\"mainHub\", HubArgs.builder()\n            .name(\"main\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n        var mainBucket = new Bucket(\"mainBucket\", BucketArgs.builder()\n            .region(\"fr-par\")\n            .name(\"my_awesome-bucket\")\n            .build());\n\n        var main = new Route(\"main\", RouteArgs.builder()\n            .name(\"main\")\n            .hubId(mainHub.id())\n            .topic(\"#\")\n            .s3(RouteS3Args.builder()\n                .bucketRegion(mainBucket.region())\n                .bucketName(mainBucket.name())\n                .objectPrefix(\"foo\")\n                .strategy(\"per_topic\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iot:Route\n    properties:\n      name: main\n      hubId: ${mainHub.id}\n      topic: '#'\n      s3:\n        bucketRegion: ${mainBucket.region}\n        bucketName: ${mainBucket.name}\n        objectPrefix: foo\n        strategy: per_topic\n  mainHub:\n    type: scaleway:iot:Hub\n    name: main\n    properties:\n      name: main\n      productPlan: plan_shared\n  mainBucket:\n    type: scaleway:object:Bucket\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 mainHub = new scaleway.iot.Hub(\"main\", {\n    name: \"main\",\n    productPlan: \"plan_shared\",\n});\nconst main = new scaleway.iot.Route(\"main\", {\n    name: \"main\",\n    hubId: mainHub.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_hub = scaleway.iot.Hub(\"main\",\n    name=\"main\",\n    product_plan=\"plan_shared\")\nmain = scaleway.iot.Route(\"main\",\n    name=\"main\",\n    hub_id=main_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 mainHub = new Scaleway.Iot.Hub(\"main\", new()\n    {\n        Name = \"main\",\n        ProductPlan = \"plan_shared\",\n    });\n\n    var main = new Scaleway.Iot.Route(\"main\", new()\n    {\n        Name = \"main\",\n        HubId = mainHub.Id,\n        Topic = \"#\",\n        Rest = new Scaleway.Iot.Inputs.RouteRestArgs\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/iot\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainHub, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\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 = iot.NewRoute(ctx, \"main\", \u0026iot.RouteArgs{\n\t\t\tName:  pulumi.String(\"main\"),\n\t\t\tHubId: mainHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tRest: \u0026iot.RouteRestArgs{\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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\nimport com.pulumi.scaleway.iot.Route;\nimport com.pulumi.scaleway.iot.RouteArgs;\nimport com.pulumi.scaleway.iot.inputs.RouteRestArgs;\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 mainHub = new Hub(\"mainHub\", HubArgs.builder()\n            .name(\"main\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n        var main = new Route(\"main\", RouteArgs.builder()\n            .name(\"main\")\n            .hubId(mainHub.id())\n            .topic(\"#\")\n            .rest(RouteRestArgs.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:iot:Route\n    properties:\n      name: main\n      hubId: ${mainHub.id}\n      topic: '#'\n      rest:\n        verb: get\n        uri: http://scaleway.com\n        headers:\n          X-awesome-header: my-awesome-value\n  mainHub:\n    type: scaleway:iot:Hub\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","description":"The date and time the Route was created.\n"},"database":{"$ref":"#/types/scaleway:index/IotRouteDatabase:IotRouteDatabase","description":"Configuration block for the database routes. See  [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n"},"hubId":{"type":"string","description":"The hub ID to which the Route will be attached to.\n"},"name":{"type":"string","description":"The name of the IoT Route you want to create (e.g. `my-route`).\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Route is attached to.\n"},"rest":{"$ref":"#/types/scaleway:index/IotRouteRest:IotRouteRest","description":"Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n"},"s3":{"$ref":"#/types/scaleway:index/IotRouteS3:IotRouteS3","description":"Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n"},"topic":{"type":"string","description":"The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).\n"}},"required":["createdAt","hubId","name","topic"],"inputProperties":{"database":{"$ref":"#/types/scaleway:index/IotRouteDatabase:IotRouteDatabase","description":"Configuration block for the database routes. See  [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"hubId":{"type":"string","description":"The hub ID to which the Route will be attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the IoT Route you want to create (e.g. `my-route`).\n","willReplaceOnChanges":true},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Route is attached to.\n","willReplaceOnChanges":true},"rest":{"$ref":"#/types/scaleway:index/IotRouteRest:IotRouteRest","description":"Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"s3":{"$ref":"#/types/scaleway:index/IotRouteS3:IotRouteS3","description":"Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"topic":{"type":"string","description":"The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).\n","willReplaceOnChanges":true}},"requiredInputs":["hubId","topic"],"stateInputs":{"description":"Input properties used for looking up and filtering IotRoute resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time the Route was created.\n"},"database":{"$ref":"#/types/scaleway:index/IotRouteDatabase:IotRouteDatabase","description":"Configuration block for the database routes. See  [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"hubId":{"type":"string","description":"The hub ID to which the Route will be attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the IoT Route you want to create (e.g. `my-route`).\n","willReplaceOnChanges":true},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Route is attached to.\n","willReplaceOnChanges":true},"rest":{"$ref":"#/types/scaleway:index/IotRouteRest:IotRouteRest","description":"Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"s3":{"$ref":"#/types/scaleway:index/IotRouteS3:IotRouteS3","description":"Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"topic":{"type":"string","description":"The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/iotroute.IotRoute has been deprecated in favor of scaleway.iot/route.Route"},"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/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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv4Subnet: {\n        subnet: \"172.16.32.0/22\",\n    },\n});\nconst ip01 = new scaleway.ipam.Ip(\"ip01\", {sources: [{\n    privateNetworkId: pn01.id,\n}]});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv4_subnet={\n        \"subnet\": \"172.16.32.0/22\",\n    })\nip01 = scaleway.ipam.Ip(\"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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.32.0/22\",\n        },\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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 = ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.32.0/22\")\n                .build())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv4Subnet:\n        subnet: 172.16.32.0/22\n  ip01:\n    type: scaleway:ipam:Ip\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv4Subnet: {\n        subnet: \"172.16.32.0/22\",\n    },\n});\nconst ip01 = new scaleway.ipam.Ip(\"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.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv4_subnet={\n        \"subnet\": \"172.16.32.0/22\",\n    })\nip01 = scaleway.ipam.Ip(\"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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.32.0/22\",\n        },\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Address = \"172.16.32.7\",\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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 = ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.32.7\"),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.32.0/22\")\n                .build())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .address(\"172.16.32.7\")\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv4Subnet:\n        subnet: 172.16.32.0/22\n  ip01:\n    type: scaleway:ipam:Ip\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv6Subnets: [{\n        subnet: \"fd46:78ab:30b8:177c::/64\",\n    }],\n});\nconst ip01 = new scaleway.ipam.Ip(\"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.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv6_subnets=[{\n        \"subnet\": \"fd46:78ab:30b8:177c::/64\",\n    }])\nip01 = scaleway.ipam.Ip(\"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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv6Subnets = new[]\n        {\n            new Scaleway.Network.Inputs.PrivateNetworkIpv6SubnetArgs\n            {\n                Subnet = \"fd46:78ab:30b8:177c::/64\",\n            },\n        },\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        IsIpv6 = true,\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv6Subnets: network.PrivateNetworkIpv6SubnetArray{\n\t\t\t\t\u0026network.PrivateNetworkIpv6SubnetArgs{\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 = ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv6SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv6Subnets(PrivateNetworkIpv6SubnetArgs.builder()\n                .subnet(\"fd46:78ab:30b8:177c::/64\")\n                .build())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .isIpv6(true)\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv6Subnets:\n        - subnet: fd46:78ab:30b8:177c::/64\n  ip01:\n    type: scaleway:ipam:Ip\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv4Subnet: {\n        subnet: \"172.16.32.0/22\",\n    },\n});\nconst ip01 = new scaleway.ipam.Ip(\"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.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv4_subnet={\n        \"subnet\": \"172.16.32.0/22\",\n    })\nip01 = scaleway.ipam.Ip(\"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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.32.0/22\",\n        },\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Address = \"172.16.32.7\",\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\n            {\n                PrivateNetworkId = pn01.Id,\n            },\n        },\n        CustomResources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpCustomResourceArgs\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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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 = ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.32.7\"),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCustomResources: ipam.IpCustomResourceArray{\n\t\t\t\t\u0026ipam.IpCustomResourceArgs{\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpCustomResourceArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.32.0/22\")\n                .build())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .address(\"172.16.32.7\")\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .customResources(IpCustomResourceArgs.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:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv4Subnet:\n        subnet: 172.16.32.0/22\n  ip01:\n    type: scaleway:ipam:Ip\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","description":"Request a specific IP in the requested source pool"},"addressCidr":{"type":"string","description":"the IP address in CIDR notation.\n"},"createdAt":{"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 to attach to the IP being reserved. An example of a custom resource is a virtual machine hosted on an Elastic Metal server.\n"},"isIpv6":{"type":"boolean","description":"Defines whether to request an IPv6 address instead of IPv4.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP.\n"},"resources":{"type":"array","items":{"$ref":"#/types/scaleway:index/IpamIpResource:IpamIpResource"},"description":"The IP resource.\n"},"reverses":{"type":"array","items":{"$ref":"#/types/scaleway:index/IpamIpReverse:IpamIpReverse"},"description":"The reverse DNS for this IP.\n"},"sources":{"type":"array","items":{"$ref":"#/types/scaleway:index/IpamIpSource:IpamIpSource"},"description":"The source in which to book the IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"},"updatedAt":{"type":"string","description":"Date and time of IP's last update (RFC 3339 format).\n"},"zone":{"type":"string","description":"The zone of the IP.\n"}},"required":["address","addressCidr","createdAt","projectId","resources","reverses","sources","updatedAt","zone"],"inputProperties":{"address":{"type":"string","description":"Request a specific IP in the requested source pool","willReplaceOnChanges":true},"customResources":{"type":"array","items":{"$ref":"#/types/scaleway:index/IpamIpCustomResource:IpamIpCustomResource"},"description":"The custom resource to attach to the IP being reserved. An example of a custom resource is a virtual machine hosted on an Elastic Metal server.\n"},"isIpv6":{"type":"boolean","description":"Defines whether to request an IPv6 address instead of IPv4.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP.\n","willReplaceOnChanges":true},"sources":{"type":"array","items":{"$ref":"#/types/scaleway:index/IpamIpSource:IpamIpSource"},"description":"The source in which to book the IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"}},"requiredInputs":["sources"],"stateInputs":{"description":"Input properties used for looking up and filtering IpamIp resources.\n","properties":{"address":{"type":"string","description":"Request a specific IP in the requested source pool","willReplaceOnChanges":true},"addressCidr":{"type":"string","description":"the IP address in CIDR notation.\n"},"createdAt":{"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 to attach to the IP being reserved. An example of a custom resource is a virtual machine hosted on an Elastic Metal server.\n"},"isIpv6":{"type":"boolean","description":"Defines whether to request an IPv6 address instead of IPv4.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP.\n","willReplaceOnChanges":true},"resources":{"type":"array","items":{"$ref":"#/types/scaleway:index/IpamIpResource:IpamIpResource"},"description":"The IP resource.\n"},"reverses":{"type":"array","items":{"$ref":"#/types/scaleway:index/IpamIpReverse:IpamIpReverse"},"description":"The reverse DNS for this IP.\n"},"sources":{"type":"array","items":{"$ref":"#/types/scaleway:index/IpamIpSource:IpamIpSource"},"description":"The source in which to book the IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"},"updatedAt":{"type":"string","description":"Date and time of IP's last update (RFC 3339 format).\n"},"zone":{"type":"string","description":"The zone of the IP.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/ipamip.IpamIp has been deprecated in favor of scaleway.ipam/ip.Ip"},"scaleway:index/ipamIpReverseDns:IpamIpReverseDns":{"description":"Manage the reverse DNS of IP addresses managed by Scaleway's IP Address Management (IPAM) service.\n\nFor more information about IPAM, see the main [documentation](https://www.scaleway.com/en/docs/vpc/concepts/#ipam).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\nimport * as std from \"@pulumi/std\";\n\nconst ip01 = new scaleway.instance.Ip(\"ip01\", {type: \"routed_ipv6\"});\nconst srv01 = new scaleway.instance.Server(\"srv01\", {\n    name: \"tf-tests-instance-server-ips\",\n    ipIds: [ip01.id],\n    image: \"ubuntu_jammy\",\n    type: \"PRO2-XXS\",\n    state: \"stopped\",\n});\nconst ipam01 = scaleway.ipam.getIpOutput({\n    resource: {\n        id: srv01.id,\n        type: \"instance_server\",\n    },\n    type: \"ipv6\",\n});\nconst tfAAAA = new scaleway.domain.Record(\"tf_AAAA\", {\n    dnsZone: \"example.com\",\n    name: \"\",\n    type: \"AAAA\",\n    data: std.index.cidrhost({\n        input: ipam01.apply(ipam01 =\u003e ipam01.addressCidr),\n        host: 42,\n    }).result,\n    ttl: 3600,\n    priority: 1,\n});\nconst base = new scaleway.ipam.IpReverseDns(\"base\", {\n    ipamIpId: ipam01.apply(ipam01 =\u003e ipam01.id),\n    hostname: \"example.com\",\n    address: std.index.cidrhost({\n        input: ipam01.apply(ipam01 =\u003e ipam01.addressCidr),\n        host: 42,\n    }).result,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumi_std as std\nimport pulumiverse_scaleway as scaleway\n\nip01 = scaleway.instance.Ip(\"ip01\", type=\"routed_ipv6\")\nsrv01 = scaleway.instance.Server(\"srv01\",\n    name=\"tf-tests-instance-server-ips\",\n    ip_ids=[ip01.id],\n    image=\"ubuntu_jammy\",\n    type=\"PRO2-XXS\",\n    state=\"stopped\")\nipam01 = scaleway.ipam.get_ip_output(resource={\n        \"id\": srv01.id,\n        \"type\": \"instance_server\",\n    },\n    type=\"ipv6\")\ntf_aaaa = scaleway.domain.Record(\"tf_AAAA\",\n    dns_zone=\"example.com\",\n    name=\"\",\n    type=\"AAAA\",\n    data=std.index.cidrhost(input=ipam01.address_cidr,\n        host=42)[\"result\"],\n    ttl=3600,\n    priority=1)\nbase = scaleway.ipam.IpReverseDns(\"base\",\n    ipam_ip_id=ipam01.id,\n    hostname=\"example.com\",\n    address=std.index.cidrhost(input=ipam01.address_cidr,\n        host=42)[\"result\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ip01 = new Scaleway.Instance.Ip(\"ip01\", new()\n    {\n        Type = \"routed_ipv6\",\n    });\n\n    var srv01 = new Scaleway.Instance.Server(\"srv01\", new()\n    {\n        Name = \"tf-tests-instance-server-ips\",\n        IpIds = new[]\n        {\n            ip01.Id,\n        },\n        Image = \"ubuntu_jammy\",\n        Type = \"PRO2-XXS\",\n        State = \"stopped\",\n    });\n\n    var ipam01 = Scaleway.Ipam.GetIp.Invoke(new()\n    {\n        Resource = new Scaleway.Ipam.Inputs.GetIpResourceInputArgs\n        {\n            Id = srv01.Id,\n            Type = \"instance_server\",\n        },\n        Type = \"ipv6\",\n    });\n\n    var tfAAAA = new Scaleway.Domain.Record(\"tf_AAAA\", new()\n    {\n        DnsZone = \"example.com\",\n        Name = \"\",\n        Type = \"AAAA\",\n        Data = Std.Index.Cidrhost.Invoke(new()\n        {\n            Input = ipam01.Apply(getIpResult =\u003e getIpResult.AddressCidr),\n            Host = 42,\n        }).Result,\n        Ttl = 3600,\n        Priority = 1,\n    });\n\n    var @base = new Scaleway.Ipam.IpReverseDns(\"base\", new()\n    {\n        IpamIpId = ipam01.Apply(getIpResult =\u003e getIpResult.Id),\n        Hostname = \"example.com\",\n        Address = Std.Index.Cidrhost.Invoke(new()\n        {\n            Input = ipam01.Apply(getIpResult =\u003e getIpResult.AddressCidr),\n            Host = 42,\n        }).Result,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/ipam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip01, err := instance.NewIp(ctx, \"ip01\", \u0026instance.IpArgs{\n\t\t\tType: pulumi.String(\"routed_ipv6\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsrv01, err := instance.NewServer(ctx, \"srv01\", \u0026instance.ServerArgs{\n\t\t\tName: pulumi.String(\"tf-tests-instance-server-ips\"),\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tip01.ID(),\n\t\t\t},\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"PRO2-XXS\"),\n\t\t\tState: pulumi.String(\"stopped\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tipam01 := ipam.LookupIpOutput(ctx, ipam.GetIpOutputArgs{\n\t\t\tResource: \u0026ipam.GetIpResourceArgs{\n\t\t\t\tId:   srv01.ID(),\n\t\t\t\tType: pulumi.String(\"instance_server\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"ipv6\"),\n\t\t}, nil)\n\t\tinvokeCidrhost, err := std.Cidrhost(ctx, map[string]interface{}{\n\t\t\t\"input\": ipam01.ApplyT(func(ipam01 ipam.GetIpResult) (*string, error) {\n\t\t\t\treturn \u0026ipam01.AddressCidr, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\"host\": 42,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"tf_AAAA\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"example.com\"),\n\t\t\tName:     pulumi.String(\"\"),\n\t\t\tType:     pulumi.String(\"AAAA\"),\n\t\t\tData:     invokeCidrhost.Result,\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrhost1, err := std.Cidrhost(ctx, map[string]interface{}{\n\t\t\t\"input\": ipam01.ApplyT(func(ipam01 ipam.GetIpResult) (*string, error) {\n\t\t\t\treturn \u0026ipam01.AddressCidr, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\"host\": 42,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ipam.NewIpReverseDns(ctx, \"base\", \u0026ipam.IpReverseDnsArgs{\n\t\t\tIpamIpId: pulumi.String(ipam01.ApplyT(func(ipam01 ipam.GetIpResult) (*string, error) {\n\t\t\t\treturn \u0026ipam01.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tHostname: pulumi.String(\"example.com\"),\n\t\t\tAddress:  invokeCidrhost1.Result,\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.instance.Ip;\nimport com.pulumi.scaleway.instance.IpArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpArgs;\nimport com.pulumi.scaleway.ipam.inputs.GetIpResourceArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.scaleway.ipam.IpReverseDns;\nimport com.pulumi.scaleway.ipam.IpReverseDnsArgs;\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 ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .type(\"routed_ipv6\")\n            .build());\n\n        var srv01 = new Server(\"srv01\", ServerArgs.builder()\n            .name(\"tf-tests-instance-server-ips\")\n            .ipIds(ip01.id())\n            .image(\"ubuntu_jammy\")\n            .type(\"PRO2-XXS\")\n            .state(\"stopped\")\n            .build());\n\n        final var ipam01 = IpamFunctions.getIp(GetIpArgs.builder()\n            .resource(GetIpResourceArgs.builder()\n                .id(srv01.id())\n                .type(\"instance_server\")\n                .build())\n            .type(\"ipv6\")\n            .build());\n\n        var tfAAAA = new Record(\"tfAAAA\", RecordArgs.builder()\n            .dnsZone(\"example.com\")\n            .name(\"\")\n            .type(\"AAAA\")\n            .data(StdFunctions.cidrhost(Map.ofEntries(\n                Map.entry(\"input\", ipam01.applyValue(_ipam01 -\u003e _ipam01.addressCidr())),\n                Map.entry(\"host\", 42)\n            )).result())\n            .ttl(3600)\n            .priority(1)\n            .build());\n\n        var base = new IpReverseDns(\"base\", IpReverseDnsArgs.builder()\n            .ipamIpId(ipam01.applyValue(_ipam01 -\u003e _ipam01.id()))\n            .hostname(\"example.com\")\n            .address(StdFunctions.cidrhost(Map.ofEntries(\n                Map.entry(\"input\", ipam01.applyValue(_ipam01 -\u003e _ipam01.addressCidr())),\n                Map.entry(\"host\", 42)\n            )).result())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip01:\n    type: scaleway:instance:Ip\n    properties:\n      type: routed_ipv6\n  srv01:\n    type: scaleway:instance:Server\n    properties:\n      name: tf-tests-instance-server-ips\n      ipIds:\n        - ${ip01.id}\n      image: ubuntu_jammy\n      type: PRO2-XXS\n      state: stopped\n  tfAAAA:\n    type: scaleway:domain:Record\n    name: tf_AAAA\n    properties:\n      dnsZone: example.com\n      name: \"\"\n      type: AAAA\n      data:\n        fn::invoke:\n          function: std:cidrhost\n          arguments:\n            input: ${ipam01.addressCidr}\n            host: 42\n          return: result\n      ttl: 3600\n      priority: 1\n  base:\n    type: scaleway:ipam:IpReverseDns\n    properties:\n      ipamIpId: ${ipam01.id}\n      hostname: example.com\n      address:\n        fn::invoke:\n          function: std:cidrhost\n          arguments:\n            input: ${ipam01.addressCidr}\n            host: 42\n          return: result\nvariables:\n  ipam01:\n    fn::invoke:\n      function: scaleway:ipam:getIp\n      arguments:\n        resource:\n          id: ${srv01.id}\n          type: instance_server\n        type: ipv6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIPAM IP reverse DNS can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/ipamIpReverseDns:IpamIpReverseDns main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"address":{"type":"string","description":"The IP corresponding to the hostname.\n"},"hostname":{"type":"string","description":"The reverse domain name.\n"},"ipamIpId":{"type":"string","description":"The IPAM IP ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP reverse DNS.\n"}},"required":["address","hostname","ipamIpId"],"inputProperties":{"address":{"type":"string","description":"The IP corresponding to the hostname.\n"},"hostname":{"type":"string","description":"The reverse domain name.\n"},"ipamIpId":{"type":"string","description":"The IPAM IP ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP reverse DNS.\n","willReplaceOnChanges":true}},"requiredInputs":["address","hostname","ipamIpId"],"stateInputs":{"description":"Input properties used for looking up and filtering IpamIpReverseDns resources.\n","properties":{"address":{"type":"string","description":"The IP corresponding to the hostname.\n"},"hostname":{"type":"string","description":"The reverse domain name.\n"},"ipamIpId":{"type":"string","description":"The IPAM IP ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP reverse DNS.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/ipamipreversedns.IpamIpReverseDns has been deprecated in favor of scaleway.ipam/ipreversedns.IpReverseDns"},"scaleway:index/jobDefinition:JobDefinition":{"description":"Creates and manages a Scaleway Serverless Job Definition. For more information, see the [Go API documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/jobs/v1alpha1).\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.job.Definition(\"main\", {\n    name: \"testjob\",\n    cpuLimit: 140,\n    memoryLimit: 256,\n    imageUri: \"docker.io/alpine:latest\",\n    command: \"ls\",\n    timeout: \"10m\",\n    env: {\n        foo: \"bar\",\n    },\n    cron: {\n        schedule: \"5 4 1 * *\",\n        timezone: \"Europe/Paris\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.job.Definition(\"main\",\n    name=\"testjob\",\n    cpu_limit=140,\n    memory_limit=256,\n    image_uri=\"docker.io/alpine:latest\",\n    command=\"ls\",\n    timeout=\"10m\",\n    env={\n        \"foo\": \"bar\",\n    },\n    cron={\n        \"schedule\": \"5 4 1 * *\",\n        \"timezone\": \"Europe/Paris\",\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.Job.Definition(\"main\", new()\n    {\n        Name = \"testjob\",\n        CpuLimit = 140,\n        MemoryLimit = 256,\n        ImageUri = \"docker.io/alpine:latest\",\n        Command = \"ls\",\n        Timeout = \"10m\",\n        Env = \n        {\n            { \"foo\", \"bar\" },\n        },\n        Cron = new Scaleway.Job.Inputs.DefinitionCronArgs\n        {\n            Schedule = \"5 4 1 * *\",\n            Timezone = \"Europe/Paris\",\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/job\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := job.NewDefinition(ctx, \"main\", \u0026job.DefinitionArgs{\n\t\t\tName:        pulumi.String(\"testjob\"),\n\t\t\tCpuLimit:    pulumi.Int(140),\n\t\t\tMemoryLimit: pulumi.Int(256),\n\t\t\tImageUri:    pulumi.String(\"docker.io/alpine:latest\"),\n\t\t\tCommand:     pulumi.String(\"ls\"),\n\t\t\tTimeout:     pulumi.String(\"10m\"),\n\t\t\tEnv: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tCron: \u0026job.DefinitionCronArgs{\n\t\t\t\tSchedule: pulumi.String(\"5 4 1 * *\"),\n\t\t\t\tTimezone: pulumi.String(\"Europe/Paris\"),\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.job.Definition;\nimport com.pulumi.scaleway.job.DefinitionArgs;\nimport com.pulumi.scaleway.job.inputs.DefinitionCronArgs;\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 Definition(\"main\", DefinitionArgs.builder()\n            .name(\"testjob\")\n            .cpuLimit(140)\n            .memoryLimit(256)\n            .imageUri(\"docker.io/alpine:latest\")\n            .command(\"ls\")\n            .timeout(\"10m\")\n            .env(Map.of(\"foo\", \"bar\"))\n            .cron(DefinitionCronArgs.builder()\n                .schedule(\"5 4 1 * *\")\n                .timezone(\"Europe/Paris\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:job:Definition\n    properties:\n      name: testjob\n      cpuLimit: 140\n      memoryLimit: 256\n      imageUri: docker.io/alpine:latest\n      command: ls\n      timeout: 10m\n      env:\n        foo: bar\n      cron:\n        schedule: 5 4 1 * *\n        timezone: Europe/Paris\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With Secret Reference\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.job.Definition(\"main\", {\n    name: \"testjob\",\n    cpuLimit: 140,\n    memoryLimit: 256,\n    imageUri: \"docker.io/alpine:latest\",\n    command: \"ls\",\n    timeout: \"10m\",\n    cron: {\n        schedule: \"5 4 1 * *\",\n        timezone: \"Europe/Paris\",\n    },\n    secretReferences: [\n        {\n            secretId: \"11111111-1111-1111-1111-111111111111\",\n            file: \"/home/dev/secret_file\",\n        },\n        {\n            secretId: jobSecret.id,\n            secretVersion: \"1\",\n            environment: \"FOO\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.job.Definition(\"main\",\n    name=\"testjob\",\n    cpu_limit=140,\n    memory_limit=256,\n    image_uri=\"docker.io/alpine:latest\",\n    command=\"ls\",\n    timeout=\"10m\",\n    cron={\n        \"schedule\": \"5 4 1 * *\",\n        \"timezone\": \"Europe/Paris\",\n    },\n    secret_references=[\n        {\n            \"secret_id\": \"11111111-1111-1111-1111-111111111111\",\n            \"file\": \"/home/dev/secret_file\",\n        },\n        {\n            \"secret_id\": job_secret[\"id\"],\n            \"secret_version\": \"1\",\n            \"environment\": \"FOO\",\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.Job.Definition(\"main\", new()\n    {\n        Name = \"testjob\",\n        CpuLimit = 140,\n        MemoryLimit = 256,\n        ImageUri = \"docker.io/alpine:latest\",\n        Command = \"ls\",\n        Timeout = \"10m\",\n        Cron = new Scaleway.Job.Inputs.DefinitionCronArgs\n        {\n            Schedule = \"5 4 1 * *\",\n            Timezone = \"Europe/Paris\",\n        },\n        SecretReferences = new[]\n        {\n            new Scaleway.Job.Inputs.DefinitionSecretReferenceArgs\n            {\n                SecretId = \"11111111-1111-1111-1111-111111111111\",\n                File = \"/home/dev/secret_file\",\n            },\n            new Scaleway.Job.Inputs.DefinitionSecretReferenceArgs\n            {\n                SecretId = jobSecret.Id,\n                SecretVersion = \"1\",\n                Environment = \"FOO\",\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/job\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := job.NewDefinition(ctx, \"main\", \u0026job.DefinitionArgs{\n\t\t\tName:        pulumi.String(\"testjob\"),\n\t\t\tCpuLimit:    pulumi.Int(140),\n\t\t\tMemoryLimit: pulumi.Int(256),\n\t\t\tImageUri:    pulumi.String(\"docker.io/alpine:latest\"),\n\t\t\tCommand:     pulumi.String(\"ls\"),\n\t\t\tTimeout:     pulumi.String(\"10m\"),\n\t\t\tCron: \u0026job.DefinitionCronArgs{\n\t\t\t\tSchedule: pulumi.String(\"5 4 1 * *\"),\n\t\t\t\tTimezone: pulumi.String(\"Europe/Paris\"),\n\t\t\t},\n\t\t\tSecretReferences: job.DefinitionSecretReferenceArray{\n\t\t\t\t\u0026job.DefinitionSecretReferenceArgs{\n\t\t\t\t\tSecretId: pulumi.String(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\t\t\tFile:     pulumi.String(\"/home/dev/secret_file\"),\n\t\t\t\t},\n\t\t\t\t\u0026job.DefinitionSecretReferenceArgs{\n\t\t\t\t\tSecretId:      pulumi.Any(jobSecret.Id),\n\t\t\t\t\tSecretVersion: pulumi.String(\"1\"),\n\t\t\t\t\tEnvironment:   pulumi.String(\"FOO\"),\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.job.Definition;\nimport com.pulumi.scaleway.job.DefinitionArgs;\nimport com.pulumi.scaleway.job.inputs.DefinitionCronArgs;\nimport com.pulumi.scaleway.job.inputs.DefinitionSecretReferenceArgs;\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 Definition(\"main\", DefinitionArgs.builder()\n            .name(\"testjob\")\n            .cpuLimit(140)\n            .memoryLimit(256)\n            .imageUri(\"docker.io/alpine:latest\")\n            .command(\"ls\")\n            .timeout(\"10m\")\n            .cron(DefinitionCronArgs.builder()\n                .schedule(\"5 4 1 * *\")\n                .timezone(\"Europe/Paris\")\n                .build())\n            .secretReferences(            \n                DefinitionSecretReferenceArgs.builder()\n                    .secretId(\"11111111-1111-1111-1111-111111111111\")\n                    .file(\"/home/dev/secret_file\")\n                    .build(),\n                DefinitionSecretReferenceArgs.builder()\n                    .secretId(jobSecret.id())\n                    .secretVersion(\"1\")\n                    .environment(\"FOO\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:job:Definition\n    properties:\n      name: testjob\n      cpuLimit: 140\n      memoryLimit: 256\n      imageUri: docker.io/alpine:latest\n      command: ls\n      timeout: 10m\n      cron:\n        schedule: 5 4 1 * *\n        timezone: Europe/Paris\n      secretReferences:\n        - secretId: 11111111-1111-1111-1111-111111111111\n          file: /home/dev/secret_file\n        - secretId: ${jobSecret.id}\n          secretVersion: '1'\n          environment: FOO\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nServerless Jobs can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/jobDefinition:JobDefinition job fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments that will be passed to the startup command at runtime (in list of string format). Overrides the default arguments defined in the job image. Environment variables and secrets can be included, and will be expanded before the arguments are used.\n"},"command":{"type":"string","description":"The command that will be run in the container if specified.\n","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" startupCommand \" pulumi-lang-dotnet=\" StartupCommand \" pulumi-lang-go=\" startupCommand \" pulumi-lang-python=\" startup_command \" pulumi-lang-yaml=\" startupCommand \" pulumi-lang-java=\" startupCommand \"\u003e startup_command \u003c/span\u003einstead"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container running the job.\n"},"cron":{"$ref":"#/types/scaleway:index/JobDefinitionCron:JobDefinitionCron","description":"The cron configuration\n"},"description":{"type":"string","description":"The description of the job\n"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the container.\n"},"imageUri":{"type":"string","description":"The uri of the container image that will be used for the job run.\n"},"localStorageCapacity":{"type":"integer","description":"The local storage capacity of the job in MiB.\n"},"memoryLimit":{"type":"integer","description":"The memory computing resources in MB to allocate to each container running the job.\n"},"name":{"type":"string","description":"The name of the job.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Job is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Job.\n"},"secretReferences":{"type":"array","items":{"$ref":"#/types/scaleway:index/JobDefinitionSecretReference:JobDefinitionSecretReference"},"description":"A reference to a secret stored in Secret Manager.\n"},"startupCommands":{"type":"array","items":{"type":"string"},"description":"The command (main executable or entrypoint script) that will be run in the container (in list of string format). Overrides the default command defined in the job image.\n"},"timeout":{"type":"string","description":"The job run timeout, in Go Time format (ex: \u003cspan pulumi-lang-nodejs=\"`2h30m25s`\" pulumi-lang-dotnet=\"`2h30m25s`\" pulumi-lang-go=\"`2h30m25s`\" pulumi-lang-python=\"`2h30m25s`\" pulumi-lang-yaml=\"`2h30m25s`\" pulumi-lang-java=\"`2h30m25s`\"\u003e`2h30m25s`\u003c/span\u003e)\n"}},"required":["cpuLimit","imageUri","localStorageCapacity","memoryLimit","name","projectId","timeout"],"inputProperties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments that will be passed to the startup command at runtime (in list of string format). Overrides the default arguments defined in the job image. Environment variables and secrets can be included, and will be expanded before the arguments are used.\n"},"command":{"type":"string","description":"The command that will be run in the container if specified.\n","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" startupCommand \" pulumi-lang-dotnet=\" StartupCommand \" pulumi-lang-go=\" startupCommand \" pulumi-lang-python=\" startup_command \" pulumi-lang-yaml=\" startupCommand \" pulumi-lang-java=\" startupCommand \"\u003e startup_command \u003c/span\u003einstead"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container running the job.\n"},"cron":{"$ref":"#/types/scaleway:index/JobDefinitionCron:JobDefinitionCron","description":"The cron configuration\n"},"description":{"type":"string","description":"The description of the job\n"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the container.\n"},"imageUri":{"type":"string","description":"The uri of the container image that will be used for the job run.\n"},"localStorageCapacity":{"type":"integer","description":"The local storage capacity of the job in MiB.\n"},"memoryLimit":{"type":"integer","description":"The memory computing resources in MB to allocate to each container running the job.\n"},"name":{"type":"string","description":"The name of the job.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Job is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Job.\n","willReplaceOnChanges":true},"secretReferences":{"type":"array","items":{"$ref":"#/types/scaleway:index/JobDefinitionSecretReference:JobDefinitionSecretReference"},"description":"A reference to a secret stored in Secret Manager.\n"},"startupCommands":{"type":"array","items":{"type":"string"},"description":"The command (main executable or entrypoint script) that will be run in the container (in list of string format). Overrides the default command defined in the job image.\n"},"timeout":{"type":"string","description":"The job run timeout, in Go Time format (ex: \u003cspan pulumi-lang-nodejs=\"`2h30m25s`\" pulumi-lang-dotnet=\"`2h30m25s`\" pulumi-lang-go=\"`2h30m25s`\" pulumi-lang-python=\"`2h30m25s`\" pulumi-lang-yaml=\"`2h30m25s`\" pulumi-lang-java=\"`2h30m25s`\"\u003e`2h30m25s`\u003c/span\u003e)\n"}},"requiredInputs":["cpuLimit","imageUri","localStorageCapacity","memoryLimit"],"stateInputs":{"description":"Input properties used for looking up and filtering JobDefinition resources.\n","properties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments that will be passed to the startup command at runtime (in list of string format). Overrides the default arguments defined in the job image. Environment variables and secrets can be included, and will be expanded before the arguments are used.\n"},"command":{"type":"string","description":"The command that will be run in the container if specified.\n","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" startupCommand \" pulumi-lang-dotnet=\" StartupCommand \" pulumi-lang-go=\" startupCommand \" pulumi-lang-python=\" startup_command \" pulumi-lang-yaml=\" startupCommand \" pulumi-lang-java=\" startupCommand \"\u003e startup_command \u003c/span\u003einstead"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container running the job.\n"},"cron":{"$ref":"#/types/scaleway:index/JobDefinitionCron:JobDefinitionCron","description":"The cron configuration\n"},"description":{"type":"string","description":"The description of the job\n"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the container.\n"},"imageUri":{"type":"string","description":"The uri of the container image that will be used for the job run.\n"},"localStorageCapacity":{"type":"integer","description":"The local storage capacity of the job in MiB.\n"},"memoryLimit":{"type":"integer","description":"The memory computing resources in MB to allocate to each container running the job.\n"},"name":{"type":"string","description":"The name of the job.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Job is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Job.\n","willReplaceOnChanges":true},"secretReferences":{"type":"array","items":{"$ref":"#/types/scaleway:index/JobDefinitionSecretReference:JobDefinitionSecretReference"},"description":"A reference to a secret stored in Secret Manager.\n"},"startupCommands":{"type":"array","items":{"type":"string"},"description":"The command (main executable or entrypoint script) that will be run in the container (in list of string format). Overrides the default command defined in the job image.\n"},"timeout":{"type":"string","description":"The job run timeout, in Go Time format (ex: \u003cspan pulumi-lang-nodejs=\"`2h30m25s`\" pulumi-lang-dotnet=\"`2h30m25s`\" pulumi-lang-go=\"`2h30m25s`\" pulumi-lang-python=\"`2h30m25s`\" pulumi-lang-yaml=\"`2h30m25s`\" pulumi-lang-java=\"`2h30m25s`\"\u003e`2h30m25s`\u003c/span\u003e)\n"}},"type":"object"},"deprecationMessage":"scaleway.index/jobdefinition.JobDefinition has been deprecated in favor of scaleway.job/definition.Definition"},"scaleway:index/keyManagerKey:KeyManagerKey":{"description":"Provides a Scaleway Key Manager Key resource.  \nThis resource allows you to create and manage cryptographic keys in Scaleway Key Manager (KMS).\n\n## Example Usage\n\n### Symmetric Encryption Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst symmetric = new scaleway.keymanager.Key(\"symmetric\", {\n    name: \"my-kms-key\",\n    region: \"fr-par\",\n    projectId: \"your-project-id\",\n    usage: \"symmetric_encryption\",\n    algorithm: \"aes_256_gcm\",\n    description: \"Key for encrypting secrets\",\n    tags: [\n        \"env:prod\",\n        \"kms\",\n    ],\n    unprotected: true,\n    rotationPolicy: {\n        rotationPeriod: \"720h\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsymmetric = scaleway.keymanager.Key(\"symmetric\",\n    name=\"my-kms-key\",\n    region=\"fr-par\",\n    project_id=\"your-project-id\",\n    usage=\"symmetric_encryption\",\n    algorithm=\"aes_256_gcm\",\n    description=\"Key for encrypting secrets\",\n    tags=[\n        \"env:prod\",\n        \"kms\",\n    ],\n    unprotected=True,\n    rotation_policy={\n        \"rotation_period\": \"720h\",\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 symmetric = new Scaleway.Keymanager.Key(\"symmetric\", new()\n    {\n        Name = \"my-kms-key\",\n        Region = \"fr-par\",\n        ProjectId = \"your-project-id\",\n        Usage = \"symmetric_encryption\",\n        Algorithm = \"aes_256_gcm\",\n        Description = \"Key for encrypting secrets\",\n        Tags = new[]\n        {\n            \"env:prod\",\n            \"kms\",\n        },\n        Unprotected = true,\n        RotationPolicy = new Scaleway.Keymanager.Inputs.KeyRotationPolicyArgs\n        {\n            RotationPeriod = \"720h\",\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/keymanager\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewKey(ctx, \"symmetric\", \u0026keymanager.KeyArgs{\n\t\t\tName:        pulumi.String(\"my-kms-key\"),\n\t\t\tRegion:      pulumi.String(\"fr-par\"),\n\t\t\tProjectId:   pulumi.String(\"your-project-id\"),\n\t\t\tUsage:       pulumi.String(\"symmetric_encryption\"),\n\t\t\tAlgorithm:   pulumi.String(\"aes_256_gcm\"),\n\t\t\tDescription: pulumi.String(\"Key for encrypting secrets\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"env:prod\"),\n\t\t\t\tpulumi.String(\"kms\"),\n\t\t\t},\n\t\t\tUnprotected: pulumi.Bool(true),\n\t\t\tRotationPolicy: \u0026keymanager.KeyRotationPolicyArgs{\n\t\t\t\tRotationPeriod: pulumi.String(\"720h\"),\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.keymanager.Key;\nimport com.pulumi.scaleway.keymanager.KeyArgs;\nimport com.pulumi.scaleway.keymanager.inputs.KeyRotationPolicyArgs;\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 symmetric = new Key(\"symmetric\", KeyArgs.builder()\n            .name(\"my-kms-key\")\n            .region(\"fr-par\")\n            .projectId(\"your-project-id\")\n            .usage(\"symmetric_encryption\")\n            .algorithm(\"aes_256_gcm\")\n            .description(\"Key for encrypting secrets\")\n            .tags(            \n                \"env:prod\",\n                \"kms\")\n            .unprotected(true)\n            .rotationPolicy(KeyRotationPolicyArgs.builder()\n                .rotationPeriod(\"720h\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  symmetric:\n    type: scaleway:keymanager:Key\n    properties:\n      name: my-kms-key\n      region: fr-par\n      projectId: your-project-id\n      usage: symmetric_encryption\n      algorithm: aes_256_gcm\n      description: Key for encrypting secrets\n      tags:\n        - env:prod\n        - kms\n      unprotected: true\n      rotationPolicy:\n        rotationPeriod: 720h\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Asymmetric Encryption Key with RSA-4096\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst rsa4096 = new scaleway.keymanager.Key(\"rsa_4096\", {\n    name: \"rsa-4096-key\",\n    region: \"fr-par\",\n    usage: \"asymmetric_encryption\",\n    algorithm: \"rsa_oaep_4096_sha256\",\n    description: \"Key for encrypting large files with RSA-4096\",\n    unprotected: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nrsa4096 = scaleway.keymanager.Key(\"rsa_4096\",\n    name=\"rsa-4096-key\",\n    region=\"fr-par\",\n    usage=\"asymmetric_encryption\",\n    algorithm=\"rsa_oaep_4096_sha256\",\n    description=\"Key for encrypting large files with RSA-4096\",\n    unprotected=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 rsa4096 = new Scaleway.Keymanager.Key(\"rsa_4096\", new()\n    {\n        Name = \"rsa-4096-key\",\n        Region = \"fr-par\",\n        Usage = \"asymmetric_encryption\",\n        Algorithm = \"rsa_oaep_4096_sha256\",\n        Description = \"Key for encrypting large files with RSA-4096\",\n        Unprotected = 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/keymanager\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewKey(ctx, \"rsa_4096\", \u0026keymanager.KeyArgs{\n\t\t\tName:        pulumi.String(\"rsa-4096-key\"),\n\t\t\tRegion:      pulumi.String(\"fr-par\"),\n\t\t\tUsage:       pulumi.String(\"asymmetric_encryption\"),\n\t\t\tAlgorithm:   pulumi.String(\"rsa_oaep_4096_sha256\"),\n\t\t\tDescription: pulumi.String(\"Key for encrypting large files with RSA-4096\"),\n\t\t\tUnprotected: 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.keymanager.Key;\nimport com.pulumi.scaleway.keymanager.KeyArgs;\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 rsa4096 = new Key(\"rsa4096\", KeyArgs.builder()\n            .name(\"rsa-4096-key\")\n            .region(\"fr-par\")\n            .usage(\"asymmetric_encryption\")\n            .algorithm(\"rsa_oaep_4096_sha256\")\n            .description(\"Key for encrypting large files with RSA-4096\")\n            .unprotected(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rsa4096:\n    type: scaleway:keymanager:Key\n    name: rsa_4096\n    properties:\n      name: rsa-4096-key\n      region: fr-par\n      usage: asymmetric_encryption\n      algorithm: rsa_oaep_4096_sha256\n      description: Key for encrypting large files with RSA-4096\n      unprotected: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Asymmetric Signing Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst signing = new scaleway.keymanager.Key(\"signing\", {\n    name: \"signing-key\",\n    region: \"fr-par\",\n    usage: \"asymmetric_signing\",\n    algorithm: \"rsa_pss_2048_sha256\",\n    description: \"Key for signing documents\",\n    unprotected: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsigning = scaleway.keymanager.Key(\"signing\",\n    name=\"signing-key\",\n    region=\"fr-par\",\n    usage=\"asymmetric_signing\",\n    algorithm=\"rsa_pss_2048_sha256\",\n    description=\"Key for signing documents\",\n    unprotected=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 signing = new Scaleway.Keymanager.Key(\"signing\", new()\n    {\n        Name = \"signing-key\",\n        Region = \"fr-par\",\n        Usage = \"asymmetric_signing\",\n        Algorithm = \"rsa_pss_2048_sha256\",\n        Description = \"Key for signing documents\",\n        Unprotected = 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/keymanager\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewKey(ctx, \"signing\", \u0026keymanager.KeyArgs{\n\t\t\tName:        pulumi.String(\"signing-key\"),\n\t\t\tRegion:      pulumi.String(\"fr-par\"),\n\t\t\tUsage:       pulumi.String(\"asymmetric_signing\"),\n\t\t\tAlgorithm:   pulumi.String(\"rsa_pss_2048_sha256\"),\n\t\t\tDescription: pulumi.String(\"Key for signing documents\"),\n\t\t\tUnprotected: 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.keymanager.Key;\nimport com.pulumi.scaleway.keymanager.KeyArgs;\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 signing = new Key(\"signing\", KeyArgs.builder()\n            .name(\"signing-key\")\n            .region(\"fr-par\")\n            .usage(\"asymmetric_signing\")\n            .algorithm(\"rsa_pss_2048_sha256\")\n            .description(\"Key for signing documents\")\n            .unprotected(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  signing:\n    type: scaleway:keymanager:Key\n    properties:\n      name: signing-key\n      region: fr-par\n      usage: asymmetric_signing\n      algorithm: rsa_pss_2048_sha256\n      description: Key for signing documents\n      unprotected: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notes\n\n- **Protection**: By default, keys are protected and cannot be deleted. To allow deletion, set `unprotected = true` when creating the key.\n- **Rotation Policy**: The \u003cspan pulumi-lang-nodejs=\"`rotationPolicy`\" pulumi-lang-dotnet=\"`RotationPolicy`\" pulumi-lang-go=\"`rotationPolicy`\" pulumi-lang-python=\"`rotation_policy`\" pulumi-lang-yaml=\"`rotationPolicy`\" pulumi-lang-java=\"`rotationPolicy`\"\u003e`rotation_policy`\u003c/span\u003e block allows you to set automatic rotation for your key.\n- **Origin**: The \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e argument is optional and defaults to \u003cspan pulumi-lang-nodejs=\"`scalewayKms`\" pulumi-lang-dotnet=\"`ScalewayKms`\" pulumi-lang-go=\"`scalewayKms`\" pulumi-lang-python=\"`scaleway_kms`\" pulumi-lang-yaml=\"`scalewayKms`\" pulumi-lang-java=\"`scalewayKms`\"\u003e`scaleway_kms`\u003c/span\u003e. Use \u003cspan pulumi-lang-nodejs=\"`external`\" pulumi-lang-dotnet=\"`External`\" pulumi-lang-go=\"`external`\" pulumi-lang-python=\"`external`\" pulumi-lang-yaml=\"`external`\" pulumi-lang-java=\"`external`\"\u003e`external`\u003c/span\u003e if you want to import an external key (see Scaleway documentation for details).\n- **Project and Region**: If not specified, \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e will default to the provider configuration.\n- **Algorithm Validation**: The provider validates that the specified \u003cspan pulumi-lang-nodejs=\"`algorithm`\" pulumi-lang-dotnet=\"`Algorithm`\" pulumi-lang-go=\"`algorithm`\" pulumi-lang-python=\"`algorithm`\" pulumi-lang-yaml=\"`algorithm`\" pulumi-lang-java=\"`algorithm`\"\u003e`algorithm`\u003c/span\u003e is compatible with the \u003cspan pulumi-lang-nodejs=\"`usage`\" pulumi-lang-dotnet=\"`Usage`\" pulumi-lang-go=\"`usage`\" pulumi-lang-python=\"`usage`\" pulumi-lang-yaml=\"`usage`\" pulumi-lang-java=\"`usage`\"\u003e`usage`\u003c/span\u003e type at plan time, providing early feedback on configuration errors.\n\n## Import\n\nYou can import a key using its ID and region:\n\n```sh\n$ pulumi import scaleway:index/keyManagerKey:KeyManagerKey main fr-par/11111111-2222-3333-4444-555555555555\n```\n\n","properties":{"algorithm":{"type":"string","description":"– The cryptographic algorithm to use. Valid values depend on the \u003cspan pulumi-lang-nodejs=\"`usage`\" pulumi-lang-dotnet=\"`Usage`\" pulumi-lang-go=\"`usage`\" pulumi-lang-python=\"`usage`\" pulumi-lang-yaml=\"`usage`\" pulumi-lang-java=\"`usage`\"\u003e`usage`\u003c/span\u003e:\n- For \u003cspan pulumi-lang-nodejs=\"`symmetricEncryption`\" pulumi-lang-dotnet=\"`SymmetricEncryption`\" pulumi-lang-go=\"`symmetricEncryption`\" pulumi-lang-python=\"`symmetric_encryption`\" pulumi-lang-yaml=\"`symmetricEncryption`\" pulumi-lang-java=\"`symmetricEncryption`\"\u003e`symmetric_encryption`\u003c/span\u003e:\n"},"createdAt":{"type":"string","description":"The date and time when the key was created.\n"},"description":{"type":"string","description":"– A description for the key.\n"},"locked":{"type":"boolean","description":"Whether the key is locked.\n"},"name":{"type":"string","description":"The name of the key.\n"},"origin":{"type":"string","description":"– The origin of the key. Valid values are:\n"},"projectId":{"type":"string","description":"– The ID of the project the key belongs to.\n\n**Key Usage and Algorithm (both required):**\n"},"protected":{"type":"boolean","description":"Whether the key is protected from deletion.\n"},"region":{"type":"string","description":"The region in which to create the key (e.g., `fr-par`).\n"},"rotatedAt":{"type":"string","description":"The date and time when the key was last rotated.\n"},"rotationCount":{"type":"integer","description":"The number of times the key has been rotated.\n"},"rotationPolicy":{"$ref":"#/types/scaleway:index/KeyManagerKeyRotationPolicy:KeyManagerKeyRotationPolicy","description":"– Rotation policy for the key:\n"},"state":{"type":"string","description":"The state of the key (e.g., \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"– A list of tags to assign to the key.\n"},"unprotected":{"type":"boolean","description":"– If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the key can be deleted. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (protected).\n"},"updatedAt":{"type":"string","description":"The date and time when the key was last updated.\n"},"usage":{"type":"string","description":"– The usage type of the key. Valid values:\n"}},"required":["algorithm","createdAt","locked","name","projectId","protected","rotatedAt","rotationCount","state","updatedAt","usage"],"inputProperties":{"algorithm":{"type":"string","description":"– The cryptographic algorithm to use. Valid values depend on the \u003cspan pulumi-lang-nodejs=\"`usage`\" pulumi-lang-dotnet=\"`Usage`\" pulumi-lang-go=\"`usage`\" pulumi-lang-python=\"`usage`\" pulumi-lang-yaml=\"`usage`\" pulumi-lang-java=\"`usage`\"\u003e`usage`\u003c/span\u003e:\n- For \u003cspan pulumi-lang-nodejs=\"`symmetricEncryption`\" pulumi-lang-dotnet=\"`SymmetricEncryption`\" pulumi-lang-go=\"`symmetricEncryption`\" pulumi-lang-python=\"`symmetric_encryption`\" pulumi-lang-yaml=\"`symmetricEncryption`\" pulumi-lang-java=\"`symmetricEncryption`\"\u003e`symmetric_encryption`\u003c/span\u003e:\n"},"description":{"type":"string","description":"– A description for the key.\n"},"name":{"type":"string","description":"The name of the key.\n"},"origin":{"type":"string","description":"– The origin of the key. Valid values are:\n"},"projectId":{"type":"string","description":"– The ID of the project the key belongs to.\n\n**Key Usage and Algorithm (both required):**\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region in which to create the key (e.g., `fr-par`).\n","willReplaceOnChanges":true},"rotationPolicy":{"$ref":"#/types/scaleway:index/KeyManagerKeyRotationPolicy:KeyManagerKeyRotationPolicy","description":"– Rotation policy for the key:\n"},"tags":{"type":"array","items":{"type":"string"},"description":"– A list of tags to assign to the key.\n"},"unprotected":{"type":"boolean","description":"– If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the key can be deleted. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (protected).\n"},"usage":{"type":"string","description":"– The usage type of the key. Valid values:\n"}},"requiredInputs":["algorithm","usage"],"stateInputs":{"description":"Input properties used for looking up and filtering KeyManagerKey resources.\n","properties":{"algorithm":{"type":"string","description":"– The cryptographic algorithm to use. Valid values depend on the \u003cspan pulumi-lang-nodejs=\"`usage`\" pulumi-lang-dotnet=\"`Usage`\" pulumi-lang-go=\"`usage`\" pulumi-lang-python=\"`usage`\" pulumi-lang-yaml=\"`usage`\" pulumi-lang-java=\"`usage`\"\u003e`usage`\u003c/span\u003e:\n- For \u003cspan pulumi-lang-nodejs=\"`symmetricEncryption`\" pulumi-lang-dotnet=\"`SymmetricEncryption`\" pulumi-lang-go=\"`symmetricEncryption`\" pulumi-lang-python=\"`symmetric_encryption`\" pulumi-lang-yaml=\"`symmetricEncryption`\" pulumi-lang-java=\"`symmetricEncryption`\"\u003e`symmetric_encryption`\u003c/span\u003e:\n"},"createdAt":{"type":"string","description":"The date and time when the key was created.\n"},"description":{"type":"string","description":"– A description for the key.\n"},"locked":{"type":"boolean","description":"Whether the key is locked.\n"},"name":{"type":"string","description":"The name of the key.\n"},"origin":{"type":"string","description":"– The origin of the key. Valid values are:\n"},"projectId":{"type":"string","description":"– The ID of the project the key belongs to.\n\n**Key Usage and Algorithm (both required):**\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"Whether the key is protected from deletion.\n"},"region":{"type":"string","description":"The region in which to create the key (e.g., `fr-par`).\n","willReplaceOnChanges":true},"rotatedAt":{"type":"string","description":"The date and time when the key was last rotated.\n"},"rotationCount":{"type":"integer","description":"The number of times the key has been rotated.\n"},"rotationPolicy":{"$ref":"#/types/scaleway:index/KeyManagerKeyRotationPolicy:KeyManagerKeyRotationPolicy","description":"– Rotation policy for the key:\n"},"state":{"type":"string","description":"The state of the key (e.g., \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"– A list of tags to assign to the key.\n"},"unprotected":{"type":"boolean","description":"– If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the key can be deleted. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (protected).\n"},"updatedAt":{"type":"string","description":"The date and time when the key was last updated.\n"},"usage":{"type":"string","description":"– The usage type of the key. Valid values:\n"}},"type":"object"},"deprecationMessage":"scaleway.index/keymanagerkey.KeyManagerKey has been deprecated in favor of scaleway.keymanager/key.Key"},"scaleway:index/kubernetesCluster:KubernetesCluster":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-dotnet=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-go=\"`kubernetes.Cluster`\" pulumi-lang-python=\"`kubernetes.Cluster`\" pulumi-lang-yaml=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-java=\"`scaleway.kubernetes.Cluster`\"\u003e`scaleway.kubernetes.Cluster`\u003c/span\u003e resource allows you to create and manage Scaleway Kubernetes clusters.\n\nRefer to the Kubernetes [documentation](https://www.scaleway.com/en/docs/compute/kubernetes/) and [API documentation](https://www.scaleway.com/en/developers/api/kubernetes/) for more information.\n\n\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 pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    version: \"1.32.3\",\n    cni: \"cilium\",\n    privateNetworkId: pn.id,\n    deleteAdditionalResources: false,\n});\nconst pool = new scaleway.kubernetes.Pool(\"pool\", {\n    clusterId: cluster.id,\n    name: \"tf-pool\",\n    nodeType: \"DEV1-M\",\n    size: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn = scaleway.network.PrivateNetwork(\"pn\")\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    version=\"1.32.3\",\n    cni=\"cilium\",\n    private_network_id=pn.id,\n    delete_additional_resources=False)\npool = scaleway.kubernetes.Pool(\"pool\",\n    cluster_id=cluster.id,\n    name=\"tf-pool\",\n    node_type=\"DEV1-M\",\n    size=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Version = \"1.32.3\",\n        Cni = \"cilium\",\n        PrivateNetworkId = pn.Id,\n        DeleteAdditionalResources = false,\n    });\n\n    var pool = new Scaleway.Kubernetes.Pool(\"pool\", new()\n    {\n        ClusterId = cluster.Id,\n        Name = \"tf-pool\",\n        NodeType = \"DEV1-M\",\n        Size = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:                      pulumi.String(\"tf-cluster\"),\n\t\t\tVersion:                   pulumi.String(\"1.32.3\"),\n\t\t\tCni:                       pulumi.String(\"cilium\"),\n\t\t\tPrivateNetworkId:          pn.ID(),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kubernetes.NewPool(ctx, \"pool\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tName:      pulumi.String(\"tf-pool\"),\n\t\t\tNodeType:  pulumi.String(\"DEV1-M\"),\n\t\t\tSize:      pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var pn = new PrivateNetwork(\"pn\");\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .version(\"1.32.3\")\n            .cni(\"cilium\")\n            .privateNetworkId(pn.id())\n            .deleteAdditionalResources(false)\n            .build());\n\n        var pool = new Pool(\"pool\", PoolArgs.builder()\n            .clusterId(cluster.id())\n            .name(\"tf-pool\")\n            .nodeType(\"DEV1-M\")\n            .size(1)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pn:\n    type: scaleway:network:PrivateNetwork\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      version: 1.32.3\n      cni: cilium\n      privateNetworkId: ${pn.id}\n      deleteAdditionalResources: false\n  pool:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${cluster.id}\n      name: tf-pool\n      nodeType: DEV1-M\n      size: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    description: \"cluster made in terraform\",\n    version: \"1.32.3\",\n    cni: \"calico\",\n    tags: [\"terraform\"],\n    privateNetworkId: pn.id,\n    deleteAdditionalResources: false,\n    autoscalerConfig: {\n        disableScaleDown: false,\n        scaleDownDelayAfterAdd: \"5m\",\n        estimator: \"binpacking\",\n        expander: \"random\",\n        ignoreDaemonsetsUtilization: true,\n        balanceSimilarNodeGroups: true,\n        expendablePodsPriorityCutoff: -5,\n    },\n});\nconst pool = new scaleway.kubernetes.Pool(\"pool\", {\n    clusterId: cluster.id,\n    name: \"tf-pool\",\n    nodeType: \"DEV1-M\",\n    size: 3,\n    autoscaling: true,\n    autohealing: true,\n    minSize: 1,\n    maxSize: 5,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn = scaleway.network.PrivateNetwork(\"pn\")\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    description=\"cluster made in terraform\",\n    version=\"1.32.3\",\n    cni=\"calico\",\n    tags=[\"terraform\"],\n    private_network_id=pn.id,\n    delete_additional_resources=False,\n    autoscaler_config={\n        \"disable_scale_down\": False,\n        \"scale_down_delay_after_add\": \"5m\",\n        \"estimator\": \"binpacking\",\n        \"expander\": \"random\",\n        \"ignore_daemonsets_utilization\": True,\n        \"balance_similar_node_groups\": True,\n        \"expendable_pods_priority_cutoff\": -5,\n    })\npool = scaleway.kubernetes.Pool(\"pool\",\n    cluster_id=cluster.id,\n    name=\"tf-pool\",\n    node_type=\"DEV1-M\",\n    size=3,\n    autoscaling=True,\n    autohealing=True,\n    min_size=1,\n    max_size=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Description = \"cluster made in terraform\",\n        Version = \"1.32.3\",\n        Cni = \"calico\",\n        Tags = new[]\n        {\n            \"terraform\",\n        },\n        PrivateNetworkId = pn.Id,\n        DeleteAdditionalResources = false,\n        AutoscalerConfig = new Scaleway.Kubernetes.Inputs.ClusterAutoscalerConfigArgs\n        {\n            DisableScaleDown = false,\n            ScaleDownDelayAfterAdd = \"5m\",\n            Estimator = \"binpacking\",\n            Expander = \"random\",\n            IgnoreDaemonsetsUtilization = true,\n            BalanceSimilarNodeGroups = true,\n            ExpendablePodsPriorityCutoff = -5,\n        },\n    });\n\n    var pool = new Scaleway.Kubernetes.Pool(\"pool\", new()\n    {\n        ClusterId = cluster.Id,\n        Name = \"tf-pool\",\n        NodeType = \"DEV1-M\",\n        Size = 3,\n        Autoscaling = true,\n        Autohealing = true,\n        MinSize = 1,\n        MaxSize = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:        pulumi.String(\"tf-cluster\"),\n\t\t\tDescription: pulumi.String(\"cluster made in terraform\"),\n\t\t\tVersion:     pulumi.String(\"1.32.3\"),\n\t\t\tCni:         pulumi.String(\"calico\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform\"),\n\t\t\t},\n\t\t\tPrivateNetworkId:          pn.ID(),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t\tAutoscalerConfig: \u0026kubernetes.ClusterAutoscalerConfigArgs{\n\t\t\t\tDisableScaleDown:             pulumi.Bool(false),\n\t\t\t\tScaleDownDelayAfterAdd:       pulumi.String(\"5m\"),\n\t\t\t\tEstimator:                    pulumi.String(\"binpacking\"),\n\t\t\t\tExpander:                     pulumi.String(\"random\"),\n\t\t\t\tIgnoreDaemonsetsUtilization:  pulumi.Bool(true),\n\t\t\t\tBalanceSimilarNodeGroups:     pulumi.Bool(true),\n\t\t\t\tExpendablePodsPriorityCutoff: pulumi.Int(-5),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kubernetes.NewPool(ctx, \"pool\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId:   cluster.ID(),\n\t\t\tName:        pulumi.String(\"tf-pool\"),\n\t\t\tNodeType:    pulumi.String(\"DEV1-M\"),\n\t\t\tSize:        pulumi.Int(3),\n\t\t\tAutoscaling: pulumi.Bool(true),\n\t\t\tAutohealing: pulumi.Bool(true),\n\t\t\tMinSize:     pulumi.Int(1),\n\t\t\tMaxSize:     pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.inputs.ClusterAutoscalerConfigArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var pn = new PrivateNetwork(\"pn\");\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .description(\"cluster made in terraform\")\n            .version(\"1.32.3\")\n            .cni(\"calico\")\n            .tags(\"terraform\")\n            .privateNetworkId(pn.id())\n            .deleteAdditionalResources(false)\n            .autoscalerConfig(ClusterAutoscalerConfigArgs.builder()\n                .disableScaleDown(false)\n                .scaleDownDelayAfterAdd(\"5m\")\n                .estimator(\"binpacking\")\n                .expander(\"random\")\n                .ignoreDaemonsetsUtilization(true)\n                .balanceSimilarNodeGroups(true)\n                .expendablePodsPriorityCutoff(-5)\n                .build())\n            .build());\n\n        var pool = new Pool(\"pool\", PoolArgs.builder()\n            .clusterId(cluster.id())\n            .name(\"tf-pool\")\n            .nodeType(\"DEV1-M\")\n            .size(3)\n            .autoscaling(true)\n            .autohealing(true)\n            .minSize(1)\n            .maxSize(5)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pn:\n    type: scaleway:network:PrivateNetwork\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      description: cluster made in terraform\n      version: 1.32.3\n      cni: calico\n      tags:\n        - terraform\n      privateNetworkId: ${pn.id}\n      deleteAdditionalResources: false\n      autoscalerConfig:\n        disableScaleDown: false\n        scaleDownDelayAfterAdd: 5m\n        estimator: binpacking\n        expander: random\n        ignoreDaemonsetsUtilization: true\n        balanceSimilarNodeGroups: true\n        expendablePodsPriorityCutoff: -5\n  pool:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${cluster.id}\n      name: tf-pool\n      nodeType: DEV1-M\n      size: 3\n      autoscaling: true\n      autohealing: true\n      minSize: 1\n      maxSize: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as _null from \"@pulumi/null\";\nimport * as helm from \"@pulumi/helm\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Example with an Helm provider\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    version: \"1.29.1\",\n    cni: \"cilium\",\n    deleteAdditionalResources: false,\n    privateNetworkId: pn.id,\n});\nconst pool = new scaleway.kubernetes.Pool(\"pool\", {\n    clusterId: cluster.id,\n    name: \"tf-pool\",\n    nodeType: \"DEV1-M\",\n    size: 1,\n});\nconst kubeconfig = new _null.Resource(\"kubeconfig\", {triggers: {\n    host: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].host),\n    token: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].token),\n    clusterCaCertificate: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].clusterCaCertificate),\n}}, {\n    dependsOn: [pool],\n});\nconst nginxIp = new scaleway.loadbalancers.Ip(\"nginx_ip\", {\n    zone: \"fr-par-1\",\n    projectId: cluster.projectId,\n});\nconst nginxIngress = new helm.index.Release(\"nginx_ingress\", {\n    name: \"nginx-ingress\",\n    namespace: \"kube-system\",\n    repository: \"https://kubernetes.github.io/ingress-nginx\",\n    chart: \"ingress-nginx\",\n    set: [\n        {\n            name: \"controller.service.loadBalancerIP\",\n            value: nginxIp.ipAddress,\n        },\n        {\n            name: \"controller.config.use-proxy-protocol\",\n            value: \"true\",\n        },\n        {\n            name: \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-proxy-protocol-v2\",\n            value: \"true\",\n        },\n        {\n            name: \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-zone\",\n            value: nginxIp.zone,\n        },\n        {\n            name: \"controller.service.externalTrafficPolicy\",\n            value: \"Local\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_helm as helm\nimport pulumi_null as null\nimport pulumiverse_scaleway as scaleway\n\n# Example with an Helm provider\npn = scaleway.network.PrivateNetwork(\"pn\")\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    version=\"1.29.1\",\n    cni=\"cilium\",\n    delete_additional_resources=False,\n    private_network_id=pn.id)\npool = scaleway.kubernetes.Pool(\"pool\",\n    cluster_id=cluster.id,\n    name=\"tf-pool\",\n    node_type=\"DEV1-M\",\n    size=1)\nkubeconfig = null.Resource(\"kubeconfig\", triggers={\n    \"host\": cluster.kubeconfigs[0].host,\n    \"token\": cluster.kubeconfigs[0].token,\n    \"clusterCaCertificate\": cluster.kubeconfigs[0].cluster_ca_certificate,\n},\nopts = pulumi.ResourceOptions(depends_on=[pool]))\nnginx_ip = scaleway.loadbalancers.Ip(\"nginx_ip\",\n    zone=\"fr-par-1\",\n    project_id=cluster.project_id)\nnginx_ingress = helm.index.Release(\"nginx_ingress\",\n    name=nginx-ingress,\n    namespace=kube-system,\n    repository=https://kubernetes.github.io/ingress-nginx,\n    chart=ingress-nginx,\n    set=[\n        {\n            name: controller.service.loadBalancerIP,\n            value: nginx_ip.ip_address,\n        },\n        {\n            name: controller.config.use-proxy-protocol,\n            value: true,\n        },\n        {\n            name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-proxy-protocol-v2,\n            value: true,\n        },\n        {\n            name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-zone,\n            value: nginx_ip.zone,\n        },\n        {\n            name: controller.service.externalTrafficPolicy,\n            value: Local,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Helm = Pulumi.Helm;\nusing Null = Pulumi.Null;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Example with an Helm provider\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Version = \"1.29.1\",\n        Cni = \"cilium\",\n        DeleteAdditionalResources = false,\n        PrivateNetworkId = pn.Id,\n    });\n\n    var pool = new Scaleway.Kubernetes.Pool(\"pool\", new()\n    {\n        ClusterId = cluster.Id,\n        Name = \"tf-pool\",\n        NodeType = \"DEV1-M\",\n        Size = 1,\n    });\n\n    var kubeconfig = new Null.Resource(\"kubeconfig\", new()\n    {\n        Triggers = \n        {\n            { \"host\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].Host) },\n            { \"token\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].Token) },\n            { \"clusterCaCertificate\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].ClusterCaCertificate) },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            pool,\n        },\n    });\n\n    var nginxIp = new Scaleway.Loadbalancers.Ip(\"nginx_ip\", new()\n    {\n        Zone = \"fr-par-1\",\n        ProjectId = cluster.ProjectId,\n    });\n\n    var nginxIngress = new Helm.Index.Release(\"nginx_ingress\", new()\n    {\n        Name = \"nginx-ingress\",\n        Namespace = \"kube-system\",\n        Repository = \"https://kubernetes.github.io/ingress-nginx\",\n        Chart = \"ingress-nginx\",\n        Set = new[]\n        {\n            \n            {\n                { \"name\", \"controller.service.loadBalancerIP\" },\n                { \"value\", nginxIp.IpAddress },\n            },\n            \n            {\n                { \"name\", \"controller.config.use-proxy-protocol\" },\n                { \"value\", \"true\" },\n            },\n            \n            {\n                { \"name\", \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-proxy-protocol-v2\" },\n                { \"value\", \"true\" },\n            },\n            \n            {\n                { \"name\", \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-zone\" },\n                { \"value\", nginxIp.Zone },\n            },\n            \n            {\n                { \"name\", \"controller.service.externalTrafficPolicy\" },\n                { \"value\", \"Local\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-helm/sdk/go/helm\"\n\t\"github.com/pulumi/pulumi-null/sdk/go/null\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example with an Helm provider\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:                      pulumi.String(\"tf-cluster\"),\n\t\t\tVersion:                   pulumi.String(\"1.29.1\"),\n\t\t\tCni:                       pulumi.String(\"cilium\"),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t\tPrivateNetworkId:          pn.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := kubernetes.NewPool(ctx, \"pool\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tName:      pulumi.String(\"tf-pool\"),\n\t\t\tNodeType:  pulumi.String(\"DEV1-M\"),\n\t\t\tSize:      pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = null.NewResource(ctx, \"kubeconfig\", \u0026null.ResourceArgs{\n\t\t\tTriggers: pulumi.StringMap{\n\t\t\t\t\"host\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].Host, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t\t\"token\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].Token, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t\t\"clusterCaCertificate\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].ClusterCaCertificate, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tpool,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnginxIp, err := loadbalancers.NewIp(ctx, \"nginx_ip\", \u0026loadbalancers.IpArgs{\n\t\t\tZone:      pulumi.String(\"fr-par-1\"),\n\t\t\tProjectId: cluster.ProjectId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = helm.NewRelease(ctx, \"nginx_ingress\", \u0026helm.ReleaseArgs{\n\t\t\tName:       \"nginx-ingress\",\n\t\t\tNamespace:  \"kube-system\",\n\t\t\tRepository: \"https://kubernetes.github.io/ingress-nginx\",\n\t\t\tChart:      \"ingress-nginx\",\n\t\t\tSet: []interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":  \"controller.service.loadBalancerIP\",\n\t\t\t\t\t\"value\": nginxIp.IpAddress,\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":  \"controller.config.use-proxy-protocol\",\n\t\t\t\t\t\"value\": \"true\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":  \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-proxy-protocol-v2\",\n\t\t\t\t\t\"value\": \"true\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":  \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-zone\",\n\t\t\t\t\t\"value\": nginxIp.Zone,\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":  \"controller.service.externalTrafficPolicy\",\n\t\t\t\t\t\"value\": \"Local\",\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\nimport com.pulumi.null.Resource;\nimport com.pulumi.null.ResourceArgs;\nimport com.pulumi.scaleway.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.IpArgs;\nimport com.pulumi.helm.Release;\nimport com.pulumi.helm.ReleaseArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Example with an Helm provider\n        var pn = new PrivateNetwork(\"pn\");\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .version(\"1.29.1\")\n            .cni(\"cilium\")\n            .deleteAdditionalResources(false)\n            .privateNetworkId(pn.id())\n            .build());\n\n        var pool = new Pool(\"pool\", PoolArgs.builder()\n            .clusterId(cluster.id())\n            .name(\"tf-pool\")\n            .nodeType(\"DEV1-M\")\n            .size(1)\n            .build());\n\n        var kubeconfig = new Resource(\"kubeconfig\", ResourceArgs.builder()\n            .triggers(Map.ofEntries(\n                Map.entry(\"host\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].host())),\n                Map.entry(\"token\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].token())),\n                Map.entry(\"clusterCaCertificate\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].clusterCaCertificate()))\n            ))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(pool)\n                .build());\n\n        var nginxIp = new Ip(\"nginxIp\", IpArgs.builder()\n            .zone(\"fr-par-1\")\n            .projectId(cluster.projectId())\n            .build());\n\n        var nginxIngress = new Release(\"nginxIngress\", ReleaseArgs.builder()\n            .name(\"nginx-ingress\")\n            .namespace(\"kube-system\")\n            .repository(\"https://kubernetes.github.io/ingress-nginx\")\n            .chart(\"ingress-nginx\")\n            .set(List.of(            \n                Map.ofEntries(\n                    Map.entry(\"name\", \"controller.service.loadBalancerIP\"),\n                    Map.entry(\"value\", nginxIp.ipAddress())\n                ),\n                Map.ofEntries(\n                    Map.entry(\"name\", \"controller.config.use-proxy-protocol\"),\n                    Map.entry(\"value\", \"true\")\n                ),\n                Map.ofEntries(\n                    Map.entry(\"name\", \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-proxy-protocol-v2\"),\n                    Map.entry(\"value\", \"true\")\n                ),\n                Map.ofEntries(\n                    Map.entry(\"name\", \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-zone\"),\n                    Map.entry(\"value\", nginxIp.zone())\n                ),\n                Map.ofEntries(\n                    Map.entry(\"name\", \"controller.service.externalTrafficPolicy\"),\n                    Map.entry(\"value\", \"Local\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Example with an Helm provider\n  pn:\n    type: scaleway:network:PrivateNetwork\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      version: 1.29.1\n      cni: cilium\n      deleteAdditionalResources: false\n      privateNetworkId: ${pn.id}\n  pool:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${cluster.id}\n      name: tf-pool\n      nodeType: DEV1-M\n      size: 1\n  kubeconfig:\n    type: null:Resource\n    properties:\n      triggers:\n        host: ${cluster.kubeconfigs[0].host}\n        token: ${cluster.kubeconfigs[0].token}\n        clusterCaCertificate: ${cluster.kubeconfigs[0].clusterCaCertificate}\n    options:\n      dependsOn:\n        - ${pool}\n  nginxIp:\n    type: scaleway:loadbalancers:Ip\n    name: nginx_ip\n    properties:\n      zone: fr-par-1\n      projectId: ${cluster.projectId}\n  nginxIngress:\n    type: helm:Release\n    name: nginx_ingress\n    properties:\n      name: nginx-ingress\n      namespace: kube-system\n      repository: https://kubernetes.github.io/ingress-nginx\n      chart: ingress-nginx\n      set:\n        - name: controller.service.loadBalancerIP\n          value: ${nginxIp.ipAddress}\n        - name: controller.config.use-proxy-protocol\n          value: 'true'\n        - name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-proxy-protocol-v2\n          value: 'true'\n        - name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-zone\n          value: ${nginxIp.zone}\n        - name: controller.service.externalTrafficPolicy\n          value: Local\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as _null from \"@pulumi/null\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Example with the kubernetes provider \nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    version: \"1.29.1\",\n    cni: \"cilium\",\n    privateNetworkId: pn.id,\n    deleteAdditionalResources: false,\n});\nconst pool = new scaleway.kubernetes.Pool(\"pool\", {\n    clusterId: cluster.id,\n    name: \"tf-pool\",\n    nodeType: \"DEV1-M\",\n    size: 1,\n});\n// The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n// It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\nconst kubeconfig = new _null.Resource(\"kubeconfig\", {triggers: {\n    host: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].host),\n    token: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].token),\n    clusterCaCertificate: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].clusterCaCertificate),\n}}, {\n    dependsOn: [pool],\n});\n```\n```python\nimport pulumi\nimport pulumi_null as null\nimport pulumiverse_scaleway as scaleway\n\n# Example with the kubernetes provider \npn = scaleway.network.PrivateNetwork(\"pn\")\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    version=\"1.29.1\",\n    cni=\"cilium\",\n    private_network_id=pn.id,\n    delete_additional_resources=False)\npool = scaleway.kubernetes.Pool(\"pool\",\n    cluster_id=cluster.id,\n    name=\"tf-pool\",\n    node_type=\"DEV1-M\",\n    size=1)\n# The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n# It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\nkubeconfig = null.Resource(\"kubeconfig\", triggers={\n    \"host\": cluster.kubeconfigs[0].host,\n    \"token\": cluster.kubeconfigs[0].token,\n    \"clusterCaCertificate\": cluster.kubeconfigs[0].cluster_ca_certificate,\n},\nopts = pulumi.ResourceOptions(depends_on=[pool]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Null = Pulumi.Null;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Example with the kubernetes provider \n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Version = \"1.29.1\",\n        Cni = \"cilium\",\n        PrivateNetworkId = pn.Id,\n        DeleteAdditionalResources = false,\n    });\n\n    var pool = new Scaleway.Kubernetes.Pool(\"pool\", new()\n    {\n        ClusterId = cluster.Id,\n        Name = \"tf-pool\",\n        NodeType = \"DEV1-M\",\n        Size = 1,\n    });\n\n    // The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n    // It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\n    var kubeconfig = new Null.Resource(\"kubeconfig\", new()\n    {\n        Triggers = \n        {\n            { \"host\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].Host) },\n            { \"token\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].Token) },\n            { \"clusterCaCertificate\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].ClusterCaCertificate) },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            pool,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-null/sdk/go/null\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example with the kubernetes provider\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:                      pulumi.String(\"tf-cluster\"),\n\t\t\tVersion:                   pulumi.String(\"1.29.1\"),\n\t\t\tCni:                       pulumi.String(\"cilium\"),\n\t\t\tPrivateNetworkId:          pn.ID(),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := kubernetes.NewPool(ctx, \"pool\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tName:      pulumi.String(\"tf-pool\"),\n\t\t\tNodeType:  pulumi.String(\"DEV1-M\"),\n\t\t\tSize:      pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n\t\t// It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\n\t\t_, err = null.NewResource(ctx, \"kubeconfig\", \u0026null.ResourceArgs{\n\t\t\tTriggers: pulumi.StringMap{\n\t\t\t\t\"host\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].Host, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t\t\"token\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].Token, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t\t\"clusterCaCertificate\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].ClusterCaCertificate, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tpool,\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\nimport com.pulumi.null.Resource;\nimport com.pulumi.null.ResourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Example with the kubernetes provider \n        var pn = new PrivateNetwork(\"pn\");\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .version(\"1.29.1\")\n            .cni(\"cilium\")\n            .privateNetworkId(pn.id())\n            .deleteAdditionalResources(false)\n            .build());\n\n        var pool = new Pool(\"pool\", PoolArgs.builder()\n            .clusterId(cluster.id())\n            .name(\"tf-pool\")\n            .nodeType(\"DEV1-M\")\n            .size(1)\n            .build());\n\n        // The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n        // It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\n        var kubeconfig = new Resource(\"kubeconfig\", ResourceArgs.builder()\n            .triggers(Map.ofEntries(\n                Map.entry(\"host\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].host())),\n                Map.entry(\"token\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].token())),\n                Map.entry(\"clusterCaCertificate\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].clusterCaCertificate()))\n            ))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(pool)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Example with the kubernetes provider\n  pn:\n    type: scaleway:network:PrivateNetwork\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      version: 1.29.1\n      cni: cilium\n      privateNetworkId: ${pn.id}\n      deleteAdditionalResources: false\n  pool:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${cluster.id}\n      name: tf-pool\n      nodeType: DEV1-M\n      size: 1\n  # The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n  # It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\n  kubeconfig:\n    type: null:Resource\n    properties:\n      triggers:\n        host: ${cluster.kubeconfigs[0].host}\n        token: ${cluster.kubeconfigs[0].token}\n        clusterCaCertificate: ${cluster.kubeconfigs[0].clusterCaCertificate}\n    options:\n      dependsOn:\n        - ${pool}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Multicloud Kubernetes Cluster Example\n// For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    type: \"multicloud\",\n    version: \"1.32.3\",\n    cni: \"kilo\",\n    deleteAdditionalResources: false,\n});\nconst pool = new scaleway.kubernetes.Pool(\"pool\", {\n    clusterId: cluster.id,\n    name: \"tf-pool\",\n    nodeType: \"external\",\n    size: 0,\n    minSize: 0,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n# Multicloud Kubernetes Cluster Example\n# For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    type=\"multicloud\",\n    version=\"1.32.3\",\n    cni=\"kilo\",\n    delete_additional_resources=False)\npool = scaleway.kubernetes.Pool(\"pool\",\n    cluster_id=cluster.id,\n    name=\"tf-pool\",\n    node_type=\"external\",\n    size=0,\n    min_size=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Multicloud Kubernetes Cluster Example\n    // For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Type = \"multicloud\",\n        Version = \"1.32.3\",\n        Cni = \"kilo\",\n        DeleteAdditionalResources = false,\n    });\n\n    var pool = new Scaleway.Kubernetes.Pool(\"pool\", new()\n    {\n        ClusterId = cluster.Id,\n        Name = \"tf-pool\",\n        NodeType = \"external\",\n        Size = 0,\n        MinSize = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Multicloud Kubernetes Cluster Example\n\t\t// For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\n\t\tcluster, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:                      pulumi.String(\"tf-cluster\"),\n\t\t\tType:                      pulumi.String(\"multicloud\"),\n\t\t\tVersion:                   pulumi.String(\"1.32.3\"),\n\t\t\tCni:                       pulumi.String(\"kilo\"),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kubernetes.NewPool(ctx, \"pool\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tName:      pulumi.String(\"tf-pool\"),\n\t\t\tNodeType:  pulumi.String(\"external\"),\n\t\t\tSize:      pulumi.Int(0),\n\t\t\tMinSize:   pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\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        // Multicloud Kubernetes Cluster Example\n        // For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .type(\"multicloud\")\n            .version(\"1.32.3\")\n            .cni(\"kilo\")\n            .deleteAdditionalResources(false)\n            .build());\n\n        var pool = new Pool(\"pool\", PoolArgs.builder()\n            .clusterId(cluster.id())\n            .name(\"tf-pool\")\n            .nodeType(\"external\")\n            .size(0)\n            .minSize(0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Multicloud Kubernetes Cluster Example\n  # For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      type: multicloud\n      version: 1.32.3\n      cni: kilo\n      deleteAdditionalResources: false\n  pool:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${cluster.id}\n      name: tf-pool\n      nodeType: external\n      size: 0\n      minSize: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\n\n## Deprecation of\u003cspan pulumi-lang-nodejs=\" defaultPool\n\" pulumi-lang-dotnet=\" DefaultPool\n\" pulumi-lang-go=\" defaultPool\n\" pulumi-lang-python=\" default_pool\n\" pulumi-lang-yaml=\" defaultPool\n\" pulumi-lang-java=\" defaultPool\n\"\u003e default_pool\n\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`defaultPool`\" pulumi-lang-dotnet=\"`DefaultPool`\" pulumi-lang-go=\"`defaultPool`\" pulumi-lang-python=\"`default_pool`\" pulumi-lang-yaml=\"`defaultPool`\" pulumi-lang-java=\"`defaultPool`\"\u003e`default_pool`\u003c/span\u003e is deprecated in favour the \u003cspan pulumi-lang-nodejs=\"`scaleway.kubernetes.Pool`\" pulumi-lang-dotnet=\"`scaleway.kubernetes.Pool`\" pulumi-lang-go=\"`kubernetes.Pool`\" pulumi-lang-python=\"`kubernetes.Pool`\" pulumi-lang-yaml=\"`scaleway.kubernetes.Pool`\" pulumi-lang-java=\"`scaleway.kubernetes.Pool`\"\u003e`scaleway.kubernetes.Pool`\u003c/span\u003e resource. Here is a migration example.\n\nBefore:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    version: \"1.18.0\",\n    cni: \"cilium\",\n    defaultPool: [{\n        nodeType: \"DEV1-M\",\n        size: 1,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    version=\"1.18.0\",\n    cni=\"cilium\",\n    default_pool=[{\n        \"nodeType\": \"DEV1-M\",\n        \"size\": 1,\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 cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Version = \"1.18.0\",\n        Cni = \"cilium\",\n        DefaultPool = new[]\n        {\n            \n            {\n                { \"nodeType\", \"DEV1-M\" },\n                { \"size\", 1 },\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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:    pulumi.String(\"tf-cluster\"),\n\t\t\tVersion: pulumi.String(\"1.18.0\"),\n\t\t\tCni:     pulumi.String(\"cilium\"),\n\t\t\tDefaultPool: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"nodeType\": \"DEV1-M\",\n\t\t\t\t\t\"size\":     1,\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.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .version(\"1.18.0\")\n            .cni(\"cilium\")\n            .defaultPool(List.of(Map.ofEntries(\n                Map.entry(\"nodeType\", \"DEV1-M\"),\n                Map.entry(\"size\", 1)\n            )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      version: 1.18.0\n      cni: cilium\n      defaultPool:\n        - nodeType: DEV1-M\n          size: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAfter:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    version: \"1.18.0\",\n    cni: \"cilium\",\n});\nconst _default = new scaleway.kubernetes.Pool(\"default\", {\n    clusterId: jack.id,\n    name: \"default\",\n    nodeType: \"DEV1-M\",\n    size: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    version=\"1.18.0\",\n    cni=\"cilium\")\ndefault = scaleway.kubernetes.Pool(\"default\",\n    cluster_id=jack[\"id\"],\n    name=\"default\",\n    node_type=\"DEV1-M\",\n    size=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Version = \"1.18.0\",\n        Cni = \"cilium\",\n    });\n\n    var @default = new Scaleway.Kubernetes.Pool(\"default\", new()\n    {\n        ClusterId = jack.Id,\n        Name = \"default\",\n        NodeType = \"DEV1-M\",\n        Size = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:    pulumi.String(\"tf-cluster\"),\n\t\t\tVersion: pulumi.String(\"1.18.0\"),\n\t\t\tCni:     pulumi.String(\"cilium\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kubernetes.NewPool(ctx, \"default\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId: pulumi.Any(jack.Id),\n\t\t\tName:      pulumi.String(\"default\"),\n\t\t\tNodeType:  pulumi.String(\"DEV1-M\"),\n\t\t\tSize:      pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .version(\"1.18.0\")\n            .cni(\"cilium\")\n            .build());\n\n        var default_ = new Pool(\"default\", PoolArgs.builder()\n            .clusterId(jack.id())\n            .name(\"default\")\n            .nodeType(\"DEV1-M\")\n            .size(1)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      version: 1.18.0\n      cni: cilium\n  default:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${jack.id}\n      name: default\n      nodeType: DEV1-M\n      size: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nOnce you have moved all the \u003cspan pulumi-lang-nodejs=\"`defaultPool`\" pulumi-lang-dotnet=\"`DefaultPool`\" pulumi-lang-go=\"`defaultPool`\" pulumi-lang-python=\"`default_pool`\" pulumi-lang-yaml=\"`defaultPool`\" pulumi-lang-java=\"`defaultPool`\"\u003e`default_pool`\u003c/span\u003e into their own object, you will need to import them. If your pool had the ID 11111111-1111-1111-1111-111111111111 in the `fr-par` region, you can import it by typing:\n\n```bash\nterraform import scaleway_k8s_pool.default fr-par/11111111-1111-1111-1111-111111111111\n```\n\nThen you will only need to type `pulumi up` to have a smooth migration.\n\n## Import\n\nKubernetes clusters can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/kubernetesCluster:KubernetesCluster mycluster fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"admissionPlugins":{"type":"array","items":{"type":"string"},"description":"The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.\n"},"apiserverCertSans":{"type":"array","items":{"type":"string"},"description":"Additional Subject Alternative Names for the Kubernetes API server certificate\n"},"apiserverUrl":{"type":"string","description":"The URL of the Kubernetes API server.\n"},"autoUpgrade":{"$ref":"#/types/scaleway:index/KubernetesClusterAutoUpgrade:KubernetesClusterAutoUpgrade","description":"The auto upgrade configuration.\n"},"autoscalerConfig":{"$ref":"#/types/scaleway:index/KubernetesClusterAutoscalerConfig:KubernetesClusterAutoscalerConfig","description":"The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).\n"},"cni":{"type":"string","description":"The Container Network Interface (CNI) for the Kubernetes cluster.\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"createdAt":{"type":"string","description":"The creation date of the cluster.\n"},"deleteAdditionalResources":{"type":"boolean","description":"Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.\n\u003e **Important:** Setting this field to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e means that you will lose all your cluster data and network configuration when you delete your cluster.\nIf you prefer keeping it, you should instead set it as \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"A description for the Kubernetes cluster.\n"},"featureGates":{"type":"array","items":{"type":"string"},"description":"The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.\n"},"kubeconfigs":{"type":"array","items":{"$ref":"#/types/scaleway:index/KubernetesClusterKubeconfig:KubernetesClusterKubeconfig"},"description":"The kubeconfig configuration file of the Kubernetes cluster","secret":true},"name":{"type":"string","description":"The name for the Kubernetes cluster.\n"},"openIdConnectConfig":{"$ref":"#/types/scaleway:index/KubernetesClusterOpenIdConnectConfig:KubernetesClusterOpenIdConnectConfig","description":"The OpenID Connect configuration of the cluster\n"},"organizationId":{"type":"string","description":"The organization ID the cluster is associated with.\n"},"podCidr":{"type":"string","description":"The subnet used for the Pod CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n"},"privateNetworkId":{"type":"string","description":"The ID of the private network of the cluster.\n\n\u003e **Important:** Changes to this field will recreate a new resource.\n\n\u003e **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e set),\nyou can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cluster is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the cluster should be created.\n"},"serviceCidr":{"type":"string","description":"The subnet used for the Service CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n"},"serviceDnsIp":{"type":"string","description":"The IP used for the DNS Service. If unset, defaults to Service CIDR's network + 10.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n"},"status":{"type":"string","description":"The status of the Kubernetes cluster.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Kubernetes cluster.\n"},"type":{"type":"string","description":"The type of Kubernetes cluster. Possible values are:\n\n- for mutualized clusters: \u003cspan pulumi-lang-nodejs=\"`kapsule`\" pulumi-lang-dotnet=\"`Kapsule`\" pulumi-lang-go=\"`kapsule`\" pulumi-lang-python=\"`kapsule`\" pulumi-lang-yaml=\"`kapsule`\" pulumi-lang-java=\"`kapsule`\"\u003e`kapsule`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`multicloud`\" pulumi-lang-dotnet=\"`Multicloud`\" pulumi-lang-go=\"`multicloud`\" pulumi-lang-python=\"`multicloud`\" pulumi-lang-yaml=\"`multicloud`\" pulumi-lang-java=\"`multicloud`\"\u003e`multicloud`\u003c/span\u003e\n\n- for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.\n\n- for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.\n"},"updatedAt":{"type":"string","description":"The last update date of the cluster.\n"},"upgradeAvailable":{"type":"boolean","description":"Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e if a newer Kubernetes version is available.\n"},"version":{"type":"string","description":"The version of the Kubernetes cluster.\n"},"wildcardDns":{"type":"string","description":"The DNS wildcard that points to all ready nodes.\n"}},"required":["apiserverUrl","autoUpgrade","autoscalerConfig","cni","createdAt","deleteAdditionalResources","kubeconfigs","name","openIdConnectConfig","organizationId","podCidr","projectId","serviceCidr","serviceDnsIp","status","type","updatedAt","upgradeAvailable","version","wildcardDns"],"inputProperties":{"admissionPlugins":{"type":"array","items":{"type":"string"},"description":"The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.\n"},"apiserverCertSans":{"type":"array","items":{"type":"string"},"description":"Additional Subject Alternative Names for the Kubernetes API server certificate\n"},"autoUpgrade":{"$ref":"#/types/scaleway:index/KubernetesClusterAutoUpgrade:KubernetesClusterAutoUpgrade","description":"The auto upgrade configuration.\n"},"autoscalerConfig":{"$ref":"#/types/scaleway:index/KubernetesClusterAutoscalerConfig:KubernetesClusterAutoscalerConfig","description":"The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).\n"},"cni":{"type":"string","description":"The Container Network Interface (CNI) for the Kubernetes cluster.\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"deleteAdditionalResources":{"type":"boolean","description":"Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.\n\u003e **Important:** Setting this field to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e means that you will lose all your cluster data and network configuration when you delete your cluster.\nIf you prefer keeping it, you should instead set it as \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"A description for the Kubernetes cluster.\n"},"featureGates":{"type":"array","items":{"type":"string"},"description":"The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.\n"},"name":{"type":"string","description":"The name for the Kubernetes cluster.\n"},"openIdConnectConfig":{"$ref":"#/types/scaleway:index/KubernetesClusterOpenIdConnectConfig:KubernetesClusterOpenIdConnectConfig","description":"The OpenID Connect configuration of the cluster\n"},"podCidr":{"type":"string","description":"The subnet used for the Pod CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"privateNetworkId":{"type":"string","description":"The ID of the private network of the cluster.\n\n\u003e **Important:** Changes to this field will recreate a new resource.\n\n\u003e **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e set),\nyou can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cluster is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the cluster should be created.\n","willReplaceOnChanges":true},"serviceCidr":{"type":"string","description":"The subnet used for the Service CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"serviceDnsIp":{"type":"string","description":"The IP used for the DNS Service. If unset, defaults to Service CIDR's network + 10.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Kubernetes cluster.\n"},"type":{"type":"string","description":"The type of Kubernetes cluster. Possible values are:\n\n- for mutualized clusters: \u003cspan pulumi-lang-nodejs=\"`kapsule`\" pulumi-lang-dotnet=\"`Kapsule`\" pulumi-lang-go=\"`kapsule`\" pulumi-lang-python=\"`kapsule`\" pulumi-lang-yaml=\"`kapsule`\" pulumi-lang-java=\"`kapsule`\"\u003e`kapsule`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`multicloud`\" pulumi-lang-dotnet=\"`Multicloud`\" pulumi-lang-go=\"`multicloud`\" pulumi-lang-python=\"`multicloud`\" pulumi-lang-yaml=\"`multicloud`\" pulumi-lang-java=\"`multicloud`\"\u003e`multicloud`\u003c/span\u003e\n\n- for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.\n\n- for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.\n"},"version":{"type":"string","description":"The version of the Kubernetes cluster.\n"}},"requiredInputs":["cni","deleteAdditionalResources","version"],"stateInputs":{"description":"Input properties used for looking up and filtering KubernetesCluster resources.\n","properties":{"admissionPlugins":{"type":"array","items":{"type":"string"},"description":"The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.\n"},"apiserverCertSans":{"type":"array","items":{"type":"string"},"description":"Additional Subject Alternative Names for the Kubernetes API server certificate\n"},"apiserverUrl":{"type":"string","description":"The URL of the Kubernetes API server.\n"},"autoUpgrade":{"$ref":"#/types/scaleway:index/KubernetesClusterAutoUpgrade:KubernetesClusterAutoUpgrade","description":"The auto upgrade configuration.\n"},"autoscalerConfig":{"$ref":"#/types/scaleway:index/KubernetesClusterAutoscalerConfig:KubernetesClusterAutoscalerConfig","description":"The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).\n"},"cni":{"type":"string","description":"The Container Network Interface (CNI) for the Kubernetes cluster.\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"The creation date of the cluster.\n"},"deleteAdditionalResources":{"type":"boolean","description":"Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.\n\u003e **Important:** Setting this field to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e means that you will lose all your cluster data and network configuration when you delete your cluster.\nIf you prefer keeping it, you should instead set it as \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"A description for the Kubernetes cluster.\n"},"featureGates":{"type":"array","items":{"type":"string"},"description":"The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.\n"},"kubeconfigs":{"type":"array","items":{"$ref":"#/types/scaleway:index/KubernetesClusterKubeconfig:KubernetesClusterKubeconfig"},"description":"The kubeconfig configuration file of the Kubernetes cluster","secret":true},"name":{"type":"string","description":"The name for the Kubernetes cluster.\n"},"openIdConnectConfig":{"$ref":"#/types/scaleway:index/KubernetesClusterOpenIdConnectConfig:KubernetesClusterOpenIdConnectConfig","description":"The OpenID Connect configuration of the cluster\n"},"organizationId":{"type":"string","description":"The organization ID the cluster is associated with.\n"},"podCidr":{"type":"string","description":"The subnet used for the Pod CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"privateNetworkId":{"type":"string","description":"The ID of the private network of the cluster.\n\n\u003e **Important:** Changes to this field will recreate a new resource.\n\n\u003e **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e set),\nyou can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cluster is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the cluster should be created.\n","willReplaceOnChanges":true},"serviceCidr":{"type":"string","description":"The subnet used for the Service CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"serviceDnsIp":{"type":"string","description":"The IP used for the DNS Service. If unset, defaults to Service CIDR's network + 10.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Kubernetes cluster.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Kubernetes cluster.\n"},"type":{"type":"string","description":"The type of Kubernetes cluster. Possible values are:\n\n- for mutualized clusters: \u003cspan pulumi-lang-nodejs=\"`kapsule`\" pulumi-lang-dotnet=\"`Kapsule`\" pulumi-lang-go=\"`kapsule`\" pulumi-lang-python=\"`kapsule`\" pulumi-lang-yaml=\"`kapsule`\" pulumi-lang-java=\"`kapsule`\"\u003e`kapsule`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`multicloud`\" pulumi-lang-dotnet=\"`Multicloud`\" pulumi-lang-go=\"`multicloud`\" pulumi-lang-python=\"`multicloud`\" pulumi-lang-yaml=\"`multicloud`\" pulumi-lang-java=\"`multicloud`\"\u003e`multicloud`\u003c/span\u003e\n\n- for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.\n\n- for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.\n"},"updatedAt":{"type":"string","description":"The last update date of the cluster.\n"},"upgradeAvailable":{"type":"boolean","description":"Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e if a newer Kubernetes version is available.\n"},"version":{"type":"string","description":"The version of the Kubernetes cluster.\n"},"wildcardDns":{"type":"string","description":"The DNS wildcard that points to all ready nodes.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/kubernetescluster.KubernetesCluster has been deprecated in favor of scaleway.kubernetes/cluster.Cluster"},"scaleway:index/kubernetesNodePool:KubernetesNodePool":{"description":"\n\n## Import\n\nKubernetes pools can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/kubernetesNodePool:KubernetesNodePool mypool fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"autohealing":{"type":"boolean","description":"Enables the autohealing feature for this pool.\n"},"autoscaling":{"type":"boolean","description":"Enables the autoscaling feature for this pool.\n\n\u003e **Important:** When enabled, an update of the \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e will not be taken into account.\n"},"clusterId":{"type":"string","description":"The ID of the Kubernetes cluster on which this pool will be created.\n"},"containerRuntime":{"type":"string","description":"The container runtime of the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"createdAt":{"type":"string","description":"The creation date of the pool.\n"},"currentSize":{"type":"integer","description":"The actual size of the pool"},"kubeletArgs":{"type":"object","additionalProperties":{"type":"string"},"description":"The Kubelet arguments to be used by this pool\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool, used by the autoscaling feature.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool, used by the autoscaling feature.\n"},"name":{"type":"string","description":"The name for the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"nodeType":{"type":"string","description":"The commercial type of the pool instances. Instances with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). \u003cspan pulumi-lang-nodejs=\"`external`\" pulumi-lang-dotnet=\"`External`\" pulumi-lang-go=\"`external`\" pulumi-lang-python=\"`external`\" pulumi-lang-yaml=\"`external`\" pulumi-lang-java=\"`external`\"\u003e`external`\u003c/span\u003e is a special node type used to provision from other Cloud providers.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"nodes":{"type":"array","items":{"$ref":"#/types/scaleway:index/KubernetesNodePoolNode:KubernetesNodePoolNode"},"description":"(List of) The nodes in the default pool.\n"},"placementGroupId":{"type":"string","description":"The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) the nodes of the pool will be attached to.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"publicIpDisabled":{"type":"boolean","description":"Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the pool should be created.\n"},"rootVolumeSizeInGb":{"type":"integer","description":"The size of the system volume of the nodes in gigabyte\n"},"rootVolumeType":{"type":"string","description":"System volume type of the nodes composing the pool\n"},"securityGroupId":{"type":"string","description":"The ID of the security group\n"},"size":{"type":"integer","description":"The size of the pool.\n\n\u003e **Important:** This field will only be used at creation if autoscaling is enabled.\n"},"status":{"type":"string","description":"The status of the node.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the pool.\n\n\u003e Note: As mentioned in [this document](https://github.com/scaleway/scaleway-cloud-controller-manager/blob/master/docs/tags.md#taints), taints of a pool's nodes are applied using tags. (e.g.: `\"taint=taintName=taintValue:Effect\"`)\n"},"updatedAt":{"type":"string","description":"The last update date of the pool.\n"},"upgradePolicy":{"$ref":"#/types/scaleway:index/KubernetesNodePoolUpgradePolicy:KubernetesNodePoolUpgradePolicy","description":"The Pool upgrade policy\n"},"version":{"type":"string","description":"The version of the pool.\n"},"waitForPoolReady":{"type":"boolean","description":"Whether to wait for the pool to be ready.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the pool should be created.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"}},"required":["clusterId","createdAt","currentSize","maxSize","name","nodeType","nodes","rootVolumeSizeInGb","rootVolumeType","securityGroupId","size","status","updatedAt","upgradePolicy","version"],"inputProperties":{"autohealing":{"type":"boolean","description":"Enables the autohealing feature for this pool.\n"},"autoscaling":{"type":"boolean","description":"Enables the autoscaling feature for this pool.\n\n\u003e **Important:** When enabled, an update of the \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e will not be taken into account.\n"},"clusterId":{"type":"string","description":"The ID of the Kubernetes cluster on which this pool will be created.\n","willReplaceOnChanges":true},"containerRuntime":{"type":"string","description":"The container runtime of the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"kubeletArgs":{"type":"object","additionalProperties":{"type":"string"},"description":"The Kubelet arguments to be used by this pool\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool, used by the autoscaling feature.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool, used by the autoscaling feature.\n"},"name":{"type":"string","description":"The name for the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"nodeType":{"type":"string","description":"The commercial type of the pool instances. Instances with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). \u003cspan pulumi-lang-nodejs=\"`external`\" pulumi-lang-dotnet=\"`External`\" pulumi-lang-go=\"`external`\" pulumi-lang-python=\"`external`\" pulumi-lang-yaml=\"`external`\" pulumi-lang-java=\"`external`\"\u003e`external`\u003c/span\u003e is a special node type used to provision from other Cloud providers.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"placementGroupId":{"type":"string","description":"The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) the nodes of the pool will be attached to.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"publicIpDisabled":{"type":"boolean","description":"Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the pool should be created.\n","willReplaceOnChanges":true},"rootVolumeSizeInGb":{"type":"integer","description":"The size of the system volume of the nodes in gigabyte\n","willReplaceOnChanges":true},"rootVolumeType":{"type":"string","description":"System volume type of the nodes composing the pool\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group\n"},"size":{"type":"integer","description":"The size of the pool.\n\n\u003e **Important:** This field will only be used at creation if autoscaling is enabled.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the pool.\n\n\u003e Note: As mentioned in [this document](https://github.com/scaleway/scaleway-cloud-controller-manager/blob/master/docs/tags.md#taints), taints of a pool's nodes are applied using tags. (e.g.: `\"taint=taintName=taintValue:Effect\"`)\n"},"upgradePolicy":{"$ref":"#/types/scaleway:index/KubernetesNodePoolUpgradePolicy:KubernetesNodePoolUpgradePolicy","description":"The Pool upgrade policy\n"},"waitForPoolReady":{"type":"boolean","description":"Whether to wait for the pool to be ready.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the pool should be created.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","nodeType","size"],"stateInputs":{"description":"Input properties used for looking up and filtering KubernetesNodePool resources.\n","properties":{"autohealing":{"type":"boolean","description":"Enables the autohealing feature for this pool.\n"},"autoscaling":{"type":"boolean","description":"Enables the autoscaling feature for this pool.\n\n\u003e **Important:** When enabled, an update of the \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e will not be taken into account.\n"},"clusterId":{"type":"string","description":"The ID of the Kubernetes cluster on which this pool will be created.\n","willReplaceOnChanges":true},"containerRuntime":{"type":"string","description":"The container runtime of the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"The creation date of the pool.\n"},"currentSize":{"type":"integer","description":"The actual size of the pool"},"kubeletArgs":{"type":"object","additionalProperties":{"type":"string"},"description":"The Kubelet arguments to be used by this pool\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool, used by the autoscaling feature.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool, used by the autoscaling feature.\n"},"name":{"type":"string","description":"The name for the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"nodeType":{"type":"string","description":"The commercial type of the pool instances. Instances with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). \u003cspan pulumi-lang-nodejs=\"`external`\" pulumi-lang-dotnet=\"`External`\" pulumi-lang-go=\"`external`\" pulumi-lang-python=\"`external`\" pulumi-lang-yaml=\"`external`\" pulumi-lang-java=\"`external`\"\u003e`external`\u003c/span\u003e is a special node type used to provision from other Cloud providers.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"nodes":{"type":"array","items":{"$ref":"#/types/scaleway:index/KubernetesNodePoolNode:KubernetesNodePoolNode"},"description":"(List of) The nodes in the default pool.\n"},"placementGroupId":{"type":"string","description":"The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) the nodes of the pool will be attached to.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"publicIpDisabled":{"type":"boolean","description":"Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the pool should be created.\n","willReplaceOnChanges":true},"rootVolumeSizeInGb":{"type":"integer","description":"The size of the system volume of the nodes in gigabyte\n","willReplaceOnChanges":true},"rootVolumeType":{"type":"string","description":"System volume type of the nodes composing the pool\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group\n"},"size":{"type":"integer","description":"The size of the pool.\n\n\u003e **Important:** This field will only be used at creation if autoscaling is enabled.\n"},"status":{"type":"string","description":"The status of the node.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the pool.\n\n\u003e Note: As mentioned in [this document](https://github.com/scaleway/scaleway-cloud-controller-manager/blob/master/docs/tags.md#taints), taints of a pool's nodes are applied using tags. (e.g.: `\"taint=taintName=taintValue:Effect\"`)\n"},"updatedAt":{"type":"string","description":"The last update date of the pool.\n"},"upgradePolicy":{"$ref":"#/types/scaleway:index/KubernetesNodePoolUpgradePolicy:KubernetesNodePoolUpgradePolicy","description":"The Pool upgrade policy\n"},"version":{"type":"string","description":"The version of the pool.\n"},"waitForPoolReady":{"type":"boolean","description":"Whether to wait for the pool to be ready.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the pool should be created.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/kubernetesnodepool.KubernetesNodePool has been deprecated in favor of scaleway.kubernetes/pool.Pool"},"scaleway:index/loadbalancer:Loadbalancer":{"description":"Creates and manages Scaleway Load Balancers.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/concepts/#load-balancers) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-list-load-balancers).\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.loadbalancers.Ip(\"main\", {zone: \"fr-par-1\"});\nconst base = new scaleway.loadbalancers.LoadBalancer(\"base\", {\n    ipIds: [main.id],\n    zone: main.zone,\n    type: \"LB-S\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.loadbalancers.Ip(\"main\", zone=\"fr-par-1\")\nbase = scaleway.loadbalancers.LoadBalancer(\"base\",\n    ip_ids=[main.id],\n    zone=main.zone,\n    type=\"LB-S\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Loadbalancers.Ip(\"main\", new()\n    {\n        Zone = \"fr-par-1\",\n    });\n\n    var @base = new Scaleway.Loadbalancers.LoadBalancer(\"base\", new()\n    {\n        IpIds = new[]\n        {\n            main.Id,\n        },\n        Zone = main.Zone,\n        Type = \"LB-S\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := loadbalancers.NewIp(ctx, \"main\", \u0026loadbalancers.IpArgs{\n\t\t\tZone: pulumi.String(\"fr-par-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewLoadBalancer(ctx, \"base\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tmain.ID(),\n\t\t\t},\n\t\t\tZone: main.Zone,\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.IpArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var main = new Ip(\"main\", IpArgs.builder()\n            .zone(\"fr-par-1\")\n            .build());\n\n        var base = new LoadBalancer(\"base\", LoadBalancerArgs.builder()\n            .ipIds(main.id())\n            .zone(main.zone())\n            .type(\"LB-S\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:loadbalancers:Ip\n    properties:\n      zone: fr-par-1\n  base:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipIds:\n        - ${main.id}\n      zone: ${main.zone}\n      type: LB-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private LB\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst base = new scaleway.loadbalancers.LoadBalancer(\"base\", {\n    name: \"private-lb\",\n    type: \"LB-S\",\n    assignFlexibleIp: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbase = scaleway.loadbalancers.LoadBalancer(\"base\",\n    name=\"private-lb\",\n    type=\"LB-S\",\n    assign_flexible_ip=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @base = new Scaleway.Loadbalancers.LoadBalancer(\"base\", new()\n    {\n        Name = \"private-lb\",\n        Type = \"LB-S\",\n        AssignFlexibleIp = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewLoadBalancer(ctx, \"base\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tName:             pulumi.String(\"private-lb\"),\n\t\t\tType:             pulumi.String(\"LB-S\"),\n\t\t\tAssignFlexibleIp: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var base = new LoadBalancer(\"base\", LoadBalancerArgs.builder()\n            .name(\"private-lb\")\n            .type(\"LB-S\")\n            .assignFlexibleIp(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  base:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      name: private-lb\n      type: LB-S\n      assignFlexibleIp: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPv6\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst v4 = new scaleway.loadbalancers.Ip(\"v4\", {});\nconst v6 = new scaleway.loadbalancers.Ip(\"v6\", {isIpv6: true});\nconst main = new scaleway.loadbalancers.LoadBalancer(\"main\", {\n    ipIds: [\n        v4.id,\n        v6.id,\n    ],\n    name: \"ipv6-lb\",\n    type: \"LB-S\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nv4 = scaleway.loadbalancers.Ip(\"v4\")\nv6 = scaleway.loadbalancers.Ip(\"v6\", is_ipv6=True)\nmain = scaleway.loadbalancers.LoadBalancer(\"main\",\n    ip_ids=[\n        v4.id,\n        v6.id,\n    ],\n    name=\"ipv6-lb\",\n    type=\"LB-S\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var v4 = new Scaleway.Loadbalancers.Ip(\"v4\");\n\n    var v6 = new Scaleway.Loadbalancers.Ip(\"v6\", new()\n    {\n        IsIpv6 = true,\n    });\n\n    var main = new Scaleway.Loadbalancers.LoadBalancer(\"main\", new()\n    {\n        IpIds = new[]\n        {\n            v4.Id,\n            v6.Id,\n        },\n        Name = \"ipv6-lb\",\n        Type = \"LB-S\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tv4, err := loadbalancers.NewIp(ctx, \"v4\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tv6, err := loadbalancers.NewIp(ctx, \"v6\", \u0026loadbalancers.IpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewLoadBalancer(ctx, \"main\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tv4.ID(),\n\t\t\t\tv6.ID(),\n\t\t\t},\n\t\t\tName: pulumi.String(\"ipv6-lb\"),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.IpArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var v4 = new Ip(\"v4\");\n\n        var v6 = new Ip(\"v6\", IpArgs.builder()\n            .isIpv6(true)\n            .build());\n\n        var main = new LoadBalancer(\"main\", LoadBalancerArgs.builder()\n            .ipIds(            \n                v4.id(),\n                v6.id())\n            .name(\"ipv6-lb\")\n            .type(\"LB-S\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  v4:\n    type: scaleway:loadbalancers:Ip\n  v6:\n    type: scaleway:loadbalancers:Ip\n    properties:\n      isIpv6: true\n  main:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipIds:\n        - ${v4.id}\n        - ${v6.id}\n      name: ipv6-lb\n      type: LB-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPAM IDs\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv4Subnet: {\n        subnet: \"172.16.32.0/22\",\n    },\n});\nconst ip01 = new scaleway.ipam.Ip(\"ip01\", {\n    address: \"172.16.32.7\",\n    sources: [{\n        privateNetworkId: pn01.id,\n    }],\n});\nconst v4 = new scaleway.loadbalancers.Ip(\"v4\", {});\nconst lb01 = new scaleway.loadbalancers.LoadBalancer(\"lb01\", {\n    ipIds: [v4.id],\n    name: \"my-lb\",\n    type: \"LB-S\",\n    privateNetworks: [{\n        privateNetworkId: pn01.id,\n        ipamIds: ip01.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv4_subnet={\n        \"subnet\": \"172.16.32.0/22\",\n    })\nip01 = scaleway.ipam.Ip(\"ip01\",\n    address=\"172.16.32.7\",\n    sources=[{\n        \"private_network_id\": pn01.id,\n    }])\nv4 = scaleway.loadbalancers.Ip(\"v4\")\nlb01 = scaleway.loadbalancers.LoadBalancer(\"lb01\",\n    ip_ids=[v4.id],\n    name=\"my-lb\",\n    type=\"LB-S\",\n    private_networks=[{\n        \"private_network_id\": pn01.id,\n        \"ipam_ids\": ip01.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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.32.0/22\",\n        },\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Address = \"172.16.32.7\",\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\n            {\n                PrivateNetworkId = pn01.Id,\n            },\n        },\n    });\n\n    var v4 = new Scaleway.Loadbalancers.Ip(\"v4\");\n\n    var lb01 = new Scaleway.Loadbalancers.LoadBalancer(\"lb01\", new()\n    {\n        IpIds = new[]\n        {\n            v4.Id,\n        },\n        Name = \"my-lb\",\n        Type = \"LB-S\",\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Loadbalancers.Inputs.LoadBalancerPrivateNetworkArgs\n            {\n                PrivateNetworkId = pn01.Id,\n                IpamIds = ip01.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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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\tip01, err := ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.32.7\"),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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\tv4, err := loadbalancers.NewIp(ctx, \"v4\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewLoadBalancer(ctx, \"lb01\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tv4.ID(),\n\t\t\t},\n\t\t\tName: pulumi.String(\"my-lb\"),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t\tPrivateNetworks: loadbalancers.LoadBalancerPrivateNetworkArray{\n\t\t\t\t\u0026loadbalancers.LoadBalancerPrivateNetworkArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\t\t\tIpamIds:          ip01.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.LoadBalancerPrivateNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vpc01 = new Vpc(\"vpc01\", VpcArgs.builder()\n            .name(\"my vpc\")\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.32.0/22\")\n                .build())\n            .build());\n\n        var ip01 = new com.pulumi.scaleway.ipam.Ip(\"ip01\", com.pulumi.scaleway.ipam.IpArgs.builder()\n            .address(\"172.16.32.7\")\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n        var v4 = new com.pulumi.scaleway.loadbalancers.Ip(\"v4\");\n\n        var lb01 = new LoadBalancer(\"lb01\", LoadBalancerArgs.builder()\n            .ipIds(v4.id())\n            .name(\"my-lb\")\n            .type(\"LB-S\")\n            .privateNetworks(LoadBalancerPrivateNetworkArgs.builder()\n                .privateNetworkId(pn01.id())\n                .ipamIds(ip01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv4Subnet:\n        subnet: 172.16.32.0/22\n  ip01:\n    type: scaleway:ipam:Ip\n    properties:\n      address: 172.16.32.7\n      sources:\n        - privateNetworkId: ${pn01.id}\n  v4:\n    type: scaleway:loadbalancers:Ip\n  lb01:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipIds:\n        - ${v4.id}\n      name: my-lb\n      type: LB-S\n      privateNetworks:\n        - privateNetworkId: ${pn01.id}\n          ipamIds: ${ip01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Migration\n\nIn order to migrate to other Load Balancer types, you can check upwards or downwards migration via our CLI `scw lb lb-types list`.\nThis change will not recreate your Load Balancer.\n\nPlease check our [documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-migrate-a-load-balancer) for further details.\n\n## Import\n\nLoad Balancers can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/loadbalancer:Loadbalancer main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\nBe aware that you will also need to import the `scaleway_lb_ip` resource.\n\n","properties":{"assignFlexibleIp":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.\n"},"assignFlexibleIpv6":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.\n"},"description":{"type":"string","description":"The description of the Load Balancer.\n"},"externalPrivateNetworks":{"type":"boolean","description":"A boolean to specify whether to use lb_private_network.\nIf \u003cspan pulumi-lang-nodejs=\"`externalPrivateNetworks`\" pulumi-lang-dotnet=\"`ExternalPrivateNetworks`\" pulumi-lang-go=\"`externalPrivateNetworks`\" pulumi-lang-python=\"`external_private_networks`\" pulumi-lang-yaml=\"`externalPrivateNetworks`\" pulumi-lang-java=\"`externalPrivateNetworks`\"\u003e`external_private_networks`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e can not be set directly in the Load Balancer.\n"},"ipAddress":{"type":"string","description":"The Load Balancer public IPv4 address.\n"},"ipId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e. The ID of the associated Load Balancer IP. See below.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e will recreate the Load Balancer.\n","deprecationMessage":"Please use ip_ids"},"ipIds":{"type":"array","items":{"type":"string"},"description":"The List of IP IDs to attach to the Load Balancer.\n\n\u003e **Important:** Make sure to use a \u003cspan pulumi-lang-nodejs=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-dotnet=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-go=\"`loadbalancers.Ip`\" pulumi-lang-python=\"`loadbalancers.Ip`\" pulumi-lang-yaml=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-java=\"`scaleway.loadbalancers.Ip`\"\u003e`scaleway.loadbalancers.Ip`\u003c/span\u003e resource to create the IPs.\n"},"ipv6Address":{"type":"string","description":"The Load Balancer public IPv6 address.\n"},"name":{"type":"string","description":"The name of the Load Balancer.\n"},"organizationId":{"type":"string","description":"The ID of the Organization ID the Load Balancer is associated with.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/LoadbalancerPrivateIp:LoadbalancerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/LoadbalancerPrivateNetwork:LoadbalancerPrivateNetwork"},"description":"List of private network to connect with your load balancer.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Load Balancer is associated with.\n"},"region":{"type":"string","description":"The region of the resource"},"releaseIp":{"type":"boolean","description":"The \u003cspan pulumi-lang-nodejs=\"`releaseIp`\" pulumi-lang-dotnet=\"`ReleaseIp`\" pulumi-lang-go=\"`releaseIp`\" pulumi-lang-python=\"`release_ip`\" pulumi-lang-yaml=\"`releaseIp`\" pulumi-lang-java=\"`releaseIp`\"\u003e`release_ip`\u003c/span\u003e allow the release of the IP address associated with the Load Balancer.\n","deprecationMessage":"The resource ip will be destroyed by it's own resource. Please set this to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e"},"sslCompatibilityLevel":{"type":"string","description":"Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Load Balancer.\n"},"type":{"type":"string","description":"The type of the Load Balancer. Please check the migration section to upgrade the type.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Load Balancer.\n"}},"required":["ipAddress","ipId","ipIds","ipv6Address","name","organizationId","privateIps","privateNetworks","projectId","region","type"],"inputProperties":{"assignFlexibleIp":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.\n","willReplaceOnChanges":true},"assignFlexibleIpv6":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.\n"},"description":{"type":"string","description":"The description of the Load Balancer.\n"},"externalPrivateNetworks":{"type":"boolean","description":"A boolean to specify whether to use lb_private_network.\nIf \u003cspan pulumi-lang-nodejs=\"`externalPrivateNetworks`\" pulumi-lang-dotnet=\"`ExternalPrivateNetworks`\" pulumi-lang-go=\"`externalPrivateNetworks`\" pulumi-lang-python=\"`external_private_networks`\" pulumi-lang-yaml=\"`externalPrivateNetworks`\" pulumi-lang-java=\"`externalPrivateNetworks`\"\u003e`external_private_networks`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e can not be set directly in the Load Balancer.\n"},"ipId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e. The ID of the associated Load Balancer IP. See below.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e will recreate the Load Balancer.\n","deprecationMessage":"Please use ip_ids"},"ipIds":{"type":"array","items":{"type":"string"},"description":"The List of IP IDs to attach to the Load Balancer.\n\n\u003e **Important:** Make sure to use a \u003cspan pulumi-lang-nodejs=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-dotnet=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-go=\"`loadbalancers.Ip`\" pulumi-lang-python=\"`loadbalancers.Ip`\" pulumi-lang-yaml=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-java=\"`scaleway.loadbalancers.Ip`\"\u003e`scaleway.loadbalancers.Ip`\u003c/span\u003e resource to create the IPs.\n"},"name":{"type":"string","description":"The name of the Load Balancer.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/LoadbalancerPrivateNetwork:LoadbalancerPrivateNetwork"},"description":"List of private network to connect with your load balancer.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Load Balancer is associated with.\n","willReplaceOnChanges":true},"releaseIp":{"type":"boolean","description":"The \u003cspan pulumi-lang-nodejs=\"`releaseIp`\" pulumi-lang-dotnet=\"`ReleaseIp`\" pulumi-lang-go=\"`releaseIp`\" pulumi-lang-python=\"`release_ip`\" pulumi-lang-yaml=\"`releaseIp`\" pulumi-lang-java=\"`releaseIp`\"\u003e`release_ip`\u003c/span\u003e allow the release of the IP address associated with the Load Balancer.\n","deprecationMessage":"The resource ip will be destroyed by it's own resource. Please set this to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e"},"sslCompatibilityLevel":{"type":"string","description":"Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Load Balancer.\n"},"type":{"type":"string","description":"The type of the Load Balancer. Please check the migration section to upgrade the type.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Load Balancer.\n","willReplaceOnChanges":true}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering Loadbalancer resources.\n","properties":{"assignFlexibleIp":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.\n","willReplaceOnChanges":true},"assignFlexibleIpv6":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.\n"},"description":{"type":"string","description":"The description of the Load Balancer.\n"},"externalPrivateNetworks":{"type":"boolean","description":"A boolean to specify whether to use lb_private_network.\nIf \u003cspan pulumi-lang-nodejs=\"`externalPrivateNetworks`\" pulumi-lang-dotnet=\"`ExternalPrivateNetworks`\" pulumi-lang-go=\"`externalPrivateNetworks`\" pulumi-lang-python=\"`external_private_networks`\" pulumi-lang-yaml=\"`externalPrivateNetworks`\" pulumi-lang-java=\"`externalPrivateNetworks`\"\u003e`external_private_networks`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e can not be set directly in the Load Balancer.\n"},"ipAddress":{"type":"string","description":"The Load Balancer public IPv4 address.\n"},"ipId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e. The ID of the associated Load Balancer IP. See below.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e will recreate the Load Balancer.\n","deprecationMessage":"Please use ip_ids"},"ipIds":{"type":"array","items":{"type":"string"},"description":"The List of IP IDs to attach to the Load Balancer.\n\n\u003e **Important:** Make sure to use a \u003cspan pulumi-lang-nodejs=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-dotnet=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-go=\"`loadbalancers.Ip`\" pulumi-lang-python=\"`loadbalancers.Ip`\" pulumi-lang-yaml=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-java=\"`scaleway.loadbalancers.Ip`\"\u003e`scaleway.loadbalancers.Ip`\u003c/span\u003e resource to create the IPs.\n"},"ipv6Address":{"type":"string","description":"The Load Balancer public IPv6 address.\n"},"name":{"type":"string","description":"The name of the Load Balancer.\n"},"organizationId":{"type":"string","description":"The ID of the Organization ID the Load Balancer is associated with.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/LoadbalancerPrivateIp:LoadbalancerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/LoadbalancerPrivateNetwork:LoadbalancerPrivateNetwork"},"description":"List of private network to connect with your load balancer.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Load Balancer is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region of the resource"},"releaseIp":{"type":"boolean","description":"The \u003cspan pulumi-lang-nodejs=\"`releaseIp`\" pulumi-lang-dotnet=\"`ReleaseIp`\" pulumi-lang-go=\"`releaseIp`\" pulumi-lang-python=\"`release_ip`\" pulumi-lang-yaml=\"`releaseIp`\" pulumi-lang-java=\"`releaseIp`\"\u003e`release_ip`\u003c/span\u003e allow the release of the IP address associated with the Load Balancer.\n","deprecationMessage":"The resource ip will be destroyed by it's own resource. Please set this to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e"},"sslCompatibilityLevel":{"type":"string","description":"Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Load Balancer.\n"},"type":{"type":"string","description":"The type of the Load Balancer. Please check the migration section to upgrade the type.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Load Balancer.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/loadbalancer.Loadbalancer has been deprecated in favor of scaleway.loadbalancers/loadbalancer.LoadBalancer"},"scaleway:index/loadbalancerAcl:LoadbalancerAcl":{"description":"Creates and manages Scaleway Load Balancer ACLs.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/acls/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-acls-get-an-acl).\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 acl01 = new scaleway.loadbalancers.Acl(\"acl01\", {\n    frontendId: frt01.id,\n    name: \"acl01\",\n    description: \"Exclude well-known IPs\",\n    index: 0,\n    action: {\n        type: \"allow\",\n    },\n    match: {\n        ipSubnets: [\n            \"192.168.0.1\",\n            \"192.168.0.2\",\n            \"192.168.10.0/24\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nacl01 = scaleway.loadbalancers.Acl(\"acl01\",\n    frontend_id=frt01[\"id\"],\n    name=\"acl01\",\n    description=\"Exclude well-known IPs\",\n    index=0,\n    action={\n        \"type\": \"allow\",\n    },\n    match={\n        \"ip_subnets\": [\n            \"192.168.0.1\",\n            \"192.168.0.2\",\n            \"192.168.10.0/24\",\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 acl01 = new Scaleway.Loadbalancers.Acl(\"acl01\", new()\n    {\n        FrontendId = frt01.Id,\n        Name = \"acl01\",\n        Description = \"Exclude well-known IPs\",\n        Index = 0,\n        Action = new Scaleway.Loadbalancers.Inputs.AclActionArgs\n        {\n            Type = \"allow\",\n        },\n        Match = new Scaleway.Loadbalancers.Inputs.AclMatchArgs\n        {\n            IpSubnets = new[]\n            {\n                \"192.168.0.1\",\n                \"192.168.0.2\",\n                \"192.168.10.0/24\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewAcl(ctx, \"acl01\", \u0026loadbalancers.AclArgs{\n\t\t\tFrontendId:  pulumi.Any(frt01.Id),\n\t\t\tName:        pulumi.String(\"acl01\"),\n\t\t\tDescription: pulumi.String(\"Exclude well-known IPs\"),\n\t\t\tIndex:       pulumi.Int(0),\n\t\t\tAction: \u0026loadbalancers.AclActionArgs{\n\t\t\t\tType: pulumi.String(\"allow\"),\n\t\t\t},\n\t\t\tMatch: \u0026loadbalancers.AclMatchArgs{\n\t\t\t\tIpSubnets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"192.168.0.1\"),\n\t\t\t\t\tpulumi.String(\"192.168.0.2\"),\n\t\t\t\t\tpulumi.String(\"192.168.10.0/24\"),\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.loadbalancers.Acl;\nimport com.pulumi.scaleway.loadbalancers.AclArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.AclActionArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.AclMatchArgs;\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 acl01 = new Acl(\"acl01\", AclArgs.builder()\n            .frontendId(frt01.id())\n            .name(\"acl01\")\n            .description(\"Exclude well-known IPs\")\n            .index(0)\n            .action(AclActionArgs.builder()\n                .type(\"allow\")\n                .build())\n            .match(AclMatchArgs.builder()\n                .ipSubnets(                \n                    \"192.168.0.1\",\n                    \"192.168.0.2\",\n                    \"192.168.10.0/24\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  acl01:\n    type: scaleway:loadbalancers:Acl\n    properties:\n      frontendId: ${frt01.id}\n      name: acl01\n      description: Exclude well-known IPs\n      index: 0 # Allow downstream requests from: 192.168.0.1, 192.168.0.2 or 192.168.10.0/24\n      action:\n        type: allow\n      match:\n        ipSubnets:\n          - 192.168.0.1\n          - 192.168.0.2\n          - 192.168.10.0/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer ACLs can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/loadbalancerAcl:LoadbalancerAcl acl01 fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"action":{"$ref":"#/types/scaleway:index/LoadbalancerAclAction:LoadbalancerAclAction","description":"Action to undertake when an ACL filter matches.\n"},"createdAt":{"type":"string","description":"IsDate and time of ACL's creation (RFC 3339 format)"},"description":{"type":"string","description":"The ACL description.\n"},"frontendId":{"type":"string","description":"The ID of the Load Balancer frontend to attach the ACL to.\n"},"index":{"type":"integer","description":"The priority of this ACL (ACLs are applied in ascending order, 0 is the first ACL executed).\n"},"match":{"$ref":"#/types/scaleway:index/LoadbalancerAclMatch:LoadbalancerAclMatch","description":"The ACL match rule. At least \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`httpFilterValue`\" pulumi-lang-dotnet=\"`HttpFilterValue`\" pulumi-lang-go=\"`httpFilterValue`\" pulumi-lang-python=\"`http_filter_value`\" pulumi-lang-yaml=\"`httpFilterValue`\" pulumi-lang-java=\"`httpFilterValue`\"\u003e`http_filter_value`\u003c/span\u003e are required.\n"},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"updatedAt":{"type":"string","description":"IsDate and time of ACL's update (RFC 3339 format)"}},"required":["action","createdAt","frontendId","index","name","updatedAt"],"inputProperties":{"action":{"$ref":"#/types/scaleway:index/LoadbalancerAclAction:LoadbalancerAclAction","description":"Action to undertake when an ACL filter matches.\n"},"description":{"type":"string","description":"The ACL description.\n"},"frontendId":{"type":"string","description":"The ID of the Load Balancer frontend to attach the ACL to.\n","willReplaceOnChanges":true},"index":{"type":"integer","description":"The priority of this ACL (ACLs are applied in ascending order, 0 is the first ACL executed).\n"},"match":{"$ref":"#/types/scaleway:index/LoadbalancerAclMatch:LoadbalancerAclMatch","description":"The ACL match rule. At least \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`httpFilterValue`\" pulumi-lang-dotnet=\"`HttpFilterValue`\" pulumi-lang-go=\"`httpFilterValue`\" pulumi-lang-python=\"`http_filter_value`\" pulumi-lang-yaml=\"`httpFilterValue`\" pulumi-lang-java=\"`httpFilterValue`\"\u003e`http_filter_value`\u003c/span\u003e are required.\n"},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"}},"requiredInputs":["action","frontendId","index"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadbalancerAcl resources.\n","properties":{"action":{"$ref":"#/types/scaleway:index/LoadbalancerAclAction:LoadbalancerAclAction","description":"Action to undertake when an ACL filter matches.\n"},"createdAt":{"type":"string","description":"IsDate and time of ACL's creation (RFC 3339 format)"},"description":{"type":"string","description":"The ACL description.\n"},"frontendId":{"type":"string","description":"The ID of the Load Balancer frontend to attach the ACL to.\n","willReplaceOnChanges":true},"index":{"type":"integer","description":"The priority of this ACL (ACLs are applied in ascending order, 0 is the first ACL executed).\n"},"match":{"$ref":"#/types/scaleway:index/LoadbalancerAclMatch:LoadbalancerAclMatch","description":"The ACL match rule. At least \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`httpFilterValue`\" pulumi-lang-dotnet=\"`HttpFilterValue`\" pulumi-lang-go=\"`httpFilterValue`\" pulumi-lang-python=\"`http_filter_value`\" pulumi-lang-yaml=\"`httpFilterValue`\" pulumi-lang-java=\"`httpFilterValue`\"\u003e`http_filter_value`\u003c/span\u003e are required.\n"},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"updatedAt":{"type":"string","description":"IsDate and time of ACL's update (RFC 3339 format)"}},"type":"object"},"deprecationMessage":"scaleway.index/loadbalanceracl.LoadbalancerAcl has been deprecated in favor of scaleway.loadbalancers/acl.Acl"},"scaleway:index/loadbalancerBackend:LoadbalancerBackend":{"description":"Creates and manages Scaleway Load Balancer backends.\n\nor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-backends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-backends).\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 backend01 = new scaleway.loadbalancers.Backend(\"backend01\", {\n    lbId: lb01.id,\n    name: \"backend01\",\n    forwardProtocol: \"http\",\n    forwardPort: 80,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbackend01 = scaleway.loadbalancers.Backend(\"backend01\",\n    lb_id=lb01[\"id\"],\n    name=\"backend01\",\n    forward_protocol=\"http\",\n    forward_port=80)\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 backend01 = new Scaleway.Loadbalancers.Backend(\"backend01\", new()\n    {\n        LbId = lb01.Id,\n        Name = \"backend01\",\n        ForwardProtocol = \"http\",\n        ForwardPort = 80,\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewBackend(ctx, \"backend01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            pulumi.Any(lb01.Id),\n\t\t\tName:            pulumi.String(\"backend01\"),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(80),\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.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\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 backend01 = new Backend(\"backend01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .name(\"backend01\")\n            .forwardProtocol(\"http\")\n            .forwardPort(80)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  backend01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      name: backend01\n      forwardProtocol: http\n      forwardPort: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With HTTP Health Check\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst backend01 = new scaleway.loadbalancers.Backend(\"backend01\", {\n    lbId: lb01.id,\n    name: \"backend01\",\n    forwardProtocol: \"http\",\n    forwardPort: 80,\n    healthCheckHttp: {\n        uri: \"/health\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbackend01 = scaleway.loadbalancers.Backend(\"backend01\",\n    lb_id=lb01[\"id\"],\n    name=\"backend01\",\n    forward_protocol=\"http\",\n    forward_port=80,\n    health_check_http={\n        \"uri\": \"/health\",\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 backend01 = new Scaleway.Loadbalancers.Backend(\"backend01\", new()\n    {\n        LbId = lb01.Id,\n        Name = \"backend01\",\n        ForwardProtocol = \"http\",\n        ForwardPort = 80,\n        HealthCheckHttp = new Scaleway.Loadbalancers.Inputs.BackendHealthCheckHttpArgs\n        {\n            Uri = \"/health\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewBackend(ctx, \"backend01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            pulumi.Any(lb01.Id),\n\t\t\tName:            pulumi.String(\"backend01\"),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tHealthCheckHttp: \u0026loadbalancers.BackendHealthCheckHttpArgs{\n\t\t\t\tUri: pulumi.String(\"/health\"),\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.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.BackendHealthCheckHttpArgs;\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 backend01 = new Backend(\"backend01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .name(\"backend01\")\n            .forwardProtocol(\"http\")\n            .forwardPort(80)\n            .healthCheckHttp(BackendHealthCheckHttpArgs.builder()\n                .uri(\"/health\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  backend01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      name: backend01\n      forwardProtocol: http\n      forwardPort: '80'\n      healthCheckHttp:\n        uri: /health\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer backends can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/loadbalancerBackend:LoadbalancerBackend backend01 fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"failoverHost":{"type":"string","description":"Scaleway S3 bucket website to be served in case all backend servers are down\n\n**NOTE** : Only the host part of the Scaleway S3 bucket website is expected.\nE.g. 'failover-website.s3-website.fr-par.scw.cloud' if your bucket website URL is 'https://failover-website.s3-website.fr-par.scw.cloud/'."},"forwardPort":{"type":"integer","description":"User sessions will be forwarded to this port of backend servers"},"forwardPortAlgorithm":{"type":"string","description":"Load balancing algorithm"},"forwardProtocol":{"type":"string","description":"Backend protocol"},"healthCheckDelay":{"type":"string","description":"Interval between two HC requests"},"healthCheckHttp":{"$ref":"#/types/scaleway:index/LoadbalancerBackendHealthCheckHttp:LoadbalancerBackendHealthCheckHttp","description":"HTTP Health check"},"healthCheckHttps":{"$ref":"#/types/scaleway:index/LoadbalancerBackendHealthCheckHttps:LoadbalancerBackendHealthCheckHttps","description":"HTTPS Health check"},"healthCheckMaxRetries":{"type":"integer","description":"Number of allowed failed HC requests before the backend server is marked down"},"healthCheckPort":{"type":"integer","description":"Port the HC requests will be send to. Default to \u003cspan pulumi-lang-nodejs=\"`forwardPort`\" pulumi-lang-dotnet=\"`ForwardPort`\" pulumi-lang-go=\"`forwardPort`\" pulumi-lang-python=\"`forward_port`\" pulumi-lang-yaml=\"`forwardPort`\" pulumi-lang-java=\"`forwardPort`\"\u003e`forward_port`\u003c/span\u003e"},"healthCheckSendProxy":{"type":"boolean","description":"Defines whether proxy protocol should be activated for the health check"},"healthCheckTcp":{"$ref":"#/types/scaleway:index/LoadbalancerBackendHealthCheckTcp:LoadbalancerBackendHealthCheckTcp","description":"TCP Health check"},"healthCheckTimeout":{"type":"string","description":"Timeout before we consider a HC request failed"},"healthCheckTransientDelay":{"type":"string","description":"Time to wait between two consecutive health checks when a backend server is in a transient state (going UP or DOWN)"},"ignoreSslServerVerify":{"type":"boolean","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection"},"lbId":{"type":"string","description":"The load-balancer ID"},"maxConnections":{"type":"integer","description":"Maximum number of connections allowed per backend server"},"maxRetries":{"type":"integer","description":"Number of retries when a backend server connection failed"},"name":{"type":"string","description":"The name of the backend"},"onMarkedDownAction":{"type":"string","description":"Modify what occurs when a backend server is marked down"},"proxyProtocol":{"type":"string","description":"Type of PROXY protocol to enable"},"redispatchAttemptCount":{"type":"integer","description":"Whether to use another backend server on each attempt"},"sendProxyV2":{"type":"boolean","description":"Enables PROXY protocol version 2","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" proxyProtocol \" pulumi-lang-dotnet=\" ProxyProtocol \" pulumi-lang-go=\" proxyProtocol \" pulumi-lang-python=\" proxy_protocol \" pulumi-lang-yaml=\" proxyProtocol \" pulumi-lang-java=\" proxyProtocol \"\u003e proxy_protocol \u003c/span\u003einstead"},"serverIps":{"type":"array","items":{"type":"string"},"description":"Backend server IP addresses list (IPv4 or IPv6)"},"sslBridging":{"type":"boolean","description":"Enables SSL between load balancer and backend servers"},"stickySessions":{"type":"string","description":"The type of sticky sessions"},"stickySessionsCookieName":{"type":"string","description":"Cookie name for sticky sessions"},"timeoutConnect":{"type":"string","description":"Maximum initial server connection establishment time"},"timeoutQueue":{"type":"string","description":"Maximum time (in seconds) for a request to be left pending in queue when \u003cspan pulumi-lang-nodejs=\"`maxConnections`\" pulumi-lang-dotnet=\"`MaxConnections`\" pulumi-lang-go=\"`maxConnections`\" pulumi-lang-python=\"`max_connections`\" pulumi-lang-yaml=\"`maxConnections`\" pulumi-lang-java=\"`maxConnections`\"\u003e`max_connections`\u003c/span\u003e is reached"},"timeoutServer":{"type":"string","description":"Maximum server connection inactivity time"},"timeoutTunnel":{"type":"string","description":"Maximum tunnel inactivity time"}},"required":["forwardPort","forwardProtocol","healthCheckPort","healthCheckTcp","lbId","name","sendProxyV2"],"inputProperties":{"failoverHost":{"type":"string","description":"Scaleway S3 bucket website to be served in case all backend servers are down\n\n**NOTE** : Only the host part of the Scaleway S3 bucket website is expected.\nE.g. 'failover-website.s3-website.fr-par.scw.cloud' if your bucket website URL is 'https://failover-website.s3-website.fr-par.scw.cloud/'."},"forwardPort":{"type":"integer","description":"User sessions will be forwarded to this port of backend servers"},"forwardPortAlgorithm":{"type":"string","description":"Load balancing algorithm"},"forwardProtocol":{"type":"string","description":"Backend protocol"},"healthCheckDelay":{"type":"string","description":"Interval between two HC requests"},"healthCheckHttp":{"$ref":"#/types/scaleway:index/LoadbalancerBackendHealthCheckHttp:LoadbalancerBackendHealthCheckHttp","description":"HTTP Health check"},"healthCheckHttps":{"$ref":"#/types/scaleway:index/LoadbalancerBackendHealthCheckHttps:LoadbalancerBackendHealthCheckHttps","description":"HTTPS Health check"},"healthCheckMaxRetries":{"type":"integer","description":"Number of allowed failed HC requests before the backend server is marked down"},"healthCheckPort":{"type":"integer","description":"Port the HC requests will be send to. Default to \u003cspan pulumi-lang-nodejs=\"`forwardPort`\" pulumi-lang-dotnet=\"`ForwardPort`\" pulumi-lang-go=\"`forwardPort`\" pulumi-lang-python=\"`forward_port`\" pulumi-lang-yaml=\"`forwardPort`\" pulumi-lang-java=\"`forwardPort`\"\u003e`forward_port`\u003c/span\u003e"},"healthCheckSendProxy":{"type":"boolean","description":"Defines whether proxy protocol should be activated for the health check"},"healthCheckTcp":{"$ref":"#/types/scaleway:index/LoadbalancerBackendHealthCheckTcp:LoadbalancerBackendHealthCheckTcp","description":"TCP Health check"},"healthCheckTimeout":{"type":"string","description":"Timeout before we consider a HC request failed"},"healthCheckTransientDelay":{"type":"string","description":"Time to wait between two consecutive health checks when a backend server is in a transient state (going UP or DOWN)"},"ignoreSslServerVerify":{"type":"boolean","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection"},"lbId":{"type":"string","description":"The load-balancer ID","willReplaceOnChanges":true},"maxConnections":{"type":"integer","description":"Maximum number of connections allowed per backend server"},"maxRetries":{"type":"integer","description":"Number of retries when a backend server connection failed"},"name":{"type":"string","description":"The name of the backend"},"onMarkedDownAction":{"type":"string","description":"Modify what occurs when a backend server is marked down"},"proxyProtocol":{"type":"string","description":"Type of PROXY protocol to enable"},"redispatchAttemptCount":{"type":"integer","description":"Whether to use another backend server on each attempt"},"sendProxyV2":{"type":"boolean","description":"Enables PROXY protocol version 2","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" proxyProtocol \" pulumi-lang-dotnet=\" ProxyProtocol \" pulumi-lang-go=\" proxyProtocol \" pulumi-lang-python=\" proxy_protocol \" pulumi-lang-yaml=\" proxyProtocol \" pulumi-lang-java=\" proxyProtocol \"\u003e proxy_protocol \u003c/span\u003einstead"},"serverIps":{"type":"array","items":{"type":"string"},"description":"Backend server IP addresses list (IPv4 or IPv6)"},"sslBridging":{"type":"boolean","description":"Enables SSL between load balancer and backend servers"},"stickySessions":{"type":"string","description":"The type of sticky sessions"},"stickySessionsCookieName":{"type":"string","description":"Cookie name for sticky sessions"},"timeoutConnect":{"type":"string","description":"Maximum initial server connection establishment time"},"timeoutQueue":{"type":"string","description":"Maximum time (in seconds) for a request to be left pending in queue when \u003cspan pulumi-lang-nodejs=\"`maxConnections`\" pulumi-lang-dotnet=\"`MaxConnections`\" pulumi-lang-go=\"`maxConnections`\" pulumi-lang-python=\"`max_connections`\" pulumi-lang-yaml=\"`maxConnections`\" pulumi-lang-java=\"`maxConnections`\"\u003e`max_connections`\u003c/span\u003e is reached"},"timeoutServer":{"type":"string","description":"Maximum server connection inactivity time"},"timeoutTunnel":{"type":"string","description":"Maximum tunnel inactivity time"}},"requiredInputs":["forwardPort","forwardProtocol","lbId"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadbalancerBackend resources.\n","properties":{"failoverHost":{"type":"string","description":"Scaleway S3 bucket website to be served in case all backend servers are down\n\n**NOTE** : Only the host part of the Scaleway S3 bucket website is expected.\nE.g. 'failover-website.s3-website.fr-par.scw.cloud' if your bucket website URL is 'https://failover-website.s3-website.fr-par.scw.cloud/'."},"forwardPort":{"type":"integer","description":"User sessions will be forwarded to this port of backend servers"},"forwardPortAlgorithm":{"type":"string","description":"Load balancing algorithm"},"forwardProtocol":{"type":"string","description":"Backend protocol"},"healthCheckDelay":{"type":"string","description":"Interval between two HC requests"},"healthCheckHttp":{"$ref":"#/types/scaleway:index/LoadbalancerBackendHealthCheckHttp:LoadbalancerBackendHealthCheckHttp","description":"HTTP Health check"},"healthCheckHttps":{"$ref":"#/types/scaleway:index/LoadbalancerBackendHealthCheckHttps:LoadbalancerBackendHealthCheckHttps","description":"HTTPS Health check"},"healthCheckMaxRetries":{"type":"integer","description":"Number of allowed failed HC requests before the backend server is marked down"},"healthCheckPort":{"type":"integer","description":"Port the HC requests will be send to. Default to \u003cspan pulumi-lang-nodejs=\"`forwardPort`\" pulumi-lang-dotnet=\"`ForwardPort`\" pulumi-lang-go=\"`forwardPort`\" pulumi-lang-python=\"`forward_port`\" pulumi-lang-yaml=\"`forwardPort`\" pulumi-lang-java=\"`forwardPort`\"\u003e`forward_port`\u003c/span\u003e"},"healthCheckSendProxy":{"type":"boolean","description":"Defines whether proxy protocol should be activated for the health check"},"healthCheckTcp":{"$ref":"#/types/scaleway:index/LoadbalancerBackendHealthCheckTcp:LoadbalancerBackendHealthCheckTcp","description":"TCP Health check"},"healthCheckTimeout":{"type":"string","description":"Timeout before we consider a HC request failed"},"healthCheckTransientDelay":{"type":"string","description":"Time to wait between two consecutive health checks when a backend server is in a transient state (going UP or DOWN)"},"ignoreSslServerVerify":{"type":"boolean","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection"},"lbId":{"type":"string","description":"The load-balancer ID","willReplaceOnChanges":true},"maxConnections":{"type":"integer","description":"Maximum number of connections allowed per backend server"},"maxRetries":{"type":"integer","description":"Number of retries when a backend server connection failed"},"name":{"type":"string","description":"The name of the backend"},"onMarkedDownAction":{"type":"string","description":"Modify what occurs when a backend server is marked down"},"proxyProtocol":{"type":"string","description":"Type of PROXY protocol to enable"},"redispatchAttemptCount":{"type":"integer","description":"Whether to use another backend server on each attempt"},"sendProxyV2":{"type":"boolean","description":"Enables PROXY protocol version 2","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" proxyProtocol \" pulumi-lang-dotnet=\" ProxyProtocol \" pulumi-lang-go=\" proxyProtocol \" pulumi-lang-python=\" proxy_protocol \" pulumi-lang-yaml=\" proxyProtocol \" pulumi-lang-java=\" proxyProtocol \"\u003e proxy_protocol \u003c/span\u003einstead"},"serverIps":{"type":"array","items":{"type":"string"},"description":"Backend server IP addresses list (IPv4 or IPv6)"},"sslBridging":{"type":"boolean","description":"Enables SSL between load balancer and backend servers"},"stickySessions":{"type":"string","description":"The type of sticky sessions"},"stickySessionsCookieName":{"type":"string","description":"Cookie name for sticky sessions"},"timeoutConnect":{"type":"string","description":"Maximum initial server connection establishment time"},"timeoutQueue":{"type":"string","description":"Maximum time (in seconds) for a request to be left pending in queue when \u003cspan pulumi-lang-nodejs=\"`maxConnections`\" pulumi-lang-dotnet=\"`MaxConnections`\" pulumi-lang-go=\"`maxConnections`\" pulumi-lang-python=\"`max_connections`\" pulumi-lang-yaml=\"`maxConnections`\" pulumi-lang-java=\"`maxConnections`\"\u003e`max_connections`\u003c/span\u003e is reached"},"timeoutServer":{"type":"string","description":"Maximum server connection inactivity time"},"timeoutTunnel":{"type":"string","description":"Maximum tunnel inactivity time"}},"type":"object"},"deprecationMessage":"scaleway.index/loadbalancerbackend.LoadbalancerBackend has been deprecated in favor of scaleway.loadbalancers/backend.Backend"},"scaleway:index/loadbalancerCertificate:LoadbalancerCertificate":{"description":"\n\n## Import\n\nLoad Balancer certificates can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/loadbalancerCertificate:LoadbalancerCertificate cert01 fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"commonName":{"type":"string","description":"Main domain of the certificate\n"},"customCertificate":{"$ref":"#/types/scaleway:index/LoadbalancerCertificateCustomCertificate:LoadbalancerCertificateCustomCertificate","description":"The custom type certificate type configuration"},"fingerprint":{"type":"string","description":"The identifier (SHA-1) of the certificate\n"},"lbId":{"type":"string","description":"The load-balancer ID"},"letsencrypt":{"$ref":"#/types/scaleway:index/LoadbalancerCertificateLetsencrypt:LoadbalancerCertificateLetsencrypt","description":"The Let's Encrypt type certificate configuration"},"name":{"type":"string","description":"The name of the load-balancer certificate"},"notValidAfter":{"type":"string","description":"The not valid after validity bound timestamp\n"},"notValidBefore":{"type":"string","description":"The not valid before validity bound timestamp\n"},"status":{"type":"string","description":"Certificate status\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The alternative domain names of the certificate\n"}},"required":["commonName","fingerprint","lbId","name","notValidAfter","notValidBefore","status","subjectAlternativeNames"],"inputProperties":{"customCertificate":{"$ref":"#/types/scaleway:index/LoadbalancerCertificateCustomCertificate:LoadbalancerCertificateCustomCertificate","description":"The custom type certificate type configuration","willReplaceOnChanges":true},"lbId":{"type":"string","description":"The load-balancer ID","willReplaceOnChanges":true},"letsencrypt":{"$ref":"#/types/scaleway:index/LoadbalancerCertificateLetsencrypt:LoadbalancerCertificateLetsencrypt","description":"The Let's Encrypt type certificate configuration","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the load-balancer certificate"}},"requiredInputs":["lbId"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadbalancerCertificate resources.\n","properties":{"commonName":{"type":"string","description":"Main domain of the certificate\n"},"customCertificate":{"$ref":"#/types/scaleway:index/LoadbalancerCertificateCustomCertificate:LoadbalancerCertificateCustomCertificate","description":"The custom type certificate type configuration","willReplaceOnChanges":true},"fingerprint":{"type":"string","description":"The identifier (SHA-1) of the certificate\n"},"lbId":{"type":"string","description":"The load-balancer ID","willReplaceOnChanges":true},"letsencrypt":{"$ref":"#/types/scaleway:index/LoadbalancerCertificateLetsencrypt:LoadbalancerCertificateLetsencrypt","description":"The Let's Encrypt type certificate configuration","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the load-balancer certificate"},"notValidAfter":{"type":"string","description":"The not valid after validity bound timestamp\n"},"notValidBefore":{"type":"string","description":"The not valid before validity bound timestamp\n"},"status":{"type":"string","description":"Certificate status\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The alternative domain names of the certificate\n"}},"type":"object"},"deprecationMessage":"scaleway.index/loadbalancercertificate.LoadbalancerCertificate has been deprecated in favor of scaleway.loadbalancers/certificate.Certificate"},"scaleway:index/loadbalancerFrontend:LoadbalancerFrontend":{"description":"Creates and manages Scaleway Load Balancer frontends.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-frontends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-frontends).\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 frontend01 = new scaleway.loadbalancers.Frontend(\"frontend01\", {\n    lbId: lb01.id,\n    backendId: backend01.id,\n    name: \"frontend01\",\n    inboundPort: 80,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nfrontend01 = scaleway.loadbalancers.Frontend(\"frontend01\",\n    lb_id=lb01[\"id\"],\n    backend_id=backend01[\"id\"],\n    name=\"frontend01\",\n    inbound_port=80)\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 frontend01 = new Scaleway.Loadbalancers.Frontend(\"frontend01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = backend01.Id,\n        Name = \"frontend01\",\n        InboundPort = 80,\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewFrontend(ctx, \"frontend01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        pulumi.Any(lb01.Id),\n\t\t\tBackendId:   pulumi.Any(backend01.Id),\n\t\t\tName:        pulumi.String(\"frontend01\"),\n\t\t\tInboundPort: pulumi.Int(80),\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.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\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 frontend01 = new Frontend(\"frontend01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(backend01.id())\n            .name(\"frontend01\")\n            .inboundPort(80)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  frontend01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${backend01.id}\n      name: frontend01\n      inboundPort: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## With ACLs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst frontend01 = new scaleway.loadbalancers.Frontend(\"frontend01\", {\n    lbId: lb01.id,\n    backendId: backend01.id,\n    name: \"frontend01\",\n    inboundPort: 80,\n    acls: [\n        {\n            name: \"blacklist wellknwon IPs\",\n            action: {\n                type: \"allow\",\n            },\n            match: {\n                ipSubnets: [\n                    \"192.168.0.1\",\n                    \"192.168.0.2\",\n                    \"192.168.10.0/24\",\n                ],\n            },\n        },\n        {\n            action: {\n                type: \"deny\",\n            },\n            match: {\n                ipSubnets: [\"51.51.51.51\"],\n                httpFilter: \"regex\",\n                httpFilterValues: [\"^foo*bar$\"],\n            },\n        },\n        {\n            action: {\n                type: \"allow\",\n            },\n            match: {\n                httpFilter: \"path_begin\",\n                httpFilterValues: [\n                    \"foo\",\n                    \"bar\",\n                ],\n            },\n        },\n        {\n            action: {\n                type: \"allow\",\n            },\n            match: {\n                httpFilter: \"path_begin\",\n                httpFilterValues: [\"hi\"],\n                invert: true,\n            },\n        },\n        {\n            action: {\n                type: \"allow\",\n            },\n            match: {\n                httpFilter: \"http_header_match\",\n                httpFilterValues: \"foo\",\n                httpFilterOption: \"bar\",\n            },\n        },\n        {\n            action: {\n                type: \"redirect\",\n                redirects: [{\n                    type: \"location\",\n                    target: \"https://example.com\",\n                    code: 307,\n                }],\n            },\n            match: {\n                ipSubnets: [\"10.0.0.10\"],\n                httpFilter: \"path_begin\",\n                httpFilterValues: [\n                    \"foo\",\n                    \"bar\",\n                ],\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nfrontend01 = scaleway.loadbalancers.Frontend(\"frontend01\",\n    lb_id=lb01[\"id\"],\n    backend_id=backend01[\"id\"],\n    name=\"frontend01\",\n    inbound_port=80,\n    acls=[\n        {\n            \"name\": \"blacklist wellknwon IPs\",\n            \"action\": {\n                \"type\": \"allow\",\n            },\n            \"match\": {\n                \"ip_subnets\": [\n                    \"192.168.0.1\",\n                    \"192.168.0.2\",\n                    \"192.168.10.0/24\",\n                ],\n            },\n        },\n        {\n            \"action\": {\n                \"type\": \"deny\",\n            },\n            \"match\": {\n                \"ip_subnets\": [\"51.51.51.51\"],\n                \"http_filter\": \"regex\",\n                \"http_filter_values\": [\"^foo*bar$\"],\n            },\n        },\n        {\n            \"action\": {\n                \"type\": \"allow\",\n            },\n            \"match\": {\n                \"http_filter\": \"path_begin\",\n                \"http_filter_values\": [\n                    \"foo\",\n                    \"bar\",\n                ],\n            },\n        },\n        {\n            \"action\": {\n                \"type\": \"allow\",\n            },\n            \"match\": {\n                \"http_filter\": \"path_begin\",\n                \"http_filter_values\": [\"hi\"],\n                \"invert\": True,\n            },\n        },\n        {\n            \"action\": {\n                \"type\": \"allow\",\n            },\n            \"match\": {\n                \"http_filter\": \"http_header_match\",\n                \"http_filter_values\": \"foo\",\n                \"http_filter_option\": \"bar\",\n            },\n        },\n        {\n            \"action\": {\n                \"type\": \"redirect\",\n                \"redirects\": [{\n                    \"type\": \"location\",\n                    \"target\": \"https://example.com\",\n                    \"code\": 307,\n                }],\n            },\n            \"match\": {\n                \"ip_subnets\": [\"10.0.0.10\"],\n                \"http_filter\": \"path_begin\",\n                \"http_filter_values\": [\n                    \"foo\",\n                    \"bar\",\n                ],\n            },\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 frontend01 = new Scaleway.Loadbalancers.Frontend(\"frontend01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = backend01.Id,\n        Name = \"frontend01\",\n        InboundPort = 80,\n        Acls = new[]\n        {\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Name = \"blacklist wellknwon IPs\",\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"allow\",\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    IpSubnets = new[]\n                    {\n                        \"192.168.0.1\",\n                        \"192.168.0.2\",\n                        \"192.168.10.0/24\",\n                    },\n                },\n            },\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"deny\",\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    IpSubnets = new[]\n                    {\n                        \"51.51.51.51\",\n                    },\n                    HttpFilter = \"regex\",\n                    HttpFilterValues = new[]\n                    {\n                        \"^foo*bar$\",\n                    },\n                },\n            },\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"allow\",\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    HttpFilter = \"path_begin\",\n                    HttpFilterValues = new[]\n                    {\n                        \"foo\",\n                        \"bar\",\n                    },\n                },\n            },\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"allow\",\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    HttpFilter = \"path_begin\",\n                    HttpFilterValues = new[]\n                    {\n                        \"hi\",\n                    },\n                    Invert = true,\n                },\n            },\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"allow\",\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    HttpFilter = \"http_header_match\",\n                    HttpFilterValues = \"foo\",\n                    HttpFilterOption = \"bar\",\n                },\n            },\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"redirect\",\n                    Redirects = new[]\n                    {\n                        new Scaleway.Loadbalancers.Inputs.FrontendAclActionRedirectArgs\n                        {\n                            Type = \"location\",\n                            Target = \"https://example.com\",\n                            Code = 307,\n                        },\n                    },\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    IpSubnets = new[]\n                    {\n                        \"10.0.0.10\",\n                    },\n                    HttpFilter = \"path_begin\",\n                    HttpFilterValues = new[]\n                    {\n                        \"foo\",\n                        \"bar\",\n                    },\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewFrontend(ctx, \"frontend01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        pulumi.Any(lb01.Id),\n\t\t\tBackendId:   pulumi.Any(backend01.Id),\n\t\t\tName:        pulumi.String(\"frontend01\"),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t\tAcls: loadbalancers.FrontendAclArray{\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tName: pulumi.String(\"blacklist wellknwon IPs\"),\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"allow\"),\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tIpSubnets: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"192.168.0.1\"),\n\t\t\t\t\t\t\tpulumi.String(\"192.168.0.2\"),\n\t\t\t\t\t\t\tpulumi.String(\"192.168.10.0/24\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"deny\"),\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tIpSubnets: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"51.51.51.51\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tHttpFilter: pulumi.String(\"regex\"),\n\t\t\t\t\t\tHttpFilterValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"^foo*bar$\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"allow\"),\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tHttpFilter: pulumi.String(\"path_begin\"),\n\t\t\t\t\t\tHttpFilterValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\t\t\t\tpulumi.String(\"bar\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"allow\"),\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tHttpFilter: pulumi.String(\"path_begin\"),\n\t\t\t\t\t\tHttpFilterValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hi\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tInvert: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"allow\"),\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tHttpFilter:       pulumi.String(\"http_header_match\"),\n\t\t\t\t\t\tHttpFilterValues: pulumi.StringArray(\"foo\"),\n\t\t\t\t\t\tHttpFilterOption: pulumi.String(\"bar\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t\t\t\tRedirects: loadbalancers.FrontendAclActionRedirectArray{\n\t\t\t\t\t\t\t\u0026loadbalancers.FrontendAclActionRedirectArgs{\n\t\t\t\t\t\t\t\tType:   pulumi.String(\"location\"),\n\t\t\t\t\t\t\t\tTarget: pulumi.String(\"https://example.com\"),\n\t\t\t\t\t\t\t\tCode:   pulumi.Int(307),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tIpSubnets: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"10.0.0.10\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tHttpFilter: pulumi.String(\"path_begin\"),\n\t\t\t\t\t\tHttpFilterValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\t\t\t\tpulumi.String(\"bar\"),\n\t\t\t\t\t\t},\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.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.FrontendAclArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.FrontendAclActionArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.FrontendAclMatchArgs;\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 frontend01 = new Frontend(\"frontend01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(backend01.id())\n            .name(\"frontend01\")\n            .inboundPort(80)\n            .acls(            \n                FrontendAclArgs.builder()\n                    .name(\"blacklist wellknwon IPs\")\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"allow\")\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .ipSubnets(                        \n                            \"192.168.0.1\",\n                            \"192.168.0.2\",\n                            \"192.168.10.0/24\")\n                        .build())\n                    .build(),\n                FrontendAclArgs.builder()\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"deny\")\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .ipSubnets(\"51.51.51.51\")\n                        .httpFilter(\"regex\")\n                        .httpFilterValues(\"^foo*bar$\")\n                        .build())\n                    .build(),\n                FrontendAclArgs.builder()\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"allow\")\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .httpFilter(\"path_begin\")\n                        .httpFilterValues(                        \n                            \"foo\",\n                            \"bar\")\n                        .build())\n                    .build(),\n                FrontendAclArgs.builder()\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"allow\")\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .httpFilter(\"path_begin\")\n                        .httpFilterValues(\"hi\")\n                        .invert(true)\n                        .build())\n                    .build(),\n                FrontendAclArgs.builder()\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"allow\")\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .httpFilter(\"http_header_match\")\n                        .httpFilterValues(\"foo\")\n                        .httpFilterOption(\"bar\")\n                        .build())\n                    .build(),\n                FrontendAclArgs.builder()\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"redirect\")\n                        .redirects(FrontendAclActionRedirectArgs.builder()\n                            .type(\"location\")\n                            .target(\"https://example.com\")\n                            .code(307)\n                            .build())\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .ipSubnets(\"10.0.0.10\")\n                        .httpFilter(\"path_begin\")\n                        .httpFilterValues(                        \n                            \"foo\",\n                            \"bar\")\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  frontend01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${backend01.id}\n      name: frontend01\n      inboundPort: '80'\n      acls:\n        - name: blacklist wellknwon IPs\n          action:\n            type: allow\n          match:\n            ipSubnets:\n              - 192.168.0.1\n              - 192.168.0.2\n              - 192.168.10.0/24\n        - action:\n            type: deny\n          match:\n            ipSubnets:\n              - 51.51.51.51\n            httpFilter: regex\n            httpFilterValues:\n              - ^foo*bar$\n        - action:\n            type: allow\n          match:\n            httpFilter: path_begin\n            httpFilterValues:\n              - foo\n              - bar\n        - action:\n            type: allow\n          match:\n            httpFilter: path_begin\n            httpFilterValues:\n              - hi\n            invert: 'true'\n        - action:\n            type: allow\n          match:\n            httpFilter: http_header_match\n            httpFilterValues: foo\n            httpFilterOption: bar\n        - action:\n            type: redirect\n            redirects:\n              - type: location\n                target: https://example.com\n                code: 307\n          match:\n            ipSubnets:\n              - 10.0.0.10\n            httpFilter: path_begin\n            httpFilterValues:\n              - foo\n              - bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer frontends can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/loadbalancerFrontend:LoadbalancerFrontend frontend01 fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:index/LoadbalancerFrontendAcl:LoadbalancerFrontendAcl"},"description":"A list of ACL rules to apply to the Load Balancer frontend.  Defined below.\n"},"backendId":{"type":"string","description":"The ID of the Load Balancer backend this frontend is attached to.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`lbId`\" pulumi-lang-dotnet=\"`LbId`\" pulumi-lang-go=\"`lbId`\" pulumi-lang-python=\"`lb_id`\" pulumi-lang-yaml=\"`lbId`\" pulumi-lang-java=\"`lbId`\"\u003e`lb_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`backendId`\" pulumi-lang-dotnet=\"`BackendId`\" pulumi-lang-go=\"`backendId`\" pulumi-lang-python=\"`backend_id`\" pulumi-lang-yaml=\"`backendId`\" pulumi-lang-java=\"`backendId`\"\u003e`backend_id`\u003c/span\u003e will recreate the frontend.\n"},"certificateId":{"type":"string","description":"(Deprecated, use \u003cspan pulumi-lang-nodejs=\"`certificateIds`\" pulumi-lang-dotnet=\"`CertificateIds`\" pulumi-lang-go=\"`certificateIds`\" pulumi-lang-python=\"`certificate_ids`\" pulumi-lang-yaml=\"`certificateIds`\" pulumi-lang-java=\"`certificateIds`\"\u003e`certificate_ids`\u003c/span\u003e instead) First certificate ID used by the frontend.\n","deprecationMessage":"Please use certificate_ids"},"certificateIds":{"type":"array","items":{"type":"string"},"description":"List of certificate IDs that should be used by the frontend.\n\n\u003e **Important:** Certificates are not allowed on port 80.\n"},"connectionRateLimit":{"type":"integer","description":"The rate limit for new connections established on this frontend. Use 0 value to disable, else value is connections per second.\n"},"createdAt":{"type":"string","description":"The date and time the frontend was created.\n"},"enableAccessLogs":{"type":"boolean","description":"Defines whether to enable access logs on the frontend.\n"},"enableHttp3":{"type":"boolean","description":"Activates HTTP/3 protocol.\n"},"externalAcls":{"type":"boolean","description":"A boolean to specify whether to use lb_acl.\nIf \u003cspan pulumi-lang-nodejs=\"`externalAcls`\" pulumi-lang-dotnet=\"`ExternalAcls`\" pulumi-lang-go=\"`externalAcls`\" pulumi-lang-python=\"`external_acls`\" pulumi-lang-yaml=\"`externalAcls`\" pulumi-lang-java=\"`externalAcls`\"\u003e`external_acls`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e can not be set directly in the Load Balancer frontend.\n"},"inboundPort":{"type":"integer","description":"TCP port to listen to on the front side.\n"},"lbId":{"type":"string","description":"The ID of the Load Balancer this frontend is attached to.\n"},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"timeoutClient":{"type":"string","description":"Maximum inactivity time on the client side. (e.g. \u003cspan pulumi-lang-nodejs=\"`1s`\" pulumi-lang-dotnet=\"`1s`\" pulumi-lang-go=\"`1s`\" pulumi-lang-python=\"`1s`\" pulumi-lang-yaml=\"`1s`\" pulumi-lang-java=\"`1s`\"\u003e`1s`\u003c/span\u003e)\n"},"updatedAt":{"type":"string","description":"The date and time the frontend resource was updated.\n"}},"required":["backendId","certificateId","createdAt","inboundPort","lbId","name","updatedAt"],"inputProperties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:index/LoadbalancerFrontendAcl:LoadbalancerFrontendAcl"},"description":"A list of ACL rules to apply to the Load Balancer frontend.  Defined below.\n"},"backendId":{"type":"string","description":"The ID of the Load Balancer backend this frontend is attached to.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`lbId`\" pulumi-lang-dotnet=\"`LbId`\" pulumi-lang-go=\"`lbId`\" pulumi-lang-python=\"`lb_id`\" pulumi-lang-yaml=\"`lbId`\" pulumi-lang-java=\"`lbId`\"\u003e`lb_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`backendId`\" pulumi-lang-dotnet=\"`BackendId`\" pulumi-lang-go=\"`backendId`\" pulumi-lang-python=\"`backend_id`\" pulumi-lang-yaml=\"`backendId`\" pulumi-lang-java=\"`backendId`\"\u003e`backend_id`\u003c/span\u003e will recreate the frontend.\n","willReplaceOnChanges":true},"certificateIds":{"type":"array","items":{"type":"string"},"description":"List of certificate IDs that should be used by the frontend.\n\n\u003e **Important:** Certificates are not allowed on port 80.\n"},"connectionRateLimit":{"type":"integer","description":"The rate limit for new connections established on this frontend. Use 0 value to disable, else value is connections per second.\n"},"enableAccessLogs":{"type":"boolean","description":"Defines whether to enable access logs on the frontend.\n"},"enableHttp3":{"type":"boolean","description":"Activates HTTP/3 protocol.\n"},"externalAcls":{"type":"boolean","description":"A boolean to specify whether to use lb_acl.\nIf \u003cspan pulumi-lang-nodejs=\"`externalAcls`\" pulumi-lang-dotnet=\"`ExternalAcls`\" pulumi-lang-go=\"`externalAcls`\" pulumi-lang-python=\"`external_acls`\" pulumi-lang-yaml=\"`externalAcls`\" pulumi-lang-java=\"`externalAcls`\"\u003e`external_acls`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e can not be set directly in the Load Balancer frontend.\n"},"inboundPort":{"type":"integer","description":"TCP port to listen to on the front side.\n"},"lbId":{"type":"string","description":"The ID of the Load Balancer this frontend is attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"timeoutClient":{"type":"string","description":"Maximum inactivity time on the client side. (e.g. \u003cspan pulumi-lang-nodejs=\"`1s`\" pulumi-lang-dotnet=\"`1s`\" pulumi-lang-go=\"`1s`\" pulumi-lang-python=\"`1s`\" pulumi-lang-yaml=\"`1s`\" pulumi-lang-java=\"`1s`\"\u003e`1s`\u003c/span\u003e)\n"}},"requiredInputs":["backendId","inboundPort","lbId"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadbalancerFrontend resources.\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:index/LoadbalancerFrontendAcl:LoadbalancerFrontendAcl"},"description":"A list of ACL rules to apply to the Load Balancer frontend.  Defined below.\n"},"backendId":{"type":"string","description":"The ID of the Load Balancer backend this frontend is attached to.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`lbId`\" pulumi-lang-dotnet=\"`LbId`\" pulumi-lang-go=\"`lbId`\" pulumi-lang-python=\"`lb_id`\" pulumi-lang-yaml=\"`lbId`\" pulumi-lang-java=\"`lbId`\"\u003e`lb_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`backendId`\" pulumi-lang-dotnet=\"`BackendId`\" pulumi-lang-go=\"`backendId`\" pulumi-lang-python=\"`backend_id`\" pulumi-lang-yaml=\"`backendId`\" pulumi-lang-java=\"`backendId`\"\u003e`backend_id`\u003c/span\u003e will recreate the frontend.\n","willReplaceOnChanges":true},"certificateId":{"type":"string","description":"(Deprecated, use \u003cspan pulumi-lang-nodejs=\"`certificateIds`\" pulumi-lang-dotnet=\"`CertificateIds`\" pulumi-lang-go=\"`certificateIds`\" pulumi-lang-python=\"`certificate_ids`\" pulumi-lang-yaml=\"`certificateIds`\" pulumi-lang-java=\"`certificateIds`\"\u003e`certificate_ids`\u003c/span\u003e instead) First certificate ID used by the frontend.\n","deprecationMessage":"Please use certificate_ids"},"certificateIds":{"type":"array","items":{"type":"string"},"description":"List of certificate IDs that should be used by the frontend.\n\n\u003e **Important:** Certificates are not allowed on port 80.\n"},"connectionRateLimit":{"type":"integer","description":"The rate limit for new connections established on this frontend. Use 0 value to disable, else value is connections per second.\n"},"createdAt":{"type":"string","description":"The date and time the frontend was created.\n"},"enableAccessLogs":{"type":"boolean","description":"Defines whether to enable access logs on the frontend.\n"},"enableHttp3":{"type":"boolean","description":"Activates HTTP/3 protocol.\n"},"externalAcls":{"type":"boolean","description":"A boolean to specify whether to use lb_acl.\nIf \u003cspan pulumi-lang-nodejs=\"`externalAcls`\" pulumi-lang-dotnet=\"`ExternalAcls`\" pulumi-lang-go=\"`externalAcls`\" pulumi-lang-python=\"`external_acls`\" pulumi-lang-yaml=\"`externalAcls`\" pulumi-lang-java=\"`externalAcls`\"\u003e`external_acls`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e can not be set directly in the Load Balancer frontend.\n"},"inboundPort":{"type":"integer","description":"TCP port to listen to on the front side.\n"},"lbId":{"type":"string","description":"The ID of the Load Balancer this frontend is attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"timeoutClient":{"type":"string","description":"Maximum inactivity time on the client side. (e.g. \u003cspan pulumi-lang-nodejs=\"`1s`\" pulumi-lang-dotnet=\"`1s`\" pulumi-lang-go=\"`1s`\" pulumi-lang-python=\"`1s`\" pulumi-lang-yaml=\"`1s`\" pulumi-lang-java=\"`1s`\"\u003e`1s`\u003c/span\u003e)\n"},"updatedAt":{"type":"string","description":"The date and time the frontend resource was updated.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/loadbalancerfrontend.LoadbalancerFrontend has been deprecated in favor of scaleway.loadbalancers/frontend.Frontend"},"scaleway:index/loadbalancerIp:LoadbalancerIp":{"description":"Creates and manages Scaleway Load Balancer IP addresses.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-flex-ips/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-ip-addresses-list-ip-addresses).\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ip = new scaleway.loadbalancers.Ip(\"ip\", {reverse: \"my-reverse.com\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nip = scaleway.loadbalancers.Ip(\"ip\", reverse=\"my-reverse.com\")\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 ip = new Scaleway.Loadbalancers.Ip(\"ip\", new()\n    {\n        Reverse = \"my-reverse.com\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewIp(ctx, \"ip\", \u0026loadbalancers.IpArgs{\n\t\t\tReverse: pulumi.String(\"my-reverse.com\"),\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.IpArgs;\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 ip = new Ip(\"ip\", IpArgs.builder()\n            .reverse(\"my-reverse.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip:\n    type: scaleway:loadbalancers:Ip\n    properties:\n      reverse: my-reverse.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPv6\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ipv6 = new scaleway.loadbalancers.Ip(\"ipv6\", {isIpv6: true});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nipv6 = scaleway.loadbalancers.Ip(\"ipv6\", is_ipv6=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 ipv6 = new Scaleway.Loadbalancers.Ip(\"ipv6\", new()\n    {\n        IsIpv6 = 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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewIp(ctx, \"ipv6\", \u0026loadbalancers.IpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.IpArgs;\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 ipv6 = new Ip(\"ipv6\", IpArgs.builder()\n            .isIpv6(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ipv6:\n    type: scaleway:loadbalancers:Ip\n    properties:\n      isIpv6: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIPs can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/loadbalancerIp:LoadbalancerIp ip01 fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"ipAddress":{"type":"string","description":"The IP address\n"},"isIpv6":{"type":"boolean","description":"If true, creates a flexible IP with an IPv6 address.\n"},"lbId":{"type":"string","description":"The associated Load Balancer ID if any\n"},"organizationId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003eyou want to attach the resource to"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n"},"region":{"type":"string","description":"The region of the resource"},"reverse":{"type":"string","description":"The reverse domain associated with this IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n"}},"required":["ipAddress","lbId","organizationId","projectId","region","reverse"],"inputProperties":{"isIpv6":{"type":"boolean","description":"If true, creates a flexible IP with an IPv6 address.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse domain associated with this IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering LoadbalancerIp resources.\n","properties":{"ipAddress":{"type":"string","description":"The IP address\n"},"isIpv6":{"type":"boolean","description":"If true, creates a flexible IP with an IPv6 address.\n","willReplaceOnChanges":true},"lbId":{"type":"string","description":"The associated Load Balancer ID if any\n"},"organizationId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003eyou want to attach the resource to"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region of the resource"},"reverse":{"type":"string","description":"The reverse domain associated with this IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/loadbalancerip.LoadbalancerIp has been deprecated in favor of scaleway.loadbalancers/ip.Ip"},"scaleway:index/loadbalancerRoute:LoadbalancerRoute":{"description":"Creates and manages Scaleway Load Balancer routes.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-routes/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-route).\n\n## Example Usage\n\n### With SNI for direction to TCP backends\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ip01 = new scaleway.loadbalancers.Ip(\"ip01\", {});\nconst lb01 = new scaleway.loadbalancers.LoadBalancer(\"lb01\", {\n    ipId: ip01.id,\n    name: \"test-lb\",\n    type: \"lb-s\",\n});\nconst bkd01 = new scaleway.loadbalancers.Backend(\"bkd01\", {\n    lbId: lb01.id,\n    forwardProtocol: \"tcp\",\n    forwardPort: 80,\n    proxyProtocol: \"none\",\n});\nconst frt01 = new scaleway.loadbalancers.Frontend(\"frt01\", {\n    lbId: lb01.id,\n    backendId: bkd01.id,\n    inboundPort: 80,\n});\nconst rt01 = new scaleway.loadbalancers.Route(\"rt01\", {\n    frontendId: frt01.id,\n    backendId: bkd01.id,\n    matchSni: \"sni.scaleway.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nip01 = scaleway.loadbalancers.Ip(\"ip01\")\nlb01 = scaleway.loadbalancers.LoadBalancer(\"lb01\",\n    ip_id=ip01.id,\n    name=\"test-lb\",\n    type=\"lb-s\")\nbkd01 = scaleway.loadbalancers.Backend(\"bkd01\",\n    lb_id=lb01.id,\n    forward_protocol=\"tcp\",\n    forward_port=80,\n    proxy_protocol=\"none\")\nfrt01 = scaleway.loadbalancers.Frontend(\"frt01\",\n    lb_id=lb01.id,\n    backend_id=bkd01.id,\n    inbound_port=80)\nrt01 = scaleway.loadbalancers.Route(\"rt01\",\n    frontend_id=frt01.id,\n    backend_id=bkd01.id,\n    match_sni=\"sni.scaleway.com\")\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 ip01 = new Scaleway.Loadbalancers.Ip(\"ip01\");\n\n    var lb01 = new Scaleway.Loadbalancers.LoadBalancer(\"lb01\", new()\n    {\n        IpId = ip01.Id,\n        Name = \"test-lb\",\n        Type = \"lb-s\",\n    });\n\n    var bkd01 = new Scaleway.Loadbalancers.Backend(\"bkd01\", new()\n    {\n        LbId = lb01.Id,\n        ForwardProtocol = \"tcp\",\n        ForwardPort = 80,\n        ProxyProtocol = \"none\",\n    });\n\n    var frt01 = new Scaleway.Loadbalancers.Frontend(\"frt01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = bkd01.Id,\n        InboundPort = 80,\n    });\n\n    var rt01 = new Scaleway.Loadbalancers.Route(\"rt01\", new()\n    {\n        FrontendId = frt01.Id,\n        BackendId = bkd01.Id,\n        MatchSni = \"sni.scaleway.com\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip01, err := loadbalancers.NewIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb01, err := loadbalancers.NewLoadBalancer(ctx, \"lb01\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: ip01.ID(),\n\t\t\tName: pulumi.String(\"test-lb\"),\n\t\t\tType: pulumi.String(\"lb-s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbkd01, err := loadbalancers.NewBackend(ctx, \"bkd01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb01.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"tcp\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrt01, err := loadbalancers.NewFrontend(ctx, \"frt01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        lb01.ID(),\n\t\t\tBackendId:   bkd01.ID(),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewRoute(ctx, \"rt01\", \u0026loadbalancers.RouteArgs{\n\t\t\tFrontendId: frt01.ID(),\n\t\t\tBackendId:  bkd01.ID(),\n\t\t\tMatchSni:   pulumi.String(\"sni.scaleway.com\"),\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.Route;\nimport com.pulumi.scaleway.loadbalancers.RouteArgs;\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 ip01 = new Ip(\"ip01\");\n\n        var lb01 = new LoadBalancer(\"lb01\", LoadBalancerArgs.builder()\n            .ipId(ip01.id())\n            .name(\"test-lb\")\n            .type(\"lb-s\")\n            .build());\n\n        var bkd01 = new Backend(\"bkd01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .forwardProtocol(\"tcp\")\n            .forwardPort(80)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var frt01 = new Frontend(\"frt01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(bkd01.id())\n            .inboundPort(80)\n            .build());\n\n        var rt01 = new Route(\"rt01\", RouteArgs.builder()\n            .frontendId(frt01.id())\n            .backendId(bkd01.id())\n            .matchSni(\"sni.scaleway.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip01:\n    type: scaleway:loadbalancers:Ip\n  lb01:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipId: ${ip01.id}\n      name: test-lb\n      type: lb-s\n  bkd01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      forwardProtocol: tcp\n      forwardPort: 80\n      proxyProtocol: none\n  frt01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${bkd01.id}\n      inboundPort: 80\n  rt01:\n    type: scaleway:loadbalancers:Route\n    properties:\n      frontendId: ${frt01.id}\n      backendId: ${bkd01.id}\n      matchSni: sni.scaleway.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With host-header for direction to HTTP backends\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ip01 = new scaleway.loadbalancers.Ip(\"ip01\", {});\nconst lb01 = new scaleway.loadbalancers.LoadBalancer(\"lb01\", {\n    ipId: ip01.id,\n    name: \"test-lb\",\n    type: \"lb-s\",\n});\nconst bkd01 = new scaleway.loadbalancers.Backend(\"bkd01\", {\n    lbId: lb01.id,\n    forwardProtocol: \"http\",\n    forwardPort: 80,\n    proxyProtocol: \"none\",\n});\nconst frt01 = new scaleway.loadbalancers.Frontend(\"frt01\", {\n    lbId: lb01.id,\n    backendId: bkd01.id,\n    inboundPort: 80,\n});\nconst rt01 = new scaleway.loadbalancers.Route(\"rt01\", {\n    frontendId: frt01.id,\n    backendId: bkd01.id,\n    matchHostHeader: \"host.scaleway.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nip01 = scaleway.loadbalancers.Ip(\"ip01\")\nlb01 = scaleway.loadbalancers.LoadBalancer(\"lb01\",\n    ip_id=ip01.id,\n    name=\"test-lb\",\n    type=\"lb-s\")\nbkd01 = scaleway.loadbalancers.Backend(\"bkd01\",\n    lb_id=lb01.id,\n    forward_protocol=\"http\",\n    forward_port=80,\n    proxy_protocol=\"none\")\nfrt01 = scaleway.loadbalancers.Frontend(\"frt01\",\n    lb_id=lb01.id,\n    backend_id=bkd01.id,\n    inbound_port=80)\nrt01 = scaleway.loadbalancers.Route(\"rt01\",\n    frontend_id=frt01.id,\n    backend_id=bkd01.id,\n    match_host_header=\"host.scaleway.com\")\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 ip01 = new Scaleway.Loadbalancers.Ip(\"ip01\");\n\n    var lb01 = new Scaleway.Loadbalancers.LoadBalancer(\"lb01\", new()\n    {\n        IpId = ip01.Id,\n        Name = \"test-lb\",\n        Type = \"lb-s\",\n    });\n\n    var bkd01 = new Scaleway.Loadbalancers.Backend(\"bkd01\", new()\n    {\n        LbId = lb01.Id,\n        ForwardProtocol = \"http\",\n        ForwardPort = 80,\n        ProxyProtocol = \"none\",\n    });\n\n    var frt01 = new Scaleway.Loadbalancers.Frontend(\"frt01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = bkd01.Id,\n        InboundPort = 80,\n    });\n\n    var rt01 = new Scaleway.Loadbalancers.Route(\"rt01\", new()\n    {\n        FrontendId = frt01.Id,\n        BackendId = bkd01.Id,\n        MatchHostHeader = \"host.scaleway.com\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip01, err := loadbalancers.NewIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb01, err := loadbalancers.NewLoadBalancer(ctx, \"lb01\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: ip01.ID(),\n\t\t\tName: pulumi.String(\"test-lb\"),\n\t\t\tType: pulumi.String(\"lb-s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbkd01, err := loadbalancers.NewBackend(ctx, \"bkd01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb01.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrt01, err := loadbalancers.NewFrontend(ctx, \"frt01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        lb01.ID(),\n\t\t\tBackendId:   bkd01.ID(),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewRoute(ctx, \"rt01\", \u0026loadbalancers.RouteArgs{\n\t\t\tFrontendId:      frt01.ID(),\n\t\t\tBackendId:       bkd01.ID(),\n\t\t\tMatchHostHeader: pulumi.String(\"host.scaleway.com\"),\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.Route;\nimport com.pulumi.scaleway.loadbalancers.RouteArgs;\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 ip01 = new Ip(\"ip01\");\n\n        var lb01 = new LoadBalancer(\"lb01\", LoadBalancerArgs.builder()\n            .ipId(ip01.id())\n            .name(\"test-lb\")\n            .type(\"lb-s\")\n            .build());\n\n        var bkd01 = new Backend(\"bkd01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .forwardProtocol(\"http\")\n            .forwardPort(80)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var frt01 = new Frontend(\"frt01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(bkd01.id())\n            .inboundPort(80)\n            .build());\n\n        var rt01 = new Route(\"rt01\", RouteArgs.builder()\n            .frontendId(frt01.id())\n            .backendId(bkd01.id())\n            .matchHostHeader(\"host.scaleway.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip01:\n    type: scaleway:loadbalancers:Ip\n  lb01:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipId: ${ip01.id}\n      name: test-lb\n      type: lb-s\n  bkd01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      forwardProtocol: http\n      forwardPort: 80\n      proxyProtocol: none\n  frt01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${bkd01.id}\n      inboundPort: 80\n  rt01:\n    type: scaleway:loadbalancers:Route\n    properties:\n      frontendId: ${frt01.id}\n      backendId: ${bkd01.id}\n      matchHostHeader: host.scaleway.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With path-begin matching for HTTP backends\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ip = new scaleway.loadbalancers.Ip(\"ip\", {});\nconst lb = new scaleway.loadbalancers.LoadBalancer(\"lb\", {\n    ipId: ip.id,\n    name: \"my-lb\",\n    type: \"lb-s\",\n});\nconst app = new scaleway.loadbalancers.Backend(\"app\", {\n    lbId: lb.id,\n    forwardProtocol: \"http\",\n    forwardPort: 80,\n    proxyProtocol: \"none\",\n});\nconst admin = new scaleway.loadbalancers.Backend(\"admin\", {\n    lbId: lb.id,\n    forwardProtocol: \"http\",\n    forwardPort: 8080,\n    proxyProtocol: \"none\",\n});\nconst frontend = new scaleway.loadbalancers.Frontend(\"frontend\", {\n    lbId: lb.id,\n    backendId: app.id,\n    inboundPort: 80,\n});\nconst adminRoute = new scaleway.loadbalancers.Route(\"admin_route\", {\n    frontendId: frontend.id,\n    backendId: admin.id,\n    matchPathBegin: \"/admin\",\n});\nconst defaultRoute = new scaleway.loadbalancers.Route(\"default_route\", {\n    frontendId: frontend.id,\n    backendId: app.id,\n    matchPathBegin: \"/\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nip = scaleway.loadbalancers.Ip(\"ip\")\nlb = scaleway.loadbalancers.LoadBalancer(\"lb\",\n    ip_id=ip.id,\n    name=\"my-lb\",\n    type=\"lb-s\")\napp = scaleway.loadbalancers.Backend(\"app\",\n    lb_id=lb.id,\n    forward_protocol=\"http\",\n    forward_port=80,\n    proxy_protocol=\"none\")\nadmin = scaleway.loadbalancers.Backend(\"admin\",\n    lb_id=lb.id,\n    forward_protocol=\"http\",\n    forward_port=8080,\n    proxy_protocol=\"none\")\nfrontend = scaleway.loadbalancers.Frontend(\"frontend\",\n    lb_id=lb.id,\n    backend_id=app.id,\n    inbound_port=80)\nadmin_route = scaleway.loadbalancers.Route(\"admin_route\",\n    frontend_id=frontend.id,\n    backend_id=admin.id,\n    match_path_begin=\"/admin\")\ndefault_route = scaleway.loadbalancers.Route(\"default_route\",\n    frontend_id=frontend.id,\n    backend_id=app.id,\n    match_path_begin=\"/\")\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 ip = new Scaleway.Loadbalancers.Ip(\"ip\");\n\n    var lb = new Scaleway.Loadbalancers.LoadBalancer(\"lb\", new()\n    {\n        IpId = ip.Id,\n        Name = \"my-lb\",\n        Type = \"lb-s\",\n    });\n\n    var app = new Scaleway.Loadbalancers.Backend(\"app\", new()\n    {\n        LbId = lb.Id,\n        ForwardProtocol = \"http\",\n        ForwardPort = 80,\n        ProxyProtocol = \"none\",\n    });\n\n    var admin = new Scaleway.Loadbalancers.Backend(\"admin\", new()\n    {\n        LbId = lb.Id,\n        ForwardProtocol = \"http\",\n        ForwardPort = 8080,\n        ProxyProtocol = \"none\",\n    });\n\n    var frontend = new Scaleway.Loadbalancers.Frontend(\"frontend\", new()\n    {\n        LbId = lb.Id,\n        BackendId = app.Id,\n        InboundPort = 80,\n    });\n\n    var adminRoute = new Scaleway.Loadbalancers.Route(\"admin_route\", new()\n    {\n        FrontendId = frontend.Id,\n        BackendId = admin.Id,\n        MatchPathBegin = \"/admin\",\n    });\n\n    var defaultRoute = new Scaleway.Loadbalancers.Route(\"default_route\", new()\n    {\n        FrontendId = frontend.Id,\n        BackendId = app.Id,\n        MatchPathBegin = \"/\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip, err := loadbalancers.NewIp(ctx, \"ip\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb, err := loadbalancers.NewLoadBalancer(ctx, \"lb\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: ip.ID(),\n\t\t\tName: pulumi.String(\"my-lb\"),\n\t\t\tType: pulumi.String(\"lb-s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapp, err := loadbalancers.NewBackend(ctx, \"app\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tadmin, err := loadbalancers.NewBackend(ctx, \"admin\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(8080),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontend, err := loadbalancers.NewFrontend(ctx, \"frontend\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        lb.ID(),\n\t\t\tBackendId:   app.ID(),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewRoute(ctx, \"admin_route\", \u0026loadbalancers.RouteArgs{\n\t\t\tFrontendId:     frontend.ID(),\n\t\t\tBackendId:      admin.ID(),\n\t\t\tMatchPathBegin: pulumi.String(\"/admin\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewRoute(ctx, \"default_route\", \u0026loadbalancers.RouteArgs{\n\t\t\tFrontendId:     frontend.ID(),\n\t\t\tBackendId:      app.ID(),\n\t\t\tMatchPathBegin: pulumi.String(\"/\"),\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.Route;\nimport com.pulumi.scaleway.loadbalancers.RouteArgs;\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 ip = new Ip(\"ip\");\n\n        var lb = new LoadBalancer(\"lb\", LoadBalancerArgs.builder()\n            .ipId(ip.id())\n            .name(\"my-lb\")\n            .type(\"lb-s\")\n            .build());\n\n        var app = new Backend(\"app\", BackendArgs.builder()\n            .lbId(lb.id())\n            .forwardProtocol(\"http\")\n            .forwardPort(80)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var admin = new Backend(\"admin\", BackendArgs.builder()\n            .lbId(lb.id())\n            .forwardProtocol(\"http\")\n            .forwardPort(8080)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var frontend = new Frontend(\"frontend\", FrontendArgs.builder()\n            .lbId(lb.id())\n            .backendId(app.id())\n            .inboundPort(80)\n            .build());\n\n        var adminRoute = new Route(\"adminRoute\", RouteArgs.builder()\n            .frontendId(frontend.id())\n            .backendId(admin.id())\n            .matchPathBegin(\"/admin\")\n            .build());\n\n        var defaultRoute = new Route(\"defaultRoute\", RouteArgs.builder()\n            .frontendId(frontend.id())\n            .backendId(app.id())\n            .matchPathBegin(\"/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip:\n    type: scaleway:loadbalancers:Ip\n  lb:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipId: ${ip.id}\n      name: my-lb\n      type: lb-s\n  app:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb.id}\n      forwardProtocol: http\n      forwardPort: 80\n      proxyProtocol: none\n  admin:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb.id}\n      forwardProtocol: http\n      forwardPort: 8080\n      proxyProtocol: none\n  frontend:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb.id}\n      backendId: ${app.id}\n      inboundPort: 80\n  adminRoute:\n    type: scaleway:loadbalancers:Route\n    name: admin_route\n    properties:\n      frontendId: ${frontend.id}\n      backendId: ${admin.id}\n      matchPathBegin: /admin\n  defaultRoute:\n    type: scaleway:loadbalancers:Route\n    name: default_route\n    properties:\n      frontendId: ${frontend.id}\n      backendId: ${app.id}\n      matchPathBegin: /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer frontends can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/loadbalancerRoute:LoadbalancerRoute main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backendId":{"type":"string","description":"The ID of the backend the route is associated with.\n"},"createdAt":{"type":"string","description":"The date on which the route was created.\n"},"frontendId":{"type":"string","description":"The ID of the frontend the route is associated with.\n"},"matchHostHeader":{"type":"string","description":"The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on HTTP Load Balancers.\n"},"matchPathBegin":{"type":"string","description":"The value to match in the URL beginning path from an incoming request.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n"},"matchSni":{"type":"string","description":"The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on TCP Load Balancers.\n"},"matchSubdomains":{"type":"boolean","description":"If true, all subdomains will match.\n"},"updatedAt":{"type":"string","description":"The date on which the route was last updated.\n"}},"required":["backendId","createdAt","frontendId","updatedAt"],"inputProperties":{"backendId":{"type":"string","description":"The ID of the backend the route is associated with.\n"},"frontendId":{"type":"string","description":"The ID of the frontend the route is associated with.\n","willReplaceOnChanges":true},"matchHostHeader":{"type":"string","description":"The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on HTTP Load Balancers.\n"},"matchPathBegin":{"type":"string","description":"The value to match in the URL beginning path from an incoming request.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n"},"matchSni":{"type":"string","description":"The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on TCP Load Balancers.\n"},"matchSubdomains":{"type":"boolean","description":"If true, all subdomains will match.\n"}},"requiredInputs":["backendId","frontendId"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadbalancerRoute resources.\n","properties":{"backendId":{"type":"string","description":"The ID of the backend the route is associated with.\n"},"createdAt":{"type":"string","description":"The date on which the route was created.\n"},"frontendId":{"type":"string","description":"The ID of the frontend the route is associated with.\n","willReplaceOnChanges":true},"matchHostHeader":{"type":"string","description":"The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on HTTP Load Balancers.\n"},"matchPathBegin":{"type":"string","description":"The value to match in the URL beginning path from an incoming request.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n"},"matchSni":{"type":"string","description":"The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on TCP Load Balancers.\n"},"matchSubdomains":{"type":"boolean","description":"If true, all subdomains will match.\n"},"updatedAt":{"type":"string","description":"The date on which the route was last updated.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/loadbalancerroute.LoadbalancerRoute has been deprecated in favor of scaleway.loadbalancers/route.Route"},"scaleway:index/mnqNatsAccount:MnqNatsAccount":{"description":"Creates and manages Scaleway Messaging and Queuing NATS accounts.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/nats-overview/)\nTo use the Scaleway provider with the official NATS JetStream provider, check out the corresponding guide.\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.mnq.NatsAccount(\"main\", {name: \"nats-account\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.NatsAccount(\"main\", name=\"nats-account\")\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.Mnq.NatsAccount(\"main\", new()\n    {\n        Name = \"nats-account\",\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mnq.NewNatsAccount(ctx, \"main\", \u0026mnq.NatsAccountArgs{\n\t\t\tName: pulumi.String(\"nats-account\"),\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.mnq.NatsAccount;\nimport com.pulumi.scaleway.mnq.NatsAccountArgs;\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 NatsAccount(\"main\", NatsAccountArgs.builder()\n            .name(\"nats-account\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:NatsAccount\n    properties:\n      name: nats-account\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNamespaces can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/mnqNatsAccount:MnqNatsAccount main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the NATS service for this account.\n"},"name":{"type":"string","description":"The unique name of the NATS account.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the\naccount is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account should be created.\n"}},"required":["endpoint","name","projectId"],"inputProperties":{"name":{"type":"string","description":"The unique name of the NATS account.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the\naccount is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering MnqNatsAccount resources.\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the NATS service for this account.\n"},"name":{"type":"string","description":"The unique name of the NATS account.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the\naccount is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/mnqnatsaccount.MnqNatsAccount has been deprecated in favor of scaleway.mnq/natsaccount.NatsAccount"},"scaleway:index/mnqNatsCredentials:MnqNatsCredentials":{"description":"Creates and manages Scaleway Messaging and Queuing NATS credentials.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/nats-overview/).\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.mnq.NatsAccount(\"main\", {name: \"nats-account\"});\nconst mainNatsCredentials = new scaleway.mnq.NatsCredentials(\"main\", {accountId: main.id});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.NatsAccount(\"main\", name=\"nats-account\")\nmain_nats_credentials = scaleway.mnq.NatsCredentials(\"main\", account_id=main.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 main = new Scaleway.Mnq.NatsAccount(\"main\", new()\n    {\n        Name = \"nats-account\",\n    });\n\n    var mainNatsCredentials = new Scaleway.Mnq.NatsCredentials(\"main\", new()\n    {\n        AccountId = 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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewNatsAccount(ctx, \"main\", \u0026mnq.NatsAccountArgs{\n\t\t\tName: pulumi.String(\"nats-account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewNatsCredentials(ctx, \"main\", \u0026mnq.NatsCredentialsArgs{\n\t\t\tAccountId: main.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.mnq.NatsAccount;\nimport com.pulumi.scaleway.mnq.NatsAccountArgs;\nimport com.pulumi.scaleway.mnq.NatsCredentials;\nimport com.pulumi.scaleway.mnq.NatsCredentialsArgs;\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 NatsAccount(\"main\", NatsAccountArgs.builder()\n            .name(\"nats-account\")\n            .build());\n\n        var mainNatsCredentials = new NatsCredentials(\"mainNatsCredentials\", NatsCredentialsArgs.builder()\n            .accountId(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:NatsAccount\n    properties:\n      name: nats-account\n  mainNatsCredentials:\n    type: scaleway:mnq:NatsCredentials\n    name: main\n    properties:\n      accountId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNamespaces can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/mnqNatsCredentials:MnqNatsCredentials main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"accountId":{"type":"string","description":"The ID of the NATS account the credentials are generated from\n"},"file":{"type":"string","description":"The content of the credentials file.\n","secret":true},"name":{"type":"string","description":"The unique name of the NATS credentials.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account exists.\n"}},"required":["accountId","file","name"],"inputProperties":{"accountId":{"type":"string","description":"The ID of the NATS account the credentials are generated from\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The unique name of the NATS credentials.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account exists.\n","willReplaceOnChanges":true}},"requiredInputs":["accountId"],"stateInputs":{"description":"Input properties used for looking up and filtering MnqNatsCredentials resources.\n","properties":{"accountId":{"type":"string","description":"The ID of the NATS account the credentials are generated from\n","willReplaceOnChanges":true},"file":{"type":"string","description":"The content of the credentials file.\n","secret":true},"name":{"type":"string","description":"The unique name of the NATS credentials.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account exists.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/mnqnatscredentials.MnqNatsCredentials has been deprecated in favor of scaleway.mnq/natscredentials.NatsCredentials"},"scaleway:index/mnqSns:MnqSns":{"description":"Activates Scaleway Messaging and Queuing SNS in a Project.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/sns-overview/).\n\n## Example Usage\n\n### Basic\n\nActivate SNS in the default Project\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.mnq.Sns(\"main\", {});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sns(\"main\")\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.Mnq.Sns(\"main\");\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mnq.NewSns(ctx, \"main\", 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.mnq.Sns;\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 Sns(\"main\");\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sns\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nActivate SNS 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 project = scaleway.account.getProject({\n    name: \"default\",\n});\n// For specific Project in default region\nconst forProject = new scaleway.mnq.Sns(\"for_project\", {projectId: project.then(project =\u003e project.id)});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.get_project(name=\"default\")\n# For specific Project in default region\nfor_project = scaleway.mnq.Sns(\"for_project\", project_id=project.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 project = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    // For specific Project in default region\n    var forProject = new Scaleway.Mnq.Sns(\"for_project\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// For specific Project in default region\n\t\t_, err = mnq.NewSns(ctx, \"for_project\", \u0026mnq.SnsArgs{\n\t\t\tProjectId: pulumi.String(project.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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.mnq.Sns;\nimport com.pulumi.scaleway.mnq.SnsArgs;\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 project = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        // For specific Project in default region\n        var forProject = new Sns(\"forProject\", SnsArgs.builder()\n            .projectId(project.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # For specific Project in default region\n  forProject:\n    type: scaleway:mnq:Sns\n    name: for_project\n    properties:\n      projectId: ${project.id}\nvariables:\n  project:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSNS status can be imported using `{region}/{project_id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/mnqSns:MnqSns main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the SNS service for this Project.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project in which SNS will be enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS will be enabled.\n"}},"required":["endpoint","projectId"],"inputProperties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project in which SNS will be enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS will be enabled.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering MnqSns resources.\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the SNS service for this Project.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project in which SNS will be enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS will be enabled.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/mnqsns.MnqSns has been deprecated in favor of scaleway.mnq/sns.Sns"},"scaleway:index/mnqSnsCredentials:MnqSnsCredentials":{"description":"Creates and manages Scaleway Messaging and Queuing SNS credentials.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/sns-overview/)\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.mnq.Sns(\"main\", {});\nconst mainSnsCredentials = new scaleway.mnq.SnsCredentials(\"main\", {\n    projectId: main.projectId,\n    name: \"sns-credentials\",\n    permissions: {\n        canManage: false,\n        canReceive: true,\n        canPublish: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sns(\"main\")\nmain_sns_credentials = scaleway.mnq.SnsCredentials(\"main\",\n    project_id=main.project_id,\n    name=\"sns-credentials\",\n    permissions={\n        \"can_manage\": False,\n        \"can_receive\": True,\n        \"can_publish\": False,\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.Mnq.Sns(\"main\");\n\n    var mainSnsCredentials = new Scaleway.Mnq.SnsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"sns-credentials\",\n        Permissions = new Scaleway.Mnq.Inputs.SnsCredentialsPermissionsArgs\n        {\n            CanManage = false,\n            CanReceive = true,\n            CanPublish = false,\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewSns(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSnsCredentials(ctx, \"main\", \u0026mnq.SnsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"sns-credentials\"),\n\t\t\tPermissions: \u0026mnq.SnsCredentialsPermissionsArgs{\n\t\t\t\tCanManage:  pulumi.Bool(false),\n\t\t\t\tCanReceive: pulumi.Bool(true),\n\t\t\t\tCanPublish: pulumi.Bool(false),\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.mnq.Sns;\nimport com.pulumi.scaleway.mnq.SnsCredentials;\nimport com.pulumi.scaleway.mnq.SnsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SnsCredentialsPermissionsArgs;\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 Sns(\"main\");\n\n        var mainSnsCredentials = new SnsCredentials(\"mainSnsCredentials\", SnsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .name(\"sns-credentials\")\n            .permissions(SnsCredentialsPermissionsArgs.builder()\n                .canManage(false)\n                .canReceive(true)\n                .canPublish(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sns\n  mainSnsCredentials:\n    type: scaleway:mnq:SnsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: sns-credentials\n      permissions:\n        canManage: false\n        canReceive: true\n        canPublish: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSNS credentials can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/mnqSnsCredentials:MnqSnsCredentials main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"accessKey":{"type":"string","description":"The ID of the key.\n","secret":true},"name":{"type":"string","description":"The unique name of the SNS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:index/MnqSnsCredentialsPermissions:MnqSnsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SNS is enabled.\n"},"secretKey":{"type":"string","description":"The secret value of the key.\n","secret":true}},"required":["accessKey","name","permissions","projectId","secretKey"],"inputProperties":{"name":{"type":"string","description":"The unique name of the SNS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:index/MnqSnsCredentialsPermissions:MnqSnsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SNS is enabled.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering MnqSnsCredentials resources.\n","properties":{"accessKey":{"type":"string","description":"The ID of the key.\n","secret":true},"name":{"type":"string","description":"The unique name of the SNS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:index/MnqSnsCredentialsPermissions:MnqSnsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SNS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret value of the key.\n","secret":true}},"type":"object"},"deprecationMessage":"scaleway.index/mnqsnscredentials.MnqSnsCredentials has been deprecated in favor of scaleway.mnq/snscredentials.SnsCredentials"},"scaleway:index/mnqSnsTopic:MnqSnsTopic":{"description":"Manage Scaleway Messaging and queuing SNS topics.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/how-to/create-manage-topics/).\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.mnq.Sns(\"main\", {});\nconst mainSnsCredentials = new scaleway.mnq.SnsCredentials(\"main\", {\n    projectId: main.projectId,\n    permissions: {\n        canManage: true,\n    },\n});\nconst topic = new scaleway.mnq.SnsTopic(\"topic\", {\n    projectId: main.projectId,\n    name: \"my-topic\",\n    accessKey: mainSnsCredentials.accessKey,\n    secretKey: mainSnsCredentials.secretKey,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sns(\"main\")\nmain_sns_credentials = scaleway.mnq.SnsCredentials(\"main\",\n    project_id=main.project_id,\n    permissions={\n        \"can_manage\": True,\n    })\ntopic = scaleway.mnq.SnsTopic(\"topic\",\n    project_id=main.project_id,\n    name=\"my-topic\",\n    access_key=main_sns_credentials.access_key,\n    secret_key=main_sns_credentials.secret_key)\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.Mnq.Sns(\"main\");\n\n    var mainSnsCredentials = new Scaleway.Mnq.SnsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Permissions = new Scaleway.Mnq.Inputs.SnsCredentialsPermissionsArgs\n        {\n            CanManage = true,\n        },\n    });\n\n    var topic = new Scaleway.Mnq.SnsTopic(\"topic\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"my-topic\",\n        AccessKey = mainSnsCredentials.AccessKey,\n        SecretKey = mainSnsCredentials.SecretKey,\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewSns(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSnsCredentials, err := mnq.NewSnsCredentials(ctx, \"main\", \u0026mnq.SnsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tPermissions: \u0026mnq.SnsCredentialsPermissionsArgs{\n\t\t\t\tCanManage: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSnsTopic(ctx, \"topic\", \u0026mnq.SnsTopicArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"my-topic\"),\n\t\t\tAccessKey: mainSnsCredentials.AccessKey,\n\t\t\tSecretKey: mainSnsCredentials.SecretKey,\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.mnq.Sns;\nimport com.pulumi.scaleway.mnq.SnsCredentials;\nimport com.pulumi.scaleway.mnq.SnsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SnsCredentialsPermissionsArgs;\nimport com.pulumi.scaleway.mnq.SnsTopic;\nimport com.pulumi.scaleway.mnq.SnsTopicArgs;\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 Sns(\"main\");\n\n        var mainSnsCredentials = new SnsCredentials(\"mainSnsCredentials\", SnsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .permissions(SnsCredentialsPermissionsArgs.builder()\n                .canManage(true)\n                .build())\n            .build());\n\n        var topic = new SnsTopic(\"topic\", SnsTopicArgs.builder()\n            .projectId(main.projectId())\n            .name(\"my-topic\")\n            .accessKey(mainSnsCredentials.accessKey())\n            .secretKey(mainSnsCredentials.secretKey())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sns\n  mainSnsCredentials:\n    type: scaleway:mnq:SnsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      permissions:\n        canManage: true\n  topic:\n    type: scaleway:mnq:SnsTopic\n    properties:\n      projectId: ${main.projectId}\n      name: my-topic\n      accessKey: ${mainSnsCredentials.accessKey}\n      secretKey: ${mainSnsCredentials.secretKey}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSNS topics can be imported using `{region}/{project-id}/{topic-name}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/mnqSnsTopic:MnqSnsTopic main fr-par/11111111111111111111111111111111/my-topic\n```\n\n","properties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true},"arn":{"type":"string","description":"The ARN of the topic\n"},"contentBasedDeduplication":{"type":"boolean","description":"Specifies whether to enable content-based deduplication.\n"},"fifoTopic":{"type":"boolean","description":"Whether the topic is a FIFO topic. If true, the topic name must end with .fifo.\n"},"name":{"type":"string","description":"The unique name of the SNS topic. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n"},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"owner":{"type":"string","description":"Owner of the SNS topic, should have format 'project-${project_id}'"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n"},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n"}},"required":["accessKey","arn","contentBasedDeduplication","fifoTopic","name","namePrefix","owner","projectId","secretKey"],"inputProperties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true},"contentBasedDeduplication":{"type":"boolean","description":"Specifies whether to enable content-based deduplication.\n"},"fifoTopic":{"type":"boolean","description":"Whether the topic is a FIFO topic. If true, the topic name must end with .fifo.\n"},"name":{"type":"string","description":"The unique name of the SNS topic. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n"}},"requiredInputs":["accessKey","secretKey"],"stateInputs":{"description":"Input properties used for looking up and filtering MnqSnsTopic resources.\n","properties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true},"arn":{"type":"string","description":"The ARN of the topic\n"},"contentBasedDeduplication":{"type":"boolean","description":"Specifies whether to enable content-based deduplication.\n"},"fifoTopic":{"type":"boolean","description":"Whether the topic is a FIFO topic. If true, the topic name must end with .fifo.\n"},"name":{"type":"string","description":"The unique name of the SNS topic. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"owner":{"type":"string","description":"Owner of the SNS topic, should have format 'project-${project_id}'"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/mnqsnstopic.MnqSnsTopic has been deprecated in favor of scaleway.mnq/snstopic.SnsTopic"},"scaleway:index/mnqSnsTopicSubscription:MnqSnsTopicSubscription":{"description":"Manages Scaleway Messaging and Queuing SNS topic subscriptions.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/sns-overview/).\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\n// For default project in default region\nconst main = new scaleway.mnq.Sns(\"main\", {});\nconst mainSnsCredentials = new scaleway.mnq.SnsCredentials(\"main\", {\n    projectId: main.projectId,\n    permissions: {\n        canManage: true,\n        canPublish: true,\n        canReceive: true,\n    },\n});\nconst topic = new scaleway.mnq.SnsTopic(\"topic\", {\n    projectId: main.projectId,\n    name: \"my-topic\",\n    accessKey: mainSnsCredentials.accessKey,\n    secretKey: mainSnsCredentials.secretKey,\n});\nconst mainSnsTopicSubscription = new scaleway.mnq.SnsTopicSubscription(\"main\", {\n    projectId: main.projectId,\n    accessKey: mainSnsCredentials.accessKey,\n    secretKey: mainSnsCredentials.secretKey,\n    topicId: topic.id,\n    protocol: \"http\",\n    endpoint: \"http://example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n# For default project in default region\nmain = scaleway.mnq.Sns(\"main\")\nmain_sns_credentials = scaleway.mnq.SnsCredentials(\"main\",\n    project_id=main.project_id,\n    permissions={\n        \"can_manage\": True,\n        \"can_publish\": True,\n        \"can_receive\": True,\n    })\ntopic = scaleway.mnq.SnsTopic(\"topic\",\n    project_id=main.project_id,\n    name=\"my-topic\",\n    access_key=main_sns_credentials.access_key,\n    secret_key=main_sns_credentials.secret_key)\nmain_sns_topic_subscription = scaleway.mnq.SnsTopicSubscription(\"main\",\n    project_id=main.project_id,\n    access_key=main_sns_credentials.access_key,\n    secret_key=main_sns_credentials.secret_key,\n    topic_id=topic.id,\n    protocol=\"http\",\n    endpoint=\"http://example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // For default project in default region\n    var main = new Scaleway.Mnq.Sns(\"main\");\n\n    var mainSnsCredentials = new Scaleway.Mnq.SnsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Permissions = new Scaleway.Mnq.Inputs.SnsCredentialsPermissionsArgs\n        {\n            CanManage = true,\n            CanPublish = true,\n            CanReceive = true,\n        },\n    });\n\n    var topic = new Scaleway.Mnq.SnsTopic(\"topic\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"my-topic\",\n        AccessKey = mainSnsCredentials.AccessKey,\n        SecretKey = mainSnsCredentials.SecretKey,\n    });\n\n    var mainSnsTopicSubscription = new Scaleway.Mnq.SnsTopicSubscription(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        AccessKey = mainSnsCredentials.AccessKey,\n        SecretKey = mainSnsCredentials.SecretKey,\n        TopicId = topic.Id,\n        Protocol = \"http\",\n        Endpoint = \"http://example.com\",\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// For default project in default region\n\t\tmain, err := mnq.NewSns(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSnsCredentials, err := mnq.NewSnsCredentials(ctx, \"main\", \u0026mnq.SnsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tPermissions: \u0026mnq.SnsCredentialsPermissionsArgs{\n\t\t\t\tCanManage:  pulumi.Bool(true),\n\t\t\t\tCanPublish: pulumi.Bool(true),\n\t\t\t\tCanReceive: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopic, err := mnq.NewSnsTopic(ctx, \"topic\", \u0026mnq.SnsTopicArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"my-topic\"),\n\t\t\tAccessKey: mainSnsCredentials.AccessKey,\n\t\t\tSecretKey: mainSnsCredentials.SecretKey,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSnsTopicSubscription(ctx, \"main\", \u0026mnq.SnsTopicSubscriptionArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tAccessKey: mainSnsCredentials.AccessKey,\n\t\t\tSecretKey: mainSnsCredentials.SecretKey,\n\t\t\tTopicId:   topic.ID(),\n\t\t\tProtocol:  pulumi.String(\"http\"),\n\t\t\tEndpoint:  pulumi.String(\"http://example.com\"),\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.mnq.Sns;\nimport com.pulumi.scaleway.mnq.SnsCredentials;\nimport com.pulumi.scaleway.mnq.SnsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SnsCredentialsPermissionsArgs;\nimport com.pulumi.scaleway.mnq.SnsTopic;\nimport com.pulumi.scaleway.mnq.SnsTopicArgs;\nimport com.pulumi.scaleway.mnq.SnsTopicSubscription;\nimport com.pulumi.scaleway.mnq.SnsTopicSubscriptionArgs;\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        // For default project in default region\n        var main = new Sns(\"main\");\n\n        var mainSnsCredentials = new SnsCredentials(\"mainSnsCredentials\", SnsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .permissions(SnsCredentialsPermissionsArgs.builder()\n                .canManage(true)\n                .canPublish(true)\n                .canReceive(true)\n                .build())\n            .build());\n\n        var topic = new SnsTopic(\"topic\", SnsTopicArgs.builder()\n            .projectId(main.projectId())\n            .name(\"my-topic\")\n            .accessKey(mainSnsCredentials.accessKey())\n            .secretKey(mainSnsCredentials.secretKey())\n            .build());\n\n        var mainSnsTopicSubscription = new SnsTopicSubscription(\"mainSnsTopicSubscription\", SnsTopicSubscriptionArgs.builder()\n            .projectId(main.projectId())\n            .accessKey(mainSnsCredentials.accessKey())\n            .secretKey(mainSnsCredentials.secretKey())\n            .topicId(topic.id())\n            .protocol(\"http\")\n            .endpoint(\"http://example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # For default project in default region\n  main:\n    type: scaleway:mnq:Sns\n  mainSnsCredentials:\n    type: scaleway:mnq:SnsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      permissions:\n        canManage: true\n        canPublish: true\n        canReceive: true\n  topic:\n    type: scaleway:mnq:SnsTopic\n    properties:\n      projectId: ${main.projectId}\n      name: my-topic\n      accessKey: ${mainSnsCredentials.accessKey}\n      secretKey: ${mainSnsCredentials.secretKey}\n  mainSnsTopicSubscription:\n    type: scaleway:mnq:SnsTopicSubscription\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      accessKey: ${mainSnsCredentials.accessKey}\n      secretKey: ${mainSnsCredentials.secretKey}\n      topicId: ${topic.id}\n      protocol: http\n      endpoint: http://example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSNS topic subscriptions can be imported using `{region}/{project-id}/{topic-name}/{subscription-id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/mnqSnsTopicSubscription:MnqSnsTopicSubscription main fr-par/11111111111111111111111111111111/my-topic/11111111111111111111111111111111\n```\n\n","properties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true},"arn":{"type":"string","description":"The ARN of the topic subscription\n"},"endpoint":{"type":"string","description":"Endpoint of the subscription"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n"},"protocol":{"type":"string","description":"Protocol of the SNS topic subscription.\n"},"redrivePolicy":{"type":"boolean","description":"Activate JSON redrive policy.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n"},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n"},"topicArn":{"type":"string","description":"The ARN of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required.\n"},"topicId":{"type":"string","description":"The ID of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e.\n"}},"required":["accessKey","arn","projectId","protocol","redrivePolicy","secretKey"],"inputProperties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true,"willReplaceOnChanges":true},"endpoint":{"type":"string","description":"Endpoint of the subscription","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"Protocol of the SNS topic subscription.\n","willReplaceOnChanges":true},"redrivePolicy":{"type":"boolean","description":"Activate JSON redrive policy.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true,"willReplaceOnChanges":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n","willReplaceOnChanges":true},"topicArn":{"type":"string","description":"The ARN of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"topicId":{"type":"string","description":"The ID of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["accessKey","protocol","secretKey"],"stateInputs":{"description":"Input properties used for looking up and filtering MnqSnsTopicSubscription resources.\n","properties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true,"willReplaceOnChanges":true},"arn":{"type":"string","description":"The ARN of the topic subscription\n"},"endpoint":{"type":"string","description":"Endpoint of the subscription","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"Protocol of the SNS topic subscription.\n","willReplaceOnChanges":true},"redrivePolicy":{"type":"boolean","description":"Activate JSON redrive policy.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true,"willReplaceOnChanges":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n","willReplaceOnChanges":true},"topicArn":{"type":"string","description":"The ARN of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"topicId":{"type":"string","description":"The ID of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/mnqsnstopicsubscription.MnqSnsTopicSubscription has been deprecated in favor of scaleway.mnq/snstopicsubscription.SnsTopicSubscription"},"scaleway:index/mnqSqs:MnqSqs":{"description":"Activate Scaleway Messaging and Queuing SQS in a Project.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/sqs-overview/).\n\n## Example Usage\n\n### Basic\n\nActivate SQS in the default Project\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.mnq.Sqs(\"main\", {});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sqs(\"main\")\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.Mnq.Sqs(\"main\");\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mnq.NewSqs(ctx, \"main\", 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.mnq.Sqs;\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 Sqs(\"main\");\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sqs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nActivate SQS for 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 project = scaleway.account.getProject({\n    name: \"default\",\n});\nconst forProject = new scaleway.mnq.Sqs(\"for_project\", {projectId: project.then(project =\u003e project.id)});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.get_project(name=\"default\")\nfor_project = scaleway.mnq.Sqs(\"for_project\", project_id=project.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 project = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    var forProject = new Scaleway.Mnq.Sqs(\"for_project\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSqs(ctx, \"for_project\", \u0026mnq.SqsArgs{\n\t\t\tProjectId: pulumi.String(project.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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.mnq.Sqs;\nimport com.pulumi.scaleway.mnq.SqsArgs;\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 project = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        var forProject = new Sqs(\"forProject\", SqsArgs.builder()\n            .projectId(project.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  forProject:\n    type: scaleway:mnq:Sqs\n    name: for_project\n    properties:\n      projectId: ${project.id}\nvariables:\n  project:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSQS status can be imported using the `{region}/{project_id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/mnqSqs:MnqSqs main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the SQS service for this Project.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS will be enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SQS will be enabled.\n"}},"required":["endpoint","projectId"],"inputProperties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS will be enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SQS will be enabled.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering MnqSqs resources.\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the SQS service for this Project.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS will be enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SQS will be enabled.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/mnqsqs.MnqSqs has been deprecated in favor of scaleway.mnq/sqs.Sqs"},"scaleway:index/mnqSqsCredentials:MnqSqsCredentials":{"description":"Creates and manages Scaleway Messaging and Queuing SQS credentials.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/sqs-overview/)\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.mnq.Sqs(\"main\", {});\nconst mainSqsCredentials = new scaleway.mnq.SqsCredentials(\"main\", {\n    projectId: main.projectId,\n    name: \"sqs-credentials\",\n    permissions: {\n        canManage: false,\n        canReceive: true,\n        canPublish: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sqs(\"main\")\nmain_sqs_credentials = scaleway.mnq.SqsCredentials(\"main\",\n    project_id=main.project_id,\n    name=\"sqs-credentials\",\n    permissions={\n        \"can_manage\": False,\n        \"can_receive\": True,\n        \"can_publish\": False,\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.Mnq.Sqs(\"main\");\n\n    var mainSqsCredentials = new Scaleway.Mnq.SqsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"sqs-credentials\",\n        Permissions = new Scaleway.Mnq.Inputs.SqsCredentialsPermissionsArgs\n        {\n            CanManage = false,\n            CanReceive = true,\n            CanPublish = false,\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewSqs(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSqsCredentials(ctx, \"main\", \u0026mnq.SqsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"sqs-credentials\"),\n\t\t\tPermissions: \u0026mnq.SqsCredentialsPermissionsArgs{\n\t\t\t\tCanManage:  pulumi.Bool(false),\n\t\t\t\tCanReceive: pulumi.Bool(true),\n\t\t\t\tCanPublish: pulumi.Bool(false),\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.mnq.Sqs;\nimport com.pulumi.scaleway.mnq.SqsCredentials;\nimport com.pulumi.scaleway.mnq.SqsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SqsCredentialsPermissionsArgs;\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 Sqs(\"main\");\n\n        var mainSqsCredentials = new SqsCredentials(\"mainSqsCredentials\", SqsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .name(\"sqs-credentials\")\n            .permissions(SqsCredentialsPermissionsArgs.builder()\n                .canManage(false)\n                .canReceive(true)\n                .canPublish(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sqs\n  mainSqsCredentials:\n    type: scaleway:mnq:SqsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: sqs-credentials\n      permissions:\n        canManage: false\n        canReceive: true\n        canPublish: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSQS credentials can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/mnqSqsCredentials:MnqSqsCredentials main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"accessKey":{"type":"string","description":"The ID of the key.\n","secret":true},"name":{"type":"string","description":"The unique name of the SQS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:index/MnqSqsCredentialsPermissions:MnqSqsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS is enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SQS is enabled.\n"},"secretKey":{"type":"string","description":"The secret value of the key.\n","secret":true}},"required":["accessKey","name","permissions","projectId","secretKey"],"inputProperties":{"name":{"type":"string","description":"The unique name of the SQS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:index/MnqSqsCredentialsPermissions:MnqSqsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SQS is enabled.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering MnqSqsCredentials resources.\n","properties":{"accessKey":{"type":"string","description":"The ID of the key.\n","secret":true},"name":{"type":"string","description":"The unique name of the SQS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:index/MnqSqsCredentialsPermissions:MnqSqsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SQS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret value of the key.\n","secret":true}},"type":"object"},"deprecationMessage":"scaleway.index/mnqsqscredentials.MnqSqsCredentials has been deprecated in favor of scaleway.mnq/sqscredentials.SqsCredentials"},"scaleway:index/mnqSqsQueue:MnqSqsQueue":{"description":"Creates and manages Scaleway Messaging and Queuing SQS queues.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/how-to/create-manage-queues/).\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.mnq.Sqs(\"main\", {});\nconst mainSqsCredentials = new scaleway.mnq.SqsCredentials(\"main\", {\n    projectId: main.projectId,\n    name: \"sqs-credentials\",\n    permissions: {\n        canManage: true,\n        canReceive: false,\n        canPublish: false,\n    },\n});\nconst mainSqsQueue = new scaleway.mnq.SqsQueue(\"main\", {\n    projectId: main.projectId,\n    name: \"my-queue\",\n    sqsEndpoint: main.endpoint,\n    accessKey: mainSqsCredentials.accessKey,\n    secretKey: mainSqsCredentials.secretKey,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sqs(\"main\")\nmain_sqs_credentials = scaleway.mnq.SqsCredentials(\"main\",\n    project_id=main.project_id,\n    name=\"sqs-credentials\",\n    permissions={\n        \"can_manage\": True,\n        \"can_receive\": False,\n        \"can_publish\": False,\n    })\nmain_sqs_queue = scaleway.mnq.SqsQueue(\"main\",\n    project_id=main.project_id,\n    name=\"my-queue\",\n    sqs_endpoint=main.endpoint,\n    access_key=main_sqs_credentials.access_key,\n    secret_key=main_sqs_credentials.secret_key)\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.Mnq.Sqs(\"main\");\n\n    var mainSqsCredentials = new Scaleway.Mnq.SqsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"sqs-credentials\",\n        Permissions = new Scaleway.Mnq.Inputs.SqsCredentialsPermissionsArgs\n        {\n            CanManage = true,\n            CanReceive = false,\n            CanPublish = false,\n        },\n    });\n\n    var mainSqsQueue = new Scaleway.Mnq.SqsQueue(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"my-queue\",\n        SqsEndpoint = main.Endpoint,\n        AccessKey = mainSqsCredentials.AccessKey,\n        SecretKey = mainSqsCredentials.SecretKey,\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewSqs(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSqsCredentials, err := mnq.NewSqsCredentials(ctx, \"main\", \u0026mnq.SqsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"sqs-credentials\"),\n\t\t\tPermissions: \u0026mnq.SqsCredentialsPermissionsArgs{\n\t\t\t\tCanManage:  pulumi.Bool(true),\n\t\t\t\tCanReceive: pulumi.Bool(false),\n\t\t\t\tCanPublish: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSqsQueue(ctx, \"main\", \u0026mnq.SqsQueueArgs{\n\t\t\tProjectId:   main.ProjectId,\n\t\t\tName:        pulumi.String(\"my-queue\"),\n\t\t\tSqsEndpoint: main.Endpoint,\n\t\t\tAccessKey:   mainSqsCredentials.AccessKey,\n\t\t\tSecretKey:   mainSqsCredentials.SecretKey,\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.mnq.Sqs;\nimport com.pulumi.scaleway.mnq.SqsCredentials;\nimport com.pulumi.scaleway.mnq.SqsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SqsCredentialsPermissionsArgs;\nimport com.pulumi.scaleway.mnq.SqsQueue;\nimport com.pulumi.scaleway.mnq.SqsQueueArgs;\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 Sqs(\"main\");\n\n        var mainSqsCredentials = new SqsCredentials(\"mainSqsCredentials\", SqsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .name(\"sqs-credentials\")\n            .permissions(SqsCredentialsPermissionsArgs.builder()\n                .canManage(true)\n                .canReceive(false)\n                .canPublish(false)\n                .build())\n            .build());\n\n        var mainSqsQueue = new SqsQueue(\"mainSqsQueue\", SqsQueueArgs.builder()\n            .projectId(main.projectId())\n            .name(\"my-queue\")\n            .sqsEndpoint(main.endpoint())\n            .accessKey(mainSqsCredentials.accessKey())\n            .secretKey(mainSqsCredentials.secretKey())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sqs\n  mainSqsCredentials:\n    type: scaleway:mnq:SqsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: sqs-credentials\n      permissions:\n        canManage: true\n        canReceive: false\n        canPublish: false\n  mainSqsQueue:\n    type: scaleway:mnq:SqsQueue\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: my-queue\n      sqsEndpoint: ${main.endpoint}\n      accessKey: ${mainSqsCredentials.accessKey}\n      secretKey: ${mainSqsCredentials.secretKey}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With Dead Letter Queue\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.mnq.Sqs(\"main\", {});\nconst mainSqsCredentials = new scaleway.mnq.SqsCredentials(\"main\", {\n    projectId: main.projectId,\n    name: \"sqs-credentials\",\n    permissions: {\n        canManage: true,\n        canReceive: false,\n        canPublish: false,\n    },\n});\nconst deadLetter = new scaleway.mnq.SqsQueue(\"dead_letter\", {\n    projectId: main.projectId,\n    name: \"dead-letter-queue\",\n    sqsEndpoint: main.endpoint,\n    accessKey: mainSqsCredentials.accessKey,\n    secretKey: mainSqsCredentials.secretKey,\n});\nconst mainSqsQueue = new scaleway.mnq.SqsQueue(\"main\", {\n    projectId: main.projectId,\n    name: \"my-queue\",\n    sqsEndpoint: main.endpoint,\n    accessKey: mainSqsCredentials.accessKey,\n    secretKey: mainSqsCredentials.secretKey,\n    deadLetterQueue: {\n        id: deadLetter.id,\n        maxReceiveCount: 3,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sqs(\"main\")\nmain_sqs_credentials = scaleway.mnq.SqsCredentials(\"main\",\n    project_id=main.project_id,\n    name=\"sqs-credentials\",\n    permissions={\n        \"can_manage\": True,\n        \"can_receive\": False,\n        \"can_publish\": False,\n    })\ndead_letter = scaleway.mnq.SqsQueue(\"dead_letter\",\n    project_id=main.project_id,\n    name=\"dead-letter-queue\",\n    sqs_endpoint=main.endpoint,\n    access_key=main_sqs_credentials.access_key,\n    secret_key=main_sqs_credentials.secret_key)\nmain_sqs_queue = scaleway.mnq.SqsQueue(\"main\",\n    project_id=main.project_id,\n    name=\"my-queue\",\n    sqs_endpoint=main.endpoint,\n    access_key=main_sqs_credentials.access_key,\n    secret_key=main_sqs_credentials.secret_key,\n    dead_letter_queue={\n        \"id\": dead_letter.id,\n        \"max_receive_count\": 3,\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.Mnq.Sqs(\"main\");\n\n    var mainSqsCredentials = new Scaleway.Mnq.SqsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"sqs-credentials\",\n        Permissions = new Scaleway.Mnq.Inputs.SqsCredentialsPermissionsArgs\n        {\n            CanManage = true,\n            CanReceive = false,\n            CanPublish = false,\n        },\n    });\n\n    var deadLetter = new Scaleway.Mnq.SqsQueue(\"dead_letter\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"dead-letter-queue\",\n        SqsEndpoint = main.Endpoint,\n        AccessKey = mainSqsCredentials.AccessKey,\n        SecretKey = mainSqsCredentials.SecretKey,\n    });\n\n    var mainSqsQueue = new Scaleway.Mnq.SqsQueue(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"my-queue\",\n        SqsEndpoint = main.Endpoint,\n        AccessKey = mainSqsCredentials.AccessKey,\n        SecretKey = mainSqsCredentials.SecretKey,\n        DeadLetterQueue = new Scaleway.Mnq.Inputs.SqsQueueDeadLetterQueueArgs\n        {\n            Id = deadLetter.Id,\n            MaxReceiveCount = 3,\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewSqs(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSqsCredentials, err := mnq.NewSqsCredentials(ctx, \"main\", \u0026mnq.SqsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"sqs-credentials\"),\n\t\t\tPermissions: \u0026mnq.SqsCredentialsPermissionsArgs{\n\t\t\t\tCanManage:  pulumi.Bool(true),\n\t\t\t\tCanReceive: pulumi.Bool(false),\n\t\t\t\tCanPublish: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdeadLetter, err := mnq.NewSqsQueue(ctx, \"dead_letter\", \u0026mnq.SqsQueueArgs{\n\t\t\tProjectId:   main.ProjectId,\n\t\t\tName:        pulumi.String(\"dead-letter-queue\"),\n\t\t\tSqsEndpoint: main.Endpoint,\n\t\t\tAccessKey:   mainSqsCredentials.AccessKey,\n\t\t\tSecretKey:   mainSqsCredentials.SecretKey,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSqsQueue(ctx, \"main\", \u0026mnq.SqsQueueArgs{\n\t\t\tProjectId:   main.ProjectId,\n\t\t\tName:        pulumi.String(\"my-queue\"),\n\t\t\tSqsEndpoint: main.Endpoint,\n\t\t\tAccessKey:   mainSqsCredentials.AccessKey,\n\t\t\tSecretKey:   mainSqsCredentials.SecretKey,\n\t\t\tDeadLetterQueue: \u0026mnq.SqsQueueDeadLetterQueueArgs{\n\t\t\t\tId:              deadLetter.ID(),\n\t\t\t\tMaxReceiveCount: pulumi.Int(3),\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.mnq.Sqs;\nimport com.pulumi.scaleway.mnq.SqsCredentials;\nimport com.pulumi.scaleway.mnq.SqsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SqsCredentialsPermissionsArgs;\nimport com.pulumi.scaleway.mnq.SqsQueue;\nimport com.pulumi.scaleway.mnq.SqsQueueArgs;\nimport com.pulumi.scaleway.mnq.inputs.SqsQueueDeadLetterQueueArgs;\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 Sqs(\"main\");\n\n        var mainSqsCredentials = new SqsCredentials(\"mainSqsCredentials\", SqsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .name(\"sqs-credentials\")\n            .permissions(SqsCredentialsPermissionsArgs.builder()\n                .canManage(true)\n                .canReceive(false)\n                .canPublish(false)\n                .build())\n            .build());\n\n        var deadLetter = new SqsQueue(\"deadLetter\", SqsQueueArgs.builder()\n            .projectId(main.projectId())\n            .name(\"dead-letter-queue\")\n            .sqsEndpoint(main.endpoint())\n            .accessKey(mainSqsCredentials.accessKey())\n            .secretKey(mainSqsCredentials.secretKey())\n            .build());\n\n        var mainSqsQueue = new SqsQueue(\"mainSqsQueue\", SqsQueueArgs.builder()\n            .projectId(main.projectId())\n            .name(\"my-queue\")\n            .sqsEndpoint(main.endpoint())\n            .accessKey(mainSqsCredentials.accessKey())\n            .secretKey(mainSqsCredentials.secretKey())\n            .deadLetterQueue(SqsQueueDeadLetterQueueArgs.builder()\n                .id(deadLetter.id())\n                .maxReceiveCount(3)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sqs\n  mainSqsCredentials:\n    type: scaleway:mnq:SqsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: sqs-credentials\n      permissions:\n        canManage: true\n        canReceive: false\n        canPublish: false\n  deadLetter:\n    type: scaleway:mnq:SqsQueue\n    name: dead_letter\n    properties:\n      projectId: ${main.projectId}\n      name: dead-letter-queue\n      sqsEndpoint: ${main.endpoint}\n      accessKey: ${mainSqsCredentials.accessKey}\n      secretKey: ${mainSqsCredentials.secretKey}\n  mainSqsQueue:\n    type: scaleway:mnq:SqsQueue\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: my-queue\n      sqsEndpoint: ${main.endpoint}\n      accessKey: ${mainSqsCredentials.accessKey}\n      secretKey: ${mainSqsCredentials.secretKey}\n      deadLetterQueue:\n        id: ${deadLetter.id}\n        maxReceiveCount: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Dead Letter Queue\n\nThe \u003cspan pulumi-lang-nodejs=\"`deadLetterQueue`\" pulumi-lang-dotnet=\"`DeadLetterQueue`\" pulumi-lang-go=\"`deadLetterQueue`\" pulumi-lang-python=\"`dead_letter_queue`\" pulumi-lang-yaml=\"`deadLetterQueue`\" pulumi-lang-java=\"`deadLetterQueue`\"\u003e`dead_letter_queue`\u003c/span\u003e block supports the following:\n\n- \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e - (Required) The ID of the dead letter queue. Can be either in the format `{region}/{project-id}/{queue-name}` or `arn:scw:sqs:{region}:project-{project-id}:{queue-name}`.\n\n- \u003cspan pulumi-lang-nodejs=\"`maxReceiveCount`\" pulumi-lang-dotnet=\"`MaxReceiveCount`\" pulumi-lang-go=\"`maxReceiveCount`\" pulumi-lang-python=\"`max_receive_count`\" pulumi-lang-yaml=\"`maxReceiveCount`\" pulumi-lang-java=\"`maxReceiveCount`\"\u003e`max_receive_count`\u003c/span\u003e - (Required) The number of times a message is delivered to the source queue before being moved to the dead letter queue. Must be between 1 and 1000.\n","properties":{"accessKey":{"type":"string","description":"The access key of the SQS queue.\n","secret":true},"arn":{"type":"string","description":"The ARN of the queue"},"contentBasedDeduplication":{"type":"boolean","description":"Specifies whether to enable content-based deduplication. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deadLetterQueue":{"$ref":"#/types/scaleway:index/MnqSqsQueueDeadLetterQueue:MnqSqsQueueDeadLetterQueue","description":"Configuration for the dead letter queue. See Dead Letter Queue below for details.\n"},"fifoQueue":{"type":"boolean","description":"Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\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 \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n"},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) 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":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). 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","arn","contentBasedDeduplication","fifoQueue","name","namePrefix","projectId","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 \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deadLetterQueue":{"$ref":"#/types/scaleway:index/MnqSqsQueueDeadLetterQueue:MnqSqsQueueDeadLetterQueue","description":"Configuration for the dead letter queue. See Dead Letter Queue below for details.\n"},"fifoQueue":{"type":"boolean","description":"Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\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 \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) 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":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). 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},"arn":{"type":"string","description":"The ARN of the queue"},"contentBasedDeduplication":{"type":"boolean","description":"Specifies whether to enable content-based deduplication. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deadLetterQueue":{"$ref":"#/types/scaleway:index/MnqSqsQueueDeadLetterQueue:MnqSqsQueueDeadLetterQueue","description":"Configuration for the dead letter queue. See Dead Letter Queue below for details.\n"},"fifoQueue":{"type":"boolean","description":"Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\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 \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) 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":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). 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"},"deprecationMessage":"scaleway.index/mnqsqsqueue.MnqSqsQueue has been deprecated in favor of scaleway.mnq/sqsqueue.SqsQueue"},"scaleway:index/mongoDbInstance:MongoDbInstance":{"description":"Creates and manages Scaleway MongoDB® instance.\nFor more information refer to the [product documentation](https://www.scaleway.com/en/docs/managed-mongodb-databases/).\n\n\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\n//## Basic MongoDB instance creation\nconst main = new scaleway.mongodb.Instance(\"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\n### Basic MongoDB instance creation\nmain = scaleway.mongodb.Instance(\"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    //## Basic MongoDB instance creation\n    var main = new Scaleway.Mongodb.Instance(\"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/mongodb\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Basic MongoDB instance creation\n\t\t_, err := mongodb.NewInstance(ctx, \"main\", \u0026mongodb.InstanceArgs{\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.mongodb.Instance;\nimport com.pulumi.scaleway.mongodb.InstanceArgs;\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        //## Basic MongoDB instance creation\n        var main = new Instance(\"main\", InstanceArgs.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  ### Basic MongoDB instance creation\n  main:\n    type: scaleway:mongodb:Instance\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## 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/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"},"isSnapshotScheduleEnabled":{"type":"boolean","description":"Whether automatic snapshot scheduling is enabled.\n"},"name":{"type":"string","description":"Name of the MongoDB® instance.\n"},"nodeNumber":{"type":"integer","description":"Number of nodes in the instance"},"nodeType":{"type":"string","description":"The type of MongoDB® instance to create.\n"},"password":{"type":"string","description":"Password of the user.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/MongoDbInstancePrivateIp:MongoDbInstancePrivateIp"},"description":"The private IPv4 address associated with the instance.\n"},"privateNetwork":{"$ref":"#/types/scaleway:index/MongoDbInstancePrivateNetwork:MongoDbInstancePrivateNetwork","description":"Private Network endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the MongoDB® instance is associated with.\n"},"publicNetwork":{"$ref":"#/types/scaleway:index/MongoDbInstancePublicNetwork:MongoDbInstancePublicNetwork","description":"Public network endpoint configuration (no arguments).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® instance should be created.\n"},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings to define for the instance."},"snapshotId":{"type":"string","description":"Snapshot ID to restore the MongoDB® instance from.\n"},"snapshotScheduleFrequencyHours":{"type":"integer","description":"Snapshot schedule frequency in hours.\n"},"snapshotScheduleRetentionDays":{"type":"integer","description":"Snapshot schedule retention in days.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags attached to the MongoDB® instance.\n"},"tlsCertificate":{"type":"string","description":"The PEM-encoded TLS certificate for the MongoDB® instance, if available.\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 instance 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","isSnapshotScheduleEnabled","name","nodeNumber","nodeType","privateIps","projectId","publicNetwork","snapshotScheduleFrequencyHours","snapshotScheduleRetentionDays","tlsCertificate","updatedAt","version","volumeSizeInGb"],"inputProperties":{"isSnapshotScheduleEnabled":{"type":"boolean","description":"Whether automatic snapshot scheduling is enabled.\n"},"name":{"type":"string","description":"Name of the MongoDB® instance.\n"},"nodeNumber":{"type":"integer","description":"Number of nodes in the instance"},"nodeType":{"type":"string","description":"The type of MongoDB® instance to create.\n"},"password":{"type":"string","description":"Password of the user.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/MongoDbInstancePrivateIp:MongoDbInstancePrivateIp"},"description":"The private IPv4 address associated with the instance.\n"},"privateNetwork":{"$ref":"#/types/scaleway:index/MongoDbInstancePrivateNetwork:MongoDbInstancePrivateNetwork","description":"Private Network endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the MongoDB® instance is associated with.\n","willReplaceOnChanges":true},"publicNetwork":{"$ref":"#/types/scaleway:index/MongoDbInstancePublicNetwork:MongoDbInstancePublicNetwork","description":"Public network endpoint configuration (no arguments).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® instance should be created.\n","willReplaceOnChanges":true},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings to define for the instance."},"snapshotId":{"type":"string","description":"Snapshot ID to restore the MongoDB® instance from.\n","willReplaceOnChanges":true},"snapshotScheduleFrequencyHours":{"type":"integer","description":"Snapshot schedule frequency in hours.\n"},"snapshotScheduleRetentionDays":{"type":"integer","description":"Snapshot schedule retention in days.\n"},"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 instance 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"},"isSnapshotScheduleEnabled":{"type":"boolean","description":"Whether automatic snapshot scheduling is enabled.\n"},"name":{"type":"string","description":"Name of the MongoDB® instance.\n"},"nodeNumber":{"type":"integer","description":"Number of nodes in the instance"},"nodeType":{"type":"string","description":"The type of MongoDB® instance to create.\n"},"password":{"type":"string","description":"Password of the user.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/MongoDbInstancePrivateIp:MongoDbInstancePrivateIp"},"description":"The private IPv4 address associated with the instance.\n"},"privateNetwork":{"$ref":"#/types/scaleway:index/MongoDbInstancePrivateNetwork:MongoDbInstancePrivateNetwork","description":"Private Network endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the MongoDB® instance is associated with.\n","willReplaceOnChanges":true},"publicNetwork":{"$ref":"#/types/scaleway:index/MongoDbInstancePublicNetwork:MongoDbInstancePublicNetwork","description":"Public network endpoint configuration (no arguments).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® instance should be created.\n","willReplaceOnChanges":true},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings to define for the instance."},"snapshotId":{"type":"string","description":"Snapshot ID to restore the MongoDB® instance from.\n","willReplaceOnChanges":true},"snapshotScheduleFrequencyHours":{"type":"integer","description":"Snapshot schedule frequency in hours.\n"},"snapshotScheduleRetentionDays":{"type":"integer","description":"Snapshot schedule retention in days.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags attached to the MongoDB® instance.\n"},"tlsCertificate":{"type":"string","description":"The PEM-encoded TLS certificate for the MongoDB® instance, if available.\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 instance 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"},"deprecationMessage":"scaleway.index/mongodbinstance.MongoDbInstance has been deprecated in favor of scaleway.mongodb/instance.Instance"},"scaleway:index/mongoDbSnapshot:MongoDbSnapshot":{"description":"Creates and manages Scaleway MongoDB® snapshots.\nFor more information refer to the [product documentation](https://www.scaleway.com/en/docs/managed-mongodb-databases/).\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.mongodb.Snapshot(\"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.mongodb.Snapshot(\"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.Mongodb.Snapshot(\"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/mongodb\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodb.NewSnapshot(ctx, \"main\", \u0026mongodb.SnapshotArgs{\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.mongodb.Snapshot;\nimport com.pulumi.scaleway.mongodb.SnapshotArgs;\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 Snapshot(\"main\", SnapshotArgs.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:mongodb:Snapshot\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/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, \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed.\n"},"instanceId":{"type":"string","description":"The ID of the MongoDB® instance from which the snapshot was created.\n"},"instanceName":{"type":"string","description":"The name of the MongoDB® instance from which the snapshot was created.\n"},"name":{"type":"string","description":"The name of the MongoDB® snapshot.\n"},"nodeType":{"type":"string","description":"The type of node associated with the MongoDB® snapshot.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® snapshot should be created.\n"},"size":{"type":"integer","description":"The size of the MongoDB® snapshot in bytes.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the MongoDB® snapshot.\n"},"volumeType":{"type":"string","description":"The type of volume used for the MongoDB® snapshot.\n"}},"required":["createdAt","expiresAt","instanceId","instanceName","name","nodeType","size","updatedAt","volumeType"],"inputProperties":{"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, \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed.\n"},"instanceId":{"type":"string","description":"The ID of the MongoDB® instance from which the snapshot was created.\n"},"name":{"type":"string","description":"The name of the MongoDB® snapshot.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® snapshot should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["expiresAt","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering MongoDbSnapshot resources.\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, \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed.\n"},"instanceId":{"type":"string","description":"The ID of the MongoDB® instance from which the snapshot was created.\n"},"instanceName":{"type":"string","description":"The name of the MongoDB® instance from which the snapshot was created.\n"},"name":{"type":"string","description":"The name of the MongoDB® snapshot.\n"},"nodeType":{"type":"string","description":"The type of node associated with the MongoDB® snapshot.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® snapshot should be created.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The size of the MongoDB® snapshot in bytes.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the MongoDB® snapshot.\n"},"volumeType":{"type":"string","description":"The type of volume used for the MongoDB® snapshot.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/mongodbsnapshot.MongoDbSnapshot has been deprecated in favor of scaleway.mongodb/snapshot.Snapshot"},"scaleway:index/objectBucket:ObjectBucket":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.Bucket`\" pulumi-lang-dotnet=\"`scaleway.object.Bucket`\" pulumi-lang-go=\"`object.Bucket`\" pulumi-lang-python=\"`object.Bucket`\" pulumi-lang-yaml=\"`scaleway.object.Bucket`\" pulumi-lang-java=\"`scaleway.object.Bucket`\"\u003e`scaleway.object.Bucket`\u003c/span\u003e resource allows you to create and manage buckets for [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/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.object.Bucket(\"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.object.Bucket(\"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.Object.Bucket(\"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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"some_bucket\", \u0026object.BucketArgs{\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\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 Bucket(\"someBucket\", BucketArgs.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:object:Bucket\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.object.Bucket(\"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.object.Bucket(\"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.Object.Bucket(\"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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"some_bucket\", \u0026object.BucketArgs{\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\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 Bucket(\"someBucket\", BucketArgs.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:object:Bucket\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.object.Bucket(\"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.object.Bucket(\"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.Object.Bucket(\"main\", new()\n    {\n        Name = \"mybuckectid\",\n        Region = \"fr-par\",\n        LifecycleRules = new[]\n        {\n            new Scaleway.Object.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"id1\",\n                Prefix = \"path1/\",\n                Enabled = true,\n                Expiration = new Scaleway.Object.Inputs.BucketLifecycleRuleExpirationArgs\n                {\n                    Days = 365,\n                },\n                Transitions = new[]\n                {\n                    new Scaleway.Object.Inputs.BucketLifecycleRuleTransitionArgs\n                    {\n                        Days = 120,\n                        StorageClass = \"GLACIER\",\n                    },\n                },\n            },\n            new Scaleway.Object.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"id2\",\n                Prefix = \"path2/\",\n                Enabled = true,\n                Expiration = new Scaleway.Object.Inputs.BucketLifecycleRuleExpirationArgs\n                {\n                    Days = 50,\n                },\n            },\n            new Scaleway.Object.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"id3\",\n                Prefix = \"path3/\",\n                Enabled = false,\n                Tags = \n                {\n                    { \"tagKey\", \"tagValue\" },\n                    { \"terraform\", \"hashicorp\" },\n                },\n                Expiration = new Scaleway.Object.Inputs.BucketLifecycleRuleExpirationArgs\n                {\n                    Days = 1,\n                },\n            },\n            new Scaleway.Object.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"id4\",\n                Enabled = true,\n                Tags = \n                {\n                    { \"tag1\", \"value1\" },\n                },\n                Transitions = new[]\n                {\n                    new Scaleway.Object.Inputs.BucketLifecycleRuleTransitionArgs\n                    {\n                        Days = 1,\n                        StorageClass = \"GLACIER\",\n                    },\n                },\n            },\n            new Scaleway.Object.Inputs.BucketLifecycleRuleArgs\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\n\t\t\tName:   pulumi.String(\"mybuckectid\"),\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t\tLifecycleRules: object.BucketLifecycleRuleArray{\n\t\t\t\t\u0026object.BucketLifecycleRuleArgs{\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: \u0026object.BucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(365),\n\t\t\t\t\t},\n\t\t\t\t\tTransitions: object.BucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026object.BucketLifecycleRuleTransitionArgs{\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\u0026object.BucketLifecycleRuleArgs{\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: \u0026object.BucketLifecycleRuleExpirationArgs{\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\u0026object.BucketLifecycleRuleArgs{\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: \u0026object.BucketLifecycleRuleExpirationArgs{\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\u0026object.BucketLifecycleRuleArgs{\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: object.BucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026object.BucketLifecycleRuleTransitionArgs{\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\u0026object.BucketLifecycleRuleArgs{\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.inputs.BucketLifecycleRuleArgs;\nimport com.pulumi.scaleway.object.inputs.BucketLifecycleRuleExpirationArgs;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"mybuckectid\")\n            .region(\"fr-par\")\n            .lifecycleRules(            \n                BucketLifecycleRuleArgs.builder()\n                    .id(\"id1\")\n                    .prefix(\"path1/\")\n                    .enabled(true)\n                    .expiration(BucketLifecycleRuleExpirationArgs.builder()\n                        .days(365)\n                        .build())\n                    .transitions(BucketLifecycleRuleTransitionArgs.builder()\n                        .days(120)\n                        .storageClass(\"GLACIER\")\n                        .build())\n                    .build(),\n                BucketLifecycleRuleArgs.builder()\n                    .id(\"id2\")\n                    .prefix(\"path2/\")\n                    .enabled(true)\n                    .expiration(BucketLifecycleRuleExpirationArgs.builder()\n                        .days(50)\n                        .build())\n                    .build(),\n                BucketLifecycleRuleArgs.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(BucketLifecycleRuleExpirationArgs.builder()\n                        .days(1)\n                        .build())\n                    .build(),\n                BucketLifecycleRuleArgs.builder()\n                    .id(\"id4\")\n                    .enabled(true)\n                    .tags(Map.of(\"tag1\", \"value1\"))\n                    .transitions(BucketLifecycleRuleTransitionArgs.builder()\n                        .days(1)\n                        .storageClass(\"GLACIER\")\n                        .build())\n                    .build(),\n                BucketLifecycleRuleArgs.builder()\n                    .enabled(true)\n                    .abortIncompleteMultipartUploadDays(30)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\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","description":"(Deprecated) The canned ACL you want to apply to the bucket.\n\n\u003e **Note:** The \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e attribute is deprecated. See\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003eresource 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.\n","deprecationMessage":"ACL attribute is deprecated. Please use the resource\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003einstead."},"apiEndpoint":{"type":"string","description":"API URL of the bucket"},"corsRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/ObjectBucketCorsRule:ObjectBucketCorsRule"},"description":"List of CORS rules"},"endpoint":{"type":"string","description":"The endpoint URL of the bucket.\n"},"forceDestroy":{"type":"boolean","description":"Boolean that, when set to true, allows the deletion of all objects (including locked objects) when the bucket is destroyed. This operation is irreversible, and the objects cannot be recovered. The default is false.\n"},"lifecycleRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/ObjectBucketLifecycleRule:ObjectBucketLifecycleRule"},"description":"Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects"},"name":{"type":"string","description":"The name of the bucket.\n"},"objectLockEnabled":{"type":"boolean","description":"Enable object lock"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the bucket is associated with.\n"},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#region-definition) in which the bucket will be created.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A list of tags (key/value) for the bucket.\n\n* \u003e **Important:** The Scaleway console does not support `key/value` tags yet, so only the tags' values will be displayed.\nIf you make any change to your bucket's tags using the console, it will overwrite them with the format `value/value`.\n"},"versioning":{"$ref":"#/types/scaleway:index/ObjectBucketVersioning:ObjectBucketVersioning","description":"Allow multiple versions of an object in the same bucket"}},"required":["apiEndpoint","corsRules","endpoint","name","projectId","versioning"],"inputProperties":{"acl":{"type":"string","description":"(Deprecated) The canned ACL you want to apply to the bucket.\n\n\u003e **Note:** The \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e attribute is deprecated. See\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003eresource 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.\n","deprecationMessage":"ACL attribute is deprecated. Please use the resource\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003einstead."},"corsRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/ObjectBucketCorsRule:ObjectBucketCorsRule"},"description":"List of CORS rules"},"forceDestroy":{"type":"boolean","description":"Boolean that, when set to true, allows the deletion of all objects (including locked objects) when the bucket is destroyed. This operation is irreversible, and the objects cannot be recovered. The default is false.\n"},"lifecycleRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/ObjectBucketLifecycleRule:ObjectBucketLifecycleRule"},"description":"Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects"},"name":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"objectLockEnabled":{"type":"boolean","description":"Enable object lock","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the bucket is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#region-definition) in which the bucket will be created.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A list of tags (key/value) for the bucket.\n\n* \u003e **Important:** The Scaleway console does not support `key/value` tags yet, so only the tags' values will be displayed.\nIf you make any change to your bucket's tags using the console, it will overwrite them with the format `value/value`.\n"},"versioning":{"$ref":"#/types/scaleway:index/ObjectBucketVersioning:ObjectBucketVersioning","description":"Allow multiple versions of an object in the same bucket"}},"stateInputs":{"description":"Input properties used for looking up and filtering ObjectBucket resources.\n","properties":{"acl":{"type":"string","description":"(Deprecated) The canned ACL you want to apply to the bucket.\n\n\u003e **Note:** The \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e attribute is deprecated. See\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003eresource 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.\n","deprecationMessage":"ACL attribute is deprecated. Please use the resource\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003einstead."},"apiEndpoint":{"type":"string","description":"API URL of the bucket"},"corsRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/ObjectBucketCorsRule:ObjectBucketCorsRule"},"description":"List of CORS rules"},"endpoint":{"type":"string","description":"The endpoint URL of the bucket.\n"},"forceDestroy":{"type":"boolean","description":"Boolean that, when set to true, allows the deletion of all objects (including locked objects) when the bucket is destroyed. This operation is irreversible, and the objects cannot be recovered. The default is false.\n"},"lifecycleRules":{"type":"array","items":{"$ref":"#/types/scaleway:index/ObjectBucketLifecycleRule:ObjectBucketLifecycleRule"},"description":"Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects"},"name":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"objectLockEnabled":{"type":"boolean","description":"Enable object lock","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the bucket is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#region-definition) in which the bucket will be created.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A list of tags (key/value) for the bucket.\n\n* \u003e **Important:** The Scaleway console does not support `key/value` tags yet, so only the tags' values will be displayed.\nIf you make any change to your bucket's tags using the console, it will overwrite them with the format `value/value`.\n"},"versioning":{"$ref":"#/types/scaleway:index/ObjectBucketVersioning:ObjectBucketVersioning","description":"Allow multiple versions of an object in the same bucket"}},"type":"object"},"deprecationMessage":"scaleway.index/objectbucket.ObjectBucket has been deprecated in favor of scaleway.object/bucket.Bucket"},"scaleway:index/objectBucketAcl:ObjectBucketAcl":{"description":"## 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.object.Bucket(\"some_bucket\", {name: \"unique-name\"});\nconst main = new scaleway.object.BucketAcl(\"main\", {\n    bucket: mainScalewayObjectBucket.id,\n    acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsome_bucket = scaleway.object.Bucket(\"some_bucket\", name=\"unique-name\")\nmain = scaleway.object.BucketAcl(\"main\",\n    bucket=main_scaleway_object_bucket[\"id\"],\n    acl=\"private\")\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.Object.Bucket(\"some_bucket\", new()\n    {\n        Name = \"unique-name\",\n    });\n\n    var main = new Scaleway.Object.BucketAcl(\"main\", new()\n    {\n        Bucket = mainScalewayObjectBucket.Id,\n        Acl = \"private\",\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"some_bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"unique-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketAcl(ctx, \"main\", \u0026object.BucketAclArgs{\n\t\t\tBucket: pulumi.Any(mainScalewayObjectBucket.Id),\n\t\t\tAcl:    pulumi.String(\"private\"),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketAcl;\nimport com.pulumi.scaleway.object.BucketAclArgs;\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 Bucket(\"someBucket\", BucketArgs.builder()\n            .name(\"unique-name\")\n            .build());\n\n        var main = new BucketAcl(\"main\", BucketAclArgs.builder()\n            .bucket(mainScalewayObjectBucket.id())\n            .acl(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  someBucket:\n    type: scaleway:object:Bucket\n    name: some_bucket\n    properties:\n      name: unique-name\n  main:\n    type: scaleway:object:BucketAcl\n    properties:\n      bucket: ${mainScalewayObjectBucket.id}\n      acl: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nFor more information, refer to the [PutBucketAcl API call documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/bucket-operations/#putbucketacl).\n\n\n### With Grants\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.object.Bucket(\"main\", {name: \"your-bucket\"});\nconst mainBucketAcl = new scaleway.object.BucketAcl(\"main\", {\n    bucket: main.id,\n    accessControlPolicy: {\n        grants: [\n            {\n                grantee: {\n                    id: \"\u003cproject-id\u003e:\u003cproject-id\u003e\",\n                    type: \"CanonicalUser\",\n                },\n                permission: \"FULL_CONTROL\",\n            },\n            {\n                grantee: {\n                    id: \"\u003cproject-id\u003e\",\n                    type: \"CanonicalUser\",\n                },\n                permission: \"WRITE\",\n            },\n        ],\n        owner: {\n            id: \"\u003cproject-id\u003e\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.object.Bucket(\"main\", name=\"your-bucket\")\nmain_bucket_acl = scaleway.object.BucketAcl(\"main\",\n    bucket=main.id,\n    access_control_policy={\n        \"grants\": [\n            {\n                \"grantee\": {\n                    \"id\": \"\u003cproject-id\u003e:\u003cproject-id\u003e\",\n                    \"type\": \"CanonicalUser\",\n                },\n                \"permission\": \"FULL_CONTROL\",\n            },\n            {\n                \"grantee\": {\n                    \"id\": \"\u003cproject-id\u003e\",\n                    \"type\": \"CanonicalUser\",\n                },\n                \"permission\": \"WRITE\",\n            },\n        ],\n        \"owner\": {\n            \"id\": \"\u003cproject-id\u003e\",\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.Object.Bucket(\"main\", new()\n    {\n        Name = \"your-bucket\",\n    });\n\n    var mainBucketAcl = new Scaleway.Object.BucketAcl(\"main\", new()\n    {\n        Bucket = main.Id,\n        AccessControlPolicy = new Scaleway.Object.Inputs.BucketAclAccessControlPolicyArgs\n        {\n            Grants = new[]\n            {\n                new Scaleway.Object.Inputs.BucketAclAccessControlPolicyGrantArgs\n                {\n                    Grantee = new Scaleway.Object.Inputs.BucketAclAccessControlPolicyGrantGranteeArgs\n                    {\n                        Id = \"\u003cproject-id\u003e:\u003cproject-id\u003e\",\n                        Type = \"CanonicalUser\",\n                    },\n                    Permission = \"FULL_CONTROL\",\n                },\n                new Scaleway.Object.Inputs.BucketAclAccessControlPolicyGrantArgs\n                {\n                    Grantee = new Scaleway.Object.Inputs.BucketAclAccessControlPolicyGrantGranteeArgs\n                    {\n                        Id = \"\u003cproject-id\u003e\",\n                        Type = \"CanonicalUser\",\n                    },\n                    Permission = \"WRITE\",\n                },\n            },\n            Owner = new Scaleway.Object.Inputs.BucketAclAccessControlPolicyOwnerArgs\n            {\n                Id = \"\u003cproject-id\u003e\",\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"your-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketAcl(ctx, \"main\", \u0026object.BucketAclArgs{\n\t\t\tBucket: main.ID(),\n\t\t\tAccessControlPolicy: \u0026object.BucketAclAccessControlPolicyArgs{\n\t\t\t\tGrants: object.BucketAclAccessControlPolicyGrantArray{\n\t\t\t\t\t\u0026object.BucketAclAccessControlPolicyGrantArgs{\n\t\t\t\t\t\tGrantee: \u0026object.BucketAclAccessControlPolicyGrantGranteeArgs{\n\t\t\t\t\t\t\tId:   pulumi.String(\"\u003cproject-id\u003e:\u003cproject-id\u003e\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"CanonicalUser\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPermission: pulumi.String(\"FULL_CONTROL\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026object.BucketAclAccessControlPolicyGrantArgs{\n\t\t\t\t\t\tGrantee: \u0026object.BucketAclAccessControlPolicyGrantGranteeArgs{\n\t\t\t\t\t\t\tId:   pulumi.String(\"\u003cproject-id\u003e\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"CanonicalUser\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPermission: pulumi.String(\"WRITE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tOwner: \u0026object.BucketAclAccessControlPolicyOwnerArgs{\n\t\t\t\t\tId: pulumi.String(\"\u003cproject-id\u003e\"),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketAcl;\nimport com.pulumi.scaleway.object.BucketAclArgs;\nimport com.pulumi.scaleway.object.inputs.BucketAclAccessControlPolicyArgs;\nimport com.pulumi.scaleway.object.inputs.BucketAclAccessControlPolicyOwnerArgs;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"your-bucket\")\n            .build());\n\n        var mainBucketAcl = new BucketAcl(\"mainBucketAcl\", BucketAclArgs.builder()\n            .bucket(main.id())\n            .accessControlPolicy(BucketAclAccessControlPolicyArgs.builder()\n                .grants(                \n                    BucketAclAccessControlPolicyGrantArgs.builder()\n                        .grantee(BucketAclAccessControlPolicyGrantGranteeArgs.builder()\n                            .id(\"\u003cproject-id\u003e:\u003cproject-id\u003e\")\n                            .type(\"CanonicalUser\")\n                            .build())\n                        .permission(\"FULL_CONTROL\")\n                        .build(),\n                    BucketAclAccessControlPolicyGrantArgs.builder()\n                        .grantee(BucketAclAccessControlPolicyGrantGranteeArgs.builder()\n                            .id(\"\u003cproject-id\u003e\")\n                            .type(\"CanonicalUser\")\n                            .build())\n                        .permission(\"WRITE\")\n                        .build())\n                .owner(BucketAclAccessControlPolicyOwnerArgs.builder()\n                    .id(\"\u003cproject-id\u003e\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\n    properties:\n      name: your-bucket\n  mainBucketAcl:\n    type: scaleway:object:BucketAcl\n    name: main\n    properties:\n      bucket: ${main.id}\n      accessControlPolicy:\n        grants:\n          - grantee:\n              id: \u003cproject-id\u003e:\u003cproject-id\u003e\n              type: CanonicalUser\n            permission: FULL_CONTROL\n          - grantee:\n              id: \u003cproject-id\u003e\n              type: CanonicalUser\n            permission: WRITE\n        owner:\n          id: \u003cproject-id\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## The ACL\n\nRefer 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.\n\n## The access control policy\n\nThe \u003cspan pulumi-lang-nodejs=\"`accessControlPolicy`\" pulumi-lang-dotnet=\"`AccessControlPolicy`\" pulumi-lang-go=\"`accessControlPolicy`\" pulumi-lang-python=\"`access_control_policy`\" pulumi-lang-yaml=\"`accessControlPolicy`\" pulumi-lang-java=\"`accessControlPolicy`\"\u003e`access_control_policy`\u003c/span\u003e configuration block supports the following arguments:\n\n* \u003cspan pulumi-lang-nodejs=\"`grant`\" pulumi-lang-dotnet=\"`Grant`\" pulumi-lang-go=\"`grant`\" pulumi-lang-python=\"`grant`\" pulumi-lang-yaml=\"`grant`\" pulumi-lang-java=\"`grant`\"\u003e`grant`\u003c/span\u003e - (Required) Set of grant configuration blocks documented below.\n* \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e - (Required) Configuration block of the bucket owner's display name and ID documented below.\n\n## The grant\n\nThe \u003cspan pulumi-lang-nodejs=\"`grant`\" pulumi-lang-dotnet=\"`Grant`\" pulumi-lang-go=\"`grant`\" pulumi-lang-python=\"`grant`\" pulumi-lang-yaml=\"`grant`\" pulumi-lang-java=\"`grant`\"\u003e`grant`\u003c/span\u003e configuration block supports the following arguments:\n\n* \u003cspan pulumi-lang-nodejs=\"`grantee`\" pulumi-lang-dotnet=\"`Grantee`\" pulumi-lang-go=\"`grantee`\" pulumi-lang-python=\"`grantee`\" pulumi-lang-yaml=\"`grantee`\" pulumi-lang-java=\"`grantee`\"\u003e`grantee`\u003c/span\u003e - (Required) Configuration block for the project being granted permissions documented below.\n* \u003cspan pulumi-lang-nodejs=\"`permission`\" pulumi-lang-dotnet=\"`Permission`\" pulumi-lang-go=\"`permission`\" pulumi-lang-python=\"`permission`\" pulumi-lang-yaml=\"`permission`\" pulumi-lang-java=\"`permission`\"\u003e`permission`\u003c/span\u003e - (Required) Logging permissions assigned to the grantee for the bucket.\n\n## The permission\n\nThe following list shows each access policy permissions supported.\n\n`READ`, `WRITE`, `READ_ACP`, `WRITE_ACP`, `FULL_CONTROL`\n\nFor more information about ACL permissions in the S3 bucket, see [ACL permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html).\n\n## The owner\n\nThe \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e configuration block supports the following arguments:\n\n* \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e - (Required) The ID of the project owner.\n* \u003cspan pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\"\u003e`display_name`\u003c/span\u003e - (Optional) The display name of the owner.\n\n## the grantee\n\nThe \u003cspan pulumi-lang-nodejs=\"`grantee`\" pulumi-lang-dotnet=\"`Grantee`\" pulumi-lang-go=\"`grantee`\" pulumi-lang-python=\"`grantee`\" pulumi-lang-yaml=\"`grantee`\" pulumi-lang-java=\"`grantee`\"\u003e`grantee`\u003c/span\u003e configuration block supports the following arguments:\n\n* \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e - (Optional) The canonical user ID of the grantee.\n* \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e - (Required) Type of grantee. Valid values: CanonicalUser, Group.\n* \u003cspan pulumi-lang-nodejs=\"`uri`\" pulumi-lang-dotnet=\"`Uri`\" pulumi-lang-go=\"`uri`\" pulumi-lang-python=\"`uri`\" pulumi-lang-yaml=\"`uri`\" pulumi-lang-java=\"`uri`\"\u003e`uri`\u003c/span\u003e - (Optional) The uri of the grantee if type is Group.\n\n## Import\n\nBucket ACLs can be imported using the `{region}/{bucketName}/{acl}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/objectBucketAcl:ObjectBucketAcl some_bucket fr-par/some-bucket/private\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/objectBucketAcl:ObjectBucketAcl some_bucket fr-par/some-bucket/private@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx\n```\n\n","properties":{"accessControlPolicy":{"$ref":"#/types/scaleway:index/ObjectBucketAclAccessControlPolicy:ObjectBucketAclAccessControlPolicy","description":"A configuration block that sets the ACL permissions for an object per grantee documented below.\n"},"acl":{"type":"string","description":"The canned ACL you want to apply to the bucket. Refer to the [AWS Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl_overview.html#canned-acl) documentation page to find a list of all the supported canned ACLs.\n"},"bucket":{"type":"string","description":"The bucket's name or regional ID."},"expectedBucketOwner":{"type":"string","description":"The project ID of the expected bucket owner.\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#regions-and-zones) in which the bucket should be created.\n"}},"required":["accessControlPolicy","bucket","projectId"],"inputProperties":{"accessControlPolicy":{"$ref":"#/types/scaleway:index/ObjectBucketAclAccessControlPolicy:ObjectBucketAclAccessControlPolicy","description":"A configuration block that sets the ACL permissions for an object per grantee documented below.\n"},"acl":{"type":"string","description":"The canned ACL you want to apply to the bucket. Refer to the [AWS Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl_overview.html#canned-acl) documentation page to find a list of all the supported canned ACLs.\n"},"bucket":{"type":"string","description":"The bucket's name or regional ID.","willReplaceOnChanges":true},"expectedBucketOwner":{"type":"string","description":"The project ID of the expected bucket owner.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#regions-and-zones) in which the bucket should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering ObjectBucketAcl resources.\n","properties":{"accessControlPolicy":{"$ref":"#/types/scaleway:index/ObjectBucketAclAccessControlPolicy:ObjectBucketAclAccessControlPolicy","description":"A configuration block that sets the ACL permissions for an object per grantee documented below.\n"},"acl":{"type":"string","description":"The canned ACL you want to apply to the bucket. Refer to the [AWS Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl_overview.html#canned-acl) documentation page to find a list of all the supported canned ACLs.\n"},"bucket":{"type":"string","description":"The bucket's name or regional ID.","willReplaceOnChanges":true},"expectedBucketOwner":{"type":"string","description":"The project ID of the expected bucket owner.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#regions-and-zones) in which the bucket should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/objectbucketacl.ObjectBucketAcl has been deprecated in favor of scaleway.object/bucketacl.BucketAcl"},"scaleway:index/objectBucketLockConfiguration:ObjectBucketLockConfiguration":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.BucketLockConfiguration`\" pulumi-lang-dotnet=\"`scaleway.object.BucketLockConfiguration`\" pulumi-lang-go=\"`object.BucketLockConfiguration`\" pulumi-lang-python=\"`object.BucketLockConfiguration`\" pulumi-lang-yaml=\"`scaleway.object.BucketLockConfiguration`\" pulumi-lang-java=\"`scaleway.object.BucketLockConfiguration`\"\u003e`scaleway.object.BucketLockConfiguration`\u003c/span\u003e resource allows you to create and manage an object lock configuration for [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/object-lock/) for more information on object lock.\n\n## Example Usage\n\n### Configure an Object Lock for a new bucket\n\n\u003e **Note:** \u003cspan pulumi-lang-nodejs=\"`objectLockEnabled`\" pulumi-lang-dotnet=\"`ObjectLockEnabled`\" pulumi-lang-go=\"`objectLockEnabled`\" pulumi-lang-python=\"`object_lock_enabled`\" pulumi-lang-yaml=\"`objectLockEnabled`\" pulumi-lang-java=\"`objectLockEnabled`\"\u003e`object_lock_enabled`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e before configuring the lock.\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.object.Bucket(\"main\", {\n    name: \"MyBucket\",\n    acl: \"public-read\",\n    objectLockEnabled: true,\n});\nconst mainBucketLockConfiguration = new scaleway.object.BucketLockConfiguration(\"main\", {\n    bucket: main.name,\n    rule: {\n        defaultRetention: {\n            mode: \"GOVERNANCE\",\n            days: 1,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.object.Bucket(\"main\",\n    name=\"MyBucket\",\n    acl=\"public-read\",\n    object_lock_enabled=True)\nmain_bucket_lock_configuration = scaleway.object.BucketLockConfiguration(\"main\",\n    bucket=main.name,\n    rule={\n        \"default_retention\": {\n            \"mode\": \"GOVERNANCE\",\n            \"days\": 1,\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.Object.Bucket(\"main\", new()\n    {\n        Name = \"MyBucket\",\n        Acl = \"public-read\",\n        ObjectLockEnabled = true,\n    });\n\n    var mainBucketLockConfiguration = new Scaleway.Object.BucketLockConfiguration(\"main\", new()\n    {\n        Bucket = main.Name,\n        Rule = new Scaleway.Object.Inputs.BucketLockConfigurationRuleArgs\n        {\n            DefaultRetention = new Scaleway.Object.Inputs.BucketLockConfigurationRuleDefaultRetentionArgs\n            {\n                Mode = \"GOVERNANCE\",\n                Days = 1,\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\n\t\t\tName:              pulumi.String(\"MyBucket\"),\n\t\t\tAcl:               pulumi.String(\"public-read\"),\n\t\t\tObjectLockEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketLockConfiguration(ctx, \"main\", \u0026object.BucketLockConfigurationArgs{\n\t\t\tBucket: main.Name,\n\t\t\tRule: \u0026object.BucketLockConfigurationRuleArgs{\n\t\t\t\tDefaultRetention: \u0026object.BucketLockConfigurationRuleDefaultRetentionArgs{\n\t\t\t\t\tMode: pulumi.String(\"GOVERNANCE\"),\n\t\t\t\t\tDays: pulumi.Int(1),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketLockConfiguration;\nimport com.pulumi.scaleway.object.BucketLockConfigurationArgs;\nimport com.pulumi.scaleway.object.inputs.BucketLockConfigurationRuleArgs;\nimport com.pulumi.scaleway.object.inputs.BucketLockConfigurationRuleDefaultRetentionArgs;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"MyBucket\")\n            .acl(\"public-read\")\n            .objectLockEnabled(true)\n            .build());\n\n        var mainBucketLockConfiguration = new BucketLockConfiguration(\"mainBucketLockConfiguration\", BucketLockConfigurationArgs.builder()\n            .bucket(main.name())\n            .rule(BucketLockConfigurationRuleArgs.builder()\n                .defaultRetention(BucketLockConfigurationRuleDefaultRetentionArgs.builder()\n                    .mode(\"GOVERNANCE\")\n                    .days(1)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\n    properties:\n      name: MyBucket\n      acl: public-read\n      objectLockEnabled: true\n  mainBucketLockConfiguration:\n    type: scaleway:object:BucketLockConfiguration\n    name: main\n    properties:\n      bucket: ${main.name}\n      rule:\n        defaultRetention:\n          mode: GOVERNANCE\n          days: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Configure an object Lock for an existing bucket\n\n[Contact Scaleway support](https://console.scaleway.com/support/tickets/create) to enable object lock on an existing bucket.\n\n## Import\n\nBucket lock configurations can be imported using the `{region}/{bucketName}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/objectBucketLockConfiguration:ObjectBucketLockConfiguration 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/objectBucketLockConfiguration:ObjectBucketLockConfiguration some_bucket fr-par/some-bucket@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx\n```\n\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"The region you want to attach the resource to"},"rule":{"$ref":"#/types/scaleway:index/ObjectBucketLockConfigurationRule:ObjectBucketLockConfigurationRule","description":"Specifies the object lock rule for the specified object.\n"}},"required":["bucket","projectId","rule"],"inputProperties":{"bucket":{"type":"string","description":"The bucket's name or regional ID.","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true},"rule":{"$ref":"#/types/scaleway:index/ObjectBucketLockConfigurationRule:ObjectBucketLockConfigurationRule","description":"Specifies the object lock rule for the specified object.\n"}},"requiredInputs":["bucket","rule"],"stateInputs":{"description":"Input properties used for looking up and filtering ObjectBucketLockConfiguration resources.\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID.","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true},"rule":{"$ref":"#/types/scaleway:index/ObjectBucketLockConfigurationRule:ObjectBucketLockConfigurationRule","description":"Specifies the object lock rule for the specified object.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/objectbucketlockconfiguration.ObjectBucketLockConfiguration has been deprecated in favor of scaleway.object/bucketlockconfiguration.BucketLockConfiguration"},"scaleway:index/objectBucketPolicy:ObjectBucketPolicy":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.BucketPolicy`\" pulumi-lang-dotnet=\"`scaleway.object.BucketPolicy`\" pulumi-lang-go=\"`object.BucketPolicy`\" pulumi-lang-python=\"`object.BucketPolicy`\" pulumi-lang-yaml=\"`scaleway.object.BucketPolicy`\" pulumi-lang-java=\"`scaleway.object.BucketPolicy`\"\u003e`scaleway.object.BucketPolicy`\u003c/span\u003e resource allows you to create and manage bucket policies for [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/bucket-policy/) for more information on Object Storage bucket policies.\n\n## Example Usage\n\n### Example Usage with an IAM user\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Project ID\nconst _default = scaleway.account.getProject({\n    name: \"default\",\n});\n// IAM configuration\nconst user = scaleway.iam.getUser({\n    email: \"user@scaleway.com\",\n});\nconst policy = new scaleway.iam.Policy(\"policy\", {\n    name: \"object-storage-policy\",\n    userId: user.then(user =\u003e user.id),\n    rules: [{\n        projectIds: [_default.then(_default =\u003e _default.id)],\n        permissionSetNames: [\"ObjectStorageFullAccess\"],\n    }],\n});\n// Object storage configuration\nconst bucket = new scaleway.object.Bucket(\"bucket\", {name: \"some-unique-name\"});\nconst policyBucketPolicy = new scaleway.object.BucketPolicy(\"policy\", {\n    bucket: bucket.name,\n    policy: pulumi.jsonStringify({\n        Version: \"2023-04-17\",\n        Id: \"MyBucketPolicy\",\n        Statement: [{\n            Effect: \"Allow\",\n            Action: [\"s3:*\"],\n            Principal: {\n                SCW: user.then(user =\u003e `user_id:${user.id}`),\n            },\n            Resource: [\n                bucket.name,\n                pulumi.interpolate`${bucket.name}/*`,\n            ],\n        }],\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Project ID\ndefault = scaleway.account.get_project(name=\"default\")\n# IAM configuration\nuser = scaleway.iam.get_user(email=\"user@scaleway.com\")\npolicy = scaleway.iam.Policy(\"policy\",\n    name=\"object-storage-policy\",\n    user_id=user.id,\n    rules=[{\n        \"project_ids\": [default.id],\n        \"permission_set_names\": [\"ObjectStorageFullAccess\"],\n    }])\n# Object storage configuration\nbucket = scaleway.object.Bucket(\"bucket\", name=\"some-unique-name\")\npolicy_bucket_policy = scaleway.object.BucketPolicy(\"policy\",\n    bucket=bucket.name,\n    policy=pulumi.Output.json_dumps({\n        \"Version\": \"2023-04-17\",\n        \"Id\": \"MyBucketPolicy\",\n        \"Statement\": [{\n            \"Effect\": \"Allow\",\n            \"Action\": [\"s3:*\"],\n            \"Principal\": {\n                \"SCW\": f\"user_id:{user.id}\",\n            },\n            \"Resource\": [\n                bucket.name,\n                bucket.name.apply(lambda name: f\"{name}/*\"),\n            ],\n        }],\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Project ID\n    var @default = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    // IAM configuration\n    var user = Scaleway.Iam.GetUser.Invoke(new()\n    {\n        Email = \"user@scaleway.com\",\n    });\n\n    var policy = new Scaleway.Iam.Policy(\"policy\", new()\n    {\n        Name = \"object-storage-policy\",\n        UserId = user.Apply(getUserResult =\u003e getUserResult.Id),\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                ProjectIds = new[]\n                {\n                    @default.Apply(@default =\u003e @default.Apply(getProjectResult =\u003e getProjectResult.Id)),\n                },\n                PermissionSetNames = new[]\n                {\n                    \"ObjectStorageFullAccess\",\n                },\n            },\n        },\n    });\n\n    // Object storage configuration\n    var bucket = new Scaleway.Object.Bucket(\"bucket\", new()\n    {\n        Name = \"some-unique-name\",\n    });\n\n    var policyBucketPolicy = new Scaleway.Object.BucketPolicy(\"policy\", new()\n    {\n        Bucket = bucket.Name,\n        Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"2023-04-17\",\n            [\"Id\"] = \"MyBucketPolicy\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Effect\"] = \"Allow\",\n                    [\"Action\"] = new[]\n                    {\n                        \"s3:*\",\n                    },\n                    [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"SCW\"] = $\"user_id:{user.Apply(getUserResult =\u003e getUserResult.Id)}\",\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        bucket.Name,\n                        bucket.Name.Apply(name =\u003e $\"{name}/*\"),\n                    },\n                },\n            },\n        })),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Project ID\n\t\t_default, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// IAM configuration\n\t\tuser, err := iam.LookupUser(ctx, \u0026iam.LookupUserArgs{\n\t\t\tEmail: pulumi.StringRef(\"user@scaleway.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"policy\", \u0026iam.PolicyArgs{\n\t\t\tName:   pulumi.String(\"object-storage-policy\"),\n\t\t\tUserId: pulumi.String(user.Id),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tProjectIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(_default.Id),\n\t\t\t\t\t},\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ObjectStorageFullAccess\"),\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\t// Object storage configuration\n\t\tbucket, err := object.NewBucket(ctx, \"bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketPolicy(ctx, \"policy\", \u0026object.BucketPolicyArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tPolicy: pulumi.All(bucket.Name, bucket.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tbucketName := _args[0].(string)\n\t\t\t\tbucketName1 := _args[1].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"Version\": \"2023-04-17\",\n\t\t\t\t\t\"Id\":      \"MyBucketPolicy\",\n\t\t\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\"s3:*\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"SCW\": fmt.Sprintf(\"user_id:%v\", user.Id),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\tbucketName,\n\t\t\t\t\t\t\t\tfmt.Sprintf(\"%v/*\", bucketName1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetUserArgs;\nimport com.pulumi.scaleway.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\nimport com.pulumi.scaleway.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketPolicy;\nimport com.pulumi.scaleway.object.BucketPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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        // Project ID\n        final var default = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        // IAM configuration\n        final var user = IamFunctions.getUser(GetUserArgs.builder()\n            .email(\"user@scaleway.com\")\n            .build());\n\n        var policy = new Policy(\"policy\", PolicyArgs.builder()\n            .name(\"object-storage-policy\")\n            .userId(user.id())\n            .rules(PolicyRuleArgs.builder()\n                .projectIds(default_.id())\n                .permissionSetNames(\"ObjectStorageFullAccess\")\n                .build())\n            .build());\n\n        // Object storage configuration\n        var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n            .name(\"some-unique-name\")\n            .build());\n\n        var policyBucketPolicy = new BucketPolicy(\"policyBucketPolicy\", BucketPolicyArgs.builder()\n            .bucket(bucket.name())\n            .policy(Output.tuple(bucket.name(), bucket.name()).applyValue(values -\u003e {\n                var bucketName = values.t1;\n                var bucketName1 = values.t2;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(\"Version\", \"2023-04-17\"),\n                        jsonProperty(\"Id\", \"MyBucketPolicy\"),\n                        jsonProperty(\"Statement\", jsonArray(jsonObject(\n                            jsonProperty(\"Effect\", \"Allow\"),\n                            jsonProperty(\"Action\", jsonArray(\"s3:*\")),\n                            jsonProperty(\"Principal\", jsonObject(\n                                jsonProperty(\"SCW\", String.format(\"user_id:%s\", user.id()))\n                            )),\n                            jsonProperty(\"Resource\", jsonArray(\n                                bucketName, \n                                String.format(\"%s/*\", bucketName1)\n                            ))\n                        )))\n                    ));\n            }))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy:\n    type: scaleway:iam:Policy\n    properties:\n      name: object-storage-policy\n      userId: ${user.id}\n      rules:\n        - projectIds:\n            - ${default.id}\n          permissionSetNames:\n            - ObjectStorageFullAccess\n  # Object storage configuration\n  bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: some-unique-name\n  policyBucketPolicy:\n    type: scaleway:object:BucketPolicy\n    name: policy\n    properties:\n      bucket: ${bucket.name}\n      policy:\n        fn::toJSON:\n          Version: 2023-04-17\n          Id: MyBucketPolicy\n          Statement:\n            - Effect: Allow\n              Action:\n                - s3:*\n              Principal:\n                SCW: user_id:${user.id}\n              Resource:\n                - ${bucket.name}\n                - ${bucket.name}/*\nvariables:\n  # Project ID\n  default:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n  # IAM configuration\n  user:\n    fn::invoke:\n      function: scaleway:iam:getUser\n      arguments:\n        email: user@scaleway.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with an IAM application\n\n### Creating a bucket and delegating read access to an application\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Project ID\nconst _default = scaleway.account.getProject({\n    name: \"default\",\n});\n// IAM configuration\nconst reading_app = new scaleway.iam.Application(\"reading-app\", {name: \"reading-app\"});\nconst policy = new scaleway.iam.Policy(\"policy\", {\n    name: \"object-storage-policy\",\n    applicationId: reading_app.id,\n    rules: [{\n        projectIds: [_default.then(_default =\u003e _default.id)],\n        permissionSetNames: [\"ObjectStorageBucketsRead\"],\n    }],\n});\n// Object storage configuration\nconst bucket = new scaleway.object.Bucket(\"bucket\", {name: \"some-unique-name\"});\nconst policyBucketPolicy = new scaleway.object.BucketPolicy(\"policy\", {\n    bucket: bucket.id,\n    policy: pulumi.jsonStringify({\n        Version: \"2023-04-17\",\n        Statement: [{\n            Sid: \"Delegate read access\",\n            Effect: \"Allow\",\n            Principal: {\n                SCW: pulumi.interpolate`application_id:${reading_app.id}`,\n            },\n            Action: [\n                \"s3:ListBucket\",\n                \"s3:GetObject\",\n            ],\n            Resource: [\n                bucket.name,\n                pulumi.interpolate`${bucket.name}/*`,\n            ],\n        }],\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Project ID\ndefault = scaleway.account.get_project(name=\"default\")\n# IAM configuration\nreading_app = scaleway.iam.Application(\"reading-app\", name=\"reading-app\")\npolicy = scaleway.iam.Policy(\"policy\",\n    name=\"object-storage-policy\",\n    application_id=reading_app.id,\n    rules=[{\n        \"project_ids\": [default.id],\n        \"permission_set_names\": [\"ObjectStorageBucketsRead\"],\n    }])\n# Object storage configuration\nbucket = scaleway.object.Bucket(\"bucket\", name=\"some-unique-name\")\npolicy_bucket_policy = scaleway.object.BucketPolicy(\"policy\",\n    bucket=bucket.id,\n    policy=pulumi.Output.json_dumps({\n        \"Version\": \"2023-04-17\",\n        \"Statement\": [{\n            \"Sid\": \"Delegate read access\",\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"SCW\": reading_app.id.apply(lambda id: f\"application_id:{id}\"),\n            },\n            \"Action\": [\n                \"s3:ListBucket\",\n                \"s3:GetObject\",\n            ],\n            \"Resource\": [\n                bucket.name,\n                bucket.name.apply(lambda name: f\"{name}/*\"),\n            ],\n        }],\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Project ID\n    var @default = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    // IAM configuration\n    var reading_app = new Scaleway.Iam.Application(\"reading-app\", new()\n    {\n        Name = \"reading-app\",\n    });\n\n    var policy = new Scaleway.Iam.Policy(\"policy\", new()\n    {\n        Name = \"object-storage-policy\",\n        ApplicationId = reading_app.Id,\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                ProjectIds = new[]\n                {\n                    @default.Apply(@default =\u003e @default.Apply(getProjectResult =\u003e getProjectResult.Id)),\n                },\n                PermissionSetNames = new[]\n                {\n                    \"ObjectStorageBucketsRead\",\n                },\n            },\n        },\n    });\n\n    // Object storage configuration\n    var bucket = new Scaleway.Object.Bucket(\"bucket\", new()\n    {\n        Name = \"some-unique-name\",\n    });\n\n    var policyBucketPolicy = new Scaleway.Object.BucketPolicy(\"policy\", new()\n    {\n        Bucket = bucket.Id,\n        Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"2023-04-17\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Sid\"] = \"Delegate read access\",\n                    [\"Effect\"] = \"Allow\",\n                    [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"SCW\"] = reading_app.Id.Apply(id =\u003e $\"application_id:{id}\"),\n                    },\n                    [\"Action\"] = new[]\n                    {\n                        \"s3:ListBucket\",\n                        \"s3:GetObject\",\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        bucket.Name,\n                        bucket.Name.Apply(name =\u003e $\"{name}/*\"),\n                    },\n                },\n            },\n        })),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Project ID\n\t\t_default, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// IAM configuration\n\t\treading_app, err := iam.NewApplication(ctx, \"reading-app\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"reading-app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"policy\", \u0026iam.PolicyArgs{\n\t\t\tName:          pulumi.String(\"object-storage-policy\"),\n\t\t\tApplicationId: reading_app.ID(),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tProjectIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(_default.Id),\n\t\t\t\t\t},\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ObjectStorageBucketsRead\"),\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\t// Object storage configuration\n\t\tbucket, err := object.NewBucket(ctx, \"bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketPolicy(ctx, \"policy\", \u0026object.BucketPolicyArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tPolicy: pulumi.All(reading_app.ID(), bucket.Name, bucket.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tid := _args[0].(string)\n\t\t\t\tbucketName := _args[1].(string)\n\t\t\t\tbucketName1 := _args[2].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"Version\": \"2023-04-17\",\n\t\t\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"Sid\":    \"Delegate read access\",\n\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"SCW\": fmt.Sprintf(\"application_id:%v\", id),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\"s3:ListBucket\",\n\t\t\t\t\t\t\t\t\"s3:GetObject\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\tbucketName,\n\t\t\t\t\t\t\t\tfmt.Sprintf(\"%v/*\", bucketName1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\nimport com.pulumi.scaleway.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketPolicy;\nimport com.pulumi.scaleway.object.BucketPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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        // Project ID\n        final var default = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        // IAM configuration\n        var reading_app = new Application(\"reading-app\", ApplicationArgs.builder()\n            .name(\"reading-app\")\n            .build());\n\n        var policy = new Policy(\"policy\", PolicyArgs.builder()\n            .name(\"object-storage-policy\")\n            .applicationId(reading_app.id())\n            .rules(PolicyRuleArgs.builder()\n                .projectIds(default_.id())\n                .permissionSetNames(\"ObjectStorageBucketsRead\")\n                .build())\n            .build());\n\n        // Object storage configuration\n        var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n            .name(\"some-unique-name\")\n            .build());\n\n        var policyBucketPolicy = new BucketPolicy(\"policyBucketPolicy\", BucketPolicyArgs.builder()\n            .bucket(bucket.id())\n            .policy(Output.tuple(reading_app.id(), bucket.name(), bucket.name()).applyValue(values -\u003e {\n                var id = values.t1;\n                var bucketName = values.t2;\n                var bucketName1 = values.t3;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(\"Version\", \"2023-04-17\"),\n                        jsonProperty(\"Statement\", jsonArray(jsonObject(\n                            jsonProperty(\"Sid\", \"Delegate read access\"),\n                            jsonProperty(\"Effect\", \"Allow\"),\n                            jsonProperty(\"Principal\", jsonObject(\n                                jsonProperty(\"SCW\", String.format(\"application_id:%s\", id))\n                            )),\n                            jsonProperty(\"Action\", jsonArray(\n                                \"s3:ListBucket\", \n                                \"s3:GetObject\"\n                            )),\n                            jsonProperty(\"Resource\", jsonArray(\n                                bucketName, \n                                String.format(\"%s/*\", bucketName1)\n                            ))\n                        )))\n                    ));\n            }))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # IAM configuration\n  reading-app:\n    type: scaleway:iam:Application\n    properties:\n      name: reading-app\n  policy:\n    type: scaleway:iam:Policy\n    properties:\n      name: object-storage-policy\n      applicationId: ${[\"reading-app\"].id}\n      rules:\n        - projectIds:\n            - ${default.id}\n          permissionSetNames:\n            - ObjectStorageBucketsRead\n  # Object storage configuration\n  bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: some-unique-name\n  policyBucketPolicy:\n    type: scaleway:object:BucketPolicy\n    name: policy\n    properties:\n      bucket: ${bucket.id}\n      policy:\n        fn::toJSON:\n          Version: 2023-04-17\n          Statement:\n            - Sid: Delegate read access\n              Effect: Allow\n              Principal:\n                SCW: application_id:${[\"reading-app\"].id}\n              Action:\n                - s3:ListBucket\n                - s3:GetObject\n              Resource:\n                - ${bucket.name}\n                - ${bucket.name}/*\nvariables:\n  # Project ID\n  default:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Reading the bucket with the application\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst reading_app = scaleway.iam.getApplication({\n    name: \"reading-app\",\n});\nconst reading_api_key = new scaleway.iam.ApiKey(\"reading-api-key\", {applicationId: reading_app.then(reading_app =\u003e reading_app.id)});\nconst bucket = scaleway.object.getBucket({\n    name: \"some-unique-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nreading_app = scaleway.iam.get_application(name=\"reading-app\")\nreading_api_key = scaleway.iam.ApiKey(\"reading-api-key\", application_id=reading_app.id)\nbucket = scaleway.object.get_bucket(name=\"some-unique-name\")\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 reading_app = Scaleway.Iam.GetApplication.Invoke(new()\n    {\n        Name = \"reading-app\",\n    });\n\n    var reading_api_key = new Scaleway.Iam.ApiKey(\"reading-api-key\", new()\n    {\n        ApplicationId = reading_app.Apply(reading_app =\u003e reading_app.Apply(getApplicationResult =\u003e getApplicationResult.Id)),\n    });\n\n    var bucket = Scaleway.Object.GetBucket.Invoke(new()\n    {\n        Name = \"some-unique-name\",\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/iam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treading_app, err := iam.LookupApplication(ctx, \u0026iam.LookupApplicationArgs{\n\t\t\tName: pulumi.StringRef(\"reading-app\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewApiKey(ctx, \"reading-api-key\", \u0026iam.ApiKeyArgs{\n\t\t\tApplicationId: pulumi.String(reading_app.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.LookupBucket(ctx, \u0026object.LookupBucketArgs{\n\t\t\tName: pulumi.StringRef(\"some-unique-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetApplicationArgs;\nimport com.pulumi.scaleway.iam.ApiKey;\nimport com.pulumi.scaleway.iam.ApiKeyArgs;\nimport com.pulumi.scaleway.object.ObjectFunctions;\nimport com.pulumi.scaleway.object.inputs.GetBucketArgs;\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 reading-app = IamFunctions.getApplication(GetApplicationArgs.builder()\n            .name(\"reading-app\")\n            .build());\n\n        var reading_api_key = new ApiKey(\"reading-api-key\", ApiKeyArgs.builder()\n            .applicationId(reading_app.id())\n            .build());\n\n        final var bucket = ObjectFunctions.getBucket(GetBucketArgs.builder()\n            .name(\"some-unique-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  reading-api-key:\n    type: scaleway:iam:ApiKey\n    properties:\n      applicationId: ${[\"reading-app\"].id}\nvariables:\n  reading-app:\n    fn::invoke:\n      function: scaleway:iam:getApplication\n      arguments:\n        name: reading-app\n  bucket:\n    fn::invoke:\n      function: scaleway:object:getBucket\n      arguments:\n        name: some-unique-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with deprecated version 2012-10-17\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Project ID\nconst _default = scaleway.account.getProject({\n    name: \"default\",\n});\n// Object storage configuration\nconst bucket = new scaleway.object.Bucket(\"bucket\", {\n    name: \"mia-cross-crash-tests\",\n    region: \"fr-par\",\n});\nconst policy = new scaleway.object.BucketPolicy(\"policy\", {\n    bucket: bucket.name,\n    policy: pulumi.jsonStringify({\n        Version: \"2012-10-17\",\n        Statement: [{\n            Effect: \"Allow\",\n            Action: [\n                \"s3:ListBucket\",\n                \"s3:GetObjectTagging\",\n            ],\n            Principal: {\n                SCW: _default.then(_default =\u003e `project_id:${_default.id}`),\n            },\n            Resource: [\n                bucket.name,\n                pulumi.interpolate`${bucket.name}/*`,\n            ],\n        }],\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Project ID\ndefault = scaleway.account.get_project(name=\"default\")\n# Object storage configuration\nbucket = scaleway.object.Bucket(\"bucket\",\n    name=\"mia-cross-crash-tests\",\n    region=\"fr-par\")\npolicy = scaleway.object.BucketPolicy(\"policy\",\n    bucket=bucket.name,\n    policy=pulumi.Output.json_dumps({\n        \"Version\": \"2012-10-17\",\n        \"Statement\": [{\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"s3:ListBucket\",\n                \"s3:GetObjectTagging\",\n            ],\n            \"Principal\": {\n                \"SCW\": f\"project_id:{default.id}\",\n            },\n            \"Resource\": [\n                bucket.name,\n                bucket.name.apply(lambda name: f\"{name}/*\"),\n            ],\n        }],\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Project ID\n    var @default = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    // Object storage configuration\n    var bucket = new Scaleway.Object.Bucket(\"bucket\", new()\n    {\n        Name = \"mia-cross-crash-tests\",\n        Region = \"fr-par\",\n    });\n\n    var policy = new Scaleway.Object.BucketPolicy(\"policy\", new()\n    {\n        Bucket = bucket.Name,\n        Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"2012-10-17\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Effect\"] = \"Allow\",\n                    [\"Action\"] = new[]\n                    {\n                        \"s3:ListBucket\",\n                        \"s3:GetObjectTagging\",\n                    },\n                    [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"SCW\"] = @default.Apply(@default =\u003e $\"project_id:{@default.Apply(getProjectResult =\u003e getProjectResult.Id)}\"),\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        bucket.Name,\n                        bucket.Name.Apply(name =\u003e $\"{name}/*\"),\n                    },\n                },\n            },\n        })),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Project ID\n\t\t_default, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Object storage configuration\n\t\tbucket, err := object.NewBucket(ctx, \"bucket\", \u0026object.BucketArgs{\n\t\t\tName:   pulumi.String(\"mia-cross-crash-tests\"),\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketPolicy(ctx, \"policy\", \u0026object.BucketPolicyArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tPolicy: pulumi.All(bucket.Name, bucket.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tbucketName := _args[0].(string)\n\t\t\t\tbucketName1 := _args[1].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\"s3:ListBucket\",\n\t\t\t\t\t\t\t\t\"s3:GetObjectTagging\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"SCW\": fmt.Sprintf(\"project_id:%v\", _default.Id),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\tbucketName,\n\t\t\t\t\t\t\t\tfmt.Sprintf(\"%v/*\", bucketName1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketPolicy;\nimport com.pulumi.scaleway.object.BucketPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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        // Project ID\n        final var default = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        // Object storage configuration\n        var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n            .name(\"mia-cross-crash-tests\")\n            .region(\"fr-par\")\n            .build());\n\n        var policy = new BucketPolicy(\"policy\", BucketPolicyArgs.builder()\n            .bucket(bucket.name())\n            .policy(Output.tuple(bucket.name(), bucket.name()).applyValue(values -\u003e {\n                var bucketName = values.t1;\n                var bucketName1 = values.t2;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(\"Version\", \"2012-10-17\"),\n                        jsonProperty(\"Statement\", jsonArray(jsonObject(\n                            jsonProperty(\"Effect\", \"Allow\"),\n                            jsonProperty(\"Action\", jsonArray(\n                                \"s3:ListBucket\", \n                                \"s3:GetObjectTagging\"\n                            )),\n                            jsonProperty(\"Principal\", jsonObject(\n                                jsonProperty(\"SCW\", String.format(\"project_id:%s\", default_.id()))\n                            )),\n                            jsonProperty(\"Resource\", jsonArray(\n                                bucketName, \n                                String.format(\"%s/*\", bucketName1)\n                            ))\n                        )))\n                    ));\n            }))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Object storage configuration\n  bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: mia-cross-crash-tests\n      region: fr-par\n  policy:\n    type: scaleway:object:BucketPolicy\n    properties:\n      bucket: ${bucket.name}\n      policy:\n        fn::toJSON:\n          Version: 2012-10-17\n          Statement:\n            - Effect: Allow\n              Action:\n                - s3:ListBucket\n                - s3:GetObjectTagging\n              Principal:\n                SCW: project_id:${default.id}\n              Resource:\n                - ${bucket.name}\n                - ${bucket.name}/*\nvariables:\n  # Project ID\n  default:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**NB:** To configure the AWS provider with Scaleway credentials, refer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/object-storage-aws-cli/).\n\n## Import\n\nBucket policies can be imported using the `{region}/{bucketName}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/objectBucketPolicy:ObjectBucketPolicy 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/objectBucketPolicy:ObjectBucketPolicy some_bucket fr-par/some-bucket@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx\n```\n\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"policy":{"type":"string","description":"The text of the policy."},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"The Scaleway region this bucket resides in.\n"}},"required":["bucket","policy","projectId"],"inputProperties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"policy":{"type":"string","description":"The text of the policy."},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The Scaleway region this bucket resides in.\n","willReplaceOnChanges":true}},"requiredInputs":["bucket","policy"],"stateInputs":{"description":"Input properties used for looking up and filtering ObjectBucketPolicy resources.\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"policy":{"type":"string","description":"The text of the policy."},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The Scaleway region this bucket resides in.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/objectbucketpolicy.ObjectBucketPolicy has been deprecated in favor of scaleway.object/bucketpolicy.BucketPolicy"},"scaleway:index/objectBucketWebsiteConfiguration:ObjectBucketWebsiteConfiguration":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.BucketWebsiteConfiguration`\" pulumi-lang-dotnet=\"`scaleway.object.BucketWebsiteConfiguration`\" pulumi-lang-go=\"`object.BucketWebsiteConfiguration`\" pulumi-lang-python=\"`object.BucketWebsiteConfiguration`\" pulumi-lang-yaml=\"`scaleway.object.BucketWebsiteConfiguration`\" pulumi-lang-java=\"`scaleway.object.BucketWebsiteConfiguration`\"\u003e`scaleway.object.BucketWebsiteConfiguration`\u003c/span\u003e resource allows you to deploy and manage a bucket website with [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/how-to/use-bucket-website/) for more information on bucket websites.\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 test = new scaleway.object.Bucket(\"test\", {\n    name: \"my-bucket\",\n    acl: \"public-read\",\n});\nconst someFile = new scaleway.object.Item(\"some_file\", {\n    bucket: test.name,\n    key: \"index.html\",\n    file: \"index.html\",\n    visibility: \"public-read\",\n    contentType: \"text/html\",\n});\nconst testBucketWebsiteConfiguration = new scaleway.object.BucketWebsiteConfiguration(\"test\", {\n    bucket: test.name,\n    indexDocument: {\n        suffix: \"index.html\",\n    },\n    errorDocument: {\n        key: \"error.html\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ntest = scaleway.object.Bucket(\"test\",\n    name=\"my-bucket\",\n    acl=\"public-read\")\nsome_file = scaleway.object.Item(\"some_file\",\n    bucket=test.name,\n    key=\"index.html\",\n    file=\"index.html\",\n    visibility=\"public-read\",\n    content_type=\"text/html\")\ntest_bucket_website_configuration = scaleway.object.BucketWebsiteConfiguration(\"test\",\n    bucket=test.name,\n    index_document={\n        \"suffix\": \"index.html\",\n    },\n    error_document={\n        \"key\": \"error.html\",\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 test = new Scaleway.Object.Bucket(\"test\", new()\n    {\n        Name = \"my-bucket\",\n        Acl = \"public-read\",\n    });\n\n    var someFile = new Scaleway.Object.Item(\"some_file\", new()\n    {\n        Bucket = test.Name,\n        Key = \"index.html\",\n        File = \"index.html\",\n        Visibility = \"public-read\",\n        ContentType = \"text/html\",\n    });\n\n    var testBucketWebsiteConfiguration = new Scaleway.Object.BucketWebsiteConfiguration(\"test\", new()\n    {\n        Bucket = test.Name,\n        IndexDocument = new Scaleway.Object.Inputs.BucketWebsiteConfigurationIndexDocumentArgs\n        {\n            Suffix = \"index.html\",\n        },\n        ErrorDocument = new Scaleway.Object.Inputs.BucketWebsiteConfigurationErrorDocumentArgs\n        {\n            Key = \"error.html\",\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := object.NewBucket(ctx, \"test\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"my-bucket\"),\n\t\t\tAcl:  pulumi.String(\"public-read\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewItem(ctx, \"some_file\", \u0026object.ItemArgs{\n\t\t\tBucket:      test.Name,\n\t\t\tKey:         pulumi.String(\"index.html\"),\n\t\t\tFile:        pulumi.String(\"index.html\"),\n\t\t\tVisibility:  pulumi.String(\"public-read\"),\n\t\t\tContentType: pulumi.String(\"text/html\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketWebsiteConfiguration(ctx, \"test\", \u0026object.BucketWebsiteConfigurationArgs{\n\t\t\tBucket: test.Name,\n\t\t\tIndexDocument: \u0026object.BucketWebsiteConfigurationIndexDocumentArgs{\n\t\t\t\tSuffix: pulumi.String(\"index.html\"),\n\t\t\t},\n\t\t\tErrorDocument: \u0026object.BucketWebsiteConfigurationErrorDocumentArgs{\n\t\t\t\tKey: pulumi.String(\"error.html\"),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.Item;\nimport com.pulumi.scaleway.object.ItemArgs;\nimport com.pulumi.scaleway.object.BucketWebsiteConfiguration;\nimport com.pulumi.scaleway.object.BucketWebsiteConfigurationArgs;\nimport com.pulumi.scaleway.object.inputs.BucketWebsiteConfigurationIndexDocumentArgs;\nimport com.pulumi.scaleway.object.inputs.BucketWebsiteConfigurationErrorDocumentArgs;\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 test = new Bucket(\"test\", BucketArgs.builder()\n            .name(\"my-bucket\")\n            .acl(\"public-read\")\n            .build());\n\n        var someFile = new Item(\"someFile\", ItemArgs.builder()\n            .bucket(test.name())\n            .key(\"index.html\")\n            .file(\"index.html\")\n            .visibility(\"public-read\")\n            .contentType(\"text/html\")\n            .build());\n\n        var testBucketWebsiteConfiguration = new BucketWebsiteConfiguration(\"testBucketWebsiteConfiguration\", BucketWebsiteConfigurationArgs.builder()\n            .bucket(test.name())\n            .indexDocument(BucketWebsiteConfigurationIndexDocumentArgs.builder()\n                .suffix(\"index.html\")\n                .build())\n            .errorDocument(BucketWebsiteConfigurationErrorDocumentArgs.builder()\n                .key(\"error.html\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: scaleway:object:Bucket\n    properties:\n      name: my-bucket\n      acl: public-read\n  someFile:\n    type: scaleway:object:Item\n    name: some_file\n    properties:\n      bucket: ${test.name}\n      key: index.html\n      file: index.html\n      visibility: public-read\n      contentType: text/html\n  testBucketWebsiteConfiguration:\n    type: scaleway:object:BucketWebsiteConfiguration\n    name: test\n    properties:\n      bucket: ${test.name}\n      indexDocument:\n        suffix: index.html\n      errorDocument:\n        key: error.html\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With A Bucket Policy\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.object.Bucket(\"main\", {\n    name: \"MyBucket\",\n    acl: \"public-read\",\n});\nconst mainBucketPolicy = new scaleway.object.BucketPolicy(\"main\", {\n    bucket: main.id,\n    policy: JSON.stringify({\n        Version: \"2012-10-17\",\n        Id: \"MyPolicy\",\n        Statement: [{\n            Sid: \"GrantToEveryone\",\n            Effect: \"Allow\",\n            Principal: \"*\",\n            Action: [\"s3:GetObject\"],\n            Resource: [\"\u003cbucket-name\u003e/*\"],\n        }],\n    }),\n});\nconst mainBucketWebsiteConfiguration = new scaleway.object.BucketWebsiteConfiguration(\"main\", {\n    bucket: main.id,\n    indexDocument: {\n        suffix: \"index.html\",\n    },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.object.Bucket(\"main\",\n    name=\"MyBucket\",\n    acl=\"public-read\")\nmain_bucket_policy = scaleway.object.BucketPolicy(\"main\",\n    bucket=main.id,\n    policy=json.dumps({\n        \"Version\": \"2012-10-17\",\n        \"Id\": \"MyPolicy\",\n        \"Statement\": [{\n            \"Sid\": \"GrantToEveryone\",\n            \"Effect\": \"Allow\",\n            \"Principal\": \"*\",\n            \"Action\": [\"s3:GetObject\"],\n            \"Resource\": [\"\u003cbucket-name\u003e/*\"],\n        }],\n    }))\nmain_bucket_website_configuration = scaleway.object.BucketWebsiteConfiguration(\"main\",\n    bucket=main.id,\n    index_document={\n        \"suffix\": \"index.html\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Object.Bucket(\"main\", new()\n    {\n        Name = \"MyBucket\",\n        Acl = \"public-read\",\n    });\n\n    var mainBucketPolicy = new Scaleway.Object.BucketPolicy(\"main\", new()\n    {\n        Bucket = main.Id,\n        Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"2012-10-17\",\n            [\"Id\"] = \"MyPolicy\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Sid\"] = \"GrantToEveryone\",\n                    [\"Effect\"] = \"Allow\",\n                    [\"Principal\"] = \"*\",\n                    [\"Action\"] = new[]\n                    {\n                        \"s3:GetObject\",\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        \"\u003cbucket-name\u003e/*\",\n                    },\n                },\n            },\n        }),\n    });\n\n    var mainBucketWebsiteConfiguration = new Scaleway.Object.BucketWebsiteConfiguration(\"main\", new()\n    {\n        Bucket = main.Id,\n        IndexDocument = new Scaleway.Object.Inputs.BucketWebsiteConfigurationIndexDocumentArgs\n        {\n            Suffix = \"index.html\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"MyBucket\"),\n\t\t\tAcl:  pulumi.String(\"public-read\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Id\":      \"MyPolicy\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Sid\":       \"GrantToEveryone\",\n\t\t\t\t\t\"Effect\":    \"Allow\",\n\t\t\t\t\t\"Principal\": \"*\",\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"s3:GetObject\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\"\u003cbucket-name\u003e/*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = object.NewBucketPolicy(ctx, \"main\", \u0026object.BucketPolicyArgs{\n\t\t\tBucket: main.ID(),\n\t\t\tPolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketWebsiteConfiguration(ctx, \"main\", \u0026object.BucketWebsiteConfigurationArgs{\n\t\t\tBucket: main.ID(),\n\t\t\tIndexDocument: \u0026object.BucketWebsiteConfigurationIndexDocumentArgs{\n\t\t\t\tSuffix: pulumi.String(\"index.html\"),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketPolicy;\nimport com.pulumi.scaleway.object.BucketPolicyArgs;\nimport com.pulumi.scaleway.object.BucketWebsiteConfiguration;\nimport com.pulumi.scaleway.object.BucketWebsiteConfigurationArgs;\nimport com.pulumi.scaleway.object.inputs.BucketWebsiteConfigurationIndexDocumentArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"MyBucket\")\n            .acl(\"public-read\")\n            .build());\n\n        var mainBucketPolicy = new BucketPolicy(\"mainBucketPolicy\", BucketPolicyArgs.builder()\n            .bucket(main.id())\n            .policy(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Version\", \"2012-10-17\"),\n                    jsonProperty(\"Id\", \"MyPolicy\"),\n                    jsonProperty(\"Statement\", jsonArray(jsonObject(\n                        jsonProperty(\"Sid\", \"GrantToEveryone\"),\n                        jsonProperty(\"Effect\", \"Allow\"),\n                        jsonProperty(\"Principal\", \"*\"),\n                        jsonProperty(\"Action\", jsonArray(\"s3:GetObject\")),\n                        jsonProperty(\"Resource\", jsonArray(\"\u003cbucket-name\u003e/*\"))\n                    )))\n                )))\n            .build());\n\n        var mainBucketWebsiteConfiguration = new BucketWebsiteConfiguration(\"mainBucketWebsiteConfiguration\", BucketWebsiteConfigurationArgs.builder()\n            .bucket(main.id())\n            .indexDocument(BucketWebsiteConfigurationIndexDocumentArgs.builder()\n                .suffix(\"index.html\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\n    properties:\n      name: MyBucket\n      acl: public-read\n  mainBucketPolicy:\n    type: scaleway:object:BucketPolicy\n    name: main\n    properties:\n      bucket: ${main.id}\n      policy:\n        fn::toJSON:\n          Version: 2012-10-17\n          Id: MyPolicy\n          Statement:\n            - Sid: GrantToEveryone\n              Effect: Allow\n              Principal: '*'\n              Action:\n                - s3:GetObject\n              Resource:\n                - \u003cbucket-name\u003e/*\n  mainBucketWebsiteConfiguration:\n    type: scaleway:object:BucketWebsiteConfiguration\n    name: main\n    properties:\n      bucket: ${main.id}\n      indexDocument:\n        suffix: index.html\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBucket website configurations can be imported using the `{region}/{bucketName}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/objectBucketWebsiteConfiguration:ObjectBucketWebsiteConfiguration 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/objectBucketWebsiteConfiguration:ObjectBucketWebsiteConfiguration some_bucket fr-par/some-bucket@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n"},"errorDocument":{"$ref":"#/types/scaleway:index/ObjectBucketWebsiteConfigurationErrorDocument:ObjectBucketWebsiteConfigurationErrorDocument","description":"The name of the error file for the website detailed below.\n"},"indexDocument":{"$ref":"#/types/scaleway:index/ObjectBucketWebsiteConfigurationIndexDocument:ObjectBucketWebsiteConfigurationIndexDocument","description":"The name of the index file for the website detailed below.\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"The region you want to attach the resource to"},"websiteDomain":{"type":"string","description":"The domain of the website endpoint. This is used to create DNS alias [records](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/manage-dns-records/).\n"},"websiteEndpoint":{"type":"string","description":"The website endpoint.\n"}},"required":["bucket","indexDocument","projectId","websiteDomain","websiteEndpoint"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"errorDocument":{"$ref":"#/types/scaleway:index/ObjectBucketWebsiteConfigurationErrorDocument:ObjectBucketWebsiteConfigurationErrorDocument","description":"The name of the error file for the website detailed below.\n"},"indexDocument":{"$ref":"#/types/scaleway:index/ObjectBucketWebsiteConfigurationIndexDocument:ObjectBucketWebsiteConfigurationIndexDocument","description":"The name of the index file for the website detailed below.\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true}},"requiredInputs":["bucket","indexDocument"],"stateInputs":{"description":"Input properties used for looking up and filtering ObjectBucketWebsiteConfiguration resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"errorDocument":{"$ref":"#/types/scaleway:index/ObjectBucketWebsiteConfigurationErrorDocument:ObjectBucketWebsiteConfigurationErrorDocument","description":"The name of the error file for the website detailed below.\n"},"indexDocument":{"$ref":"#/types/scaleway:index/ObjectBucketWebsiteConfigurationIndexDocument:ObjectBucketWebsiteConfigurationIndexDocument","description":"The name of the index file for the website detailed below.\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true},"websiteDomain":{"type":"string","description":"The domain of the website endpoint. This is used to create DNS alias [records](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/manage-dns-records/).\n"},"websiteEndpoint":{"type":"string","description":"The website endpoint.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/objectbucketwebsiteconfiguration.ObjectBucketWebsiteConfiguration has been deprecated in favor of scaleway.object/bucketwebsiteconfiguration.BucketWebsiteConfiguration"},"scaleway:index/objectItem:ObjectItem":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.Item`\" pulumi-lang-dotnet=\"`scaleway.object.Item`\" pulumi-lang-go=\"`object.Item`\" pulumi-lang-python=\"`object.Item`\" pulumi-lang-yaml=\"`scaleway.object.Item`\" pulumi-lang-java=\"`scaleway.object.Item`\"\u003e`scaleway.object.Item`\u003c/span\u003e resource allows you to create and manage objects for [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/how-to/upload-files-into-a-bucket/) for more information on Object Storage objects.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\nimport * as std from \"@pulumi/std\";\n\nconst someBucket = new scaleway.object.Bucket(\"some_bucket\", {name: \"some-unique-name\"});\nconst someFile = new scaleway.object.Item(\"some_file\", {\n    bucket: someBucket.id,\n    key: \"object_path\",\n    file: \"myfile\",\n    hash: std.index.filemd5({\n        input: \"myfile\",\n    }).result,\n});\n```\n```python\nimport pulumi\nimport pulumi_std as std\nimport pulumiverse_scaleway as scaleway\n\nsome_bucket = scaleway.object.Bucket(\"some_bucket\", name=\"some-unique-name\")\nsome_file = scaleway.object.Item(\"some_file\",\n    bucket=some_bucket.id,\n    key=\"object_path\",\n    file=\"myfile\",\n    hash=std.index.filemd5(input=\"myfile\")[\"result\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var someBucket = new Scaleway.Object.Bucket(\"some_bucket\", new()\n    {\n        Name = \"some-unique-name\",\n    });\n\n    var someFile = new Scaleway.Object.Item(\"some_file\", new()\n    {\n        Bucket = someBucket.Id,\n        Key = \"object_path\",\n        File = \"myfile\",\n        Hash = Std.Index.Filemd5.Invoke(new()\n        {\n            Input = \"myfile\",\n        }).Result,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsomeBucket, err := object.NewBucket(ctx, \"some_bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFilemd5, err := std.Filemd5(ctx, map[string]interface{}{\n\t\t\t\"input\": \"myfile\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewItem(ctx, \"some_file\", \u0026object.ItemArgs{\n\t\t\tBucket: someBucket.ID(),\n\t\t\tKey:    pulumi.String(\"object_path\"),\n\t\t\tFile:   pulumi.String(\"myfile\"),\n\t\t\tHash:   invokeFilemd5.Result,\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.Item;\nimport com.pulumi.scaleway.object.ItemArgs;\nimport com.pulumi.std.StdFunctions;\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 Bucket(\"someBucket\", BucketArgs.builder()\n            .name(\"some-unique-name\")\n            .build());\n\n        var someFile = new Item(\"someFile\", ItemArgs.builder()\n            .bucket(someBucket.id())\n            .key(\"object_path\")\n            .file(\"myfile\")\n            .hash(StdFunctions.filemd5(Map.of(\"input\", \"myfile\")).result())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  someBucket:\n    type: scaleway:object:Bucket\n    name: some_bucket\n    properties:\n      name: some-unique-name\n  someFile:\n    type: scaleway:object:Item\n    name: some_file\n    properties:\n      bucket: ${someBucket.id}\n      key: object_path\n      file: myfile\n      hash:\n        fn::invoke:\n          function: std:filemd5\n          arguments:\n            input: myfile\n          return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nObjects can be imported using the `{region}/{bucketName}/{objectKey}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/objectItem:ObjectItem some_object fr-par/some-bucket/some-file\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/objectItem:ObjectItem some_object fr-par/some-bucket/some-file@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx\n```\n\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"content":{"type":"string","description":"The content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentBase64":{"type":"string","description":"The base64-encoded content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n\n\u003e **Note:** Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentType":{"type":"string","description":"The standard MIME type of the object's content (e.g., 'application/json', 'text/plain'). This specifies how the object should be interpreted by clients. See RFC 9110: \u003chttps://www.rfc-editor.org/rfc/rfc9110.html#name-content-type\u003e\n"},"file":{"type":"string","description":"The name of the file to upload, defaults to an empty file.\n"},"hash":{"type":"string","description":"Hash of the file, used to trigger the upload on file change.\n"},"key":{"type":"string","description":"The path to the object.\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of metadata used for the object (keys must be lowercase).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"The Scaleway region the bucket resides in.\n"},"sseCustomerKey":{"type":"string","description":"Customer's encryption keys to encrypt data (SSE-C)\n","secret":true},"storageClass":{"type":"string","description":"Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class) (`STANDARD`, `GLACIER`, or `ONEZONE_IA`) used to store the object.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of tags.\n"},"visibility":{"type":"string","description":"Visibility of the object, `public-read` or \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n"}},"required":["bucket","contentType","key","projectId","visibility"],"inputProperties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"content":{"type":"string","description":"The content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentBase64":{"type":"string","description":"The base64-encoded content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n\n\u003e **Note:** Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentType":{"type":"string","description":"The standard MIME type of the object's content (e.g., 'application/json', 'text/plain'). This specifies how the object should be interpreted by clients. See RFC 9110: \u003chttps://www.rfc-editor.org/rfc/rfc9110.html#name-content-type\u003e\n"},"file":{"type":"string","description":"The name of the file to upload, defaults to an empty file.\n"},"hash":{"type":"string","description":"Hash of the file, used to trigger the upload on file change.\n"},"key":{"type":"string","description":"The path to the object.\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of metadata used for the object (keys must be lowercase).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The Scaleway region the bucket resides in.\n","willReplaceOnChanges":true},"sseCustomerKey":{"type":"string","description":"Customer's encryption keys to encrypt data (SSE-C)\n","secret":true},"storageClass":{"type":"string","description":"Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class) (`STANDARD`, `GLACIER`, or `ONEZONE_IA`) used to store the object.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of tags.\n"},"visibility":{"type":"string","description":"Visibility of the object, `public-read` or \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n"}},"requiredInputs":["bucket","key"],"stateInputs":{"description":"Input properties used for looking up and filtering ObjectItem resources.\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"content":{"type":"string","description":"The content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentBase64":{"type":"string","description":"The base64-encoded content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n\n\u003e **Note:** Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentType":{"type":"string","description":"The standard MIME type of the object's content (e.g., 'application/json', 'text/plain'). This specifies how the object should be interpreted by clients. See RFC 9110: \u003chttps://www.rfc-editor.org/rfc/rfc9110.html#name-content-type\u003e\n"},"file":{"type":"string","description":"The name of the file to upload, defaults to an empty file.\n"},"hash":{"type":"string","description":"Hash of the file, used to trigger the upload on file change.\n"},"key":{"type":"string","description":"The path to the object.\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of metadata used for the object (keys must be lowercase).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The Scaleway region the bucket resides in.\n","willReplaceOnChanges":true},"sseCustomerKey":{"type":"string","description":"Customer's encryption keys to encrypt data (SSE-C)\n","secret":true},"storageClass":{"type":"string","description":"Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class) (`STANDARD`, `GLACIER`, or `ONEZONE_IA`) used to store the object.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of tags.\n"},"visibility":{"type":"string","description":"Visibility of the object, `public-read` or \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/objectitem.ObjectItem has been deprecated in favor of scaleway.object/item.Item"},"scaleway:index/rdbSnapshot:RdbSnapshot":{"description":"Creates and manages Scaleway RDB (Relational Database) Snapshots.\nSnapshots are point-in-time backups of a database instance that can be used for recovery or duplication.\nFor more information, refer to [the API documentation](https://www.scaleway.com/en/developers/api/managed-database-postgre-mysql/).\n\n## Example Usage\n\n### Example Basic Snapshot\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.databases.Instance(\"main\", {\n    name: \"test-rdb-instance\",\n    nodeType: \"db-dev-s\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: false,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    tags: [\n        \"terraform-test\",\n        \"scaleway_rdb_instance\",\n        \"minimal\",\n    ],\n    volumeType: \"sbs_5k\",\n    volumeSizeInGb: 10,\n});\nconst test = new scaleway.databases.Snapshot(\"test\", {\n    name: \"initial-snapshot\",\n    instanceId: main.id,\n}, {\n    dependsOn: [main],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb-instance\",\n    node_type=\"db-dev-s\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=False,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    tags=[\n        \"terraform-test\",\n        \"scaleway_rdb_instance\",\n        \"minimal\",\n    ],\n    volume_type=\"sbs_5k\",\n    volume_size_in_gb=10)\ntest = scaleway.databases.Snapshot(\"test\",\n    name=\"initial-snapshot\",\n    instance_id=main.id,\n    opts = pulumi.ResourceOptions(depends_on=[main]))\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.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb-instance\",\n        NodeType = \"db-dev-s\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = false,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        Tags = new[]\n        {\n            \"terraform-test\",\n            \"scaleway_rdb_instance\",\n            \"minimal\",\n        },\n        VolumeType = \"sbs_5k\",\n        VolumeSizeInGb = 10,\n    });\n\n    var test = new Scaleway.Databases.Snapshot(\"test\", new()\n    {\n        Name = \"initial-snapshot\",\n        InstanceId = main.Id,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            main,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb-instance\"),\n\t\t\tNodeType:      pulumi.String(\"db-dev-s\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(false),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform-test\"),\n\t\t\t\tpulumi.String(\"scaleway_rdb_instance\"),\n\t\t\t\tpulumi.String(\"minimal\"),\n\t\t\t},\n\t\t\tVolumeType:     pulumi.String(\"sbs_5k\"),\n\t\t\tVolumeSizeInGb: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewSnapshot(ctx, \"test\", \u0026databases.SnapshotArgs{\n\t\t\tName:       pulumi.String(\"initial-snapshot\"),\n\t\t\tInstanceId: main.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmain,\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.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.Snapshot;\nimport com.pulumi.scaleway.databases.SnapshotArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb-instance\")\n            .nodeType(\"db-dev-s\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(false)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .tags(            \n                \"terraform-test\",\n                \"scaleway_rdb_instance\",\n                \"minimal\")\n            .volumeType(\"sbs_5k\")\n            .volumeSizeInGb(10)\n            .build());\n\n        var test = new Snapshot(\"test\", SnapshotArgs.builder()\n            .name(\"initial-snapshot\")\n            .instanceId(main.id())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(main)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb-instance\n      nodeType: db-dev-s\n      engine: PostgreSQL-15\n      isHaCluster: false\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      tags:\n        - terraform-test\n        - scaleway_rdb_instance\n        - minimal\n      volumeType: sbs_5k\n      volumeSizeInGb: 10\n  test:\n    type: scaleway:databases:Snapshot\n    properties:\n      name: initial-snapshot\n      instanceId: ${main.id}\n    options:\n      dependsOn:\n        - ${main}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with Expiration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst snapshotWithExpiration = new scaleway.databases.Snapshot(\"snapshot_with_expiration\", {\n    name: \"snapshot-with-expiration\",\n    instanceId: main.id,\n    expiresAt: \"2025-01-31T00:00:00Z\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsnapshot_with_expiration = scaleway.databases.Snapshot(\"snapshot_with_expiration\",\n    name=\"snapshot-with-expiration\",\n    instance_id=main[\"id\"],\n    expires_at=\"2025-01-31T00:00:00Z\")\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 snapshotWithExpiration = new Scaleway.Databases.Snapshot(\"snapshot_with_expiration\", new()\n    {\n        Name = \"snapshot-with-expiration\",\n        InstanceId = main.Id,\n        ExpiresAt = \"2025-01-31T00:00:00Z\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.NewSnapshot(ctx, \"snapshot_with_expiration\", \u0026databases.SnapshotArgs{\n\t\t\tName:       pulumi.String(\"snapshot-with-expiration\"),\n\t\t\tInstanceId: pulumi.Any(main.Id),\n\t\t\tExpiresAt:  pulumi.String(\"2025-01-31T00:00:00Z\"),\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.databases.Snapshot;\nimport com.pulumi.scaleway.databases.SnapshotArgs;\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 snapshotWithExpiration = new Snapshot(\"snapshotWithExpiration\", SnapshotArgs.builder()\n            .name(\"snapshot-with-expiration\")\n            .instanceId(main.id())\n            .expiresAt(\"2025-01-31T00:00:00Z\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  snapshotWithExpiration:\n    type: scaleway:databases:Snapshot\n    name: snapshot_with_expiration\n    properties:\n      name: snapshot-with-expiration\n      instanceId: ${main.id}\n      expiresAt: 2025-01-31T00:00:00Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with Multiple Snapshots\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst snapshotA = new scaleway.databases.Snapshot(\"snapshot_a\", {\n    name: \"snapshot_a\",\n    instanceId: main.id,\n}, {\n    dependsOn: [main],\n});\nconst snapshotB = new scaleway.databases.Snapshot(\"snapshot_b\", {\n    name: \"snapshot_b\",\n    instanceId: main.id,\n    expiresAt: \"2025-02-07T00:00:00Z\",\n}, {\n    dependsOn: [main],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsnapshot_a = scaleway.databases.Snapshot(\"snapshot_a\",\n    name=\"snapshot_a\",\n    instance_id=main[\"id\"],\n    opts = pulumi.ResourceOptions(depends_on=[main]))\nsnapshot_b = scaleway.databases.Snapshot(\"snapshot_b\",\n    name=\"snapshot_b\",\n    instance_id=main[\"id\"],\n    expires_at=\"2025-02-07T00:00:00Z\",\n    opts = pulumi.ResourceOptions(depends_on=[main]))\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 snapshotA = new Scaleway.Databases.Snapshot(\"snapshot_a\", new()\n    {\n        Name = \"snapshot_a\",\n        InstanceId = main.Id,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            main,\n        },\n    });\n\n    var snapshotB = new Scaleway.Databases.Snapshot(\"snapshot_b\", new()\n    {\n        Name = \"snapshot_b\",\n        InstanceId = main.Id,\n        ExpiresAt = \"2025-02-07T00:00:00Z\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            main,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.NewSnapshot(ctx, \"snapshot_a\", \u0026databases.SnapshotArgs{\n\t\t\tName:       pulumi.String(\"snapshot_a\"),\n\t\t\tInstanceId: pulumi.Any(main.Id),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmain,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.NewSnapshot(ctx, \"snapshot_b\", \u0026databases.SnapshotArgs{\n\t\t\tName:       pulumi.String(\"snapshot_b\"),\n\t\t\tInstanceId: pulumi.Any(main.Id),\n\t\t\tExpiresAt:  pulumi.String(\"2025-02-07T00:00:00Z\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmain,\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.databases.Snapshot;\nimport com.pulumi.scaleway.databases.SnapshotArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var snapshotA = new Snapshot(\"snapshotA\", SnapshotArgs.builder()\n            .name(\"snapshot_a\")\n            .instanceId(main.id())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(main)\n                .build());\n\n        var snapshotB = new Snapshot(\"snapshotB\", SnapshotArgs.builder()\n            .name(\"snapshot_b\")\n            .instanceId(main.id())\n            .expiresAt(\"2025-02-07T00:00:00Z\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(main)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  snapshotA:\n    type: scaleway:databases:Snapshot\n    name: snapshot_a\n    properties:\n      name: snapshot_a\n      instanceId: ${main.id}\n    options:\n      dependsOn:\n        - ${main}\n  snapshotB:\n    type: scaleway:databases:Snapshot\n    name: snapshot_b\n    properties:\n      name: snapshot_b\n      instanceId: ${main.id}\n      expiresAt: 2025-02-07T00:00:00Z\n    options:\n      dependsOn:\n        - ${main}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Limitations\n\n- Snapshots are tied to the database instance and region where they are created.\n- Expired snapshots are automatically deleted and cannot be restored.\n\n## Notes\n\n- Ensure the \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e corresponds to an existing database instance.\n- Use the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e argument when creating snapshots right after creating an instance to ensure proper dependency management.\n\n## Import\n\nRDB Snapshots can be imported using the `{region}/{snapshot_id}` format.\n\n","properties":{"createdAt":{"type":"string","description":"The timestamp when the snapshot was created, in ISO 8601 format.\n"},"expiresAt":{"type":"string","description":"Expiration date of the snapshot in ISO 8601 format (e.g., `2025-01-31T00:00:00Z`). If not set, the snapshot will not expire automatically.\n"},"instanceId":{"type":"string","description":"The UUID of the database instance for which the snapshot is created.\n"},"name":{"type":"string","description":"The name of the snapshot.\n"},"nodeType":{"type":"string","description":"The type of the database instance for which the snapshot was created.\n"},"region":{"type":"string","description":"The region where the snapshot is stored. Defaults to the region set in the provider configuration.\n"},"size":{"type":"integer","description":"The size of the snapshot in bytes.\n"},"status":{"type":"string","description":"The current status of the snapshot (e.g., \u003cspan pulumi-lang-nodejs=\"`ready`\" pulumi-lang-dotnet=\"`Ready`\" pulumi-lang-go=\"`ready`\" pulumi-lang-python=\"`ready`\" pulumi-lang-yaml=\"`ready`\" pulumi-lang-java=\"`ready`\"\u003e`ready`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e).\n"},"updatedAt":{"type":"string","description":"The timestamp when the snapshot was last updated, in ISO 8601 format.\n"},"volumeType":{"type":"string","description":"The type of volume used by the snapshot.\n"}},"required":["createdAt","expiresAt","instanceId","name","nodeType","size","status","updatedAt","volumeType"],"inputProperties":{"expiresAt":{"type":"string","description":"Expiration date of the snapshot in ISO 8601 format (e.g., `2025-01-31T00:00:00Z`). If not set, the snapshot will not expire automatically.\n"},"instanceId":{"type":"string","description":"The UUID of the database instance for which the snapshot is created.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot.\n"},"region":{"type":"string","description":"The region where the snapshot is stored. Defaults to the region set in the provider configuration.\n","willReplaceOnChanges":true}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering RdbSnapshot resources.\n","properties":{"createdAt":{"type":"string","description":"The timestamp when the snapshot was created, in ISO 8601 format.\n"},"expiresAt":{"type":"string","description":"Expiration date of the snapshot in ISO 8601 format (e.g., `2025-01-31T00:00:00Z`). If not set, the snapshot will not expire automatically.\n"},"instanceId":{"type":"string","description":"The UUID of the database instance for which the snapshot is created.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot.\n"},"nodeType":{"type":"string","description":"The type of the database instance for which the snapshot was created.\n"},"region":{"type":"string","description":"The region where the snapshot is stored. Defaults to the region set in the provider configuration.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The size of the snapshot in bytes.\n"},"status":{"type":"string","description":"The current status of the snapshot (e.g., \u003cspan pulumi-lang-nodejs=\"`ready`\" pulumi-lang-dotnet=\"`Ready`\" pulumi-lang-go=\"`ready`\" pulumi-lang-python=\"`ready`\" pulumi-lang-yaml=\"`ready`\" pulumi-lang-java=\"`ready`\"\u003e`ready`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e).\n"},"updatedAt":{"type":"string","description":"The timestamp when the snapshot was last updated, in ISO 8601 format.\n"},"volumeType":{"type":"string","description":"The type of volume used by the snapshot.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/rdbsnapshot.RdbSnapshot has been deprecated in favor of scaleway.databases/snapshot.Snapshot"},"scaleway:index/redisCluster:RedisCluster":{"description":"Creates and manages Scaleway Redis™ clusters.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-redis).\n\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\n//## Basic Redis cluster creation\nconst main = new scaleway.redis.Cluster(\"main\", {\n    name: \"test_redis_basic\",\n    version: \"6.2.7\",\n    nodeType: \"RED1-MICRO\",\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    tags: [\n        \"test\",\n        \"redis\",\n    ],\n    clusterSize: 1,\n    tlsEnabled: true,\n    acls: [{\n        ip: \"0.0.0.0/0\",\n        description: \"Allow all\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Basic Redis cluster creation\nmain = scaleway.redis.Cluster(\"main\",\n    name=\"test_redis_basic\",\n    version=\"6.2.7\",\n    node_type=\"RED1-MICRO\",\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    tags=[\n        \"test\",\n        \"redis\",\n    ],\n    cluster_size=1,\n    tls_enabled=True,\n    acls=[{\n        \"ip\": \"0.0.0.0/0\",\n        \"description\": \"Allow all\",\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    //## Basic Redis cluster creation\n    var main = new Scaleway.Redis.Cluster(\"main\", new()\n    {\n        Name = \"test_redis_basic\",\n        Version = \"6.2.7\",\n        NodeType = \"RED1-MICRO\",\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        Tags = new[]\n        {\n            \"test\",\n            \"redis\",\n        },\n        ClusterSize = 1,\n        TlsEnabled = true,\n        Acls = new[]\n        {\n            new Scaleway.Redis.Inputs.ClusterAclArgs\n            {\n                Ip = \"0.0.0.0/0\",\n                Description = \"Allow all\",\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/redis\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Basic Redis cluster creation\n\t\t_, err := redis.NewCluster(ctx, \"main\", \u0026redis.ClusterArgs{\n\t\t\tName:     pulumi.String(\"test_redis_basic\"),\n\t\t\tVersion:  pulumi.String(\"6.2.7\"),\n\t\t\tNodeType: pulumi.String(\"RED1-MICRO\"),\n\t\t\tUserName: pulumi.String(\"my_initial_user\"),\n\t\t\tPassword: pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test\"),\n\t\t\t\tpulumi.String(\"redis\"),\n\t\t\t},\n\t\t\tClusterSize: pulumi.Int(1),\n\t\t\tTlsEnabled:  pulumi.Bool(true),\n\t\t\tAcls: redis.ClusterAclArray{\n\t\t\t\t\u0026redis.ClusterAclArgs{\n\t\t\t\t\tIp:          pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t\tDescription: pulumi.String(\"Allow all\"),\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.redis.Cluster;\nimport com.pulumi.scaleway.redis.ClusterArgs;\nimport com.pulumi.scaleway.redis.inputs.ClusterAclArgs;\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        //## Basic Redis cluster creation\n        var main = new Cluster(\"main\", ClusterArgs.builder()\n            .name(\"test_redis_basic\")\n            .version(\"6.2.7\")\n            .nodeType(\"RED1-MICRO\")\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .tags(            \n                \"test\",\n                \"redis\")\n            .clusterSize(1)\n            .tlsEnabled(true)\n            .acls(ClusterAclArgs.builder()\n                .ip(\"0.0.0.0/0\")\n                .description(\"Allow all\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Basic Redis cluster creation\n  main:\n    type: scaleway:redis:Cluster\n    properties:\n      name: test_redis_basic\n      version: 6.2.7\n      nodeType: RED1-MICRO\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      tags:\n        - test\n        - redis\n      clusterSize: 1\n      tlsEnabled: 'true'\n      acls:\n        - ip: 0.0.0.0/0\n          description: Allow all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRedis™ cluster can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/redisCluster:RedisCluster main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:index/RedisClusterAcl:RedisClusterAcl"},"description":"List of acl rules, this is cluster's authorized IPs. More details on the ACL section.\n"},"certificate":{"type":"string","description":"The PEM of the certificate used by redis, only when \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e is true\n"},"clusterSize":{"type":"integer","description":"The number of nodes in the Redis™ cluster.\n\n\u003e **Important:**\n\n- Cluster_size = 1 for Standalone mode (single node).\n\n- Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.\n\n- Cluster_size \u003e= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.\n\n\u003e **Important:** If you are using the cluster mode (\u003e=3 nodes), you can set a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e than you initially\ndid, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller\n\u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and recreate your cluster.\n\n\u003e **Important:** If you are using the Standalone mode (1 node), setting a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and\nrecreate your cluster as you will be switching to the cluster mode.\n"},"createdAt":{"type":"string","description":"The date and time of creation of the Redis™ cluster.\n"},"name":{"type":"string","description":"The name of the Redis™ cluster.\n"},"nodeType":{"type":"string","description":"The type of Redis™ cluster you want to create (e.g. `RED1-M`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e. Keep in mind that\nyou cannot downgrade a Redis™ cluster.\n"},"password":{"type":"string","description":"Password for the first user of the Redis™ cluster. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/RedisClusterPrivateIp:RedisClusterPrivateIp"},"description":"The list of private IPv4 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/RedisClusterPrivateNetwork:RedisClusterPrivateNetwork"},"description":"Describes the Private Network you want to connect to your cluster. If not set, a public\nnetwork will be provided. More details on the Private Network section\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Redis™ cluster is\nassociated with.\n"},"publicNetwork":{"$ref":"#/types/scaleway:index/RedisClusterPublicNetwork:RedisClusterPublicNetwork","description":"(Optional) Public network details. Only one of \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e may be set.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e block exports:\n"},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions\nwith scaleway API or CLI\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Redis™ cluster.\n"},"tlsEnabled":{"type":"boolean","description":"Whether TLS is enabled or not.\n\n\u003e The changes on \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e will force the resource creation.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Redis™ cluster.\n"},"userName":{"type":"string","description":"Identifier for the first user of the Redis™ cluster.\n"},"version":{"type":"string","description":"Redis™ cluster's version (e.g. `6.2.7`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e. Keep in mind that you\ncannot downgrade a Redis™ cluster.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the\nRedis™ cluster should be created.\n"}},"required":["certificate","clusterSize","createdAt","name","nodeType","privateIps","projectId","publicNetwork","updatedAt","userName","version"],"inputProperties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:index/RedisClusterAcl:RedisClusterAcl"},"description":"List of acl rules, this is cluster's authorized IPs. More details on the ACL section.\n"},"clusterSize":{"type":"integer","description":"The number of nodes in the Redis™ cluster.\n\n\u003e **Important:**\n\n- Cluster_size = 1 for Standalone mode (single node).\n\n- Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.\n\n- Cluster_size \u003e= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.\n\n\u003e **Important:** If you are using the cluster mode (\u003e=3 nodes), you can set a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e than you initially\ndid, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller\n\u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and recreate your cluster.\n\n\u003e **Important:** If you are using the Standalone mode (1 node), setting a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and\nrecreate your cluster as you will be switching to the cluster mode.\n"},"name":{"type":"string","description":"The name of the Redis™ cluster.\n"},"nodeType":{"type":"string","description":"The type of Redis™ cluster you want to create (e.g. `RED1-M`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e. Keep in mind that\nyou cannot downgrade a Redis™ cluster.\n"},"password":{"type":"string","description":"Password for the first user of the Redis™ cluster. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/RedisClusterPrivateIp:RedisClusterPrivateIp"},"description":"The list of private IPv4 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/RedisClusterPrivateNetwork:RedisClusterPrivateNetwork"},"description":"Describes the Private Network you want to connect to your cluster. If not set, a public\nnetwork will be provided. More details on the Private Network section\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Redis™ cluster is\nassociated with.\n","willReplaceOnChanges":true},"publicNetwork":{"$ref":"#/types/scaleway:index/RedisClusterPublicNetwork:RedisClusterPublicNetwork","description":"(Optional) Public network details. Only one of \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e may be set.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e block exports:\n"},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions\nwith scaleway API or CLI\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Redis™ cluster.\n"},"tlsEnabled":{"type":"boolean","description":"Whether TLS is enabled or not.\n\n\u003e The changes on \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e will force the resource creation.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"Identifier for the first user of the Redis™ cluster.\n"},"version":{"type":"string","description":"Redis™ cluster's version (e.g. `6.2.7`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e. Keep in mind that you\ncannot downgrade a Redis™ cluster.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the\nRedis™ cluster should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["nodeType","userName","version"],"stateInputs":{"description":"Input properties used for looking up and filtering RedisCluster resources.\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:index/RedisClusterAcl:RedisClusterAcl"},"description":"List of acl rules, this is cluster's authorized IPs. More details on the ACL section.\n"},"certificate":{"type":"string","description":"The PEM of the certificate used by redis, only when \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e is true\n"},"clusterSize":{"type":"integer","description":"The number of nodes in the Redis™ cluster.\n\n\u003e **Important:**\n\n- Cluster_size = 1 for Standalone mode (single node).\n\n- Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.\n\n- Cluster_size \u003e= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.\n\n\u003e **Important:** If you are using the cluster mode (\u003e=3 nodes), you can set a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e than you initially\ndid, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller\n\u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and recreate your cluster.\n\n\u003e **Important:** If you are using the Standalone mode (1 node), setting a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and\nrecreate your cluster as you will be switching to the cluster mode.\n"},"createdAt":{"type":"string","description":"The date and time of creation of the Redis™ cluster.\n"},"name":{"type":"string","description":"The name of the Redis™ cluster.\n"},"nodeType":{"type":"string","description":"The type of Redis™ cluster you want to create (e.g. `RED1-M`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e. Keep in mind that\nyou cannot downgrade a Redis™ cluster.\n"},"password":{"type":"string","description":"Password for the first user of the Redis™ cluster. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/RedisClusterPrivateIp:RedisClusterPrivateIp"},"description":"The list of private IPv4 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:index/RedisClusterPrivateNetwork:RedisClusterPrivateNetwork"},"description":"Describes the Private Network you want to connect to your cluster. If not set, a public\nnetwork will be provided. More details on the Private Network section\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Redis™ cluster is\nassociated with.\n","willReplaceOnChanges":true},"publicNetwork":{"$ref":"#/types/scaleway:index/RedisClusterPublicNetwork:RedisClusterPublicNetwork","description":"(Optional) Public network details. Only one of \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e may be set.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e block exports:\n"},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions\nwith scaleway API or CLI\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Redis™ cluster.\n"},"tlsEnabled":{"type":"boolean","description":"Whether TLS is enabled or not.\n\n\u003e The changes on \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e will force the resource creation.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the Redis™ cluster.\n"},"userName":{"type":"string","description":"Identifier for the first user of the Redis™ cluster.\n"},"version":{"type":"string","description":"Redis™ cluster's version (e.g. `6.2.7`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e. Keep in mind that you\ncannot downgrade a Redis™ cluster.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the\nRedis™ cluster should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/rediscluster.RedisCluster has been deprecated in favor of scaleway.redis/cluster.Cluster"},"scaleway:index/registryNamespace:RegistryNamespace":{"description":"Creates and manages Scaleway Container Registry.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/registry).\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.registry.Namespace(\"main\", {\n    name: \"main-cr\",\n    description: \"Main container registry\",\n    isPublic: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.registry.Namespace(\"main\",\n    name=\"main-cr\",\n    description=\"Main container registry\",\n    is_public=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Registry.Namespace(\"main\", new()\n    {\n        Name = \"main-cr\",\n        Description = \"Main container registry\",\n        IsPublic = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/registry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := registry.NewNamespace(ctx, \"main\", \u0026registry.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"main-cr\"),\n\t\t\tDescription: pulumi.String(\"Main container registry\"),\n\t\t\tIsPublic:    pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.registry.Namespace;\nimport com.pulumi.scaleway.registry.NamespaceArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"main-cr\")\n            .description(\"Main container registry\")\n            .isPublic(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:registry:Namespace\n    properties:\n      name: main-cr\n      description: Main container registry\n      isPublic: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNamespaces can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/registryNamespace:RegistryNamespace main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"description":{"type":"string","description":"The description of the namespace.\n"},"endpoint":{"type":"string","description":"Endpoint reachable by Docker.\n"},"isPublic":{"type":"boolean","description":"Whether the images stored in the namespace should be downloadable publicly (docker pull).\n"},"name":{"type":"string","description":"The unique name of the namespace.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the namespace.\n"},"organizationId":{"type":"string","description":"The Organization ID the namespace is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the namespace is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n"}},"required":["endpoint","name","organizationId","projectId"],"inputProperties":{"description":{"type":"string","description":"The description of the namespace.\n"},"isPublic":{"type":"boolean","description":"Whether the images stored in the namespace should be downloadable publicly (docker pull).\n"},"name":{"type":"string","description":"The unique name of the namespace.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the namespace.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the namespace is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering RegistryNamespace resources.\n","properties":{"description":{"type":"string","description":"The description of the namespace.\n"},"endpoint":{"type":"string","description":"Endpoint reachable by Docker.\n"},"isPublic":{"type":"boolean","description":"Whether the images stored in the namespace should be downloadable publicly (docker pull).\n"},"name":{"type":"string","description":"The unique name of the namespace.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the namespace.\n","willReplaceOnChanges":true},"organizationId":{"type":"string","description":"The Organization ID the namespace is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the namespace is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/registrynamespace.RegistryNamespace has been deprecated in favor of scaleway.registry/namespace.Namespace"},"scaleway:index/sdbDatabase:SdbDatabase":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.databases.ServerlessDatabase`\" pulumi-lang-dotnet=\"`scaleway.databases.ServerlessDatabase`\" pulumi-lang-go=\"`databases.ServerlessDatabase`\" pulumi-lang-python=\"`databases.ServerlessDatabase`\" pulumi-lang-yaml=\"`scaleway.databases.ServerlessDatabase`\" pulumi-lang-java=\"`scaleway.databases.ServerlessDatabase`\"\u003e`scaleway.databases.ServerlessDatabase`\u003c/span\u003e resource allows you to create and manage databases for Scaleway Serverless SQL Databases.\n\nRefer to the Serverless SQL Databases [documentation](https://www.scaleway.com/en/docs/serverless-sql-databases/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-databases/) for more information.\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 database = new scaleway.databases.ServerlessDatabase(\"database\", {\n    name: \"my-database\",\n    minCpu: 0,\n    maxCpu: 8,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ndatabase = scaleway.databases.ServerlessDatabase(\"database\",\n    name=\"my-database\",\n    min_cpu=0,\n    max_cpu=8)\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 database = new Scaleway.Databases.ServerlessDatabase(\"database\", new()\n    {\n        Name = \"my-database\",\n        MinCpu = 0,\n        MaxCpu = 8,\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.NewServerlessDatabase(ctx, \"database\", \u0026databases.ServerlessDatabaseArgs{\n\t\t\tName:   pulumi.String(\"my-database\"),\n\t\t\tMinCpu: pulumi.Int(0),\n\t\t\tMaxCpu: pulumi.Int(8),\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.databases.ServerlessDatabase;\nimport com.pulumi.scaleway.databases.ServerlessDatabaseArgs;\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 database = new ServerlessDatabase(\"database\", ServerlessDatabaseArgs.builder()\n            .name(\"my-database\")\n            .minCpu(0)\n            .maxCpu(8)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  database:\n    type: scaleway:databases:ServerlessDatabase\n    properties:\n      name: my-database\n      minCpu: 0\n      maxCpu: 8\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nServerless SQL Databases can be imported using the `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:index/sdbDatabase:SdbDatabase database fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the database.\n"},"maxCpu":{"type":"integer","description":"The maximum number of CPU units for your database. Defaults to 15.\n"},"minCpu":{"type":"integer","description":"The minimum number of CPU units for your database. Defaults to 0.\n"},"name":{"type":"string","description":"The name of the database (e.g. `my-new-database`).\n\n\u003e **Important:** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the database.\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n"}},"required":["endpoint","name","projectId"],"inputProperties":{"maxCpu":{"type":"integer","description":"The maximum number of CPU units for your database. Defaults to 15.\n"},"minCpu":{"type":"integer","description":"The minimum number of CPU units for your database. Defaults to 0.\n"},"name":{"type":"string","description":"The name of the database (e.g. `my-new-database`).\n\n\u003e **Important:** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the database.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering SdbDatabase resources.\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the database.\n"},"maxCpu":{"type":"integer","description":"The maximum number of CPU units for your database. Defaults to 15.\n"},"minCpu":{"type":"integer","description":"The minimum number of CPU units for your database. Defaults to 0.\n"},"name":{"type":"string","description":"The name of the database (e.g. `my-new-database`).\n\n\u003e **Important:** Updates to the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the database.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/sdbdatabase.SdbDatabase has been deprecated in favor of scaleway.databases/serverlessdatabase.ServerlessDatabase"},"scaleway:index/secret:Secret":{"description":"\n\n## Import\n\nThis section explains how to import a secret using the `{region}/{id}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/secret:Secret main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"Date and time of the secret's creation (in RFC 3339 format).\n"},"description":{"type":"string","description":"Description of the secret (e.g. `my-new-description`).\n"},"ephemeralPolicies":{"type":"array","items":{"$ref":"#/types/scaleway:index/SecretEphemeralPolicy:SecretEphemeralPolicy"},"description":"Ephemeral policy of the secret. Policy that defines whether/when a secret's versions expire. By default, the policy is applied to all the secret's versions.\n"},"name":{"type":"string","description":"Name of the secret (e.g. `my-secret`).\n"},"path":{"type":"string","description":"Path of the secret, defaults to `/`.\n"},"projectId":{"type":"string","description":"The project ID containing is the secret.\n"},"protected":{"type":"boolean","description":"True if secret protection is enabled on a given secret. A protected secret cannot be deleted."},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the resource exists.\n"},"status":{"type":"string","description":"The status of the secret.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags of the secret (e.g. `[\"tag\", \"secret\"]`).\n"},"type":{"type":"string","description":"Type of the secret. If not specified, the type is Opaque. Available values can be found in [SDK Constants](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/secret/v1beta1#pkg-constants).\n"},"updatedAt":{"type":"string","description":"Date and time of the secret's last update (in RFC 3339 format).\n"},"versionCount":{"type":"integer","description":"The amount of secret versions.\n"},"versions":{"type":"array","items":{"$ref":"#/types/scaleway:index/SecretVersion:SecretVersion"},"description":"List of the versions of the secret"}},"required":["createdAt","name","projectId","status","updatedAt","versionCount","versions"],"inputProperties":{"description":{"type":"string","description":"Description of the secret (e.g. `my-new-description`).\n"},"ephemeralPolicies":{"type":"array","items":{"$ref":"#/types/scaleway:index/SecretEphemeralPolicy:SecretEphemeralPolicy"},"description":"Ephemeral policy of the secret. Policy that defines whether/when a secret's versions expire. By default, the policy is applied to all the secret's versions.\n"},"name":{"type":"string","description":"Name of the secret (e.g. `my-secret`).\n"},"path":{"type":"string","description":"Path of the secret, defaults to `/`.\n"},"projectId":{"type":"string","description":"The project ID containing is the secret.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"True if secret protection is enabled on a given secret. A protected secret cannot be deleted."},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the resource exists.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags of the secret (e.g. `[\"tag\", \"secret\"]`).\n"},"type":{"type":"string","description":"Type of the secret. If not specified, the type is Opaque. Available values can be found in [SDK Constants](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/secret/v1beta1#pkg-constants).\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Secret resources.\n","properties":{"createdAt":{"type":"string","description":"Date and time of the secret's creation (in RFC 3339 format).\n"},"description":{"type":"string","description":"Description of the secret (e.g. `my-new-description`).\n"},"ephemeralPolicies":{"type":"array","items":{"$ref":"#/types/scaleway:index/SecretEphemeralPolicy:SecretEphemeralPolicy"},"description":"Ephemeral policy of the secret. Policy that defines whether/when a secret's versions expire. By default, the policy is applied to all the secret's versions.\n"},"name":{"type":"string","description":"Name of the secret (e.g. `my-secret`).\n"},"path":{"type":"string","description":"Path of the secret, defaults to `/`.\n"},"projectId":{"type":"string","description":"The project ID containing is the secret.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"True if secret protection is enabled on a given secret. A protected secret cannot be deleted."},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the resource exists.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the secret.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags of the secret (e.g. `[\"tag\", \"secret\"]`).\n"},"type":{"type":"string","description":"Type of the secret. If not specified, the type is Opaque. Available values can be found in [SDK Constants](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/secret/v1beta1#pkg-constants).\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"Date and time of the secret's last update (in RFC 3339 format).\n"},"versionCount":{"type":"integer","description":"The amount of secret versions.\n"},"versions":{"type":"array","items":{"$ref":"#/types/scaleway:index/SecretVersion:SecretVersion"},"description":"List of the versions of the secret"}},"type":"object"},"deprecationMessage":"scaleway.index/secret.Secret has been deprecated in favor of scaleway.secrets/secret.Secret"},"scaleway:index/secretVersion:SecretVersion":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.secrets.Version`\" pulumi-lang-dotnet=\"`scaleway.secrets.Version`\" pulumi-lang-go=\"`secrets.Version`\" pulumi-lang-python=\"`secrets.Version`\" pulumi-lang-yaml=\"`scaleway.secrets.Version`\" pulumi-lang-java=\"`scaleway.secrets.Version`\"\u003e`scaleway.secrets.Version`\u003c/span\u003e resource allows you to create and manage secret versions in Scaleway Secret Manager.\n\nRefer to the Secret Manager [product documentation](https://www.scaleway.com/en/docs/secret-manager/) and [API documentation](https://www.scaleway.com/en/developers/api/secret-manager/) for more information.\n\n## Example Usage\n\n### Create a secret and a version\n\nThe following commands allow you to:\n\n- create a secret named \u003cspan pulumi-lang-nodejs=\"`foo`\" pulumi-lang-dotnet=\"`Foo`\" pulumi-lang-go=\"`foo`\" pulumi-lang-python=\"`foo`\" pulumi-lang-yaml=\"`foo`\" pulumi-lang-java=\"`foo`\"\u003e`foo`\u003c/span\u003e\n- create a version of this secret containing the \u003cspan pulumi-lang-nodejs=\"`myNewSecret`\" pulumi-lang-dotnet=\"`MyNewSecret`\" pulumi-lang-go=\"`myNewSecret`\" pulumi-lang-python=\"`my_new_secret`\" pulumi-lang-yaml=\"`myNewSecret`\" pulumi-lang-java=\"`myNewSecret`\"\u003e`my_new_secret`\u003c/span\u003e data\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.secrets.Secret(\"main\", {\n    name: \"foo\",\n    description: \"barr\",\n    tags: [\n        \"foo\",\n        \"terraform\",\n    ],\n});\nconst v1 = new scaleway.secrets.Version(\"v1\", {\n    description: \"version1\",\n    secretId: main.id,\n    data: \"my_new_secret\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.secrets.Secret(\"main\",\n    name=\"foo\",\n    description=\"barr\",\n    tags=[\n        \"foo\",\n        \"terraform\",\n    ])\nv1 = scaleway.secrets.Version(\"v1\",\n    description=\"version1\",\n    secret_id=main.id,\n    data=\"my_new_secret\")\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.Secrets.Secret(\"main\", new()\n    {\n        Name = \"foo\",\n        Description = \"barr\",\n        Tags = new[]\n        {\n            \"foo\",\n            \"terraform\",\n        },\n    });\n\n    var v1 = new Scaleway.Secrets.Version(\"v1\", new()\n    {\n        Description = \"version1\",\n        SecretId = main.Id,\n        Data = \"my_new_secret\",\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/secrets\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := secrets.NewSecret(ctx, \"main\", \u0026secrets.SecretArgs{\n\t\t\tName:        pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"barr\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secrets.NewVersion(ctx, \"v1\", \u0026secrets.VersionArgs{\n\t\t\tDescription: pulumi.String(\"version1\"),\n\t\t\tSecretId:    main.ID(),\n\t\t\tData:        pulumi.String(\"my_new_secret\"),\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.secrets.Secret;\nimport com.pulumi.scaleway.secrets.SecretArgs;\nimport com.pulumi.scaleway.secrets.Version;\nimport com.pulumi.scaleway.secrets.VersionArgs;\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 Secret(\"main\", SecretArgs.builder()\n            .name(\"foo\")\n            .description(\"barr\")\n            .tags(            \n                \"foo\",\n                \"terraform\")\n            .build());\n\n        var v1 = new Version(\"v1\", VersionArgs.builder()\n            .description(\"version1\")\n            .secretId(main.id())\n            .data(\"my_new_secret\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:secrets:Secret\n    properties:\n      name: foo\n      description: barr\n      tags:\n        - foo\n        - terraform\n  v1:\n    type: scaleway:secrets:Version\n    properties:\n      description: version1\n      secretId: ${main.id}\n      data: my_new_secret\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import a secret version using the `{region}/{id}/{revision}` format.\n\n~\u003e **Important:** Keep in mind that if you import with the `latest` revision, you will overwrite the previous version you might have been using.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/secretVersion:SecretVersion main fr-par/11111111-1111-1111-1111-111111111111/2\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the secret version's creation (in RFC 3339 format).\n"},"data":{"type":"string","description":"The raw data payload of the secret version. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true},"dataWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nThe raw data payload of your secret version in write-only mode. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true},"dataWoVersion":{"type":"integer","description":"The version of the write-only data. To update the \u003cspan pulumi-lang-nodejs=\"`dataWo`\" pulumi-lang-dotnet=\"`DataWo`\" pulumi-lang-go=\"`dataWo`\" pulumi-lang-python=\"`data_wo`\" pulumi-lang-yaml=\"`dataWo`\" pulumi-lang-java=\"`dataWo`\"\u003e`data_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`dataWoVersion`\" pulumi-lang-dotnet=\"`DataWoVersion`\" pulumi-lang-go=\"`dataWoVersion`\" pulumi-lang-python=\"`data_wo_version`\" pulumi-lang-yaml=\"`dataWoVersion`\" pulumi-lang-java=\"`dataWoVersion`\"\u003e`data_wo_version`\u003c/span\u003e.\n"},"description":{"type":"string","description":"Description of the secret version (e.g. `my-new-description`).\n"},"region":{"type":"string","description":"). The region where the resource exists.\n"},"revision":{"type":"string","description":"The revision number of the secret version.\n"},"secretId":{"type":"string","description":"The ID of the secret associated with the version.\n"},"status":{"type":"string","description":"The status of the secret version.\n"},"updatedAt":{"type":"string","description":"The date and time of the secret version's last update (in RFC 3339 format).\n"}},"required":["createdAt","revision","secretId","status","updatedAt"],"inputProperties":{"data":{"type":"string","description":"The raw data payload of the secret version. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true,"willReplaceOnChanges":true},"dataWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nThe raw data payload of your secret version in write-only mode. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true},"dataWoVersion":{"type":"integer","description":"The version of the write-only data. To update the \u003cspan pulumi-lang-nodejs=\"`dataWo`\" pulumi-lang-dotnet=\"`DataWo`\" pulumi-lang-go=\"`dataWo`\" pulumi-lang-python=\"`data_wo`\" pulumi-lang-yaml=\"`dataWo`\" pulumi-lang-java=\"`dataWo`\"\u003e`data_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`dataWoVersion`\" pulumi-lang-dotnet=\"`DataWoVersion`\" pulumi-lang-go=\"`dataWoVersion`\" pulumi-lang-python=\"`data_wo_version`\" pulumi-lang-yaml=\"`dataWoVersion`\" pulumi-lang-java=\"`dataWoVersion`\"\u003e`data_wo_version`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the secret version (e.g. `my-new-description`).\n"},"region":{"type":"string","description":"). The region where the resource exists.\n","willReplaceOnChanges":true},"secretId":{"type":"string","description":"The ID of the secret associated with the version.\n","willReplaceOnChanges":true}},"requiredInputs":["secretId"],"stateInputs":{"description":"Input properties used for looking up and filtering SecretVersion resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the secret version's creation (in RFC 3339 format).\n"},"data":{"type":"string","description":"The raw data payload of the secret version. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true,"willReplaceOnChanges":true},"dataWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nThe raw data payload of your secret version in write-only mode. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true},"dataWoVersion":{"type":"integer","description":"The version of the write-only data. To update the \u003cspan pulumi-lang-nodejs=\"`dataWo`\" pulumi-lang-dotnet=\"`DataWo`\" pulumi-lang-go=\"`dataWo`\" pulumi-lang-python=\"`data_wo`\" pulumi-lang-yaml=\"`dataWo`\" pulumi-lang-java=\"`dataWo`\"\u003e`data_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`dataWoVersion`\" pulumi-lang-dotnet=\"`DataWoVersion`\" pulumi-lang-go=\"`dataWoVersion`\" pulumi-lang-python=\"`data_wo_version`\" pulumi-lang-yaml=\"`dataWoVersion`\" pulumi-lang-java=\"`dataWoVersion`\"\u003e`data_wo_version`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the secret version (e.g. `my-new-description`).\n"},"region":{"type":"string","description":"). The region where the resource exists.\n","willReplaceOnChanges":true},"revision":{"type":"string","description":"The revision number of the secret version.\n"},"secretId":{"type":"string","description":"The ID of the secret associated with the version.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the secret version.\n"},"updatedAt":{"type":"string","description":"The date and time of the secret version's last update (in RFC 3339 format).\n"}},"type":"object"},"deprecationMessage":"scaleway.index/secretversion.SecretVersion has been deprecated in favor of scaleway.secrets/version.Version"},"scaleway:index/temDomain:TemDomain":{"description":"Creates and manages Scaleway Transactional Email Domains.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/transactional-email).\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.tem.Domain(\"main\", {\n    acceptTos: true,\n    name: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.tem.Domain(\"main\",\n    accept_tos=True,\n    name=\"example.com\")\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.Tem.Domain(\"main\", new()\n    {\n        AcceptTos = true,\n        Name = \"example.com\",\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/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := tem.NewDomain(ctx, \"main\", \u0026tem.DomainArgs{\n\t\t\tAcceptTos: pulumi.Bool(true),\n\t\t\tName:      pulumi.String(\"example.com\"),\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.tem.Domain;\nimport com.pulumi.scaleway.tem.DomainArgs;\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 Domain(\"main\", DomainArgs.builder()\n            .acceptTos(true)\n            .name(\"example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:tem:Domain\n    properties:\n      acceptTos: true\n      name: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Add the required records to your DNS zone\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\nconst domainName = config.require(\"domainName\");\nconst main = new scaleway.tem.Domain(\"main\", {\n    name: domainName,\n    acceptTos: true,\n});\nconst spf = new scaleway.domain.Record(\"spf\", {\n    dnsZone: domainName,\n    type: \"TXT\",\n    data: main.spfValue,\n});\nconst dkim = new scaleway.domain.Record(\"dkim\", {\n    dnsZone: domainName,\n    name: main.dkimName,\n    type: \"TXT\",\n    data: main.dkimConfig,\n});\nconst mx = new scaleway.domain.Record(\"mx\", {\n    dnsZone: domainName,\n    type: \"MX\",\n    data: main.mxConfig,\n});\nconst dmarc = new scaleway.domain.Record(\"dmarc\", {\n    dnsZone: domainName,\n    name: main.dmarcName,\n    type: \"TXT\",\n    data: main.dmarcConfig,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\ndomain_name = config.require(\"domainName\")\nmain = scaleway.tem.Domain(\"main\",\n    name=domain_name,\n    accept_tos=True)\nspf = scaleway.domain.Record(\"spf\",\n    dns_zone=domain_name,\n    type=\"TXT\",\n    data=main.spf_value)\ndkim = scaleway.domain.Record(\"dkim\",\n    dns_zone=domain_name,\n    name=main.dkim_name,\n    type=\"TXT\",\n    data=main.dkim_config)\nmx = scaleway.domain.Record(\"mx\",\n    dns_zone=domain_name,\n    type=\"MX\",\n    data=main.mx_config)\ndmarc = scaleway.domain.Record(\"dmarc\",\n    dns_zone=domain_name,\n    name=main.dmarc_name,\n    type=\"TXT\",\n    data=main.dmarc_config)\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 config = new Config();\n    var domainName = config.Require(\"domainName\");\n    var main = new Scaleway.Tem.Domain(\"main\", new()\n    {\n        Name = domainName,\n        AcceptTos = true,\n    });\n\n    var spf = new Scaleway.Domain.Record(\"spf\", new()\n    {\n        DnsZone = domainName,\n        Type = \"TXT\",\n        Data = main.SpfValue,\n    });\n\n    var dkim = new Scaleway.Domain.Record(\"dkim\", new()\n    {\n        DnsZone = domainName,\n        Name = main.DkimName,\n        Type = \"TXT\",\n        Data = main.DkimConfig,\n    });\n\n    var mx = new Scaleway.Domain.Record(\"mx\", new()\n    {\n        DnsZone = domainName,\n        Type = \"MX\",\n        Data = main.MxConfig,\n    });\n\n    var dmarc = new Scaleway.Domain.Record(\"dmarc\", new()\n    {\n        DnsZone = domainName,\n        Name = main.DmarcName,\n        Type = \"TXT\",\n        Data = main.DmarcConfig,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := cfg.Require(\"domainName\")\n\t\tmain, err := tem.NewDomain(ctx, \"main\", \u0026tem.DomainArgs{\n\t\t\tName:      pulumi.String(domainName),\n\t\t\tAcceptTos: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"spf\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tType:    pulumi.String(\"TXT\"),\n\t\t\tData:    main.SpfValue,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"dkim\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tName:    main.DkimName,\n\t\t\tType:    pulumi.String(\"TXT\"),\n\t\t\tData:    main.DkimConfig,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"mx\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tType:    pulumi.String(\"MX\"),\n\t\t\tData:    main.MxConfig,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"dmarc\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tName:    main.DmarcName,\n\t\t\tType:    pulumi.String(\"TXT\"),\n\t\t\tData:    main.DmarcConfig,\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.tem.Domain;\nimport com.pulumi.scaleway.tem.DomainArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\");\n        var main = new Domain(\"main\", DomainArgs.builder()\n            .name(domainName)\n            .acceptTos(true)\n            .build());\n\n        var spf = new Record(\"spf\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .type(\"TXT\")\n            .data(main.spfValue())\n            .build());\n\n        var dkim = new Record(\"dkim\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .name(main.dkimName())\n            .type(\"TXT\")\n            .data(main.dkimConfig())\n            .build());\n\n        var mx = new Record(\"mx\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .type(\"MX\")\n            .data(main.mxConfig())\n            .build());\n\n        var dmarc = new Record(\"dmarc\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .name(main.dmarcName())\n            .type(\"TXT\")\n            .data(main.dmarcConfig())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\nresources:\n  main:\n    type: scaleway:tem:Domain\n    properties:\n      name: ${domainName}\n      acceptTos: true\n  spf:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      type: TXT\n      data: ${main.spfValue}\n  dkim:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      name: ${main.dkimName}\n      type: TXT\n      data: ${main.dkimConfig}\n  mx:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      type: MX\n      data: ${main.mxConfig}\n  dmarc:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      name: ${main.dmarcName}\n      type: TXT\n      data: ${main.dmarcConfig}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Automatically Configure DNS Settings for Your Domain\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\nconst domainName = config.require(\"domainName\");\nconst main = new scaleway.tem.Domain(\"main\", {\n    name: domainName,\n    acceptTos: true,\n    autoconfig: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\ndomain_name = config.require(\"domainName\")\nmain = scaleway.tem.Domain(\"main\",\n    name=domain_name,\n    accept_tos=True,\n    autoconfig=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 config = new Config();\n    var domainName = config.Require(\"domainName\");\n    var main = new Scaleway.Tem.Domain(\"main\", new()\n    {\n        Name = domainName,\n        AcceptTos = true,\n        Autoconfig = 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/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := cfg.Require(\"domainName\")\n\t\t_, err := tem.NewDomain(ctx, \"main\", \u0026tem.DomainArgs{\n\t\t\tName:       pulumi.String(domainName),\n\t\t\tAcceptTos:  pulumi.Bool(true),\n\t\t\tAutoconfig: 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.tem.Domain;\nimport com.pulumi.scaleway.tem.DomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\");\n        var main = new Domain(\"main\", DomainArgs.builder()\n            .name(domainName)\n            .acceptTos(true)\n            .autoconfig(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\nresources:\n  main:\n    type: scaleway:tem:Domain\n    properties:\n      name: ${domainName}\n      acceptTos: true\n      autoconfig: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Configuring GitLab Project Variables\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gitlab from \"@pulumi/gitlab\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\nconst domainName = config.require(\"domainName\");\nconst myDomain = scaleway.tem.getDomain({\n    name: domainName,\n});\nconst smtpAuthUser = new gitlab.ProjectVariable(\"smtp_auth_user\", {\n    key: \"SMTP_AUTH_USER\",\n    value: myDomain.then(myDomain =\u003e myDomain.smtpsAuthUser),\n});\nconst smtpPort = new gitlab.ProjectVariable(\"smtp_port\", {\n    key: \"SMTP_PORT\",\n    value: myDomain.then(myDomain =\u003e myDomain.smtpsPort),\n});\nconst smtpHost = new gitlab.ProjectVariable(\"smtp_host\", {\n    key: \"SMTP_HOST\",\n    value: myDomain.then(myDomain =\u003e myDomain.smtpsHost),\n});\n```\n```python\nimport pulumi\nimport pulumi_gitlab as gitlab\nimport pulumi_scaleway as scaleway\n\nconfig = pulumi.Config()\ndomain_name = config.require(\"domainName\")\nmy_domain = scaleway.tem.get_domain(name=domain_name)\nsmtp_auth_user = gitlab.ProjectVariable(\"smtp_auth_user\",\n    key=\"SMTP_AUTH_USER\",\n    value=my_domain.smtps_auth_user)\nsmtp_port = gitlab.ProjectVariable(\"smtp_port\",\n    key=\"SMTP_PORT\",\n    value=my_domain.smtps_port)\nsmtp_host = gitlab.ProjectVariable(\"smtp_host\",\n    key=\"SMTP_HOST\",\n    value=my_domain.smtps_host)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing GitLab = Pulumi.GitLab;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var domainName = config.Require(\"domainName\");\n    var myDomain = Scaleway.Tem.GetDomain.Invoke(new()\n    {\n        Name = domainName,\n    });\n\n    var smtpAuthUser = new GitLab.ProjectVariable(\"smtp_auth_user\", new()\n    {\n        Key = \"SMTP_AUTH_USER\",\n        Value = myDomain.Apply(getDomainResult =\u003e getDomainResult.SmtpsAuthUser),\n    });\n\n    var smtpPort = new GitLab.ProjectVariable(\"smtp_port\", new()\n    {\n        Key = \"SMTP_PORT\",\n        Value = myDomain.Apply(getDomainResult =\u003e getDomainResult.SmtpsPort),\n    });\n\n    var smtpHost = new GitLab.ProjectVariable(\"smtp_host\", new()\n    {\n        Key = \"SMTP_HOST\",\n        Value = myDomain.Apply(getDomainResult =\u003e getDomainResult.SmtpsHost),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gitlab/sdk/v9/go/gitlab\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := cfg.Require(\"domainName\")\n\t\tmyDomain, err := tem.LookupDomain(ctx, \u0026tem.LookupDomainArgs{\n\t\t\tName: pulumi.StringRef(domainName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gitlab.NewProjectVariable(ctx, \"smtp_auth_user\", \u0026gitlab.ProjectVariableArgs{\n\t\t\tKey:   pulumi.String(\"SMTP_AUTH_USER\"),\n\t\t\tValue: pulumi.String(myDomain.SmtpsAuthUser),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gitlab.NewProjectVariable(ctx, \"smtp_port\", \u0026gitlab.ProjectVariableArgs{\n\t\t\tKey:   pulumi.String(\"SMTP_PORT\"),\n\t\t\tValue: pulumi.Int(myDomain.SmtpsPort),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gitlab.NewProjectVariable(ctx, \"smtp_host\", \u0026gitlab.ProjectVariableArgs{\n\t\t\tKey:   pulumi.String(\"SMTP_HOST\"),\n\t\t\tValue: pulumi.Any(myDomain.SmtpsHost),\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.tem.TemFunctions;\nimport com.pulumi.scaleway.tem.inputs.GetDomainArgs;\nimport com.pulumi.gitlab.ProjectVariable;\nimport com.pulumi.gitlab.ProjectVariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\");\n        final var myDomain = TemFunctions.getDomain(GetDomainArgs.builder()\n            .name(domainName)\n            .build());\n\n        var smtpAuthUser = new ProjectVariable(\"smtpAuthUser\", ProjectVariableArgs.builder()\n            .key(\"SMTP_AUTH_USER\")\n            .value(myDomain.smtpsAuthUser())\n            .build());\n\n        var smtpPort = new ProjectVariable(\"smtpPort\", ProjectVariableArgs.builder()\n            .key(\"SMTP_PORT\")\n            .value(myDomain.smtpsPort())\n            .build());\n\n        var smtpHost = new ProjectVariable(\"smtpHost\", ProjectVariableArgs.builder()\n            .key(\"SMTP_HOST\")\n            .value(myDomain.smtpsHost())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\nresources:\n  smtpAuthUser:\n    type: gitlab:ProjectVariable\n    name: smtp_auth_user\n    properties:\n      key: SMTP_AUTH_USER\n      value: ${myDomain.smtpsAuthUser}\n  smtpPort:\n    type: gitlab:ProjectVariable\n    name: smtp_port\n    properties:\n      key: SMTP_PORT\n      value: ${myDomain.smtpsPort}\n  smtpHost:\n    type: gitlab:ProjectVariable\n    name: smtp_host\n    properties:\n      key: SMTP_HOST\n      value: ${myDomain.smtpsHost}\nvariables:\n  myDomain:\n    fn::invoke:\n      function: scaleway:tem:getDomain\n      arguments:\n        name: ${domainName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDomains can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/temDomain:TemDomain main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"acceptTos":{"type":"boolean","description":"Acceptation of the [Term of Service](https://tem.s3.fr-par.scw.cloud/antispam_policy.pdf).\n\u003e **Important:** This attribute must be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"autoconfig":{"type":"boolean","description":"Automatically configures DNS settings for the domain, simplifying the setup process by applying predefined configurations.\n"},"createdAt":{"type":"string","description":"The date and time of the Transaction Email Domain's creation (RFC 3339 format).\n"},"dkimConfig":{"type":"string","description":"The DKIM public key, as should be recorded in the DNS zone.\n"},"dkimName":{"type":"string","description":"DKIM name for the domain, as should be recorded in the DNS zone.\n"},"dmarcConfig":{"type":"string","description":"DMARC record for the domain, as should be recorded in the DNS zone.\n"},"dmarcName":{"type":"string","description":"DMARC name for the domain, as should be recorded in the DNS zone.\n"},"lastError":{"type":"string","description":"(Deprecated) The error message if the last check failed.\n","deprecationMessage":"last_error is deprecated"},"lastValidAt":{"type":"string","description":"The date and time the domain was last found to be valid (RFC 3339 format).\n"},"mxBlackhole":{"type":"string","description":"The Scaleway's blackhole MX server to use if you do not have one.\n"},"mxConfig":{"type":"string","description":"MX record configuration for the domain blackhole.\n"},"name":{"type":"string","description":"The domain name, must not be used in another Transactional Email Domain.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the domain.\n"},"nextCheckAt":{"type":"string","description":"The date and time of the next scheduled check (RFC 3339 format).\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the domain is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the domain should be created.\n\u003e **Important:** Currently, only fr-par is supported. Specifying any other region will cause an error.\n"},"reputations":{"type":"array","items":{"$ref":"#/types/scaleway:index/TemDomainReputation:TemDomainReputation"},"description":"The domain's reputation.\n"},"revokedAt":{"type":"string","description":"The date and time of the revocation of the domain (RFC 3339 format).\n"},"smtpHost":{"type":"string","description":"The SMTP host to use to send emails.\n"},"smtpPort":{"type":"integer","description":"The SMTP port to use to send emails over TLS.\n"},"smtpPortAlternative":{"type":"integer","description":"The SMTP port to use to send emails over TLS.\n"},"smtpPortUnsecure":{"type":"integer","description":"The SMTP port to use to send emails.\n"},"smtpsAuthUser":{"type":"string","description":"SMTPS auth user refers to the identifier for a user authorized to send emails via SMTPS, ensuring secure email transmission.\n"},"smtpsPort":{"type":"integer","description":"The SMTPS port to use to send emails over TLS Wrapper.\n"},"smtpsPortAlternative":{"type":"integer","description":"The SMTPS port to use to send emails over TLS Wrapper.\n"},"spfConfig":{"type":"string","description":"The snippet of the SPF record that should be registered in the DNS zone.\n"},"spfValue":{"type":"string","description":"Complete SPF record value for the domain, as should be recorded in the DNS zone.\n"},"status":{"type":"string","description":"The status of the domain's reputation.\n"}},"required":["acceptTos","createdAt","dkimConfig","dkimName","dmarcConfig","dmarcName","lastError","lastValidAt","mxBlackhole","mxConfig","name","nextCheckAt","projectId","reputations","revokedAt","smtpHost","smtpPort","smtpPortAlternative","smtpPortUnsecure","smtpsAuthUser","smtpsPort","smtpsPortAlternative","spfConfig","spfValue","status"],"inputProperties":{"acceptTos":{"type":"boolean","description":"Acceptation of the [Term of Service](https://tem.s3.fr-par.scw.cloud/antispam_policy.pdf).\n\u003e **Important:** This attribute must be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"autoconfig":{"type":"boolean","description":"Automatically configures DNS settings for the domain, simplifying the setup process by applying predefined configurations.\n"},"name":{"type":"string","description":"The domain name, must not be used in another Transactional Email Domain.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the domain.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the domain is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the domain should be created.\n\u003e **Important:** Currently, only fr-par is supported. Specifying any other region will cause an error.\n","willReplaceOnChanges":true}},"requiredInputs":["acceptTos"],"stateInputs":{"description":"Input properties used for looking up and filtering TemDomain resources.\n","properties":{"acceptTos":{"type":"boolean","description":"Acceptation of the [Term of Service](https://tem.s3.fr-par.scw.cloud/antispam_policy.pdf).\n\u003e **Important:** This attribute must be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"autoconfig":{"type":"boolean","description":"Automatically configures DNS settings for the domain, simplifying the setup process by applying predefined configurations.\n"},"createdAt":{"type":"string","description":"The date and time of the Transaction Email Domain's creation (RFC 3339 format).\n"},"dkimConfig":{"type":"string","description":"The DKIM public key, as should be recorded in the DNS zone.\n"},"dkimName":{"type":"string","description":"DKIM name for the domain, as should be recorded in the DNS zone.\n"},"dmarcConfig":{"type":"string","description":"DMARC record for the domain, as should be recorded in the DNS zone.\n"},"dmarcName":{"type":"string","description":"DMARC name for the domain, as should be recorded in the DNS zone.\n"},"lastError":{"type":"string","description":"(Deprecated) The error message if the last check failed.\n","deprecationMessage":"last_error is deprecated"},"lastValidAt":{"type":"string","description":"The date and time the domain was last found to be valid (RFC 3339 format).\n"},"mxBlackhole":{"type":"string","description":"The Scaleway's blackhole MX server to use if you do not have one.\n"},"mxConfig":{"type":"string","description":"MX record configuration for the domain blackhole.\n"},"name":{"type":"string","description":"The domain name, must not be used in another Transactional Email Domain.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the domain.\n","willReplaceOnChanges":true},"nextCheckAt":{"type":"string","description":"The date and time of the next scheduled check (RFC 3339 format).\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the domain is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the domain should be created.\n\u003e **Important:** Currently, only fr-par is supported. Specifying any other region will cause an error.\n","willReplaceOnChanges":true},"reputations":{"type":"array","items":{"$ref":"#/types/scaleway:index/TemDomainReputation:TemDomainReputation"},"description":"The domain's reputation.\n"},"revokedAt":{"type":"string","description":"The date and time of the revocation of the domain (RFC 3339 format).\n"},"smtpHost":{"type":"string","description":"The SMTP host to use to send emails.\n"},"smtpPort":{"type":"integer","description":"The SMTP port to use to send emails over TLS.\n"},"smtpPortAlternative":{"type":"integer","description":"The SMTP port to use to send emails over TLS.\n"},"smtpPortUnsecure":{"type":"integer","description":"The SMTP port to use to send emails.\n"},"smtpsAuthUser":{"type":"string","description":"SMTPS auth user refers to the identifier for a user authorized to send emails via SMTPS, ensuring secure email transmission.\n"},"smtpsPort":{"type":"integer","description":"The SMTPS port to use to send emails over TLS Wrapper.\n"},"smtpsPortAlternative":{"type":"integer","description":"The SMTPS port to use to send emails over TLS Wrapper.\n"},"spfConfig":{"type":"string","description":"The snippet of the SPF record that should be registered in the DNS zone.\n"},"spfValue":{"type":"string","description":"Complete SPF record value for the domain, as should be recorded in the DNS zone.\n"},"status":{"type":"string","description":"The status of the domain's reputation.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/temdomain.TemDomain has been deprecated in favor of scaleway.tem/domain.Domain"},"scaleway:index/temDomainValidation:TemDomainValidation":{"description":"## 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.tem.Domain(\"main\", {\n    acceptTos: true,\n    name: \"example.com\",\n});\nconst example = new scaleway.tem.DomainValidation(\"example\", {\n    domainId: main.id,\n    region: \"fr-par\",\n    timeout: 300,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.tem.Domain(\"main\",\n    accept_tos=True,\n    name=\"example.com\")\nexample = scaleway.tem.DomainValidation(\"example\",\n    domain_id=main.id,\n    region=\"fr-par\",\n    timeout=300)\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.Tem.Domain(\"main\", new()\n    {\n        AcceptTos = true,\n        Name = \"example.com\",\n    });\n\n    var example = new Scaleway.Tem.DomainValidation(\"example\", new()\n    {\n        DomainId = main.Id,\n        Region = \"fr-par\",\n        Timeout = 300,\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/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := tem.NewDomain(ctx, \"main\", \u0026tem.DomainArgs{\n\t\t\tAcceptTos: pulumi.Bool(true),\n\t\t\tName:      pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = tem.NewDomainValidation(ctx, \"example\", \u0026tem.DomainValidationArgs{\n\t\t\tDomainId: main.ID(),\n\t\t\tRegion:   pulumi.String(\"fr-par\"),\n\t\t\tTimeout:  pulumi.Int(300),\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.tem.Domain;\nimport com.pulumi.scaleway.tem.DomainArgs;\nimport com.pulumi.scaleway.tem.DomainValidation;\nimport com.pulumi.scaleway.tem.DomainValidationArgs;\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 Domain(\"main\", DomainArgs.builder()\n            .acceptTos(true)\n            .name(\"example.com\")\n            .build());\n\n        var example = new DomainValidation(\"example\", DomainValidationArgs.builder()\n            .domainId(main.id())\n            .region(\"fr-par\")\n            .timeout(300)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:tem:Domain\n    properties:\n      acceptTos: true\n      name: example.com\n  example:\n    type: scaleway:tem:DomainValidation\n    properties:\n      domainId: ${main.id}\n      region: fr-par\n      timeout: 300\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"domainId":{"type":"string","description":"The ID of the domain name used when sending emails. This ID must correspond to a domain already registered with Scaleway's Transactional Email service.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). Specifies the region where the domain is registered. If not specified, it defaults to the provider's region.\n"},"timeout":{"type":"integer","description":"The maximum wait time in seconds before returning an error if the domain validation does not complete. The default is 300 seconds.\n"},"validated":{"type":"boolean","description":"Indicates if the domain has been verified for email sending. This is computed after the creation or update of the domain validation resource.\n"}},"required":["domainId","validated"],"inputProperties":{"domainId":{"type":"string","description":"The ID of the domain name used when sending emails. This ID must correspond to a domain already registered with Scaleway's Transactional Email service.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). Specifies the region where the domain is registered. If not specified, it defaults to the provider's region.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The maximum wait time in seconds before returning an error if the domain validation does not complete. The default is 300 seconds.\n","willReplaceOnChanges":true}},"requiredInputs":["domainId"],"stateInputs":{"description":"Input properties used for looking up and filtering TemDomainValidation resources.\n","properties":{"domainId":{"type":"string","description":"The ID of the domain name used when sending emails. This ID must correspond to a domain already registered with Scaleway's Transactional Email service.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). Specifies the region where the domain is registered. If not specified, it defaults to the provider's region.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The maximum wait time in seconds before returning an error if the domain validation does not complete. The default is 300 seconds.\n","willReplaceOnChanges":true},"validated":{"type":"boolean","description":"Indicates if the domain has been verified for email sending. This is computed after the creation or update of the domain validation resource.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/temdomainvalidation.TemDomainValidation has been deprecated in favor of scaleway.tem/domainvalidation.DomainValidation"},"scaleway:index/temWebhook:TemWebhook":{"description":"Creates and manages Scaleway Transactional Email Webhooks.\nFor more information, refer to the [API documentation](https://www.scaleway.com/en/developers/api/transactional-email).\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.tem.Webhook(\"main\", {\n    domainId: \"your-domain-id\",\n    eventTypes: [\n        \"email_delivered\",\n        \"email_bounced\",\n    ],\n    snsArn: \"arn:scw:sns:fr-par:project-xxxx:your-sns-topic\",\n    name: \"example-webhook\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.tem.Webhook(\"main\",\n    domain_id=\"your-domain-id\",\n    event_types=[\n        \"email_delivered\",\n        \"email_bounced\",\n    ],\n    sns_arn=\"arn:scw:sns:fr-par:project-xxxx:your-sns-topic\",\n    name=\"example-webhook\")\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.Tem.Webhook(\"main\", new()\n    {\n        DomainId = \"your-domain-id\",\n        EventTypes = new[]\n        {\n            \"email_delivered\",\n            \"email_bounced\",\n        },\n        SnsArn = \"arn:scw:sns:fr-par:project-xxxx:your-sns-topic\",\n        Name = \"example-webhook\",\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/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := tem.NewWebhook(ctx, \"main\", \u0026tem.WebhookArgs{\n\t\t\tDomainId: pulumi.String(\"your-domain-id\"),\n\t\t\tEventTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"email_delivered\"),\n\t\t\t\tpulumi.String(\"email_bounced\"),\n\t\t\t},\n\t\t\tSnsArn: pulumi.String(\"arn:scw:sns:fr-par:project-xxxx:your-sns-topic\"),\n\t\t\tName:   pulumi.String(\"example-webhook\"),\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.tem.Webhook;\nimport com.pulumi.scaleway.tem.WebhookArgs;\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 Webhook(\"main\", WebhookArgs.builder()\n            .domainId(\"your-domain-id\")\n            .eventTypes(            \n                \"email_delivered\",\n                \"email_bounced\")\n            .snsArn(\"arn:scw:sns:fr-par:project-xxxx:your-sns-topic\")\n            .name(\"example-webhook\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:tem:Webhook\n    properties:\n      domainId: your-domain-id\n      eventTypes:\n        - email_delivered\n        - email_bounced\n      snsArn: arn:scw:sns:fr-par:project-xxxx:your-sns-topic\n      name: example-webhook\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Complete Example with Dependencies\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\nconst domainName = config.require(\"domainName\");\nconst sns = new scaleway.mnq.Sns(\"sns\", {});\nconst snsCredentials = new scaleway.mnq.SnsCredentials(\"sns_credentials\", {permissions: {\n    canManage: true,\n}});\nconst snsTopic = new scaleway.mnq.SnsTopic(\"sns_topic\", {\n    name: \"test-mnq-sns-topic-basic\",\n    accessKey: snsCredentials.accessKey,\n    secretKey: snsCredentials.secretKey,\n});\nconst cr01 = new scaleway.tem.Domain(\"cr01\", {\n    name: domainName,\n    acceptTos: true,\n});\nconst spf = new scaleway.domain.Record(\"spf\", {\n    dnsZone: domainName,\n    type: \"TXT\",\n    data: pulumi.interpolate`v=spf1 ${cr01.spfConfig} -all`,\n});\nconst dkim = new scaleway.domain.Record(\"dkim\", {\n    dnsZone: domainName,\n    name: pulumi.interpolate`${cr01.projectId}._domainkey`,\n    type: \"TXT\",\n    data: cr01.dkimConfig,\n});\nconst mx = new scaleway.domain.Record(\"mx\", {\n    dnsZone: domainName,\n    type: \"MX\",\n    data: \".\",\n});\nconst dmarc = new scaleway.domain.Record(\"dmarc\", {\n    dnsZone: domainName,\n    name: cr01.dmarcName,\n    type: \"TXT\",\n    data: cr01.dmarcConfig,\n});\nconst valid = new scaleway.tem.DomainValidation(\"valid\", {\n    domainId: cr01.id,\n    region: cr01.region,\n    timeout: 3600,\n});\nconst webhook = new scaleway.tem.Webhook(\"webhook\", {\n    name: \"example-webhook\",\n    domainId: cr01.id,\n    eventTypes: [\n        \"email_delivered\",\n        \"email_bounced\",\n    ],\n    snsArn: snsTopic.arn,\n}, {\n    dependsOn: [\n        valid,\n        snsTopic,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\ndomain_name = config.require(\"domainName\")\nsns = scaleway.mnq.Sns(\"sns\")\nsns_credentials = scaleway.mnq.SnsCredentials(\"sns_credentials\", permissions={\n    \"can_manage\": True,\n})\nsns_topic = scaleway.mnq.SnsTopic(\"sns_topic\",\n    name=\"test-mnq-sns-topic-basic\",\n    access_key=sns_credentials.access_key,\n    secret_key=sns_credentials.secret_key)\ncr01 = scaleway.tem.Domain(\"cr01\",\n    name=domain_name,\n    accept_tos=True)\nspf = scaleway.domain.Record(\"spf\",\n    dns_zone=domain_name,\n    type=\"TXT\",\n    data=cr01.spf_config.apply(lambda spf_config: f\"v=spf1 {spf_config} -all\"))\ndkim = scaleway.domain.Record(\"dkim\",\n    dns_zone=domain_name,\n    name=cr01.project_id.apply(lambda project_id: f\"{project_id}._domainkey\"),\n    type=\"TXT\",\n    data=cr01.dkim_config)\nmx = scaleway.domain.Record(\"mx\",\n    dns_zone=domain_name,\n    type=\"MX\",\n    data=\".\")\ndmarc = scaleway.domain.Record(\"dmarc\",\n    dns_zone=domain_name,\n    name=cr01.dmarc_name,\n    type=\"TXT\",\n    data=cr01.dmarc_config)\nvalid = scaleway.tem.DomainValidation(\"valid\",\n    domain_id=cr01.id,\n    region=cr01.region,\n    timeout=3600)\nwebhook = scaleway.tem.Webhook(\"webhook\",\n    name=\"example-webhook\",\n    domain_id=cr01.id,\n    event_types=[\n        \"email_delivered\",\n        \"email_bounced\",\n    ],\n    sns_arn=sns_topic.arn,\n    opts = pulumi.ResourceOptions(depends_on=[\n            valid,\n            sns_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 config = new Config();\n    var domainName = config.Require(\"domainName\");\n    var sns = new Scaleway.Mnq.Sns(\"sns\");\n\n    var snsCredentials = new Scaleway.Mnq.SnsCredentials(\"sns_credentials\", new()\n    {\n        Permissions = new Scaleway.Mnq.Inputs.SnsCredentialsPermissionsArgs\n        {\n            CanManage = true,\n        },\n    });\n\n    var snsTopic = new Scaleway.Mnq.SnsTopic(\"sns_topic\", new()\n    {\n        Name = \"test-mnq-sns-topic-basic\",\n        AccessKey = snsCredentials.AccessKey,\n        SecretKey = snsCredentials.SecretKey,\n    });\n\n    var cr01 = new Scaleway.Tem.Domain(\"cr01\", new()\n    {\n        Name = domainName,\n        AcceptTos = true,\n    });\n\n    var spf = new Scaleway.Domain.Record(\"spf\", new()\n    {\n        DnsZone = domainName,\n        Type = \"TXT\",\n        Data = cr01.SpfConfig.Apply(spfConfig =\u003e $\"v=spf1 {spfConfig} -all\"),\n    });\n\n    var dkim = new Scaleway.Domain.Record(\"dkim\", new()\n    {\n        DnsZone = domainName,\n        Name = cr01.ProjectId.Apply(projectId =\u003e $\"{projectId}._domainkey\"),\n        Type = \"TXT\",\n        Data = cr01.DkimConfig,\n    });\n\n    var mx = new Scaleway.Domain.Record(\"mx\", new()\n    {\n        DnsZone = domainName,\n        Type = \"MX\",\n        Data = \".\",\n    });\n\n    var dmarc = new Scaleway.Domain.Record(\"dmarc\", new()\n    {\n        DnsZone = domainName,\n        Name = cr01.DmarcName,\n        Type = \"TXT\",\n        Data = cr01.DmarcConfig,\n    });\n\n    var valid = new Scaleway.Tem.DomainValidation(\"valid\", new()\n    {\n        DomainId = cr01.Id,\n        Region = cr01.Region,\n        Timeout = 3600,\n    });\n\n    var webhook = new Scaleway.Tem.Webhook(\"webhook\", new()\n    {\n        Name = \"example-webhook\",\n        DomainId = cr01.Id,\n        EventTypes = new[]\n        {\n            \"email_delivered\",\n            \"email_bounced\",\n        },\n        SnsArn = snsTopic.Arn,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            valid,\n            snsTopic,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/mnq\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := cfg.Require(\"domainName\")\n\t\t_, err := mnq.NewSns(ctx, \"sns\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsnsCredentials, err := mnq.NewSnsCredentials(ctx, \"sns_credentials\", \u0026mnq.SnsCredentialsArgs{\n\t\t\tPermissions: \u0026mnq.SnsCredentialsPermissionsArgs{\n\t\t\t\tCanManage: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsnsTopic, err := mnq.NewSnsTopic(ctx, \"sns_topic\", \u0026mnq.SnsTopicArgs{\n\t\t\tName:      pulumi.String(\"test-mnq-sns-topic-basic\"),\n\t\t\tAccessKey: snsCredentials.AccessKey,\n\t\t\tSecretKey: snsCredentials.SecretKey,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcr01, err := tem.NewDomain(ctx, \"cr01\", \u0026tem.DomainArgs{\n\t\t\tName:      pulumi.String(domainName),\n\t\t\tAcceptTos: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"spf\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tType:    pulumi.String(\"TXT\"),\n\t\t\tData: cr01.SpfConfig.ApplyT(func(spfConfig string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"v=spf1 %v -all\", spfConfig), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"dkim\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tName: cr01.ProjectId.ApplyT(func(projectId string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v._domainkey\", projectId), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tType: pulumi.String(\"TXT\"),\n\t\t\tData: cr01.DkimConfig,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"mx\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tType:    pulumi.String(\"MX\"),\n\t\t\tData:    pulumi.String(\".\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"dmarc\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tName:    cr01.DmarcName,\n\t\t\tType:    pulumi.String(\"TXT\"),\n\t\t\tData:    cr01.DmarcConfig,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvalid, err := tem.NewDomainValidation(ctx, \"valid\", \u0026tem.DomainValidationArgs{\n\t\t\tDomainId: cr01.ID(),\n\t\t\tRegion:   cr01.Region,\n\t\t\tTimeout:  pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = tem.NewWebhook(ctx, \"webhook\", \u0026tem.WebhookArgs{\n\t\t\tName:     pulumi.String(\"example-webhook\"),\n\t\t\tDomainId: cr01.ID(),\n\t\t\tEventTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"email_delivered\"),\n\t\t\t\tpulumi.String(\"email_bounced\"),\n\t\t\t},\n\t\t\tSnsArn: snsTopic.Arn,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvalid,\n\t\t\tsnsTopic,\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.mnq.Sns;\nimport com.pulumi.scaleway.mnq.SnsCredentials;\nimport com.pulumi.scaleway.mnq.SnsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SnsCredentialsPermissionsArgs;\nimport com.pulumi.scaleway.mnq.SnsTopic;\nimport com.pulumi.scaleway.mnq.SnsTopicArgs;\nimport com.pulumi.scaleway.tem.Domain;\nimport com.pulumi.scaleway.tem.DomainArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.scaleway.tem.DomainValidation;\nimport com.pulumi.scaleway.tem.DomainValidationArgs;\nimport com.pulumi.scaleway.tem.Webhook;\nimport com.pulumi.scaleway.tem.WebhookArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\");\n        var sns = new Sns(\"sns\");\n\n        var snsCredentials = new SnsCredentials(\"snsCredentials\", SnsCredentialsArgs.builder()\n            .permissions(SnsCredentialsPermissionsArgs.builder()\n                .canManage(true)\n                .build())\n            .build());\n\n        var snsTopic = new SnsTopic(\"snsTopic\", SnsTopicArgs.builder()\n            .name(\"test-mnq-sns-topic-basic\")\n            .accessKey(snsCredentials.accessKey())\n            .secretKey(snsCredentials.secretKey())\n            .build());\n\n        var cr01 = new Domain(\"cr01\", DomainArgs.builder()\n            .name(domainName)\n            .acceptTos(true)\n            .build());\n\n        var spf = new Record(\"spf\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .type(\"TXT\")\n            .data(cr01.spfConfig().applyValue(_spfConfig -\u003e String.format(\"v=spf1 %s -all\", _spfConfig)))\n            .build());\n\n        var dkim = new Record(\"dkim\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .name(cr01.projectId().applyValue(_projectId -\u003e String.format(\"%s._domainkey\", _projectId)))\n            .type(\"TXT\")\n            .data(cr01.dkimConfig())\n            .build());\n\n        var mx = new Record(\"mx\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .type(\"MX\")\n            .data(\".\")\n            .build());\n\n        var dmarc = new Record(\"dmarc\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .name(cr01.dmarcName())\n            .type(\"TXT\")\n            .data(cr01.dmarcConfig())\n            .build());\n\n        var valid = new DomainValidation(\"valid\", DomainValidationArgs.builder()\n            .domainId(cr01.id())\n            .region(cr01.region())\n            .timeout(3600)\n            .build());\n\n        var webhook = new Webhook(\"webhook\", WebhookArgs.builder()\n            .name(\"example-webhook\")\n            .domainId(cr01.id())\n            .eventTypes(            \n                \"email_delivered\",\n                \"email_bounced\")\n            .snsArn(snsTopic.arn())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    valid,\n                    snsTopic)\n                .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\nresources:\n  sns:\n    type: scaleway:mnq:Sns\n  snsCredentials:\n    type: scaleway:mnq:SnsCredentials\n    name: sns_credentials\n    properties:\n      permissions:\n        canManage: true\n  snsTopic:\n    type: scaleway:mnq:SnsTopic\n    name: sns_topic\n    properties:\n      name: test-mnq-sns-topic-basic\n      accessKey: ${snsCredentials.accessKey}\n      secretKey: ${snsCredentials.secretKey}\n  cr01:\n    type: scaleway:tem:Domain\n    properties:\n      name: ${domainName}\n      acceptTos: true\n  spf:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      type: TXT\n      data: v=spf1 ${cr01.spfConfig} -all\n  dkim:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      name: ${cr01.projectId}._domainkey\n      type: TXT\n      data: ${cr01.dkimConfig}\n  mx:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      type: MX\n      data: .\n  dmarc:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      name: ${cr01.dmarcName}\n      type: TXT\n      data: ${cr01.dmarcConfig}\n  valid:\n    type: scaleway:tem:DomainValidation\n    properties:\n      domainId: ${cr01.id}\n      region: ${cr01.region}\n      timeout: 3600\n  webhook:\n    type: scaleway:tem:Webhook\n    properties:\n      name: example-webhook\n      domainId: ${cr01.id}\n      eventTypes:\n        - email_delivered\n        - email_bounced\n      snsArn: ${snsTopic.arn}\n    options:\n      dependsOn:\n        - ${valid}\n        - ${snsTopic}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nWebhooks can be imported using the {region}/{id}, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/temWebhook:TemWebhook main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the webhook's creation (RFC 3339 format).\n"},"domainId":{"type":"string","description":"The ID of the domain the webhook is associated with.\n"},"eventTypes":{"type":"array","items":{"type":"string"},"description":"A list of event types that trigger the webhook.\n"},"name":{"type":"string","description":"The name of the webhook. Defaults to an autogenerated name if not provided.\n"},"organizationId":{"type":"string","description":"The ID of the organization the webhook belongs to.\n"},"projectId":{"type":"string","description":"The ID of the project the webhook is associated with.\n"},"region":{"type":"string","description":". The region in which the webhook should be created.\n"},"snsArn":{"type":"string","description":"The Amazon Resource Name (ARN) of the SNS topic.\n"},"updatedAt":{"type":"string","description":"The date and time of the webhook's last update (RFC 3339 format).\n"}},"required":["createdAt","domainId","eventTypes","name","organizationId","projectId","snsArn","updatedAt"],"inputProperties":{"domainId":{"type":"string","description":"The ID of the domain the webhook is associated with.\n","willReplaceOnChanges":true},"eventTypes":{"type":"array","items":{"type":"string"},"description":"A list of event types that trigger the webhook.\n"},"name":{"type":"string","description":"The name of the webhook. Defaults to an autogenerated name if not provided.\n"},"projectId":{"type":"string","description":"The ID of the project the webhook is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":". The region in which the webhook should be created.\n","willReplaceOnChanges":true},"snsArn":{"type":"string","description":"The Amazon Resource Name (ARN) of the SNS topic.\n"}},"requiredInputs":["domainId","eventTypes","snsArn"],"stateInputs":{"description":"Input properties used for looking up and filtering TemWebhook resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the webhook's creation (RFC 3339 format).\n"},"domainId":{"type":"string","description":"The ID of the domain the webhook is associated with.\n","willReplaceOnChanges":true},"eventTypes":{"type":"array","items":{"type":"string"},"description":"A list of event types that trigger the webhook.\n"},"name":{"type":"string","description":"The name of the webhook. Defaults to an autogenerated name if not provided.\n"},"organizationId":{"type":"string","description":"The ID of the organization the webhook belongs to.\n"},"projectId":{"type":"string","description":"The ID of the project the webhook is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":". The region in which the webhook should be created.\n","willReplaceOnChanges":true},"snsArn":{"type":"string","description":"The Amazon Resource Name (ARN) of the SNS topic.\n"},"updatedAt":{"type":"string","description":"The date and time of the webhook's last update (RFC 3339 format).\n"}},"type":"object"},"deprecationMessage":"scaleway.index/temwebhook.TemWebhook has been deprecated in favor of scaleway.tem/webhook.Webhook"},"scaleway:index/vpc:Vpc":{"description":"Creates and manages Scaleway Virtual Private Clouds.\nFor more information, see [the main documentation](https://www.scaleway.com/en/docs/vpc/concepts/).\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.network.Vpc(\"vpc01\", {\n    name: \"my-vpc\",\n    tags: [\n        \"demo\",\n        \"terraform\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\",\n    name=\"my-vpc\",\n    tags=[\n        \"demo\",\n        \"terraform\",\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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my-vpc\",\n        Tags = new[]\n        {\n            \"demo\",\n            \"terraform\",\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewVpc(ctx, \"vpc01\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"my-vpc\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"demo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\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            .tags(            \n                \"demo\",\n                \"terraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my-vpc\n      tags:\n        - demo\n        - terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable routing\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.network.Vpc(\"vpc01\", {\n    name: \"my-vpc\",\n    tags: [\n        \"demo\",\n        \"terraform\",\n        \"routing\",\n    ],\n    enableRouting: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\",\n    name=\"my-vpc\",\n    tags=[\n        \"demo\",\n        \"terraform\",\n        \"routing\",\n    ],\n    enable_routing=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 vpc01 = new Scaleway.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my-vpc\",\n        Tags = new[]\n        {\n            \"demo\",\n            \"terraform\",\n            \"routing\",\n        },\n        EnableRouting = 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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewVpc(ctx, \"vpc01\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"my-vpc\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"demo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\n\t\t\t\tpulumi.String(\"routing\"),\n\t\t\t},\n\t\t\tEnableRouting: 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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\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            .tags(            \n                \"demo\",\n                \"terraform\",\n                \"routing\")\n            .enableRouting(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my-vpc\n      tags:\n        - demo\n        - terraform\n        - routing\n      enableRouting: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVPCs can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/vpc:Vpc vpc_demo fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"Date and time of VPC's creation (RFC 3339 format).\n"},"enableCustomRoutesPropagation":{"type":"boolean","description":"Defines whether the VPC advertises custom routes between its Private Networks. Note that you will not be able to deactivate it afterwards.\n"},"enableRouting":{"type":"boolean","description":"Enable routing between Private Networks in the VPC. Note that you will not be able to deactivate it afterwards.\n"},"isDefault":{"type":"boolean","description":"Defines whether the VPC is the default one for its Project.\n"},"name":{"type":"string","description":"The name for the VPC. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the VPC is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the VPC is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the VPC.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the VPC.\n"},"updatedAt":{"type":"string","description":"Date and time of VPC's last update (RFC 3339 format).\n"}},"required":["createdAt","enableCustomRoutesPropagation","enableRouting","isDefault","name","organizationId","projectId","updatedAt"],"inputProperties":{"enableCustomRoutesPropagation":{"type":"boolean","description":"Defines whether the VPC advertises custom routes between its Private Networks. Note that you will not be able to deactivate it afterwards.\n"},"enableRouting":{"type":"boolean","description":"Enable routing between Private Networks in the VPC. Note that you will not be able to deactivate it afterwards.\n"},"name":{"type":"string","description":"The name for the VPC. If not provided it will be randomly generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the VPC is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the VPC.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the VPC.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Vpc resources.\n","properties":{"createdAt":{"type":"string","description":"Date and time of VPC's creation (RFC 3339 format).\n"},"enableCustomRoutesPropagation":{"type":"boolean","description":"Defines whether the VPC advertises custom routes between its Private Networks. Note that you will not be able to deactivate it afterwards.\n"},"enableRouting":{"type":"boolean","description":"Enable routing between Private Networks in the VPC. Note that you will not be able to deactivate it afterwards.\n"},"isDefault":{"type":"boolean","description":"Defines whether the VPC is the default one for its Project.\n"},"name":{"type":"string","description":"The name for the VPC. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the VPC is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the VPC is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the VPC.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the VPC.\n"},"updatedAt":{"type":"string","description":"Date and time of VPC's last update (RFC 3339 format).\n"}},"type":"object"},"deprecationMessage":"scaleway.index/vpc.Vpc has been deprecated in favor of scaleway.network/vpc.Vpc"},"scaleway:index/vpcGatewayNetwork:VpcGatewayNetwork":{"description":"Creates and manages GatewayNetworks (connections between a Public Gateway and a Private Network).\n\nIt allows the attachment of Private Networks to Public Gateways.\nFor more information, see [the API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#step-3-attach-private-networks-to-the-vpc-public-gateway).\n\n## Example Usage\n\n### Create a GatewayNetwork with IPAM configuration\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"pn_test_network\",\n    ipv4Subnet: {\n        subnet: \"172.16.64.0/22\",\n    },\n    vpcId: vpc01.id,\n});\nconst pg01 = new scaleway.network.PublicGateway(\"pg01\", {\n    name: \"foobar\",\n    type: \"VPC-GW-S\",\n});\nconst main = new scaleway.network.GatewayNetwork(\"main\", {\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n    enableMasquerade: true,\n    ipamConfigs: [{\n        pushDefaultRoute: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"pn_test_network\",\n    ipv4_subnet={\n        \"subnet\": \"172.16.64.0/22\",\n    },\n    vpc_id=vpc01.id)\npg01 = scaleway.network.PublicGateway(\"pg01\",\n    name=\"foobar\",\n    type=\"VPC-GW-S\")\nmain = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=pg01.id,\n    private_network_id=pn01.id,\n    enable_masquerade=True,\n    ipam_configs=[{\n        \"push_default_route\": True,\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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"pn_test_network\",\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.64.0/22\",\n        },\n        VpcId = vpc01.Id,\n    });\n\n    var pg01 = new Scaleway.Network.PublicGateway(\"pg01\", new()\n    {\n        Name = \"foobar\",\n        Type = \"VPC-GW-S\",\n    });\n\n    var main = new Scaleway.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.Id,\n        EnableMasquerade = true,\n        IpamConfigs = new[]\n        {\n            new Scaleway.Network.Inputs.GatewayNetworkIpamConfigArgs\n            {\n                PushDefaultRoute = true,\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"pn_test_network\"),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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\tpg01, err := network.NewPublicGateway(ctx, \"pg01\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        pg01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t\tIpamConfigs: network.GatewayNetworkIpamConfigArray{\n\t\t\t\t\u0026network.GatewayNetworkIpamConfigArgs{\n\t\t\t\t\tPushDefaultRoute: pulumi.Bool(true),\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.GatewayNetworkIpamConfigArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"pn_test_network\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.64.0/22\")\n                .build())\n            .vpcId(vpc01.id())\n            .build());\n\n        var pg01 = new PublicGateway(\"pg01\", PublicGatewayArgs.builder()\n            .name(\"foobar\")\n            .type(\"VPC-GW-S\")\n            .build());\n\n        var main = new GatewayNetwork(\"main\", GatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .enableMasquerade(true)\n            .ipamConfigs(GatewayNetworkIpamConfigArgs.builder()\n                .pushDefaultRoute(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: pn_test_network\n      ipv4Subnet:\n        subnet: 172.16.64.0/22\n      vpcId: ${vpc01.id}\n  pg01:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: foobar\n      type: VPC-GW-S\n  main:\n    type: scaleway:network:GatewayNetwork\n    properties:\n      gatewayId: ${pg01.id}\n      privateNetworkId: ${pn01.id}\n      enableMasquerade: true\n      ipamConfigs:\n        - pushDefaultRoute: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a GatewayNetwork with a booked IPAM IP\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"pn_test_network\",\n    ipv4Subnet: {\n        subnet: \"172.16.64.0/22\",\n    },\n    vpcId: vpc01.id,\n});\nconst ip01 = new scaleway.ipam.Ip(\"ip01\", {\n    address: \"172.16.64.7\",\n    sources: [{\n        privateNetworkId: pn01.id,\n    }],\n});\nconst pg01 = new scaleway.network.PublicGateway(\"pg01\", {\n    name: \"foobar\",\n    type: \"VPC-GW-S\",\n});\nconst main = new scaleway.network.GatewayNetwork(\"main\", {\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n    enableMasquerade: true,\n    ipamConfigs: [{\n        pushDefaultRoute: true,\n        ipamIpId: ip01.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"pn_test_network\",\n    ipv4_subnet={\n        \"subnet\": \"172.16.64.0/22\",\n    },\n    vpc_id=vpc01.id)\nip01 = scaleway.ipam.Ip(\"ip01\",\n    address=\"172.16.64.7\",\n    sources=[{\n        \"private_network_id\": pn01.id,\n    }])\npg01 = scaleway.network.PublicGateway(\"pg01\",\n    name=\"foobar\",\n    type=\"VPC-GW-S\")\nmain = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=pg01.id,\n    private_network_id=pn01.id,\n    enable_masquerade=True,\n    ipam_configs=[{\n        \"push_default_route\": True,\n        \"ipam_ip_id\": ip01.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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"pn_test_network\",\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.64.0/22\",\n        },\n        VpcId = vpc01.Id,\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Address = \"172.16.64.7\",\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\n            {\n                PrivateNetworkId = pn01.Id,\n            },\n        },\n    });\n\n    var pg01 = new Scaleway.Network.PublicGateway(\"pg01\", new()\n    {\n        Name = \"foobar\",\n        Type = \"VPC-GW-S\",\n    });\n\n    var main = new Scaleway.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.Id,\n        EnableMasquerade = true,\n        IpamConfigs = new[]\n        {\n            new Scaleway.Network.Inputs.GatewayNetworkIpamConfigArgs\n            {\n                PushDefaultRoute = true,\n                IpamIpId = ip01.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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"pn_test_network\"),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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 := ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.64.7\"),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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\tpg01, err := network.NewPublicGateway(ctx, \"pg01\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        pg01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t\tIpamConfigs: network.GatewayNetworkIpamConfigArray{\n\t\t\t\t\u0026network.GatewayNetworkIpamConfigArgs{\n\t\t\t\t\tPushDefaultRoute: pulumi.Bool(true),\n\t\t\t\t\tIpamIpId:         ip01.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.GatewayNetworkIpamConfigArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"pn_test_network\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.64.0/22\")\n                .build())\n            .vpcId(vpc01.id())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .address(\"172.16.64.7\")\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n        var pg01 = new PublicGateway(\"pg01\", PublicGatewayArgs.builder()\n            .name(\"foobar\")\n            .type(\"VPC-GW-S\")\n            .build());\n\n        var main = new GatewayNetwork(\"main\", GatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .enableMasquerade(true)\n            .ipamConfigs(GatewayNetworkIpamConfigArgs.builder()\n                .pushDefaultRoute(true)\n                .ipamIpId(ip01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: pn_test_network\n      ipv4Subnet:\n        subnet: 172.16.64.0/22\n      vpcId: ${vpc01.id}\n  ip01:\n    type: scaleway:ipam:Ip\n    properties:\n      address: 172.16.64.7\n      sources:\n        - privateNetworkId: ${pn01.id}\n  pg01:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: foobar\n      type: VPC-GW-S\n  main:\n    type: scaleway:network:GatewayNetwork\n    properties:\n      gatewayId: ${pg01.id}\n      privateNetworkId: ${pn01.id}\n      enableMasquerade: true\n      ipamConfigs:\n        - pushDefaultRoute: true\n          ipamIpId: ${ip01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nGatewayNetwork can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/vpcGatewayNetwork:VpcGatewayNetwork main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"cleanupDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether to remove DHCP configuration on this GatewayNetwork upon destroy. Requires DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"createdAt":{"type":"string","description":"The date and time of the creation of the GatewayNetwork.\n"},"dhcpId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. The ID of the Public Gateway DHCP configuration. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether a DHCP configuration should be enabled on this GatewayNetwork. Requires a DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableMasquerade":{"type":"boolean","description":"Whether masquerade (dynamic NAT) should be enabled on this GatewayNetwork.\n"},"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n"},"ipamConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:index/VpcGatewayNetworkIpamConfig:VpcGatewayNetworkIpamConfig"},"description":"Auto-configure the GatewayNetwork using Scaleway's IPAM (IP address management service). Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n"},"macAddress":{"type":"string","description":"The MAC address of the GatewayNetwork.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/VpcGatewayNetworkPrivateIp:VpcGatewayNetworkPrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network.\n"},"staticAddress":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Enable DHCP configuration on this GatewayNetwork. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"status":{"type":"string","description":"The status of the Public Gateway's connection to the Private Network.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the GatewayNetwork.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the gateway network should be created.\n\n\u003e **Important:**\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP fields are now deprecated.\nFor more information, please refer to the dedicated guide.\n"}},"required":["cleanupDhcp","createdAt","gatewayId","ipamConfigs","macAddress","privateIps","privateNetworkId","staticAddress","status","updatedAt"],"inputProperties":{"cleanupDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether to remove DHCP configuration on this GatewayNetwork upon destroy. Requires DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"dhcpId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. The ID of the Public Gateway DHCP configuration. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether a DHCP configuration should be enabled on this GatewayNetwork. Requires a DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableMasquerade":{"type":"boolean","description":"Whether masquerade (dynamic NAT) should be enabled on this GatewayNetwork.\n"},"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n","willReplaceOnChanges":true},"ipamConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:index/VpcGatewayNetworkIpamConfig:VpcGatewayNetworkIpamConfig"},"description":"Auto-configure the GatewayNetwork using Scaleway's IPAM (IP address management service). Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/VpcGatewayNetworkPrivateIp:VpcGatewayNetworkPrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network.\n","willReplaceOnChanges":true},"staticAddress":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Enable DHCP configuration on this GatewayNetwork. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the gateway network should be created.\n\n\u003e **Important:**\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP fields are now deprecated.\nFor more information, please refer to the dedicated guide.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayId","privateNetworkId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcGatewayNetwork resources.\n","properties":{"cleanupDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether to remove DHCP configuration on this GatewayNetwork upon destroy. Requires DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"createdAt":{"type":"string","description":"The date and time of the creation of the GatewayNetwork.\n"},"dhcpId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. The ID of the Public Gateway DHCP configuration. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether a DHCP configuration should be enabled on this GatewayNetwork. Requires a DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableMasquerade":{"type":"boolean","description":"Whether masquerade (dynamic NAT) should be enabled on this GatewayNetwork.\n"},"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n","willReplaceOnChanges":true},"ipamConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:index/VpcGatewayNetworkIpamConfig:VpcGatewayNetworkIpamConfig"},"description":"Auto-configure the GatewayNetwork using Scaleway's IPAM (IP address management service). Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n"},"macAddress":{"type":"string","description":"The MAC address of the GatewayNetwork.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:index/VpcGatewayNetworkPrivateIp:VpcGatewayNetworkPrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network.\n","willReplaceOnChanges":true},"staticAddress":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Enable DHCP configuration on this GatewayNetwork. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"status":{"type":"string","description":"The status of the Public Gateway's connection to the Private Network.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the GatewayNetwork.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the gateway network should be created.\n\n\u003e **Important:**\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP fields are now deprecated.\nFor more information, please refer to the dedicated guide.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/vpcgatewaynetwork.VpcGatewayNetwork has been deprecated in favor of scaleway.network/gatewaynetwork.GatewayNetwork"},"scaleway:index/vpcPrivateNetwork:VpcPrivateNetwork":{"description":"Creates and manages Scaleway VPC Private Networks.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/vpc/#private-networks-ac2df4).\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 pnPriv = new scaleway.network.PrivateNetwork(\"pn_priv\", {\n    name: \"subnet_demo\",\n    tags: [\n        \"demo\",\n        \"terraform\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn_priv = scaleway.network.PrivateNetwork(\"pn_priv\",\n    name=\"subnet_demo\",\n    tags=[\n        \"demo\",\n        \"terraform\",\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 pnPriv = new Scaleway.Network.PrivateNetwork(\"pn_priv\", new()\n    {\n        Name = \"subnet_demo\",\n        Tags = new[]\n        {\n            \"demo\",\n            \"terraform\",\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewPrivateNetwork(ctx, \"pn_priv\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"subnet_demo\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"demo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\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 pnPriv = new PrivateNetwork(\"pnPriv\", PrivateNetworkArgs.builder()\n            .name(\"subnet_demo\")\n            .tags(            \n                \"demo\",\n                \"terraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pnPriv:\n    type: scaleway:network:PrivateNetwork\n    name: pn_priv\n    properties:\n      name: subnet_demo\n      tags:\n        - demo\n        - terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With subnets\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst pnPriv = new scaleway.network.PrivateNetwork(\"pn_priv\", {\n    name: \"subnet_demo\",\n    tags: [\n        \"demo\",\n        \"terraform\",\n    ],\n    ipv4Subnet: {\n        subnet: \"192.168.0.0/24\",\n    },\n    ipv6Subnets: [\n        {\n            subnet: \"fd46:78ab:30b8:177c::/64\",\n        },\n        {\n            subnet: \"fd46:78ab:30b8:c7df::/64\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn_priv = scaleway.network.PrivateNetwork(\"pn_priv\",\n    name=\"subnet_demo\",\n    tags=[\n        \"demo\",\n        \"terraform\",\n    ],\n    ipv4_subnet={\n        \"subnet\": \"192.168.0.0/24\",\n    },\n    ipv6_subnets=[\n        {\n            \"subnet\": \"fd46:78ab:30b8:177c::/64\",\n        },\n        {\n            \"subnet\": \"fd46:78ab:30b8:c7df::/64\",\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 pnPriv = new Scaleway.Network.PrivateNetwork(\"pn_priv\", new()\n    {\n        Name = \"subnet_demo\",\n        Tags = new[]\n        {\n            \"demo\",\n            \"terraform\",\n        },\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"192.168.0.0/24\",\n        },\n        Ipv6Subnets = new[]\n        {\n            new Scaleway.Network.Inputs.PrivateNetworkIpv6SubnetArgs\n            {\n                Subnet = \"fd46:78ab:30b8:177c::/64\",\n            },\n            new Scaleway.Network.Inputs.PrivateNetworkIpv6SubnetArgs\n            {\n                Subnet = \"fd46:78ab:30b8:c7df::/64\",\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewPrivateNetwork(ctx, \"pn_priv\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"subnet_demo\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"demo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\n\t\t\t},\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\n\t\t\t\tSubnet: pulumi.String(\"192.168.0.0/24\"),\n\t\t\t},\n\t\t\tIpv6Subnets: network.PrivateNetworkIpv6SubnetArray{\n\t\t\t\t\u0026network.PrivateNetworkIpv6SubnetArgs{\n\t\t\t\t\tSubnet: pulumi.String(\"fd46:78ab:30b8:177c::/64\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.PrivateNetworkIpv6SubnetArgs{\n\t\t\t\t\tSubnet: pulumi.String(\"fd46:78ab:30b8:c7df::/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\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv6SubnetArgs;\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 pnPriv = new PrivateNetwork(\"pnPriv\", PrivateNetworkArgs.builder()\n            .name(\"subnet_demo\")\n            .tags(            \n                \"demo\",\n                \"terraform\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"192.168.0.0/24\")\n                .build())\n            .ipv6Subnets(            \n                PrivateNetworkIpv6SubnetArgs.builder()\n                    .subnet(\"fd46:78ab:30b8:177c::/64\")\n                    .build(),\n                PrivateNetworkIpv6SubnetArgs.builder()\n                    .subnet(\"fd46:78ab:30b8:c7df::/64\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pnPriv:\n    type: scaleway:network:PrivateNetwork\n    name: pn_priv\n    properties:\n      name: subnet_demo\n      tags:\n        - demo\n        - terraform\n      ipv4Subnet:\n        subnet: 192.168.0.0/24\n      ipv6Subnets:\n        - subnet: fd46:78ab:30b8:177c::/64\n        - subnet: fd46:78ab:30b8:c7df::/64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPrivate Networks can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/vpcPrivateNetwork:VpcPrivateNetwork main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the subnet.\n"},"enableDefaultRoutePropagation":{"type":"boolean","description":"Defines whether default v4 and v6 routes are propagated for this Private Network.\n"},"ipv4Subnet":{"$ref":"#/types/scaleway:index/VpcPrivateNetworkIpv4Subnet:VpcPrivateNetworkIpv4Subnet","description":"The IPv4 subnet to associate with the Private Network.\n"},"ipv6Subnets":{"type":"array","items":{"$ref":"#/types/scaleway:index/VpcPrivateNetworkIpv6Subnet:VpcPrivateNetworkIpv6Subnet"},"description":"The IPv6 subnets to associate with the private network.\n"},"isRegional":{"type":"boolean","description":"Private Networks are now all necessarily regional.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version"},"name":{"type":"string","description":"The name of the Private Network. If not provided, it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the Private Network is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the private network is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Private Network.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Private Network.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet.\n"},"vpcId":{"type":"string","description":"The VPC in which to create the Private Network.\n"},"zone":{"type":"string","description":"Use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version, please use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead"}},"required":["createdAt","enableDefaultRoutePropagation","ipv4Subnet","ipv6Subnets","isRegional","name","organizationId","projectId","updatedAt","vpcId","zone"],"inputProperties":{"enableDefaultRoutePropagation":{"type":"boolean","description":"Defines whether default v4 and v6 routes are propagated for this Private Network.\n"},"ipv4Subnet":{"$ref":"#/types/scaleway:index/VpcPrivateNetworkIpv4Subnet:VpcPrivateNetworkIpv4Subnet","description":"The IPv4 subnet to associate with the Private Network.\n"},"ipv6Subnets":{"type":"array","items":{"$ref":"#/types/scaleway:index/VpcPrivateNetworkIpv6Subnet:VpcPrivateNetworkIpv6Subnet"},"description":"The IPv6 subnets to associate with the private network.\n"},"isRegional":{"type":"boolean","description":"Private Networks are now all necessarily regional.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version"},"name":{"type":"string","description":"The name of the Private Network. If not provided, it will be randomly generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the private network is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Private Network.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Private Network.\n"},"vpcId":{"type":"string","description":"The VPC in which to create the Private Network.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"Use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version, please use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead"}},"stateInputs":{"description":"Input properties used for looking up and filtering VpcPrivateNetwork resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the subnet.\n"},"enableDefaultRoutePropagation":{"type":"boolean","description":"Defines whether default v4 and v6 routes are propagated for this Private Network.\n"},"ipv4Subnet":{"$ref":"#/types/scaleway:index/VpcPrivateNetworkIpv4Subnet:VpcPrivateNetworkIpv4Subnet","description":"The IPv4 subnet to associate with the Private Network.\n"},"ipv6Subnets":{"type":"array","items":{"$ref":"#/types/scaleway:index/VpcPrivateNetworkIpv6Subnet:VpcPrivateNetworkIpv6Subnet"},"description":"The IPv6 subnets to associate with the private network.\n"},"isRegional":{"type":"boolean","description":"Private Networks are now all necessarily regional.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version"},"name":{"type":"string","description":"The name of the Private Network. If not provided, it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the Private Network is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the private network is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Private Network.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Private Network.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet.\n"},"vpcId":{"type":"string","description":"The VPC in which to create the Private Network.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"Use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version, please use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead"}},"type":"object"},"deprecationMessage":"scaleway.index/vpcprivatenetwork.VpcPrivateNetwork has been deprecated in favor of scaleway.network/privatenetwork.PrivateNetwork"},"scaleway:index/vpcPublicGateway:VpcPublicGateway":{"description":"Creates and manages Scaleway Public Gateways.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway).\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.network.PublicGateway(\"main\", {\n    name: \"public_gateway_demo\",\n    type: \"VPC-GW-S\",\n    tags: [\n        \"demo\",\n        \"terraform\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGateway(\"main\",\n    name=\"public_gateway_demo\",\n    type=\"VPC-GW-S\",\n    tags=[\n        \"demo\",\n        \"terraform\",\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.Network.PublicGateway(\"main\", new()\n    {\n        Name = \"public_gateway_demo\",\n        Type = \"VPC-GW-S\",\n        Tags = new[]\n        {\n            \"demo\",\n            \"terraform\",\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewPublicGateway(ctx, \"main\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"public_gateway_demo\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"demo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\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.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\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 PublicGateway(\"main\", PublicGatewayArgs.builder()\n            .name(\"public_gateway_demo\")\n            .type(\"VPC-GW-S\")\n            .tags(            \n                \"demo\",\n                \"terraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: public_gateway_demo\n      type: VPC-GW-S\n      tags:\n        - demo\n        - terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateways can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/vpcPublicGateway:VpcPublicGateway main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"allowedIpRanges":{"type":"array","items":{"type":"string"},"description":"Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.\n"},"bandwidth":{"type":"integer","description":"The bandwidth available of the gateway"},"bastionEnabled":{"type":"boolean","description":"Enable SSH bastion on the gateway.\n"},"bastionPort":{"type":"integer","description":"The port on which the SSH bastion will listen.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway.\n"},"enableSmtp":{"type":"boolean","description":"Enable SMTP on the gateway.\n"},"ipId":{"type":"string","description":"Attach an existing flexible IP to the gateway.\n"},"moveToIpam":{"type":"boolean","description":"Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2"},"name":{"type":"string","description":"The name for the Public Gateway. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the public gateway is associated with.\n"},"refreshSshKeys":{"type":"string","description":"Trigger a refresh of the SSH keys on the Public Gateway by changing this field's value.\n"},"status":{"type":"string","description":"The status of the public gateway.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the Public Gateway.\n"},"type":{"type":"string","description":"The gateway type.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway.\n"},"upstreamDnsServers":{"type":"array","items":{"type":"string"},"description":"Override the gateway's default recursive DNS servers, if DNS features are enabled.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway should be created.\n"}},"required":["allowedIpRanges","bandwidth","bastionPort","createdAt","enableSmtp","ipId","name","organizationId","projectId","status","type","updatedAt","upstreamDnsServers"],"inputProperties":{"allowedIpRanges":{"type":"array","items":{"type":"string"},"description":"Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.\n"},"bastionEnabled":{"type":"boolean","description":"Enable SSH bastion on the gateway.\n"},"bastionPort":{"type":"integer","description":"The port on which the SSH bastion will listen.\n"},"enableSmtp":{"type":"boolean","description":"Enable SMTP on the gateway.\n"},"ipId":{"type":"string","description":"Attach an existing flexible IP to the gateway.\n","willReplaceOnChanges":true},"moveToIpam":{"type":"boolean","description":"Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2"},"name":{"type":"string","description":"The name for the Public Gateway. If not provided it will be randomly generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the public gateway is associated with.\n","willReplaceOnChanges":true},"refreshSshKeys":{"type":"string","description":"Trigger a refresh of the SSH keys on the Public Gateway by changing this field's value.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the Public Gateway.\n"},"type":{"type":"string","description":"The gateway type.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcPublicGateway resources.\n","properties":{"allowedIpRanges":{"type":"array","items":{"type":"string"},"description":"Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.\n"},"bandwidth":{"type":"integer","description":"The bandwidth available of the gateway"},"bastionEnabled":{"type":"boolean","description":"Enable SSH bastion on the gateway.\n"},"bastionPort":{"type":"integer","description":"The port on which the SSH bastion will listen.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway.\n"},"enableSmtp":{"type":"boolean","description":"Enable SMTP on the gateway.\n"},"ipId":{"type":"string","description":"Attach an existing flexible IP to the gateway.\n","willReplaceOnChanges":true},"moveToIpam":{"type":"boolean","description":"Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2"},"name":{"type":"string","description":"The name for the Public Gateway. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the public gateway is associated with.\n","willReplaceOnChanges":true},"refreshSshKeys":{"type":"string","description":"Trigger a refresh of the SSH keys on the Public Gateway by changing this field's value.\n"},"status":{"type":"string","description":"The status of the public gateway.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the Public Gateway.\n"},"type":{"type":"string","description":"The gateway type.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway.\n"},"upstreamDnsServers":{"type":"array","items":{"type":"string"},"description":"Override the gateway's default recursive DNS servers, if DNS features are enabled.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/vpcpublicgateway.VpcPublicGateway has been deprecated in favor of scaleway.network/publicgateway.PublicGateway"},"scaleway:index/vpcPublicGatewayDhcp:VpcPublicGatewayDhcp":{"description":"\u003e **Important:**  The resource \u003cspan pulumi-lang-nodejs=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-dotnet=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-go=\"`network.PublicGatewayDhcp`\" pulumi-lang-python=\"`network.PublicGatewayDhcp`\" pulumi-lang-yaml=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-java=\"`scaleway.network.PublicGatewayDhcp`\"\u003e`scaleway.network.PublicGatewayDhcp`\u003c/span\u003e has been deprecated and will no longer be supported.\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.\nFor more information, please refer to the dedicated guide.\n\nCreates and manages Scaleway VPC Public Gateway DHCP configurations.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-c05544).\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.network.PublicGatewayDhcp(\"main\", {subnet: \"192.168.1.0/24\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGatewayDhcp(\"main\", subnet=\"192.168.1.0/24\")\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.Network.PublicGatewayDhcp(\"main\", new()\n    {\n        Subnet = \"192.168.1.0/24\",\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewPublicGatewayDhcp(ctx, \"main\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.1.0/24\"),\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.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\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 PublicGatewayDhcp(\"main\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.1.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGatewayDhcp\n    properties:\n      subnet: 192.168.1.0/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateway DHCP configuration can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/vpcPublicGatewayDhcp:VpcPublicGatewayDhcp main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"address":{"type":"string","description":"The IP address of the DHCP server. This will be the gateway's address in the Private Network.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway DHCP configuration.\n"},"dnsLocalName":{"type":"string","description":"TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to \u003cspan pulumi-lang-nodejs=\"`priv`\" pulumi-lang-dotnet=\"`Priv`\" pulumi-lang-go=\"`priv`\" pulumi-lang-python=\"`priv`\" pulumi-lang-yaml=\"`priv`\" pulumi-lang-java=\"`priv`\"\u003e`priv`\u003c/span\u003e.\n"},"dnsSearches":{"type":"array","items":{"type":"string"},"description":"Additional DNS search paths\n"},"dnsServersOverrides":{"type":"array","items":{"type":"string"},"description":"Override the DNS server list pushed to DHCP clients, instead of the gateway itself.\n"},"enableDynamic":{"type":"boolean","description":"Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway DHCP config is associated with.\n"},"poolHigh":{"type":"string","description":"High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.\n"},"poolLow":{"type":"string","description":"Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway DHCP configuration is associated with.\n"},"pushDefaultRoute":{"type":"boolean","description":"Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n\u003e **Warning**: If you need to setup a default route, it's recommended to use the \u003cspan pulumi-lang-nodejs=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-dotnet=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-go=\"`network.GatewayNetwork`\" pulumi-lang-python=\"`network.GatewayNetwork`\" pulumi-lang-yaml=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-java=\"`scaleway.network.GatewayNetwork`\"\u003e`scaleway.network.GatewayNetwork`\u003c/span\u003e resource instead.\n"},"pushDnsServer":{"type":"boolean","description":"Whether the gateway should push custom DNS servers to clients. This allows for instance hostname \u003e IP resolution. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"rebindTimer":{"type":"integer","description":"After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`validLifetime`\" pulumi-lang-dotnet=\"`ValidLifetime`\" pulumi-lang-go=\"`validLifetime`\" pulumi-lang-python=\"`valid_lifetime`\" pulumi-lang-yaml=\"`validLifetime`\" pulumi-lang-java=\"`validLifetime`\"\u003e`valid_lifetime`\u003c/span\u003e. Defaults to 51m (3060s).\n"},"renewTimer":{"type":"integer","description":"After how long, in seconds, a renewal will be attempted. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`rebindTimer`\" pulumi-lang-dotnet=\"`RebindTimer`\" pulumi-lang-go=\"`rebindTimer`\" pulumi-lang-python=\"`rebind_timer`\" pulumi-lang-yaml=\"`rebindTimer`\" pulumi-lang-java=\"`rebindTimer`\"\u003e`rebind_timer`\u003c/span\u003e. Defaults to 50m (3000s).\n"},"subnet":{"type":"string","description":"The subnet to associate with the Public Gateway DHCP configuration.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway DHCP configuration.\n"},"validLifetime":{"type":"integer","description":"How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n"}},"required":["address","createdAt","dnsLocalName","dnsSearches","dnsServersOverrides","enableDynamic","organizationId","poolHigh","poolLow","projectId","pushDefaultRoute","pushDnsServer","rebindTimer","renewTimer","subnet","updatedAt","validLifetime"],"inputProperties":{"address":{"type":"string","description":"The IP address of the DHCP server. This will be the gateway's address in the Private Network.\n"},"dnsLocalName":{"type":"string","description":"TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to \u003cspan pulumi-lang-nodejs=\"`priv`\" pulumi-lang-dotnet=\"`Priv`\" pulumi-lang-go=\"`priv`\" pulumi-lang-python=\"`priv`\" pulumi-lang-yaml=\"`priv`\" pulumi-lang-java=\"`priv`\"\u003e`priv`\u003c/span\u003e.\n"},"dnsSearches":{"type":"array","items":{"type":"string"},"description":"Additional DNS search paths\n"},"dnsServersOverrides":{"type":"array","items":{"type":"string"},"description":"Override the DNS server list pushed to DHCP clients, instead of the gateway itself.\n"},"enableDynamic":{"type":"boolean","description":"Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"poolHigh":{"type":"string","description":"High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.\n"},"poolLow":{"type":"string","description":"Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway DHCP configuration is associated with.\n","willReplaceOnChanges":true},"pushDefaultRoute":{"type":"boolean","description":"Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n\u003e **Warning**: If you need to setup a default route, it's recommended to use the \u003cspan pulumi-lang-nodejs=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-dotnet=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-go=\"`network.GatewayNetwork`\" pulumi-lang-python=\"`network.GatewayNetwork`\" pulumi-lang-yaml=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-java=\"`scaleway.network.GatewayNetwork`\"\u003e`scaleway.network.GatewayNetwork`\u003c/span\u003e resource instead.\n"},"pushDnsServer":{"type":"boolean","description":"Whether the gateway should push custom DNS servers to clients. This allows for instance hostname \u003e IP resolution. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"rebindTimer":{"type":"integer","description":"After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`validLifetime`\" pulumi-lang-dotnet=\"`ValidLifetime`\" pulumi-lang-go=\"`validLifetime`\" pulumi-lang-python=\"`valid_lifetime`\" pulumi-lang-yaml=\"`validLifetime`\" pulumi-lang-java=\"`validLifetime`\"\u003e`valid_lifetime`\u003c/span\u003e. Defaults to 51m (3060s).\n"},"renewTimer":{"type":"integer","description":"After how long, in seconds, a renewal will be attempted. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`rebindTimer`\" pulumi-lang-dotnet=\"`RebindTimer`\" pulumi-lang-go=\"`rebindTimer`\" pulumi-lang-python=\"`rebind_timer`\" pulumi-lang-yaml=\"`rebindTimer`\" pulumi-lang-java=\"`rebindTimer`\"\u003e`rebind_timer`\u003c/span\u003e. Defaults to 50m (3000s).\n"},"subnet":{"type":"string","description":"The subnet to associate with the Public Gateway DHCP configuration.\n"},"validLifetime":{"type":"integer","description":"How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["subnet"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcPublicGatewayDhcp resources.\n","properties":{"address":{"type":"string","description":"The IP address of the DHCP server. This will be the gateway's address in the Private Network.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway DHCP configuration.\n"},"dnsLocalName":{"type":"string","description":"TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to \u003cspan pulumi-lang-nodejs=\"`priv`\" pulumi-lang-dotnet=\"`Priv`\" pulumi-lang-go=\"`priv`\" pulumi-lang-python=\"`priv`\" pulumi-lang-yaml=\"`priv`\" pulumi-lang-java=\"`priv`\"\u003e`priv`\u003c/span\u003e.\n"},"dnsSearches":{"type":"array","items":{"type":"string"},"description":"Additional DNS search paths\n"},"dnsServersOverrides":{"type":"array","items":{"type":"string"},"description":"Override the DNS server list pushed to DHCP clients, instead of the gateway itself.\n"},"enableDynamic":{"type":"boolean","description":"Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway DHCP config is associated with.\n"},"poolHigh":{"type":"string","description":"High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.\n"},"poolLow":{"type":"string","description":"Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway DHCP configuration is associated with.\n","willReplaceOnChanges":true},"pushDefaultRoute":{"type":"boolean","description":"Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n\u003e **Warning**: If you need to setup a default route, it's recommended to use the \u003cspan pulumi-lang-nodejs=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-dotnet=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-go=\"`network.GatewayNetwork`\" pulumi-lang-python=\"`network.GatewayNetwork`\" pulumi-lang-yaml=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-java=\"`scaleway.network.GatewayNetwork`\"\u003e`scaleway.network.GatewayNetwork`\u003c/span\u003e resource instead.\n"},"pushDnsServer":{"type":"boolean","description":"Whether the gateway should push custom DNS servers to clients. This allows for instance hostname \u003e IP resolution. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"rebindTimer":{"type":"integer","description":"After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`validLifetime`\" pulumi-lang-dotnet=\"`ValidLifetime`\" pulumi-lang-go=\"`validLifetime`\" pulumi-lang-python=\"`valid_lifetime`\" pulumi-lang-yaml=\"`validLifetime`\" pulumi-lang-java=\"`validLifetime`\"\u003e`valid_lifetime`\u003c/span\u003e. Defaults to 51m (3060s).\n"},"renewTimer":{"type":"integer","description":"After how long, in seconds, a renewal will be attempted. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`rebindTimer`\" pulumi-lang-dotnet=\"`RebindTimer`\" pulumi-lang-go=\"`rebindTimer`\" pulumi-lang-python=\"`rebind_timer`\" pulumi-lang-yaml=\"`rebindTimer`\" pulumi-lang-java=\"`rebindTimer`\"\u003e`rebind_timer`\u003c/span\u003e. Defaults to 50m (3000s).\n"},"subnet":{"type":"string","description":"The subnet to associate with the Public Gateway DHCP configuration.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway DHCP configuration.\n"},"validLifetime":{"type":"integer","description":"How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/vpcpublicgatewaydhcp.VpcPublicGatewayDhcp has been deprecated in favor of scaleway.network/publicgatewaydhcp.PublicGatewayDhcp"},"scaleway:index/vpcPublicGatewayDhcpReservation:VpcPublicGatewayDhcpReservation":{"description":"\u003e **Important:**  The resource \u003cspan pulumi-lang-nodejs=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-dotnet=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-go=\"`network.PublicGatewayDhcpReservation`\" pulumi-lang-python=\"`network.PublicGatewayDhcpReservation`\" pulumi-lang-yaml=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-java=\"`scaleway.network.PublicGatewayDhcpReservation`\"\u003e`scaleway.network.PublicGatewayDhcpReservation`\u003c/span\u003e has been deprecated and will no longer be supported.\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.\nYou can use IPAM to manage your IPs. For more information, please refer to the dedicated guide.\n\nCreates and manages [Scaleway DHCP Reservations](https://www.scaleway.com/en/docs/vpc/concepts/#dhcp).\n\nThese static associations are used to assign IP addresses based on the MAC addresses of the resource.\n\nStatically assigned IP addresses should fall within the configured subnet, but be outside of the dynamic range.\n\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-c05544).\n\n[DHCP reservations](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-entries-e40fb6) hold both dynamic DHCP leases (IP addresses dynamically assigned by the gateway to resources) and static user-created DHCP reservations.\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.network.PrivateNetwork(\"main\", {name: \"your_private_network\"});\nconst mainServer = new scaleway.instance.Server(\"main\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    zone: \"fr-par-1\",\n    privateNetworks: [{\n        pnId: main.id,\n    }],\n});\nconst mainPublicGatewayIp = new scaleway.network.PublicGatewayIp(\"main\", {});\nconst mainPublicGatewayDhcp = new scaleway.network.PublicGatewayDhcp(\"main\", {subnet: \"192.168.1.0/24\"});\nconst mainPublicGateway = new scaleway.network.PublicGateway(\"main\", {\n    name: \"foobar\",\n    type: \"VPC-GW-S\",\n    ipId: mainPublicGatewayIp.id,\n});\nconst mainGatewayNetwork = new scaleway.network.GatewayNetwork(\"main\", {\n    gatewayId: mainPublicGateway.id,\n    privateNetworkId: main.id,\n    dhcpId: mainPublicGatewayDhcp.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n}, {\n    dependsOn: [\n        mainPublicGatewayIp,\n        main,\n    ],\n});\nconst mainPublicGatewayDhcpReservation = new scaleway.network.PublicGatewayDhcpReservation(\"main\", {\n    gatewayNetworkId: mainGatewayNetwork.id,\n    macAddress: mainServer.privateNetworks.apply(privateNetworks =\u003e privateNetworks?.[0]?.macAddress),\n    ipAddress: \"192.168.1.1\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PrivateNetwork(\"main\", name=\"your_private_network\")\nmain_server = scaleway.instance.Server(\"main\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    zone=\"fr-par-1\",\n    private_networks=[{\n        \"pn_id\": main.id,\n    }])\nmain_public_gateway_ip = scaleway.network.PublicGatewayIp(\"main\")\nmain_public_gateway_dhcp = scaleway.network.PublicGatewayDhcp(\"main\", subnet=\"192.168.1.0/24\")\nmain_public_gateway = scaleway.network.PublicGateway(\"main\",\n    name=\"foobar\",\n    type=\"VPC-GW-S\",\n    ip_id=main_public_gateway_ip.id)\nmain_gateway_network = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=main_public_gateway.id,\n    private_network_id=main.id,\n    dhcp_id=main_public_gateway_dhcp.id,\n    cleanup_dhcp=True,\n    enable_masquerade=True,\n    opts = pulumi.ResourceOptions(depends_on=[\n            main_public_gateway_ip,\n            main,\n        ]))\nmain_public_gateway_dhcp_reservation = scaleway.network.PublicGatewayDhcpReservation(\"main\",\n    gateway_network_id=main_gateway_network.id,\n    mac_address=main_server.private_networks[0].mac_address,\n    ip_address=\"192.168.1.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Network.PrivateNetwork(\"main\", new()\n    {\n        Name = \"your_private_network\",\n    });\n\n    var mainServer = new Scaleway.Instance.Server(\"main\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        Zone = \"fr-par-1\",\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Instance.Inputs.ServerPrivateNetworkArgs\n            {\n                PnId = main.Id,\n            },\n        },\n    });\n\n    var mainPublicGatewayIp = new Scaleway.Network.PublicGatewayIp(\"main\");\n\n    var mainPublicGatewayDhcp = new Scaleway.Network.PublicGatewayDhcp(\"main\", new()\n    {\n        Subnet = \"192.168.1.0/24\",\n    });\n\n    var mainPublicGateway = new Scaleway.Network.PublicGateway(\"main\", new()\n    {\n        Name = \"foobar\",\n        Type = \"VPC-GW-S\",\n        IpId = mainPublicGatewayIp.Id,\n    });\n\n    var mainGatewayNetwork = new Scaleway.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = mainPublicGateway.Id,\n        PrivateNetworkId = main.Id,\n        DhcpId = mainPublicGatewayDhcp.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            mainPublicGatewayIp,\n            main,\n        },\n    });\n\n    var mainPublicGatewayDhcpReservation = new Scaleway.Network.PublicGatewayDhcpReservation(\"main\", new()\n    {\n        GatewayNetworkId = mainGatewayNetwork.Id,\n        MacAddress = mainServer.PrivateNetworks.Apply(privateNetworks =\u003e privateNetworks[0]?.MacAddress),\n        IpAddress = \"192.168.1.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPrivateNetwork(ctx, \"main\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"your_private_network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainServer, err := instance.NewServer(ctx, \"main\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tZone:  pulumi.String(\"fr-par-1\"),\n\t\t\tPrivateNetworks: instance.ServerPrivateNetworkArray{\n\t\t\t\t\u0026instance.ServerPrivateNetworkArgs{\n\t\t\t\t\tPnId: main.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\tmainPublicGatewayIp, err := network.NewPublicGatewayIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayDhcp, err := network.NewPublicGatewayDhcp(ctx, \"main\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGateway, err := network.NewPublicGateway(ctx, \"main\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: mainPublicGatewayIp.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainGatewayNetwork, err := network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        mainPublicGateway.ID(),\n\t\t\tPrivateNetworkId: main.ID(),\n\t\t\tDhcpId:           mainPublicGatewayDhcp.ID(),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmainPublicGatewayIp,\n\t\t\tmain,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewPublicGatewayDhcpReservation(ctx, \"main\", \u0026network.PublicGatewayDhcpReservationArgs{\n\t\t\tGatewayNetworkId: mainGatewayNetwork.ID(),\n\t\t\tMacAddress: pulumi.String(mainServer.PrivateNetworks.ApplyT(func(privateNetworks []instance.ServerPrivateNetwork) (*string, error) {\n\t\t\t\treturn \u0026privateNetworks[0].MacAddress, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tIpAddress: pulumi.String(\"192.168.1.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.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerPrivateNetworkArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservation;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var main = new PrivateNetwork(\"main\", PrivateNetworkArgs.builder()\n            .name(\"your_private_network\")\n            .build());\n\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .zone(\"fr-par-1\")\n            .privateNetworks(ServerPrivateNetworkArgs.builder()\n                .pnId(main.id())\n                .build())\n            .build());\n\n        var mainPublicGatewayIp = new PublicGatewayIp(\"mainPublicGatewayIp\");\n\n        var mainPublicGatewayDhcp = new PublicGatewayDhcp(\"mainPublicGatewayDhcp\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.1.0/24\")\n            .build());\n\n        var mainPublicGateway = new PublicGateway(\"mainPublicGateway\", PublicGatewayArgs.builder()\n            .name(\"foobar\")\n            .type(\"VPC-GW-S\")\n            .ipId(mainPublicGatewayIp.id())\n            .build());\n\n        var mainGatewayNetwork = new GatewayNetwork(\"mainGatewayNetwork\", GatewayNetworkArgs.builder()\n            .gatewayId(mainPublicGateway.id())\n            .privateNetworkId(main.id())\n            .dhcpId(mainPublicGatewayDhcp.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    mainPublicGatewayIp,\n                    main)\n                .build());\n\n        var mainPublicGatewayDhcpReservation = new PublicGatewayDhcpReservation(\"mainPublicGatewayDhcpReservation\", PublicGatewayDhcpReservationArgs.builder()\n            .gatewayNetworkId(mainGatewayNetwork.id())\n            .macAddress(mainServer.privateNetworks().applyValue(_privateNetworks -\u003e _privateNetworks[0].macAddress()))\n            .ipAddress(\"192.168.1.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: your_private_network\n  mainServer:\n    type: scaleway:instance:Server\n    name: main\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      zone: fr-par-1\n      privateNetworks:\n        - pnId: ${main.id}\n  mainPublicGatewayIp:\n    type: scaleway:network:PublicGatewayIp\n    name: main\n  mainPublicGatewayDhcp:\n    type: scaleway:network:PublicGatewayDhcp\n    name: main\n    properties:\n      subnet: 192.168.1.0/24\n  mainPublicGateway:\n    type: scaleway:network:PublicGateway\n    name: main\n    properties:\n      name: foobar\n      type: VPC-GW-S\n      ipId: ${mainPublicGatewayIp.id}\n  mainGatewayNetwork:\n    type: scaleway:network:GatewayNetwork\n    name: main\n    properties:\n      gatewayId: ${mainPublicGateway.id}\n      privateNetworkId: ${main.id}\n      dhcpId: ${mainPublicGatewayDhcp.id}\n      cleanupDhcp: true\n      enableMasquerade: true\n    options:\n      dependsOn:\n        - ${mainPublicGatewayIp}\n        - ${main}\n  mainPublicGatewayDhcpReservation:\n    type: scaleway:network:PublicGatewayDhcpReservation\n    name: main\n    properties:\n      gatewayNetworkId: ${mainGatewayNetwork.id}\n      macAddress: ${mainServer.privateNetworks[0].macAddress}\n      ipAddress: 192.168.1.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateway DHCP reservation configurations can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/vpcPublicGatewayDhcpReservation:VpcPublicGatewayDhcpReservation 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 Public Gateway DHCP configuration.\n"},"gatewayNetworkId":{"type":"string","description":"The ID of the owning GatewayNetwork.\n"},"hostname":{"type":"string","description":"The hostname of the client machine.\n"},"ipAddress":{"type":"string","description":"The IP address to give to the machine.\n"},"macAddress":{"type":"string","description":"The MAC address for the static entry.\n"},"type":{"type":"string","description":"The reservation type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are \u003cspan pulumi-lang-nodejs=\"`reservation`\" pulumi-lang-dotnet=\"`Reservation`\" pulumi-lang-go=\"`reservation`\" pulumi-lang-python=\"`reservation`\" pulumi-lang-yaml=\"`reservation`\" pulumi-lang-java=\"`reservation`\"\u003e`reservation`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`lease`\" pulumi-lang-dotnet=\"`Lease`\" pulumi-lang-go=\"`lease`\" pulumi-lang-python=\"`lease`\" pulumi-lang-yaml=\"`lease`\" pulumi-lang-java=\"`lease`\"\u003e`lease`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway DHCP configuration.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the public gateway DHCP config should be created.\n"}},"required":["createdAt","gatewayNetworkId","hostname","ipAddress","macAddress","type","updatedAt"],"inputProperties":{"gatewayNetworkId":{"type":"string","description":"The ID of the owning GatewayNetwork.\n"},"ipAddress":{"type":"string","description":"The IP address to give to the machine.\n"},"macAddress":{"type":"string","description":"The MAC address for the static entry.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the public gateway DHCP config should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayNetworkId","ipAddress","macAddress"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcPublicGatewayDhcpReservation resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway DHCP configuration.\n"},"gatewayNetworkId":{"type":"string","description":"The ID of the owning GatewayNetwork.\n"},"hostname":{"type":"string","description":"The hostname of the client machine.\n"},"ipAddress":{"type":"string","description":"The IP address to give to the machine.\n"},"macAddress":{"type":"string","description":"The MAC address for the static entry.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The reservation type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are \u003cspan pulumi-lang-nodejs=\"`reservation`\" pulumi-lang-dotnet=\"`Reservation`\" pulumi-lang-go=\"`reservation`\" pulumi-lang-python=\"`reservation`\" pulumi-lang-yaml=\"`reservation`\" pulumi-lang-java=\"`reservation`\"\u003e`reservation`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`lease`\" pulumi-lang-dotnet=\"`Lease`\" pulumi-lang-go=\"`lease`\" pulumi-lang-python=\"`lease`\" pulumi-lang-yaml=\"`lease`\" pulumi-lang-java=\"`lease`\"\u003e`lease`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway DHCP configuration.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the public gateway DHCP config should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/vpcpublicgatewaydhcpreservation.VpcPublicGatewayDhcpReservation has been deprecated in favor of scaleway.network/publicgatewaydhcpreservation.PublicGatewayDhcpReservation"},"scaleway:index/vpcPublicGatewayIp:VpcPublicGatewayIp":{"description":"Creates and manages Scaleway VPC Public Gateway public (flexible) IP addresses.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-ips-list-ips).\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.network.PublicGatewayIp(\"main\", {reverse: \"tf.example.com\"});\nconst tfA = new scaleway.domain.Record(\"tf_A\", {\n    dnsZone: \"example.com\",\n    name: \"tf\",\n    type: \"A\",\n    data: main.address,\n    ttl: 3600,\n    priority: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGatewayIp(\"main\", reverse=\"tf.example.com\")\ntf_a = scaleway.domain.Record(\"tf_A\",\n    dns_zone=\"example.com\",\n    name=\"tf\",\n    type=\"A\",\n    data=main.address,\n    ttl=3600,\n    priority=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Network.PublicGatewayIp(\"main\", new()\n    {\n        Reverse = \"tf.example.com\",\n    });\n\n    var tfA = new Scaleway.Domain.Record(\"tf_A\", new()\n    {\n        DnsZone = \"example.com\",\n        Name = \"tf\",\n        Type = \"A\",\n        Data = main.Address,\n        Ttl = 3600,\n        Priority = 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/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPublicGatewayIp(ctx, \"main\", \u0026network.PublicGatewayIpArgs{\n\t\t\tReverse: pulumi.String(\"tf.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"tf_A\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"example.com\"),\n\t\t\tName:     pulumi.String(\"tf\"),\n\t\t\tType:     pulumi.String(\"A\"),\n\t\t\tData:     main.Address,\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: 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.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGatewayIpArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\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 PublicGatewayIp(\"main\", PublicGatewayIpArgs.builder()\n            .reverse(\"tf.example.com\")\n            .build());\n\n        var tfA = new Record(\"tfA\", RecordArgs.builder()\n            .dnsZone(\"example.com\")\n            .name(\"tf\")\n            .type(\"A\")\n            .data(main.address())\n            .ttl(3600)\n            .priority(1)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  tfA:\n    type: scaleway:domain:Record\n    name: tf_A\n    properties:\n      dnsZone: example.com\n      name: tf\n      type: A\n      data: ${main.address}\n      ttl: 3600\n      priority: 1\n  main:\n    type: scaleway:network:PublicGatewayIp\n    properties:\n      reverse: tf.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateway IPs can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/vpcPublicGatewayIp:VpcPublicGatewayIp main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"address":{"type":"string","description":"The IP address itself.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway IP.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway IP is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway IP is associated with.\n"},"reverse":{"type":"string","description":"The reverse domain name for the IP address\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Public Gateway IP.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway IP should be created.\n"}},"required":["address","createdAt","organizationId","projectId","reverse","updatedAt"],"inputProperties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse domain name for the IP address\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Public Gateway IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway IP should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering VpcPublicGatewayIp resources.\n","properties":{"address":{"type":"string","description":"The IP address itself.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway IP.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway IP is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse domain name for the IP address\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Public Gateway IP.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway IP should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/vpcpublicgatewayip.VpcPublicGatewayIp has been deprecated in favor of scaleway.network/publicgatewayip.PublicGatewayIp"},"scaleway:index/vpcPublicGatewayIpReverseDns:VpcPublicGatewayIpReverseDns":{"description":"Manages Scaleway Public Gateway public (flexible) IPs' reverse DNS.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-ips-list-ips).\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.network.PublicGatewayIp(\"main\", {});\nconst tfA = new scaleway.domain.Record(\"tf_A\", {\n    dnsZone: \"example.com\",\n    name: \"tf\",\n    type: \"A\",\n    data: main.address,\n    ttl: 3600,\n    priority: 1,\n});\nconst mainPublicGatewayIpReverseDns = new scaleway.network.PublicGatewayIpReverseDns(\"main\", {\n    gatewayIpId: main.id,\n    reverse: \"tf.example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGatewayIp(\"main\")\ntf_a = scaleway.domain.Record(\"tf_A\",\n    dns_zone=\"example.com\",\n    name=\"tf\",\n    type=\"A\",\n    data=main.address,\n    ttl=3600,\n    priority=1)\nmain_public_gateway_ip_reverse_dns = scaleway.network.PublicGatewayIpReverseDns(\"main\",\n    gateway_ip_id=main.id,\n    reverse=\"tf.example.com\")\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.Network.PublicGatewayIp(\"main\");\n\n    var tfA = new Scaleway.Domain.Record(\"tf_A\", new()\n    {\n        DnsZone = \"example.com\",\n        Name = \"tf\",\n        Type = \"A\",\n        Data = main.Address,\n        Ttl = 3600,\n        Priority = 1,\n    });\n\n    var mainPublicGatewayIpReverseDns = new Scaleway.Network.PublicGatewayIpReverseDns(\"main\", new()\n    {\n        GatewayIpId = main.Id,\n        Reverse = \"tf.example.com\",\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/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPublicGatewayIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"tf_A\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"example.com\"),\n\t\t\tName:     pulumi.String(\"tf\"),\n\t\t\tType:     pulumi.String(\"A\"),\n\t\t\tData:     main.Address,\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewPublicGatewayIpReverseDns(ctx, \"main\", \u0026network.PublicGatewayIpReverseDnsArgs{\n\t\t\tGatewayIpId: main.ID(),\n\t\t\tReverse:     pulumi.String(\"tf.example.com\"),\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.network.PublicGatewayIp;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIpReverseDns;\nimport com.pulumi.scaleway.network.PublicGatewayIpReverseDnsArgs;\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 PublicGatewayIp(\"main\");\n\n        var tfA = new Record(\"tfA\", RecordArgs.builder()\n            .dnsZone(\"example.com\")\n            .name(\"tf\")\n            .type(\"A\")\n            .data(main.address())\n            .ttl(3600)\n            .priority(1)\n            .build());\n\n        var mainPublicGatewayIpReverseDns = new PublicGatewayIpReverseDns(\"mainPublicGatewayIpReverseDns\", PublicGatewayIpReverseDnsArgs.builder()\n            .gatewayIpId(main.id())\n            .reverse(\"tf.example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGatewayIp\n  tfA:\n    type: scaleway:domain:Record\n    name: tf_A\n    properties:\n      dnsZone: example.com\n      name: tf\n      type: A\n      data: ${main.address}\n      ttl: 3600\n      priority: 1\n  mainPublicGatewayIpReverseDns:\n    type: scaleway:network:PublicGatewayIpReverseDns\n    name: main\n    properties:\n      gatewayIpId: ${main.id}\n      reverse: tf.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateway IP reverse DNS can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/vpcPublicGatewayIpReverseDns:VpcPublicGatewayIpReverseDns reverse fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"gatewayIpId":{"type":"string","description":"The Public Gateway IP ID\n"},"reverse":{"type":"string","description":"The reverse domain name for this IP address\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n"}},"required":["gatewayIpId","reverse"],"inputProperties":{"gatewayIpId":{"type":"string","description":"The Public Gateway IP ID\n"},"reverse":{"type":"string","description":"The reverse domain name for this IP address\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayIpId","reverse"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcPublicGatewayIpReverseDns resources.\n","properties":{"gatewayIpId":{"type":"string","description":"The Public Gateway IP ID\n"},"reverse":{"type":"string","description":"The reverse domain name for this IP address\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/vpcpublicgatewayipreversedns.VpcPublicGatewayIpReverseDns has been deprecated in favor of scaleway.network/publicgatewayipreversedns.PublicGatewayIpReverseDns"},"scaleway:index/vpcPublicGatewayPatRule:VpcPublicGatewayPatRule":{"description":"Creates and manages Scaleway Public Gateway PAT (Port Address Translation).\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#pat-rules-e75d10).\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 sg01 = new scaleway.instance.SecurityGroup(\"sg01\", {\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n    inboundRules: [{\n        action: \"accept\",\n        port: 22,\n        protocol: \"TCP\",\n    }],\n});\nconst srv01 = new scaleway.instance.Server(\"srv01\", {\n    name: \"my-server\",\n    type: \"PLAY2-NANO\",\n    image: \"ubuntu_jammy\",\n    securityGroupId: sg01.id,\n});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {name: \"my-pn\"});\nconst pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    serverId: srv01.id,\n    privateNetworkId: pn01.id,\n});\nconst dhcp01 = new scaleway.network.PublicGatewayDhcp(\"dhcp01\", {subnet: \"192.168.0.0/24\"});\nconst ip01 = new scaleway.network.PublicGatewayIp(\"ip01\", {});\nconst pg01 = new scaleway.network.PublicGateway(\"pg01\", {\n    name: \"my-pg\",\n    type: \"VPC-GW-S\",\n    ipId: ip01.id,\n});\nconst gn01 = new scaleway.network.GatewayNetwork(\"gn01\", {\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n    dhcpId: dhcp01.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n});\nconst rsv01 = new scaleway.network.PublicGatewayDhcpReservation(\"rsv01\", {\n    gatewayNetworkId: gn01.id,\n    macAddress: pnic01.macAddress,\n    ipAddress: \"192.168.0.7\",\n});\n// PAT rule for SSH traffic\nconst pat01 = new scaleway.network.PublicGatewayPatRule(\"pat01\", {\n    gatewayId: pg01.id,\n    privateIp: rsv01.ipAddress,\n    privatePort: 22,\n    publicPort: 2202,\n    protocol: \"tcp\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsg01 = scaleway.instance.SecurityGroup(\"sg01\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\",\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"port\": 22,\n        \"protocol\": \"TCP\",\n    }])\nsrv01 = scaleway.instance.Server(\"srv01\",\n    name=\"my-server\",\n    type=\"PLAY2-NANO\",\n    image=\"ubuntu_jammy\",\n    security_group_id=sg01.id)\npn01 = scaleway.network.PrivateNetwork(\"pn01\", name=\"my-pn\")\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    server_id=srv01.id,\n    private_network_id=pn01.id)\ndhcp01 = scaleway.network.PublicGatewayDhcp(\"dhcp01\", subnet=\"192.168.0.0/24\")\nip01 = scaleway.network.PublicGatewayIp(\"ip01\")\npg01 = scaleway.network.PublicGateway(\"pg01\",\n    name=\"my-pg\",\n    type=\"VPC-GW-S\",\n    ip_id=ip01.id)\ngn01 = scaleway.network.GatewayNetwork(\"gn01\",\n    gateway_id=pg01.id,\n    private_network_id=pn01.id,\n    dhcp_id=dhcp01.id,\n    cleanup_dhcp=True,\n    enable_masquerade=True)\nrsv01 = scaleway.network.PublicGatewayDhcpReservation(\"rsv01\",\n    gateway_network_id=gn01.id,\n    mac_address=pnic01.mac_address,\n    ip_address=\"192.168.0.7\")\n# PAT rule for SSH traffic\npat01 = scaleway.network.PublicGatewayPatRule(\"pat01\",\n    gateway_id=pg01.id,\n    private_ip=rsv01.ip_address,\n    private_port=22,\n    public_port=2202,\n    protocol=\"tcp\")\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 sg01 = new Scaleway.Instance.SecurityGroup(\"sg01\", new()\n    {\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n        InboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 22,\n                Protocol = \"TCP\",\n            },\n        },\n    });\n\n    var srv01 = new Scaleway.Instance.Server(\"srv01\", new()\n    {\n        Name = \"my-server\",\n        Type = \"PLAY2-NANO\",\n        Image = \"ubuntu_jammy\",\n        SecurityGroupId = sg01.Id,\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"my-pn\",\n    });\n\n    var pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        ServerId = srv01.Id,\n        PrivateNetworkId = pn01.Id,\n    });\n\n    var dhcp01 = new Scaleway.Network.PublicGatewayDhcp(\"dhcp01\", new()\n    {\n        Subnet = \"192.168.0.0/24\",\n    });\n\n    var ip01 = new Scaleway.Network.PublicGatewayIp(\"ip01\");\n\n    var pg01 = new Scaleway.Network.PublicGateway(\"pg01\", new()\n    {\n        Name = \"my-pg\",\n        Type = \"VPC-GW-S\",\n        IpId = ip01.Id,\n    });\n\n    var gn01 = new Scaleway.Network.GatewayNetwork(\"gn01\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.Id,\n        DhcpId = dhcp01.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    });\n\n    var rsv01 = new Scaleway.Network.PublicGatewayDhcpReservation(\"rsv01\", new()\n    {\n        GatewayNetworkId = gn01.Id,\n        MacAddress = pnic01.MacAddress,\n        IpAddress = \"192.168.0.7\",\n    });\n\n    // PAT rule for SSH traffic\n    var pat01 = new Scaleway.Network.PublicGatewayPatRule(\"pat01\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateIp = rsv01.IpAddress,\n        PrivatePort = 22,\n        PublicPort = 2202,\n        Protocol = \"tcp\",\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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsg01, err := instance.NewSecurityGroup(ctx, \"sg01\", \u0026instance.SecurityGroupArgs{\n\t\t\tInboundDefaultPolicy:  pulumi.String(\"drop\"),\n\t\t\tOutboundDefaultPolicy: pulumi.String(\"accept\"),\n\t\t\tInboundRules: instance.SecurityGroupInboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction:   pulumi.String(\"accept\"),\n\t\t\t\t\tPort:     pulumi.Int(22),\n\t\t\t\t\tProtocol: pulumi.String(\"TCP\"),\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\tsrv01, err := instance.NewServer(ctx, \"srv01\", \u0026instance.ServerArgs{\n\t\t\tName:            pulumi.String(\"my-server\"),\n\t\t\tType:            pulumi.String(\"PLAY2-NANO\"),\n\t\t\tImage:           pulumi.String(\"ubuntu_jammy\"),\n\t\t\tSecurityGroupId: sg01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"my-pn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpnic01, err := instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         srv01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdhcp01, err := network.NewPublicGatewayDhcp(ctx, \"dhcp01\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tip01, err := network.NewPublicGatewayIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpg01, err := network.NewPublicGateway(ctx, \"pg01\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"my-pg\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: ip01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgn01, err := network.NewGatewayNetwork(ctx, \"gn01\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        pg01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tDhcpId:           dhcp01.ID(),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trsv01, err := network.NewPublicGatewayDhcpReservation(ctx, \"rsv01\", \u0026network.PublicGatewayDhcpReservationArgs{\n\t\t\tGatewayNetworkId: gn01.ID(),\n\t\t\tMacAddress:       pnic01.MacAddress,\n\t\t\tIpAddress:        pulumi.String(\"192.168.0.7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// PAT rule for SSH traffic\n\t\t_, err = network.NewPublicGatewayPatRule(ctx, \"pat01\", \u0026network.PublicGatewayPatRuleArgs{\n\t\t\tGatewayId:   pg01.ID(),\n\t\t\tPrivateIp:   rsv01.IpAddress,\n\t\t\tPrivatePort: pulumi.Int(22),\n\t\t\tPublicPort:  pulumi.Int(2202),\n\t\t\tProtocol:    pulumi.String(\"tcp\"),\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.instance.SecurityGroup;\nimport com.pulumi.scaleway.instance.SecurityGroupArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupInboundRuleArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservation;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservationArgs;\nimport com.pulumi.scaleway.network.PublicGatewayPatRule;\nimport com.pulumi.scaleway.network.PublicGatewayPatRuleArgs;\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 sg01 = new SecurityGroup(\"sg01\", SecurityGroupArgs.builder()\n            .inboundDefaultPolicy(\"drop\")\n            .outboundDefaultPolicy(\"accept\")\n            .inboundRules(SecurityGroupInboundRuleArgs.builder()\n                .action(\"accept\")\n                .port(22)\n                .protocol(\"TCP\")\n                .build())\n            .build());\n\n        var srv01 = new Server(\"srv01\", ServerArgs.builder()\n            .name(\"my-server\")\n            .type(\"PLAY2-NANO\")\n            .image(\"ubuntu_jammy\")\n            .securityGroupId(sg01.id())\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"my-pn\")\n            .build());\n\n        var pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .serverId(srv01.id())\n            .privateNetworkId(pn01.id())\n            .build());\n\n        var dhcp01 = new PublicGatewayDhcp(\"dhcp01\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.0.0/24\")\n            .build());\n\n        var ip01 = new PublicGatewayIp(\"ip01\");\n\n        var pg01 = new PublicGateway(\"pg01\", PublicGatewayArgs.builder()\n            .name(\"my-pg\")\n            .type(\"VPC-GW-S\")\n            .ipId(ip01.id())\n            .build());\n\n        var gn01 = new GatewayNetwork(\"gn01\", GatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .dhcpId(dhcp01.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build());\n\n        var rsv01 = new PublicGatewayDhcpReservation(\"rsv01\", PublicGatewayDhcpReservationArgs.builder()\n            .gatewayNetworkId(gn01.id())\n            .macAddress(pnic01.macAddress())\n            .ipAddress(\"192.168.0.7\")\n            .build());\n\n        // PAT rule for SSH traffic\n        var pat01 = new PublicGatewayPatRule(\"pat01\", PublicGatewayPatRuleArgs.builder()\n            .gatewayId(pg01.id())\n            .privateIp(rsv01.ipAddress())\n            .privatePort(22)\n            .publicPort(2202)\n            .protocol(\"tcp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sg01:\n    type: scaleway:instance:SecurityGroup\n    properties:\n      inboundDefaultPolicy: drop\n      outboundDefaultPolicy: accept\n      inboundRules:\n        - action: accept\n          port: 22\n          protocol: TCP\n  srv01:\n    type: scaleway:instance:Server\n    properties:\n      name: my-server\n      type: PLAY2-NANO\n      image: ubuntu_jammy\n      securityGroupId: ${sg01.id}\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      serverId: ${srv01.id}\n      privateNetworkId: ${pn01.id}\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: my-pn\n  dhcp01:\n    type: scaleway:network:PublicGatewayDhcp\n    properties:\n      subnet: 192.168.0.0/24\n  ip01:\n    type: scaleway:network:PublicGatewayIp\n  pg01:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: my-pg\n      type: VPC-GW-S\n      ipId: ${ip01.id}\n  gn01:\n    type: scaleway:network:GatewayNetwork\n    properties:\n      gatewayId: ${pg01.id}\n      privateNetworkId: ${pn01.id}\n      dhcpId: ${dhcp01.id}\n      cleanupDhcp: true\n      enableMasquerade: true\n  rsv01:\n    type: scaleway:network:PublicGatewayDhcpReservation\n    properties:\n      gatewayNetworkId: ${gn01.id}\n      macAddress: ${pnic01.macAddress}\n      ipAddress: 192.168.0.7\n  # PAT rule for SSH traffic\n  pat01:\n    type: scaleway:network:PublicGatewayPatRule\n    properties:\n      gatewayId: ${pg01.id}\n      privateIp: ${rsv01.ipAddress}\n      privatePort: 22\n      publicPort: 2202\n      protocol: tcp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateway PAT rule configurations can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/vpcPublicGatewayPatRule:VpcPublicGatewayPatRule 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 PAT rule configuration.\n"},"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n"},"organizationId":{"type":"string","description":"The Organization ID the PAT rule configuration is associated with.\n"},"privateIp":{"type":"string","description":"The private IP address to forward data to.\n"},"privatePort":{"type":"integer","description":"The private port to translate to.\n"},"protocol":{"type":"string","description":"The protocol the rule should apply to. Possible values are \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"},"publicPort":{"type":"integer","description":"The public port to listen on.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the PAT rule configuration.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n"}},"required":["createdAt","gatewayId","organizationId","privateIp","privatePort","publicPort","updatedAt"],"inputProperties":{"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n"},"privateIp":{"type":"string","description":"The private IP address to forward data to.\n"},"privatePort":{"type":"integer","description":"The private port to translate to.\n"},"protocol":{"type":"string","description":"The protocol the rule should apply to. Possible values are \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"},"publicPort":{"type":"integer","description":"The public port to listen on.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayId","privateIp","privatePort","publicPort"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcPublicGatewayPatRule resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the PAT rule configuration.\n"},"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n"},"organizationId":{"type":"string","description":"The Organization ID the PAT rule configuration is associated with.\n"},"privateIp":{"type":"string","description":"The private IP address to forward data to.\n"},"privatePort":{"type":"integer","description":"The private port to translate to.\n"},"protocol":{"type":"string","description":"The protocol the rule should apply to. Possible values are \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"},"publicPort":{"type":"integer","description":"The public port to listen on.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the PAT rule configuration.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/vpcpublicgatewaypatrule.VpcPublicGatewayPatRule has been deprecated in favor of scaleway.network/publicgatewaypatrule.PublicGatewayPatRule"},"scaleway:index/vpcRoute:VpcRoute":{"description":"Creates and manages Scaleway VPC Routes.\nFor more information, see [the main documentation](https://www.scaleway.com/en/docs/vpc/concepts/).\n\n## Example Usage\n\n### With Instance\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.network.Vpc(\"vpc01\", {name: \"tf-vpc-vpn\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"tf-pn-vpn\",\n    ipv4Subnet: {\n        subnet: \"172.16.64.0/22\",\n    },\n    vpcId: vpc01.id,\n});\nconst server01 = new scaleway.instance.Server(\"server01\", {\n    name: \"tf-server-vpn\",\n    type: \"PLAY2-MICRO\",\n    image: \"openvpn\",\n});\nconst pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    privateNetworkId: pn01.id,\n    serverId: server01.id,\n});\nconst rt01 = new scaleway.network.Route(\"rt01\", {\n    vpcId: vpc01.id,\n    description: \"tf-route-vpn\",\n    tags: [\n        \"tf\",\n        \"route\",\n    ],\n    destination: \"10.0.0.0/24\",\n    nexthopResourceId: pnic01.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"tf-vpc-vpn\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"tf-pn-vpn\",\n    ipv4_subnet={\n        \"subnet\": \"172.16.64.0/22\",\n    },\n    vpc_id=vpc01.id)\nserver01 = scaleway.instance.Server(\"server01\",\n    name=\"tf-server-vpn\",\n    type=\"PLAY2-MICRO\",\n    image=\"openvpn\")\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    private_network_id=pn01.id,\n    server_id=server01.id)\nrt01 = scaleway.network.Route(\"rt01\",\n    vpc_id=vpc01.id,\n    description=\"tf-route-vpn\",\n    tags=[\n        \"tf\",\n        \"route\",\n    ],\n    destination=\"10.0.0.0/24\",\n    nexthop_resource_id=pnic01.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 vpc01 = new Scaleway.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"tf-vpc-vpn\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"tf-pn-vpn\",\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.64.0/22\",\n        },\n        VpcId = vpc01.Id,\n    });\n\n    var server01 = new Scaleway.Instance.Server(\"server01\", new()\n    {\n        Name = \"tf-server-vpn\",\n        Type = \"PLAY2-MICRO\",\n        Image = \"openvpn\",\n    });\n\n    var pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        PrivateNetworkId = pn01.Id,\n        ServerId = server01.Id,\n    });\n\n    var rt01 = new Scaleway.Network.Route(\"rt01\", new()\n    {\n        VpcId = vpc01.Id,\n        Description = \"tf-route-vpn\",\n        Tags = new[]\n        {\n            \"tf\",\n            \"route\",\n        },\n        Destination = \"10.0.0.0/24\",\n        NexthopResourceId = pnic01.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"tf-vpc-vpn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"tf-pn-vpn\"),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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\tserver01, err := instance.NewServer(ctx, \"server01\", \u0026instance.ServerArgs{\n\t\t\tName:  pulumi.String(\"tf-server-vpn\"),\n\t\t\tType:  pulumi.String(\"PLAY2-MICRO\"),\n\t\t\tImage: pulumi.String(\"openvpn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpnic01, err := instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tServerId:         server01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewRoute(ctx, \"rt01\", \u0026network.RouteArgs{\n\t\t\tVpcId:       vpc01.ID(),\n\t\t\tDescription: pulumi.String(\"tf-route-vpn\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tf\"),\n\t\t\t\tpulumi.String(\"route\"),\n\t\t\t},\n\t\t\tDestination:       pulumi.String(\"10.0.0.0/24\"),\n\t\t\tNexthopResourceId: pnic01.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.network.Route;\nimport com.pulumi.scaleway.network.RouteArgs;\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(\"tf-vpc-vpn\")\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"tf-pn-vpn\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.64.0/22\")\n                .build())\n            .vpcId(vpc01.id())\n            .build());\n\n        var server01 = new Server(\"server01\", ServerArgs.builder()\n            .name(\"tf-server-vpn\")\n            .type(\"PLAY2-MICRO\")\n            .image(\"openvpn\")\n            .build());\n\n        var pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .privateNetworkId(pn01.id())\n            .serverId(server01.id())\n            .build());\n\n        var rt01 = new Route(\"rt01\", RouteArgs.builder()\n            .vpcId(vpc01.id())\n            .description(\"tf-route-vpn\")\n            .tags(            \n                \"tf\",\n                \"route\")\n            .destination(\"10.0.0.0/24\")\n            .nexthopResourceId(pnic01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: tf-vpc-vpn\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: tf-pn-vpn\n      ipv4Subnet:\n        subnet: 172.16.64.0/22\n      vpcId: ${vpc01.id}\n  server01:\n    type: scaleway:instance:Server\n    properties:\n      name: tf-server-vpn\n      type: PLAY2-MICRO\n      image: openvpn\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      privateNetworkId: ${pn01.id}\n      serverId: ${server01.id}\n  rt01:\n    type: scaleway:network:Route\n    properties:\n      vpcId: ${vpc01.id}\n      description: tf-route-vpn\n      tags:\n        - tf\n        - route\n      destination: 10.0.0.0/24\n      nexthopResourceId: ${pnic01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With Baremetal\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.network.Vpc(\"vpc01\", {name: \"tf-vpc-vpn\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"tf-pn-vpn\",\n    ipv4Subnet: {\n        subnet: \"172.16.64.0/22\",\n    },\n    vpcId: vpc01.id,\n});\nconst myOs = scaleway.elasticmetal.getOs({\n    zone: \"fr-par-2\",\n    name: \"Ubuntu\",\n    version: \"22.04 LTS (Jammy Jellyfish)\",\n});\nconst myOffer = scaleway.elasticmetal.getOffer({\n    zone: \"fr-par-2\",\n    name: \"EM-B112X-SSD\",\n});\nconst privateNetwork = scaleway.elasticmetal.getOption({\n    zone: \"fr-par-2\",\n    name: \"Private Network\",\n});\nconst myKey = scaleway.iam.getSshKey({\n    name: \"main\",\n});\nconst myServer = new scaleway.elasticmetal.Server(\"my_server\", {\n    zone: \"fr-par-2\",\n    offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n    os: myOs.then(myOs =\u003e myOs.osId),\n    sshKeyIds: [myKey.then(myKey =\u003e myKey.id)],\n    options: [{\n        id: privateNetwork.then(privateNetwork =\u003e privateNetwork.optionId),\n    }],\n    privateNetworks: [{\n        id: pn01.id,\n    }],\n});\nconst rt01 = new scaleway.network.Route(\"rt01\", {\n    vpcId: vpc01.id,\n    description: \"tf-route-vpn\",\n    tags: [\n        \"tf\",\n        \"route\",\n    ],\n    destination: \"10.0.0.0/24\",\n    nexthopResourceId: myServer.privateNetworks.apply(privateNetworks =\u003e privateNetworks?.[0]?.mappingId),\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"tf-vpc-vpn\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"tf-pn-vpn\",\n    ipv4_subnet={\n        \"subnet\": \"172.16.64.0/22\",\n    },\n    vpc_id=vpc01.id)\nmy_os = scaleway.elasticmetal.get_os(zone=\"fr-par-2\",\n    name=\"Ubuntu\",\n    version=\"22.04 LTS (Jammy Jellyfish)\")\nmy_offer = scaleway.elasticmetal.get_offer(zone=\"fr-par-2\",\n    name=\"EM-B112X-SSD\")\nprivate_network = scaleway.elasticmetal.get_option(zone=\"fr-par-2\",\n    name=\"Private Network\")\nmy_key = scaleway.iam.get_ssh_key(name=\"main\")\nmy_server = scaleway.elasticmetal.Server(\"my_server\",\n    zone=\"fr-par-2\",\n    offer=my_offer.offer_id,\n    os=my_os.os_id,\n    ssh_key_ids=[my_key.id],\n    options=[{\n        \"id\": private_network.option_id,\n    }],\n    private_networks=[{\n        \"id\": pn01.id,\n    }])\nrt01 = scaleway.network.Route(\"rt01\",\n    vpc_id=vpc01.id,\n    description=\"tf-route-vpn\",\n    tags=[\n        \"tf\",\n        \"route\",\n    ],\n    destination=\"10.0.0.0/24\",\n    nexthop_resource_id=my_server.private_networks[0].mapping_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 vpc01 = new Scaleway.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"tf-vpc-vpn\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"tf-pn-vpn\",\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.64.0/22\",\n        },\n        VpcId = vpc01.Id,\n    });\n\n    var myOs = Scaleway.Elasticmetal.GetOs.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"Ubuntu\",\n        Version = \"22.04 LTS (Jammy Jellyfish)\",\n    });\n\n    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"EM-B112X-SSD\",\n    });\n\n    var privateNetwork = Scaleway.Elasticmetal.GetOption.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"Private Network\",\n    });\n\n    var myKey = Scaleway.Iam.GetSshKey.Invoke(new()\n    {\n        Name = \"main\",\n    });\n\n    var myServer = new Scaleway.Elasticmetal.Server(\"my_server\", new()\n    {\n        Zone = \"fr-par-2\",\n        Offer = myOffer.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        Os = myOs.Apply(getOsResult =\u003e getOsResult.OsId),\n        SshKeyIds = new[]\n        {\n            myKey.Apply(getSshKeyResult =\u003e getSshKeyResult.Id),\n        },\n        Options = new[]\n        {\n            new Scaleway.Elasticmetal.Inputs.ServerOptionArgs\n            {\n                Id = privateNetwork.Apply(getOptionResult =\u003e getOptionResult.OptionId),\n            },\n        },\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Elasticmetal.Inputs.ServerPrivateNetworkArgs\n            {\n                Id = pn01.Id,\n            },\n        },\n    });\n\n    var rt01 = new Scaleway.Network.Route(\"rt01\", new()\n    {\n        VpcId = vpc01.Id,\n        Description = \"tf-route-vpn\",\n        Tags = new[]\n        {\n            \"tf\",\n            \"route\",\n        },\n        Destination = \"10.0.0.0/24\",\n        NexthopResourceId = myServer.PrivateNetworks.Apply(privateNetworks =\u003e privateNetworks[0]?.MappingId),\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/elasticmetal\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"tf-vpc-vpn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"tf-pn-vpn\"),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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\tmyOs, err := elasticmetal.GetOs(ctx, \u0026elasticmetal.GetOsArgs{\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 := elasticmetal.GetOffer(ctx, \u0026elasticmetal.GetOfferArgs{\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 := elasticmetal.GetOption(ctx, \u0026elasticmetal.GetOptionArgs{\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\tmyKey, err := iam.LookupSshKey(ctx, \u0026iam.LookupSshKeyArgs{\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\tmyServer, err := elasticmetal.NewServer(ctx, \"my_server\", \u0026elasticmetal.ServerArgs{\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(myKey.Id),\n\t\t\t},\n\t\t\tOptions: elasticmetal.ServerOptionArray{\n\t\t\t\t\u0026elasticmetal.ServerOptionArgs{\n\t\t\t\t\tId: pulumi.String(privateNetwork.OptionId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPrivateNetworks: elasticmetal.ServerPrivateNetworkArray{\n\t\t\t\t\u0026elasticmetal.ServerPrivateNetworkArgs{\n\t\t\t\t\tId: 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 = network.NewRoute(ctx, \"rt01\", \u0026network.RouteArgs{\n\t\t\tVpcId:       vpc01.ID(),\n\t\t\tDescription: pulumi.String(\"tf-route-vpn\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tf\"),\n\t\t\t\tpulumi.String(\"route\"),\n\t\t\t},\n\t\t\tDestination: pulumi.String(\"10.0.0.0/24\"),\n\t\t\tNexthopResourceId: pulumi.String(myServer.PrivateNetworks.ApplyT(func(privateNetworks []elasticmetal.ServerPrivateNetwork) (*string, error) {\n\t\t\t\treturn \u0026privateNetworks[0].MappingId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOptionArgs;\nimport com.pulumi.scaleway.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetSshKeyArgs;\nimport com.pulumi.scaleway.elasticmetal.Server;\nimport com.pulumi.scaleway.elasticmetal.ServerArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.ServerOptionArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.ServerPrivateNetworkArgs;\nimport com.pulumi.scaleway.network.Route;\nimport com.pulumi.scaleway.network.RouteArgs;\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(\"tf-vpc-vpn\")\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"tf-pn-vpn\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.64.0/22\")\n                .build())\n            .vpcId(vpc01.id())\n            .build());\n\n        final var myOs = ElasticmetalFunctions.getOs(GetOsArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"Ubuntu\")\n            .version(\"22.04 LTS (Jammy Jellyfish)\")\n            .build());\n\n        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"EM-B112X-SSD\")\n            .build());\n\n        final var privateNetwork = ElasticmetalFunctions.getOption(GetOptionArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"Private Network\")\n            .build());\n\n        final var myKey = IamFunctions.getSshKey(GetSshKeyArgs.builder()\n            .name(\"main\")\n            .build());\n\n        var myServer = new Server(\"myServer\", ServerArgs.builder()\n            .zone(\"fr-par-2\")\n            .offer(myOffer.offerId())\n            .os(myOs.osId())\n            .sshKeyIds(myKey.id())\n            .options(ServerOptionArgs.builder()\n                .id(privateNetwork.optionId())\n                .build())\n            .privateNetworks(ServerPrivateNetworkArgs.builder()\n                .id(pn01.id())\n                .build())\n            .build());\n\n        var rt01 = new Route(\"rt01\", RouteArgs.builder()\n            .vpcId(vpc01.id())\n            .description(\"tf-route-vpn\")\n            .tags(            \n                \"tf\",\n                \"route\")\n            .destination(\"10.0.0.0/24\")\n            .nexthopResourceId(myServer.privateNetworks().applyValue(_privateNetworks -\u003e _privateNetworks[0].mappingId()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: tf-vpc-vpn\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: tf-pn-vpn\n      ipv4Subnet:\n        subnet: 172.16.64.0/22\n      vpcId: ${vpc01.id}\n  myServer:\n    type: scaleway:elasticmetal:Server\n    name: my_server\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${myOs.osId}\n      sshKeyIds:\n        - ${myKey.id}\n      options:\n        - id: ${privateNetwork.optionId}\n      privateNetworks:\n        - id: ${pn01.id}\n  rt01:\n    type: scaleway:network:Route\n    properties:\n      vpcId: ${vpc01.id}\n      description: tf-route-vpn\n      tags:\n        - tf\n        - route\n      destination: 10.0.0.0/24\n      nexthopResourceId: ${myServer.privateNetworks[0].mappingId}\nvariables:\n  myOs:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\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:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-2\n        name: EM-B112X-SSD\n  privateNetwork:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOption\n      arguments:\n        zone: fr-par-2\n        name: Private Network\n  myKey:\n    fn::invoke:\n      function: scaleway:iam:getSshKey\n      arguments:\n        name: main\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRoutes can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/vpcRoute:VpcRoute main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the route (RFC 3339 format).\n"},"description":{"type":"string","description":"The route description.\n"},"destination":{"type":"string","description":"The destination of the route.\n"},"nexthopPrivateNetworkId":{"type":"string","description":"The ID of the nexthop private network.\n"},"nexthopResourceId":{"type":"string","description":"The ID of the nexthop resource.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the route.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the route.\n"},"updatedAt":{"type":"string","description":"The date and time of the creation of the route (RFC 3339 format).\n"},"vpcId":{"type":"string","description":"The VPC ID the route belongs to.\n"}},"required":["createdAt","updatedAt","vpcId"],"inputProperties":{"description":{"type":"string","description":"The route description.\n"},"destination":{"type":"string","description":"The destination of the route.\n"},"nexthopPrivateNetworkId":{"type":"string","description":"The ID of the nexthop private network.\n"},"nexthopResourceId":{"type":"string","description":"The ID of the nexthop resource.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the route.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the route.\n"},"vpcId":{"type":"string","description":"The VPC ID the route belongs to.\n","willReplaceOnChanges":true}},"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering VpcRoute resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the route (RFC 3339 format).\n"},"description":{"type":"string","description":"The route description.\n"},"destination":{"type":"string","description":"The destination of the route.\n"},"nexthopPrivateNetworkId":{"type":"string","description":"The ID of the nexthop private network.\n"},"nexthopResourceId":{"type":"string","description":"The ID of the nexthop resource.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the route.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the route.\n"},"updatedAt":{"type":"string","description":"The date and time of the creation of the route (RFC 3339 format).\n"},"vpcId":{"type":"string","description":"The VPC ID the route belongs to.\n","willReplaceOnChanges":true}},"type":"object"},"deprecationMessage":"scaleway.index/vpcroute.VpcRoute has been deprecated in favor of scaleway.network/route.Route"},"scaleway:index/webhosting:Webhosting":{"description":"Creates and manages Scaleway Web Hostings.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/webhosting/hosting-api/).\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 byName = scaleway.hosting.getOffer({\n    name: \"lite\",\n    controlPanel: \"Cpanel\",\n});\nconst main = new scaleway.hosting.Hosting(\"main\", {\n    offerId: byName.then(byName =\u003e byName.offerId),\n    email: \"your@email.com\",\n    domain: \"yourdomain.com\",\n    tags: [\n        \"webhosting\",\n        \"provider\",\n        \"terraform\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nby_name = scaleway.hosting.get_offer(name=\"lite\",\n    control_panel=\"Cpanel\")\nmain = scaleway.hosting.Hosting(\"main\",\n    offer_id=by_name.offer_id,\n    email=\"your@email.com\",\n    domain=\"yourdomain.com\",\n    tags=[\n        \"webhosting\",\n        \"provider\",\n        \"terraform\",\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 byName = Scaleway.Hosting.GetOffer.Invoke(new()\n    {\n        Name = \"lite\",\n        ControlPanel = \"Cpanel\",\n    });\n\n    var main = new Scaleway.Hosting.Hosting(\"main\", new()\n    {\n        OfferId = byName.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        Email = \"your@email.com\",\n        Domain = \"yourdomain.com\",\n        Tags = new[]\n        {\n            \"webhosting\",\n            \"provider\",\n            \"terraform\",\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/hosting\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbyName, err := hosting.GetOffer(ctx, \u0026hosting.GetOfferArgs{\n\t\t\tName:         pulumi.StringRef(\"lite\"),\n\t\t\tControlPanel: pulumi.StringRef(\"Cpanel\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = hosting.NewHosting(ctx, \"main\", \u0026hosting.HostingArgs{\n\t\t\tOfferId: pulumi.String(byName.OfferId),\n\t\t\tEmail:   pulumi.String(\"your@email.com\"),\n\t\t\tDomain:  pulumi.String(\"yourdomain.com\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"webhosting\"),\n\t\t\t\tpulumi.String(\"provider\"),\n\t\t\t\tpulumi.String(\"terraform\"),\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.hosting.HostingFunctions;\nimport com.pulumi.scaleway.hosting.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.hosting.Hosting;\nimport com.pulumi.scaleway.hosting.HostingArgs;\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 byName = HostingFunctions.getOffer(GetOfferArgs.builder()\n            .name(\"lite\")\n            .controlPanel(\"Cpanel\")\n            .build());\n\n        var main = new Hosting(\"main\", HostingArgs.builder()\n            .offerId(byName.offerId())\n            .email(\"your@email.com\")\n            .domain(\"yourdomain.com\")\n            .tags(            \n                \"webhosting\",\n                \"provider\",\n                \"terraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:hosting:Hosting\n    properties:\n      offerId: ${byName.offerId}\n      email: your@email.com\n      domain: yourdomain.com\n      tags:\n        - webhosting\n        - provider\n        - terraform\nvariables:\n  byName:\n    fn::invoke:\n      function: scaleway:hosting:getOffer\n      arguments:\n        name: lite\n        controlPanel: Cpanel\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHostings can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:index/webhosting:Webhosting hosting01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"cpanelUrls":{"type":"array","items":{"$ref":"#/types/scaleway:index/WebhostingCpanelUrl:WebhostingCpanelUrl"},"description":"The URL to connect to cPanel Dashboard and to Webmail interface.\n"},"createdAt":{"type":"string","description":"Date and time of hosting's creation (RFC 3339 format).\n"},"dnsStatus":{"type":"string","description":"The DNS status of the hosting.\n"},"domain":{"type":"string","description":"The domain name of the hosting.\n"},"email":{"type":"string","description":"The contact email of the client for the hosting.\n"},"nameServers":{"type":"array","items":{"$ref":"#/types/scaleway:index/WebhostingNameServer:WebhostingNameServer"},"description":"List of nameservers associated with the webhosting."},"offerId":{"type":"string","description":"The ID of the selected offer for the hosting.\n"},"offerName":{"type":"string","description":"The name of the active offer.\n"},"optionIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the selected options for the hosting.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:index/WebhostingOption:WebhostingOption"},"description":"The active options of the hosting.\n"},"organizationId":{"type":"string","description":"(Deprecated) The organization ID the hosting is associated with.\n","deprecationMessage":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003efield is deprecated and will be removed in the next major version."},"platformHostname":{"type":"string","description":"The hostname of the host platform.\n"},"platformNumber":{"type":"integer","description":"The number of the host platform.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the VPC is associated with.\n"},"records":{"type":"array","items":{"$ref":"#/types/scaleway:index/WebhostingRecord:WebhostingRecord"},"description":"List of DNS records associated with the webhosting."},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Hosting.\n"},"status":{"type":"string","description":"The hosting status.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the hosting.\n"},"updatedAt":{"type":"string","description":"Date and time of hosting's last update (RFC 3339 format).\n"},"username":{"type":"string","description":"The main hosting cPanel username.\n"}},"required":["cpanelUrls","createdAt","dnsStatus","domain","email","nameServers","offerId","offerName","options","organizationId","platformHostname","platformNumber","projectId","records","status","tags","updatedAt","username"],"inputProperties":{"domain":{"type":"string","description":"The domain name of the hosting.\n"},"email":{"type":"string","description":"The contact email of the client for the hosting.\n"},"offerId":{"type":"string","description":"The ID of the selected offer for the hosting.\n"},"optionIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the selected options for the hosting.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the VPC is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Hosting.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the hosting.\n"}},"requiredInputs":["domain","email","offerId"],"stateInputs":{"description":"Input properties used for looking up and filtering Webhosting resources.\n","properties":{"cpanelUrls":{"type":"array","items":{"$ref":"#/types/scaleway:index/WebhostingCpanelUrl:WebhostingCpanelUrl"},"description":"The URL to connect to cPanel Dashboard and to Webmail interface.\n"},"createdAt":{"type":"string","description":"Date and time of hosting's creation (RFC 3339 format).\n"},"dnsStatus":{"type":"string","description":"The DNS status of the hosting.\n"},"domain":{"type":"string","description":"The domain name of the hosting.\n"},"email":{"type":"string","description":"The contact email of the client for the hosting.\n"},"nameServers":{"type":"array","items":{"$ref":"#/types/scaleway:index/WebhostingNameServer:WebhostingNameServer"},"description":"List of nameservers associated with the webhosting."},"offerId":{"type":"string","description":"The ID of the selected offer for the hosting.\n"},"offerName":{"type":"string","description":"The name of the active offer.\n"},"optionIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the selected options for the hosting.\n"},"options":{"type":"array","items":{"$ref":"#/types/scaleway:index/WebhostingOption:WebhostingOption"},"description":"The active options of the hosting.\n"},"organizationId":{"type":"string","description":"(Deprecated) The organization ID the hosting is associated with.\n","deprecationMessage":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003efield is deprecated and will be removed in the next major version."},"platformHostname":{"type":"string","description":"The hostname of the host platform.\n"},"platformNumber":{"type":"integer","description":"The number of the host platform.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the VPC is associated with.\n","willReplaceOnChanges":true},"records":{"type":"array","items":{"$ref":"#/types/scaleway:index/WebhostingRecord:WebhostingRecord"},"description":"List of DNS records associated with the webhosting."},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Hosting.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The hosting status.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the hosting.\n"},"updatedAt":{"type":"string","description":"Date and time of hosting's last update (RFC 3339 format).\n"},"username":{"type":"string","description":"The main hosting cPanel username.\n"}},"type":"object"},"deprecationMessage":"scaleway.index/webhosting.Webhosting has been deprecated in favor of scaleway.hosting/hosting.Hosting"},"scaleway:inference/deployment:Deployment":{"description":"Creates and manages Scaleway Managed Inference deployments.\nFor more information, see the [API 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 myModel = scaleway.inference.getModel({\n    name: \"meta/llama-3.1-8b-instruct:fp8\",\n});\nconst deployment = new scaleway.inference.Deployment(\"deployment\", {\n    name: \"tf-inference-deployment\",\n    nodeType: \"L4\",\n    modelName: myModel.then(myModel =\u003e myModel.id),\n    publicEndpoint: {\n        isEnabled: true,\n    },\n    acceptEula: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmy_model = scaleway.inference.get_model(name=\"meta/llama-3.1-8b-instruct:fp8\")\ndeployment = scaleway.inference.Deployment(\"deployment\",\n    name=\"tf-inference-deployment\",\n    node_type=\"L4\",\n    model_name=my_model.id,\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 = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myModel = Scaleway.Inference.GetModel.Invoke(new()\n    {\n        Name = \"meta/llama-3.1-8b-instruct:fp8\",\n    });\n\n    var deployment = new Scaleway.Inference.Deployment(\"deployment\", new()\n    {\n        Name = \"tf-inference-deployment\",\n        NodeType = \"L4\",\n        ModelName = myModel.Apply(getModelResult =\u003e getModelResult.Id),\n        PublicEndpoint = new Scaleway.Inference.Inputs.DeploymentPublicEndpointArgs\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/inference\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyModel, err := inference.LookupModel(ctx, \u0026inference.LookupModelArgs{\n\t\t\tName: pulumi.StringRef(\"meta/llama-3.1-8b-instruct:fp8\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = inference.NewDeployment(ctx, \"deployment\", \u0026inference.DeploymentArgs{\n\t\t\tName:      pulumi.String(\"tf-inference-deployment\"),\n\t\t\tNodeType:  pulumi.String(\"L4\"),\n\t\t\tModelName: myModel.Id,\n\t\t\tPublicEndpoint: \u0026inference.DeploymentPublicEndpointArgs{\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.inference.InferenceFunctions;\nimport com.pulumi.scaleway.inference.inputs.GetModelArgs;\nimport com.pulumi.scaleway.inference.Deployment;\nimport com.pulumi.scaleway.inference.DeploymentArgs;\nimport com.pulumi.scaleway.inference.inputs.DeploymentPublicEndpointArgs;\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 myModel = InferenceFunctions.getModel(GetModelArgs.builder()\n            .name(\"meta/llama-3.1-8b-instruct:fp8\")\n            .build());\n\n        var deployment = new Deployment(\"deployment\", DeploymentArgs.builder()\n            .name(\"tf-inference-deployment\")\n            .nodeType(\"L4\")\n            .modelName(myModel.id())\n            .publicEndpoint(DeploymentPublicEndpointArgs.builder()\n                .isEnabled(true)\n                .build())\n            .acceptEula(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  deployment:\n    type: scaleway:inference:Deployment\n    properties:\n      name: tf-inference-deployment\n      nodeType: L4\n      modelName: ${myModel.id}\n      publicEndpoint:\n        isEnabled: true\n      acceptEula: true\nvariables:\n  myModel:\n    fn::invoke:\n      function: scaleway:inference:getModel\n      arguments:\n        name: meta/llama-3.1-8b-instruct:fp8\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:inference/deployment:Deployment deployment fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"acceptEula":{"type":"boolean","description":"Some models (e.g Meta Llama) require end-user license agreements. Set \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to accept.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the deployment.\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool.\n"},"modelId":{"type":"string","description":"The model id used for the deployment.\n"},"modelName":{"type":"string","description":"The model name used 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 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:inference/DeploymentPrivateEndpoint:DeploymentPrivateEndpoint","description":"Configuration of the deployment's private endpoint.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:inference/DeploymentPrivateIp:DeploymentPrivateIp"},"description":"The private IPv4 address associated with the deployment.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n"},"publicEndpoint":{"$ref":"#/types/scaleway:inference/DeploymentPublicEndpoint:DeploymentPublicEndpoint","description":"Configuration of the deployment's public endpoint.\n"},"quantization":{"type":"integer","description":"The number of bits each model parameter should be quantized to"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment is created.\n"},"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"}},"required":["createdAt","modelId","modelName","name","nodeType","privateIps","projectId","size","status","updatedAt"],"inputProperties":{"acceptEula":{"type":"boolean","description":"Some models (e.g Meta Llama) require end-user license agreements. Set \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to accept.\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool.\n"},"modelId":{"type":"string","description":"The model id used for the deployment.\n","willReplaceOnChanges":true},"name":{"type":"string","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","willReplaceOnChanges":true},"privateEndpoint":{"$ref":"#/types/scaleway:inference/DeploymentPrivateEndpoint:DeploymentPrivateEndpoint","description":"Configuration of the deployment's private endpoint.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:inference/DeploymentPrivateIp:DeploymentPrivateIp"},"description":"The private IPv4 address associated with the deployment.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n","willReplaceOnChanges":true},"publicEndpoint":{"$ref":"#/types/scaleway:inference/DeploymentPublicEndpoint:DeploymentPublicEndpoint","description":"Configuration of the deployment's public endpoint.\n"},"quantization":{"type":"integer","description":"The number of bits each model parameter should be quantized to"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment is created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the deployment.\n"}},"requiredInputs":["modelId","nodeType"],"stateInputs":{"description":"Input properties used for looking up and filtering Deployment resources.\n","properties":{"acceptEula":{"type":"boolean","description":"Some models (e.g Meta Llama) require end-user license agreements. Set \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to accept.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the deployment.\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool.\n"},"modelId":{"type":"string","description":"The model id used for the deployment.\n","willReplaceOnChanges":true},"modelName":{"type":"string","description":"The model name used 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 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","willReplaceOnChanges":true},"privateEndpoint":{"$ref":"#/types/scaleway:inference/DeploymentPrivateEndpoint:DeploymentPrivateEndpoint","description":"Configuration of the deployment's private endpoint.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:inference/DeploymentPrivateIp:DeploymentPrivateIp"},"description":"The private IPv4 address associated with the deployment.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n","willReplaceOnChanges":true},"publicEndpoint":{"$ref":"#/types/scaleway:inference/DeploymentPublicEndpoint:DeploymentPublicEndpoint","description":"Configuration of the deployment's public endpoint.\n"},"quantization":{"type":"integer","description":"The number of bits each model parameter should be quantized to"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) 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"},"aliases":[{"type":"scaleway:index/inferenceDeployment:InferenceDeployment"}]},"scaleway:inference/model:Model":{"description":"The\u003cspan pulumi-lang-nodejs=\" scaleway.inference.Model \" pulumi-lang-dotnet=\" scaleway.inference.Model \" pulumi-lang-go=\" inference.Model \" pulumi-lang-python=\" inference.Model \" pulumi-lang-yaml=\" scaleway.inference.Model \" pulumi-lang-java=\" scaleway.inference.Model \"\u003e scaleway.inference.Model \u003c/span\u003eresource allows you to upload and manage inference models in the Scaleway Inference ecosystem. Once registered, a model can be used in any\u003cspan pulumi-lang-nodejs=\" scaleway.inference.Deployment \" pulumi-lang-dotnet=\" scaleway.inference.Deployment \" pulumi-lang-go=\" inference.Deployment \" pulumi-lang-python=\" inference.Deployment \" pulumi-lang-yaml=\" scaleway.inference.Deployment \" pulumi-lang-java=\" scaleway.inference.Deployment \"\u003e scaleway.inference.Deployment \u003c/span\u003eresource.\n\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\n//## Basic creation of an inference model\nconst test = new scaleway.inference.Model(\"test\", {\n    name: \"my-awesome-model\",\n    url: \"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\",\n    secret: \"my-secret-token\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Basic creation of an inference model\ntest = scaleway.inference.Model(\"test\",\n    name=\"my-awesome-model\",\n    url=\"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\",\n    secret=\"my-secret-token\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //## Basic creation of an inference model\n    var test = new Scaleway.Inference.Model(\"test\", new()\n    {\n        Name = \"my-awesome-model\",\n        Url = \"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\",\n        Secret = \"my-secret-token\",\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/inference\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Basic creation of an inference model\n\t\t_, err := inference.NewModel(ctx, \"test\", \u0026inference.ModelArgs{\n\t\t\tName:   pulumi.String(\"my-awesome-model\"),\n\t\t\tUrl:    pulumi.String(\"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\"),\n\t\t\tSecret: pulumi.String(\"my-secret-token\"),\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.inference.Model;\nimport com.pulumi.scaleway.inference.ModelArgs;\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        //## Basic creation of an inference model\n        var test = new Model(\"test\", ModelArgs.builder()\n            .name(\"my-awesome-model\")\n            .url(\"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\")\n            .secret(\"my-secret-token\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Basic creation of an inference model\n  test:\n    type: scaleway:inference:Model\n    properties:\n      name: my-awesome-model\n      url: https://huggingface.co/agentica-org/DeepCoder-14B-Preview\n      secret: my-secret-token\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n//## Deploy your own model on your managed inference\nconst myModel = new scaleway.inference.Model(\"my_model\", {\n    name: \"my-awesome-model\",\n    url: \"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\",\n    secret: \"my-secret-token\",\n});\nconst myDeployment = new scaleway.inference.Deployment(\"my_deployment\", {\n    name: \"test-inference-deployment-basic\",\n    nodeType: \"H100\",\n    modelId: myModel.id,\n    publicEndpoint: {\n        isEnabled: true,\n    },\n    acceptEula: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Deploy your own model on your managed inference\nmy_model = scaleway.inference.Model(\"my_model\",\n    name=\"my-awesome-model\",\n    url=\"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\",\n    secret=\"my-secret-token\")\nmy_deployment = scaleway.inference.Deployment(\"my_deployment\",\n    name=\"test-inference-deployment-basic\",\n    node_type=\"H100\",\n    model_id=my_model.id,\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    //## Deploy your own model on your managed inference\n    var myModel = new Scaleway.Inference.Model(\"my_model\", new()\n    {\n        Name = \"my-awesome-model\",\n        Url = \"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\",\n        Secret = \"my-secret-token\",\n    });\n\n    var myDeployment = new Scaleway.Inference.Deployment(\"my_deployment\", new()\n    {\n        Name = \"test-inference-deployment-basic\",\n        NodeType = \"H100\",\n        ModelId = myModel.Id,\n        PublicEndpoint = new Scaleway.Inference.Inputs.DeploymentPublicEndpointArgs\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/inference\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Deploy your own model on your managed inference\n\t\tmyModel, err := inference.NewModel(ctx, \"my_model\", \u0026inference.ModelArgs{\n\t\t\tName:   pulumi.String(\"my-awesome-model\"),\n\t\t\tUrl:    pulumi.String(\"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\"),\n\t\t\tSecret: pulumi.String(\"my-secret-token\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = inference.NewDeployment(ctx, \"my_deployment\", \u0026inference.DeploymentArgs{\n\t\t\tName:     pulumi.String(\"test-inference-deployment-basic\"),\n\t\t\tNodeType: pulumi.String(\"H100\"),\n\t\t\tModelId:  myModel.ID(),\n\t\t\tPublicEndpoint: \u0026inference.DeploymentPublicEndpointArgs{\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.inference.Model;\nimport com.pulumi.scaleway.inference.ModelArgs;\nimport com.pulumi.scaleway.inference.Deployment;\nimport com.pulumi.scaleway.inference.DeploymentArgs;\nimport com.pulumi.scaleway.inference.inputs.DeploymentPublicEndpointArgs;\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        //## Deploy your own model on your managed inference\n        var myModel = new Model(\"myModel\", ModelArgs.builder()\n            .name(\"my-awesome-model\")\n            .url(\"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\")\n            .secret(\"my-secret-token\")\n            .build());\n\n        var myDeployment = new Deployment(\"myDeployment\", DeploymentArgs.builder()\n            .name(\"test-inference-deployment-basic\")\n            .nodeType(\"H100\")\n            .modelId(myModel.id())\n            .publicEndpoint(DeploymentPublicEndpointArgs.builder()\n                .isEnabled(true)\n                .build())\n            .acceptEula(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Deploy your own model on your managed inference\n  myModel:\n    type: scaleway:inference:Model\n    name: my_model\n    properties:\n      name: my-awesome-model\n      url: https://huggingface.co/agentica-org/DeepCoder-14B-Preview\n      secret: my-secret-token\n  myDeployment:\n    type: scaleway:inference:Deployment\n    name: my_deployment\n    properties:\n      name: test-inference-deployment-basic\n      nodeType: H100\n      modelId: ${myModel.id}\n      publicEndpoint:\n        isEnabled: true\n      acceptEula: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n//## Create a model using your model's secret token without storing it in the state\nconst myModelWo = new scaleway.inference.Model(\"my_model_wo\", {\n    name: \"my-awesome-model-wo\",\n    url: \"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\",\n    secretWo: \"my-secret-token\",\n    secretWoVersion: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Create a model using your model's secret token without storing it in the state\nmy_model_wo = scaleway.inference.Model(\"my_model_wo\",\n    name=\"my-awesome-model-wo\",\n    url=\"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\",\n    secret_wo=\"my-secret-token\",\n    secret_wo_version=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    //## Create a model using your model's secret token without storing it in the state\n    var myModelWo = new Scaleway.Inference.Model(\"my_model_wo\", new()\n    {\n        Name = \"my-awesome-model-wo\",\n        Url = \"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\",\n        SecretWo = \"my-secret-token\",\n        SecretWoVersion = 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/inference\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Create a model using your model's secret token without storing it in the state\n\t\t_, err := inference.NewModel(ctx, \"my_model_wo\", \u0026inference.ModelArgs{\n\t\t\tName:            pulumi.String(\"my-awesome-model-wo\"),\n\t\t\tUrl:             pulumi.String(\"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\"),\n\t\t\tSecretWo:        pulumi.String(\"my-secret-token\"),\n\t\t\tSecretWoVersion: 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.inference.Model;\nimport com.pulumi.scaleway.inference.ModelArgs;\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        //## Create a model using your model's secret token without storing it in the state\n        var myModelWo = new Model(\"myModelWo\", ModelArgs.builder()\n            .name(\"my-awesome-model-wo\")\n            .url(\"https://huggingface.co/agentica-org/DeepCoder-14B-Preview\")\n            .secretWo(\"my-secret-token\")\n            .secretWoVersion(1)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Create a model using your model's secret token without storing it in the state\n  myModelWo:\n    type: scaleway:inference:Model\n    name: my_model_wo\n    properties:\n      name: my-awesome-model-wo\n      url: https://huggingface.co/agentica-org/DeepCoder-14B-Preview\n      secretWo: my-secret-token\n      secretWoVersion: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nModels can be imported using, `{region}/{id}`, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:inference/model:Model my_model fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the model"},"description":{"type":"string","description":"A textual description of the model (if available).\n"},"hasEula":{"type":"boolean","description":"Whether the model requires end-user license agreement acceptance before use.\n"},"name":{"type":"string","description":"The name of the model. This must be unique within the project.\n"},"nodesSupports":{"type":"array","items":{"$ref":"#/types/scaleway:inference/ModelNodesSupport:ModelNodesSupport"},"description":"List of supported node types and their quantization options. Each entry contains:\n"},"parameterSizeBits":{"type":"integer","description":"Size, in bits, of the model parameters.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment is created.\n"},"secret":{"type":"string","description":"Authentication token used to pull the model from a private or gated URL (e.g., a Hugging Face access token with read permission). Conflicts with \u003cspan pulumi-lang-nodejs=\"`secretWo`\" pulumi-lang-dotnet=\"`SecretWo`\" pulumi-lang-go=\"`secretWo`\" pulumi-lang-python=\"`secret_wo`\" pulumi-lang-yaml=\"`secretWo`\" pulumi-lang-java=\"`secretWo`\"\u003e`secret_wo`\u003c/span\u003e.\n","secret":true},"secretWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"secretWoVersion":{"type":"integer","description":"The version of the write-only secret. Required when using \u003cspan pulumi-lang-nodejs=\"`secretWo`\" pulumi-lang-dotnet=\"`SecretWo`\" pulumi-lang-go=\"`secretWo`\" pulumi-lang-python=\"`secret_wo`\" pulumi-lang-yaml=\"`secretWo`\" pulumi-lang-java=\"`secretWo`\"\u003e`secret_wo`\u003c/span\u003e.\n"},"sizeBytes":{"type":"integer","description":"Total size, in bytes, of the model archive.\n"},"status":{"type":"string","description":"The current status of the model (e.g., ready, error, etc.).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the model.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the model"},"url":{"type":"string","description":"The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., \u003chttps://huggingface.co/agentica-org/DeepCoder-14B-Preview\u003e). The URL must be publicly accessible or require valid credentials via \u003cspan pulumi-lang-nodejs=\"`secret`\" pulumi-lang-dotnet=\"`Secret`\" pulumi-lang-go=\"`secret`\" pulumi-lang-python=\"`secret`\" pulumi-lang-yaml=\"`secret`\" pulumi-lang-java=\"`secret`\"\u003e`secret`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`secretWo`\" pulumi-lang-dotnet=\"`SecretWo`\" pulumi-lang-go=\"`secretWo`\" pulumi-lang-python=\"`secret_wo`\" pulumi-lang-yaml=\"`secretWo`\" pulumi-lang-java=\"`secretWo`\"\u003e`secret_wo`\u003c/span\u003e\n"}},"required":["createdAt","description","hasEula","name","nodesSupports","parameterSizeBits","projectId","sizeBytes","status","tags","updatedAt","url"],"inputProperties":{"name":{"type":"string","description":"The name of the model. This must be unique within the project.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment is created.\n","willReplaceOnChanges":true},"secret":{"type":"string","description":"Authentication token used to pull the model from a private or gated URL (e.g., a Hugging Face access token with read permission). Conflicts with \u003cspan pulumi-lang-nodejs=\"`secretWo`\" pulumi-lang-dotnet=\"`SecretWo`\" pulumi-lang-go=\"`secretWo`\" pulumi-lang-python=\"`secret_wo`\" pulumi-lang-yaml=\"`secretWo`\" pulumi-lang-java=\"`secretWo`\"\u003e`secret_wo`\u003c/span\u003e.\n","secret":true,"willReplaceOnChanges":true},"secretWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"secretWoVersion":{"type":"integer","description":"The version of the write-only secret. Required when using \u003cspan pulumi-lang-nodejs=\"`secretWo`\" pulumi-lang-dotnet=\"`SecretWo`\" pulumi-lang-go=\"`secretWo`\" pulumi-lang-python=\"`secret_wo`\" pulumi-lang-yaml=\"`secretWo`\" pulumi-lang-java=\"`secretWo`\"\u003e`secret_wo`\u003c/span\u003e.\n","willReplaceOnChanges":true},"url":{"type":"string","description":"The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., \u003chttps://huggingface.co/agentica-org/DeepCoder-14B-Preview\u003e). The URL must be publicly accessible or require valid credentials via \u003cspan pulumi-lang-nodejs=\"`secret`\" pulumi-lang-dotnet=\"`Secret`\" pulumi-lang-go=\"`secret`\" pulumi-lang-python=\"`secret`\" pulumi-lang-yaml=\"`secret`\" pulumi-lang-java=\"`secret`\"\u003e`secret`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`secretWo`\" pulumi-lang-dotnet=\"`SecretWo`\" pulumi-lang-go=\"`secretWo`\" pulumi-lang-python=\"`secret_wo`\" pulumi-lang-yaml=\"`secretWo`\" pulumi-lang-java=\"`secretWo`\"\u003e`secret_wo`\u003c/span\u003e\n","willReplaceOnChanges":true}},"requiredInputs":["url"],"stateInputs":{"description":"Input properties used for looking up and filtering Model resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the model"},"description":{"type":"string","description":"A textual description of the model (if available).\n"},"hasEula":{"type":"boolean","description":"Whether the model requires end-user license agreement acceptance before use.\n"},"name":{"type":"string","description":"The name of the model. This must be unique within the project.\n","willReplaceOnChanges":true},"nodesSupports":{"type":"array","items":{"$ref":"#/types/scaleway:inference/ModelNodesSupport:ModelNodesSupport"},"description":"List of supported node types and their quantization options. Each entry contains:\n"},"parameterSizeBits":{"type":"integer","description":"Size, in bits, of the model parameters.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment is created.\n","willReplaceOnChanges":true},"secret":{"type":"string","description":"Authentication token used to pull the model from a private or gated URL (e.g., a Hugging Face access token with read permission). Conflicts with \u003cspan pulumi-lang-nodejs=\"`secretWo`\" pulumi-lang-dotnet=\"`SecretWo`\" pulumi-lang-go=\"`secretWo`\" pulumi-lang-python=\"`secret_wo`\" pulumi-lang-yaml=\"`secretWo`\" pulumi-lang-java=\"`secretWo`\"\u003e`secret_wo`\u003c/span\u003e.\n","secret":true,"willReplaceOnChanges":true},"secretWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"secretWoVersion":{"type":"integer","description":"The version of the write-only secret. Required when using \u003cspan pulumi-lang-nodejs=\"`secretWo`\" pulumi-lang-dotnet=\"`SecretWo`\" pulumi-lang-go=\"`secretWo`\" pulumi-lang-python=\"`secret_wo`\" pulumi-lang-yaml=\"`secretWo`\" pulumi-lang-java=\"`secretWo`\"\u003e`secret_wo`\u003c/span\u003e.\n","willReplaceOnChanges":true},"sizeBytes":{"type":"integer","description":"Total size, in bytes, of the model archive.\n"},"status":{"type":"string","description":"The current status of the model (e.g., ready, error, etc.).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the model.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the model"},"url":{"type":"string","description":"The HTTPS source URL from which the model will be downloaded. This is typically a Hugging Face repository URL (e.g., \u003chttps://huggingface.co/agentica-org/DeepCoder-14B-Preview\u003e). The URL must be publicly accessible or require valid credentials via \u003cspan pulumi-lang-nodejs=\"`secret`\" pulumi-lang-dotnet=\"`Secret`\" pulumi-lang-go=\"`secret`\" pulumi-lang-python=\"`secret`\" pulumi-lang-yaml=\"`secret`\" pulumi-lang-java=\"`secret`\"\u003e`secret`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`secretWo`\" pulumi-lang-dotnet=\"`SecretWo`\" pulumi-lang-go=\"`secretWo`\" pulumi-lang-python=\"`secret_wo`\" pulumi-lang-yaml=\"`secretWo`\" pulumi-lang-java=\"`secretWo`\"\u003e`secret_wo`\u003c/span\u003e\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:instance/image:Image":{"description":"Creates and manages Scaleway Compute Images.\nFor more information, see the [API 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.instance.Volume(\"volume\", {\n    type: \"b_ssd\",\n    sizeInGb: 20,\n});\nconst volumeSnapshot = new scaleway.instance.Snapshot(\"volume_snapshot\", {volumeId: volume.id});\nconst volumeImage = new scaleway.instance.Image(\"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.instance.Volume(\"volume\",\n    type=\"b_ssd\",\n    size_in_gb=20)\nvolume_snapshot = scaleway.instance.Snapshot(\"volume_snapshot\", volume_id=volume.id)\nvolume_image = scaleway.instance.Image(\"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.Instance.Volume(\"volume\", new()\n    {\n        Type = \"b_ssd\",\n        SizeInGb = 20,\n    });\n\n    var volumeSnapshot = new Scaleway.Instance.Snapshot(\"volume_snapshot\", new()\n    {\n        VolumeId = volume.Id,\n    });\n\n    var volumeImage = new Scaleway.Instance.Image(\"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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume, err := instance.NewVolume(ctx, \"volume\", \u0026instance.VolumeArgs{\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 := instance.NewSnapshot(ctx, \"volume_snapshot\", \u0026instance.SnapshotArgs{\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 = instance.NewImage(ctx, \"volume_image\", \u0026instance.ImageArgs{\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.instance.Volume;\nimport com.pulumi.scaleway.instance.VolumeArgs;\nimport com.pulumi.scaleway.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\nimport com.pulumi.scaleway.instance.Image;\nimport com.pulumi.scaleway.instance.ImageArgs;\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 Volume(\"volume\", VolumeArgs.builder()\n            .type(\"b_ssd\")\n            .sizeInGb(20)\n            .build());\n\n        var volumeSnapshot = new Snapshot(\"volumeSnapshot\", SnapshotArgs.builder()\n            .volumeId(volume.id())\n            .build());\n\n        var volumeImage = new Image(\"volumeImage\", ImageArgs.builder()\n            .name(\"image_from_volume\")\n            .rootVolumeId(volumeSnapshot.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume:\n    type: scaleway:instance:Volume\n    properties:\n      type: b_ssd\n      sizeInGb: 20\n  volumeSnapshot:\n    type: scaleway:instance:Snapshot\n    name: volume_snapshot\n    properties:\n      volumeId: ${volume.id}\n  volumeImage:\n    type: scaleway:instance:Image\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.instance.Server(\"server\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n});\nconst serverSnapshot = new scaleway.instance.Snapshot(\"server_snapshot\", {volumeId: main.rootVolume[0].volumeId});\nconst serverImage = new scaleway.instance.Image(\"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.instance.Server(\"server\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\")\nserver_snapshot = scaleway.instance.Snapshot(\"server_snapshot\", volume_id=main[\"rootVolume\"][0][\"volumeId\"])\nserver_image = scaleway.instance.Image(\"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.Instance.Server(\"server\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n    });\n\n    var serverSnapshot = new Scaleway.Instance.Snapshot(\"server_snapshot\", new()\n    {\n        VolumeId = main.RootVolume[0].VolumeId,\n    });\n\n    var serverImage = new Scaleway.Instance.Image(\"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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewServer(ctx, \"server\", \u0026instance.ServerArgs{\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 := instance.NewSnapshot(ctx, \"server_snapshot\", \u0026instance.SnapshotArgs{\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 = instance.NewImage(ctx, \"server_image\", \u0026instance.ImageArgs{\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.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\nimport com.pulumi.scaleway.instance.Image;\nimport com.pulumi.scaleway.instance.ImageArgs;\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 Server(\"server\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .build());\n\n        var serverSnapshot = new Snapshot(\"serverSnapshot\", SnapshotArgs.builder()\n            .volumeId(main.rootVolume()[0].volumeId())\n            .build());\n\n        var serverImage = new Image(\"serverImage\", ImageArgs.builder()\n            .name(\"image_from_server\")\n            .rootVolumeId(serverSnapshot.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  server:\n    type: scaleway:instance:Server\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n  serverSnapshot:\n    type: scaleway:instance:Snapshot\n    name: server_snapshot\n    properties:\n      volumeId: ${main.rootVolume[0].volumeId}\n  serverImage:\n    type: scaleway:instance:Image\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```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst server = new scaleway.instance.Server(\"server\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n});\nconst volume = new scaleway.instance.Volume(\"volume\", {\n    type: \"b_ssd\",\n    sizeInGb: 20,\n});\nconst volumeSnapshot = new scaleway.instance.Snapshot(\"volume_snapshot\", {volumeId: volume.id});\nconst serverSnapshot = new scaleway.instance.Snapshot(\"server_snapshot\", {volumeId: main.rootVolume[0].volumeId});\nconst image = new scaleway.instance.Image(\"image\", {\n    name: \"image_with_extra_volumes\",\n    rootVolumeId: serverSnapshot.id,\n    additionalVolumeIds: [volumeSnapshot.id],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver = scaleway.instance.Server(\"server\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\")\nvolume = scaleway.instance.Volume(\"volume\",\n    type=\"b_ssd\",\n    size_in_gb=20)\nvolume_snapshot = scaleway.instance.Snapshot(\"volume_snapshot\", volume_id=volume.id)\nserver_snapshot = scaleway.instance.Snapshot(\"server_snapshot\", volume_id=main[\"rootVolume\"][0][\"volumeId\"])\nimage = scaleway.instance.Image(\"image\",\n    name=\"image_with_extra_volumes\",\n    root_volume_id=server_snapshot.id,\n    additional_volume_ids=[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 server = new Scaleway.Instance.Server(\"server\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n    });\n\n    var volume = new Scaleway.Instance.Volume(\"volume\", new()\n    {\n        Type = \"b_ssd\",\n        SizeInGb = 20,\n    });\n\n    var volumeSnapshot = new Scaleway.Instance.Snapshot(\"volume_snapshot\", new()\n    {\n        VolumeId = volume.Id,\n    });\n\n    var serverSnapshot = new Scaleway.Instance.Snapshot(\"server_snapshot\", new()\n    {\n        VolumeId = main.RootVolume[0].VolumeId,\n    });\n\n    var image = new Scaleway.Instance.Image(\"image\", new()\n    {\n        Name = \"image_with_extra_volumes\",\n        RootVolumeId = serverSnapshot.Id,\n        AdditionalVolumeIds = new[]\n        {\n            volumeSnapshot.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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewServer(ctx, \"server\", \u0026instance.ServerArgs{\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\tvolume, err := instance.NewVolume(ctx, \"volume\", \u0026instance.VolumeArgs{\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 := instance.NewSnapshot(ctx, \"volume_snapshot\", \u0026instance.SnapshotArgs{\n\t\t\tVolumeId: volume.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserverSnapshot, err := instance.NewSnapshot(ctx, \"server_snapshot\", \u0026instance.SnapshotArgs{\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 = instance.NewImage(ctx, \"image\", \u0026instance.ImageArgs{\n\t\t\tName:         pulumi.String(\"image_with_extra_volumes\"),\n\t\t\tRootVolumeId: serverSnapshot.ID(),\n\t\t\tAdditionalVolumeIds: pulumi.StringArray{\n\t\t\t\tvolumeSnapshot.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.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.Volume;\nimport com.pulumi.scaleway.instance.VolumeArgs;\nimport com.pulumi.scaleway.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\nimport com.pulumi.scaleway.instance.Image;\nimport com.pulumi.scaleway.instance.ImageArgs;\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 Server(\"server\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .build());\n\n        var volume = new Volume(\"volume\", VolumeArgs.builder()\n            .type(\"b_ssd\")\n            .sizeInGb(20)\n            .build());\n\n        var volumeSnapshot = new Snapshot(\"volumeSnapshot\", SnapshotArgs.builder()\n            .volumeId(volume.id())\n            .build());\n\n        var serverSnapshot = new Snapshot(\"serverSnapshot\", SnapshotArgs.builder()\n            .volumeId(main.rootVolume()[0].volumeId())\n            .build());\n\n        var image = new Image(\"image\", ImageArgs.builder()\n            .name(\"image_with_extra_volumes\")\n            .rootVolumeId(serverSnapshot.id())\n            .additionalVolumeIds(volumeSnapshot.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  server:\n    type: scaleway:instance:Server\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n  volume:\n    type: scaleway:instance:Volume\n    properties:\n      type: b_ssd\n      sizeInGb: 20\n  volumeSnapshot:\n    type: scaleway:instance:Snapshot\n    name: volume_snapshot\n    properties:\n      volumeId: ${volume.id}\n  serverSnapshot:\n    type: scaleway:instance:Snapshot\n    name: server_snapshot\n    properties:\n      volumeId: ${main.rootVolume[0].volumeId}\n  image:\n    type: scaleway:instance:Image\n    properties:\n      name: image_with_extra_volumes\n      rootVolumeId: ${serverSnapshot.id}\n      additionalVolumeIds:\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:instance/image:Image main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"additionalVolumeIds":{"type":"array","items":{"type":"string"},"description":"List of IDs of the snapshots of the additional volumes to be attached to the image.\n"},"additionalVolumes":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ImageAdditionalVolume:ImageAdditionalVolume"},"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: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`arm`\" pulumi-lang-dotnet=\"`Arm`\" pulumi-lang-go=\"`arm`\" pulumi-lang-python=\"`arm`\" pulumi-lang-yaml=\"`arm`\" pulumi-lang-java=\"`arm`\"\u003e`arm`\u003c/span\u003e.\n"},"creationDate":{"type":"string","description":"Date of the image 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 image 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 \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e 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"},"rootVolumes":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ImageRootVolume:ImageRootVolume"},"description":"The description of the root volume attached to the image.\n"},"state":{"type":"string","description":"State of the image. Possible values are: \u003cspan pulumi-lang-nodejs=\"`available`\" pulumi-lang-dotnet=\"`Available`\" pulumi-lang-go=\"`available`\" pulumi-lang-python=\"`available`\" pulumi-lang-yaml=\"`available`\" pulumi-lang-java=\"`available`\"\u003e`available`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e.\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","rootVolumes","rootVolumeId","state"],"inputProperties":{"additionalVolumeIds":{"type":"array","items":{"type":"string"},"description":"List of IDs of the snapshots of the additional volumes to be attached to the image.\n"},"architecture":{"type":"string","description":"The architecture the image is compatible with. Possible values are: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`arm`\" pulumi-lang-dotnet=\"`Arm`\" pulumi-lang-go=\"`arm`\" pulumi-lang-python=\"`arm`\" pulumi-lang-yaml=\"`arm`\" pulumi-lang-java=\"`arm`\"\u003e`arm`\u003c/span\u003e.\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 \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e 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","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}},"requiredInputs":["rootVolumeId"],"stateInputs":{"description":"Input properties used for looking up and filtering Image resources.\n","properties":{"additionalVolumeIds":{"type":"array","items":{"type":"string"},"description":"List of IDs of the snapshots of the additional volumes to be attached to the image.\n"},"additionalVolumes":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ImageAdditionalVolume:ImageAdditionalVolume"},"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: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`arm`\" pulumi-lang-dotnet=\"`Arm`\" pulumi-lang-go=\"`arm`\" pulumi-lang-python=\"`arm`\" pulumi-lang-yaml=\"`arm`\" pulumi-lang-java=\"`arm`\"\u003e`arm`\u003c/span\u003e.\n"},"creationDate":{"type":"string","description":"Date of the image 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 image 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 \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e 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","willReplaceOnChanges":true},"rootVolumes":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ImageRootVolume:ImageRootVolume"},"description":"The description of the root volume attached to the image.\n"},"state":{"type":"string","description":"State of the image. Possible values are: \u003cspan pulumi-lang-nodejs=\"`available`\" pulumi-lang-dotnet=\"`Available`\" pulumi-lang-go=\"`available`\" pulumi-lang-python=\"`available`\" pulumi-lang-yaml=\"`available`\" pulumi-lang-java=\"`available`\"\u003e`available`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e.\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}},"type":"object"},"aliases":[{"type":"scaleway:index/instanceImage:InstanceImage"}]},"scaleway:instance/ip:Ip":{"description":"Creates and manages Scaleway compute Instance IPs. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-ips-list-all-flexible-ips).\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 serverIp = new scaleway.instance.Ip(\"server_ip\", {});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver_ip = scaleway.instance.Ip(\"server_ip\")\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 serverIp = new Scaleway.Instance.Ip(\"server_ip\");\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewIp(ctx, \"server_ip\", 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.instance.Ip;\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 serverIp = new Ip(\"serverIp\");\n\n    }\n}\n```\n```yaml\nresources:\n  serverIp:\n    type: scaleway:instance:Ip\n    name: server_ip\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIPs can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:instance/ip:Ip server_ip fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"address":{"type":"string","description":"The IP address.\n"},"organizationId":{"type":"string","description":"The organization ID the IP is associated with.\n"},"prefix":{"type":"string","description":"The IP Prefix.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is associated with.\n"},"reverse":{"type":"string","description":"The reverse dns attached to this IP\n"},"serverId":{"type":"string","description":"The server associated with this IP"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"},"type":{"type":"string","description":"The type of the IP (\u003cspan pulumi-lang-nodejs=\"`routedIpv4`\" pulumi-lang-dotnet=\"`RoutedIpv4`\" pulumi-lang-go=\"`routedIpv4`\" pulumi-lang-python=\"`routed_ipv4`\" pulumi-lang-yaml=\"`routedIpv4`\" pulumi-lang-java=\"`routedIpv4`\"\u003e`routed_ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routedIpv6`\" pulumi-lang-dotnet=\"`RoutedIpv6`\" pulumi-lang-go=\"`routedIpv6`\" pulumi-lang-python=\"`routed_ipv6`\" pulumi-lang-yaml=\"`routedIpv6`\" pulumi-lang-java=\"`routedIpv6`\"\u003e`routed_ipv6`\u003c/span\u003e), more information in [the documentation](https://www.scaleway.com/en/docs/compute/instances/api-cli/using-routed-ips/)\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n"}},"required":["address","organizationId","prefix","projectId","reverse","serverId","type"],"inputProperties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"},"type":{"type":"string","description":"The type of the IP (\u003cspan pulumi-lang-nodejs=\"`routedIpv4`\" pulumi-lang-dotnet=\"`RoutedIpv4`\" pulumi-lang-go=\"`routedIpv4`\" pulumi-lang-python=\"`routed_ipv4`\" pulumi-lang-yaml=\"`routedIpv4`\" pulumi-lang-java=\"`routedIpv4`\"\u003e`routed_ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routedIpv6`\" pulumi-lang-dotnet=\"`RoutedIpv6`\" pulumi-lang-go=\"`routedIpv6`\" pulumi-lang-python=\"`routed_ipv6`\" pulumi-lang-yaml=\"`routedIpv6`\" pulumi-lang-java=\"`routedIpv6`\"\u003e`routed_ipv6`\u003c/span\u003e), more information in [the documentation](https://www.scaleway.com/en/docs/compute/instances/api-cli/using-routed-ips/)\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Ip resources.\n","properties":{"address":{"type":"string","description":"The IP address.\n"},"organizationId":{"type":"string","description":"The organization ID the IP is associated with.\n"},"prefix":{"type":"string","description":"The IP Prefix.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse dns attached to this IP\n"},"serverId":{"type":"string","description":"The server associated with this IP"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"},"type":{"type":"string","description":"The type of the IP (\u003cspan pulumi-lang-nodejs=\"`routedIpv4`\" pulumi-lang-dotnet=\"`RoutedIpv4`\" pulumi-lang-go=\"`routedIpv4`\" pulumi-lang-python=\"`routed_ipv4`\" pulumi-lang-yaml=\"`routedIpv4`\" pulumi-lang-java=\"`routedIpv4`\"\u003e`routed_ipv4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`routedIpv6`\" pulumi-lang-dotnet=\"`RoutedIpv6`\" pulumi-lang-go=\"`routedIpv6`\" pulumi-lang-python=\"`routed_ipv6`\" pulumi-lang-yaml=\"`routedIpv6`\" pulumi-lang-java=\"`routedIpv6`\"\u003e`routed_ipv6`\u003c/span\u003e), more information in [the documentation](https://www.scaleway.com/en/docs/compute/instances/api-cli/using-routed-ips/)\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/instanceIp:InstanceIp"}]},"scaleway:instance/ipReverseDns:IpReverseDns":{"description":"Manages Scaleway compute Instance IPs Reverse DNS.\n\nPlease check our [guide](https://www.scaleway.com/en/docs/compute/instances/how-to/configure-reverse-dns/) for more details\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 serverIp = new scaleway.instance.Ip(\"server_ip\", {});\nconst tfA = new scaleway.domain.Record(\"tf_A\", {\n    dnsZone: \"scaleway.com\",\n    name: \"www\",\n    type: \"A\",\n    data: serverIp.address,\n    ttl: 3600,\n    priority: 1,\n});\nconst reverse = new scaleway.instance.IpReverseDns(\"reverse\", {\n    ipId: serverIp.id,\n    reverse: \"www.scaleway.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver_ip = scaleway.instance.Ip(\"server_ip\")\ntf_a = scaleway.domain.Record(\"tf_A\",\n    dns_zone=\"scaleway.com\",\n    name=\"www\",\n    type=\"A\",\n    data=server_ip.address,\n    ttl=3600,\n    priority=1)\nreverse = scaleway.instance.IpReverseDns(\"reverse\",\n    ip_id=server_ip.id,\n    reverse=\"www.scaleway.com\")\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 serverIp = new Scaleway.Instance.Ip(\"server_ip\");\n\n    var tfA = new Scaleway.Domain.Record(\"tf_A\", new()\n    {\n        DnsZone = \"scaleway.com\",\n        Name = \"www\",\n        Type = \"A\",\n        Data = serverIp.Address,\n        Ttl = 3600,\n        Priority = 1,\n    });\n\n    var reverse = new Scaleway.Instance.IpReverseDns(\"reverse\", new()\n    {\n        IpId = serverIp.Id,\n        Reverse = \"www.scaleway.com\",\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/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserverIp, err := instance.NewIp(ctx, \"server_ip\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"tf_A\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"scaleway.com\"),\n\t\t\tName:     pulumi.String(\"www\"),\n\t\t\tType:     pulumi.String(\"A\"),\n\t\t\tData:     serverIp.Address,\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewIpReverseDns(ctx, \"reverse\", \u0026instance.IpReverseDnsArgs{\n\t\t\tIpId:    serverIp.ID(),\n\t\t\tReverse: pulumi.String(\"www.scaleway.com\"),\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.instance.Ip;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.scaleway.instance.IpReverseDns;\nimport com.pulumi.scaleway.instance.IpReverseDnsArgs;\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 serverIp = new Ip(\"serverIp\");\n\n        var tfA = new Record(\"tfA\", RecordArgs.builder()\n            .dnsZone(\"scaleway.com\")\n            .name(\"www\")\n            .type(\"A\")\n            .data(serverIp.address())\n            .ttl(3600)\n            .priority(1)\n            .build());\n\n        var reverse = new IpReverseDns(\"reverse\", IpReverseDnsArgs.builder()\n            .ipId(serverIp.id())\n            .reverse(\"www.scaleway.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  serverIp:\n    type: scaleway:instance:Ip\n    name: server_ip\n  tfA:\n    type: scaleway:domain:Record\n    name: tf_A\n    properties:\n      dnsZone: scaleway.com\n      name: www\n      type: A\n      data: ${serverIp.address}\n      ttl: 3600\n      priority: 1\n  reverse:\n    type: scaleway:instance:IpReverseDns\n    properties:\n      ipId: ${serverIp.id}\n      reverse: www.scaleway.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIPs reverse DNS can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:instance/ipReverseDns:IpReverseDns reverse fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"ipId":{"type":"string","description":"The IP ID\n"},"reverse":{"type":"string","description":"The reverse DNS for this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n"}},"required":["ipId","reverse"],"inputProperties":{"ipId":{"type":"string","description":"The IP ID\n"},"reverse":{"type":"string","description":"The reverse DNS for this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"requiredInputs":["ipId","reverse"],"stateInputs":{"description":"Input properties used for looking up and filtering IpReverseDns resources.\n","properties":{"ipId":{"type":"string","description":"The IP ID\n"},"reverse":{"type":"string","description":"The reverse DNS for this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/instanceIpReverseDns:InstanceIpReverseDns"}]},"scaleway:instance/placementGroup:PlacementGroup":{"description":"Creates and manages Compute Instance Placement Groups. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-list-placement-groups).\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 availabilityGroup = new scaleway.instance.PlacementGroup(\"availability_group\", {});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\navailability_group = scaleway.instance.PlacementGroup(\"availability_group\")\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 availabilityGroup = new Scaleway.Instance.PlacementGroup(\"availability_group\");\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewPlacementGroup(ctx, \"availability_group\", 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.instance.PlacementGroup;\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 availabilityGroup = new PlacementGroup(\"availabilityGroup\");\n\n    }\n}\n```\n```yaml\nresources:\n  availabilityGroup:\n    type: scaleway:instance:PlacementGroup\n    name: availability_group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPlacement groups can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:instance/placementGroup:PlacementGroup availability_group fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"name":{"type":"string","description":"The name of the placement group.\n"},"organizationId":{"type":"string","description":"The organization ID the placement group is associated with.\n"},"policyMode":{"type":"string","description":"The [policy mode](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`optional`\" pulumi-lang-dotnet=\"`Optional`\" pulumi-lang-go=\"`optional`\" pulumi-lang-python=\"`optional`\" pulumi-lang-yaml=\"`optional`\" pulumi-lang-java=\"`optional`\"\u003e`optional`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`enforced`\" pulumi-lang-dotnet=\"`Enforced`\" pulumi-lang-go=\"`enforced`\" pulumi-lang-python=\"`enforced`\" pulumi-lang-yaml=\"`enforced`\" pulumi-lang-java=\"`enforced`\"\u003e`enforced`\u003c/span\u003e.\n"},"policyRespected":{"type":"boolean","description":"Is true when the policy is respected.\n"},"policyType":{"type":"string","description":"The [policy type](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-grou) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`lowLatency`\" pulumi-lang-dotnet=\"`LowLatency`\" pulumi-lang-go=\"`lowLatency`\" pulumi-lang-python=\"`low_latency`\" pulumi-lang-yaml=\"`lowLatency`\" pulumi-lang-java=\"`lowLatency`\"\u003e`low_latency`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`maxAvailability`\" pulumi-lang-dotnet=\"`MaxAvailability`\" pulumi-lang-go=\"`maxAvailability`\" pulumi-lang-python=\"`max_availability`\" pulumi-lang-yaml=\"`maxAvailability`\" pulumi-lang-java=\"`maxAvailability`\"\u003e`max_availability`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the placement group is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the placement group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the placement group should be created.\n"}},"required":["name","organizationId","policyRespected","projectId"],"inputProperties":{"name":{"type":"string","description":"The name of the placement group.\n"},"policyMode":{"type":"string","description":"The [policy mode](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`optional`\" pulumi-lang-dotnet=\"`Optional`\" pulumi-lang-go=\"`optional`\" pulumi-lang-python=\"`optional`\" pulumi-lang-yaml=\"`optional`\" pulumi-lang-java=\"`optional`\"\u003e`optional`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`enforced`\" pulumi-lang-dotnet=\"`Enforced`\" pulumi-lang-go=\"`enforced`\" pulumi-lang-python=\"`enforced`\" pulumi-lang-yaml=\"`enforced`\" pulumi-lang-java=\"`enforced`\"\u003e`enforced`\u003c/span\u003e.\n"},"policyType":{"type":"string","description":"The [policy type](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-grou) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`lowLatency`\" pulumi-lang-dotnet=\"`LowLatency`\" pulumi-lang-go=\"`lowLatency`\" pulumi-lang-python=\"`low_latency`\" pulumi-lang-yaml=\"`lowLatency`\" pulumi-lang-java=\"`lowLatency`\"\u003e`low_latency`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`maxAvailability`\" pulumi-lang-dotnet=\"`MaxAvailability`\" pulumi-lang-go=\"`maxAvailability`\" pulumi-lang-python=\"`max_availability`\" pulumi-lang-yaml=\"`maxAvailability`\" pulumi-lang-java=\"`maxAvailability`\"\u003e`max_availability`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the placement group is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the placement group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the placement group should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering PlacementGroup resources.\n","properties":{"name":{"type":"string","description":"The name of the placement group.\n"},"organizationId":{"type":"string","description":"The organization ID the placement group is associated with.\n"},"policyMode":{"type":"string","description":"The [policy mode](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`optional`\" pulumi-lang-dotnet=\"`Optional`\" pulumi-lang-go=\"`optional`\" pulumi-lang-python=\"`optional`\" pulumi-lang-yaml=\"`optional`\" pulumi-lang-java=\"`optional`\"\u003e`optional`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`enforced`\" pulumi-lang-dotnet=\"`Enforced`\" pulumi-lang-go=\"`enforced`\" pulumi-lang-python=\"`enforced`\" pulumi-lang-yaml=\"`enforced`\" pulumi-lang-java=\"`enforced`\"\u003e`enforced`\u003c/span\u003e.\n"},"policyRespected":{"type":"boolean","description":"Is true when the policy is respected.\n"},"policyType":{"type":"string","description":"The [policy type](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-grou) of the placement group. Possible values are: \u003cspan pulumi-lang-nodejs=\"`lowLatency`\" pulumi-lang-dotnet=\"`LowLatency`\" pulumi-lang-go=\"`lowLatency`\" pulumi-lang-python=\"`low_latency`\" pulumi-lang-yaml=\"`lowLatency`\" pulumi-lang-java=\"`lowLatency`\"\u003e`low_latency`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`maxAvailability`\" pulumi-lang-dotnet=\"`MaxAvailability`\" pulumi-lang-go=\"`maxAvailability`\" pulumi-lang-python=\"`max_availability`\" pulumi-lang-yaml=\"`maxAvailability`\" pulumi-lang-java=\"`maxAvailability`\"\u003e`max_availability`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the placement group is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the placement group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the placement group should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/instancePlacementGroup:InstancePlacementGroup"}]},"scaleway:instance/privateNic:PrivateNic":{"description":"Creates and manages Scaleway Instance Private NICs. For more information, see\nthe [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics).\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 pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    serverId: \"fr-par-1/11111111-1111-1111-1111-111111111111\",\n    privateNetworkId: \"fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    server_id=\"fr-par-1/11111111-1111-1111-1111-111111111111\",\n    private_network_id=\"fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\")\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 pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        ServerId = \"fr-par-1/11111111-1111-1111-1111-111111111111\",\n        PrivateNetworkId = \"fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\",\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         pulumi.String(\"fr-par-1/11111111-1111-1111-1111-111111111111\"),\n\t\t\tPrivateNetworkId: pulumi.String(\"fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\"),\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.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\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 pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .serverId(\"fr-par-1/11111111-1111-1111-1111-111111111111\")\n            .privateNetworkId(\"fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      serverId: fr-par-1/11111111-1111-1111-1111-111111111111\n      privateNetworkId: fr-par-1/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With zone\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"private_network_instance\",\n    region: \"fr-par\",\n});\nconst base = new scaleway.instance.Server(\"base\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    zone: pn01.zone,\n});\nconst pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    serverId: base.id,\n    privateNetworkId: pn01.id,\n    zone: pn01.zone,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"private_network_instance\",\n    region=\"fr-par\")\nbase = scaleway.instance.Server(\"base\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    zone=pn01.zone)\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    server_id=base.id,\n    private_network_id=pn01.id,\n    zone=pn01.zone)\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 pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"private_network_instance\",\n        Region = \"fr-par\",\n    });\n\n    var @base = new Scaleway.Instance.Server(\"base\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        Zone = pn01.Zone,\n    });\n\n    var pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        ServerId = @base.Id,\n        PrivateNetworkId = pn01.Id,\n        Zone = pn01.Zone,\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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName:   pulumi.String(\"private_network_instance\"),\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbase, err := instance.NewServer(ctx, \"base\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tZone:  pn01.Zone,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         base.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tZone:             pn01.Zone,\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\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 pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"private_network_instance\")\n            .region(\"fr-par\")\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .zone(pn01.zone())\n            .build());\n\n        var pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .serverId(base.id())\n            .privateNetworkId(pn01.id())\n            .zone(pn01.zone())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: private_network_instance\n      region: fr-par\n  base:\n    type: scaleway:instance:Server\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      zone: ${pn01.zone}\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      serverId: ${base.id}\n      privateNetworkId: ${pn01.id}\n      zone: ${pn01.zone}\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 \"@pulumiverse/scaleway\";\n\nconst vpc01 = new scaleway.network.Vpc(\"vpc01\", {name: \"vpc_instance\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"private_network_instance\",\n    ipv4Subnet: {\n        subnet: \"172.16.64.0/22\",\n    },\n    vpcId: vpc01.id,\n});\nconst ip01 = new scaleway.ipam.Ip(\"ip01\", {\n    address: \"172.16.64.7\",\n    sources: [{\n        privateNetworkId: pn01.id,\n    }],\n});\nconst server01 = new scaleway.instance.Server(\"server01\", {\n    image: \"ubuntu_focal\",\n    type: \"PLAY2-MICRO\",\n});\nconst pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    privateNetworkId: pn01.id,\n    serverId: server01.id,\n    ipamIpIds: [ip01.id],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"vpc_instance\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"private_network_instance\",\n    ipv4_subnet={\n        \"subnet\": \"172.16.64.0/22\",\n    },\n    vpc_id=vpc01.id)\nip01 = scaleway.ipam.Ip(\"ip01\",\n    address=\"172.16.64.7\",\n    sources=[{\n        \"private_network_id\": pn01.id,\n    }])\nserver01 = scaleway.instance.Server(\"server01\",\n    image=\"ubuntu_focal\",\n    type=\"PLAY2-MICRO\")\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    private_network_id=pn01.id,\n    server_id=server01.id,\n    ipam_ip_ids=[ip01.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 vpc01 = new Scaleway.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"vpc_instance\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"private_network_instance\",\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.64.0/22\",\n        },\n        VpcId = vpc01.Id,\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Address = \"172.16.64.7\",\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\n            {\n                PrivateNetworkId = pn01.Id,\n            },\n        },\n    });\n\n    var server01 = new Scaleway.Instance.Server(\"server01\", new()\n    {\n        Image = \"ubuntu_focal\",\n        Type = \"PLAY2-MICRO\",\n    });\n\n    var pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        PrivateNetworkId = pn01.Id,\n        ServerId = server01.Id,\n        IpamIpIds = new[]\n        {\n            ip01.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"vpc_instance\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"private_network_instance\"),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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 := ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.64.7\"),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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\tserver01, err := instance.NewServer(ctx, \"server01\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_focal\"),\n\t\t\tType:  pulumi.String(\"PLAY2-MICRO\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tServerId:         server01.ID(),\n\t\t\tIpamIpIds: pulumi.StringArray{\n\t\t\t\tip01.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\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_instance\")\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"private_network_instance\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.64.0/22\")\n                .build())\n            .vpcId(vpc01.id())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .address(\"172.16.64.7\")\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n        var server01 = new Server(\"server01\", ServerArgs.builder()\n            .image(\"ubuntu_focal\")\n            .type(\"PLAY2-MICRO\")\n            .build());\n\n        var pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .privateNetworkId(pn01.id())\n            .serverId(server01.id())\n            .ipamIpIds(ip01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: vpc_instance\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: private_network_instance\n      ipv4Subnet:\n        subnet: 172.16.64.0/22\n      vpcId: ${vpc01.id}\n  ip01:\n    type: scaleway:ipam:Ip\n    properties:\n      address: 172.16.64.7\n      sources:\n        - privateNetworkId: ${pn01.id}\n  server01:\n    type: scaleway:instance:Server\n    properties:\n      image: ubuntu_focal\n      type: PLAY2-MICRO\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      privateNetworkId: ${pn01.id}\n      serverId: ${server01.id}\n      ipamIpIds:\n        - ${ip01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPrivate NICs can be imported using the `{zone}/{server_id}/{private_nic_id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:instance/privateNic:PrivateNic pnic01 fr-par-1/11111111-1111-1111-1111-111111111111/22222222-2222-2222-2222-222222222222\n```\n\n","properties":{"ipIds":{"type":"array","items":{"type":"string"},"description":"IPAM ip list, should be for internal use only"},"ipamIpIds":{"type":"array","items":{"type":"string"},"description":"IPAM IDs of a pre-reserved IP addresses to assign to the Instance in the requested private network.\n"},"macAddress":{"type":"string","description":"The MAC address of the private NIC.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:instance/PrivateNicPrivateIp:PrivateNicPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the private network attached to.\n"},"serverId":{"type":"string","description":"The ID of the server associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the private NIC.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server must be created.\n"}},"required":["macAddress","privateIps","privateNetworkId","serverId"],"inputProperties":{"ipIds":{"type":"array","items":{"type":"string"},"description":"IPAM ip list, should be for internal use only","willReplaceOnChanges":true},"ipamIpIds":{"type":"array","items":{"type":"string"},"description":"IPAM IDs of a pre-reserved IP addresses to assign to the Instance in the requested private network.\n","willReplaceOnChanges":true},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:instance/PrivateNicPrivateIp:PrivateNicPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the private network attached to.\n","willReplaceOnChanges":true},"serverId":{"type":"string","description":"The ID of the server associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the private NIC.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server must be created.\n","willReplaceOnChanges":true}},"requiredInputs":["privateNetworkId","serverId"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateNic resources.\n","properties":{"ipIds":{"type":"array","items":{"type":"string"},"description":"IPAM ip list, should be for internal use only","willReplaceOnChanges":true},"ipamIpIds":{"type":"array","items":{"type":"string"},"description":"IPAM IDs of a pre-reserved IP addresses to assign to the Instance in the requested private network.\n","willReplaceOnChanges":true},"macAddress":{"type":"string","description":"The MAC address of the private NIC.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:instance/PrivateNicPrivateIp:PrivateNicPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the private network attached to.\n","willReplaceOnChanges":true},"serverId":{"type":"string","description":"The ID of the server associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the private NIC.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server must be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/instancePrivateNic:InstancePrivateNic"}]},"scaleway:instance/securityGroup:SecurityGroup":{"description":"\n\n## Import\n\nInstance security group can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:instance/securityGroup:SecurityGroup web fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"description":{"type":"string","description":"The description of the security group.\n"},"enableDefaultSecurity":{"type":"boolean","description":"Whether to block SMTP on IPv4/IPv6 (Port 25, 465, 587). Set to false will unblock SMTP if your account is authorized to. If your organization is not yet authorized to send SMTP traffic, [open a support ticket](https://console.scaleway.com/support/tickets).\n"},"externalRules":{"type":"boolean","description":"A boolean to specify whether to use instance_security_group_rules.\nIf \u003cspan pulumi-lang-nodejs=\"`externalRules`\" pulumi-lang-dotnet=\"`ExternalRules`\" pulumi-lang-go=\"`externalRules`\" pulumi-lang-python=\"`external_rules`\" pulumi-lang-yaml=\"`externalRules`\" pulumi-lang-java=\"`externalRules`\"\u003e`external_rules`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inboundRule`\" pulumi-lang-dotnet=\"`InboundRule`\" pulumi-lang-go=\"`inboundRule`\" pulumi-lang-python=\"`inbound_rule`\" pulumi-lang-yaml=\"`inboundRule`\" pulumi-lang-java=\"`inboundRule`\"\u003e`inbound_rule`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`outboundRule`\" pulumi-lang-dotnet=\"`OutboundRule`\" pulumi-lang-go=\"`outboundRule`\" pulumi-lang-python=\"`outbound_rule`\" pulumi-lang-yaml=\"`outboundRule`\" pulumi-lang-java=\"`outboundRule`\"\u003e`outbound_rule`\u003c/span\u003e can not be set directly in the security group.\n"},"inboundDefaultPolicy":{"type":"string","description":"The default policy on incoming traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupInboundRule:SecurityGroupInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"name":{"type":"string","description":"The name of the security group.\n"},"organizationId":{"type":"string","description":"The organization ID the security group is associated with.\n"},"outboundDefaultPolicy":{"type":"string","description":"The default policy on outgoing traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupOutboundRule:SecurityGroupOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the security group is associated with.\n"},"stateful":{"type":"boolean","description":"A boolean to specify whether the security group should be stateful or not.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags of the security group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the security group should be created.\n"}},"required":["name","organizationId","projectId"],"inputProperties":{"description":{"type":"string","description":"The description of the security group.\n"},"enableDefaultSecurity":{"type":"boolean","description":"Whether to block SMTP on IPv4/IPv6 (Port 25, 465, 587). Set to false will unblock SMTP if your account is authorized to. If your organization is not yet authorized to send SMTP traffic, [open a support ticket](https://console.scaleway.com/support/tickets).\n"},"externalRules":{"type":"boolean","description":"A boolean to specify whether to use instance_security_group_rules.\nIf \u003cspan pulumi-lang-nodejs=\"`externalRules`\" pulumi-lang-dotnet=\"`ExternalRules`\" pulumi-lang-go=\"`externalRules`\" pulumi-lang-python=\"`external_rules`\" pulumi-lang-yaml=\"`externalRules`\" pulumi-lang-java=\"`externalRules`\"\u003e`external_rules`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inboundRule`\" pulumi-lang-dotnet=\"`InboundRule`\" pulumi-lang-go=\"`inboundRule`\" pulumi-lang-python=\"`inbound_rule`\" pulumi-lang-yaml=\"`inboundRule`\" pulumi-lang-java=\"`inboundRule`\"\u003e`inbound_rule`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`outboundRule`\" pulumi-lang-dotnet=\"`OutboundRule`\" pulumi-lang-go=\"`outboundRule`\" pulumi-lang-python=\"`outbound_rule`\" pulumi-lang-yaml=\"`outboundRule`\" pulumi-lang-java=\"`outboundRule`\"\u003e`outbound_rule`\u003c/span\u003e can not be set directly in the security group.\n"},"inboundDefaultPolicy":{"type":"string","description":"The default policy on incoming traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupInboundRule:SecurityGroupInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"name":{"type":"string","description":"The name of the security group.\n"},"outboundDefaultPolicy":{"type":"string","description":"The default policy on outgoing traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupOutboundRule:SecurityGroupOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the security group is associated with.\n","willReplaceOnChanges":true},"stateful":{"type":"boolean","description":"A boolean to specify whether the security group should be stateful or not.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags of the security group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the security group should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering SecurityGroup resources.\n","properties":{"description":{"type":"string","description":"The description of the security group.\n"},"enableDefaultSecurity":{"type":"boolean","description":"Whether to block SMTP on IPv4/IPv6 (Port 25, 465, 587). Set to false will unblock SMTP if your account is authorized to. If your organization is not yet authorized to send SMTP traffic, [open a support ticket](https://console.scaleway.com/support/tickets).\n"},"externalRules":{"type":"boolean","description":"A boolean to specify whether to use instance_security_group_rules.\nIf \u003cspan pulumi-lang-nodejs=\"`externalRules`\" pulumi-lang-dotnet=\"`ExternalRules`\" pulumi-lang-go=\"`externalRules`\" pulumi-lang-python=\"`external_rules`\" pulumi-lang-yaml=\"`externalRules`\" pulumi-lang-java=\"`externalRules`\"\u003e`external_rules`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inboundRule`\" pulumi-lang-dotnet=\"`InboundRule`\" pulumi-lang-go=\"`inboundRule`\" pulumi-lang-python=\"`inbound_rule`\" pulumi-lang-yaml=\"`inboundRule`\" pulumi-lang-java=\"`inboundRule`\"\u003e`inbound_rule`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`outboundRule`\" pulumi-lang-dotnet=\"`OutboundRule`\" pulumi-lang-go=\"`outboundRule`\" pulumi-lang-python=\"`outbound_rule`\" pulumi-lang-yaml=\"`outboundRule`\" pulumi-lang-java=\"`outboundRule`\"\u003e`outbound_rule`\u003c/span\u003e can not be set directly in the security group.\n"},"inboundDefaultPolicy":{"type":"string","description":"The default policy on incoming traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupInboundRule:SecurityGroupInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"name":{"type":"string","description":"The name of the security group.\n"},"organizationId":{"type":"string","description":"The organization ID the security group is associated with.\n"},"outboundDefaultPolicy":{"type":"string","description":"The default policy on outgoing traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupOutboundRule:SecurityGroupOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the security group is associated with.\n","willReplaceOnChanges":true},"stateful":{"type":"boolean","description":"A boolean to specify whether the security group should be stateful or not.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags of the security group.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the security group should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/instanceSecurityGroup:InstanceSecurityGroup"}]},"scaleway:instance/securityGroupRules:SecurityGroupRules":{"description":"Creates and manages Scaleway compute Instance security group rules. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-security-groups-list-security-groups).\n\nThis resource can be used to externalize rules from a \u003cspan pulumi-lang-nodejs=\"`scaleway.instance.SecurityGroup`\" pulumi-lang-dotnet=\"`scaleway.instance.SecurityGroup`\" pulumi-lang-go=\"`instance.SecurityGroup`\" pulumi-lang-python=\"`instance.SecurityGroup`\" pulumi-lang-yaml=\"`scaleway.instance.SecurityGroup`\" pulumi-lang-java=\"`scaleway.instance.SecurityGroup`\"\u003e`scaleway.instance.SecurityGroup`\u003c/span\u003e to solve circular dependency problems. When using this resource do not forget to set \u003cspan pulumi-lang-nodejs=\"`externalRules \" pulumi-lang-dotnet=\"`ExternalRules \" pulumi-lang-go=\"`externalRules \" pulumi-lang-python=\"`external_rules \" pulumi-lang-yaml=\"`externalRules \" pulumi-lang-java=\"`externalRules \"\u003e`external_rules \u003c/span\u003e= true` on the security group.\n\n\u003e **Warning:** In order to guaranty rules order in a given security group only one\u003cspan pulumi-lang-nodejs=\" scaleway.instance.SecurityGroupRules \" pulumi-lang-dotnet=\" scaleway.instance.SecurityGroupRules \" pulumi-lang-go=\" instance.SecurityGroupRules \" pulumi-lang-python=\" instance.SecurityGroupRules \" pulumi-lang-yaml=\" scaleway.instance.SecurityGroupRules \" pulumi-lang-java=\" scaleway.instance.SecurityGroupRules \"\u003e scaleway.instance.SecurityGroupRules \u003c/span\u003eis allowed per security group.\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 sg01 = new scaleway.instance.SecurityGroup(\"sg01\", {externalRules: true});\nconst sgrs01 = new scaleway.instance.SecurityGroupRules(\"sgrs01\", {\n    securityGroupId: sg01.id,\n    inboundRules: [{\n        action: \"accept\",\n        port: 80,\n        ipRange: \"0.0.0.0/0\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsg01 = scaleway.instance.SecurityGroup(\"sg01\", external_rules=True)\nsgrs01 = scaleway.instance.SecurityGroupRules(\"sgrs01\",\n    security_group_id=sg01.id,\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"port\": 80,\n        \"ip_range\": \"0.0.0.0/0\",\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 sg01 = new Scaleway.Instance.SecurityGroup(\"sg01\", new()\n    {\n        ExternalRules = true,\n    });\n\n    var sgrs01 = new Scaleway.Instance.SecurityGroupRules(\"sgrs01\", new()\n    {\n        SecurityGroupId = sg01.Id,\n        InboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupRulesInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 80,\n                IpRange = \"0.0.0.0/0\",\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsg01, err := instance.NewSecurityGroup(ctx, \"sg01\", \u0026instance.SecurityGroupArgs{\n\t\t\tExternalRules: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewSecurityGroupRules(ctx, \"sgrs01\", \u0026instance.SecurityGroupRulesArgs{\n\t\t\tSecurityGroupId: sg01.ID(),\n\t\t\tInboundRules: instance.SecurityGroupRulesInboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupRulesInboundRuleArgs{\n\t\t\t\t\tAction:  pulumi.String(\"accept\"),\n\t\t\t\t\tPort:    pulumi.Int(80),\n\t\t\t\t\tIpRange: pulumi.String(\"0.0.0.0/0\"),\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.instance.SecurityGroup;\nimport com.pulumi.scaleway.instance.SecurityGroupArgs;\nimport com.pulumi.scaleway.instance.SecurityGroupRules;\nimport com.pulumi.scaleway.instance.SecurityGroupRulesArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupRulesInboundRuleArgs;\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 sg01 = new SecurityGroup(\"sg01\", SecurityGroupArgs.builder()\n            .externalRules(true)\n            .build());\n\n        var sgrs01 = new SecurityGroupRules(\"sgrs01\", SecurityGroupRulesArgs.builder()\n            .securityGroupId(sg01.id())\n            .inboundRules(SecurityGroupRulesInboundRuleArgs.builder()\n                .action(\"accept\")\n                .port(80)\n                .ipRange(\"0.0.0.0/0\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sg01:\n    type: scaleway:instance:SecurityGroup\n    properties:\n      externalRules: true\n  sgrs01:\n    type: scaleway:instance:SecurityGroupRules\n    properties:\n      securityGroupId: ${sg01.id}\n      inboundRules:\n        - action: accept\n          port: 80\n          ipRange: 0.0.0.0/0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Simplify your rules using dynamic block and \u003cspan pulumi-lang-nodejs=\"`forEach`\" pulumi-lang-dotnet=\"`ForEach`\" pulumi-lang-go=\"`forEach`\" pulumi-lang-python=\"`for_each`\" pulumi-lang-yaml=\"`forEach`\" pulumi-lang-java=\"`forEach`\"\u003e`for_each`\u003c/span\u003e loop\n\nYou can use \u003cspan pulumi-lang-nodejs=\"`forEach`\" pulumi-lang-dotnet=\"`ForEach`\" pulumi-lang-go=\"`forEach`\" pulumi-lang-python=\"`for_each`\" pulumi-lang-yaml=\"`forEach`\" pulumi-lang-java=\"`forEach`\"\u003e`for_each`\u003c/span\u003e syntax to simplify the definition of your rules.\nLet's suppose that your inbound default policy is to drop, but you want to build a list of exceptions to accept.\nCreate a local containing your exceptions (`locals.trusted`) and use the \u003cspan pulumi-lang-nodejs=\"`forEach`\" pulumi-lang-dotnet=\"`ForEach`\" pulumi-lang-go=\"`forEach`\" pulumi-lang-python=\"`for_each`\" pulumi-lang-yaml=\"`forEach`\" pulumi-lang-java=\"`forEach`\"\u003e`for_each`\u003c/span\u003e syntax in a dynamic block:\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.instance.SecurityGroup(\"main\", {\n    description: \"test\",\n    name: \"terraform test\",\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n});\nconst trusted = [\n    \"1.2.3.4/32\",\n    \"4.5.6.7/32\",\n    \"7.8.9.10/24\",\n];\nconst mainSecurityGroupRules = new scaleway.instance.SecurityGroupRules(\"main\", {\n    inboundRules: trusted.map((v, k) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n        action: \"accept\",\n        ipRange: entry.value,\n        port: 80,\n    })),\n    securityGroupId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.instance.SecurityGroup(\"main\",\n    description=\"test\",\n    name=\"terraform test\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\")\ntrusted = [\n    \"1.2.3.4/32\",\n    \"4.5.6.7/32\",\n    \"7.8.9.10/24\",\n]\nmain_security_group_rules = scaleway.instance.SecurityGroupRules(\"main\",\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"ip_range\": entry[\"value\"],\n        \"port\": 80,\n    } for entry in [{\"key\": k, \"value\": v} for k, v in trusted]],\n    security_group_id=main.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 main = new Scaleway.Instance.SecurityGroup(\"main\", new()\n    {\n        Description = \"test\",\n        Name = \"terraform test\",\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n    });\n\n    var trusted = new[]\n    {\n        \"1.2.3.4/32\",\n        \"4.5.6.7/32\",\n        \"7.8.9.10/24\",\n    };\n\n    var mainSecurityGroupRules = new Scaleway.Instance.SecurityGroupRules(\"main\", new()\n    {\n        InboundRules = trusted.Select((v, k) =\u003e new { Key = k, Value = v }).Select(entry =\u003e \n        {\n            return new Scaleway.Instance.Inputs.SecurityGroupRulesInboundRuleArgs\n            {\n                Action = \"accept\",\n                IpRange = entry.Value,\n                Port = 80,\n            };\n        }).ToList(),\n        SecurityGroupId = main.Id,\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nYou can also use object to assign IP and port in the same time.\nIn your locals, you can use objects to encapsulate several values that will be used later on in the loop:\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.instance.SecurityGroup(\"main\", {\n    description: \"test\",\n    name: \"terraform test\",\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n});\nconst trusted = [\n    {\n        ipRange: \"1.2.3.4/32\",\n        port: \"80\",\n    },\n    {\n        ipRange: \"5.6.7.8/32\",\n        port: \"81\",\n    },\n    {\n        ipRange: \"9.10.11.12/32\",\n        port: \"81\",\n    },\n];\nconst mainSecurityGroupRules = new scaleway.instance.SecurityGroupRules(\"main\", {\n    inboundRules: trusted.map((v, k) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n        action: \"accept\",\n        ipRange: entry.value.ipRange,\n        port: entry.value.port,\n    })),\n    securityGroupId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.instance.SecurityGroup(\"main\",\n    description=\"test\",\n    name=\"terraform test\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\")\ntrusted = [\n    {\n        \"ipRange\": \"1.2.3.4/32\",\n        \"port\": \"80\",\n    },\n    {\n        \"ipRange\": \"5.6.7.8/32\",\n        \"port\": \"81\",\n    },\n    {\n        \"ipRange\": \"9.10.11.12/32\",\n        \"port\": \"81\",\n    },\n]\nmain_security_group_rules = scaleway.instance.SecurityGroupRules(\"main\",\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"ip_range\": entry[\"value\"][\"ipRange\"],\n        \"port\": entry[\"value\"][\"port\"],\n    } for entry in [{\"key\": k, \"value\": v} for k, v in trusted]],\n    security_group_id=main.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 main = new Scaleway.Instance.SecurityGroup(\"main\", new()\n    {\n        Description = \"test\",\n        Name = \"terraform test\",\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n    });\n\n    var trusted = new[]\n    {\n        \n        {\n            { \"ipRange\", \"1.2.3.4/32\" },\n            { \"port\", \"80\" },\n        },\n        \n        {\n            { \"ipRange\", \"5.6.7.8/32\" },\n            { \"port\", \"81\" },\n        },\n        \n        {\n            { \"ipRange\", \"9.10.11.12/32\" },\n            { \"port\", \"81\" },\n        },\n    };\n\n    var mainSecurityGroupRules = new Scaleway.Instance.SecurityGroupRules(\"main\", new()\n    {\n        InboundRules = trusted.Select((v, k) =\u003e new { Key = k, Value = v }).Select(entry =\u003e \n        {\n            return new Scaleway.Instance.Inputs.SecurityGroupRulesInboundRuleArgs\n            {\n                Action = \"accept\",\n                IpRange = entry.Value.IpRange,\n                Port = entry.Value.Port,\n            };\n        }).ToList(),\n        SecurityGroupId = main.Id,\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstance security group rules can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:instance/securityGroupRules:SecurityGroupRules web fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupRulesInboundRule:SecurityGroupRulesInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupRulesOutboundRule:SecurityGroupRulesOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n"}},"required":["securityGroupId"],"inputProperties":{"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupRulesInboundRule:SecurityGroupRulesInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupRulesOutboundRule:SecurityGroupRulesOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n","willReplaceOnChanges":true}},"requiredInputs":["securityGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering SecurityGroupRules resources.\n","properties":{"inboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupRulesInboundRule:SecurityGroupRulesInboundRule"},"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n"},"outboundRules":{"type":"array","items":{"$ref":"#/types/scaleway:instance/SecurityGroupRulesOutboundRule:SecurityGroupRulesOutboundRule"},"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n"},"securityGroupId":{"type":"string","description":"The ID of the security group.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/instanceSecurityGroupRules:InstanceSecurityGroupRules"}]},"scaleway:instance/server:Server":{"description":"Creates and manages Scaleway compute Instances. For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-instances-list-all-instances).\n\nPlease check our [FAQ - Instances](https://www.scaleway.com/en/docs/faq/instances).\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 publicIp = new scaleway.instance.Ip(\"public_ip\", {});\nconst web = new scaleway.instance.Server(\"web\", {\n    type: \"DEV1-S\",\n    image: \"ubuntu_jammy\",\n    ipId: publicIp.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npublic_ip = scaleway.instance.Ip(\"public_ip\")\nweb = scaleway.instance.Server(\"web\",\n    type=\"DEV1-S\",\n    image=\"ubuntu_jammy\",\n    ip_id=public_ip.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 publicIp = new Scaleway.Instance.Ip(\"public_ip\");\n\n    var web = new Scaleway.Instance.Server(\"web\", new()\n    {\n        Type = \"DEV1-S\",\n        Image = \"ubuntu_jammy\",\n        IpId = publicIp.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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpublicIp, err := instance.NewIp(ctx, \"public_ip\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"web\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tIpId:  publicIp.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.instance.Ip;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\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 publicIp = new Ip(\"publicIp\");\n\n        var web = new Server(\"web\", ServerArgs.builder()\n            .type(\"DEV1-S\")\n            .image(\"ubuntu_jammy\")\n            .ipId(publicIp.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  publicIp:\n    type: scaleway:instance:Ip\n    name: public_ip\n  web:\n    type: scaleway:instance:Server\n    properties:\n      type: DEV1-S\n      image: ubuntu_jammy\n      ipId: ${publicIp.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With additional volumes and tags\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst data = new scaleway.block.Volume(\"data\", {\n    sizeInGb: 100,\n    iops: 5000,\n});\nconst web = new scaleway.instance.Server(\"web\", {\n    type: \"DEV1-S\",\n    image: \"ubuntu_jammy\",\n    tags: [\n        \"hello\",\n        \"public\",\n    ],\n    rootVolume: {\n        deleteOnTermination: false,\n    },\n    additionalVolumeIds: [data.id],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ndata = scaleway.block.Volume(\"data\",\n    size_in_gb=100,\n    iops=5000)\nweb = scaleway.instance.Server(\"web\",\n    type=\"DEV1-S\",\n    image=\"ubuntu_jammy\",\n    tags=[\n        \"hello\",\n        \"public\",\n    ],\n    root_volume={\n        \"delete_on_termination\": False,\n    },\n    additional_volume_ids=[data.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 data = new Scaleway.Block.Volume(\"data\", new()\n    {\n        SizeInGb = 100,\n        Iops = 5000,\n    });\n\n    var web = new Scaleway.Instance.Server(\"web\", new()\n    {\n        Type = \"DEV1-S\",\n        Image = \"ubuntu_jammy\",\n        Tags = new[]\n        {\n            \"hello\",\n            \"public\",\n        },\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            DeleteOnTermination = false,\n        },\n        AdditionalVolumeIds = new[]\n        {\n            data.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/block\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdata, err := block.NewVolume(ctx, \"data\", \u0026block.VolumeArgs{\n\t\t\tSizeInGb: pulumi.Int(100),\n\t\t\tIops:     pulumi.Int(5000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"web\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"hello\"),\n\t\t\t\tpulumi.String(\"public\"),\n\t\t\t},\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tDeleteOnTermination: pulumi.Bool(false),\n\t\t\t},\n\t\t\tAdditionalVolumeIds: pulumi.StringArray{\n\t\t\t\tdata.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.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\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 data = new Volume(\"data\", VolumeArgs.builder()\n            .sizeInGb(100)\n            .iops(5000)\n            .build());\n\n        var web = new Server(\"web\", ServerArgs.builder()\n            .type(\"DEV1-S\")\n            .image(\"ubuntu_jammy\")\n            .tags(            \n                \"hello\",\n                \"public\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .deleteOnTermination(false)\n                .build())\n            .additionalVolumeIds(data.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  data:\n    type: scaleway:block:Volume\n    properties:\n      sizeInGb: 100\n      iops: 5000\n  web:\n    type: scaleway:instance:Server\n    properties:\n      type: DEV1-S\n      image: ubuntu_jammy\n      tags:\n        - hello\n        - public\n      rootVolume:\n        deleteOnTermination: false\n      additionalVolumeIds:\n        - ${data.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With filesystem\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.block.Volume(\"volume\", {\n    iops: 15000,\n    sizeInGb: 15,\n});\nconst terraformInstanceFilesystem = new scaleway.FileFilesystem(\"terraform_instance_filesystem\", {\n    name: \"filesystem-instance-terraform\",\n    sizeInGb: 100,\n});\nconst base = new scaleway.instance.Server(\"base\", {\n    type: \"POP2-HM-2C-16G\",\n    state: \"started\",\n    tags: [\n        \"terraform-test\",\n        \"scaleway_instance_server\",\n        \"state\",\n    ],\n    rootVolume: {\n        volumeType: \"sbs_volume\",\n        volumeId: volume.id,\n    },\n    filesystems: [{\n        filesystemId: terraformInstanceFilesystem.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvolume = scaleway.block.Volume(\"volume\",\n    iops=15000,\n    size_in_gb=15)\nterraform_instance_filesystem = scaleway.FileFilesystem(\"terraform_instance_filesystem\",\n    name=\"filesystem-instance-terraform\",\n    size_in_gb=100)\nbase = scaleway.instance.Server(\"base\",\n    type=\"POP2-HM-2C-16G\",\n    state=\"started\",\n    tags=[\n        \"terraform-test\",\n        \"scaleway_instance_server\",\n        \"state\",\n    ],\n    root_volume={\n        \"volume_type\": \"sbs_volume\",\n        \"volume_id\": volume.id,\n    },\n    filesystems=[{\n        \"filesystem_id\": terraform_instance_filesystem.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 volume = new Scaleway.Block.Volume(\"volume\", new()\n    {\n        Iops = 15000,\n        SizeInGb = 15,\n    });\n\n    var terraformInstanceFilesystem = new Scaleway.FileFilesystem(\"terraform_instance_filesystem\", new()\n    {\n        Name = \"filesystem-instance-terraform\",\n        SizeInGb = 100,\n    });\n\n    var @base = new Scaleway.Instance.Server(\"base\", new()\n    {\n        Type = \"POP2-HM-2C-16G\",\n        State = \"started\",\n        Tags = new[]\n        {\n            \"terraform-test\",\n            \"scaleway_instance_server\",\n            \"state\",\n        },\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            VolumeType = \"sbs_volume\",\n            VolumeId = volume.Id,\n        },\n        Filesystems = new[]\n        {\n            new Scaleway.Instance.Inputs.ServerFilesystemArgs\n            {\n                FilesystemId = terraformInstanceFilesystem.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\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/block\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvolume, err := block.NewVolume(ctx, \"volume\", \u0026block.VolumeArgs{\n\t\t\tIops:     pulumi.Int(15000),\n\t\t\tSizeInGb: pulumi.Int(15),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tterraformInstanceFilesystem, err := scaleway.NewFileFilesystem(ctx, \"terraform_instance_filesystem\", \u0026scaleway.FileFilesystemArgs{\n\t\t\tName:     pulumi.String(\"filesystem-instance-terraform\"),\n\t\t\tSizeInGb: pulumi.Int(100),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"base\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"POP2-HM-2C-16G\"),\n\t\t\tState: pulumi.String(\"started\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform-test\"),\n\t\t\t\tpulumi.String(\"scaleway_instance_server\"),\n\t\t\t\tpulumi.String(\"state\"),\n\t\t\t},\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tVolumeType: pulumi.String(\"sbs_volume\"),\n\t\t\t\tVolumeId:   volume.ID(),\n\t\t\t},\n\t\t\tFilesystems: instance.ServerFilesystemArray{\n\t\t\t\t\u0026instance.ServerFilesystemArgs{\n\t\t\t\t\tFilesystemId: terraformInstanceFilesystem.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.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport com.pulumi.scaleway.FileFilesystem;\nimport com.pulumi.scaleway.FileFilesystemArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerFilesystemArgs;\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 Volume(\"volume\", VolumeArgs.builder()\n            .iops(15000)\n            .sizeInGb(15)\n            .build());\n\n        var terraformInstanceFilesystem = new FileFilesystem(\"terraformInstanceFilesystem\", FileFilesystemArgs.builder()\n            .name(\"filesystem-instance-terraform\")\n            .sizeInGb(100)\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .type(\"POP2-HM-2C-16G\")\n            .state(\"started\")\n            .tags(            \n                \"terraform-test\",\n                \"scaleway_instance_server\",\n                \"state\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .volumeType(\"sbs_volume\")\n                .volumeId(volume.id())\n                .build())\n            .filesystems(ServerFilesystemArgs.builder()\n                .filesystemId(terraformInstanceFilesystem.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  volume:\n    type: scaleway:block:Volume\n    properties:\n      iops: 15000\n      sizeInGb: 15\n  terraformInstanceFilesystem:\n    type: scaleway:FileFilesystem\n    name: terraform_instance_filesystem\n    properties:\n      name: filesystem-instance-terraform\n      sizeInGb: 100\n  base:\n    type: scaleway:instance:Server\n    properties:\n      type: POP2-HM-2C-16G\n      state: started\n      tags:\n        - terraform-test\n        - scaleway_instance_server\n        - state\n      rootVolume:\n        volumeType: sbs_volume\n        volumeId: ${volume.id}\n      filesystems:\n        - filesystemId: ${terraformInstanceFilesystem.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With a reserved IP\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ip = new scaleway.instance.Ip(\"ip\", {});\nconst web = new scaleway.instance.Server(\"web\", {\n    type: \"DEV1-S\",\n    image: \"f974feac-abae-4365-b988-8ec7d1cec10d\",\n    tags: [\n        \"hello\",\n        \"public\",\n    ],\n    ipId: ip.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nip = scaleway.instance.Ip(\"ip\")\nweb = scaleway.instance.Server(\"web\",\n    type=\"DEV1-S\",\n    image=\"f974feac-abae-4365-b988-8ec7d1cec10d\",\n    tags=[\n        \"hello\",\n        \"public\",\n    ],\n    ip_id=ip.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 ip = new Scaleway.Instance.Ip(\"ip\");\n\n    var web = new Scaleway.Instance.Server(\"web\", new()\n    {\n        Type = \"DEV1-S\",\n        Image = \"f974feac-abae-4365-b988-8ec7d1cec10d\",\n        Tags = new[]\n        {\n            \"hello\",\n            \"public\",\n        },\n        IpId = ip.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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip, err := instance.NewIp(ctx, \"ip\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"web\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tImage: pulumi.String(\"f974feac-abae-4365-b988-8ec7d1cec10d\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"hello\"),\n\t\t\t\tpulumi.String(\"public\"),\n\t\t\t},\n\t\t\tIpId: ip.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.instance.Ip;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\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 ip = new Ip(\"ip\");\n\n        var web = new Server(\"web\", ServerArgs.builder()\n            .type(\"DEV1-S\")\n            .image(\"f974feac-abae-4365-b988-8ec7d1cec10d\")\n            .tags(            \n                \"hello\",\n                \"public\")\n            .ipId(ip.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip:\n    type: scaleway:instance:Ip\n  web:\n    type: scaleway:instance:Server\n    properties:\n      type: DEV1-S\n      image: f974feac-abae-4365-b988-8ec7d1cec10d\n      tags:\n        - hello\n        - public\n      ipId: ${ip.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With security group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst www = new scaleway.instance.SecurityGroup(\"www\", {\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n    inboundRules: [\n        {\n            action: \"accept\",\n            port: 22,\n            ip: \"212.47.225.64\",\n        },\n        {\n            action: \"accept\",\n            port: 80,\n        },\n        {\n            action: \"accept\",\n            port: 443,\n        },\n    ],\n    outboundRules: [{\n        action: \"drop\",\n        ipRange: \"10.20.0.0/24\",\n    }],\n});\nconst web = new scaleway.instance.Server(\"web\", {\n    type: \"DEV1-S\",\n    image: \"ubuntu_jammy\",\n    securityGroupId: www.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nwww = scaleway.instance.SecurityGroup(\"www\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\",\n    inbound_rules=[\n        {\n            \"action\": \"accept\",\n            \"port\": 22,\n            \"ip\": \"212.47.225.64\",\n        },\n        {\n            \"action\": \"accept\",\n            \"port\": 80,\n        },\n        {\n            \"action\": \"accept\",\n            \"port\": 443,\n        },\n    ],\n    outbound_rules=[{\n        \"action\": \"drop\",\n        \"ip_range\": \"10.20.0.0/24\",\n    }])\nweb = scaleway.instance.Server(\"web\",\n    type=\"DEV1-S\",\n    image=\"ubuntu_jammy\",\n    security_group_id=www.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 www = new Scaleway.Instance.SecurityGroup(\"www\", new()\n    {\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n        InboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 22,\n                Ip = \"212.47.225.64\",\n            },\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 80,\n            },\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 443,\n            },\n        },\n        OutboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupOutboundRuleArgs\n            {\n                Action = \"drop\",\n                IpRange = \"10.20.0.0/24\",\n            },\n        },\n    });\n\n    var web = new Scaleway.Instance.Server(\"web\", new()\n    {\n        Type = \"DEV1-S\",\n        Image = \"ubuntu_jammy\",\n        SecurityGroupId = www.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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\twww, err := instance.NewSecurityGroup(ctx, \"www\", \u0026instance.SecurityGroupArgs{\n\t\t\tInboundDefaultPolicy:  pulumi.String(\"drop\"),\n\t\t\tOutboundDefaultPolicy: pulumi.String(\"accept\"),\n\t\t\tInboundRules: instance.SecurityGroupInboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"accept\"),\n\t\t\t\t\tPort:   pulumi.Int(22),\n\t\t\t\t\tIp:     pulumi.String(\"212.47.225.64\"),\n\t\t\t\t},\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"accept\"),\n\t\t\t\t\tPort:   pulumi.Int(80),\n\t\t\t\t},\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"accept\"),\n\t\t\t\t\tPort:   pulumi.Int(443),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOutboundRules: instance.SecurityGroupOutboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupOutboundRuleArgs{\n\t\t\t\t\tAction:  pulumi.String(\"drop\"),\n\t\t\t\t\tIpRange: pulumi.String(\"10.20.0.0/24\"),\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 = instance.NewServer(ctx, \"web\", \u0026instance.ServerArgs{\n\t\t\tType:            pulumi.String(\"DEV1-S\"),\n\t\t\tImage:           pulumi.String(\"ubuntu_jammy\"),\n\t\t\tSecurityGroupId: www.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.instance.SecurityGroup;\nimport com.pulumi.scaleway.instance.SecurityGroupArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupInboundRuleArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupOutboundRuleArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\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 www = new SecurityGroup(\"www\", SecurityGroupArgs.builder()\n            .inboundDefaultPolicy(\"drop\")\n            .outboundDefaultPolicy(\"accept\")\n            .inboundRules(            \n                SecurityGroupInboundRuleArgs.builder()\n                    .action(\"accept\")\n                    .port(22)\n                    .ip(\"212.47.225.64\")\n                    .build(),\n                SecurityGroupInboundRuleArgs.builder()\n                    .action(\"accept\")\n                    .port(80)\n                    .build(),\n                SecurityGroupInboundRuleArgs.builder()\n                    .action(\"accept\")\n                    .port(443)\n                    .build())\n            .outboundRules(SecurityGroupOutboundRuleArgs.builder()\n                .action(\"drop\")\n                .ipRange(\"10.20.0.0/24\")\n                .build())\n            .build());\n\n        var web = new Server(\"web\", ServerArgs.builder()\n            .type(\"DEV1-S\")\n            .image(\"ubuntu_jammy\")\n            .securityGroupId(www.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  www:\n    type: scaleway:instance:SecurityGroup\n    properties:\n      inboundDefaultPolicy: drop\n      outboundDefaultPolicy: accept\n      inboundRules:\n        - action: accept\n          port: '22'\n          ip: 212.47.225.64\n        - action: accept\n          port: '80'\n        - action: accept\n          port: '443'\n      outboundRules:\n        - action: drop\n          ipRange: 10.20.0.0/24\n  web:\n    type: scaleway:instance:Server\n    properties:\n      type: DEV1-S\n      image: ubuntu_jammy\n      securityGroupId: ${www.id}\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 \"@pulumiverse/scaleway\";\n\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {name: \"private_network_instance\"});\nconst base = new scaleway.instance.Server(\"base\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    privateNetworks: [{\n        pnId: pn01.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn01 = scaleway.network.PrivateNetwork(\"pn01\", name=\"private_network_instance\")\nbase = scaleway.instance.Server(\"base\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    private_networks=[{\n        \"pn_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 pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"private_network_instance\",\n    });\n\n    var @base = new Scaleway.Instance.Server(\"base\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Instance.Inputs.ServerPrivateNetworkArgs\n            {\n                PnId = 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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"private_network_instance\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"base\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tPrivateNetworks: instance.ServerPrivateNetworkArray{\n\t\t\t\t\u0026instance.ServerPrivateNetworkArgs{\n\t\t\t\t\tPnId: 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.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerPrivateNetworkArgs;\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 pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"private_network_instance\")\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .privateNetworks(ServerPrivateNetworkArgs.builder()\n                .pnId(pn01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: private_network_instance\n  base:\n    type: scaleway:instance:Server\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      privateNetworks:\n        - pnId: ${pn01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Root volume configuration\n\n### Resized block volume with installed image\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst image = new scaleway.instance.Server(\"image\", {\n    type: \"PRO2-XXS\",\n    image: \"ubuntu_jammy\",\n    rootVolume: {\n        sizeInGb: 100,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nimage = scaleway.instance.Server(\"image\",\n    type=\"PRO2-XXS\",\n    image=\"ubuntu_jammy\",\n    root_volume={\n        \"size_in_gb\": 100,\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 image = new Scaleway.Instance.Server(\"image\", new()\n    {\n        Type = \"PRO2-XXS\",\n        Image = \"ubuntu_jammy\",\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            SizeInGb = 100,\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewServer(ctx, \"image\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"PRO2-XXS\"),\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tSizeInGb: pulumi.Int(100),\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.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\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 image = new Server(\"image\", ServerArgs.builder()\n            .type(\"PRO2-XXS\")\n            .image(\"ubuntu_jammy\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .sizeInGb(100)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  image:\n    type: scaleway:instance:Server\n    properties:\n      type: PRO2-XXS\n      image: ubuntu_jammy\n      rootVolume:\n        sizeInGb: 100\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### From snapshot\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst snapshot = scaleway.block.getSnapshot({\n    name: \"my_snapshot\",\n});\nconst fromSnapshot = new scaleway.block.Volume(\"from_snapshot\", {\n    snapshotId: snapshot.then(snapshot =\u003e snapshot.id),\n    iops: 5000,\n});\nconst fromSnapshotServer = new scaleway.instance.Server(\"from_snapshot\", {\n    type: \"PRO2-XXS\",\n    rootVolume: {\n        volumeId: fromSnapshot.id,\n        volumeType: \"sbs_volume\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nsnapshot = scaleway.block.get_snapshot(name=\"my_snapshot\")\nfrom_snapshot = scaleway.block.Volume(\"from_snapshot\",\n    snapshot_id=snapshot.id,\n    iops=5000)\nfrom_snapshot_server = scaleway.instance.Server(\"from_snapshot\",\n    type=\"PRO2-XXS\",\n    root_volume={\n        \"volume_id\": from_snapshot.id,\n        \"volume_type\": \"sbs_volume\",\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 snapshot = Scaleway.Block.GetSnapshot.Invoke(new()\n    {\n        Name = \"my_snapshot\",\n    });\n\n    var fromSnapshot = new Scaleway.Block.Volume(\"from_snapshot\", new()\n    {\n        SnapshotId = snapshot.Apply(getSnapshotResult =\u003e getSnapshotResult.Id),\n        Iops = 5000,\n    });\n\n    var fromSnapshotServer = new Scaleway.Instance.Server(\"from_snapshot\", new()\n    {\n        Type = \"PRO2-XXS\",\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            VolumeId = fromSnapshot.Id,\n            VolumeType = \"sbs_volume\",\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/block\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsnapshot, err := block.LookupSnapshot(ctx, \u0026block.LookupSnapshotArgs{\n\t\t\tName: pulumi.StringRef(\"my_snapshot\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfromSnapshot, err := block.NewVolume(ctx, \"from_snapshot\", \u0026block.VolumeArgs{\n\t\t\tSnapshotId: pulumi.String(snapshot.Id),\n\t\t\tIops:       pulumi.Int(5000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"from_snapshot\", \u0026instance.ServerArgs{\n\t\t\tType: pulumi.String(\"PRO2-XXS\"),\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tVolumeId:   fromSnapshot.ID(),\n\t\t\t\tVolumeType: pulumi.String(\"sbs_volume\"),\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.block.BlockFunctions;\nimport com.pulumi.scaleway.block.inputs.GetSnapshotArgs;\nimport com.pulumi.scaleway.block.Volume;\nimport com.pulumi.scaleway.block.VolumeArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\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 snapshot = BlockFunctions.getSnapshot(GetSnapshotArgs.builder()\n            .name(\"my_snapshot\")\n            .build());\n\n        var fromSnapshot = new Volume(\"fromSnapshot\", VolumeArgs.builder()\n            .snapshotId(snapshot.id())\n            .iops(5000)\n            .build());\n\n        var fromSnapshotServer = new Server(\"fromSnapshotServer\", ServerArgs.builder()\n            .type(\"PRO2-XXS\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .volumeId(fromSnapshot.id())\n                .volumeType(\"sbs_volume\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  fromSnapshot:\n    type: scaleway:block:Volume\n    name: from_snapshot\n    properties:\n      snapshotId: ${snapshot.id}\n      iops: 5000\n  fromSnapshotServer:\n    type: scaleway:instance:Server\n    name: from_snapshot\n    properties:\n      type: PRO2-XXS\n      rootVolume:\n        volumeId: ${fromSnapshot.id}\n        volumeType: sbs_volume\nvariables:\n  snapshot:\n    fn::invoke:\n      function: scaleway:block:getSnapshot\n      arguments:\n        name: my_snapshot\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Scaleway Block Storage (SBS) volume\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.instance.Server(\"server\", {\n    type: \"PLAY2-MICRO\",\n    image: \"ubuntu_jammy\",\n    rootVolume: {\n        volumeType: \"sbs_volume\",\n        sbsIops: 15000,\n        sizeInGb: 50,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver = scaleway.instance.Server(\"server\",\n    type=\"PLAY2-MICRO\",\n    image=\"ubuntu_jammy\",\n    root_volume={\n        \"volume_type\": \"sbs_volume\",\n        \"sbs_iops\": 15000,\n        \"size_in_gb\": 50,\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 server = new Scaleway.Instance.Server(\"server\", new()\n    {\n        Type = \"PLAY2-MICRO\",\n        Image = \"ubuntu_jammy\",\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            VolumeType = \"sbs_volume\",\n            SbsIops = 15000,\n            SizeInGb = 50,\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewServer(ctx, \"server\", \u0026instance.ServerArgs{\n\t\t\tType:  pulumi.String(\"PLAY2-MICRO\"),\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tVolumeType: pulumi.String(\"sbs_volume\"),\n\t\t\t\tSbsIops:    pulumi.Int(15000),\n\t\t\t\tSizeInGb:   pulumi.Int(50),\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.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\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 Server(\"server\", ServerArgs.builder()\n            .type(\"PLAY2-MICRO\")\n            .image(\"ubuntu_jammy\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .volumeType(\"sbs_volume\")\n                .sbsIops(15000)\n                .sizeInGb(50)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  server:\n    type: scaleway:instance:Server\n    properties:\n      type: PLAY2-MICRO\n      image: ubuntu_jammy\n      rootVolume:\n        volumeType: sbs_volume\n        sbsIops: 15000\n        sizeInGb: 50\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Private Network\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e will recreate a new private network interface.\n\n- \u003cspan pulumi-lang-nodejs=\"`pnId`\" pulumi-lang-dotnet=\"`PnId`\" pulumi-lang-go=\"`pnId`\" pulumi-lang-python=\"`pn_id`\" pulumi-lang-yaml=\"`pnId`\" pulumi-lang-java=\"`pnId`\"\u003e`pn_id`\u003c/span\u003e - (Required) The private network ID where to connect.\n- \u003cspan pulumi-lang-nodejs=\"`macAddress`\" pulumi-lang-dotnet=\"`MacAddress`\" pulumi-lang-go=\"`macAddress`\" pulumi-lang-python=\"`mac_address`\" pulumi-lang-yaml=\"`macAddress`\" pulumi-lang-java=\"`macAddress`\"\u003e`mac_address`\u003c/span\u003e The private NIC MAC address.\n- \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e The private NIC state.\n- \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e - (Defaults to provider \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server must be created.\n\n\u003e **Important:** You can only attach an instance in the same zone as a private network.\n\u003e **Important:** Instance supports a maximum of 8 different private networks.\n\n## Import\n\nInstance servers can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:instance/server:Server web fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"additionalVolumeIds":{"type":"array","items":{"type":"string"},"description":"The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)\nattached to the server. Updates to this field will trigger a stop/start of the server.\n\n\u003e **Important:** If this field contains local volumes, the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n\n\u003e **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.\n"},"adminPasswordEncryptionSshKeyId":{"type":"string","description":"The ID of the SSH RSA key that will be used to encrypt the initial admin password for OS requiring it.\nMandatory for Windows OS. The\u003cspan pulumi-lang-nodejs=\" publicKey \" pulumi-lang-dotnet=\" PublicKey \" pulumi-lang-go=\" publicKey \" pulumi-lang-python=\" public_key \" pulumi-lang-yaml=\" publicKey \" pulumi-lang-java=\" publicKey \"\u003e public_key \u003c/span\u003evalue of this key is used to encrypt the admin password.\nWhen set to an empty string, it resets this value and\u003cspan pulumi-lang-nodejs=\" adminPasswordEncryptedValue \" pulumi-lang-dotnet=\" AdminPasswordEncryptedValue \" pulumi-lang-go=\" adminPasswordEncryptedValue \" pulumi-lang-python=\" admin_password_encrypted_value \" pulumi-lang-yaml=\" adminPasswordEncryptedValue \" pulumi-lang-java=\" adminPasswordEncryptedValue \"\u003e admin_password_encrypted_value \u003c/span\u003eto an empty string so a new password may be generated.\n"},"bootType":{"type":"string","description":"The boot Type of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bootscript`\" pulumi-lang-dotnet=\"`Bootscript`\" pulumi-lang-go=\"`bootscript`\" pulumi-lang-python=\"`bootscript`\" pulumi-lang-yaml=\"`bootscript`\" pulumi-lang-java=\"`bootscript`\"\u003e`bootscript`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`rescue`\" pulumi-lang-dotnet=\"`Rescue`\" pulumi-lang-go=\"`rescue`\" pulumi-lang-python=\"`rescue`\" pulumi-lang-yaml=\"`rescue`\" pulumi-lang-java=\"`rescue`\"\u003e`rescue`\u003c/span\u003e.\n"},"bootscriptId":{"type":"string","description":"ID of the target bootscript (set\u003cspan pulumi-lang-nodejs=\" bootType \" pulumi-lang-dotnet=\" BootType \" pulumi-lang-go=\" bootType \" pulumi-lang-python=\" boot_type \" pulumi-lang-yaml=\" bootType \" pulumi-lang-java=\" bootType \"\u003e boot_type \u003c/span\u003eto bootscript)","deprecationMessage":"bootscript is not supported anymore."},"cloudInit":{"type":"string","description":"The cloud init script associated with this server"},"enableDynamicIp":{"type":"boolean","description":"If true a dynamic IP will be attached to the server.\n"},"filesystems":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerFilesystem:ServerFilesystem"},"description":"List of filesystems attached to the server.\n"},"image":{"type":"string","description":"The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)\nto find either the right \u003cspan pulumi-lang-nodejs=\"`label`\" pulumi-lang-dotnet=\"`Label`\" pulumi-lang-go=\"`label`\" pulumi-lang-python=\"`label`\" pulumi-lang-yaml=\"`label`\" pulumi-lang-java=\"`label`\"\u003e`label`\u003c/span\u003e or the right local image `ID` for a given \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n\nTo obtain a local-image UUID from a label, please use: ```scw marketplace local-image list image-label=\u003cLABEL\u003e```\n"},"ipId":{"type":"string","description":"The ID of the reserved IP that is attached to the server.\n"},"ipIds":{"type":"array","items":{"type":"string"},"description":"List of ID of reserved IPs that are attached to the server. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e.\n\n\u003e \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e migration: if moving the ip from the old \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e field to the new \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e, it should not detach the ip.\n"},"name":{"type":"string","description":"The name of the server.\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"placementGroupId":{"type":"string","description":"The [placement group](\u003chttps://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group\u003e the server is attached to.\n\n\u003e **Important:** When updating \u003cspan pulumi-lang-nodejs=\"`placementGroupId`\" pulumi-lang-dotnet=\"`PlacementGroupId`\" pulumi-lang-go=\"`placementGroupId`\" pulumi-lang-python=\"`placement_group_id`\" pulumi-lang-yaml=\"`placementGroupId`\" pulumi-lang-java=\"`placementGroupId`\"\u003e`placement_group_id`\u003c/span\u003e the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n"},"placementGroupPolicyRespected":{"type":"boolean","description":"(Deprecated) Always false, use\u003cspan pulumi-lang-nodejs=\" instancePlacementGroup \" pulumi-lang-dotnet=\" InstancePlacementGroup \" pulumi-lang-go=\" instancePlacementGroup \" pulumi-lang-python=\" instance_placement_group \" pulumi-lang-yaml=\" instancePlacementGroup \" pulumi-lang-java=\" instancePlacementGroup \"\u003e instance_placement_group \u003c/span\u003eresource to known when the placement group policy is respected.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerPrivateIp:ServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerPrivateNetwork:ServerPrivateNetwork"},"description":"The private network associated with the server.\nUse the \u003cspan pulumi-lang-nodejs=\"`pnId`\" pulumi-lang-dotnet=\"`PnId`\" pulumi-lang-go=\"`pnId`\" pulumi-lang-python=\"`pn_id`\" pulumi-lang-yaml=\"`pnId`\" pulumi-lang-java=\"`pnId`\"\u003e`pn_id`\u003c/span\u003e key to attach a \u003cspan pulumi-lang-nodejs=\"[privateNetwork]\" pulumi-lang-dotnet=\"[PrivateNetwork]\" pulumi-lang-go=\"[privateNetwork]\" pulumi-lang-python=\"[private_network]\" pulumi-lang-yaml=\"[privateNetwork]\" pulumi-lang-java=\"[privateNetwork]\"\u003e[private_network]\u003c/span\u003e(https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n"},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"publicIps":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerPublicIp:ServerPublicIp"},"description":"The list of public IPs of the server.\n"},"replaceOnTypeChange":{"type":"boolean","description":"If true, the server will be replaced if \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is changed. Otherwise, the server will migrate.\n"},"rootVolume":{"$ref":"#/types/scaleway:instance/ServerRootVolume:ServerRootVolume","description":"Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.\n"},"securityGroupId":{"type":"string","description":"The security group the server is attached to"},"state":{"type":"string","description":"The state of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`started`\" pulumi-lang-dotnet=\"`Started`\" pulumi-lang-go=\"`started`\" pulumi-lang-python=\"`started`\" pulumi-lang-yaml=\"`started`\" pulumi-lang-java=\"`started`\"\u003e`started`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`standby`\" pulumi-lang-dotnet=\"`Standby`\" pulumi-lang-go=\"`standby`\" pulumi-lang-python=\"`standby`\" pulumi-lang-yaml=\"`standby`\" pulumi-lang-java=\"`standby`\"\u003e`standby`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"type":{"type":"string","description":"The commercial type of the server.\nYou find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).\nUpdates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).\nUse \u003cspan pulumi-lang-nodejs=\"`replaceOnTypeChange`\" pulumi-lang-dotnet=\"`ReplaceOnTypeChange`\" pulumi-lang-go=\"`replaceOnTypeChange`\" pulumi-lang-python=\"`replace_on_type_change`\" pulumi-lang-yaml=\"`replaceOnTypeChange`\" pulumi-lang-java=\"`replaceOnTypeChange`\"\u003e`replace_on_type_change`\u003c/span\u003e to trigger replacement instead of migration.\n\n\u003e **Important:** If \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.\n"},"userData":{"type":"object","additionalProperties":{"type":"string"},"description":"The user data associated with the server.\nUse the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n- Binary files using filebase64.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n"}},"required":["bootscriptId","cloudInit","filesystems","name","organizationId","placementGroupPolicyRespected","privateIps","projectId","publicIps","rootVolume","securityGroupId","state","type","userData"],"inputProperties":{"additionalVolumeIds":{"type":"array","items":{"type":"string"},"description":"The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)\nattached to the server. Updates to this field will trigger a stop/start of the server.\n\n\u003e **Important:** If this field contains local volumes, the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n\n\u003e **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.\n"},"adminPasswordEncryptionSshKeyId":{"type":"string","description":"The ID of the SSH RSA key that will be used to encrypt the initial admin password for OS requiring it.\nMandatory for Windows OS. The\u003cspan pulumi-lang-nodejs=\" publicKey \" pulumi-lang-dotnet=\" PublicKey \" pulumi-lang-go=\" publicKey \" pulumi-lang-python=\" public_key \" pulumi-lang-yaml=\" publicKey \" pulumi-lang-java=\" publicKey \"\u003e public_key \u003c/span\u003evalue of this key is used to encrypt the admin password.\nWhen set to an empty string, it resets this value and\u003cspan pulumi-lang-nodejs=\" adminPasswordEncryptedValue \" pulumi-lang-dotnet=\" AdminPasswordEncryptedValue \" pulumi-lang-go=\" adminPasswordEncryptedValue \" pulumi-lang-python=\" admin_password_encrypted_value \" pulumi-lang-yaml=\" adminPasswordEncryptedValue \" pulumi-lang-java=\" adminPasswordEncryptedValue \"\u003e admin_password_encrypted_value \u003c/span\u003eto an empty string so a new password may be generated.\n"},"bootType":{"type":"string","description":"The boot Type of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bootscript`\" pulumi-lang-dotnet=\"`Bootscript`\" pulumi-lang-go=\"`bootscript`\" pulumi-lang-python=\"`bootscript`\" pulumi-lang-yaml=\"`bootscript`\" pulumi-lang-java=\"`bootscript`\"\u003e`bootscript`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`rescue`\" pulumi-lang-dotnet=\"`Rescue`\" pulumi-lang-go=\"`rescue`\" pulumi-lang-python=\"`rescue`\" pulumi-lang-yaml=\"`rescue`\" pulumi-lang-java=\"`rescue`\"\u003e`rescue`\u003c/span\u003e.\n"},"bootscriptId":{"type":"string","description":"ID of the target bootscript (set\u003cspan pulumi-lang-nodejs=\" bootType \" pulumi-lang-dotnet=\" BootType \" pulumi-lang-go=\" bootType \" pulumi-lang-python=\" boot_type \" pulumi-lang-yaml=\" bootType \" pulumi-lang-java=\" bootType \"\u003e boot_type \u003c/span\u003eto bootscript)","deprecationMessage":"bootscript is not supported anymore."},"cloudInit":{"type":"string","description":"The cloud init script associated with this server"},"enableDynamicIp":{"type":"boolean","description":"If true a dynamic IP will be attached to the server.\n"},"filesystems":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerFilesystem:ServerFilesystem"},"description":"List of filesystems attached to the server.\n"},"image":{"type":"string","description":"The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)\nto find either the right \u003cspan pulumi-lang-nodejs=\"`label`\" pulumi-lang-dotnet=\"`Label`\" pulumi-lang-go=\"`label`\" pulumi-lang-python=\"`label`\" pulumi-lang-yaml=\"`label`\" pulumi-lang-java=\"`label`\"\u003e`label`\u003c/span\u003e or the right local image `ID` for a given \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n\nTo obtain a local-image UUID from a label, please use: ```scw marketplace local-image list image-label=\u003cLABEL\u003e```\n"},"ipId":{"type":"string","description":"The ID of the reserved IP that is attached to the server.\n"},"ipIds":{"type":"array","items":{"type":"string"},"description":"List of ID of reserved IPs that are attached to the server. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e.\n\n\u003e \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e migration: if moving the ip from the old \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e field to the new \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e, it should not detach the ip.\n"},"name":{"type":"string","description":"The name of the server.\n"},"placementGroupId":{"type":"string","description":"The [placement group](\u003chttps://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group\u003e the server is attached to.\n\n\u003e **Important:** When updating \u003cspan pulumi-lang-nodejs=\"`placementGroupId`\" pulumi-lang-dotnet=\"`PlacementGroupId`\" pulumi-lang-go=\"`placementGroupId`\" pulumi-lang-python=\"`placement_group_id`\" pulumi-lang-yaml=\"`placementGroupId`\" pulumi-lang-java=\"`placementGroupId`\"\u003e`placement_group_id`\u003c/span\u003e the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerPrivateIp:ServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerPrivateNetwork:ServerPrivateNetwork"},"description":"The private network associated with the server.\nUse the \u003cspan pulumi-lang-nodejs=\"`pnId`\" pulumi-lang-dotnet=\"`PnId`\" pulumi-lang-go=\"`pnId`\" pulumi-lang-python=\"`pn_id`\" pulumi-lang-yaml=\"`pnId`\" pulumi-lang-java=\"`pnId`\"\u003e`pn_id`\u003c/span\u003e key to attach a \u003cspan pulumi-lang-nodejs=\"[privateNetwork]\" pulumi-lang-dotnet=\"[PrivateNetwork]\" pulumi-lang-go=\"[privateNetwork]\" pulumi-lang-python=\"[private_network]\" pulumi-lang-yaml=\"[privateNetwork]\" pulumi-lang-java=\"[privateNetwork]\"\u003e[private_network]\u003c/span\u003e(https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"publicIps":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerPublicIp:ServerPublicIp"},"description":"The list of public IPs of the server.\n"},"replaceOnTypeChange":{"type":"boolean","description":"If true, the server will be replaced if \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is changed. Otherwise, the server will migrate.\n"},"rootVolume":{"$ref":"#/types/scaleway:instance/ServerRootVolume:ServerRootVolume","description":"Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.\n"},"securityGroupId":{"type":"string","description":"The security group the server is attached to"},"state":{"type":"string","description":"The state of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`started`\" pulumi-lang-dotnet=\"`Started`\" pulumi-lang-go=\"`started`\" pulumi-lang-python=\"`started`\" pulumi-lang-yaml=\"`started`\" pulumi-lang-java=\"`started`\"\u003e`started`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`standby`\" pulumi-lang-dotnet=\"`Standby`\" pulumi-lang-go=\"`standby`\" pulumi-lang-python=\"`standby`\" pulumi-lang-yaml=\"`standby`\" pulumi-lang-java=\"`standby`\"\u003e`standby`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"type":{"type":"string","description":"The commercial type of the server.\nYou find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).\nUpdates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).\nUse \u003cspan pulumi-lang-nodejs=\"`replaceOnTypeChange`\" pulumi-lang-dotnet=\"`ReplaceOnTypeChange`\" pulumi-lang-go=\"`replaceOnTypeChange`\" pulumi-lang-python=\"`replace_on_type_change`\" pulumi-lang-yaml=\"`replaceOnTypeChange`\" pulumi-lang-java=\"`replaceOnTypeChange`\"\u003e`replace_on_type_change`\u003c/span\u003e to trigger replacement instead of migration.\n\n\u003e **Important:** If \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.\n"},"userData":{"type":"object","additionalProperties":{"type":"string"},"description":"The user data associated with the server.\nUse the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n- Binary files using filebase64.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering Server resources.\n","properties":{"additionalVolumeIds":{"type":"array","items":{"type":"string"},"description":"The [additional volumes](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types)\nattached to the server. Updates to this field will trigger a stop/start of the server.\n\n\u003e **Important:** If this field contains local volumes, the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n\n\u003e **Important:** If this field contains local volumes, you have to first detach them, in one apply, and then delete the volume in another apply.\n"},"adminPasswordEncryptionSshKeyId":{"type":"string","description":"The ID of the SSH RSA key that will be used to encrypt the initial admin password for OS requiring it.\nMandatory for Windows OS. The\u003cspan pulumi-lang-nodejs=\" publicKey \" pulumi-lang-dotnet=\" PublicKey \" pulumi-lang-go=\" publicKey \" pulumi-lang-python=\" public_key \" pulumi-lang-yaml=\" publicKey \" pulumi-lang-java=\" publicKey \"\u003e public_key \u003c/span\u003evalue of this key is used to encrypt the admin password.\nWhen set to an empty string, it resets this value and\u003cspan pulumi-lang-nodejs=\" adminPasswordEncryptedValue \" pulumi-lang-dotnet=\" AdminPasswordEncryptedValue \" pulumi-lang-go=\" adminPasswordEncryptedValue \" pulumi-lang-python=\" admin_password_encrypted_value \" pulumi-lang-yaml=\" adminPasswordEncryptedValue \" pulumi-lang-java=\" adminPasswordEncryptedValue \"\u003e admin_password_encrypted_value \u003c/span\u003eto an empty string so a new password may be generated.\n"},"bootType":{"type":"string","description":"The boot Type of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bootscript`\" pulumi-lang-dotnet=\"`Bootscript`\" pulumi-lang-go=\"`bootscript`\" pulumi-lang-python=\"`bootscript`\" pulumi-lang-yaml=\"`bootscript`\" pulumi-lang-java=\"`bootscript`\"\u003e`bootscript`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`rescue`\" pulumi-lang-dotnet=\"`Rescue`\" pulumi-lang-go=\"`rescue`\" pulumi-lang-python=\"`rescue`\" pulumi-lang-yaml=\"`rescue`\" pulumi-lang-java=\"`rescue`\"\u003e`rescue`\u003c/span\u003e.\n"},"bootscriptId":{"type":"string","description":"ID of the target bootscript (set\u003cspan pulumi-lang-nodejs=\" bootType \" pulumi-lang-dotnet=\" BootType \" pulumi-lang-go=\" bootType \" pulumi-lang-python=\" boot_type \" pulumi-lang-yaml=\" bootType \" pulumi-lang-java=\" bootType \"\u003e boot_type \u003c/span\u003eto bootscript)","deprecationMessage":"bootscript is not supported anymore."},"cloudInit":{"type":"string","description":"The cloud init script associated with this server"},"enableDynamicIp":{"type":"boolean","description":"If true a dynamic IP will be attached to the server.\n"},"filesystems":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerFilesystem:ServerFilesystem"},"description":"List of filesystems attached to the server.\n"},"image":{"type":"string","description":"The UUID or the label of the base image used by the server. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)\nto find either the right \u003cspan pulumi-lang-nodejs=\"`label`\" pulumi-lang-dotnet=\"`Label`\" pulumi-lang-go=\"`label`\" pulumi-lang-python=\"`label`\" pulumi-lang-yaml=\"`label`\" pulumi-lang-java=\"`label`\"\u003e`label`\u003c/span\u003e or the right local image `ID` for a given \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e. Optional when creating an instance with an existing root volume.\n\nYou can check the available labels with our [CLI](https://www.scaleway.com/en/docs/compute/instances/api-cli/creating-managing-instances-with-cliv2/). ```scw marketplace image list```\n\nTo retrieve more information by label please use: ```scw marketplace image get label=\u003cLABEL\u003e```\n\nTo obtain a local-image UUID from a label, please use: ```scw marketplace local-image list image-label=\u003cLABEL\u003e```\n"},"ipId":{"type":"string","description":"The ID of the reserved IP that is attached to the server.\n"},"ipIds":{"type":"array","items":{"type":"string"},"description":"List of ID of reserved IPs that are attached to the server. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e.\n\n\u003e \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e migration: if moving the ip from the old \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e field to the new \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e, it should not detach the ip.\n"},"name":{"type":"string","description":"The name of the server.\n"},"organizationId":{"type":"string","description":"The organization ID the server is associated with.\n"},"placementGroupId":{"type":"string","description":"The [placement group](\u003chttps://www.scaleway.com/en/developers/api/instance/#path-security-groups-update-a-security-group\u003e the server is attached to.\n\n\u003e **Important:** When updating \u003cspan pulumi-lang-nodejs=\"`placementGroupId`\" pulumi-lang-dotnet=\"`PlacementGroupId`\" pulumi-lang-go=\"`placementGroupId`\" pulumi-lang-python=\"`placement_group_id`\" pulumi-lang-yaml=\"`placementGroupId`\" pulumi-lang-java=\"`placementGroupId`\"\u003e`placement_group_id`\u003c/span\u003e the \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e, otherwise it will fail.\n"},"placementGroupPolicyRespected":{"type":"boolean","description":"(Deprecated) Always false, use\u003cspan pulumi-lang-nodejs=\" instancePlacementGroup \" pulumi-lang-dotnet=\" InstancePlacementGroup \" pulumi-lang-go=\" instancePlacementGroup \" pulumi-lang-python=\" instance_placement_group \" pulumi-lang-yaml=\" instancePlacementGroup \" pulumi-lang-java=\" instancePlacementGroup \"\u003e instance_placement_group \u003c/span\u003eresource to known when the placement group policy is respected.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerPrivateIp:ServerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerPrivateNetwork:ServerPrivateNetwork"},"description":"The private network associated with the server.\nUse the \u003cspan pulumi-lang-nodejs=\"`pnId`\" pulumi-lang-dotnet=\"`PnId`\" pulumi-lang-go=\"`pnId`\" pulumi-lang-python=\"`pn_id`\" pulumi-lang-yaml=\"`pnId`\" pulumi-lang-java=\"`pnId`\"\u003e`pn_id`\u003c/span\u003e key to attach a \u003cspan pulumi-lang-nodejs=\"[privateNetwork]\" pulumi-lang-dotnet=\"[PrivateNetwork]\" pulumi-lang-go=\"[privateNetwork]\" pulumi-lang-python=\"[private_network]\" pulumi-lang-yaml=\"[privateNetwork]\" pulumi-lang-java=\"[privateNetwork]\"\u003e[private_network]\u003c/span\u003e(https://www.scaleway.com/en/developers/api/instance/#path-private-nics-list-all-private-nics) on your instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the server is associated with.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"Set to true to activate server protection option.\n"},"publicIps":{"type":"array","items":{"$ref":"#/types/scaleway:instance/ServerPublicIp:ServerPublicIp"},"description":"The list of public IPs of the server.\n"},"replaceOnTypeChange":{"type":"boolean","description":"If true, the server will be replaced if \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is changed. Otherwise, the server will migrate.\n"},"rootVolume":{"$ref":"#/types/scaleway:instance/ServerRootVolume:ServerRootVolume","description":"Root [volume](https://www.scaleway.com/en/developers/api/instance/#path-volume-types-list-volume-types) attached to the server on creation.\n"},"securityGroupId":{"type":"string","description":"The security group the server is attached to"},"state":{"type":"string","description":"The state of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`started`\" pulumi-lang-dotnet=\"`Started`\" pulumi-lang-go=\"`started`\" pulumi-lang-python=\"`started`\" pulumi-lang-yaml=\"`started`\" pulumi-lang-java=\"`started`\"\u003e`started`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`standby`\" pulumi-lang-dotnet=\"`Standby`\" pulumi-lang-go=\"`standby`\" pulumi-lang-python=\"`standby`\" pulumi-lang-yaml=\"`standby`\" pulumi-lang-java=\"`standby`\"\u003e`standby`\u003c/span\u003e.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the server.\n"},"type":{"type":"string","description":"The commercial type of the server.\nYou find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).\nUpdates to this field will migrate the server, local storage constraint must be respected. [More info](https://www.scaleway.com/en/docs/compute/instances/api-cli/migrating-instances/).\nUse \u003cspan pulumi-lang-nodejs=\"`replaceOnTypeChange`\" pulumi-lang-dotnet=\"`ReplaceOnTypeChange`\" pulumi-lang-go=\"`replaceOnTypeChange`\" pulumi-lang-python=\"`replace_on_type_change`\" pulumi-lang-yaml=\"`replaceOnTypeChange`\" pulumi-lang-java=\"`replaceOnTypeChange`\"\u003e`replace_on_type_change`\u003c/span\u003e to trigger replacement instead of migration.\n\n\u003e **Important:** If \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e change and migration occurs, the server will be stopped and changed backed to its original state. It will be started again if it was running.\n"},"userData":{"type":"object","additionalProperties":{"type":"string"},"description":"The user data associated with the server.\nUse the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n- Binary files using filebase64.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/instanceServer:InstanceServer"}]},"scaleway:instance/snapshot:Snapshot":{"description":"Creates and manages Scaleway Compute Snapshots.\nFor more information,\nsee the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-snapshots-list-snapshots).\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.instance.Snapshot(\"main\", {\n    name: \"some-snapshot-name\",\n    volumeId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.instance.Snapshot(\"main\",\n    name=\"some-snapshot-name\",\n    volume_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 main = new Scaleway.Instance.Snapshot(\"main\", new()\n    {\n        Name = \"some-snapshot-name\",\n        VolumeId = \"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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewSnapshot(ctx, \"main\", \u0026instance.SnapshotArgs{\n\t\t\tName:     pulumi.String(\"some-snapshot-name\"),\n\t\t\tVolumeId: 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.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\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 Snapshot(\"main\", SnapshotArgs.builder()\n            .name(\"some-snapshot-name\")\n            .volumeId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:instance:Snapshot\n    properties:\n      name: some-snapshot-name\n      volumeId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with Unified type snapshot\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.instance.Volume(\"main\", {\n    type: \"l_ssd\",\n    sizeInGb: 10,\n});\nconst mainServer = new scaleway.instance.Server(\"main\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    rootVolume: {\n        sizeInGb: 10,\n        volumeType: \"l_ssd\",\n    },\n    additionalVolumeIds: [main.id],\n});\nconst mainSnapshot = new scaleway.instance.Snapshot(\"main\", {volumeId: main.id}, {\n    dependsOn: [mainServer],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.instance.Volume(\"main\",\n    type=\"l_ssd\",\n    size_in_gb=10)\nmain_server = scaleway.instance.Server(\"main\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    root_volume={\n        \"size_in_gb\": 10,\n        \"volume_type\": \"l_ssd\",\n    },\n    additional_volume_ids=[main.id])\nmain_snapshot = scaleway.instance.Snapshot(\"main\", volume_id=main.id,\nopts = pulumi.ResourceOptions(depends_on=[main_server]))\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.Instance.Volume(\"main\", new()\n    {\n        Type = \"l_ssd\",\n        SizeInGb = 10,\n    });\n\n    var mainServer = new Scaleway.Instance.Server(\"main\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        RootVolume = new Scaleway.Instance.Inputs.ServerRootVolumeArgs\n        {\n            SizeInGb = 10,\n            VolumeType = \"l_ssd\",\n        },\n        AdditionalVolumeIds = new[]\n        {\n            main.Id,\n        },\n    });\n\n    var mainSnapshot = new Scaleway.Instance.Snapshot(\"main\", new()\n    {\n        VolumeId = main.Id,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            mainServer,\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := instance.NewVolume(ctx, \"main\", \u0026instance.VolumeArgs{\n\t\t\tType:     pulumi.String(\"l_ssd\"),\n\t\t\tSizeInGb: pulumi.Int(10),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainServer, err := instance.NewServer(ctx, \"main\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tRootVolume: \u0026instance.ServerRootVolumeArgs{\n\t\t\t\tSizeInGb:   pulumi.Int(10),\n\t\t\t\tVolumeType: pulumi.String(\"l_ssd\"),\n\t\t\t},\n\t\t\tAdditionalVolumeIds: pulumi.StringArray{\n\t\t\t\tmain.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewSnapshot(ctx, \"main\", \u0026instance.SnapshotArgs{\n\t\t\tVolumeId: main.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmainServer,\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.instance.Volume;\nimport com.pulumi.scaleway.instance.VolumeArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerRootVolumeArgs;\nimport com.pulumi.scaleway.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var main = new Volume(\"main\", VolumeArgs.builder()\n            .type(\"l_ssd\")\n            .sizeInGb(10)\n            .build());\n\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .rootVolume(ServerRootVolumeArgs.builder()\n                .sizeInGb(10)\n                .volumeType(\"l_ssd\")\n                .build())\n            .additionalVolumeIds(main.id())\n            .build());\n\n        var mainSnapshot = new Snapshot(\"mainSnapshot\", SnapshotArgs.builder()\n            .volumeId(main.id())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(mainServer)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:instance:Volume\n    properties:\n      type: l_ssd\n      sizeInGb: 10\n  mainServer:\n    type: scaleway:instance:Server\n    name: main\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      rootVolume:\n        sizeInGb: 10\n        volumeType: l_ssd\n      additionalVolumeIds:\n        - ${main.id}\n  mainSnapshot:\n    type: scaleway:instance:Snapshot\n    name: main\n    properties:\n      volumeId: ${main.id}\n    options:\n      dependsOn:\n        - ${mainServer}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example importing a local qcow2 file\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst bucket = new scaleway.object.Bucket(\"bucket\", {name: \"snapshot-qcow-import\"});\nconst qcow = new scaleway.object.Item(\"qcow\", {\n    bucket: bucket.name,\n    key: \"server.qcow2\",\n    file: \"myqcow.qcow2\",\n});\nconst snapshot = new scaleway.instance.Snapshot(\"snapshot\", {\"import\": {\n    bucket: qcow.bucket,\n    key: qcow.key,\n}});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbucket = scaleway.object.Bucket(\"bucket\", name=\"snapshot-qcow-import\")\nqcow = scaleway.object.Item(\"qcow\",\n    bucket=bucket.name,\n    key=\"server.qcow2\",\n    file=\"myqcow.qcow2\")\nsnapshot = scaleway.instance.Snapshot(\"snapshot\", import_={\n    \"bucket\": qcow.bucket,\n    \"key\": qcow.key,\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 bucket = new Scaleway.Object.Bucket(\"bucket\", new()\n    {\n        Name = \"snapshot-qcow-import\",\n    });\n\n    var qcow = new Scaleway.Object.Item(\"qcow\", new()\n    {\n        Bucket = bucket.Name,\n        Key = \"server.qcow2\",\n        File = \"myqcow.qcow2\",\n    });\n\n    var snapshot = new Scaleway.Instance.Snapshot(\"snapshot\", new()\n    {\n        Import = new Scaleway.Instance.Inputs.SnapshotImportArgs\n        {\n            Bucket = qcow.Bucket,\n            Key = qcow.Key,\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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucket, err := object.NewBucket(ctx, \"bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"snapshot-qcow-import\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqcow, err := object.NewItem(ctx, \"qcow\", \u0026object.ItemArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tKey:    pulumi.String(\"server.qcow2\"),\n\t\t\tFile:   pulumi.String(\"myqcow.qcow2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewSnapshot(ctx, \"snapshot\", \u0026instance.SnapshotArgs{\n\t\t\tImport: \u0026instance.SnapshotImportArgs{\n\t\t\t\tBucket: qcow.Bucket,\n\t\t\t\tKey:    qcow.Key,\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.Item;\nimport com.pulumi.scaleway.object.ItemArgs;\nimport com.pulumi.scaleway.instance.Snapshot;\nimport com.pulumi.scaleway.instance.SnapshotArgs;\nimport com.pulumi.scaleway.instance.inputs.SnapshotImportArgs;\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 bucket = new Bucket(\"bucket\", BucketArgs.builder()\n            .name(\"snapshot-qcow-import\")\n            .build());\n\n        var qcow = new Item(\"qcow\", ItemArgs.builder()\n            .bucket(bucket.name())\n            .key(\"server.qcow2\")\n            .file(\"myqcow.qcow2\")\n            .build());\n\n        var snapshot = new Snapshot(\"snapshot\", SnapshotArgs.builder()\n            .import_(SnapshotImportArgs.builder()\n                .bucket(qcow.bucket())\n                .key(qcow.key())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: snapshot-qcow-import\n  qcow:\n    type: scaleway:object:Item\n    properties:\n      bucket: ${bucket.name}\n      key: server.qcow2\n      file: myqcow.qcow2\n  snapshot:\n    type: scaleway:instance:Snapshot\n    properties:\n      import:\n        bucket: ${qcow.bucket}\n        key: ${qcow.key}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSnapshots can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:instance/snapshot:Snapshot main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The snapshot creation time.\n"},"import":{"$ref":"#/types/scaleway:instance/SnapshotImport:SnapshotImport","description":"Import a snapshot from a qcow2 file located in a bucket\n"},"name":{"type":"string","description":"The name of the snapshot. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The organization ID the snapshot is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the snapshot is\nassociated with.\n"},"sizeInGb":{"type":"integer","description":"(Optional) The size of the snapshot.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"type":{"type":"string","description":"The snapshot's volume type.  The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD).\nUpdates to this field will recreate a new resource.\n"},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe snapshot should be created.\n"}},"required":["createdAt","name","organizationId","projectId","sizeInGb","type"],"inputProperties":{"import":{"$ref":"#/types/scaleway:instance/SnapshotImport:SnapshotImport","description":"Import a snapshot from a qcow2 file located in a bucket\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot. If not provided it will be randomly generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the snapshot is\nassociated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"type":{"type":"string","description":"The snapshot's volume type.  The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD).\nUpdates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe snapshot should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Snapshot resources.\n","properties":{"createdAt":{"type":"string","description":"The snapshot creation time.\n"},"import":{"$ref":"#/types/scaleway:instance/SnapshotImport:SnapshotImport","description":"Import a snapshot from a qcow2 file located in a bucket\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the snapshot. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The organization ID the snapshot is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the snapshot is\nassociated with.\n","willReplaceOnChanges":true},"sizeInGb":{"type":"integer","description":"(Optional) The size of the snapshot.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the snapshot.\n"},"type":{"type":"string","description":"The snapshot's volume type.  The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD).\nUpdates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"volumeId":{"type":"string","description":"The ID of the volume to take a snapshot from.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe snapshot should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/instanceSnapshot:InstanceSnapshot"}]},"scaleway:instance/userData:UserData":{"description":"Creates and manages Scaleway compute Instance User Data values.\n\nUser data is a key value store API you can use to provide data from and to your server without authentication. It is the mechanism by which a user can pass information contained in a local file to an Instance at launch time.\n\nThe typical use case is to pass something like a shell script or a configuration file as user data.\n\nFor more information about \u003cspan pulumi-lang-nodejs=\"[userData]\" pulumi-lang-dotnet=\"[UserData]\" pulumi-lang-go=\"[userData]\" pulumi-lang-python=\"[user_data]\" pulumi-lang-yaml=\"[userData]\" pulumi-lang-java=\"[userData]\"\u003e[user_data]\u003c/span\u003e(https://www.scaleway.com/en/developers/api/instance/#path-user-data-list-user-data) check [our documentation guide](https://www.scaleway.com/en/docs/compute/instances/how-to/use-boot-modes/#how-to-use-cloud-init).\n\nAbout cloud-init documentation please check [the official documentation](https://cloudinit.readthedocs.io/en/latest/).\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 config = new pulumi.Config();\nconst userData = config.getObject\u003cRecord\u003cstring, any\u003e\u003e(\"userData\") || {\n    \"cloud-init\": `#cloud-config\napt-update: true\napt-upgrade: true\n`,\n    foo: \"bar\",\n};\nconst mainServer = new scaleway.instance.Server(\"main\", {\n    image: \"ubuntu_focal\",\n    type: \"DEV1-S\",\n});\n// User data with a single value\nconst main = new scaleway.instance.UserData(\"main\", {\n    serverId: mainServer.id,\n    key: \"foo\",\n    value: \"bar\",\n});\n// User Data with many keys.\nconst data: scaleway.instance.UserData[] = [];\nfor (const range of Object.entries(userData).map(([k, v]) =\u003e ({key: k, value: v}))) {\n    data.push(new scaleway.instance.UserData(`data-${range.key}`, {\n        serverId: mainServer.id,\n        key: range.key,\n        value: range.value,\n    }));\n}\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\nuser_data = config.get_object(\"userData\")\nif user_data is None:\n    user_data = {\n        \"cloud-init\": \"\"\"#cloud-config\napt-update: true\napt-upgrade: true\n\"\"\",\n        \"foo\": \"bar\",\n    }\nmain_server = scaleway.instance.Server(\"main\",\n    image=\"ubuntu_focal\",\n    type=\"DEV1-S\")\n# User data with a single value\nmain = scaleway.instance.UserData(\"main\",\n    server_id=main_server.id,\n    key=\"foo\",\n    value=\"bar\")\n# User Data with many keys.\ndata = []\nfor range in [{\"key\": k, \"value\": v} for [k, v] in enumerate(user_data)]:\n    data.append(scaleway.instance.UserData(f\"data-{range['key']}\",\n        server_id=main_server.id,\n        key=range[\"key\"],\n        value=range[\"value\"]))\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 config = new Config();\n    var userData = config.GetObject\u003cDictionary\u003cstring, dynamic\u003e\u003e(\"userData\") ?? \n    {\n        { \"cloud-init\", @\"#cloud-config\napt-update: true\napt-upgrade: true\n\" },\n        { \"foo\", \"bar\" },\n    };\n    var mainServer = new Scaleway.Instance.Server(\"main\", new()\n    {\n        Image = \"ubuntu_focal\",\n        Type = \"DEV1-S\",\n    });\n\n    // User data with a single value\n    var main = new Scaleway.Instance.UserData(\"main\", new()\n    {\n        ServerId = mainServer.Id,\n        Key = \"foo\",\n        Value = \"bar\",\n    });\n\n    // User Data with many keys.\n    var data = new List\u003cScaleway.Instance.UserData\u003e();\n    foreach (var range in userData.Select(pair =\u003e new { pair.Key, pair.Value }))\n    {\n        data.Add(new Scaleway.Instance.UserData($\"data-{range.Key}\", new()\n        {\n            ServerId = mainServer.Id,\n            Key = range.Key,\n            Value = range.Value,\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tuserData := map[string]interface{}{\n\t\t\t\"cloud-init\": \"#cloud-config\\napt-update: true\\napt-upgrade: true\\n\",\n\t\t\t\"foo\":        \"bar\",\n\t\t}\n\t\tif param := cfg.GetObject(\"userData\"); param != nil {\n\t\t\tuserData = param\n\t\t}\n\t\tmainServer, err := instance.NewServer(ctx, \"main\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_focal\"),\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\t// User data with a single value\n\t\t_, err = instance.NewUserData(ctx, \"main\", \u0026instance.UserDataArgs{\n\t\t\tServerId: mainServer.ID(),\n\t\t\tKey:      pulumi.String(\"foo\"),\n\t\t\tValue:    pulumi.String(\"bar\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// User Data with many keys.\n\t\tvar data []*instance.UserData\n\t\tfor key0, val0 := range userData {\n\t\t\t__res, err := instance.NewUserData(ctx, fmt.Sprintf(\"data-%v\", key0), \u0026instance.UserDataArgs{\n\t\t\t\tServerId: mainServer.ID(),\n\t\t\t\tKey:      pulumi.String(key0),\n\t\t\t\tValue:    pulumi.Any(val0),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tdata = append(data, __res)\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.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.UserData;\nimport com.pulumi.scaleway.instance.UserDataArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var userData = config.get(\"userData\").orElse(Map.ofEntries(\n            Map.entry(\"cloud-init\", \"\"\"\n#cloud-config\napt-update: true\napt-upgrade: true\n            \"\"\"),\n            Map.entry(\"foo\", \"bar\")\n        ));\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .image(\"ubuntu_focal\")\n            .type(\"DEV1-S\")\n            .build());\n\n        // User data with a single value\n        var main = new UserData(\"main\", UserDataArgs.builder()\n            .serverId(mainServer.id())\n            .key(\"foo\")\n            .value(\"bar\")\n            .build());\n\n        // User Data with many keys.\n        for (var range : KeyedValue.of(userData)) {\n            new UserData(\"data-\" + range.key(), UserDataArgs.builder()\n                .serverId(mainServer.id())\n                .key(range.key())\n                .value(range.value())\n                .build());\n        }\n\n    }\n}\n```\n```yaml\nconfiguration:\n  userData:\n    type: map(dynamic)\n    default:\n      cloud-init: |\n        #cloud-config\n        apt-update: true\n        apt-upgrade: true\n      foo: bar\nresources:\n  # User data with a single value\n  main:\n    type: scaleway:instance:UserData\n    properties:\n      serverId: ${mainServer.id}\n      key: foo\n      value: bar\n  # User Data with many keys.\n  data:\n    type: scaleway:instance:UserData\n    properties:\n      serverId: ${mainServer.id}\n      key: ${range.key}\n      value: ${range.value}\n    options: {}\n  mainServer:\n    type: scaleway:instance:Server\n    name: main\n    properties:\n      image: ubuntu_focal\n      type: DEV1-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUser data can be imported using the `{zone}/{key}/{server_id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:instance/userData:UserData main fr-par-1/cloud-init/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"key":{"type":"string","description":"Key of the user data.\n"},"serverId":{"type":"string","description":"The ID of the server associated with.\n"},"value":{"type":"string","description":"Value associated with your key\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n\n\u003e **Important:**   Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n"}},"required":["key","serverId","value"],"inputProperties":{"key":{"type":"string","description":"Key of the user data.\n"},"serverId":{"type":"string","description":"The ID of the server associated with.\n"},"value":{"type":"string","description":"Value associated with your key\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n\n\u003e **Important:**   Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n","willReplaceOnChanges":true}},"requiredInputs":["key","serverId","value"],"stateInputs":{"description":"Input properties used for looking up and filtering UserData resources.\n","properties":{"key":{"type":"string","description":"Key of the user data.\n"},"serverId":{"type":"string","description":"The ID of the server associated with.\n"},"value":{"type":"string","description":"Value associated with your key\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server should be created.\n\n\u003e **Important:**   Use the `cloud-init` key to use [cloud-init](https://cloudinit.readthedocs.io/en/latest/) on your instance.\nYou can define values using:\n- string\n- UTF-8 encoded file content using file\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/instanceUserData:InstanceUserData"}]},"scaleway:instance/volume:Volume":{"description":"Creates and manages Scaleway compute Instance Volumes.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/instance/#path-volumes-list-volumes).\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 serverVolume = new scaleway.instance.Volume(\"server_volume\", {\n    type: \"l_ssd\",\n    name: \"some-volume-name\",\n    sizeInGb: 20,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nserver_volume = scaleway.instance.Volume(\"server_volume\",\n    type=\"l_ssd\",\n    name=\"some-volume-name\",\n    size_in_gb=20)\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 serverVolume = new Scaleway.Instance.Volume(\"server_volume\", new()\n    {\n        Type = \"l_ssd\",\n        Name = \"some-volume-name\",\n        SizeInGb = 20,\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.NewVolume(ctx, \"server_volume\", \u0026instance.VolumeArgs{\n\t\t\tType:     pulumi.String(\"l_ssd\"),\n\t\t\tName:     pulumi.String(\"some-volume-name\"),\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\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.instance.Volume;\nimport com.pulumi.scaleway.instance.VolumeArgs;\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 serverVolume = new Volume(\"serverVolume\", VolumeArgs.builder()\n            .type(\"l_ssd\")\n            .name(\"some-volume-name\")\n            .sizeInGb(20)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  serverVolume:\n    type: scaleway:instance:Volume\n    name: server_volume\n    properties:\n      type: l_ssd\n      name: some-volume-name\n      sizeInGb: 20\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nvolumes can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:instance/volume:Volume server_volume fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"fromSnapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n"},"migrateToSbs":{"type":"boolean","description":"If true, consider that this volume may have been migrated and no longer exists."},"name":{"type":"string","description":"The name of the volume. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The organization ID the volume is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the volume is associated with.\n"},"serverId":{"type":"string","description":"The id of the associated server.\n"},"sizeInGb":{"type":"integer","description":"The size of the volume. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n\n\u003e **Important:** It is not possible to resize local and scratch volumes. Updates to this field will recreate the resource.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"type":{"type":"string","description":"The type of the volume. The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD), \u003cspan pulumi-lang-nodejs=\"`scratch`\" pulumi-lang-dotnet=\"`Scratch`\" pulumi-lang-go=\"`scratch`\" pulumi-lang-python=\"`scratch`\" pulumi-lang-yaml=\"`scratch`\" pulumi-lang-java=\"`scratch`\"\u003e`scratch`\u003c/span\u003e (Local Scratch SSD).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the volume should be created.\n"}},"required":["name","organizationId","projectId","serverId","type"],"inputProperties":{"fromSnapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n","willReplaceOnChanges":true},"migrateToSbs":{"type":"boolean","description":"If true, consider that this volume may have been migrated and no longer exists."},"name":{"type":"string","description":"The name of the volume. If not provided it will be randomly generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the volume is associated with.\n","willReplaceOnChanges":true},"sizeInGb":{"type":"integer","description":"The size of the volume. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n\n\u003e **Important:** It is not possible to resize local and scratch volumes. Updates to this field will recreate the resource.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"type":{"type":"string","description":"The type of the volume. The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD), \u003cspan pulumi-lang-nodejs=\"`scratch`\" pulumi-lang-dotnet=\"`Scratch`\" pulumi-lang-go=\"`scratch`\" pulumi-lang-python=\"`scratch`\" pulumi-lang-yaml=\"`scratch`\" pulumi-lang-java=\"`scratch`\"\u003e`scratch`\u003c/span\u003e (Local Scratch SSD).\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the volume should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering Volume resources.\n","properties":{"fromSnapshotId":{"type":"string","description":"If set, the new volume will be created from this snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n","willReplaceOnChanges":true},"migrateToSbs":{"type":"boolean","description":"If true, consider that this volume may have been migrated and no longer exists."},"name":{"type":"string","description":"The name of the volume. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The organization ID the volume is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the volume is associated with.\n","willReplaceOnChanges":true},"serverId":{"type":"string","description":"The id of the associated server.\n"},"sizeInGb":{"type":"integer","description":"The size of the volume. Only one of \u003cspan pulumi-lang-nodejs=\"`sizeInGb`\" pulumi-lang-dotnet=\"`SizeInGb`\" pulumi-lang-go=\"`sizeInGb`\" pulumi-lang-python=\"`size_in_gb`\" pulumi-lang-yaml=\"`sizeInGb`\" pulumi-lang-java=\"`sizeInGb`\"\u003e`size_in_gb`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`fromSnapshotId`\" pulumi-lang-dotnet=\"`FromSnapshotId`\" pulumi-lang-go=\"`fromSnapshotId`\" pulumi-lang-python=\"`from_snapshot_id`\" pulumi-lang-yaml=\"`fromSnapshotId`\" pulumi-lang-java=\"`fromSnapshotId`\"\u003e`from_snapshot_id`\u003c/span\u003e should be specified.\n\n\u003e **Important:** It is not possible to resize local and scratch volumes. Updates to this field will recreate the resource.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to apply to the volume.\n"},"type":{"type":"string","description":"The type of the volume. The possible values are: \u003cspan pulumi-lang-nodejs=\"`lSsd`\" pulumi-lang-dotnet=\"`LSsd`\" pulumi-lang-go=\"`lSsd`\" pulumi-lang-python=\"`l_ssd`\" pulumi-lang-yaml=\"`lSsd`\" pulumi-lang-java=\"`lSsd`\"\u003e`l_ssd`\u003c/span\u003e (Local SSD), \u003cspan pulumi-lang-nodejs=\"`scratch`\" pulumi-lang-dotnet=\"`Scratch`\" pulumi-lang-go=\"`scratch`\" pulumi-lang-python=\"`scratch`\" pulumi-lang-yaml=\"`scratch`\" pulumi-lang-java=\"`scratch`\"\u003e`scratch`\u003c/span\u003e (Local Scratch SSD).\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the volume should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/instanceVolume:InstanceVolume"}]},"scaleway:iot/device:Device":{"description":"## 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.iot.Hub(\"main\", {\n    name: \"test-iot\",\n    productPlan: \"plan_shared\",\n});\nconst mainDevice = new scaleway.iot.Device(\"main\", {\n    hubId: main.id,\n    name: \"test-iot\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iot.Hub(\"main\",\n    name=\"test-iot\",\n    product_plan=\"plan_shared\")\nmain_device = scaleway.iot.Device(\"main\",\n    hub_id=main.id,\n    name=\"test-iot\")\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.Iot.Hub(\"main\", new()\n    {\n        Name = \"test-iot\",\n        ProductPlan = \"plan_shared\",\n    });\n\n    var mainDevice = new Scaleway.Iot.Device(\"main\", new()\n    {\n        HubId = main.Id,\n        Name = \"test-iot\",\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/iot\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\n\t\t\tName:        pulumi.String(\"test-iot\"),\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 = iot.NewDevice(ctx, \"main\", \u0026iot.DeviceArgs{\n\t\t\tHubId: main.ID(),\n\t\t\tName:  pulumi.String(\"test-iot\"),\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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\nimport com.pulumi.scaleway.iot.Device;\nimport com.pulumi.scaleway.iot.DeviceArgs;\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 Hub(\"main\", HubArgs.builder()\n            .name(\"test-iot\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n        var mainDevice = new Device(\"mainDevice\", DeviceArgs.builder()\n            .hubId(main.id())\n            .name(\"test-iot\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iot:Hub\n    properties:\n      name: test-iot\n      productPlan: plan_shared\n  mainDevice:\n    type: scaleway:iot:Device\n    name: main\n    properties:\n      hubId: ${main.id}\n      name: test-iot\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIoT devices can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:iot/device:Device device01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"allowInsecure":{"type":"boolean","description":"Allow plain and server-authenticated TLS connections in addition to mutually-authenticated ones.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowInsecure`\" pulumi-lang-dotnet=\"`AllowInsecure`\" pulumi-lang-go=\"`allowInsecure`\" pulumi-lang-python=\"`allow_insecure`\" pulumi-lang-yaml=\"`allowInsecure`\" pulumi-lang-java=\"`allowInsecure`\"\u003e`allow_insecure`\u003c/span\u003e can disconnect eventually connected devices.\n"},"allowMultipleConnections":{"type":"boolean","description":"Allow more than one simultaneous connection using the same device credentials.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowMultipleConnections`\" pulumi-lang-dotnet=\"`AllowMultipleConnections`\" pulumi-lang-go=\"`allowMultipleConnections`\" pulumi-lang-python=\"`allow_multiple_connections`\" pulumi-lang-yaml=\"`allowMultipleConnections`\" pulumi-lang-java=\"`allowMultipleConnections`\"\u003e`allow_multiple_connections`\u003c/span\u003e can disconnect eventually connected devices.\n"},"certificate":{"$ref":"#/types/scaleway:iot/DeviceCertificate:DeviceCertificate","description":"The certificate bundle of the device.\n"},"createdAt":{"type":"string","description":"The date and time the device was created.\n"},"description":{"type":"string","description":"The description of the IoT device (e.g. `living room`).\n"},"hubId":{"type":"string","description":"The ID of the hub on which this device will be created.\n"},"isConnected":{"type":"boolean","description":"The current connection status of the device.\n"},"lastActivityAt":{"type":"string","description":"The last MQTT activity of the device.\n"},"messageFilters":{"$ref":"#/types/scaleway:iot/DeviceMessageFilters:DeviceMessageFilters","description":"Rules that define which messages are authorized or denied based on their topic.\n"},"name":{"type":"string","description":"The name of the IoT device you want to create (e.g. `my-device`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will destroy and recreate a new resource.\n"},"region":{"type":"string","description":"The region you want to attach the resource to"},"status":{"type":"string","description":"The current status of the device.\n"},"updatedAt":{"type":"string","description":"The date and time the device resource was updated.\n"}},"required":["certificate","createdAt","hubId","isConnected","lastActivityAt","name","status","updatedAt"],"inputProperties":{"allowInsecure":{"type":"boolean","description":"Allow plain and server-authenticated TLS connections in addition to mutually-authenticated ones.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowInsecure`\" pulumi-lang-dotnet=\"`AllowInsecure`\" pulumi-lang-go=\"`allowInsecure`\" pulumi-lang-python=\"`allow_insecure`\" pulumi-lang-yaml=\"`allowInsecure`\" pulumi-lang-java=\"`allowInsecure`\"\u003e`allow_insecure`\u003c/span\u003e can disconnect eventually connected devices.\n"},"allowMultipleConnections":{"type":"boolean","description":"Allow more than one simultaneous connection using the same device credentials.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowMultipleConnections`\" pulumi-lang-dotnet=\"`AllowMultipleConnections`\" pulumi-lang-go=\"`allowMultipleConnections`\" pulumi-lang-python=\"`allow_multiple_connections`\" pulumi-lang-yaml=\"`allowMultipleConnections`\" pulumi-lang-java=\"`allowMultipleConnections`\"\u003e`allow_multiple_connections`\u003c/span\u003e can disconnect eventually connected devices.\n"},"certificate":{"$ref":"#/types/scaleway:iot/DeviceCertificate:DeviceCertificate","description":"The certificate bundle of the device.\n"},"description":{"type":"string","description":"The description of the IoT device (e.g. `living room`).\n"},"hubId":{"type":"string","description":"The ID of the hub on which this device will be created.\n"},"messageFilters":{"$ref":"#/types/scaleway:iot/DeviceMessageFilters:DeviceMessageFilters","description":"Rules that define which messages are authorized or denied based on their topic.\n"},"name":{"type":"string","description":"The name of the IoT device you want to create (e.g. `my-device`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will destroy and recreate a new resource.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true}},"requiredInputs":["hubId"],"stateInputs":{"description":"Input properties used for looking up and filtering Device resources.\n","properties":{"allowInsecure":{"type":"boolean","description":"Allow plain and server-authenticated TLS connections in addition to mutually-authenticated ones.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowInsecure`\" pulumi-lang-dotnet=\"`AllowInsecure`\" pulumi-lang-go=\"`allowInsecure`\" pulumi-lang-python=\"`allow_insecure`\" pulumi-lang-yaml=\"`allowInsecure`\" pulumi-lang-java=\"`allowInsecure`\"\u003e`allow_insecure`\u003c/span\u003e can disconnect eventually connected devices.\n"},"allowMultipleConnections":{"type":"boolean","description":"Allow more than one simultaneous connection using the same device credentials.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`allowMultipleConnections`\" pulumi-lang-dotnet=\"`AllowMultipleConnections`\" pulumi-lang-go=\"`allowMultipleConnections`\" pulumi-lang-python=\"`allow_multiple_connections`\" pulumi-lang-yaml=\"`allowMultipleConnections`\" pulumi-lang-java=\"`allowMultipleConnections`\"\u003e`allow_multiple_connections`\u003c/span\u003e can disconnect eventually connected devices.\n"},"certificate":{"$ref":"#/types/scaleway:iot/DeviceCertificate:DeviceCertificate","description":"The certificate bundle of the device.\n"},"createdAt":{"type":"string","description":"The date and time the device was created.\n"},"description":{"type":"string","description":"The description of the IoT device (e.g. `living room`).\n"},"hubId":{"type":"string","description":"The ID of the hub on which this device will be created.\n"},"isConnected":{"type":"boolean","description":"The current connection status of the device.\n"},"lastActivityAt":{"type":"string","description":"The last MQTT activity of the device.\n"},"messageFilters":{"$ref":"#/types/scaleway:iot/DeviceMessageFilters:DeviceMessageFilters","description":"Rules that define which messages are authorized or denied based on their topic.\n"},"name":{"type":"string","description":"The name of the IoT device you want to create (e.g. `my-device`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will destroy and recreate a new resource.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true},"status":{"type":"string","description":"The current status of the device.\n"},"updatedAt":{"type":"string","description":"The date and time the device resource was updated.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/iotDevice:IotDevice"}]},"scaleway:iot/hub:Hub":{"description":"## 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.iot.Hub(\"main\", {\n    name: \"test-iot\",\n    productPlan: \"plan_shared\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.iot.Hub(\"main\",\n    name=\"test-iot\",\n    product_plan=\"plan_shared\")\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.Iot.Hub(\"main\", new()\n    {\n        Name = \"test-iot\",\n        ProductPlan = \"plan_shared\",\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/iot\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\n\t\t\tName:        pulumi.String(\"test-iot\"),\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\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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\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 Hub(\"main\", HubArgs.builder()\n            .name(\"test-iot\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iot:Hub\n    properties:\n      name: test-iot\n      productPlan: plan_shared\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIoT Hubs can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:iot/hub:Hub hub01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"connectedDeviceCount":{"type":"integer","description":"The current number of connected devices in the Hub.\n"},"createdAt":{"type":"string","description":"The date and time the Hub was created.\n"},"deviceAutoProvisioning":{"type":"boolean","description":"Wether to enable the device auto provisioning or not"},"deviceCount":{"type":"integer","description":"The number of registered devices in the Hub.\n"},"disableEvents":{"type":"boolean","description":"Whether to enable the hub events or not"},"enabled":{"type":"boolean","description":"Whether the IoT Hub instance should be enabled or not.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e will disconnect eventually connected devices.\n"},"endpoint":{"type":"string","description":"The MQTT network endpoint to connect MQTT devices to.\n"},"eventsTopicPrefix":{"type":"string","description":"Topic prefix for the hub events"},"hubCa":{"type":"string","description":"Custom user provided certificate authority"},"hubCaChallenge":{"type":"string","description":"Challenge certificate for the user provided hub CA"},"mqttCa":{"type":"string","description":"The MQTT certificate content\n"},"mqttCaUrl":{"type":"string","description":"The MQTT ca url\n"},"name":{"type":"string","description":"The name of the IoT Hub instance you want to create (e.g. `my-hub`).\n"},"organizationId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003eyou want to attach the resource to"},"productPlan":{"type":"string","description":"Product plan to create the hub, see documentation for available product plans (e.g. \u003cspan pulumi-lang-nodejs=\"`planShared`\" pulumi-lang-dotnet=\"`PlanShared`\" pulumi-lang-go=\"`planShared`\" pulumi-lang-python=\"`plan_shared`\" pulumi-lang-yaml=\"`planShared`\" pulumi-lang-java=\"`planShared`\"\u003e`plan_shared`\u003c/span\u003e)\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`productPlan`\" pulumi-lang-dotnet=\"`ProductPlan`\" pulumi-lang-go=\"`productPlan`\" pulumi-lang-python=\"`product_plan`\" pulumi-lang-yaml=\"`productPlan`\" pulumi-lang-java=\"`productPlan`\"\u003e`product_plan`\u003c/span\u003e will recreate the IoT Hub Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IoT Hub Instance is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n"},"status":{"type":"string","description":"The current status of the Hub.\n"},"updatedAt":{"type":"string","description":"The date and time the Hub resource was updated.\n"}},"required":["connectedDeviceCount","createdAt","deviceCount","endpoint","mqttCa","mqttCaUrl","name","organizationId","productPlan","projectId","status","updatedAt"],"inputProperties":{"deviceAutoProvisioning":{"type":"boolean","description":"Wether to enable the device auto provisioning or not"},"disableEvents":{"type":"boolean","description":"Whether to enable the hub events or not"},"enabled":{"type":"boolean","description":"Whether the IoT Hub instance should be enabled or not.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e will disconnect eventually connected devices.\n"},"eventsTopicPrefix":{"type":"string","description":"Topic prefix for the hub events"},"hubCa":{"type":"string","description":"Custom user provided certificate authority"},"hubCaChallenge":{"type":"string","description":"Challenge certificate for the user provided hub CA"},"name":{"type":"string","description":"The name of the IoT Hub instance you want to create (e.g. `my-hub`).\n"},"productPlan":{"type":"string","description":"Product plan to create the hub, see documentation for available product plans (e.g. \u003cspan pulumi-lang-nodejs=\"`planShared`\" pulumi-lang-dotnet=\"`PlanShared`\" pulumi-lang-go=\"`planShared`\" pulumi-lang-python=\"`plan_shared`\" pulumi-lang-yaml=\"`planShared`\" pulumi-lang-java=\"`planShared`\"\u003e`plan_shared`\u003c/span\u003e)\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`productPlan`\" pulumi-lang-dotnet=\"`ProductPlan`\" pulumi-lang-go=\"`productPlan`\" pulumi-lang-python=\"`product_plan`\" pulumi-lang-yaml=\"`productPlan`\" pulumi-lang-java=\"`productPlan`\"\u003e`product_plan`\u003c/span\u003e will recreate the IoT Hub Instance.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IoT Hub Instance is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["productPlan"],"stateInputs":{"description":"Input properties used for looking up and filtering Hub resources.\n","properties":{"connectedDeviceCount":{"type":"integer","description":"The current number of connected devices in the Hub.\n"},"createdAt":{"type":"string","description":"The date and time the Hub was created.\n"},"deviceAutoProvisioning":{"type":"boolean","description":"Wether to enable the device auto provisioning or not"},"deviceCount":{"type":"integer","description":"The number of registered devices in the Hub.\n"},"disableEvents":{"type":"boolean","description":"Whether to enable the hub events or not"},"enabled":{"type":"boolean","description":"Whether the IoT Hub instance should be enabled or not.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e will disconnect eventually connected devices.\n"},"endpoint":{"type":"string","description":"The MQTT network endpoint to connect MQTT devices to.\n"},"eventsTopicPrefix":{"type":"string","description":"Topic prefix for the hub events"},"hubCa":{"type":"string","description":"Custom user provided certificate authority"},"hubCaChallenge":{"type":"string","description":"Challenge certificate for the user provided hub CA"},"mqttCa":{"type":"string","description":"The MQTT certificate content\n"},"mqttCaUrl":{"type":"string","description":"The MQTT ca url\n"},"name":{"type":"string","description":"The name of the IoT Hub instance you want to create (e.g. `my-hub`).\n"},"organizationId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003eyou want to attach the resource to"},"productPlan":{"type":"string","description":"Product plan to create the hub, see documentation for available product plans (e.g. \u003cspan pulumi-lang-nodejs=\"`planShared`\" pulumi-lang-dotnet=\"`PlanShared`\" pulumi-lang-go=\"`planShared`\" pulumi-lang-python=\"`plan_shared`\" pulumi-lang-yaml=\"`planShared`\" pulumi-lang-java=\"`planShared`\"\u003e`plan_shared`\u003c/span\u003e)\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`productPlan`\" pulumi-lang-dotnet=\"`ProductPlan`\" pulumi-lang-go=\"`productPlan`\" pulumi-lang-python=\"`product_plan`\" pulumi-lang-yaml=\"`productPlan`\" pulumi-lang-java=\"`productPlan`\"\u003e`product_plan`\u003c/span\u003e will recreate the IoT Hub Instance.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IoT Hub Instance is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The current status of the Hub.\n"},"updatedAt":{"type":"string","description":"The date and time the Hub resource was updated.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/iotHub:IotHub"}]},"scaleway:iot/network:Network":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mainHub = new scaleway.iot.Hub(\"main\", {\n    name: \"main\",\n    productPlan: \"plan_shared\",\n});\nconst main = new scaleway.iot.Network(\"main\", {\n    name: \"main\",\n    hubId: mainHub.id,\n    type: \"sigfox\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_hub = scaleway.iot.Hub(\"main\",\n    name=\"main\",\n    product_plan=\"plan_shared\")\nmain = scaleway.iot.Network(\"main\",\n    name=\"main\",\n    hub_id=main_hub.id,\n    type=\"sigfox\")\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 mainHub = new Scaleway.Iot.Hub(\"main\", new()\n    {\n        Name = \"main\",\n        ProductPlan = \"plan_shared\",\n    });\n\n    var main = new Scaleway.Iot.Network(\"main\", new()\n    {\n        Name = \"main\",\n        HubId = mainHub.Id,\n        Type = \"sigfox\",\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/iot\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainHub, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\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 = iot.NewNetwork(ctx, \"main\", \u0026iot.NetworkArgs{\n\t\t\tName:  pulumi.String(\"main\"),\n\t\t\tHubId: mainHub.ID(),\n\t\t\tType:  pulumi.String(\"sigfox\"),\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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\nimport com.pulumi.scaleway.iot.Network;\nimport com.pulumi.scaleway.iot.NetworkArgs;\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 mainHub = new Hub(\"mainHub\", HubArgs.builder()\n            .name(\"main\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n        var main = new Network(\"main\", NetworkArgs.builder()\n            .name(\"main\")\n            .hubId(mainHub.id())\n            .type(\"sigfox\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iot:Network\n    properties:\n      name: main\n      hubId: ${mainHub.id}\n      type: sigfox\n  mainHub:\n    type: scaleway:iot:Hub\n    name: main\n    properties:\n      name: main\n      productPlan: plan_shared\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIoT Networks can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:iot/network:Network net01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time the Network was created.\n"},"endpoint":{"type":"string","description":"The endpoint to use when interacting with the network.\n"},"hubId":{"type":"string","description":"The hub ID to which the Network will be attached to.\n"},"name":{"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 \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Network is attached to.\n"},"secret":{"type":"string","description":"The endpoint key to keep secret.\n","secret":true},"topicPrefix":{"type":"string","description":"The prefix that will be prepended to all topics for this Network.\n"},"type":{"type":"string","description":"The network type to create (e.g. \u003cspan pulumi-lang-nodejs=\"`sigfox`\" pulumi-lang-dotnet=\"`Sigfox`\" pulumi-lang-go=\"`sigfox`\" pulumi-lang-python=\"`sigfox`\" pulumi-lang-yaml=\"`sigfox`\" pulumi-lang-java=\"`sigfox`\"\u003e`sigfox`\u003c/span\u003e).\n"}},"required":["createdAt","endpoint","hubId","name","secret","type"],"inputProperties":{"hubId":{"type":"string","description":"The hub ID to which the Network will be attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","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 \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) 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","willReplaceOnChanges":true},"type":{"type":"string","description":"The network type to create (e.g. \u003cspan pulumi-lang-nodejs=\"`sigfox`\" pulumi-lang-dotnet=\"`Sigfox`\" pulumi-lang-go=\"`sigfox`\" pulumi-lang-python=\"`sigfox`\" pulumi-lang-yaml=\"`sigfox`\" pulumi-lang-java=\"`sigfox`\"\u003e`sigfox`\u003c/span\u003e).\n","willReplaceOnChanges":true}},"requiredInputs":["hubId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Network resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time the Network was created.\n"},"endpoint":{"type":"string","description":"The endpoint to use when interacting with the network.\n"},"hubId":{"type":"string","description":"The hub ID to which the Network will be attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","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 \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Network is attached to.\n","willReplaceOnChanges":true},"secret":{"type":"string","description":"The endpoint key to keep secret.\n","secret":true},"topicPrefix":{"type":"string","description":"The prefix that will be prepended to all topics for this Network.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The network type to create (e.g. \u003cspan pulumi-lang-nodejs=\"`sigfox`\" pulumi-lang-dotnet=\"`Sigfox`\" pulumi-lang-go=\"`sigfox`\" pulumi-lang-python=\"`sigfox`\" pulumi-lang-yaml=\"`sigfox`\" pulumi-lang-java=\"`sigfox`\"\u003e`sigfox`\u003c/span\u003e).\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/iotNetwork:IotNetwork"}]},"scaleway:iot/route:Route":{"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 mainHub = new scaleway.iot.Hub(\"main\", {\n    name: \"main\",\n    productPlan: \"plan_shared\",\n});\nconst iot = new scaleway.databases.Instance(\"iot\", {\n    name: \"iot\",\n    nodeType: \"db-dev-s\",\n    engine: \"PostgreSQL-12\",\n    userName: \"root\",\n    password: \"T3stP4ssw0rdD0N0tUs3!\",\n});\nconst main = new scaleway.iot.Route(\"main\", {\n    name: \"default\",\n    hubId: mainHub.id,\n    topic: \"#\",\n    database: {\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```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_hub = scaleway.iot.Hub(\"main\",\n    name=\"main\",\n    product_plan=\"plan_shared\")\niot = scaleway.databases.Instance(\"iot\",\n    name=\"iot\",\n    node_type=\"db-dev-s\",\n    engine=\"PostgreSQL-12\",\n    user_name=\"root\",\n    password=\"T3stP4ssw0rdD0N0tUs3!\")\nmain = scaleway.iot.Route(\"main\",\n    name=\"default\",\n    hub_id=main_hub.id,\n    topic=\"#\",\n    database={\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.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 mainHub = new Scaleway.Iot.Hub(\"main\", new()\n    {\n        Name = \"main\",\n        ProductPlan = \"plan_shared\",\n    });\n\n    var iot = new Scaleway.Databases.Instance(\"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.Iot.Route(\"main\", new()\n    {\n        Name = \"default\",\n        HubId = mainHub.Id,\n        Topic = \"#\",\n        Database = new Scaleway.Iot.Inputs.RouteDatabaseArgs\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/databases\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iot\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainHub, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\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 := databases.NewInstance(ctx, \"iot\", \u0026databases.InstanceArgs{\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 = iot.NewRoute(ctx, \"main\", \u0026iot.RouteArgs{\n\t\t\tName:  pulumi.String(\"default\"),\n\t\t\tHubId: mainHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tDatabase: \u0026iot.RouteDatabaseArgs{\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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\nimport com.pulumi.scaleway.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.iot.Route;\nimport com.pulumi.scaleway.iot.RouteArgs;\nimport com.pulumi.scaleway.iot.inputs.RouteDatabaseArgs;\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 mainHub = new Hub(\"mainHub\", HubArgs.builder()\n            .name(\"main\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n        var iot = new Instance(\"iot\", InstanceArgs.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 Route(\"main\", RouteArgs.builder()\n            .name(\"default\")\n            .hubId(mainHub.id())\n            .topic(\"#\")\n            .database(RouteDatabaseArgs.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:iot:Route\n    properties:\n      name: default\n      hubId: ${mainHub.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  mainHub:\n    type: scaleway:iot:Hub\n    name: main\n    properties:\n      name: main\n      productPlan: plan_shared\n  iot:\n    type: scaleway:databases:Instance\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 mainHub = new scaleway.iot.Hub(\"main\", {\n    name: \"main\",\n    productPlan: \"plan_shared\",\n});\nconst mainBucket = new scaleway.object.Bucket(\"main\", {\n    region: \"fr-par\",\n    name: \"my_awesome-bucket\",\n});\nconst main = new scaleway.iot.Route(\"main\", {\n    name: \"main\",\n    hubId: mainHub.id,\n    topic: \"#\",\n    s3: {\n        bucketRegion: mainBucket.region,\n        bucketName: mainBucket.name,\n        objectPrefix: \"foo\",\n        strategy: \"per_topic\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain_hub = scaleway.iot.Hub(\"main\",\n    name=\"main\",\n    product_plan=\"plan_shared\")\nmain_bucket = scaleway.object.Bucket(\"main\",\n    region=\"fr-par\",\n    name=\"my_awesome-bucket\")\nmain = scaleway.iot.Route(\"main\",\n    name=\"main\",\n    hub_id=main_hub.id,\n    topic=\"#\",\n    s3={\n        \"bucket_region\": main_bucket.region,\n        \"bucket_name\": main_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 mainHub = new Scaleway.Iot.Hub(\"main\", new()\n    {\n        Name = \"main\",\n        ProductPlan = \"plan_shared\",\n    });\n\n    var mainBucket = new Scaleway.Object.Bucket(\"main\", new()\n    {\n        Region = \"fr-par\",\n        Name = \"my_awesome-bucket\",\n    });\n\n    var main = new Scaleway.Iot.Route(\"main\", new()\n    {\n        Name = \"main\",\n        HubId = mainHub.Id,\n        Topic = \"#\",\n        S3 = new Scaleway.Iot.Inputs.RouteS3Args\n        {\n            BucketRegion = mainBucket.Region,\n            BucketName = mainBucket.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/iot\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainHub, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\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\tmainBucket, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\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 = iot.NewRoute(ctx, \"main\", \u0026iot.RouteArgs{\n\t\t\tName:  pulumi.String(\"main\"),\n\t\t\tHubId: mainHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tS3: \u0026iot.RouteS3Args{\n\t\t\t\tBucketRegion: mainBucket.Region,\n\t\t\t\tBucketName:   mainBucket.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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\nimport com.pulumi.scaleway.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.iot.Route;\nimport com.pulumi.scaleway.iot.RouteArgs;\nimport com.pulumi.scaleway.iot.inputs.RouteS3Args;\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 mainHub = new Hub(\"mainHub\", HubArgs.builder()\n            .name(\"main\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n        var mainBucket = new Bucket(\"mainBucket\", BucketArgs.builder()\n            .region(\"fr-par\")\n            .name(\"my_awesome-bucket\")\n            .build());\n\n        var main = new Route(\"main\", RouteArgs.builder()\n            .name(\"main\")\n            .hubId(mainHub.id())\n            .topic(\"#\")\n            .s3(RouteS3Args.builder()\n                .bucketRegion(mainBucket.region())\n                .bucketName(mainBucket.name())\n                .objectPrefix(\"foo\")\n                .strategy(\"per_topic\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:iot:Route\n    properties:\n      name: main\n      hubId: ${mainHub.id}\n      topic: '#'\n      s3:\n        bucketRegion: ${mainBucket.region}\n        bucketName: ${mainBucket.name}\n        objectPrefix: foo\n        strategy: per_topic\n  mainHub:\n    type: scaleway:iot:Hub\n    name: main\n    properties:\n      name: main\n      productPlan: plan_shared\n  mainBucket:\n    type: scaleway:object:Bucket\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 mainHub = new scaleway.iot.Hub(\"main\", {\n    name: \"main\",\n    productPlan: \"plan_shared\",\n});\nconst main = new scaleway.iot.Route(\"main\", {\n    name: \"main\",\n    hubId: mainHub.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_hub = scaleway.iot.Hub(\"main\",\n    name=\"main\",\n    product_plan=\"plan_shared\")\nmain = scaleway.iot.Route(\"main\",\n    name=\"main\",\n    hub_id=main_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 mainHub = new Scaleway.Iot.Hub(\"main\", new()\n    {\n        Name = \"main\",\n        ProductPlan = \"plan_shared\",\n    });\n\n    var main = new Scaleway.Iot.Route(\"main\", new()\n    {\n        Name = \"main\",\n        HubId = mainHub.Id,\n        Topic = \"#\",\n        Rest = new Scaleway.Iot.Inputs.RouteRestArgs\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/iot\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainHub, err := iot.NewHub(ctx, \"main\", \u0026iot.HubArgs{\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 = iot.NewRoute(ctx, \"main\", \u0026iot.RouteArgs{\n\t\t\tName:  pulumi.String(\"main\"),\n\t\t\tHubId: mainHub.ID(),\n\t\t\tTopic: pulumi.String(\"#\"),\n\t\t\tRest: \u0026iot.RouteRestArgs{\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.iot.Hub;\nimport com.pulumi.scaleway.iot.HubArgs;\nimport com.pulumi.scaleway.iot.Route;\nimport com.pulumi.scaleway.iot.RouteArgs;\nimport com.pulumi.scaleway.iot.inputs.RouteRestArgs;\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 mainHub = new Hub(\"mainHub\", HubArgs.builder()\n            .name(\"main\")\n            .productPlan(\"plan_shared\")\n            .build());\n\n        var main = new Route(\"main\", RouteArgs.builder()\n            .name(\"main\")\n            .hubId(mainHub.id())\n            .topic(\"#\")\n            .rest(RouteRestArgs.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:iot:Route\n    properties:\n      name: main\n      hubId: ${mainHub.id}\n      topic: '#'\n      rest:\n        verb: get\n        uri: http://scaleway.com\n        headers:\n          X-awesome-header: my-awesome-value\n  mainHub:\n    type: scaleway:iot:Hub\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:iot/route:Route route01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time the Route was created.\n"},"database":{"$ref":"#/types/scaleway:iot/RouteDatabase:RouteDatabase","description":"Configuration block for the database routes. See  [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n"},"hubId":{"type":"string","description":"The hub ID to which the Route will be attached to.\n"},"name":{"type":"string","description":"The name of the IoT Route you want to create (e.g. `my-route`).\n"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Route is attached to.\n"},"rest":{"$ref":"#/types/scaleway:iot/RouteRest:RouteRest","description":"Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n"},"s3":{"$ref":"#/types/scaleway:iot/RouteS3:RouteS3","description":"Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n"},"topic":{"type":"string","description":"The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).\n"}},"required":["createdAt","hubId","name","topic"],"inputProperties":{"database":{"$ref":"#/types/scaleway:iot/RouteDatabase:RouteDatabase","description":"Configuration block for the database routes. See  [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"hubId":{"type":"string","description":"The hub ID to which the Route will be attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the IoT Route you want to create (e.g. `my-route`).\n","willReplaceOnChanges":true},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Route is attached to.\n","willReplaceOnChanges":true},"rest":{"$ref":"#/types/scaleway:iot/RouteRest:RouteRest","description":"Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"s3":{"$ref":"#/types/scaleway:iot/RouteS3:RouteS3","description":"Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"topic":{"type":"string","description":"The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).\n","willReplaceOnChanges":true}},"requiredInputs":["hubId","topic"],"stateInputs":{"description":"Input properties used for looking up and filtering Route resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time the Route was created.\n"},"database":{"$ref":"#/types/scaleway:iot/RouteDatabase:RouteDatabase","description":"Configuration block for the database routes. See  [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"hubId":{"type":"string","description":"The hub ID to which the Route will be attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the IoT Route you want to create (e.g. `my-route`).\n","willReplaceOnChanges":true},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Route is attached to.\n","willReplaceOnChanges":true},"rest":{"$ref":"#/types/scaleway:iot/RouteRest:RouteRest","description":"Configuration block for the rest routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"s3":{"$ref":"#/types/scaleway:iot/RouteS3:RouteS3","description":"Configuration block for the S3 routes. See [product documentation](https://www.scaleway.com/en/docs/iot-hub/how-to/create-route/) for a better understanding of the parameters.\n","willReplaceOnChanges":true},"topic":{"type":"string","description":"The topic the Route subscribes to, wildcards allowed (e.g. `thelab/+/temperature/#`).\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/iotRoute:IotRoute"}]},"scaleway:ipam/ip:Ip":{"description":"Books and manages IPAM IPs.\n\nFor more information about IPAM, see the main [documentation](https://www.scaleway.com/en/docs/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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv4Subnet: {\n        subnet: \"172.16.32.0/22\",\n    },\n});\nconst ip01 = new scaleway.ipam.Ip(\"ip01\", {sources: [{\n    privateNetworkId: pn01.id,\n}]});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv4_subnet={\n        \"subnet\": \"172.16.32.0/22\",\n    })\nip01 = scaleway.ipam.Ip(\"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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.32.0/22\",\n        },\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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 = ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.32.0/22\")\n                .build())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv4Subnet:\n        subnet: 172.16.32.0/22\n  ip01:\n    type: scaleway:ipam:Ip\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv4Subnet: {\n        subnet: \"172.16.32.0/22\",\n    },\n});\nconst ip01 = new scaleway.ipam.Ip(\"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.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv4_subnet={\n        \"subnet\": \"172.16.32.0/22\",\n    })\nip01 = scaleway.ipam.Ip(\"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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.32.0/22\",\n        },\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Address = \"172.16.32.7\",\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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 = ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.32.7\"),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.32.0/22\")\n                .build())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .address(\"172.16.32.7\")\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv4Subnet:\n        subnet: 172.16.32.0/22\n  ip01:\n    type: scaleway:ipam:Ip\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv6Subnets: [{\n        subnet: \"fd46:78ab:30b8:177c::/64\",\n    }],\n});\nconst ip01 = new scaleway.ipam.Ip(\"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.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv6_subnets=[{\n        \"subnet\": \"fd46:78ab:30b8:177c::/64\",\n    }])\nip01 = scaleway.ipam.Ip(\"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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv6Subnets = new[]\n        {\n            new Scaleway.Network.Inputs.PrivateNetworkIpv6SubnetArgs\n            {\n                Subnet = \"fd46:78ab:30b8:177c::/64\",\n            },\n        },\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        IsIpv6 = true,\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv6Subnets: network.PrivateNetworkIpv6SubnetArray{\n\t\t\t\t\u0026network.PrivateNetworkIpv6SubnetArgs{\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 = ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv6SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv6Subnets(PrivateNetworkIpv6SubnetArgs.builder()\n                .subnet(\"fd46:78ab:30b8:177c::/64\")\n                .build())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .isIpv6(true)\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv6Subnets:\n        - subnet: fd46:78ab:30b8:177c::/64\n  ip01:\n    type: scaleway:ipam:Ip\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv4Subnet: {\n        subnet: \"172.16.32.0/22\",\n    },\n});\nconst ip01 = new scaleway.ipam.Ip(\"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.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv4_subnet={\n        \"subnet\": \"172.16.32.0/22\",\n    })\nip01 = scaleway.ipam.Ip(\"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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.32.0/22\",\n        },\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Address = \"172.16.32.7\",\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\n            {\n                PrivateNetworkId = pn01.Id,\n            },\n        },\n        CustomResources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpCustomResourceArgs\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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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 = ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.32.7\"),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCustomResources: ipam.IpCustomResourceArray{\n\t\t\t\t\u0026ipam.IpCustomResourceArgs{\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpCustomResourceArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.32.0/22\")\n                .build())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .address(\"172.16.32.7\")\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .customResources(IpCustomResourceArgs.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:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv4Subnet:\n        subnet: 172.16.32.0/22\n  ip01:\n    type: scaleway:ipam:Ip\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:ipam/ip:Ip ip_demo fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"address":{"type":"string","description":"Request a specific IP in the requested source pool"},"addressCidr":{"type":"string","description":"the IP address in CIDR notation.\n"},"createdAt":{"type":"string","description":"Date and time of IP's creation (RFC 3339 format).\n"},"customResources":{"type":"array","items":{"$ref":"#/types/scaleway:ipam/IpCustomResource:IpCustomResource"},"description":"The custom resource to attach to the IP being reserved. An example of a custom resource is a virtual machine hosted on an Elastic Metal server.\n"},"isIpv6":{"type":"boolean","description":"Defines whether to request an IPv6 address instead of IPv4.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP.\n"},"resources":{"type":"array","items":{"$ref":"#/types/scaleway:ipam/IpResource:IpResource"},"description":"The IP resource.\n"},"reverses":{"type":"array","items":{"$ref":"#/types/scaleway:ipam/IpReverse:IpReverse"},"description":"The reverse DNS for this IP.\n"},"sources":{"type":"array","items":{"$ref":"#/types/scaleway:ipam/IpSource:IpSource"},"description":"The source in which to book the IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"},"updatedAt":{"type":"string","description":"Date and time of IP's last update (RFC 3339 format).\n"},"zone":{"type":"string","description":"The zone of the IP.\n"}},"required":["address","addressCidr","createdAt","projectId","resources","reverses","sources","updatedAt","zone"],"inputProperties":{"address":{"type":"string","description":"Request a specific IP in the requested source pool","willReplaceOnChanges":true},"customResources":{"type":"array","items":{"$ref":"#/types/scaleway:ipam/IpCustomResource:IpCustomResource"},"description":"The custom resource to attach to the IP being reserved. An example of a custom resource is a virtual machine hosted on an Elastic Metal server.\n"},"isIpv6":{"type":"boolean","description":"Defines whether to request an IPv6 address instead of IPv4.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP.\n","willReplaceOnChanges":true},"sources":{"type":"array","items":{"$ref":"#/types/scaleway:ipam/IpSource:IpSource"},"description":"The source in which to book the IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"}},"requiredInputs":["sources"],"stateInputs":{"description":"Input properties used for looking up and filtering Ip resources.\n","properties":{"address":{"type":"string","description":"Request a specific IP in the requested source pool","willReplaceOnChanges":true},"addressCidr":{"type":"string","description":"the IP address in CIDR notation.\n"},"createdAt":{"type":"string","description":"Date and time of IP's creation (RFC 3339 format).\n"},"customResources":{"type":"array","items":{"$ref":"#/types/scaleway:ipam/IpCustomResource:IpCustomResource"},"description":"The custom resource to attach to the IP being reserved. An example of a custom resource is a virtual machine hosted on an Elastic Metal server.\n"},"isIpv6":{"type":"boolean","description":"Defines whether to request an IPv6 address instead of IPv4.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP.\n","willReplaceOnChanges":true},"resources":{"type":"array","items":{"$ref":"#/types/scaleway:ipam/IpResource:IpResource"},"description":"The IP resource.\n"},"reverses":{"type":"array","items":{"$ref":"#/types/scaleway:ipam/IpReverse:IpReverse"},"description":"The reverse DNS for this IP.\n"},"sources":{"type":"array","items":{"$ref":"#/types/scaleway:ipam/IpSource:IpSource"},"description":"The source in which to book the IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP.\n"},"updatedAt":{"type":"string","description":"Date and time of IP's last update (RFC 3339 format).\n"},"zone":{"type":"string","description":"The zone of the IP.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/ipamIp:IpamIp"}]},"scaleway:ipam/ipReverseDns:IpReverseDns":{"description":"Manage the reverse DNS of IP addresses managed by Scaleway's IP Address Management (IPAM) service.\n\nFor more information about IPAM, see the main [documentation](https://www.scaleway.com/en/docs/vpc/concepts/#ipam).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\nimport * as std from \"@pulumi/std\";\n\nconst ip01 = new scaleway.instance.Ip(\"ip01\", {type: \"routed_ipv6\"});\nconst srv01 = new scaleway.instance.Server(\"srv01\", {\n    name: \"tf-tests-instance-server-ips\",\n    ipIds: [ip01.id],\n    image: \"ubuntu_jammy\",\n    type: \"PRO2-XXS\",\n    state: \"stopped\",\n});\nconst ipam01 = scaleway.ipam.getIpOutput({\n    resource: {\n        id: srv01.id,\n        type: \"instance_server\",\n    },\n    type: \"ipv6\",\n});\nconst tfAAAA = new scaleway.domain.Record(\"tf_AAAA\", {\n    dnsZone: \"example.com\",\n    name: \"\",\n    type: \"AAAA\",\n    data: std.index.cidrhost({\n        input: ipam01.apply(ipam01 =\u003e ipam01.addressCidr),\n        host: 42,\n    }).result,\n    ttl: 3600,\n    priority: 1,\n});\nconst base = new scaleway.ipam.IpReverseDns(\"base\", {\n    ipamIpId: ipam01.apply(ipam01 =\u003e ipam01.id),\n    hostname: \"example.com\",\n    address: std.index.cidrhost({\n        input: ipam01.apply(ipam01 =\u003e ipam01.addressCidr),\n        host: 42,\n    }).result,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumi_std as std\nimport pulumiverse_scaleway as scaleway\n\nip01 = scaleway.instance.Ip(\"ip01\", type=\"routed_ipv6\")\nsrv01 = scaleway.instance.Server(\"srv01\",\n    name=\"tf-tests-instance-server-ips\",\n    ip_ids=[ip01.id],\n    image=\"ubuntu_jammy\",\n    type=\"PRO2-XXS\",\n    state=\"stopped\")\nipam01 = scaleway.ipam.get_ip_output(resource={\n        \"id\": srv01.id,\n        \"type\": \"instance_server\",\n    },\n    type=\"ipv6\")\ntf_aaaa = scaleway.domain.Record(\"tf_AAAA\",\n    dns_zone=\"example.com\",\n    name=\"\",\n    type=\"AAAA\",\n    data=std.index.cidrhost(input=ipam01.address_cidr,\n        host=42)[\"result\"],\n    ttl=3600,\n    priority=1)\nbase = scaleway.ipam.IpReverseDns(\"base\",\n    ipam_ip_id=ipam01.id,\n    hostname=\"example.com\",\n    address=std.index.cidrhost(input=ipam01.address_cidr,\n        host=42)[\"result\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ip01 = new Scaleway.Instance.Ip(\"ip01\", new()\n    {\n        Type = \"routed_ipv6\",\n    });\n\n    var srv01 = new Scaleway.Instance.Server(\"srv01\", new()\n    {\n        Name = \"tf-tests-instance-server-ips\",\n        IpIds = new[]\n        {\n            ip01.Id,\n        },\n        Image = \"ubuntu_jammy\",\n        Type = \"PRO2-XXS\",\n        State = \"stopped\",\n    });\n\n    var ipam01 = Scaleway.Ipam.GetIp.Invoke(new()\n    {\n        Resource = new Scaleway.Ipam.Inputs.GetIpResourceInputArgs\n        {\n            Id = srv01.Id,\n            Type = \"instance_server\",\n        },\n        Type = \"ipv6\",\n    });\n\n    var tfAAAA = new Scaleway.Domain.Record(\"tf_AAAA\", new()\n    {\n        DnsZone = \"example.com\",\n        Name = \"\",\n        Type = \"AAAA\",\n        Data = Std.Index.Cidrhost.Invoke(new()\n        {\n            Input = ipam01.Apply(getIpResult =\u003e getIpResult.AddressCidr),\n            Host = 42,\n        }).Result,\n        Ttl = 3600,\n        Priority = 1,\n    });\n\n    var @base = new Scaleway.Ipam.IpReverseDns(\"base\", new()\n    {\n        IpamIpId = ipam01.Apply(getIpResult =\u003e getIpResult.Id),\n        Hostname = \"example.com\",\n        Address = Std.Index.Cidrhost.Invoke(new()\n        {\n            Input = ipam01.Apply(getIpResult =\u003e getIpResult.AddressCidr),\n            Host = 42,\n        }).Result,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/ipam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip01, err := instance.NewIp(ctx, \"ip01\", \u0026instance.IpArgs{\n\t\t\tType: pulumi.String(\"routed_ipv6\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsrv01, err := instance.NewServer(ctx, \"srv01\", \u0026instance.ServerArgs{\n\t\t\tName: pulumi.String(\"tf-tests-instance-server-ips\"),\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tip01.ID(),\n\t\t\t},\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"PRO2-XXS\"),\n\t\t\tState: pulumi.String(\"stopped\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tipam01 := ipam.LookupIpOutput(ctx, ipam.GetIpOutputArgs{\n\t\t\tResource: \u0026ipam.GetIpResourceArgs{\n\t\t\t\tId:   srv01.ID(),\n\t\t\t\tType: pulumi.String(\"instance_server\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"ipv6\"),\n\t\t}, nil)\n\t\tinvokeCidrhost, err := std.Cidrhost(ctx, map[string]interface{}{\n\t\t\t\"input\": ipam01.ApplyT(func(ipam01 ipam.GetIpResult) (*string, error) {\n\t\t\t\treturn \u0026ipam01.AddressCidr, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\"host\": 42,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"tf_AAAA\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"example.com\"),\n\t\t\tName:     pulumi.String(\"\"),\n\t\t\tType:     pulumi.String(\"AAAA\"),\n\t\t\tData:     invokeCidrhost.Result,\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeCidrhost1, err := std.Cidrhost(ctx, map[string]interface{}{\n\t\t\t\"input\": ipam01.ApplyT(func(ipam01 ipam.GetIpResult) (*string, error) {\n\t\t\t\treturn \u0026ipam01.AddressCidr, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\"host\": 42,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ipam.NewIpReverseDns(ctx, \"base\", \u0026ipam.IpReverseDnsArgs{\n\t\t\tIpamIpId: pulumi.String(ipam01.ApplyT(func(ipam01 ipam.GetIpResult) (*string, error) {\n\t\t\t\treturn \u0026ipam01.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tHostname: pulumi.String(\"example.com\"),\n\t\t\tAddress:  invokeCidrhost1.Result,\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.instance.Ip;\nimport com.pulumi.scaleway.instance.IpArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpArgs;\nimport com.pulumi.scaleway.ipam.inputs.GetIpResourceArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.scaleway.ipam.IpReverseDns;\nimport com.pulumi.scaleway.ipam.IpReverseDnsArgs;\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 ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .type(\"routed_ipv6\")\n            .build());\n\n        var srv01 = new Server(\"srv01\", ServerArgs.builder()\n            .name(\"tf-tests-instance-server-ips\")\n            .ipIds(ip01.id())\n            .image(\"ubuntu_jammy\")\n            .type(\"PRO2-XXS\")\n            .state(\"stopped\")\n            .build());\n\n        final var ipam01 = IpamFunctions.getIp(GetIpArgs.builder()\n            .resource(GetIpResourceArgs.builder()\n                .id(srv01.id())\n                .type(\"instance_server\")\n                .build())\n            .type(\"ipv6\")\n            .build());\n\n        var tfAAAA = new Record(\"tfAAAA\", RecordArgs.builder()\n            .dnsZone(\"example.com\")\n            .name(\"\")\n            .type(\"AAAA\")\n            .data(StdFunctions.cidrhost(Map.ofEntries(\n                Map.entry(\"input\", ipam01.applyValue(_ipam01 -\u003e _ipam01.addressCidr())),\n                Map.entry(\"host\", 42)\n            )).result())\n            .ttl(3600)\n            .priority(1)\n            .build());\n\n        var base = new IpReverseDns(\"base\", IpReverseDnsArgs.builder()\n            .ipamIpId(ipam01.applyValue(_ipam01 -\u003e _ipam01.id()))\n            .hostname(\"example.com\")\n            .address(StdFunctions.cidrhost(Map.ofEntries(\n                Map.entry(\"input\", ipam01.applyValue(_ipam01 -\u003e _ipam01.addressCidr())),\n                Map.entry(\"host\", 42)\n            )).result())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip01:\n    type: scaleway:instance:Ip\n    properties:\n      type: routed_ipv6\n  srv01:\n    type: scaleway:instance:Server\n    properties:\n      name: tf-tests-instance-server-ips\n      ipIds:\n        - ${ip01.id}\n      image: ubuntu_jammy\n      type: PRO2-XXS\n      state: stopped\n  tfAAAA:\n    type: scaleway:domain:Record\n    name: tf_AAAA\n    properties:\n      dnsZone: example.com\n      name: \"\"\n      type: AAAA\n      data:\n        fn::invoke:\n          function: std:cidrhost\n          arguments:\n            input: ${ipam01.addressCidr}\n            host: 42\n          return: result\n      ttl: 3600\n      priority: 1\n  base:\n    type: scaleway:ipam:IpReverseDns\n    properties:\n      ipamIpId: ${ipam01.id}\n      hostname: example.com\n      address:\n        fn::invoke:\n          function: std:cidrhost\n          arguments:\n            input: ${ipam01.addressCidr}\n            host: 42\n          return: result\nvariables:\n  ipam01:\n    fn::invoke:\n      function: scaleway:ipam:getIp\n      arguments:\n        resource:\n          id: ${srv01.id}\n          type: instance_server\n        type: ipv6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIPAM IP reverse DNS can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:ipam/ipReverseDns:IpReverseDns main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"address":{"type":"string","description":"The IP corresponding to the hostname.\n"},"hostname":{"type":"string","description":"The reverse domain name.\n"},"ipamIpId":{"type":"string","description":"The IPAM IP ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP reverse DNS.\n"}},"required":["address","hostname","ipamIpId"],"inputProperties":{"address":{"type":"string","description":"The IP corresponding to the hostname.\n"},"hostname":{"type":"string","description":"The reverse domain name.\n"},"ipamIpId":{"type":"string","description":"The IPAM IP ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP reverse DNS.\n","willReplaceOnChanges":true}},"requiredInputs":["address","hostname","ipamIpId"],"stateInputs":{"description":"Input properties used for looking up and filtering IpReverseDns resources.\n","properties":{"address":{"type":"string","description":"The IP corresponding to the hostname.\n"},"hostname":{"type":"string","description":"The reverse domain name.\n"},"ipamIpId":{"type":"string","description":"The IPAM IP ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the IP reverse DNS.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/ipamIpReverseDns:IpamIpReverseDns"}]},"scaleway:job/definition:Definition":{"description":"Creates and manages a Scaleway Serverless Job Definition. For more information, see the [Go API documentation](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/jobs/v1alpha1).\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.job.Definition(\"main\", {\n    name: \"testjob\",\n    cpuLimit: 140,\n    memoryLimit: 256,\n    imageUri: \"docker.io/alpine:latest\",\n    command: \"ls\",\n    timeout: \"10m\",\n    env: {\n        foo: \"bar\",\n    },\n    cron: {\n        schedule: \"5 4 1 * *\",\n        timezone: \"Europe/Paris\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.job.Definition(\"main\",\n    name=\"testjob\",\n    cpu_limit=140,\n    memory_limit=256,\n    image_uri=\"docker.io/alpine:latest\",\n    command=\"ls\",\n    timeout=\"10m\",\n    env={\n        \"foo\": \"bar\",\n    },\n    cron={\n        \"schedule\": \"5 4 1 * *\",\n        \"timezone\": \"Europe/Paris\",\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.Job.Definition(\"main\", new()\n    {\n        Name = \"testjob\",\n        CpuLimit = 140,\n        MemoryLimit = 256,\n        ImageUri = \"docker.io/alpine:latest\",\n        Command = \"ls\",\n        Timeout = \"10m\",\n        Env = \n        {\n            { \"foo\", \"bar\" },\n        },\n        Cron = new Scaleway.Job.Inputs.DefinitionCronArgs\n        {\n            Schedule = \"5 4 1 * *\",\n            Timezone = \"Europe/Paris\",\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/job\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := job.NewDefinition(ctx, \"main\", \u0026job.DefinitionArgs{\n\t\t\tName:        pulumi.String(\"testjob\"),\n\t\t\tCpuLimit:    pulumi.Int(140),\n\t\t\tMemoryLimit: pulumi.Int(256),\n\t\t\tImageUri:    pulumi.String(\"docker.io/alpine:latest\"),\n\t\t\tCommand:     pulumi.String(\"ls\"),\n\t\t\tTimeout:     pulumi.String(\"10m\"),\n\t\t\tEnv: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tCron: \u0026job.DefinitionCronArgs{\n\t\t\t\tSchedule: pulumi.String(\"5 4 1 * *\"),\n\t\t\t\tTimezone: pulumi.String(\"Europe/Paris\"),\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.job.Definition;\nimport com.pulumi.scaleway.job.DefinitionArgs;\nimport com.pulumi.scaleway.job.inputs.DefinitionCronArgs;\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 Definition(\"main\", DefinitionArgs.builder()\n            .name(\"testjob\")\n            .cpuLimit(140)\n            .memoryLimit(256)\n            .imageUri(\"docker.io/alpine:latest\")\n            .command(\"ls\")\n            .timeout(\"10m\")\n            .env(Map.of(\"foo\", \"bar\"))\n            .cron(DefinitionCronArgs.builder()\n                .schedule(\"5 4 1 * *\")\n                .timezone(\"Europe/Paris\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:job:Definition\n    properties:\n      name: testjob\n      cpuLimit: 140\n      memoryLimit: 256\n      imageUri: docker.io/alpine:latest\n      command: ls\n      timeout: 10m\n      env:\n        foo: bar\n      cron:\n        schedule: 5 4 1 * *\n        timezone: Europe/Paris\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With Secret Reference\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.job.Definition(\"main\", {\n    name: \"testjob\",\n    cpuLimit: 140,\n    memoryLimit: 256,\n    imageUri: \"docker.io/alpine:latest\",\n    command: \"ls\",\n    timeout: \"10m\",\n    cron: {\n        schedule: \"5 4 1 * *\",\n        timezone: \"Europe/Paris\",\n    },\n    secretReferences: [\n        {\n            secretId: \"11111111-1111-1111-1111-111111111111\",\n            file: \"/home/dev/secret_file\",\n        },\n        {\n            secretId: jobSecret.id,\n            secretVersion: \"1\",\n            environment: \"FOO\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.job.Definition(\"main\",\n    name=\"testjob\",\n    cpu_limit=140,\n    memory_limit=256,\n    image_uri=\"docker.io/alpine:latest\",\n    command=\"ls\",\n    timeout=\"10m\",\n    cron={\n        \"schedule\": \"5 4 1 * *\",\n        \"timezone\": \"Europe/Paris\",\n    },\n    secret_references=[\n        {\n            \"secret_id\": \"11111111-1111-1111-1111-111111111111\",\n            \"file\": \"/home/dev/secret_file\",\n        },\n        {\n            \"secret_id\": job_secret[\"id\"],\n            \"secret_version\": \"1\",\n            \"environment\": \"FOO\",\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.Job.Definition(\"main\", new()\n    {\n        Name = \"testjob\",\n        CpuLimit = 140,\n        MemoryLimit = 256,\n        ImageUri = \"docker.io/alpine:latest\",\n        Command = \"ls\",\n        Timeout = \"10m\",\n        Cron = new Scaleway.Job.Inputs.DefinitionCronArgs\n        {\n            Schedule = \"5 4 1 * *\",\n            Timezone = \"Europe/Paris\",\n        },\n        SecretReferences = new[]\n        {\n            new Scaleway.Job.Inputs.DefinitionSecretReferenceArgs\n            {\n                SecretId = \"11111111-1111-1111-1111-111111111111\",\n                File = \"/home/dev/secret_file\",\n            },\n            new Scaleway.Job.Inputs.DefinitionSecretReferenceArgs\n            {\n                SecretId = jobSecret.Id,\n                SecretVersion = \"1\",\n                Environment = \"FOO\",\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/job\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := job.NewDefinition(ctx, \"main\", \u0026job.DefinitionArgs{\n\t\t\tName:        pulumi.String(\"testjob\"),\n\t\t\tCpuLimit:    pulumi.Int(140),\n\t\t\tMemoryLimit: pulumi.Int(256),\n\t\t\tImageUri:    pulumi.String(\"docker.io/alpine:latest\"),\n\t\t\tCommand:     pulumi.String(\"ls\"),\n\t\t\tTimeout:     pulumi.String(\"10m\"),\n\t\t\tCron: \u0026job.DefinitionCronArgs{\n\t\t\t\tSchedule: pulumi.String(\"5 4 1 * *\"),\n\t\t\t\tTimezone: pulumi.String(\"Europe/Paris\"),\n\t\t\t},\n\t\t\tSecretReferences: job.DefinitionSecretReferenceArray{\n\t\t\t\t\u0026job.DefinitionSecretReferenceArgs{\n\t\t\t\t\tSecretId: pulumi.String(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\t\t\tFile:     pulumi.String(\"/home/dev/secret_file\"),\n\t\t\t\t},\n\t\t\t\t\u0026job.DefinitionSecretReferenceArgs{\n\t\t\t\t\tSecretId:      pulumi.Any(jobSecret.Id),\n\t\t\t\t\tSecretVersion: pulumi.String(\"1\"),\n\t\t\t\t\tEnvironment:   pulumi.String(\"FOO\"),\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.job.Definition;\nimport com.pulumi.scaleway.job.DefinitionArgs;\nimport com.pulumi.scaleway.job.inputs.DefinitionCronArgs;\nimport com.pulumi.scaleway.job.inputs.DefinitionSecretReferenceArgs;\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 Definition(\"main\", DefinitionArgs.builder()\n            .name(\"testjob\")\n            .cpuLimit(140)\n            .memoryLimit(256)\n            .imageUri(\"docker.io/alpine:latest\")\n            .command(\"ls\")\n            .timeout(\"10m\")\n            .cron(DefinitionCronArgs.builder()\n                .schedule(\"5 4 1 * *\")\n                .timezone(\"Europe/Paris\")\n                .build())\n            .secretReferences(            \n                DefinitionSecretReferenceArgs.builder()\n                    .secretId(\"11111111-1111-1111-1111-111111111111\")\n                    .file(\"/home/dev/secret_file\")\n                    .build(),\n                DefinitionSecretReferenceArgs.builder()\n                    .secretId(jobSecret.id())\n                    .secretVersion(\"1\")\n                    .environment(\"FOO\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:job:Definition\n    properties:\n      name: testjob\n      cpuLimit: 140\n      memoryLimit: 256\n      imageUri: docker.io/alpine:latest\n      command: ls\n      timeout: 10m\n      cron:\n        schedule: 5 4 1 * *\n        timezone: Europe/Paris\n      secretReferences:\n        - secretId: 11111111-1111-1111-1111-111111111111\n          file: /home/dev/secret_file\n        - secretId: ${jobSecret.id}\n          secretVersion: '1'\n          environment: FOO\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nServerless Jobs can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:job/definition:Definition job fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments that will be passed to the startup command at runtime (in list of string format). Overrides the default arguments defined in the job image. Environment variables and secrets can be included, and will be expanded before the arguments are used.\n"},"command":{"type":"string","description":"The command that will be run in the container if specified.\n","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" startupCommand \" pulumi-lang-dotnet=\" StartupCommand \" pulumi-lang-go=\" startupCommand \" pulumi-lang-python=\" startup_command \" pulumi-lang-yaml=\" startupCommand \" pulumi-lang-java=\" startupCommand \"\u003e startup_command \u003c/span\u003einstead"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container running the job.\n"},"cron":{"$ref":"#/types/scaleway:job/DefinitionCron:DefinitionCron","description":"The cron configuration\n"},"description":{"type":"string","description":"The description of the job\n"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the container.\n"},"imageUri":{"type":"string","description":"The uri of the container image that will be used for the job run.\n"},"localStorageCapacity":{"type":"integer","description":"The local storage capacity of the job in MiB.\n"},"memoryLimit":{"type":"integer","description":"The memory computing resources in MB to allocate to each container running the job.\n"},"name":{"type":"string","description":"The name of the job.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Job is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Job.\n"},"secretReferences":{"type":"array","items":{"$ref":"#/types/scaleway:job/DefinitionSecretReference:DefinitionSecretReference"},"description":"A reference to a secret stored in Secret Manager.\n"},"startupCommands":{"type":"array","items":{"type":"string"},"description":"The command (main executable or entrypoint script) that will be run in the container (in list of string format). Overrides the default command defined in the job image.\n"},"timeout":{"type":"string","description":"The job run timeout, in Go Time format (ex: \u003cspan pulumi-lang-nodejs=\"`2h30m25s`\" pulumi-lang-dotnet=\"`2h30m25s`\" pulumi-lang-go=\"`2h30m25s`\" pulumi-lang-python=\"`2h30m25s`\" pulumi-lang-yaml=\"`2h30m25s`\" pulumi-lang-java=\"`2h30m25s`\"\u003e`2h30m25s`\u003c/span\u003e)\n"}},"required":["cpuLimit","imageUri","localStorageCapacity","memoryLimit","name","projectId","timeout"],"inputProperties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments that will be passed to the startup command at runtime (in list of string format). Overrides the default arguments defined in the job image. Environment variables and secrets can be included, and will be expanded before the arguments are used.\n"},"command":{"type":"string","description":"The command that will be run in the container if specified.\n","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" startupCommand \" pulumi-lang-dotnet=\" StartupCommand \" pulumi-lang-go=\" startupCommand \" pulumi-lang-python=\" startup_command \" pulumi-lang-yaml=\" startupCommand \" pulumi-lang-java=\" startupCommand \"\u003e startup_command \u003c/span\u003einstead"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container running the job.\n"},"cron":{"$ref":"#/types/scaleway:job/DefinitionCron:DefinitionCron","description":"The cron configuration\n"},"description":{"type":"string","description":"The description of the job\n"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the container.\n"},"imageUri":{"type":"string","description":"The uri of the container image that will be used for the job run.\n"},"localStorageCapacity":{"type":"integer","description":"The local storage capacity of the job in MiB.\n"},"memoryLimit":{"type":"integer","description":"The memory computing resources in MB to allocate to each container running the job.\n"},"name":{"type":"string","description":"The name of the job.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Job is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Job.\n","willReplaceOnChanges":true},"secretReferences":{"type":"array","items":{"$ref":"#/types/scaleway:job/DefinitionSecretReference:DefinitionSecretReference"},"description":"A reference to a secret stored in Secret Manager.\n"},"startupCommands":{"type":"array","items":{"type":"string"},"description":"The command (main executable or entrypoint script) that will be run in the container (in list of string format). Overrides the default command defined in the job image.\n"},"timeout":{"type":"string","description":"The job run timeout, in Go Time format (ex: \u003cspan pulumi-lang-nodejs=\"`2h30m25s`\" pulumi-lang-dotnet=\"`2h30m25s`\" pulumi-lang-go=\"`2h30m25s`\" pulumi-lang-python=\"`2h30m25s`\" pulumi-lang-yaml=\"`2h30m25s`\" pulumi-lang-java=\"`2h30m25s`\"\u003e`2h30m25s`\u003c/span\u003e)\n"}},"requiredInputs":["cpuLimit","imageUri","localStorageCapacity","memoryLimit"],"stateInputs":{"description":"Input properties used for looking up and filtering Definition resources.\n","properties":{"args":{"type":"array","items":{"type":"string"},"description":"The arguments that will be passed to the startup command at runtime (in list of string format). Overrides the default arguments defined in the job image. Environment variables and secrets can be included, and will be expanded before the arguments are used.\n"},"command":{"type":"string","description":"The command that will be run in the container if specified.\n","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" startupCommand \" pulumi-lang-dotnet=\" StartupCommand \" pulumi-lang-go=\" startupCommand \" pulumi-lang-python=\" startup_command \" pulumi-lang-yaml=\" startupCommand \" pulumi-lang-java=\" startupCommand \"\u003e startup_command \u003c/span\u003einstead"},"cpuLimit":{"type":"integer","description":"The amount of vCPU computing resources to allocate to each container running the job.\n"},"cron":{"$ref":"#/types/scaleway:job/DefinitionCron:DefinitionCron","description":"The cron configuration\n"},"description":{"type":"string","description":"The description of the job\n"},"env":{"type":"object","additionalProperties":{"type":"string"},"description":"The environment variables of the container.\n"},"imageUri":{"type":"string","description":"The uri of the container image that will be used for the job run.\n"},"localStorageCapacity":{"type":"integer","description":"The local storage capacity of the job in MiB.\n"},"memoryLimit":{"type":"integer","description":"The memory computing resources in MB to allocate to each container running the job.\n"},"name":{"type":"string","description":"The name of the job.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Job is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Job.\n","willReplaceOnChanges":true},"secretReferences":{"type":"array","items":{"$ref":"#/types/scaleway:job/DefinitionSecretReference:DefinitionSecretReference"},"description":"A reference to a secret stored in Secret Manager.\n"},"startupCommands":{"type":"array","items":{"type":"string"},"description":"The command (main executable or entrypoint script) that will be run in the container (in list of string format). Overrides the default command defined in the job image.\n"},"timeout":{"type":"string","description":"The job run timeout, in Go Time format (ex: \u003cspan pulumi-lang-nodejs=\"`2h30m25s`\" pulumi-lang-dotnet=\"`2h30m25s`\" pulumi-lang-go=\"`2h30m25s`\" pulumi-lang-python=\"`2h30m25s`\" pulumi-lang-yaml=\"`2h30m25s`\" pulumi-lang-java=\"`2h30m25s`\"\u003e`2h30m25s`\u003c/span\u003e)\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/jobDefinition:JobDefinition"}]},"scaleway:kafka/cluster:Cluster":{"description":"Creates and manages Scaleway Kafka clusters.\nFor more information refer to the [product documentation](https://www.scaleway.com/en/docs/managed-services/kafka/).\n\n\u003e **Important:** The Kafka product is currently in Public Beta.\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.network.Vpc(\"main\", {\n    region: \"fr-par\",\n    name: \"my-vpc\",\n});\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {\n    name: \"my-private-network\",\n    region: \"fr-par\",\n    vpcId: main.id,\n});\nconst mainCluster = new scaleway.kafka.Cluster(\"main\", {\n    name: \"my-kafka-cluster\",\n    version: \"3.9.0\",\n    nodeAmount: 1,\n    nodeType: \"KAFK-PLAY-NANO\",\n    volumeType: \"sbs_5k\",\n    volumeSizeInGb: 10,\n    userName: \"admin\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    privateNetwork: {\n        pnId: pn.id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.Vpc(\"main\",\n    region=\"fr-par\",\n    name=\"my-vpc\")\npn = scaleway.network.PrivateNetwork(\"pn\",\n    name=\"my-private-network\",\n    region=\"fr-par\",\n    vpc_id=main.id)\nmain_cluster = scaleway.kafka.Cluster(\"main\",\n    name=\"my-kafka-cluster\",\n    version=\"3.9.0\",\n    node_amount=1,\n    node_type=\"KAFK-PLAY-NANO\",\n    volume_type=\"sbs_5k\",\n    volume_size_in_gb=10,\n    user_name=\"admin\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    private_network={\n        \"pn_id\": pn.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 main = new Scaleway.Network.Vpc(\"main\", new()\n    {\n        Region = \"fr-par\",\n        Name = \"my-vpc\",\n    });\n\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\", new()\n    {\n        Name = \"my-private-network\",\n        Region = \"fr-par\",\n        VpcId = main.Id,\n    });\n\n    var mainCluster = new Scaleway.Kafka.Cluster(\"main\", new()\n    {\n        Name = \"my-kafka-cluster\",\n        Version = \"3.9.0\",\n        NodeAmount = 1,\n        NodeType = \"KAFK-PLAY-NANO\",\n        VolumeType = \"sbs_5k\",\n        VolumeSizeInGb = 10,\n        UserName = \"admin\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        PrivateNetwork = new Scaleway.Kafka.Inputs.ClusterPrivateNetworkArgs\n        {\n            PnId = pn.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/kafka\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewVpc(ctx, \"main\", \u0026network.VpcArgs{\n\t\t\tRegion: pulumi.String(\"fr-par\"),\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\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", \u0026network.PrivateNetworkArgs{\n\t\t\tName:   pulumi.String(\"my-private-network\"),\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t\tVpcId:  main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kafka.NewCluster(ctx, \"main\", \u0026kafka.ClusterArgs{\n\t\t\tName:           pulumi.String(\"my-kafka-cluster\"),\n\t\t\tVersion:        pulumi.String(\"3.9.0\"),\n\t\t\tNodeAmount:     pulumi.Int(1),\n\t\t\tNodeType:       pulumi.String(\"KAFK-PLAY-NANO\"),\n\t\t\tVolumeType:     pulumi.String(\"sbs_5k\"),\n\t\t\tVolumeSizeInGb: pulumi.Int(10),\n\t\t\tUserName:       pulumi.String(\"admin\"),\n\t\t\tPassword:       pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tPrivateNetwork: \u0026kafka.ClusterPrivateNetworkArgs{\n\t\t\t\tPnId: pn.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.kafka.Cluster;\nimport com.pulumi.scaleway.kafka.ClusterArgs;\nimport com.pulumi.scaleway.kafka.inputs.ClusterPrivateNetworkArgs;\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 Vpc(\"main\", VpcArgs.builder()\n            .region(\"fr-par\")\n            .name(\"my-vpc\")\n            .build());\n\n        var pn = new PrivateNetwork(\"pn\", PrivateNetworkArgs.builder()\n            .name(\"my-private-network\")\n            .region(\"fr-par\")\n            .vpcId(main.id())\n            .build());\n\n        var mainCluster = new Cluster(\"mainCluster\", ClusterArgs.builder()\n            .name(\"my-kafka-cluster\")\n            .version(\"3.9.0\")\n            .nodeAmount(1)\n            .nodeType(\"KAFK-PLAY-NANO\")\n            .volumeType(\"sbs_5k\")\n            .volumeSizeInGb(10)\n            .userName(\"admin\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .privateNetwork(ClusterPrivateNetworkArgs.builder()\n                .pnId(pn.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:Vpc\n    properties:\n      region: fr-par\n      name: my-vpc\n  pn:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: my-private-network\n      region: fr-par\n      vpcId: ${main.id}\n  mainCluster:\n    type: scaleway:kafka:Cluster\n    name: main\n    properties:\n      name: my-kafka-cluster\n      version: 3.9.0\n      nodeAmount: 1\n      nodeType: KAFK-PLAY-NANO\n      volumeType: sbs_5k\n      volumeSizeInGb: 10\n      userName: admin\n      password: thiZ_is_v\u0026ry_s3cret\n      privateNetwork:\n        pnId: ${pn.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With Tags\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.network.Vpc(\"main\", {\n    region: \"fr-par\",\n    name: \"my-vpc\",\n});\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {\n    name: \"my-private-network\",\n    region: \"fr-par\",\n    vpcId: main.id,\n});\nconst mainCluster = new scaleway.kafka.Cluster(\"main\", {\n    name: \"my-kafka-cluster\",\n    version: \"3.9.0\",\n    nodeAmount: 1,\n    nodeType: \"KAFK-PLAY-NANO\",\n    volumeType: \"sbs_5k\",\n    volumeSizeInGb: 10,\n    userName: \"admin\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    tags: [\n        \"production\",\n        \"messaging\",\n    ],\n    privateNetwork: {\n        pnId: pn.id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.Vpc(\"main\",\n    region=\"fr-par\",\n    name=\"my-vpc\")\npn = scaleway.network.PrivateNetwork(\"pn\",\n    name=\"my-private-network\",\n    region=\"fr-par\",\n    vpc_id=main.id)\nmain_cluster = scaleway.kafka.Cluster(\"main\",\n    name=\"my-kafka-cluster\",\n    version=\"3.9.0\",\n    node_amount=1,\n    node_type=\"KAFK-PLAY-NANO\",\n    volume_type=\"sbs_5k\",\n    volume_size_in_gb=10,\n    user_name=\"admin\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    tags=[\n        \"production\",\n        \"messaging\",\n    ],\n    private_network={\n        \"pn_id\": pn.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 main = new Scaleway.Network.Vpc(\"main\", new()\n    {\n        Region = \"fr-par\",\n        Name = \"my-vpc\",\n    });\n\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\", new()\n    {\n        Name = \"my-private-network\",\n        Region = \"fr-par\",\n        VpcId = main.Id,\n    });\n\n    var mainCluster = new Scaleway.Kafka.Cluster(\"main\", new()\n    {\n        Name = \"my-kafka-cluster\",\n        Version = \"3.9.0\",\n        NodeAmount = 1,\n        NodeType = \"KAFK-PLAY-NANO\",\n        VolumeType = \"sbs_5k\",\n        VolumeSizeInGb = 10,\n        UserName = \"admin\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        Tags = new[]\n        {\n            \"production\",\n            \"messaging\",\n        },\n        PrivateNetwork = new Scaleway.Kafka.Inputs.ClusterPrivateNetworkArgs\n        {\n            PnId = pn.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/kafka\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewVpc(ctx, \"main\", \u0026network.VpcArgs{\n\t\t\tRegion: pulumi.String(\"fr-par\"),\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\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", \u0026network.PrivateNetworkArgs{\n\t\t\tName:   pulumi.String(\"my-private-network\"),\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t\tVpcId:  main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kafka.NewCluster(ctx, \"main\", \u0026kafka.ClusterArgs{\n\t\t\tName:           pulumi.String(\"my-kafka-cluster\"),\n\t\t\tVersion:        pulumi.String(\"3.9.0\"),\n\t\t\tNodeAmount:     pulumi.Int(1),\n\t\t\tNodeType:       pulumi.String(\"KAFK-PLAY-NANO\"),\n\t\t\tVolumeType:     pulumi.String(\"sbs_5k\"),\n\t\t\tVolumeSizeInGb: pulumi.Int(10),\n\t\t\tUserName:       pulumi.String(\"admin\"),\n\t\t\tPassword:       pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"production\"),\n\t\t\t\tpulumi.String(\"messaging\"),\n\t\t\t},\n\t\t\tPrivateNetwork: \u0026kafka.ClusterPrivateNetworkArgs{\n\t\t\t\tPnId: pn.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.kafka.Cluster;\nimport com.pulumi.scaleway.kafka.ClusterArgs;\nimport com.pulumi.scaleway.kafka.inputs.ClusterPrivateNetworkArgs;\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 Vpc(\"main\", VpcArgs.builder()\n            .region(\"fr-par\")\n            .name(\"my-vpc\")\n            .build());\n\n        var pn = new PrivateNetwork(\"pn\", PrivateNetworkArgs.builder()\n            .name(\"my-private-network\")\n            .region(\"fr-par\")\n            .vpcId(main.id())\n            .build());\n\n        var mainCluster = new Cluster(\"mainCluster\", ClusterArgs.builder()\n            .name(\"my-kafka-cluster\")\n            .version(\"3.9.0\")\n            .nodeAmount(1)\n            .nodeType(\"KAFK-PLAY-NANO\")\n            .volumeType(\"sbs_5k\")\n            .volumeSizeInGb(10)\n            .userName(\"admin\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .tags(            \n                \"production\",\n                \"messaging\")\n            .privateNetwork(ClusterPrivateNetworkArgs.builder()\n                .pnId(pn.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:Vpc\n    properties:\n      region: fr-par\n      name: my-vpc\n  pn:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: my-private-network\n      region: fr-par\n      vpcId: ${main.id}\n  mainCluster:\n    type: scaleway:kafka:Cluster\n    name: main\n    properties:\n      name: my-kafka-cluster\n      version: 3.9.0\n      nodeAmount: 1\n      nodeType: KAFK-PLAY-NANO\n      volumeType: sbs_5k\n      volumeSizeInGb: 10\n      userName: admin\n      password: thiZ_is_v\u0026ry_s3cret\n      tags:\n        - production\n        - messaging\n      privateNetwork:\n        pnId: ${pn.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nKafka clusters can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:kafka/cluster:Cluster main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"Date and time of cluster creation (RFC 3339 format).\n"},"name":{"type":"string","description":"Name of the Kafka cluster.\n"},"nodeAmount":{"type":"integer","description":"Number of nodes in the cluster. Changing this forces recreation of the cluster.\n"},"nodeType":{"type":"string","description":"Node type to use for the cluster. Changing this forces recreation of the cluster.\n"},"password":{"type":"string","description":"Password for the Kafka user. Required if \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e is specified. Changing this forces recreation of the cluster.\n","secret":true},"privateNetwork":{"$ref":"#/types/scaleway:kafka/ClusterPrivateNetwork:ClusterPrivateNetwork","description":"Private network endpoint information.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cluster is associated with.\n"},"publicNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:kafka/ClusterPublicNetwork:ClusterPublicNetwork"},"description":"Public endpoint information.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the cluster should be created.\n"},"status":{"type":"string","description":"The status of the cluster (e.g., \"ready\", \"creating\", \"configuring\").\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to apply to the cluster.\n"},"updatedAt":{"type":"string","description":"Date and time of cluster last update (RFC 3339 format).\n"},"userName":{"type":"string","description":"Username for the Kafka user. If not specified, no user will be created. Changing this forces recreation of the cluster.\n"},"version":{"type":"string","description":"Kafka version to use (e.g., \"3.9.0\"). Changing this forces recreation of the cluster.\n"},"volumeSizeInGb":{"type":"integer","description":"Volume size in GB. Changing this forces recreation of the cluster.\n"},"volumeType":{"type":"string","description":"Type of volume where data is stored (e.g., \u003cspan pulumi-lang-nodejs=\"\"sbs5k\"\" pulumi-lang-dotnet=\"\"Sbs5k\"\" pulumi-lang-go=\"\"sbs5k\"\" pulumi-lang-python=\"\"sbs_5k\"\" pulumi-lang-yaml=\"\"sbs5k\"\" pulumi-lang-java=\"\"sbs5k\"\"\u003e\"sbs_5k\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"sbs15k\"\" pulumi-lang-dotnet=\"\"Sbs15k\"\" pulumi-lang-go=\"\"sbs15k\"\" pulumi-lang-python=\"\"sbs_15k\"\" pulumi-lang-yaml=\"\"sbs15k\"\" pulumi-lang-java=\"\"sbs15k\"\"\u003e\"sbs_15k\"\u003c/span\u003e). Changing this forces recreation of the cluster.\n"}},"required":["createdAt","name","nodeAmount","nodeType","projectId","publicNetworks","status","updatedAt","version","volumeSizeInGb","volumeType"],"inputProperties":{"name":{"type":"string","description":"Name of the Kafka cluster.\n"},"nodeAmount":{"type":"integer","description":"Number of nodes in the cluster. Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true},"nodeType":{"type":"string","description":"Node type to use for the cluster. Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"Password for the Kafka user. Required if \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e is specified. Changing this forces recreation of the cluster.\n","secret":true,"willReplaceOnChanges":true},"privateNetwork":{"$ref":"#/types/scaleway:kafka/ClusterPrivateNetwork:ClusterPrivateNetwork","description":"Private network endpoint information.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cluster is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the cluster should be created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to apply to the cluster.\n"},"userName":{"type":"string","description":"Username for the Kafka user. If not specified, no user will be created. Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"Kafka version to use (e.g., \"3.9.0\"). Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true},"volumeSizeInGb":{"type":"integer","description":"Volume size in GB. Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true},"volumeType":{"type":"string","description":"Type of volume where data is stored (e.g., \u003cspan pulumi-lang-nodejs=\"\"sbs5k\"\" pulumi-lang-dotnet=\"\"Sbs5k\"\" pulumi-lang-go=\"\"sbs5k\"\" pulumi-lang-python=\"\"sbs_5k\"\" pulumi-lang-yaml=\"\"sbs5k\"\" pulumi-lang-java=\"\"sbs5k\"\"\u003e\"sbs_5k\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"sbs15k\"\" pulumi-lang-dotnet=\"\"Sbs15k\"\" pulumi-lang-go=\"\"sbs15k\"\" pulumi-lang-python=\"\"sbs_15k\"\" pulumi-lang-yaml=\"\"sbs15k\"\" pulumi-lang-java=\"\"sbs15k\"\"\u003e\"sbs_15k\"\u003c/span\u003e). Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true}},"requiredInputs":["nodeAmount","nodeType","version","volumeSizeInGb","volumeType"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"createdAt":{"type":"string","description":"Date and time of cluster creation (RFC 3339 format).\n"},"name":{"type":"string","description":"Name of the Kafka cluster.\n"},"nodeAmount":{"type":"integer","description":"Number of nodes in the cluster. Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true},"nodeType":{"type":"string","description":"Node type to use for the cluster. Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"Password for the Kafka user. Required if \u003cspan pulumi-lang-nodejs=\"`userName`\" pulumi-lang-dotnet=\"`UserName`\" pulumi-lang-go=\"`userName`\" pulumi-lang-python=\"`user_name`\" pulumi-lang-yaml=\"`userName`\" pulumi-lang-java=\"`userName`\"\u003e`user_name`\u003c/span\u003e is specified. Changing this forces recreation of the cluster.\n","secret":true,"willReplaceOnChanges":true},"privateNetwork":{"$ref":"#/types/scaleway:kafka/ClusterPrivateNetwork:ClusterPrivateNetwork","description":"Private network endpoint information.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cluster is associated with.\n","willReplaceOnChanges":true},"publicNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:kafka/ClusterPublicNetwork:ClusterPublicNetwork"},"description":"Public endpoint information.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the cluster should be created.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the cluster (e.g., \"ready\", \"creating\", \"configuring\").\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to apply to the cluster.\n"},"updatedAt":{"type":"string","description":"Date and time of cluster last update (RFC 3339 format).\n"},"userName":{"type":"string","description":"Username for the Kafka user. If not specified, no user will be created. Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"Kafka version to use (e.g., \"3.9.0\"). Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true},"volumeSizeInGb":{"type":"integer","description":"Volume size in GB. Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true},"volumeType":{"type":"string","description":"Type of volume where data is stored (e.g., \u003cspan pulumi-lang-nodejs=\"\"sbs5k\"\" pulumi-lang-dotnet=\"\"Sbs5k\"\" pulumi-lang-go=\"\"sbs5k\"\" pulumi-lang-python=\"\"sbs_5k\"\" pulumi-lang-yaml=\"\"sbs5k\"\" pulumi-lang-java=\"\"sbs5k\"\"\u003e\"sbs_5k\"\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"\"sbs15k\"\" pulumi-lang-dotnet=\"\"Sbs15k\"\" pulumi-lang-go=\"\"sbs15k\"\" pulumi-lang-python=\"\"sbs_15k\"\" pulumi-lang-yaml=\"\"sbs15k\"\" pulumi-lang-java=\"\"sbs15k\"\"\u003e\"sbs_15k\"\u003c/span\u003e). Changing this forces recreation of the cluster.\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:keymanager/key:Key":{"description":"Provides a Scaleway Key Manager Key resource.  \nThis resource allows you to create and manage cryptographic keys in Scaleway Key Manager (KMS).\n\n## Example Usage\n\n### Symmetric Encryption Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst symmetric = new scaleway.keymanager.Key(\"symmetric\", {\n    name: \"my-kms-key\",\n    region: \"fr-par\",\n    projectId: \"your-project-id\",\n    usage: \"symmetric_encryption\",\n    algorithm: \"aes_256_gcm\",\n    description: \"Key for encrypting secrets\",\n    tags: [\n        \"env:prod\",\n        \"kms\",\n    ],\n    unprotected: true,\n    rotationPolicy: {\n        rotationPeriod: \"720h\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsymmetric = scaleway.keymanager.Key(\"symmetric\",\n    name=\"my-kms-key\",\n    region=\"fr-par\",\n    project_id=\"your-project-id\",\n    usage=\"symmetric_encryption\",\n    algorithm=\"aes_256_gcm\",\n    description=\"Key for encrypting secrets\",\n    tags=[\n        \"env:prod\",\n        \"kms\",\n    ],\n    unprotected=True,\n    rotation_policy={\n        \"rotation_period\": \"720h\",\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 symmetric = new Scaleway.Keymanager.Key(\"symmetric\", new()\n    {\n        Name = \"my-kms-key\",\n        Region = \"fr-par\",\n        ProjectId = \"your-project-id\",\n        Usage = \"symmetric_encryption\",\n        Algorithm = \"aes_256_gcm\",\n        Description = \"Key for encrypting secrets\",\n        Tags = new[]\n        {\n            \"env:prod\",\n            \"kms\",\n        },\n        Unprotected = true,\n        RotationPolicy = new Scaleway.Keymanager.Inputs.KeyRotationPolicyArgs\n        {\n            RotationPeriod = \"720h\",\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/keymanager\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewKey(ctx, \"symmetric\", \u0026keymanager.KeyArgs{\n\t\t\tName:        pulumi.String(\"my-kms-key\"),\n\t\t\tRegion:      pulumi.String(\"fr-par\"),\n\t\t\tProjectId:   pulumi.String(\"your-project-id\"),\n\t\t\tUsage:       pulumi.String(\"symmetric_encryption\"),\n\t\t\tAlgorithm:   pulumi.String(\"aes_256_gcm\"),\n\t\t\tDescription: pulumi.String(\"Key for encrypting secrets\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"env:prod\"),\n\t\t\t\tpulumi.String(\"kms\"),\n\t\t\t},\n\t\t\tUnprotected: pulumi.Bool(true),\n\t\t\tRotationPolicy: \u0026keymanager.KeyRotationPolicyArgs{\n\t\t\t\tRotationPeriod: pulumi.String(\"720h\"),\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.keymanager.Key;\nimport com.pulumi.scaleway.keymanager.KeyArgs;\nimport com.pulumi.scaleway.keymanager.inputs.KeyRotationPolicyArgs;\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 symmetric = new Key(\"symmetric\", KeyArgs.builder()\n            .name(\"my-kms-key\")\n            .region(\"fr-par\")\n            .projectId(\"your-project-id\")\n            .usage(\"symmetric_encryption\")\n            .algorithm(\"aes_256_gcm\")\n            .description(\"Key for encrypting secrets\")\n            .tags(            \n                \"env:prod\",\n                \"kms\")\n            .unprotected(true)\n            .rotationPolicy(KeyRotationPolicyArgs.builder()\n                .rotationPeriod(\"720h\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  symmetric:\n    type: scaleway:keymanager:Key\n    properties:\n      name: my-kms-key\n      region: fr-par\n      projectId: your-project-id\n      usage: symmetric_encryption\n      algorithm: aes_256_gcm\n      description: Key for encrypting secrets\n      tags:\n        - env:prod\n        - kms\n      unprotected: true\n      rotationPolicy:\n        rotationPeriod: 720h\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Asymmetric Encryption Key with RSA-4096\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst rsa4096 = new scaleway.keymanager.Key(\"rsa_4096\", {\n    name: \"rsa-4096-key\",\n    region: \"fr-par\",\n    usage: \"asymmetric_encryption\",\n    algorithm: \"rsa_oaep_4096_sha256\",\n    description: \"Key for encrypting large files with RSA-4096\",\n    unprotected: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nrsa4096 = scaleway.keymanager.Key(\"rsa_4096\",\n    name=\"rsa-4096-key\",\n    region=\"fr-par\",\n    usage=\"asymmetric_encryption\",\n    algorithm=\"rsa_oaep_4096_sha256\",\n    description=\"Key for encrypting large files with RSA-4096\",\n    unprotected=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 rsa4096 = new Scaleway.Keymanager.Key(\"rsa_4096\", new()\n    {\n        Name = \"rsa-4096-key\",\n        Region = \"fr-par\",\n        Usage = \"asymmetric_encryption\",\n        Algorithm = \"rsa_oaep_4096_sha256\",\n        Description = \"Key for encrypting large files with RSA-4096\",\n        Unprotected = 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/keymanager\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewKey(ctx, \"rsa_4096\", \u0026keymanager.KeyArgs{\n\t\t\tName:        pulumi.String(\"rsa-4096-key\"),\n\t\t\tRegion:      pulumi.String(\"fr-par\"),\n\t\t\tUsage:       pulumi.String(\"asymmetric_encryption\"),\n\t\t\tAlgorithm:   pulumi.String(\"rsa_oaep_4096_sha256\"),\n\t\t\tDescription: pulumi.String(\"Key for encrypting large files with RSA-4096\"),\n\t\t\tUnprotected: 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.keymanager.Key;\nimport com.pulumi.scaleway.keymanager.KeyArgs;\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 rsa4096 = new Key(\"rsa4096\", KeyArgs.builder()\n            .name(\"rsa-4096-key\")\n            .region(\"fr-par\")\n            .usage(\"asymmetric_encryption\")\n            .algorithm(\"rsa_oaep_4096_sha256\")\n            .description(\"Key for encrypting large files with RSA-4096\")\n            .unprotected(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  rsa4096:\n    type: scaleway:keymanager:Key\n    name: rsa_4096\n    properties:\n      name: rsa-4096-key\n      region: fr-par\n      usage: asymmetric_encryption\n      algorithm: rsa_oaep_4096_sha256\n      description: Key for encrypting large files with RSA-4096\n      unprotected: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Asymmetric Signing Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst signing = new scaleway.keymanager.Key(\"signing\", {\n    name: \"signing-key\",\n    region: \"fr-par\",\n    usage: \"asymmetric_signing\",\n    algorithm: \"rsa_pss_2048_sha256\",\n    description: \"Key for signing documents\",\n    unprotected: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsigning = scaleway.keymanager.Key(\"signing\",\n    name=\"signing-key\",\n    region=\"fr-par\",\n    usage=\"asymmetric_signing\",\n    algorithm=\"rsa_pss_2048_sha256\",\n    description=\"Key for signing documents\",\n    unprotected=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 signing = new Scaleway.Keymanager.Key(\"signing\", new()\n    {\n        Name = \"signing-key\",\n        Region = \"fr-par\",\n        Usage = \"asymmetric_signing\",\n        Algorithm = \"rsa_pss_2048_sha256\",\n        Description = \"Key for signing documents\",\n        Unprotected = 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/keymanager\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := keymanager.NewKey(ctx, \"signing\", \u0026keymanager.KeyArgs{\n\t\t\tName:        pulumi.String(\"signing-key\"),\n\t\t\tRegion:      pulumi.String(\"fr-par\"),\n\t\t\tUsage:       pulumi.String(\"asymmetric_signing\"),\n\t\t\tAlgorithm:   pulumi.String(\"rsa_pss_2048_sha256\"),\n\t\t\tDescription: pulumi.String(\"Key for signing documents\"),\n\t\t\tUnprotected: 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.keymanager.Key;\nimport com.pulumi.scaleway.keymanager.KeyArgs;\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 signing = new Key(\"signing\", KeyArgs.builder()\n            .name(\"signing-key\")\n            .region(\"fr-par\")\n            .usage(\"asymmetric_signing\")\n            .algorithm(\"rsa_pss_2048_sha256\")\n            .description(\"Key for signing documents\")\n            .unprotected(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  signing:\n    type: scaleway:keymanager:Key\n    properties:\n      name: signing-key\n      region: fr-par\n      usage: asymmetric_signing\n      algorithm: rsa_pss_2048_sha256\n      description: Key for signing documents\n      unprotected: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Notes\n\n- **Protection**: By default, keys are protected and cannot be deleted. To allow deletion, set `unprotected = true` when creating the key.\n- **Rotation Policy**: The \u003cspan pulumi-lang-nodejs=\"`rotationPolicy`\" pulumi-lang-dotnet=\"`RotationPolicy`\" pulumi-lang-go=\"`rotationPolicy`\" pulumi-lang-python=\"`rotation_policy`\" pulumi-lang-yaml=\"`rotationPolicy`\" pulumi-lang-java=\"`rotationPolicy`\"\u003e`rotation_policy`\u003c/span\u003e block allows you to set automatic rotation for your key.\n- **Origin**: The \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e argument is optional and defaults to \u003cspan pulumi-lang-nodejs=\"`scalewayKms`\" pulumi-lang-dotnet=\"`ScalewayKms`\" pulumi-lang-go=\"`scalewayKms`\" pulumi-lang-python=\"`scaleway_kms`\" pulumi-lang-yaml=\"`scalewayKms`\" pulumi-lang-java=\"`scalewayKms`\"\u003e`scaleway_kms`\u003c/span\u003e. Use \u003cspan pulumi-lang-nodejs=\"`external`\" pulumi-lang-dotnet=\"`External`\" pulumi-lang-go=\"`external`\" pulumi-lang-python=\"`external`\" pulumi-lang-yaml=\"`external`\" pulumi-lang-java=\"`external`\"\u003e`external`\u003c/span\u003e if you want to import an external key (see Scaleway documentation for details).\n- **Project and Region**: If not specified, \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e will default to the provider configuration.\n- **Algorithm Validation**: The provider validates that the specified \u003cspan pulumi-lang-nodejs=\"`algorithm`\" pulumi-lang-dotnet=\"`Algorithm`\" pulumi-lang-go=\"`algorithm`\" pulumi-lang-python=\"`algorithm`\" pulumi-lang-yaml=\"`algorithm`\" pulumi-lang-java=\"`algorithm`\"\u003e`algorithm`\u003c/span\u003e is compatible with the \u003cspan pulumi-lang-nodejs=\"`usage`\" pulumi-lang-dotnet=\"`Usage`\" pulumi-lang-go=\"`usage`\" pulumi-lang-python=\"`usage`\" pulumi-lang-yaml=\"`usage`\" pulumi-lang-java=\"`usage`\"\u003e`usage`\u003c/span\u003e type at plan time, providing early feedback on configuration errors.\n\n## Import\n\nYou can import a key using its ID and region:\n\n```sh\n$ pulumi import scaleway:keymanager/key:Key main fr-par/11111111-2222-3333-4444-555555555555\n```\n\n","properties":{"algorithm":{"type":"string","description":"– The cryptographic algorithm to use. Valid values depend on the \u003cspan pulumi-lang-nodejs=\"`usage`\" pulumi-lang-dotnet=\"`Usage`\" pulumi-lang-go=\"`usage`\" pulumi-lang-python=\"`usage`\" pulumi-lang-yaml=\"`usage`\" pulumi-lang-java=\"`usage`\"\u003e`usage`\u003c/span\u003e:\n- For \u003cspan pulumi-lang-nodejs=\"`symmetricEncryption`\" pulumi-lang-dotnet=\"`SymmetricEncryption`\" pulumi-lang-go=\"`symmetricEncryption`\" pulumi-lang-python=\"`symmetric_encryption`\" pulumi-lang-yaml=\"`symmetricEncryption`\" pulumi-lang-java=\"`symmetricEncryption`\"\u003e`symmetric_encryption`\u003c/span\u003e:\n"},"createdAt":{"type":"string","description":"The date and time when the key was created.\n"},"description":{"type":"string","description":"– A description for the key.\n"},"locked":{"type":"boolean","description":"Whether the key is locked.\n"},"name":{"type":"string","description":"The name of the key.\n"},"origin":{"type":"string","description":"– The origin of the key. Valid values are:\n"},"projectId":{"type":"string","description":"– The ID of the project the key belongs to.\n\n**Key Usage and Algorithm (both required):**\n"},"protected":{"type":"boolean","description":"Whether the key is protected from deletion.\n"},"region":{"type":"string","description":"The region in which to create the key (e.g., `fr-par`).\n"},"rotatedAt":{"type":"string","description":"The date and time when the key was last rotated.\n"},"rotationCount":{"type":"integer","description":"The number of times the key has been rotated.\n"},"rotationPolicy":{"$ref":"#/types/scaleway:keymanager/KeyRotationPolicy:KeyRotationPolicy","description":"– Rotation policy for the key:\n"},"state":{"type":"string","description":"The state of the key (e.g., \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"– A list of tags to assign to the key.\n"},"unprotected":{"type":"boolean","description":"– If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the key can be deleted. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (protected).\n"},"updatedAt":{"type":"string","description":"The date and time when the key was last updated.\n"},"usage":{"type":"string","description":"– The usage type of the key. Valid values:\n"}},"required":["algorithm","createdAt","locked","name","projectId","protected","rotatedAt","rotationCount","state","updatedAt","usage"],"inputProperties":{"algorithm":{"type":"string","description":"– The cryptographic algorithm to use. Valid values depend on the \u003cspan pulumi-lang-nodejs=\"`usage`\" pulumi-lang-dotnet=\"`Usage`\" pulumi-lang-go=\"`usage`\" pulumi-lang-python=\"`usage`\" pulumi-lang-yaml=\"`usage`\" pulumi-lang-java=\"`usage`\"\u003e`usage`\u003c/span\u003e:\n- For \u003cspan pulumi-lang-nodejs=\"`symmetricEncryption`\" pulumi-lang-dotnet=\"`SymmetricEncryption`\" pulumi-lang-go=\"`symmetricEncryption`\" pulumi-lang-python=\"`symmetric_encryption`\" pulumi-lang-yaml=\"`symmetricEncryption`\" pulumi-lang-java=\"`symmetricEncryption`\"\u003e`symmetric_encryption`\u003c/span\u003e:\n"},"description":{"type":"string","description":"– A description for the key.\n"},"name":{"type":"string","description":"The name of the key.\n"},"origin":{"type":"string","description":"– The origin of the key. Valid values are:\n"},"projectId":{"type":"string","description":"– The ID of the project the key belongs to.\n\n**Key Usage and Algorithm (both required):**\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region in which to create the key (e.g., `fr-par`).\n","willReplaceOnChanges":true},"rotationPolicy":{"$ref":"#/types/scaleway:keymanager/KeyRotationPolicy:KeyRotationPolicy","description":"– Rotation policy for the key:\n"},"tags":{"type":"array","items":{"type":"string"},"description":"– A list of tags to assign to the key.\n"},"unprotected":{"type":"boolean","description":"– If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the key can be deleted. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (protected).\n"},"usage":{"type":"string","description":"– The usage type of the key. Valid values:\n"}},"requiredInputs":["algorithm","usage"],"stateInputs":{"description":"Input properties used for looking up and filtering Key resources.\n","properties":{"algorithm":{"type":"string","description":"– The cryptographic algorithm to use. Valid values depend on the \u003cspan pulumi-lang-nodejs=\"`usage`\" pulumi-lang-dotnet=\"`Usage`\" pulumi-lang-go=\"`usage`\" pulumi-lang-python=\"`usage`\" pulumi-lang-yaml=\"`usage`\" pulumi-lang-java=\"`usage`\"\u003e`usage`\u003c/span\u003e:\n- For \u003cspan pulumi-lang-nodejs=\"`symmetricEncryption`\" pulumi-lang-dotnet=\"`SymmetricEncryption`\" pulumi-lang-go=\"`symmetricEncryption`\" pulumi-lang-python=\"`symmetric_encryption`\" pulumi-lang-yaml=\"`symmetricEncryption`\" pulumi-lang-java=\"`symmetricEncryption`\"\u003e`symmetric_encryption`\u003c/span\u003e:\n"},"createdAt":{"type":"string","description":"The date and time when the key was created.\n"},"description":{"type":"string","description":"– A description for the key.\n"},"locked":{"type":"boolean","description":"Whether the key is locked.\n"},"name":{"type":"string","description":"The name of the key.\n"},"origin":{"type":"string","description":"– The origin of the key. Valid values are:\n"},"projectId":{"type":"string","description":"– The ID of the project the key belongs to.\n\n**Key Usage and Algorithm (both required):**\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"Whether the key is protected from deletion.\n"},"region":{"type":"string","description":"The region in which to create the key (e.g., `fr-par`).\n","willReplaceOnChanges":true},"rotatedAt":{"type":"string","description":"The date and time when the key was last rotated.\n"},"rotationCount":{"type":"integer","description":"The number of times the key has been rotated.\n"},"rotationPolicy":{"$ref":"#/types/scaleway:keymanager/KeyRotationPolicy:KeyRotationPolicy","description":"– Rotation policy for the key:\n"},"state":{"type":"string","description":"The state of the key (e.g., \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"– A list of tags to assign to the key.\n"},"unprotected":{"type":"boolean","description":"– If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the key can be deleted. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (protected).\n"},"updatedAt":{"type":"string","description":"The date and time when the key was last updated.\n"},"usage":{"type":"string","description":"– The usage type of the key. Valid values:\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/keyManagerKey:KeyManagerKey"}]},"scaleway:kubernetes/acl:Acl":{"description":"## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Basic ACL usage\nconst aclBasic = new scaleway.network.PrivateNetwork(\"acl_basic\", {});\nconst aclBasicCluster = new scaleway.kubernetes.Cluster(\"acl_basic\", {\n    name: \"acl-basic\",\n    version: \"1.32.2\",\n    cni: \"cilium\",\n    deleteAdditionalResources: true,\n    privateNetworkId: aclBasic.id,\n});\nconst aclBasicAcl = new scaleway.kubernetes.Acl(\"acl_basic\", {\n    clusterId: aclBasicCluster.id,\n    aclRules: [\n        {\n            ip: \"1.2.3.4/32\",\n            description: \"Allow 1.2.3.4\",\n        },\n        {\n            scalewayRanges: true,\n            description: \"Allow all Scaleway ranges\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n# Basic ACL usage\nacl_basic = scaleway.network.PrivateNetwork(\"acl_basic\")\nacl_basic_cluster = scaleway.kubernetes.Cluster(\"acl_basic\",\n    name=\"acl-basic\",\n    version=\"1.32.2\",\n    cni=\"cilium\",\n    delete_additional_resources=True,\n    private_network_id=acl_basic.id)\nacl_basic_acl = scaleway.kubernetes.Acl(\"acl_basic\",\n    cluster_id=acl_basic_cluster.id,\n    acl_rules=[\n        {\n            \"ip\": \"1.2.3.4/32\",\n            \"description\": \"Allow 1.2.3.4\",\n        },\n        {\n            \"scaleway_ranges\": True,\n            \"description\": \"Allow all Scaleway ranges\",\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    // Basic ACL usage\n    var aclBasic = new Scaleway.Network.PrivateNetwork(\"acl_basic\");\n\n    var aclBasicCluster = new Scaleway.Kubernetes.Cluster(\"acl_basic\", new()\n    {\n        Name = \"acl-basic\",\n        Version = \"1.32.2\",\n        Cni = \"cilium\",\n        DeleteAdditionalResources = true,\n        PrivateNetworkId = aclBasic.Id,\n    });\n\n    var aclBasicAcl = new Scaleway.Kubernetes.Acl(\"acl_basic\", new()\n    {\n        ClusterId = aclBasicCluster.Id,\n        AclRules = new[]\n        {\n            new Scaleway.Kubernetes.Inputs.AclAclRuleArgs\n            {\n                Ip = \"1.2.3.4/32\",\n                Description = \"Allow 1.2.3.4\",\n            },\n            new Scaleway.Kubernetes.Inputs.AclAclRuleArgs\n            {\n                ScalewayRanges = true,\n                Description = \"Allow all Scaleway ranges\",\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/kubernetes\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Basic ACL usage\n\t\taclBasic, err := network.NewPrivateNetwork(ctx, \"acl_basic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taclBasicCluster, err := kubernetes.NewCluster(ctx, \"acl_basic\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:                      pulumi.String(\"acl-basic\"),\n\t\t\tVersion:                   pulumi.String(\"1.32.2\"),\n\t\t\tCni:                       pulumi.String(\"cilium\"),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(true),\n\t\t\tPrivateNetworkId:          aclBasic.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kubernetes.NewAcl(ctx, \"acl_basic\", \u0026kubernetes.AclArgs{\n\t\t\tClusterId: aclBasicCluster.ID(),\n\t\t\tAclRules: kubernetes.AclAclRuleArray{\n\t\t\t\t\u0026kubernetes.AclAclRuleArgs{\n\t\t\t\t\tIp:          pulumi.String(\"1.2.3.4/32\"),\n\t\t\t\t\tDescription: pulumi.String(\"Allow 1.2.3.4\"),\n\t\t\t\t},\n\t\t\t\t\u0026kubernetes.AclAclRuleArgs{\n\t\t\t\t\tScalewayRanges: pulumi.Bool(true),\n\t\t\t\t\tDescription:    pulumi.String(\"Allow all Scaleway ranges\"),\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Acl;\nimport com.pulumi.scaleway.kubernetes.AclArgs;\nimport com.pulumi.scaleway.kubernetes.inputs.AclAclRuleArgs;\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        // Basic ACL usage\n        var aclBasic = new PrivateNetwork(\"aclBasic\");\n\n        var aclBasicCluster = new Cluster(\"aclBasicCluster\", ClusterArgs.builder()\n            .name(\"acl-basic\")\n            .version(\"1.32.2\")\n            .cni(\"cilium\")\n            .deleteAdditionalResources(true)\n            .privateNetworkId(aclBasic.id())\n            .build());\n\n        var aclBasicAcl = new Acl(\"aclBasicAcl\", AclArgs.builder()\n            .clusterId(aclBasicCluster.id())\n            .aclRules(            \n                AclAclRuleArgs.builder()\n                    .ip(\"1.2.3.4/32\")\n                    .description(\"Allow 1.2.3.4\")\n                    .build(),\n                AclAclRuleArgs.builder()\n                    .scalewayRanges(true)\n                    .description(\"Allow all Scaleway ranges\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Basic ACL usage\n  aclBasic:\n    type: scaleway:network:PrivateNetwork\n    name: acl_basic\n  aclBasicCluster:\n    type: scaleway:kubernetes:Cluster\n    name: acl_basic\n    properties:\n      name: acl-basic\n      version: 1.32.2\n      cni: cilium\n      deleteAdditionalResources: true\n      privateNetworkId: ${aclBasic.id}\n  aclBasicAcl:\n    type: scaleway:kubernetes:Acl\n    name: acl_basic\n    properties:\n      clusterId: ${aclBasicCluster.id}\n      aclRules:\n        - ip: 1.2.3.4/32\n          description: Allow 1.2.3.4\n        - scalewayRanges: true\n          description: Allow all Scaleway ranges\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Full isolation example\nconst aclBasic = new scaleway.network.PrivateNetwork(\"acl_basic\", {});\nconst aclBasicCluster = new scaleway.kubernetes.Cluster(\"acl_basic\", {\n    name: \"acl-basic\",\n    version: \"1.32.2\",\n    cni: \"cilium\",\n    deleteAdditionalResources: true,\n    privateNetworkId: aclBasic.id,\n});\nconst aclBasicAcl = new scaleway.kubernetes.Acl(\"acl_basic\", {\n    clusterId: aclBasicCluster.id,\n    noIpAllowed: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n# Full isolation example\nacl_basic = scaleway.network.PrivateNetwork(\"acl_basic\")\nacl_basic_cluster = scaleway.kubernetes.Cluster(\"acl_basic\",\n    name=\"acl-basic\",\n    version=\"1.32.2\",\n    cni=\"cilium\",\n    delete_additional_resources=True,\n    private_network_id=acl_basic.id)\nacl_basic_acl = scaleway.kubernetes.Acl(\"acl_basic\",\n    cluster_id=acl_basic_cluster.id,\n    no_ip_allowed=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    // Full isolation example\n    var aclBasic = new Scaleway.Network.PrivateNetwork(\"acl_basic\");\n\n    var aclBasicCluster = new Scaleway.Kubernetes.Cluster(\"acl_basic\", new()\n    {\n        Name = \"acl-basic\",\n        Version = \"1.32.2\",\n        Cni = \"cilium\",\n        DeleteAdditionalResources = true,\n        PrivateNetworkId = aclBasic.Id,\n    });\n\n    var aclBasicAcl = new Scaleway.Kubernetes.Acl(\"acl_basic\", new()\n    {\n        ClusterId = aclBasicCluster.Id,\n        NoIpAllowed = 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/kubernetes\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Full isolation example\n\t\taclBasic, err := network.NewPrivateNetwork(ctx, \"acl_basic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taclBasicCluster, err := kubernetes.NewCluster(ctx, \"acl_basic\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:                      pulumi.String(\"acl-basic\"),\n\t\t\tVersion:                   pulumi.String(\"1.32.2\"),\n\t\t\tCni:                       pulumi.String(\"cilium\"),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(true),\n\t\t\tPrivateNetworkId:          aclBasic.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kubernetes.NewAcl(ctx, \"acl_basic\", \u0026kubernetes.AclArgs{\n\t\t\tClusterId:   aclBasicCluster.ID(),\n\t\t\tNoIpAllowed: 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.network.PrivateNetwork;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Acl;\nimport com.pulumi.scaleway.kubernetes.AclArgs;\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        // Full isolation example\n        var aclBasic = new PrivateNetwork(\"aclBasic\");\n\n        var aclBasicCluster = new Cluster(\"aclBasicCluster\", ClusterArgs.builder()\n            .name(\"acl-basic\")\n            .version(\"1.32.2\")\n            .cni(\"cilium\")\n            .deleteAdditionalResources(true)\n            .privateNetworkId(aclBasic.id())\n            .build());\n\n        var aclBasicAcl = new Acl(\"aclBasicAcl\", AclArgs.builder()\n            .clusterId(aclBasicCluster.id())\n            .noIpAllowed(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Full isolation example\n  aclBasic:\n    type: scaleway:network:PrivateNetwork\n    name: acl_basic\n  aclBasicCluster:\n    type: scaleway:kubernetes:Cluster\n    name: acl_basic\n    properties:\n      name: acl-basic\n      version: 1.32.2\n      cni: cilium\n      deleteAdditionalResources: true\n      privateNetworkId: ${aclBasic.id}\n  aclBasicAcl:\n    type: scaleway:kubernetes:Acl\n    name: acl_basic\n    properties:\n      clusterId: ${aclBasicCluster.id}\n      noIpAllowed: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nKubernetes ACLs can be imported using the `{region}/{cluster-id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:kubernetes/acl:Acl acl01 fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"aclRules":{"type":"array","items":{"$ref":"#/types/scaleway:kubernetes/AclAclRule:AclAclRule"},"description":"A list of ACLs (structure is described below)\n\n\u003e **Important:** This block cannot be defined if the \u003cspan pulumi-lang-nodejs=\"`noIpAllowed`\" pulumi-lang-dotnet=\"`NoIpAllowed`\" pulumi-lang-go=\"`noIpAllowed`\" pulumi-lang-python=\"`no_ip_allowed`\" pulumi-lang-yaml=\"`noIpAllowed`\" pulumi-lang-java=\"`noIpAllowed`\"\u003e`no_ip_allowed`\u003c/span\u003e field is set to true.\n"},"clusterId":{"type":"string","description":"UUID of the cluster. The ID of the cluster is also the ID of the ACL resource, as there can only be one per cluster.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e will recreate the ACL.\n"},"noIpAllowed":{"type":"boolean","description":"If set to true, no IP will be allowed and the cluster will be in full-isolation.\n\n\u003e **Important:** This field cannot be set to true if the \u003cspan pulumi-lang-nodejs=\"`aclRules`\" pulumi-lang-dotnet=\"`AclRules`\" pulumi-lang-go=\"`aclRules`\" pulumi-lang-python=\"`acl_rules`\" pulumi-lang-yaml=\"`aclRules`\" pulumi-lang-java=\"`aclRules`\"\u003e`acl_rules`\u003c/span\u003e block is defined.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the ACL rule should be created.\n"}},"required":["clusterId"],"inputProperties":{"aclRules":{"type":"array","items":{"$ref":"#/types/scaleway:kubernetes/AclAclRule:AclAclRule"},"description":"A list of ACLs (structure is described below)\n\n\u003e **Important:** This block cannot be defined if the \u003cspan pulumi-lang-nodejs=\"`noIpAllowed`\" pulumi-lang-dotnet=\"`NoIpAllowed`\" pulumi-lang-go=\"`noIpAllowed`\" pulumi-lang-python=\"`no_ip_allowed`\" pulumi-lang-yaml=\"`noIpAllowed`\" pulumi-lang-java=\"`noIpAllowed`\"\u003e`no_ip_allowed`\u003c/span\u003e field is set to true.\n"},"clusterId":{"type":"string","description":"UUID of the cluster. The ID of the cluster is also the ID of the ACL resource, as there can only be one per cluster.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e will recreate the ACL.\n","willReplaceOnChanges":true},"noIpAllowed":{"type":"boolean","description":"If set to true, no IP will be allowed and the cluster will be in full-isolation.\n\n\u003e **Important:** This field cannot be set to true if the \u003cspan pulumi-lang-nodejs=\"`aclRules`\" pulumi-lang-dotnet=\"`AclRules`\" pulumi-lang-go=\"`aclRules`\" pulumi-lang-python=\"`acl_rules`\" pulumi-lang-yaml=\"`aclRules`\" pulumi-lang-java=\"`aclRules`\"\u003e`acl_rules`\u003c/span\u003e block is defined.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the ACL rule should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId"],"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"aclRules":{"type":"array","items":{"$ref":"#/types/scaleway:kubernetes/AclAclRule:AclAclRule"},"description":"A list of ACLs (structure is described below)\n\n\u003e **Important:** This block cannot be defined if the \u003cspan pulumi-lang-nodejs=\"`noIpAllowed`\" pulumi-lang-dotnet=\"`NoIpAllowed`\" pulumi-lang-go=\"`noIpAllowed`\" pulumi-lang-python=\"`no_ip_allowed`\" pulumi-lang-yaml=\"`noIpAllowed`\" pulumi-lang-java=\"`noIpAllowed`\"\u003e`no_ip_allowed`\u003c/span\u003e field is set to true.\n"},"clusterId":{"type":"string","description":"UUID of the cluster. The ID of the cluster is also the ID of the ACL resource, as there can only be one per cluster.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e will recreate the ACL.\n","willReplaceOnChanges":true},"noIpAllowed":{"type":"boolean","description":"If set to true, no IP will be allowed and the cluster will be in full-isolation.\n\n\u003e **Important:** This field cannot be set to true if the \u003cspan pulumi-lang-nodejs=\"`aclRules`\" pulumi-lang-dotnet=\"`AclRules`\" pulumi-lang-go=\"`aclRules`\" pulumi-lang-python=\"`acl_rules`\" pulumi-lang-yaml=\"`aclRules`\" pulumi-lang-java=\"`aclRules`\"\u003e`acl_rules`\u003c/span\u003e block is defined.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the ACL rule should be created.\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:kubernetes/cluster:Cluster":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-dotnet=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-go=\"`kubernetes.Cluster`\" pulumi-lang-python=\"`kubernetes.Cluster`\" pulumi-lang-yaml=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-java=\"`scaleway.kubernetes.Cluster`\"\u003e`scaleway.kubernetes.Cluster`\u003c/span\u003e resource allows you to create and manage Scaleway Kubernetes clusters.\n\nRefer to the Kubernetes [documentation](https://www.scaleway.com/en/docs/compute/kubernetes/) and [API documentation](https://www.scaleway.com/en/developers/api/kubernetes/) for more information.\n\n\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 pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    version: \"1.32.3\",\n    cni: \"cilium\",\n    privateNetworkId: pn.id,\n    deleteAdditionalResources: false,\n});\nconst pool = new scaleway.kubernetes.Pool(\"pool\", {\n    clusterId: cluster.id,\n    name: \"tf-pool\",\n    nodeType: \"DEV1-M\",\n    size: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn = scaleway.network.PrivateNetwork(\"pn\")\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    version=\"1.32.3\",\n    cni=\"cilium\",\n    private_network_id=pn.id,\n    delete_additional_resources=False)\npool = scaleway.kubernetes.Pool(\"pool\",\n    cluster_id=cluster.id,\n    name=\"tf-pool\",\n    node_type=\"DEV1-M\",\n    size=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Version = \"1.32.3\",\n        Cni = \"cilium\",\n        PrivateNetworkId = pn.Id,\n        DeleteAdditionalResources = false,\n    });\n\n    var pool = new Scaleway.Kubernetes.Pool(\"pool\", new()\n    {\n        ClusterId = cluster.Id,\n        Name = \"tf-pool\",\n        NodeType = \"DEV1-M\",\n        Size = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:                      pulumi.String(\"tf-cluster\"),\n\t\t\tVersion:                   pulumi.String(\"1.32.3\"),\n\t\t\tCni:                       pulumi.String(\"cilium\"),\n\t\t\tPrivateNetworkId:          pn.ID(),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kubernetes.NewPool(ctx, \"pool\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tName:      pulumi.String(\"tf-pool\"),\n\t\t\tNodeType:  pulumi.String(\"DEV1-M\"),\n\t\t\tSize:      pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var pn = new PrivateNetwork(\"pn\");\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .version(\"1.32.3\")\n            .cni(\"cilium\")\n            .privateNetworkId(pn.id())\n            .deleteAdditionalResources(false)\n            .build());\n\n        var pool = new Pool(\"pool\", PoolArgs.builder()\n            .clusterId(cluster.id())\n            .name(\"tf-pool\")\n            .nodeType(\"DEV1-M\")\n            .size(1)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pn:\n    type: scaleway:network:PrivateNetwork\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      version: 1.32.3\n      cni: cilium\n      privateNetworkId: ${pn.id}\n      deleteAdditionalResources: false\n  pool:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${cluster.id}\n      name: tf-pool\n      nodeType: DEV1-M\n      size: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    description: \"cluster made in terraform\",\n    version: \"1.32.3\",\n    cni: \"calico\",\n    tags: [\"terraform\"],\n    privateNetworkId: pn.id,\n    deleteAdditionalResources: false,\n    autoscalerConfig: {\n        disableScaleDown: false,\n        scaleDownDelayAfterAdd: \"5m\",\n        estimator: \"binpacking\",\n        expander: \"random\",\n        ignoreDaemonsetsUtilization: true,\n        balanceSimilarNodeGroups: true,\n        expendablePodsPriorityCutoff: -5,\n    },\n});\nconst pool = new scaleway.kubernetes.Pool(\"pool\", {\n    clusterId: cluster.id,\n    name: \"tf-pool\",\n    nodeType: \"DEV1-M\",\n    size: 3,\n    autoscaling: true,\n    autohealing: true,\n    minSize: 1,\n    maxSize: 5,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn = scaleway.network.PrivateNetwork(\"pn\")\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    description=\"cluster made in terraform\",\n    version=\"1.32.3\",\n    cni=\"calico\",\n    tags=[\"terraform\"],\n    private_network_id=pn.id,\n    delete_additional_resources=False,\n    autoscaler_config={\n        \"disable_scale_down\": False,\n        \"scale_down_delay_after_add\": \"5m\",\n        \"estimator\": \"binpacking\",\n        \"expander\": \"random\",\n        \"ignore_daemonsets_utilization\": True,\n        \"balance_similar_node_groups\": True,\n        \"expendable_pods_priority_cutoff\": -5,\n    })\npool = scaleway.kubernetes.Pool(\"pool\",\n    cluster_id=cluster.id,\n    name=\"tf-pool\",\n    node_type=\"DEV1-M\",\n    size=3,\n    autoscaling=True,\n    autohealing=True,\n    min_size=1,\n    max_size=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Description = \"cluster made in terraform\",\n        Version = \"1.32.3\",\n        Cni = \"calico\",\n        Tags = new[]\n        {\n            \"terraform\",\n        },\n        PrivateNetworkId = pn.Id,\n        DeleteAdditionalResources = false,\n        AutoscalerConfig = new Scaleway.Kubernetes.Inputs.ClusterAutoscalerConfigArgs\n        {\n            DisableScaleDown = false,\n            ScaleDownDelayAfterAdd = \"5m\",\n            Estimator = \"binpacking\",\n            Expander = \"random\",\n            IgnoreDaemonsetsUtilization = true,\n            BalanceSimilarNodeGroups = true,\n            ExpendablePodsPriorityCutoff = -5,\n        },\n    });\n\n    var pool = new Scaleway.Kubernetes.Pool(\"pool\", new()\n    {\n        ClusterId = cluster.Id,\n        Name = \"tf-pool\",\n        NodeType = \"DEV1-M\",\n        Size = 3,\n        Autoscaling = true,\n        Autohealing = true,\n        MinSize = 1,\n        MaxSize = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:        pulumi.String(\"tf-cluster\"),\n\t\t\tDescription: pulumi.String(\"cluster made in terraform\"),\n\t\t\tVersion:     pulumi.String(\"1.32.3\"),\n\t\t\tCni:         pulumi.String(\"calico\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"terraform\"),\n\t\t\t},\n\t\t\tPrivateNetworkId:          pn.ID(),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t\tAutoscalerConfig: \u0026kubernetes.ClusterAutoscalerConfigArgs{\n\t\t\t\tDisableScaleDown:             pulumi.Bool(false),\n\t\t\t\tScaleDownDelayAfterAdd:       pulumi.String(\"5m\"),\n\t\t\t\tEstimator:                    pulumi.String(\"binpacking\"),\n\t\t\t\tExpander:                     pulumi.String(\"random\"),\n\t\t\t\tIgnoreDaemonsetsUtilization:  pulumi.Bool(true),\n\t\t\t\tBalanceSimilarNodeGroups:     pulumi.Bool(true),\n\t\t\t\tExpendablePodsPriorityCutoff: pulumi.Int(-5),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kubernetes.NewPool(ctx, \"pool\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId:   cluster.ID(),\n\t\t\tName:        pulumi.String(\"tf-pool\"),\n\t\t\tNodeType:    pulumi.String(\"DEV1-M\"),\n\t\t\tSize:        pulumi.Int(3),\n\t\t\tAutoscaling: pulumi.Bool(true),\n\t\t\tAutohealing: pulumi.Bool(true),\n\t\t\tMinSize:     pulumi.Int(1),\n\t\t\tMaxSize:     pulumi.Int(5),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.inputs.ClusterAutoscalerConfigArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var pn = new PrivateNetwork(\"pn\");\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .description(\"cluster made in terraform\")\n            .version(\"1.32.3\")\n            .cni(\"calico\")\n            .tags(\"terraform\")\n            .privateNetworkId(pn.id())\n            .deleteAdditionalResources(false)\n            .autoscalerConfig(ClusterAutoscalerConfigArgs.builder()\n                .disableScaleDown(false)\n                .scaleDownDelayAfterAdd(\"5m\")\n                .estimator(\"binpacking\")\n                .expander(\"random\")\n                .ignoreDaemonsetsUtilization(true)\n                .balanceSimilarNodeGroups(true)\n                .expendablePodsPriorityCutoff(-5)\n                .build())\n            .build());\n\n        var pool = new Pool(\"pool\", PoolArgs.builder()\n            .clusterId(cluster.id())\n            .name(\"tf-pool\")\n            .nodeType(\"DEV1-M\")\n            .size(3)\n            .autoscaling(true)\n            .autohealing(true)\n            .minSize(1)\n            .maxSize(5)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pn:\n    type: scaleway:network:PrivateNetwork\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      description: cluster made in terraform\n      version: 1.32.3\n      cni: calico\n      tags:\n        - terraform\n      privateNetworkId: ${pn.id}\n      deleteAdditionalResources: false\n      autoscalerConfig:\n        disableScaleDown: false\n        scaleDownDelayAfterAdd: 5m\n        estimator: binpacking\n        expander: random\n        ignoreDaemonsetsUtilization: true\n        balanceSimilarNodeGroups: true\n        expendablePodsPriorityCutoff: -5\n  pool:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${cluster.id}\n      name: tf-pool\n      nodeType: DEV1-M\n      size: 3\n      autoscaling: true\n      autohealing: true\n      minSize: 1\n      maxSize: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as _null from \"@pulumi/null\";\nimport * as helm from \"@pulumi/helm\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Example with an Helm provider\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    version: \"1.29.1\",\n    cni: \"cilium\",\n    deleteAdditionalResources: false,\n    privateNetworkId: pn.id,\n});\nconst pool = new scaleway.kubernetes.Pool(\"pool\", {\n    clusterId: cluster.id,\n    name: \"tf-pool\",\n    nodeType: \"DEV1-M\",\n    size: 1,\n});\nconst kubeconfig = new _null.Resource(\"kubeconfig\", {triggers: {\n    host: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].host),\n    token: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].token),\n    clusterCaCertificate: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].clusterCaCertificate),\n}}, {\n    dependsOn: [pool],\n});\nconst nginxIp = new scaleway.loadbalancers.Ip(\"nginx_ip\", {\n    zone: \"fr-par-1\",\n    projectId: cluster.projectId,\n});\nconst nginxIngress = new helm.index.Release(\"nginx_ingress\", {\n    name: \"nginx-ingress\",\n    namespace: \"kube-system\",\n    repository: \"https://kubernetes.github.io/ingress-nginx\",\n    chart: \"ingress-nginx\",\n    set: [\n        {\n            name: \"controller.service.loadBalancerIP\",\n            value: nginxIp.ipAddress,\n        },\n        {\n            name: \"controller.config.use-proxy-protocol\",\n            value: \"true\",\n        },\n        {\n            name: \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-proxy-protocol-v2\",\n            value: \"true\",\n        },\n        {\n            name: \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-zone\",\n            value: nginxIp.zone,\n        },\n        {\n            name: \"controller.service.externalTrafficPolicy\",\n            value: \"Local\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_helm as helm\nimport pulumi_null as null\nimport pulumiverse_scaleway as scaleway\n\n# Example with an Helm provider\npn = scaleway.network.PrivateNetwork(\"pn\")\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    version=\"1.29.1\",\n    cni=\"cilium\",\n    delete_additional_resources=False,\n    private_network_id=pn.id)\npool = scaleway.kubernetes.Pool(\"pool\",\n    cluster_id=cluster.id,\n    name=\"tf-pool\",\n    node_type=\"DEV1-M\",\n    size=1)\nkubeconfig = null.Resource(\"kubeconfig\", triggers={\n    \"host\": cluster.kubeconfigs[0].host,\n    \"token\": cluster.kubeconfigs[0].token,\n    \"clusterCaCertificate\": cluster.kubeconfigs[0].cluster_ca_certificate,\n},\nopts = pulumi.ResourceOptions(depends_on=[pool]))\nnginx_ip = scaleway.loadbalancers.Ip(\"nginx_ip\",\n    zone=\"fr-par-1\",\n    project_id=cluster.project_id)\nnginx_ingress = helm.index.Release(\"nginx_ingress\",\n    name=nginx-ingress,\n    namespace=kube-system,\n    repository=https://kubernetes.github.io/ingress-nginx,\n    chart=ingress-nginx,\n    set=[\n        {\n            name: controller.service.loadBalancerIP,\n            value: nginx_ip.ip_address,\n        },\n        {\n            name: controller.config.use-proxy-protocol,\n            value: true,\n        },\n        {\n            name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-proxy-protocol-v2,\n            value: true,\n        },\n        {\n            name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-zone,\n            value: nginx_ip.zone,\n        },\n        {\n            name: controller.service.externalTrafficPolicy,\n            value: Local,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Helm = Pulumi.Helm;\nusing Null = Pulumi.Null;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Example with an Helm provider\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Version = \"1.29.1\",\n        Cni = \"cilium\",\n        DeleteAdditionalResources = false,\n        PrivateNetworkId = pn.Id,\n    });\n\n    var pool = new Scaleway.Kubernetes.Pool(\"pool\", new()\n    {\n        ClusterId = cluster.Id,\n        Name = \"tf-pool\",\n        NodeType = \"DEV1-M\",\n        Size = 1,\n    });\n\n    var kubeconfig = new Null.Resource(\"kubeconfig\", new()\n    {\n        Triggers = \n        {\n            { \"host\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].Host) },\n            { \"token\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].Token) },\n            { \"clusterCaCertificate\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].ClusterCaCertificate) },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            pool,\n        },\n    });\n\n    var nginxIp = new Scaleway.Loadbalancers.Ip(\"nginx_ip\", new()\n    {\n        Zone = \"fr-par-1\",\n        ProjectId = cluster.ProjectId,\n    });\n\n    var nginxIngress = new Helm.Index.Release(\"nginx_ingress\", new()\n    {\n        Name = \"nginx-ingress\",\n        Namespace = \"kube-system\",\n        Repository = \"https://kubernetes.github.io/ingress-nginx\",\n        Chart = \"ingress-nginx\",\n        Set = new[]\n        {\n            \n            {\n                { \"name\", \"controller.service.loadBalancerIP\" },\n                { \"value\", nginxIp.IpAddress },\n            },\n            \n            {\n                { \"name\", \"controller.config.use-proxy-protocol\" },\n                { \"value\", \"true\" },\n            },\n            \n            {\n                { \"name\", \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-proxy-protocol-v2\" },\n                { \"value\", \"true\" },\n            },\n            \n            {\n                { \"name\", \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-zone\" },\n                { \"value\", nginxIp.Zone },\n            },\n            \n            {\n                { \"name\", \"controller.service.externalTrafficPolicy\" },\n                { \"value\", \"Local\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-helm/sdk/go/helm\"\n\t\"github.com/pulumi/pulumi-null/sdk/go/null\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example with an Helm provider\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:                      pulumi.String(\"tf-cluster\"),\n\t\t\tVersion:                   pulumi.String(\"1.29.1\"),\n\t\t\tCni:                       pulumi.String(\"cilium\"),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t\tPrivateNetworkId:          pn.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := kubernetes.NewPool(ctx, \"pool\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tName:      pulumi.String(\"tf-pool\"),\n\t\t\tNodeType:  pulumi.String(\"DEV1-M\"),\n\t\t\tSize:      pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = null.NewResource(ctx, \"kubeconfig\", \u0026null.ResourceArgs{\n\t\t\tTriggers: pulumi.StringMap{\n\t\t\t\t\"host\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].Host, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t\t\"token\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].Token, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t\t\"clusterCaCertificate\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].ClusterCaCertificate, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tpool,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnginxIp, err := loadbalancers.NewIp(ctx, \"nginx_ip\", \u0026loadbalancers.IpArgs{\n\t\t\tZone:      pulumi.String(\"fr-par-1\"),\n\t\t\tProjectId: cluster.ProjectId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = helm.NewRelease(ctx, \"nginx_ingress\", \u0026helm.ReleaseArgs{\n\t\t\tName:       \"nginx-ingress\",\n\t\t\tNamespace:  \"kube-system\",\n\t\t\tRepository: \"https://kubernetes.github.io/ingress-nginx\",\n\t\t\tChart:      \"ingress-nginx\",\n\t\t\tSet: []interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":  \"controller.service.loadBalancerIP\",\n\t\t\t\t\t\"value\": nginxIp.IpAddress,\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":  \"controller.config.use-proxy-protocol\",\n\t\t\t\t\t\"value\": \"true\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":  \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-proxy-protocol-v2\",\n\t\t\t\t\t\"value\": \"true\",\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":  \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-zone\",\n\t\t\t\t\t\"value\": nginxIp.Zone,\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":  \"controller.service.externalTrafficPolicy\",\n\t\t\t\t\t\"value\": \"Local\",\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\nimport com.pulumi.null.Resource;\nimport com.pulumi.null.ResourceArgs;\nimport com.pulumi.scaleway.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.IpArgs;\nimport com.pulumi.helm.Release;\nimport com.pulumi.helm.ReleaseArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Example with an Helm provider\n        var pn = new PrivateNetwork(\"pn\");\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .version(\"1.29.1\")\n            .cni(\"cilium\")\n            .deleteAdditionalResources(false)\n            .privateNetworkId(pn.id())\n            .build());\n\n        var pool = new Pool(\"pool\", PoolArgs.builder()\n            .clusterId(cluster.id())\n            .name(\"tf-pool\")\n            .nodeType(\"DEV1-M\")\n            .size(1)\n            .build());\n\n        var kubeconfig = new Resource(\"kubeconfig\", ResourceArgs.builder()\n            .triggers(Map.ofEntries(\n                Map.entry(\"host\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].host())),\n                Map.entry(\"token\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].token())),\n                Map.entry(\"clusterCaCertificate\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].clusterCaCertificate()))\n            ))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(pool)\n                .build());\n\n        var nginxIp = new Ip(\"nginxIp\", IpArgs.builder()\n            .zone(\"fr-par-1\")\n            .projectId(cluster.projectId())\n            .build());\n\n        var nginxIngress = new Release(\"nginxIngress\", ReleaseArgs.builder()\n            .name(\"nginx-ingress\")\n            .namespace(\"kube-system\")\n            .repository(\"https://kubernetes.github.io/ingress-nginx\")\n            .chart(\"ingress-nginx\")\n            .set(List.of(            \n                Map.ofEntries(\n                    Map.entry(\"name\", \"controller.service.loadBalancerIP\"),\n                    Map.entry(\"value\", nginxIp.ipAddress())\n                ),\n                Map.ofEntries(\n                    Map.entry(\"name\", \"controller.config.use-proxy-protocol\"),\n                    Map.entry(\"value\", \"true\")\n                ),\n                Map.ofEntries(\n                    Map.entry(\"name\", \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-proxy-protocol-v2\"),\n                    Map.entry(\"value\", \"true\")\n                ),\n                Map.ofEntries(\n                    Map.entry(\"name\", \"controller.service.annotations.service\\\\.beta\\\\.kubernetes\\\\.io/scw-loadbalancer-zone\"),\n                    Map.entry(\"value\", nginxIp.zone())\n                ),\n                Map.ofEntries(\n                    Map.entry(\"name\", \"controller.service.externalTrafficPolicy\"),\n                    Map.entry(\"value\", \"Local\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Example with an Helm provider\n  pn:\n    type: scaleway:network:PrivateNetwork\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      version: 1.29.1\n      cni: cilium\n      deleteAdditionalResources: false\n      privateNetworkId: ${pn.id}\n  pool:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${cluster.id}\n      name: tf-pool\n      nodeType: DEV1-M\n      size: 1\n  kubeconfig:\n    type: null:Resource\n    properties:\n      triggers:\n        host: ${cluster.kubeconfigs[0].host}\n        token: ${cluster.kubeconfigs[0].token}\n        clusterCaCertificate: ${cluster.kubeconfigs[0].clusterCaCertificate}\n    options:\n      dependsOn:\n        - ${pool}\n  nginxIp:\n    type: scaleway:loadbalancers:Ip\n    name: nginx_ip\n    properties:\n      zone: fr-par-1\n      projectId: ${cluster.projectId}\n  nginxIngress:\n    type: helm:Release\n    name: nginx_ingress\n    properties:\n      name: nginx-ingress\n      namespace: kube-system\n      repository: https://kubernetes.github.io/ingress-nginx\n      chart: ingress-nginx\n      set:\n        - name: controller.service.loadBalancerIP\n          value: ${nginxIp.ipAddress}\n        - name: controller.config.use-proxy-protocol\n          value: 'true'\n        - name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-proxy-protocol-v2\n          value: 'true'\n        - name: controller.service.annotations.service\\.beta\\.kubernetes\\.io/scw-loadbalancer-zone\n          value: ${nginxIp.zone}\n        - name: controller.service.externalTrafficPolicy\n          value: Local\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as _null from \"@pulumi/null\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Example with the kubernetes provider \nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    version: \"1.29.1\",\n    cni: \"cilium\",\n    privateNetworkId: pn.id,\n    deleteAdditionalResources: false,\n});\nconst pool = new scaleway.kubernetes.Pool(\"pool\", {\n    clusterId: cluster.id,\n    name: \"tf-pool\",\n    nodeType: \"DEV1-M\",\n    size: 1,\n});\n// The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n// It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\nconst kubeconfig = new _null.Resource(\"kubeconfig\", {triggers: {\n    host: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].host),\n    token: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].token),\n    clusterCaCertificate: cluster.kubeconfigs.apply(kubeconfigs =\u003e kubeconfigs[0].clusterCaCertificate),\n}}, {\n    dependsOn: [pool],\n});\n```\n```python\nimport pulumi\nimport pulumi_null as null\nimport pulumiverse_scaleway as scaleway\n\n# Example with the kubernetes provider \npn = scaleway.network.PrivateNetwork(\"pn\")\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    version=\"1.29.1\",\n    cni=\"cilium\",\n    private_network_id=pn.id,\n    delete_additional_resources=False)\npool = scaleway.kubernetes.Pool(\"pool\",\n    cluster_id=cluster.id,\n    name=\"tf-pool\",\n    node_type=\"DEV1-M\",\n    size=1)\n# The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n# It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\nkubeconfig = null.Resource(\"kubeconfig\", triggers={\n    \"host\": cluster.kubeconfigs[0].host,\n    \"token\": cluster.kubeconfigs[0].token,\n    \"clusterCaCertificate\": cluster.kubeconfigs[0].cluster_ca_certificate,\n},\nopts = pulumi.ResourceOptions(depends_on=[pool]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Null = Pulumi.Null;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Example with the kubernetes provider \n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Version = \"1.29.1\",\n        Cni = \"cilium\",\n        PrivateNetworkId = pn.Id,\n        DeleteAdditionalResources = false,\n    });\n\n    var pool = new Scaleway.Kubernetes.Pool(\"pool\", new()\n    {\n        ClusterId = cluster.Id,\n        Name = \"tf-pool\",\n        NodeType = \"DEV1-M\",\n        Size = 1,\n    });\n\n    // The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n    // It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\n    var kubeconfig = new Null.Resource(\"kubeconfig\", new()\n    {\n        Triggers = \n        {\n            { \"host\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].Host) },\n            { \"token\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].Token) },\n            { \"clusterCaCertificate\", cluster.Kubeconfigs.Apply(kubeconfigs =\u003e kubeconfigs[0].ClusterCaCertificate) },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            pool,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-null/sdk/go/null\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Example with the kubernetes provider\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcluster, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:                      pulumi.String(\"tf-cluster\"),\n\t\t\tVersion:                   pulumi.String(\"1.29.1\"),\n\t\t\tCni:                       pulumi.String(\"cilium\"),\n\t\t\tPrivateNetworkId:          pn.ID(),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := kubernetes.NewPool(ctx, \"pool\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tName:      pulumi.String(\"tf-pool\"),\n\t\t\tNodeType:  pulumi.String(\"DEV1-M\"),\n\t\t\tSize:      pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n\t\t// It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\n\t\t_, err = null.NewResource(ctx, \"kubeconfig\", \u0026null.ResourceArgs{\n\t\t\tTriggers: pulumi.StringMap{\n\t\t\t\t\"host\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].Host, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t\t\"token\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].Token, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t\t\"clusterCaCertificate\": pulumi.String(cluster.Kubeconfigs.ApplyT(func(kubeconfigs []kubernetes.ClusterKubeconfig) (*string, error) {\n\t\t\t\t\treturn \u0026kubeconfigs[0].ClusterCaCertificate, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tpool,\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\nimport com.pulumi.null.Resource;\nimport com.pulumi.null.ResourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Example with the kubernetes provider \n        var pn = new PrivateNetwork(\"pn\");\n\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .version(\"1.29.1\")\n            .cni(\"cilium\")\n            .privateNetworkId(pn.id())\n            .deleteAdditionalResources(false)\n            .build());\n\n        var pool = new Pool(\"pool\", PoolArgs.builder()\n            .clusterId(cluster.id())\n            .name(\"tf-pool\")\n            .nodeType(\"DEV1-M\")\n            .size(1)\n            .build());\n\n        // The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n        // It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\n        var kubeconfig = new Resource(\"kubeconfig\", ResourceArgs.builder()\n            .triggers(Map.ofEntries(\n                Map.entry(\"host\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].host())),\n                Map.entry(\"token\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].token())),\n                Map.entry(\"clusterCaCertificate\", cluster.kubeconfigs().applyValue(_kubeconfigs -\u003e _kubeconfigs[0].clusterCaCertificate()))\n            ))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(pool)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Example with the kubernetes provider\n  pn:\n    type: scaleway:network:PrivateNetwork\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      version: 1.29.1\n      cni: cilium\n      privateNetworkId: ${pn.id}\n      deleteAdditionalResources: false\n  pool:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${cluster.id}\n      name: tf-pool\n      nodeType: DEV1-M\n      size: 1\n  # The `null_resource` is needed because when the cluster is created, its status is `pool_required`, but the kubeconfig can already be downloaded.\n  # It leads the `kubernetes` provider to start creating its objects, but the DNS entry for the Kubernetes master is not yet ready, that's why it's needed to wait for at least a pool.\n  kubeconfig:\n    type: null:Resource\n    properties:\n      triggers:\n        host: ${cluster.kubeconfigs[0].host}\n        token: ${cluster.kubeconfigs[0].token}\n        clusterCaCertificate: ${cluster.kubeconfigs[0].clusterCaCertificate}\n    options:\n      dependsOn:\n        - ${pool}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Multicloud Kubernetes Cluster Example\n// For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    type: \"multicloud\",\n    version: \"1.32.3\",\n    cni: \"kilo\",\n    deleteAdditionalResources: false,\n});\nconst pool = new scaleway.kubernetes.Pool(\"pool\", {\n    clusterId: cluster.id,\n    name: \"tf-pool\",\n    nodeType: \"external\",\n    size: 0,\n    minSize: 0,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n# Multicloud Kubernetes Cluster Example\n# For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    type=\"multicloud\",\n    version=\"1.32.3\",\n    cni=\"kilo\",\n    delete_additional_resources=False)\npool = scaleway.kubernetes.Pool(\"pool\",\n    cluster_id=cluster.id,\n    name=\"tf-pool\",\n    node_type=\"external\",\n    size=0,\n    min_size=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Multicloud Kubernetes Cluster Example\n    // For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Type = \"multicloud\",\n        Version = \"1.32.3\",\n        Cni = \"kilo\",\n        DeleteAdditionalResources = false,\n    });\n\n    var pool = new Scaleway.Kubernetes.Pool(\"pool\", new()\n    {\n        ClusterId = cluster.Id,\n        Name = \"tf-pool\",\n        NodeType = \"external\",\n        Size = 0,\n        MinSize = 0,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Multicloud Kubernetes Cluster Example\n\t\t// For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\n\t\tcluster, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:                      pulumi.String(\"tf-cluster\"),\n\t\t\tType:                      pulumi.String(\"multicloud\"),\n\t\t\tVersion:                   pulumi.String(\"1.32.3\"),\n\t\t\tCni:                       pulumi.String(\"kilo\"),\n\t\t\tDeleteAdditionalResources: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kubernetes.NewPool(ctx, \"pool\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId: cluster.ID(),\n\t\t\tName:      pulumi.String(\"tf-pool\"),\n\t\t\tNodeType:  pulumi.String(\"external\"),\n\t\t\tSize:      pulumi.Int(0),\n\t\t\tMinSize:   pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\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        // Multicloud Kubernetes Cluster Example\n        // For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .type(\"multicloud\")\n            .version(\"1.32.3\")\n            .cni(\"kilo\")\n            .deleteAdditionalResources(false)\n            .build());\n\n        var pool = new Pool(\"pool\", PoolArgs.builder()\n            .clusterId(cluster.id())\n            .name(\"tf-pool\")\n            .nodeType(\"external\")\n            .size(0)\n            .minSize(0)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Multicloud Kubernetes Cluster Example\n  # For a detailed example of how to add or run Elastic Metal servers instead of Instances on your cluster, please refer to [this guide](../guides/multicloud_cluster_with_baremetal_servers.md).\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      type: multicloud\n      version: 1.32.3\n      cni: kilo\n      deleteAdditionalResources: false\n  pool:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${cluster.id}\n      name: tf-pool\n      nodeType: external\n      size: 0\n      minSize: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\n\n## Deprecation of\u003cspan pulumi-lang-nodejs=\" defaultPool\n\" pulumi-lang-dotnet=\" DefaultPool\n\" pulumi-lang-go=\" defaultPool\n\" pulumi-lang-python=\" default_pool\n\" pulumi-lang-yaml=\" defaultPool\n\" pulumi-lang-java=\" defaultPool\n\"\u003e default_pool\n\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`defaultPool`\" pulumi-lang-dotnet=\"`DefaultPool`\" pulumi-lang-go=\"`defaultPool`\" pulumi-lang-python=\"`default_pool`\" pulumi-lang-yaml=\"`defaultPool`\" pulumi-lang-java=\"`defaultPool`\"\u003e`default_pool`\u003c/span\u003e is deprecated in favour the \u003cspan pulumi-lang-nodejs=\"`scaleway.kubernetes.Pool`\" pulumi-lang-dotnet=\"`scaleway.kubernetes.Pool`\" pulumi-lang-go=\"`kubernetes.Pool`\" pulumi-lang-python=\"`kubernetes.Pool`\" pulumi-lang-yaml=\"`scaleway.kubernetes.Pool`\" pulumi-lang-java=\"`scaleway.kubernetes.Pool`\"\u003e`scaleway.kubernetes.Pool`\u003c/span\u003e resource. Here is a migration example.\n\nBefore:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    version: \"1.18.0\",\n    cni: \"cilium\",\n    defaultPool: [{\n        nodeType: \"DEV1-M\",\n        size: 1,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    version=\"1.18.0\",\n    cni=\"cilium\",\n    default_pool=[{\n        \"nodeType\": \"DEV1-M\",\n        \"size\": 1,\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 cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Version = \"1.18.0\",\n        Cni = \"cilium\",\n        DefaultPool = new[]\n        {\n            \n            {\n                { \"nodeType\", \"DEV1-M\" },\n                { \"size\", 1 },\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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:    pulumi.String(\"tf-cluster\"),\n\t\t\tVersion: pulumi.String(\"1.18.0\"),\n\t\t\tCni:     pulumi.String(\"cilium\"),\n\t\t\tDefaultPool: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"nodeType\": \"DEV1-M\",\n\t\t\t\t\t\"size\":     1,\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.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .version(\"1.18.0\")\n            .cni(\"cilium\")\n            .defaultPool(List.of(Map.ofEntries(\n                Map.entry(\"nodeType\", \"DEV1-M\"),\n                Map.entry(\"size\", 1)\n            )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      version: 1.18.0\n      cni: cilium\n      defaultPool:\n        - nodeType: DEV1-M\n          size: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAfter:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst cluster = new scaleway.kubernetes.Cluster(\"cluster\", {\n    name: \"tf-cluster\",\n    version: \"1.18.0\",\n    cni: \"cilium\",\n});\nconst _default = new scaleway.kubernetes.Pool(\"default\", {\n    clusterId: jack.id,\n    name: \"default\",\n    nodeType: \"DEV1-M\",\n    size: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ncluster = scaleway.kubernetes.Cluster(\"cluster\",\n    name=\"tf-cluster\",\n    version=\"1.18.0\",\n    cni=\"cilium\")\ndefault = scaleway.kubernetes.Pool(\"default\",\n    cluster_id=jack[\"id\"],\n    name=\"default\",\n    node_type=\"DEV1-M\",\n    size=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var cluster = new Scaleway.Kubernetes.Cluster(\"cluster\", new()\n    {\n        Name = \"tf-cluster\",\n        Version = \"1.18.0\",\n        Cni = \"cilium\",\n    });\n\n    var @default = new Scaleway.Kubernetes.Pool(\"default\", new()\n    {\n        ClusterId = jack.Id,\n        Name = \"default\",\n        NodeType = \"DEV1-M\",\n        Size = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := kubernetes.NewCluster(ctx, \"cluster\", \u0026kubernetes.ClusterArgs{\n\t\t\tName:    pulumi.String(\"tf-cluster\"),\n\t\t\tVersion: pulumi.String(\"1.18.0\"),\n\t\t\tCni:     pulumi.String(\"cilium\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = kubernetes.NewPool(ctx, \"default\", \u0026kubernetes.PoolArgs{\n\t\t\tClusterId: pulumi.Any(jack.Id),\n\t\t\tName:      pulumi.String(\"default\"),\n\t\t\tNodeType:  pulumi.String(\"DEV1-M\"),\n\t\t\tSize:      pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.kubernetes.Cluster;\nimport com.pulumi.scaleway.kubernetes.ClusterArgs;\nimport com.pulumi.scaleway.kubernetes.Pool;\nimport com.pulumi.scaleway.kubernetes.PoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var cluster = new Cluster(\"cluster\", ClusterArgs.builder()\n            .name(\"tf-cluster\")\n            .version(\"1.18.0\")\n            .cni(\"cilium\")\n            .build());\n\n        var default_ = new Pool(\"default\", PoolArgs.builder()\n            .clusterId(jack.id())\n            .name(\"default\")\n            .nodeType(\"DEV1-M\")\n            .size(1)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cluster:\n    type: scaleway:kubernetes:Cluster\n    properties:\n      name: tf-cluster\n      version: 1.18.0\n      cni: cilium\n  default:\n    type: scaleway:kubernetes:Pool\n    properties:\n      clusterId: ${jack.id}\n      name: default\n      nodeType: DEV1-M\n      size: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nOnce you have moved all the \u003cspan pulumi-lang-nodejs=\"`defaultPool`\" pulumi-lang-dotnet=\"`DefaultPool`\" pulumi-lang-go=\"`defaultPool`\" pulumi-lang-python=\"`default_pool`\" pulumi-lang-yaml=\"`defaultPool`\" pulumi-lang-java=\"`defaultPool`\"\u003e`default_pool`\u003c/span\u003e into their own object, you will need to import them. If your pool had the ID 11111111-1111-1111-1111-111111111111 in the `fr-par` region, you can import it by typing:\n\n```bash\nterraform import scaleway_k8s_pool.default fr-par/11111111-1111-1111-1111-111111111111\n```\n\nThen you will only need to type `pulumi up` to have a smooth migration.\n\n## Import\n\nKubernetes clusters can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:kubernetes/cluster:Cluster mycluster fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"admissionPlugins":{"type":"array","items":{"type":"string"},"description":"The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.\n"},"apiserverCertSans":{"type":"array","items":{"type":"string"},"description":"Additional Subject Alternative Names for the Kubernetes API server certificate\n"},"apiserverUrl":{"type":"string","description":"The URL of the Kubernetes API server.\n"},"autoUpgrade":{"$ref":"#/types/scaleway:kubernetes/ClusterAutoUpgrade:ClusterAutoUpgrade","description":"The auto upgrade configuration.\n"},"autoscalerConfig":{"$ref":"#/types/scaleway:kubernetes/ClusterAutoscalerConfig:ClusterAutoscalerConfig","description":"The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).\n"},"cni":{"type":"string","description":"The Container Network Interface (CNI) for the Kubernetes cluster.\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"createdAt":{"type":"string","description":"The creation date of the cluster.\n"},"deleteAdditionalResources":{"type":"boolean","description":"Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.\n\u003e **Important:** Setting this field to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e means that you will lose all your cluster data and network configuration when you delete your cluster.\nIf you prefer keeping it, you should instead set it as \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"A description for the Kubernetes cluster.\n"},"featureGates":{"type":"array","items":{"type":"string"},"description":"The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.\n"},"kubeconfigs":{"type":"array","items":{"$ref":"#/types/scaleway:kubernetes/ClusterKubeconfig:ClusterKubeconfig"},"description":"The kubeconfig configuration file of the Kubernetes cluster","secret":true},"name":{"type":"string","description":"The name for the Kubernetes cluster.\n"},"openIdConnectConfig":{"$ref":"#/types/scaleway:kubernetes/ClusterOpenIdConnectConfig:ClusterOpenIdConnectConfig","description":"The OpenID Connect configuration of the cluster\n"},"organizationId":{"type":"string","description":"The organization ID the cluster is associated with.\n"},"podCidr":{"type":"string","description":"The subnet used for the Pod CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n"},"privateNetworkId":{"type":"string","description":"The ID of the private network of the cluster.\n\n\u003e **Important:** Changes to this field will recreate a new resource.\n\n\u003e **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e set),\nyou can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cluster is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the cluster should be created.\n"},"serviceCidr":{"type":"string","description":"The subnet used for the Service CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n"},"serviceDnsIp":{"type":"string","description":"The IP used for the DNS Service. If unset, defaults to Service CIDR's network + 10.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n"},"status":{"type":"string","description":"The status of the Kubernetes cluster.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Kubernetes cluster.\n"},"type":{"type":"string","description":"The type of Kubernetes cluster. Possible values are:\n\n- for mutualized clusters: \u003cspan pulumi-lang-nodejs=\"`kapsule`\" pulumi-lang-dotnet=\"`Kapsule`\" pulumi-lang-go=\"`kapsule`\" pulumi-lang-python=\"`kapsule`\" pulumi-lang-yaml=\"`kapsule`\" pulumi-lang-java=\"`kapsule`\"\u003e`kapsule`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`multicloud`\" pulumi-lang-dotnet=\"`Multicloud`\" pulumi-lang-go=\"`multicloud`\" pulumi-lang-python=\"`multicloud`\" pulumi-lang-yaml=\"`multicloud`\" pulumi-lang-java=\"`multicloud`\"\u003e`multicloud`\u003c/span\u003e\n\n- for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.\n\n- for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.\n"},"updatedAt":{"type":"string","description":"The last update date of the cluster.\n"},"upgradeAvailable":{"type":"boolean","description":"Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e if a newer Kubernetes version is available.\n"},"version":{"type":"string","description":"The version of the Kubernetes cluster.\n"},"wildcardDns":{"type":"string","description":"The DNS wildcard that points to all ready nodes.\n"}},"required":["apiserverUrl","autoUpgrade","autoscalerConfig","cni","createdAt","deleteAdditionalResources","kubeconfigs","name","openIdConnectConfig","organizationId","podCidr","projectId","serviceCidr","serviceDnsIp","status","type","updatedAt","upgradeAvailable","version","wildcardDns"],"inputProperties":{"admissionPlugins":{"type":"array","items":{"type":"string"},"description":"The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.\n"},"apiserverCertSans":{"type":"array","items":{"type":"string"},"description":"Additional Subject Alternative Names for the Kubernetes API server certificate\n"},"autoUpgrade":{"$ref":"#/types/scaleway:kubernetes/ClusterAutoUpgrade:ClusterAutoUpgrade","description":"The auto upgrade configuration.\n"},"autoscalerConfig":{"$ref":"#/types/scaleway:kubernetes/ClusterAutoscalerConfig:ClusterAutoscalerConfig","description":"The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).\n"},"cni":{"type":"string","description":"The Container Network Interface (CNI) for the Kubernetes cluster.\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"deleteAdditionalResources":{"type":"boolean","description":"Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.\n\u003e **Important:** Setting this field to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e means that you will lose all your cluster data and network configuration when you delete your cluster.\nIf you prefer keeping it, you should instead set it as \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"A description for the Kubernetes cluster.\n"},"featureGates":{"type":"array","items":{"type":"string"},"description":"The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.\n"},"name":{"type":"string","description":"The name for the Kubernetes cluster.\n"},"openIdConnectConfig":{"$ref":"#/types/scaleway:kubernetes/ClusterOpenIdConnectConfig:ClusterOpenIdConnectConfig","description":"The OpenID Connect configuration of the cluster\n"},"podCidr":{"type":"string","description":"The subnet used for the Pod CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"privateNetworkId":{"type":"string","description":"The ID of the private network of the cluster.\n\n\u003e **Important:** Changes to this field will recreate a new resource.\n\n\u003e **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e set),\nyou can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cluster is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the cluster should be created.\n","willReplaceOnChanges":true},"serviceCidr":{"type":"string","description":"The subnet used for the Service CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"serviceDnsIp":{"type":"string","description":"The IP used for the DNS Service. If unset, defaults to Service CIDR's network + 10.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Kubernetes cluster.\n"},"type":{"type":"string","description":"The type of Kubernetes cluster. Possible values are:\n\n- for mutualized clusters: \u003cspan pulumi-lang-nodejs=\"`kapsule`\" pulumi-lang-dotnet=\"`Kapsule`\" pulumi-lang-go=\"`kapsule`\" pulumi-lang-python=\"`kapsule`\" pulumi-lang-yaml=\"`kapsule`\" pulumi-lang-java=\"`kapsule`\"\u003e`kapsule`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`multicloud`\" pulumi-lang-dotnet=\"`Multicloud`\" pulumi-lang-go=\"`multicloud`\" pulumi-lang-python=\"`multicloud`\" pulumi-lang-yaml=\"`multicloud`\" pulumi-lang-java=\"`multicloud`\"\u003e`multicloud`\u003c/span\u003e\n\n- for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.\n\n- for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.\n"},"version":{"type":"string","description":"The version of the Kubernetes cluster.\n"}},"requiredInputs":["cni","deleteAdditionalResources","version"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"admissionPlugins":{"type":"array","items":{"type":"string"},"description":"The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) to enable on the cluster.\n"},"apiserverCertSans":{"type":"array","items":{"type":"string"},"description":"Additional Subject Alternative Names for the Kubernetes API server certificate\n"},"apiserverUrl":{"type":"string","description":"The URL of the Kubernetes API server.\n"},"autoUpgrade":{"$ref":"#/types/scaleway:kubernetes/ClusterAutoUpgrade:ClusterAutoUpgrade","description":"The auto upgrade configuration.\n"},"autoscalerConfig":{"$ref":"#/types/scaleway:kubernetes/ClusterAutoscalerConfig:ClusterAutoscalerConfig","description":"The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).\n"},"cni":{"type":"string","description":"The Container Network Interface (CNI) for the Kubernetes cluster.\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"The creation date of the cluster.\n"},"deleteAdditionalResources":{"type":"boolean","description":"Delete additional resources like block volumes, load-balancers and the cluster's private network (if empty) that were created in Kubernetes on cluster deletion.\n\u003e **Important:** Setting this field to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e means that you will lose all your cluster data and network configuration when you delete your cluster.\nIf you prefer keeping it, you should instead set it as \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"description":{"type":"string","description":"A description for the Kubernetes cluster.\n"},"featureGates":{"type":"array","items":{"type":"string"},"description":"The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) to enable on the cluster.\n"},"kubeconfigs":{"type":"array","items":{"$ref":"#/types/scaleway:kubernetes/ClusterKubeconfig:ClusterKubeconfig"},"description":"The kubeconfig configuration file of the Kubernetes cluster","secret":true},"name":{"type":"string","description":"The name for the Kubernetes cluster.\n"},"openIdConnectConfig":{"$ref":"#/types/scaleway:kubernetes/ClusterOpenIdConnectConfig:ClusterOpenIdConnectConfig","description":"The OpenID Connect configuration of the cluster\n"},"organizationId":{"type":"string","description":"The organization ID the cluster is associated with.\n"},"podCidr":{"type":"string","description":"The subnet used for the Pod CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"privateNetworkId":{"type":"string","description":"The ID of the private network of the cluster.\n\n\u003e **Important:** Changes to this field will recreate a new resource.\n\n\u003e **Important:** Private Networks are now mandatory with Kapsule Clusters. If you have a legacy cluster (no \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e set),\nyou can still set it now. In this case it will not destroy and recreate your cluster but migrate it to the Private Network.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the cluster is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the cluster should be created.\n","willReplaceOnChanges":true},"serviceCidr":{"type":"string","description":"The subnet used for the Service CIDR.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"serviceDnsIp":{"type":"string","description":"The IP used for the DNS Service. If unset, defaults to Service CIDR's network + 10.\n\n\u003e **Important:** Changes to this field will recreate a new resource. However once it has been set to a custom value,\nunsetting it to go back to the default value will not have any effect.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Kubernetes cluster.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Kubernetes cluster.\n"},"type":{"type":"string","description":"The type of Kubernetes cluster. Possible values are:\n\n- for mutualized clusters: \u003cspan pulumi-lang-nodejs=\"`kapsule`\" pulumi-lang-dotnet=\"`Kapsule`\" pulumi-lang-go=\"`kapsule`\" pulumi-lang-python=\"`kapsule`\" pulumi-lang-yaml=\"`kapsule`\" pulumi-lang-java=\"`kapsule`\"\u003e`kapsule`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`multicloud`\" pulumi-lang-dotnet=\"`Multicloud`\" pulumi-lang-go=\"`multicloud`\" pulumi-lang-python=\"`multicloud`\" pulumi-lang-yaml=\"`multicloud`\" pulumi-lang-java=\"`multicloud`\"\u003e`multicloud`\u003c/span\u003e\n\n- for dedicated Kapsule clusters: `kapsule-dedicated-4`, `kapsule-dedicated-8` or `kapsule-dedicated-16`.\n\n- for dedicated Kosmos clusters: `multicloud-dedicated-4`, `multicloud-dedicated-8` or `multicloud-dedicated-16`.\n"},"updatedAt":{"type":"string","description":"The last update date of the cluster.\n"},"upgradeAvailable":{"type":"boolean","description":"Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e if a newer Kubernetes version is available.\n"},"version":{"type":"string","description":"The version of the Kubernetes cluster.\n"},"wildcardDns":{"type":"string","description":"The DNS wildcard that points to all ready nodes.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/kubernetesCluster:KubernetesCluster"}]},"scaleway:kubernetes/pool:Pool":{"description":"\n\n## Import\n\nKubernetes pools can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:kubernetes/pool:Pool mypool fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"autohealing":{"type":"boolean","description":"Enables the autohealing feature for this pool.\n"},"autoscaling":{"type":"boolean","description":"Enables the autoscaling feature for this pool.\n\n\u003e **Important:** When enabled, an update of the \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e will not be taken into account.\n"},"clusterId":{"type":"string","description":"The ID of the Kubernetes cluster on which this pool will be created.\n"},"containerRuntime":{"type":"string","description":"The container runtime of the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"createdAt":{"type":"string","description":"The creation date of the pool.\n"},"currentSize":{"type":"integer","description":"The actual size of the pool"},"kubeletArgs":{"type":"object","additionalProperties":{"type":"string"},"description":"The Kubelet arguments to be used by this pool\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool, used by the autoscaling feature.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool, used by the autoscaling feature.\n"},"name":{"type":"string","description":"The name for the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"nodeType":{"type":"string","description":"The commercial type of the pool instances. Instances with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). \u003cspan pulumi-lang-nodejs=\"`external`\" pulumi-lang-dotnet=\"`External`\" pulumi-lang-go=\"`external`\" pulumi-lang-python=\"`external`\" pulumi-lang-yaml=\"`external`\" pulumi-lang-java=\"`external`\"\u003e`external`\u003c/span\u003e is a special node type used to provision from other Cloud providers.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"nodes":{"type":"array","items":{"$ref":"#/types/scaleway:kubernetes/PoolNode:PoolNode"},"description":"(List of) The nodes in the default pool.\n"},"placementGroupId":{"type":"string","description":"The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) the nodes of the pool will be attached to.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"publicIpDisabled":{"type":"boolean","description":"Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the pool should be created.\n"},"rootVolumeSizeInGb":{"type":"integer","description":"The size of the system volume of the nodes in gigabyte\n"},"rootVolumeType":{"type":"string","description":"System volume type of the nodes composing the pool\n"},"securityGroupId":{"type":"string","description":"The ID of the security group\n"},"size":{"type":"integer","description":"The size of the pool.\n\n\u003e **Important:** This field will only be used at creation if autoscaling is enabled.\n"},"status":{"type":"string","description":"The status of the node.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the pool.\n\n\u003e Note: As mentioned in [this document](https://github.com/scaleway/scaleway-cloud-controller-manager/blob/master/docs/tags.md#taints), taints of a pool's nodes are applied using tags. (e.g.: `\"taint=taintName=taintValue:Effect\"`)\n"},"updatedAt":{"type":"string","description":"The last update date of the pool.\n"},"upgradePolicy":{"$ref":"#/types/scaleway:kubernetes/PoolUpgradePolicy:PoolUpgradePolicy","description":"The Pool upgrade policy\n"},"version":{"type":"string","description":"The version of the pool.\n"},"waitForPoolReady":{"type":"boolean","description":"Whether to wait for the pool to be ready.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the pool should be created.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n"}},"required":["clusterId","createdAt","currentSize","maxSize","name","nodeType","nodes","rootVolumeSizeInGb","rootVolumeType","securityGroupId","size","status","updatedAt","upgradePolicy","version"],"inputProperties":{"autohealing":{"type":"boolean","description":"Enables the autohealing feature for this pool.\n"},"autoscaling":{"type":"boolean","description":"Enables the autoscaling feature for this pool.\n\n\u003e **Important:** When enabled, an update of the \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e will not be taken into account.\n"},"clusterId":{"type":"string","description":"The ID of the Kubernetes cluster on which this pool will be created.\n","willReplaceOnChanges":true},"containerRuntime":{"type":"string","description":"The container runtime of the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"kubeletArgs":{"type":"object","additionalProperties":{"type":"string"},"description":"The Kubelet arguments to be used by this pool\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool, used by the autoscaling feature.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool, used by the autoscaling feature.\n"},"name":{"type":"string","description":"The name for the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"nodeType":{"type":"string","description":"The commercial type of the pool instances. Instances with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). \u003cspan pulumi-lang-nodejs=\"`external`\" pulumi-lang-dotnet=\"`External`\" pulumi-lang-go=\"`external`\" pulumi-lang-python=\"`external`\" pulumi-lang-yaml=\"`external`\" pulumi-lang-java=\"`external`\"\u003e`external`\u003c/span\u003e is a special node type used to provision from other Cloud providers.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"placementGroupId":{"type":"string","description":"The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) the nodes of the pool will be attached to.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"publicIpDisabled":{"type":"boolean","description":"Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the pool should be created.\n","willReplaceOnChanges":true},"rootVolumeSizeInGb":{"type":"integer","description":"The size of the system volume of the nodes in gigabyte\n","willReplaceOnChanges":true},"rootVolumeType":{"type":"string","description":"System volume type of the nodes composing the pool\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group\n"},"size":{"type":"integer","description":"The size of the pool.\n\n\u003e **Important:** This field will only be used at creation if autoscaling is enabled.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the pool.\n\n\u003e Note: As mentioned in [this document](https://github.com/scaleway/scaleway-cloud-controller-manager/blob/master/docs/tags.md#taints), taints of a pool's nodes are applied using tags. (e.g.: `\"taint=taintName=taintValue:Effect\"`)\n"},"upgradePolicy":{"$ref":"#/types/scaleway:kubernetes/PoolUpgradePolicy:PoolUpgradePolicy","description":"The Pool upgrade policy\n"},"waitForPoolReady":{"type":"boolean","description":"Whether to wait for the pool to be ready.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the pool should be created.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterId","nodeType","size"],"stateInputs":{"description":"Input properties used for looking up and filtering Pool resources.\n","properties":{"autohealing":{"type":"boolean","description":"Enables the autohealing feature for this pool.\n"},"autoscaling":{"type":"boolean","description":"Enables the autoscaling feature for this pool.\n\n\u003e **Important:** When enabled, an update of the \u003cspan pulumi-lang-nodejs=\"`size`\" pulumi-lang-dotnet=\"`Size`\" pulumi-lang-go=\"`size`\" pulumi-lang-python=\"`size`\" pulumi-lang-yaml=\"`size`\" pulumi-lang-java=\"`size`\"\u003e`size`\u003c/span\u003e will not be taken into account.\n"},"clusterId":{"type":"string","description":"The ID of the Kubernetes cluster on which this pool will be created.\n","willReplaceOnChanges":true},"containerRuntime":{"type":"string","description":"The container runtime of the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"The creation date of the pool.\n"},"currentSize":{"type":"integer","description":"The actual size of the pool"},"kubeletArgs":{"type":"object","additionalProperties":{"type":"string"},"description":"The Kubelet arguments to be used by this pool\n"},"maxSize":{"type":"integer","description":"The maximum size of the pool, used by the autoscaling feature.\n"},"minSize":{"type":"integer","description":"The minimum size of the pool, used by the autoscaling feature.\n"},"name":{"type":"string","description":"The name for the pool.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"nodeType":{"type":"string","description":"The commercial type of the pool instances. Instances with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). \u003cspan pulumi-lang-nodejs=\"`external`\" pulumi-lang-dotnet=\"`External`\" pulumi-lang-go=\"`external`\" pulumi-lang-python=\"`external`\" pulumi-lang-yaml=\"`external`\" pulumi-lang-java=\"`external`\"\u003e`external`\u003c/span\u003e is a special node type used to provision from other Cloud providers.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"nodes":{"type":"array","items":{"$ref":"#/types/scaleway:kubernetes/PoolNode:PoolNode"},"description":"(List of) The nodes in the default pool.\n"},"placementGroupId":{"type":"string","description":"The [placement group](https://www.scaleway.com/en/developers/api/instance/#path-placement-groups-create-a-placement-group) the nodes of the pool will be attached to.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"publicIpDisabled":{"type":"boolean","description":"Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the pool should be created.\n","willReplaceOnChanges":true},"rootVolumeSizeInGb":{"type":"integer","description":"The size of the system volume of the nodes in gigabyte\n","willReplaceOnChanges":true},"rootVolumeType":{"type":"string","description":"System volume type of the nodes composing the pool\n","willReplaceOnChanges":true},"securityGroupId":{"type":"string","description":"The ID of the security group\n"},"size":{"type":"integer","description":"The size of the pool.\n\n\u003e **Important:** This field will only be used at creation if autoscaling is enabled.\n"},"status":{"type":"string","description":"The status of the node.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the pool.\n\n\u003e Note: As mentioned in [this document](https://github.com/scaleway/scaleway-cloud-controller-manager/blob/master/docs/tags.md#taints), taints of a pool's nodes are applied using tags. (e.g.: `\"taint=taintName=taintValue:Effect\"`)\n"},"updatedAt":{"type":"string","description":"The last update date of the pool.\n"},"upgradePolicy":{"$ref":"#/types/scaleway:kubernetes/PoolUpgradePolicy:PoolUpgradePolicy","description":"The Pool upgrade policy\n"},"version":{"type":"string","description":"The version of the pool.\n"},"waitForPoolReady":{"type":"boolean","description":"Whether to wait for the pool to be ready.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the pool should be created.\n\n\u003e **Important:** Updates to this field will recreate a new resource.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/kubernetesNodePool:KubernetesNodePool"}]},"scaleway:loadbalancers/acl:Acl":{"description":"Creates and manages Scaleway Load Balancer ACLs.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/acls/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-acls-get-an-acl).\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 acl01 = new scaleway.loadbalancers.Acl(\"acl01\", {\n    frontendId: frt01.id,\n    name: \"acl01\",\n    description: \"Exclude well-known IPs\",\n    index: 0,\n    action: {\n        type: \"allow\",\n    },\n    match: {\n        ipSubnets: [\n            \"192.168.0.1\",\n            \"192.168.0.2\",\n            \"192.168.10.0/24\",\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nacl01 = scaleway.loadbalancers.Acl(\"acl01\",\n    frontend_id=frt01[\"id\"],\n    name=\"acl01\",\n    description=\"Exclude well-known IPs\",\n    index=0,\n    action={\n        \"type\": \"allow\",\n    },\n    match={\n        \"ip_subnets\": [\n            \"192.168.0.1\",\n            \"192.168.0.2\",\n            \"192.168.10.0/24\",\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 acl01 = new Scaleway.Loadbalancers.Acl(\"acl01\", new()\n    {\n        FrontendId = frt01.Id,\n        Name = \"acl01\",\n        Description = \"Exclude well-known IPs\",\n        Index = 0,\n        Action = new Scaleway.Loadbalancers.Inputs.AclActionArgs\n        {\n            Type = \"allow\",\n        },\n        Match = new Scaleway.Loadbalancers.Inputs.AclMatchArgs\n        {\n            IpSubnets = new[]\n            {\n                \"192.168.0.1\",\n                \"192.168.0.2\",\n                \"192.168.10.0/24\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewAcl(ctx, \"acl01\", \u0026loadbalancers.AclArgs{\n\t\t\tFrontendId:  pulumi.Any(frt01.Id),\n\t\t\tName:        pulumi.String(\"acl01\"),\n\t\t\tDescription: pulumi.String(\"Exclude well-known IPs\"),\n\t\t\tIndex:       pulumi.Int(0),\n\t\t\tAction: \u0026loadbalancers.AclActionArgs{\n\t\t\t\tType: pulumi.String(\"allow\"),\n\t\t\t},\n\t\t\tMatch: \u0026loadbalancers.AclMatchArgs{\n\t\t\t\tIpSubnets: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"192.168.0.1\"),\n\t\t\t\t\tpulumi.String(\"192.168.0.2\"),\n\t\t\t\t\tpulumi.String(\"192.168.10.0/24\"),\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.loadbalancers.Acl;\nimport com.pulumi.scaleway.loadbalancers.AclArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.AclActionArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.AclMatchArgs;\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 acl01 = new Acl(\"acl01\", AclArgs.builder()\n            .frontendId(frt01.id())\n            .name(\"acl01\")\n            .description(\"Exclude well-known IPs\")\n            .index(0)\n            .action(AclActionArgs.builder()\n                .type(\"allow\")\n                .build())\n            .match(AclMatchArgs.builder()\n                .ipSubnets(                \n                    \"192.168.0.1\",\n                    \"192.168.0.2\",\n                    \"192.168.10.0/24\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  acl01:\n    type: scaleway:loadbalancers:Acl\n    properties:\n      frontendId: ${frt01.id}\n      name: acl01\n      description: Exclude well-known IPs\n      index: 0 # Allow downstream requests from: 192.168.0.1, 192.168.0.2 or 192.168.10.0/24\n      action:\n        type: allow\n      match:\n        ipSubnets:\n          - 192.168.0.1\n          - 192.168.0.2\n          - 192.168.10.0/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer ACLs can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:loadbalancers/acl:Acl acl01 fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"action":{"$ref":"#/types/scaleway:loadbalancers/AclAction:AclAction","description":"Action to undertake when an ACL filter matches.\n"},"createdAt":{"type":"string","description":"IsDate and time of ACL's creation (RFC 3339 format)"},"description":{"type":"string","description":"The ACL description.\n"},"frontendId":{"type":"string","description":"The ID of the Load Balancer frontend to attach the ACL to.\n"},"index":{"type":"integer","description":"The priority of this ACL (ACLs are applied in ascending order, 0 is the first ACL executed).\n"},"match":{"$ref":"#/types/scaleway:loadbalancers/AclMatch:AclMatch","description":"The ACL match rule. At least \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`httpFilterValue`\" pulumi-lang-dotnet=\"`HttpFilterValue`\" pulumi-lang-go=\"`httpFilterValue`\" pulumi-lang-python=\"`http_filter_value`\" pulumi-lang-yaml=\"`httpFilterValue`\" pulumi-lang-java=\"`httpFilterValue`\"\u003e`http_filter_value`\u003c/span\u003e are required.\n"},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"updatedAt":{"type":"string","description":"IsDate and time of ACL's update (RFC 3339 format)"}},"required":["action","createdAt","frontendId","index","name","updatedAt"],"inputProperties":{"action":{"$ref":"#/types/scaleway:loadbalancers/AclAction:AclAction","description":"Action to undertake when an ACL filter matches.\n"},"description":{"type":"string","description":"The ACL description.\n"},"frontendId":{"type":"string","description":"The ID of the Load Balancer frontend to attach the ACL to.\n","willReplaceOnChanges":true},"index":{"type":"integer","description":"The priority of this ACL (ACLs are applied in ascending order, 0 is the first ACL executed).\n"},"match":{"$ref":"#/types/scaleway:loadbalancers/AclMatch:AclMatch","description":"The ACL match rule. At least \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`httpFilterValue`\" pulumi-lang-dotnet=\"`HttpFilterValue`\" pulumi-lang-go=\"`httpFilterValue`\" pulumi-lang-python=\"`http_filter_value`\" pulumi-lang-yaml=\"`httpFilterValue`\" pulumi-lang-java=\"`httpFilterValue`\"\u003e`http_filter_value`\u003c/span\u003e are required.\n"},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"}},"requiredInputs":["action","frontendId","index"],"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"action":{"$ref":"#/types/scaleway:loadbalancers/AclAction:AclAction","description":"Action to undertake when an ACL filter matches.\n"},"createdAt":{"type":"string","description":"IsDate and time of ACL's creation (RFC 3339 format)"},"description":{"type":"string","description":"The ACL description.\n"},"frontendId":{"type":"string","description":"The ID of the Load Balancer frontend to attach the ACL to.\n","willReplaceOnChanges":true},"index":{"type":"integer","description":"The priority of this ACL (ACLs are applied in ascending order, 0 is the first ACL executed).\n"},"match":{"$ref":"#/types/scaleway:loadbalancers/AclMatch:AclMatch","description":"The ACL match rule. At least \u003cspan pulumi-lang-nodejs=\"`ipSubnet`\" pulumi-lang-dotnet=\"`IpSubnet`\" pulumi-lang-go=\"`ipSubnet`\" pulumi-lang-python=\"`ip_subnet`\" pulumi-lang-yaml=\"`ipSubnet`\" pulumi-lang-java=\"`ipSubnet`\"\u003e`ip_subnet`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipsEdgeServices`\" pulumi-lang-dotnet=\"`IpsEdgeServices`\" pulumi-lang-go=\"`ipsEdgeServices`\" pulumi-lang-python=\"`ips_edge_services`\" pulumi-lang-yaml=\"`ipsEdgeServices`\" pulumi-lang-java=\"`ipsEdgeServices`\"\u003e`ips_edge_services`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`httpFilter`\" pulumi-lang-dotnet=\"`HttpFilter`\" pulumi-lang-go=\"`httpFilter`\" pulumi-lang-python=\"`http_filter`\" pulumi-lang-yaml=\"`httpFilter`\" pulumi-lang-java=\"`httpFilter`\"\u003e`http_filter`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`httpFilterValue`\" pulumi-lang-dotnet=\"`HttpFilterValue`\" pulumi-lang-go=\"`httpFilterValue`\" pulumi-lang-python=\"`http_filter_value`\" pulumi-lang-yaml=\"`httpFilterValue`\" pulumi-lang-java=\"`httpFilterValue`\"\u003e`http_filter_value`\u003c/span\u003e are required.\n"},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"updatedAt":{"type":"string","description":"IsDate and time of ACL's update (RFC 3339 format)"}},"type":"object"},"aliases":[{"type":"scaleway:index/loadbalancerAcl:LoadbalancerAcl"}]},"scaleway:loadbalancers/backend:Backend":{"description":"Creates and manages Scaleway Load Balancer backends.\n\nor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-backends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-backends).\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 backend01 = new scaleway.loadbalancers.Backend(\"backend01\", {\n    lbId: lb01.id,\n    name: \"backend01\",\n    forwardProtocol: \"http\",\n    forwardPort: 80,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbackend01 = scaleway.loadbalancers.Backend(\"backend01\",\n    lb_id=lb01[\"id\"],\n    name=\"backend01\",\n    forward_protocol=\"http\",\n    forward_port=80)\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 backend01 = new Scaleway.Loadbalancers.Backend(\"backend01\", new()\n    {\n        LbId = lb01.Id,\n        Name = \"backend01\",\n        ForwardProtocol = \"http\",\n        ForwardPort = 80,\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewBackend(ctx, \"backend01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            pulumi.Any(lb01.Id),\n\t\t\tName:            pulumi.String(\"backend01\"),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(80),\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.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\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 backend01 = new Backend(\"backend01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .name(\"backend01\")\n            .forwardProtocol(\"http\")\n            .forwardPort(80)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  backend01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      name: backend01\n      forwardProtocol: http\n      forwardPort: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With HTTP Health Check\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst backend01 = new scaleway.loadbalancers.Backend(\"backend01\", {\n    lbId: lb01.id,\n    name: \"backend01\",\n    forwardProtocol: \"http\",\n    forwardPort: 80,\n    healthCheckHttp: {\n        uri: \"/health\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbackend01 = scaleway.loadbalancers.Backend(\"backend01\",\n    lb_id=lb01[\"id\"],\n    name=\"backend01\",\n    forward_protocol=\"http\",\n    forward_port=80,\n    health_check_http={\n        \"uri\": \"/health\",\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 backend01 = new Scaleway.Loadbalancers.Backend(\"backend01\", new()\n    {\n        LbId = lb01.Id,\n        Name = \"backend01\",\n        ForwardProtocol = \"http\",\n        ForwardPort = 80,\n        HealthCheckHttp = new Scaleway.Loadbalancers.Inputs.BackendHealthCheckHttpArgs\n        {\n            Uri = \"/health\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewBackend(ctx, \"backend01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            pulumi.Any(lb01.Id),\n\t\t\tName:            pulumi.String(\"backend01\"),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tHealthCheckHttp: \u0026loadbalancers.BackendHealthCheckHttpArgs{\n\t\t\t\tUri: pulumi.String(\"/health\"),\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.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.BackendHealthCheckHttpArgs;\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 backend01 = new Backend(\"backend01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .name(\"backend01\")\n            .forwardProtocol(\"http\")\n            .forwardPort(80)\n            .healthCheckHttp(BackendHealthCheckHttpArgs.builder()\n                .uri(\"/health\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  backend01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      name: backend01\n      forwardProtocol: http\n      forwardPort: '80'\n      healthCheckHttp:\n        uri: /health\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer backends can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:loadbalancers/backend:Backend backend01 fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"failoverHost":{"type":"string","description":"Scaleway S3 bucket website to be served in case all backend servers are down\n\n**NOTE** : Only the host part of the Scaleway S3 bucket website is expected.\nE.g. 'failover-website.s3-website.fr-par.scw.cloud' if your bucket website URL is 'https://failover-website.s3-website.fr-par.scw.cloud/'."},"forwardPort":{"type":"integer","description":"User sessions will be forwarded to this port of backend servers"},"forwardPortAlgorithm":{"type":"string","description":"Load balancing algorithm"},"forwardProtocol":{"type":"string","description":"Backend protocol"},"healthCheckDelay":{"type":"string","description":"Interval between two HC requests"},"healthCheckHttp":{"$ref":"#/types/scaleway:loadbalancers/BackendHealthCheckHttp:BackendHealthCheckHttp","description":"HTTP Health check"},"healthCheckHttps":{"$ref":"#/types/scaleway:loadbalancers/BackendHealthCheckHttps:BackendHealthCheckHttps","description":"HTTPS Health check"},"healthCheckMaxRetries":{"type":"integer","description":"Number of allowed failed HC requests before the backend server is marked down"},"healthCheckPort":{"type":"integer","description":"Port the HC requests will be send to. Default to \u003cspan pulumi-lang-nodejs=\"`forwardPort`\" pulumi-lang-dotnet=\"`ForwardPort`\" pulumi-lang-go=\"`forwardPort`\" pulumi-lang-python=\"`forward_port`\" pulumi-lang-yaml=\"`forwardPort`\" pulumi-lang-java=\"`forwardPort`\"\u003e`forward_port`\u003c/span\u003e"},"healthCheckSendProxy":{"type":"boolean","description":"Defines whether proxy protocol should be activated for the health check"},"healthCheckTcp":{"$ref":"#/types/scaleway:loadbalancers/BackendHealthCheckTcp:BackendHealthCheckTcp","description":"TCP Health check"},"healthCheckTimeout":{"type":"string","description":"Timeout before we consider a HC request failed"},"healthCheckTransientDelay":{"type":"string","description":"Time to wait between two consecutive health checks when a backend server is in a transient state (going UP or DOWN)"},"ignoreSslServerVerify":{"type":"boolean","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection"},"lbId":{"type":"string","description":"The load-balancer ID"},"maxConnections":{"type":"integer","description":"Maximum number of connections allowed per backend server"},"maxRetries":{"type":"integer","description":"Number of retries when a backend server connection failed"},"name":{"type":"string","description":"The name of the backend"},"onMarkedDownAction":{"type":"string","description":"Modify what occurs when a backend server is marked down"},"proxyProtocol":{"type":"string","description":"Type of PROXY protocol to enable"},"redispatchAttemptCount":{"type":"integer","description":"Whether to use another backend server on each attempt"},"sendProxyV2":{"type":"boolean","description":"Enables PROXY protocol version 2","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" proxyProtocol \" pulumi-lang-dotnet=\" ProxyProtocol \" pulumi-lang-go=\" proxyProtocol \" pulumi-lang-python=\" proxy_protocol \" pulumi-lang-yaml=\" proxyProtocol \" pulumi-lang-java=\" proxyProtocol \"\u003e proxy_protocol \u003c/span\u003einstead"},"serverIps":{"type":"array","items":{"type":"string"},"description":"Backend server IP addresses list (IPv4 or IPv6)"},"sslBridging":{"type":"boolean","description":"Enables SSL between load balancer and backend servers"},"stickySessions":{"type":"string","description":"The type of sticky sessions"},"stickySessionsCookieName":{"type":"string","description":"Cookie name for sticky sessions"},"timeoutConnect":{"type":"string","description":"Maximum initial server connection establishment time"},"timeoutQueue":{"type":"string","description":"Maximum time (in seconds) for a request to be left pending in queue when \u003cspan pulumi-lang-nodejs=\"`maxConnections`\" pulumi-lang-dotnet=\"`MaxConnections`\" pulumi-lang-go=\"`maxConnections`\" pulumi-lang-python=\"`max_connections`\" pulumi-lang-yaml=\"`maxConnections`\" pulumi-lang-java=\"`maxConnections`\"\u003e`max_connections`\u003c/span\u003e is reached"},"timeoutServer":{"type":"string","description":"Maximum server connection inactivity time"},"timeoutTunnel":{"type":"string","description":"Maximum tunnel inactivity time"}},"required":["forwardPort","forwardProtocol","healthCheckPort","healthCheckTcp","lbId","name","sendProxyV2"],"inputProperties":{"failoverHost":{"type":"string","description":"Scaleway S3 bucket website to be served in case all backend servers are down\n\n**NOTE** : Only the host part of the Scaleway S3 bucket website is expected.\nE.g. 'failover-website.s3-website.fr-par.scw.cloud' if your bucket website URL is 'https://failover-website.s3-website.fr-par.scw.cloud/'."},"forwardPort":{"type":"integer","description":"User sessions will be forwarded to this port of backend servers"},"forwardPortAlgorithm":{"type":"string","description":"Load balancing algorithm"},"forwardProtocol":{"type":"string","description":"Backend protocol"},"healthCheckDelay":{"type":"string","description":"Interval between two HC requests"},"healthCheckHttp":{"$ref":"#/types/scaleway:loadbalancers/BackendHealthCheckHttp:BackendHealthCheckHttp","description":"HTTP Health check"},"healthCheckHttps":{"$ref":"#/types/scaleway:loadbalancers/BackendHealthCheckHttps:BackendHealthCheckHttps","description":"HTTPS Health check"},"healthCheckMaxRetries":{"type":"integer","description":"Number of allowed failed HC requests before the backend server is marked down"},"healthCheckPort":{"type":"integer","description":"Port the HC requests will be send to. Default to \u003cspan pulumi-lang-nodejs=\"`forwardPort`\" pulumi-lang-dotnet=\"`ForwardPort`\" pulumi-lang-go=\"`forwardPort`\" pulumi-lang-python=\"`forward_port`\" pulumi-lang-yaml=\"`forwardPort`\" pulumi-lang-java=\"`forwardPort`\"\u003e`forward_port`\u003c/span\u003e"},"healthCheckSendProxy":{"type":"boolean","description":"Defines whether proxy protocol should be activated for the health check"},"healthCheckTcp":{"$ref":"#/types/scaleway:loadbalancers/BackendHealthCheckTcp:BackendHealthCheckTcp","description":"TCP Health check"},"healthCheckTimeout":{"type":"string","description":"Timeout before we consider a HC request failed"},"healthCheckTransientDelay":{"type":"string","description":"Time to wait between two consecutive health checks when a backend server is in a transient state (going UP or DOWN)"},"ignoreSslServerVerify":{"type":"boolean","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection"},"lbId":{"type":"string","description":"The load-balancer ID","willReplaceOnChanges":true},"maxConnections":{"type":"integer","description":"Maximum number of connections allowed per backend server"},"maxRetries":{"type":"integer","description":"Number of retries when a backend server connection failed"},"name":{"type":"string","description":"The name of the backend"},"onMarkedDownAction":{"type":"string","description":"Modify what occurs when a backend server is marked down"},"proxyProtocol":{"type":"string","description":"Type of PROXY protocol to enable"},"redispatchAttemptCount":{"type":"integer","description":"Whether to use another backend server on each attempt"},"sendProxyV2":{"type":"boolean","description":"Enables PROXY protocol version 2","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" proxyProtocol \" pulumi-lang-dotnet=\" ProxyProtocol \" pulumi-lang-go=\" proxyProtocol \" pulumi-lang-python=\" proxy_protocol \" pulumi-lang-yaml=\" proxyProtocol \" pulumi-lang-java=\" proxyProtocol \"\u003e proxy_protocol \u003c/span\u003einstead"},"serverIps":{"type":"array","items":{"type":"string"},"description":"Backend server IP addresses list (IPv4 or IPv6)"},"sslBridging":{"type":"boolean","description":"Enables SSL between load balancer and backend servers"},"stickySessions":{"type":"string","description":"The type of sticky sessions"},"stickySessionsCookieName":{"type":"string","description":"Cookie name for sticky sessions"},"timeoutConnect":{"type":"string","description":"Maximum initial server connection establishment time"},"timeoutQueue":{"type":"string","description":"Maximum time (in seconds) for a request to be left pending in queue when \u003cspan pulumi-lang-nodejs=\"`maxConnections`\" pulumi-lang-dotnet=\"`MaxConnections`\" pulumi-lang-go=\"`maxConnections`\" pulumi-lang-python=\"`max_connections`\" pulumi-lang-yaml=\"`maxConnections`\" pulumi-lang-java=\"`maxConnections`\"\u003e`max_connections`\u003c/span\u003e is reached"},"timeoutServer":{"type":"string","description":"Maximum server connection inactivity time"},"timeoutTunnel":{"type":"string","description":"Maximum tunnel inactivity time"}},"requiredInputs":["forwardPort","forwardProtocol","lbId"],"stateInputs":{"description":"Input properties used for looking up and filtering Backend resources.\n","properties":{"failoverHost":{"type":"string","description":"Scaleway S3 bucket website to be served in case all backend servers are down\n\n**NOTE** : Only the host part of the Scaleway S3 bucket website is expected.\nE.g. 'failover-website.s3-website.fr-par.scw.cloud' if your bucket website URL is 'https://failover-website.s3-website.fr-par.scw.cloud/'."},"forwardPort":{"type":"integer","description":"User sessions will be forwarded to this port of backend servers"},"forwardPortAlgorithm":{"type":"string","description":"Load balancing algorithm"},"forwardProtocol":{"type":"string","description":"Backend protocol"},"healthCheckDelay":{"type":"string","description":"Interval between two HC requests"},"healthCheckHttp":{"$ref":"#/types/scaleway:loadbalancers/BackendHealthCheckHttp:BackendHealthCheckHttp","description":"HTTP Health check"},"healthCheckHttps":{"$ref":"#/types/scaleway:loadbalancers/BackendHealthCheckHttps:BackendHealthCheckHttps","description":"HTTPS Health check"},"healthCheckMaxRetries":{"type":"integer","description":"Number of allowed failed HC requests before the backend server is marked down"},"healthCheckPort":{"type":"integer","description":"Port the HC requests will be send to. Default to \u003cspan pulumi-lang-nodejs=\"`forwardPort`\" pulumi-lang-dotnet=\"`ForwardPort`\" pulumi-lang-go=\"`forwardPort`\" pulumi-lang-python=\"`forward_port`\" pulumi-lang-yaml=\"`forwardPort`\" pulumi-lang-java=\"`forwardPort`\"\u003e`forward_port`\u003c/span\u003e"},"healthCheckSendProxy":{"type":"boolean","description":"Defines whether proxy protocol should be activated for the health check"},"healthCheckTcp":{"$ref":"#/types/scaleway:loadbalancers/BackendHealthCheckTcp:BackendHealthCheckTcp","description":"TCP Health check"},"healthCheckTimeout":{"type":"string","description":"Timeout before we consider a HC request failed"},"healthCheckTransientDelay":{"type":"string","description":"Time to wait between two consecutive health checks when a backend server is in a transient state (going UP or DOWN)"},"ignoreSslServerVerify":{"type":"boolean","description":"Specifies whether the Load Balancer should check the backend server’s certificate before initiating a connection"},"lbId":{"type":"string","description":"The load-balancer ID","willReplaceOnChanges":true},"maxConnections":{"type":"integer","description":"Maximum number of connections allowed per backend server"},"maxRetries":{"type":"integer","description":"Number of retries when a backend server connection failed"},"name":{"type":"string","description":"The name of the backend"},"onMarkedDownAction":{"type":"string","description":"Modify what occurs when a backend server is marked down"},"proxyProtocol":{"type":"string","description":"Type of PROXY protocol to enable"},"redispatchAttemptCount":{"type":"integer","description":"Whether to use another backend server on each attempt"},"sendProxyV2":{"type":"boolean","description":"Enables PROXY protocol version 2","deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" proxyProtocol \" pulumi-lang-dotnet=\" ProxyProtocol \" pulumi-lang-go=\" proxyProtocol \" pulumi-lang-python=\" proxy_protocol \" pulumi-lang-yaml=\" proxyProtocol \" pulumi-lang-java=\" proxyProtocol \"\u003e proxy_protocol \u003c/span\u003einstead"},"serverIps":{"type":"array","items":{"type":"string"},"description":"Backend server IP addresses list (IPv4 or IPv6)"},"sslBridging":{"type":"boolean","description":"Enables SSL between load balancer and backend servers"},"stickySessions":{"type":"string","description":"The type of sticky sessions"},"stickySessionsCookieName":{"type":"string","description":"Cookie name for sticky sessions"},"timeoutConnect":{"type":"string","description":"Maximum initial server connection establishment time"},"timeoutQueue":{"type":"string","description":"Maximum time (in seconds) for a request to be left pending in queue when \u003cspan pulumi-lang-nodejs=\"`maxConnections`\" pulumi-lang-dotnet=\"`MaxConnections`\" pulumi-lang-go=\"`maxConnections`\" pulumi-lang-python=\"`max_connections`\" pulumi-lang-yaml=\"`maxConnections`\" pulumi-lang-java=\"`maxConnections`\"\u003e`max_connections`\u003c/span\u003e is reached"},"timeoutServer":{"type":"string","description":"Maximum server connection inactivity time"},"timeoutTunnel":{"type":"string","description":"Maximum tunnel inactivity time"}},"type":"object"},"aliases":[{"type":"scaleway:index/loadbalancerBackend:LoadbalancerBackend"}]},"scaleway:loadbalancers/certificate:Certificate":{"description":"\n\n## Import\n\nLoad Balancer certificates can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:loadbalancers/certificate:Certificate cert01 fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"commonName":{"type":"string","description":"Main domain of the certificate\n"},"customCertificate":{"$ref":"#/types/scaleway:loadbalancers/CertificateCustomCertificate:CertificateCustomCertificate","description":"The custom type certificate type configuration"},"fingerprint":{"type":"string","description":"The identifier (SHA-1) of the certificate\n"},"lbId":{"type":"string","description":"The load-balancer ID"},"letsencrypt":{"$ref":"#/types/scaleway:loadbalancers/CertificateLetsencrypt:CertificateLetsencrypt","description":"The Let's Encrypt type certificate configuration"},"name":{"type":"string","description":"The name of the load-balancer certificate"},"notValidAfter":{"type":"string","description":"The not valid after validity bound timestamp\n"},"notValidBefore":{"type":"string","description":"The not valid before validity bound timestamp\n"},"status":{"type":"string","description":"Certificate status\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The alternative domain names of the certificate\n"}},"required":["commonName","fingerprint","lbId","name","notValidAfter","notValidBefore","status","subjectAlternativeNames"],"inputProperties":{"customCertificate":{"$ref":"#/types/scaleway:loadbalancers/CertificateCustomCertificate:CertificateCustomCertificate","description":"The custom type certificate type configuration","willReplaceOnChanges":true},"lbId":{"type":"string","description":"The load-balancer ID","willReplaceOnChanges":true},"letsencrypt":{"$ref":"#/types/scaleway:loadbalancers/CertificateLetsencrypt:CertificateLetsencrypt","description":"The Let's Encrypt type certificate configuration","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the load-balancer certificate"}},"requiredInputs":["lbId"],"stateInputs":{"description":"Input properties used for looking up and filtering Certificate resources.\n","properties":{"commonName":{"type":"string","description":"Main domain of the certificate\n"},"customCertificate":{"$ref":"#/types/scaleway:loadbalancers/CertificateCustomCertificate:CertificateCustomCertificate","description":"The custom type certificate type configuration","willReplaceOnChanges":true},"fingerprint":{"type":"string","description":"The identifier (SHA-1) of the certificate\n"},"lbId":{"type":"string","description":"The load-balancer ID","willReplaceOnChanges":true},"letsencrypt":{"$ref":"#/types/scaleway:loadbalancers/CertificateLetsencrypt:CertificateLetsencrypt","description":"The Let's Encrypt type certificate configuration","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the load-balancer certificate"},"notValidAfter":{"type":"string","description":"The not valid after validity bound timestamp\n"},"notValidBefore":{"type":"string","description":"The not valid before validity bound timestamp\n"},"status":{"type":"string","description":"Certificate status\n"},"subjectAlternativeNames":{"type":"array","items":{"type":"string"},"description":"The alternative domain names of the certificate\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/loadbalancerCertificate:LoadbalancerCertificate"}]},"scaleway:loadbalancers/frontend:Frontend":{"description":"Creates and manages Scaleway Load Balancer frontends.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-frontends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-frontends).\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 frontend01 = new scaleway.loadbalancers.Frontend(\"frontend01\", {\n    lbId: lb01.id,\n    backendId: backend01.id,\n    name: \"frontend01\",\n    inboundPort: 80,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nfrontend01 = scaleway.loadbalancers.Frontend(\"frontend01\",\n    lb_id=lb01[\"id\"],\n    backend_id=backend01[\"id\"],\n    name=\"frontend01\",\n    inbound_port=80)\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 frontend01 = new Scaleway.Loadbalancers.Frontend(\"frontend01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = backend01.Id,\n        Name = \"frontend01\",\n        InboundPort = 80,\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewFrontend(ctx, \"frontend01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        pulumi.Any(lb01.Id),\n\t\t\tBackendId:   pulumi.Any(backend01.Id),\n\t\t\tName:        pulumi.String(\"frontend01\"),\n\t\t\tInboundPort: pulumi.Int(80),\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.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\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 frontend01 = new Frontend(\"frontend01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(backend01.id())\n            .name(\"frontend01\")\n            .inboundPort(80)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  frontend01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${backend01.id}\n      name: frontend01\n      inboundPort: '80'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## With ACLs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst frontend01 = new scaleway.loadbalancers.Frontend(\"frontend01\", {\n    lbId: lb01.id,\n    backendId: backend01.id,\n    name: \"frontend01\",\n    inboundPort: 80,\n    acls: [\n        {\n            name: \"blacklist wellknwon IPs\",\n            action: {\n                type: \"allow\",\n            },\n            match: {\n                ipSubnets: [\n                    \"192.168.0.1\",\n                    \"192.168.0.2\",\n                    \"192.168.10.0/24\",\n                ],\n            },\n        },\n        {\n            action: {\n                type: \"deny\",\n            },\n            match: {\n                ipSubnets: [\"51.51.51.51\"],\n                httpFilter: \"regex\",\n                httpFilterValues: [\"^foo*bar$\"],\n            },\n        },\n        {\n            action: {\n                type: \"allow\",\n            },\n            match: {\n                httpFilter: \"path_begin\",\n                httpFilterValues: [\n                    \"foo\",\n                    \"bar\",\n                ],\n            },\n        },\n        {\n            action: {\n                type: \"allow\",\n            },\n            match: {\n                httpFilter: \"path_begin\",\n                httpFilterValues: [\"hi\"],\n                invert: true,\n            },\n        },\n        {\n            action: {\n                type: \"allow\",\n            },\n            match: {\n                httpFilter: \"http_header_match\",\n                httpFilterValues: \"foo\",\n                httpFilterOption: \"bar\",\n            },\n        },\n        {\n            action: {\n                type: \"redirect\",\n                redirects: [{\n                    type: \"location\",\n                    target: \"https://example.com\",\n                    code: 307,\n                }],\n            },\n            match: {\n                ipSubnets: [\"10.0.0.10\"],\n                httpFilter: \"path_begin\",\n                httpFilterValues: [\n                    \"foo\",\n                    \"bar\",\n                ],\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nfrontend01 = scaleway.loadbalancers.Frontend(\"frontend01\",\n    lb_id=lb01[\"id\"],\n    backend_id=backend01[\"id\"],\n    name=\"frontend01\",\n    inbound_port=80,\n    acls=[\n        {\n            \"name\": \"blacklist wellknwon IPs\",\n            \"action\": {\n                \"type\": \"allow\",\n            },\n            \"match\": {\n                \"ip_subnets\": [\n                    \"192.168.0.1\",\n                    \"192.168.0.2\",\n                    \"192.168.10.0/24\",\n                ],\n            },\n        },\n        {\n            \"action\": {\n                \"type\": \"deny\",\n            },\n            \"match\": {\n                \"ip_subnets\": [\"51.51.51.51\"],\n                \"http_filter\": \"regex\",\n                \"http_filter_values\": [\"^foo*bar$\"],\n            },\n        },\n        {\n            \"action\": {\n                \"type\": \"allow\",\n            },\n            \"match\": {\n                \"http_filter\": \"path_begin\",\n                \"http_filter_values\": [\n                    \"foo\",\n                    \"bar\",\n                ],\n            },\n        },\n        {\n            \"action\": {\n                \"type\": \"allow\",\n            },\n            \"match\": {\n                \"http_filter\": \"path_begin\",\n                \"http_filter_values\": [\"hi\"],\n                \"invert\": True,\n            },\n        },\n        {\n            \"action\": {\n                \"type\": \"allow\",\n            },\n            \"match\": {\n                \"http_filter\": \"http_header_match\",\n                \"http_filter_values\": \"foo\",\n                \"http_filter_option\": \"bar\",\n            },\n        },\n        {\n            \"action\": {\n                \"type\": \"redirect\",\n                \"redirects\": [{\n                    \"type\": \"location\",\n                    \"target\": \"https://example.com\",\n                    \"code\": 307,\n                }],\n            },\n            \"match\": {\n                \"ip_subnets\": [\"10.0.0.10\"],\n                \"http_filter\": \"path_begin\",\n                \"http_filter_values\": [\n                    \"foo\",\n                    \"bar\",\n                ],\n            },\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 frontend01 = new Scaleway.Loadbalancers.Frontend(\"frontend01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = backend01.Id,\n        Name = \"frontend01\",\n        InboundPort = 80,\n        Acls = new[]\n        {\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Name = \"blacklist wellknwon IPs\",\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"allow\",\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    IpSubnets = new[]\n                    {\n                        \"192.168.0.1\",\n                        \"192.168.0.2\",\n                        \"192.168.10.0/24\",\n                    },\n                },\n            },\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"deny\",\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    IpSubnets = new[]\n                    {\n                        \"51.51.51.51\",\n                    },\n                    HttpFilter = \"regex\",\n                    HttpFilterValues = new[]\n                    {\n                        \"^foo*bar$\",\n                    },\n                },\n            },\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"allow\",\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    HttpFilter = \"path_begin\",\n                    HttpFilterValues = new[]\n                    {\n                        \"foo\",\n                        \"bar\",\n                    },\n                },\n            },\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"allow\",\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    HttpFilter = \"path_begin\",\n                    HttpFilterValues = new[]\n                    {\n                        \"hi\",\n                    },\n                    Invert = true,\n                },\n            },\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"allow\",\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    HttpFilter = \"http_header_match\",\n                    HttpFilterValues = \"foo\",\n                    HttpFilterOption = \"bar\",\n                },\n            },\n            new Scaleway.Loadbalancers.Inputs.FrontendAclArgs\n            {\n                Action = new Scaleway.Loadbalancers.Inputs.FrontendAclActionArgs\n                {\n                    Type = \"redirect\",\n                    Redirects = new[]\n                    {\n                        new Scaleway.Loadbalancers.Inputs.FrontendAclActionRedirectArgs\n                        {\n                            Type = \"location\",\n                            Target = \"https://example.com\",\n                            Code = 307,\n                        },\n                    },\n                },\n                Match = new Scaleway.Loadbalancers.Inputs.FrontendAclMatchArgs\n                {\n                    IpSubnets = new[]\n                    {\n                        \"10.0.0.10\",\n                    },\n                    HttpFilter = \"path_begin\",\n                    HttpFilterValues = new[]\n                    {\n                        \"foo\",\n                        \"bar\",\n                    },\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewFrontend(ctx, \"frontend01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        pulumi.Any(lb01.Id),\n\t\t\tBackendId:   pulumi.Any(backend01.Id),\n\t\t\tName:        pulumi.String(\"frontend01\"),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t\tAcls: loadbalancers.FrontendAclArray{\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tName: pulumi.String(\"blacklist wellknwon IPs\"),\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"allow\"),\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tIpSubnets: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"192.168.0.1\"),\n\t\t\t\t\t\t\tpulumi.String(\"192.168.0.2\"),\n\t\t\t\t\t\t\tpulumi.String(\"192.168.10.0/24\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"deny\"),\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tIpSubnets: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"51.51.51.51\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tHttpFilter: pulumi.String(\"regex\"),\n\t\t\t\t\t\tHttpFilterValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"^foo*bar$\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"allow\"),\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tHttpFilter: pulumi.String(\"path_begin\"),\n\t\t\t\t\t\tHttpFilterValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\t\t\t\tpulumi.String(\"bar\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"allow\"),\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tHttpFilter: pulumi.String(\"path_begin\"),\n\t\t\t\t\t\tHttpFilterValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hi\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tInvert: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"allow\"),\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tHttpFilter:       pulumi.String(\"http_header_match\"),\n\t\t\t\t\t\tHttpFilterValues: pulumi.StringArray(\"foo\"),\n\t\t\t\t\t\tHttpFilterOption: pulumi.String(\"bar\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026loadbalancers.FrontendAclArgs{\n\t\t\t\t\tAction: \u0026loadbalancers.FrontendAclActionArgs{\n\t\t\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t\t\t\tRedirects: loadbalancers.FrontendAclActionRedirectArray{\n\t\t\t\t\t\t\t\u0026loadbalancers.FrontendAclActionRedirectArgs{\n\t\t\t\t\t\t\t\tType:   pulumi.String(\"location\"),\n\t\t\t\t\t\t\t\tTarget: pulumi.String(\"https://example.com\"),\n\t\t\t\t\t\t\t\tCode:   pulumi.Int(307),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026loadbalancers.FrontendAclMatchArgs{\n\t\t\t\t\t\tIpSubnets: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"10.0.0.10\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tHttpFilter: pulumi.String(\"path_begin\"),\n\t\t\t\t\t\tHttpFilterValues: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\t\t\t\tpulumi.String(\"bar\"),\n\t\t\t\t\t\t},\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.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.FrontendAclArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.FrontendAclActionArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.FrontendAclMatchArgs;\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 frontend01 = new Frontend(\"frontend01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(backend01.id())\n            .name(\"frontend01\")\n            .inboundPort(80)\n            .acls(            \n                FrontendAclArgs.builder()\n                    .name(\"blacklist wellknwon IPs\")\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"allow\")\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .ipSubnets(                        \n                            \"192.168.0.1\",\n                            \"192.168.0.2\",\n                            \"192.168.10.0/24\")\n                        .build())\n                    .build(),\n                FrontendAclArgs.builder()\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"deny\")\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .ipSubnets(\"51.51.51.51\")\n                        .httpFilter(\"regex\")\n                        .httpFilterValues(\"^foo*bar$\")\n                        .build())\n                    .build(),\n                FrontendAclArgs.builder()\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"allow\")\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .httpFilter(\"path_begin\")\n                        .httpFilterValues(                        \n                            \"foo\",\n                            \"bar\")\n                        .build())\n                    .build(),\n                FrontendAclArgs.builder()\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"allow\")\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .httpFilter(\"path_begin\")\n                        .httpFilterValues(\"hi\")\n                        .invert(true)\n                        .build())\n                    .build(),\n                FrontendAclArgs.builder()\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"allow\")\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .httpFilter(\"http_header_match\")\n                        .httpFilterValues(\"foo\")\n                        .httpFilterOption(\"bar\")\n                        .build())\n                    .build(),\n                FrontendAclArgs.builder()\n                    .action(FrontendAclActionArgs.builder()\n                        .type(\"redirect\")\n                        .redirects(FrontendAclActionRedirectArgs.builder()\n                            .type(\"location\")\n                            .target(\"https://example.com\")\n                            .code(307)\n                            .build())\n                        .build())\n                    .match(FrontendAclMatchArgs.builder()\n                        .ipSubnets(\"10.0.0.10\")\n                        .httpFilter(\"path_begin\")\n                        .httpFilterValues(                        \n                            \"foo\",\n                            \"bar\")\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  frontend01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${backend01.id}\n      name: frontend01\n      inboundPort: '80'\n      acls:\n        - name: blacklist wellknwon IPs\n          action:\n            type: allow\n          match:\n            ipSubnets:\n              - 192.168.0.1\n              - 192.168.0.2\n              - 192.168.10.0/24\n        - action:\n            type: deny\n          match:\n            ipSubnets:\n              - 51.51.51.51\n            httpFilter: regex\n            httpFilterValues:\n              - ^foo*bar$\n        - action:\n            type: allow\n          match:\n            httpFilter: path_begin\n            httpFilterValues:\n              - foo\n              - bar\n        - action:\n            type: allow\n          match:\n            httpFilter: path_begin\n            httpFilterValues:\n              - hi\n            invert: 'true'\n        - action:\n            type: allow\n          match:\n            httpFilter: http_header_match\n            httpFilterValues: foo\n            httpFilterOption: bar\n        - action:\n            type: redirect\n            redirects:\n              - type: location\n                target: https://example.com\n                code: 307\n          match:\n            ipSubnets:\n              - 10.0.0.10\n            httpFilter: path_begin\n            httpFilterValues:\n              - foo\n              - bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer frontends can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:loadbalancers/frontend:Frontend frontend01 fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/FrontendAcl:FrontendAcl"},"description":"A list of ACL rules to apply to the Load Balancer frontend.  Defined below.\n"},"backendId":{"type":"string","description":"The ID of the Load Balancer backend this frontend is attached to.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`lbId`\" pulumi-lang-dotnet=\"`LbId`\" pulumi-lang-go=\"`lbId`\" pulumi-lang-python=\"`lb_id`\" pulumi-lang-yaml=\"`lbId`\" pulumi-lang-java=\"`lbId`\"\u003e`lb_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`backendId`\" pulumi-lang-dotnet=\"`BackendId`\" pulumi-lang-go=\"`backendId`\" pulumi-lang-python=\"`backend_id`\" pulumi-lang-yaml=\"`backendId`\" pulumi-lang-java=\"`backendId`\"\u003e`backend_id`\u003c/span\u003e will recreate the frontend.\n"},"certificateId":{"type":"string","description":"(Deprecated, use \u003cspan pulumi-lang-nodejs=\"`certificateIds`\" pulumi-lang-dotnet=\"`CertificateIds`\" pulumi-lang-go=\"`certificateIds`\" pulumi-lang-python=\"`certificate_ids`\" pulumi-lang-yaml=\"`certificateIds`\" pulumi-lang-java=\"`certificateIds`\"\u003e`certificate_ids`\u003c/span\u003e instead) First certificate ID used by the frontend.\n","deprecationMessage":"Please use certificate_ids"},"certificateIds":{"type":"array","items":{"type":"string"},"description":"List of certificate IDs that should be used by the frontend.\n\n\u003e **Important:** Certificates are not allowed on port 80.\n"},"connectionRateLimit":{"type":"integer","description":"The rate limit for new connections established on this frontend. Use 0 value to disable, else value is connections per second.\n"},"createdAt":{"type":"string","description":"The date and time the frontend was created.\n"},"enableAccessLogs":{"type":"boolean","description":"Defines whether to enable access logs on the frontend.\n"},"enableHttp3":{"type":"boolean","description":"Activates HTTP/3 protocol.\n"},"externalAcls":{"type":"boolean","description":"A boolean to specify whether to use lb_acl.\nIf \u003cspan pulumi-lang-nodejs=\"`externalAcls`\" pulumi-lang-dotnet=\"`ExternalAcls`\" pulumi-lang-go=\"`externalAcls`\" pulumi-lang-python=\"`external_acls`\" pulumi-lang-yaml=\"`externalAcls`\" pulumi-lang-java=\"`externalAcls`\"\u003e`external_acls`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e can not be set directly in the Load Balancer frontend.\n"},"inboundPort":{"type":"integer","description":"TCP port to listen to on the front side.\n"},"lbId":{"type":"string","description":"The ID of the Load Balancer this frontend is attached to.\n"},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"timeoutClient":{"type":"string","description":"Maximum inactivity time on the client side. (e.g. \u003cspan pulumi-lang-nodejs=\"`1s`\" pulumi-lang-dotnet=\"`1s`\" pulumi-lang-go=\"`1s`\" pulumi-lang-python=\"`1s`\" pulumi-lang-yaml=\"`1s`\" pulumi-lang-java=\"`1s`\"\u003e`1s`\u003c/span\u003e)\n"},"updatedAt":{"type":"string","description":"The date and time the frontend resource was updated.\n"}},"required":["backendId","certificateId","createdAt","inboundPort","lbId","name","updatedAt"],"inputProperties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/FrontendAcl:FrontendAcl"},"description":"A list of ACL rules to apply to the Load Balancer frontend.  Defined below.\n"},"backendId":{"type":"string","description":"The ID of the Load Balancer backend this frontend is attached to.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`lbId`\" pulumi-lang-dotnet=\"`LbId`\" pulumi-lang-go=\"`lbId`\" pulumi-lang-python=\"`lb_id`\" pulumi-lang-yaml=\"`lbId`\" pulumi-lang-java=\"`lbId`\"\u003e`lb_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`backendId`\" pulumi-lang-dotnet=\"`BackendId`\" pulumi-lang-go=\"`backendId`\" pulumi-lang-python=\"`backend_id`\" pulumi-lang-yaml=\"`backendId`\" pulumi-lang-java=\"`backendId`\"\u003e`backend_id`\u003c/span\u003e will recreate the frontend.\n","willReplaceOnChanges":true},"certificateIds":{"type":"array","items":{"type":"string"},"description":"List of certificate IDs that should be used by the frontend.\n\n\u003e **Important:** Certificates are not allowed on port 80.\n"},"connectionRateLimit":{"type":"integer","description":"The rate limit for new connections established on this frontend. Use 0 value to disable, else value is connections per second.\n"},"enableAccessLogs":{"type":"boolean","description":"Defines whether to enable access logs on the frontend.\n"},"enableHttp3":{"type":"boolean","description":"Activates HTTP/3 protocol.\n"},"externalAcls":{"type":"boolean","description":"A boolean to specify whether to use lb_acl.\nIf \u003cspan pulumi-lang-nodejs=\"`externalAcls`\" pulumi-lang-dotnet=\"`ExternalAcls`\" pulumi-lang-go=\"`externalAcls`\" pulumi-lang-python=\"`external_acls`\" pulumi-lang-yaml=\"`externalAcls`\" pulumi-lang-java=\"`externalAcls`\"\u003e`external_acls`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e can not be set directly in the Load Balancer frontend.\n"},"inboundPort":{"type":"integer","description":"TCP port to listen to on the front side.\n"},"lbId":{"type":"string","description":"The ID of the Load Balancer this frontend is attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"timeoutClient":{"type":"string","description":"Maximum inactivity time on the client side. (e.g. \u003cspan pulumi-lang-nodejs=\"`1s`\" pulumi-lang-dotnet=\"`1s`\" pulumi-lang-go=\"`1s`\" pulumi-lang-python=\"`1s`\" pulumi-lang-yaml=\"`1s`\" pulumi-lang-java=\"`1s`\"\u003e`1s`\u003c/span\u003e)\n"}},"requiredInputs":["backendId","inboundPort","lbId"],"stateInputs":{"description":"Input properties used for looking up and filtering Frontend resources.\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/FrontendAcl:FrontendAcl"},"description":"A list of ACL rules to apply to the Load Balancer frontend.  Defined below.\n"},"backendId":{"type":"string","description":"The ID of the Load Balancer backend this frontend is attached to.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`lbId`\" pulumi-lang-dotnet=\"`LbId`\" pulumi-lang-go=\"`lbId`\" pulumi-lang-python=\"`lb_id`\" pulumi-lang-yaml=\"`lbId`\" pulumi-lang-java=\"`lbId`\"\u003e`lb_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`backendId`\" pulumi-lang-dotnet=\"`BackendId`\" pulumi-lang-go=\"`backendId`\" pulumi-lang-python=\"`backend_id`\" pulumi-lang-yaml=\"`backendId`\" pulumi-lang-java=\"`backendId`\"\u003e`backend_id`\u003c/span\u003e will recreate the frontend.\n","willReplaceOnChanges":true},"certificateId":{"type":"string","description":"(Deprecated, use \u003cspan pulumi-lang-nodejs=\"`certificateIds`\" pulumi-lang-dotnet=\"`CertificateIds`\" pulumi-lang-go=\"`certificateIds`\" pulumi-lang-python=\"`certificate_ids`\" pulumi-lang-yaml=\"`certificateIds`\" pulumi-lang-java=\"`certificateIds`\"\u003e`certificate_ids`\u003c/span\u003e instead) First certificate ID used by the frontend.\n","deprecationMessage":"Please use certificate_ids"},"certificateIds":{"type":"array","items":{"type":"string"},"description":"List of certificate IDs that should be used by the frontend.\n\n\u003e **Important:** Certificates are not allowed on port 80.\n"},"connectionRateLimit":{"type":"integer","description":"The rate limit for new connections established on this frontend. Use 0 value to disable, else value is connections per second.\n"},"createdAt":{"type":"string","description":"The date and time the frontend was created.\n"},"enableAccessLogs":{"type":"boolean","description":"Defines whether to enable access logs on the frontend.\n"},"enableHttp3":{"type":"boolean","description":"Activates HTTP/3 protocol.\n"},"externalAcls":{"type":"boolean","description":"A boolean to specify whether to use lb_acl.\nIf \u003cspan pulumi-lang-nodejs=\"`externalAcls`\" pulumi-lang-dotnet=\"`ExternalAcls`\" pulumi-lang-go=\"`externalAcls`\" pulumi-lang-python=\"`external_acls`\" pulumi-lang-yaml=\"`externalAcls`\" pulumi-lang-java=\"`externalAcls`\"\u003e`external_acls`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e can not be set directly in the Load Balancer frontend.\n"},"inboundPort":{"type":"integer","description":"TCP port to listen to on the front side.\n"},"lbId":{"type":"string","description":"The ID of the Load Balancer this frontend is attached to.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The ACL name. If not provided it will be randomly generated.\n"},"timeoutClient":{"type":"string","description":"Maximum inactivity time on the client side. (e.g. \u003cspan pulumi-lang-nodejs=\"`1s`\" pulumi-lang-dotnet=\"`1s`\" pulumi-lang-go=\"`1s`\" pulumi-lang-python=\"`1s`\" pulumi-lang-yaml=\"`1s`\" pulumi-lang-java=\"`1s`\"\u003e`1s`\u003c/span\u003e)\n"},"updatedAt":{"type":"string","description":"The date and time the frontend resource was updated.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/loadbalancerFrontend:LoadbalancerFrontend"}]},"scaleway:loadbalancers/ip:Ip":{"description":"Creates and manages Scaleway Load Balancer IP addresses.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-flex-ips/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-ip-addresses-list-ip-addresses).\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ip = new scaleway.loadbalancers.Ip(\"ip\", {reverse: \"my-reverse.com\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nip = scaleway.loadbalancers.Ip(\"ip\", reverse=\"my-reverse.com\")\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 ip = new Scaleway.Loadbalancers.Ip(\"ip\", new()\n    {\n        Reverse = \"my-reverse.com\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewIp(ctx, \"ip\", \u0026loadbalancers.IpArgs{\n\t\t\tReverse: pulumi.String(\"my-reverse.com\"),\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.IpArgs;\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 ip = new Ip(\"ip\", IpArgs.builder()\n            .reverse(\"my-reverse.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip:\n    type: scaleway:loadbalancers:Ip\n    properties:\n      reverse: my-reverse.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPv6\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ipv6 = new scaleway.loadbalancers.Ip(\"ipv6\", {isIpv6: true});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nipv6 = scaleway.loadbalancers.Ip(\"ipv6\", is_ipv6=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 ipv6 = new Scaleway.Loadbalancers.Ip(\"ipv6\", new()\n    {\n        IsIpv6 = 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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewIp(ctx, \"ipv6\", \u0026loadbalancers.IpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.IpArgs;\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 ipv6 = new Ip(\"ipv6\", IpArgs.builder()\n            .isIpv6(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ipv6:\n    type: scaleway:loadbalancers:Ip\n    properties:\n      isIpv6: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIPs can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:loadbalancers/ip:Ip ip01 fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"ipAddress":{"type":"string","description":"The IP address\n"},"isIpv6":{"type":"boolean","description":"If true, creates a flexible IP with an IPv6 address.\n"},"lbId":{"type":"string","description":"The associated Load Balancer ID if any\n"},"organizationId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003eyou want to attach the resource to"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n"},"region":{"type":"string","description":"The region of the resource"},"reverse":{"type":"string","description":"The reverse domain associated with this IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n"}},"required":["ipAddress","lbId","organizationId","projectId","region","reverse"],"inputProperties":{"isIpv6":{"type":"boolean","description":"If true, creates a flexible IP with an IPv6 address.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse domain associated with this IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Ip resources.\n","properties":{"ipAddress":{"type":"string","description":"The IP address\n"},"isIpv6":{"type":"boolean","description":"If true, creates a flexible IP with an IPv6 address.\n","willReplaceOnChanges":true},"lbId":{"type":"string","description":"The associated Load Balancer ID if any\n"},"organizationId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" organizationId \" pulumi-lang-dotnet=\" OrganizationId \" pulumi-lang-go=\" organizationId \" pulumi-lang-python=\" organization_id \" pulumi-lang-yaml=\" organizationId \" pulumi-lang-java=\" organizationId \"\u003e organization_id \u003c/span\u003eyou want to attach the resource to"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region of the resource"},"reverse":{"type":"string","description":"The reverse domain associated with this IP.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with this IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/loadbalancerIp:LoadbalancerIp"}]},"scaleway:loadbalancers/loadBalancer:LoadBalancer":{"description":"Creates and manages Scaleway Load Balancers.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/concepts/#load-balancers) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-list-load-balancers).\n\n## Example Usage\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.loadbalancers.Ip(\"main\", {zone: \"fr-par-1\"});\nconst base = new scaleway.loadbalancers.LoadBalancer(\"base\", {\n    ipIds: [main.id],\n    zone: main.zone,\n    type: \"LB-S\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.loadbalancers.Ip(\"main\", zone=\"fr-par-1\")\nbase = scaleway.loadbalancers.LoadBalancer(\"base\",\n    ip_ids=[main.id],\n    zone=main.zone,\n    type=\"LB-S\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Loadbalancers.Ip(\"main\", new()\n    {\n        Zone = \"fr-par-1\",\n    });\n\n    var @base = new Scaleway.Loadbalancers.LoadBalancer(\"base\", new()\n    {\n        IpIds = new[]\n        {\n            main.Id,\n        },\n        Zone = main.Zone,\n        Type = \"LB-S\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := loadbalancers.NewIp(ctx, \"main\", \u0026loadbalancers.IpArgs{\n\t\t\tZone: pulumi.String(\"fr-par-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewLoadBalancer(ctx, \"base\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tmain.ID(),\n\t\t\t},\n\t\t\tZone: main.Zone,\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.IpArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var main = new Ip(\"main\", IpArgs.builder()\n            .zone(\"fr-par-1\")\n            .build());\n\n        var base = new LoadBalancer(\"base\", LoadBalancerArgs.builder()\n            .ipIds(main.id())\n            .zone(main.zone())\n            .type(\"LB-S\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:loadbalancers:Ip\n    properties:\n      zone: fr-par-1\n  base:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipIds:\n        - ${main.id}\n      zone: ${main.zone}\n      type: LB-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private LB\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst base = new scaleway.loadbalancers.LoadBalancer(\"base\", {\n    name: \"private-lb\",\n    type: \"LB-S\",\n    assignFlexibleIp: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nbase = scaleway.loadbalancers.LoadBalancer(\"base\",\n    name=\"private-lb\",\n    type=\"LB-S\",\n    assign_flexible_ip=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @base = new Scaleway.Loadbalancers.LoadBalancer(\"base\", new()\n    {\n        Name = \"private-lb\",\n        Type = \"LB-S\",\n        AssignFlexibleIp = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := loadbalancers.NewLoadBalancer(ctx, \"base\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tName:             pulumi.String(\"private-lb\"),\n\t\t\tType:             pulumi.String(\"LB-S\"),\n\t\t\tAssignFlexibleIp: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var base = new LoadBalancer(\"base\", LoadBalancerArgs.builder()\n            .name(\"private-lb\")\n            .type(\"LB-S\")\n            .assignFlexibleIp(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  base:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      name: private-lb\n      type: LB-S\n      assignFlexibleIp: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPv6\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst v4 = new scaleway.loadbalancers.Ip(\"v4\", {});\nconst v6 = new scaleway.loadbalancers.Ip(\"v6\", {isIpv6: true});\nconst main = new scaleway.loadbalancers.LoadBalancer(\"main\", {\n    ipIds: [\n        v4.id,\n        v6.id,\n    ],\n    name: \"ipv6-lb\",\n    type: \"LB-S\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nv4 = scaleway.loadbalancers.Ip(\"v4\")\nv6 = scaleway.loadbalancers.Ip(\"v6\", is_ipv6=True)\nmain = scaleway.loadbalancers.LoadBalancer(\"main\",\n    ip_ids=[\n        v4.id,\n        v6.id,\n    ],\n    name=\"ipv6-lb\",\n    type=\"LB-S\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var v4 = new Scaleway.Loadbalancers.Ip(\"v4\");\n\n    var v6 = new Scaleway.Loadbalancers.Ip(\"v6\", new()\n    {\n        IsIpv6 = true,\n    });\n\n    var main = new Scaleway.Loadbalancers.LoadBalancer(\"main\", new()\n    {\n        IpIds = new[]\n        {\n            v4.Id,\n            v6.Id,\n        },\n        Name = \"ipv6-lb\",\n        Type = \"LB-S\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tv4, err := loadbalancers.NewIp(ctx, \"v4\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tv6, err := loadbalancers.NewIp(ctx, \"v6\", \u0026loadbalancers.IpArgs{\n\t\t\tIsIpv6: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewLoadBalancer(ctx, \"main\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tv4.ID(),\n\t\t\t\tv6.ID(),\n\t\t\t},\n\t\t\tName: pulumi.String(\"ipv6-lb\"),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.IpArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var v4 = new Ip(\"v4\");\n\n        var v6 = new Ip(\"v6\", IpArgs.builder()\n            .isIpv6(true)\n            .build());\n\n        var main = new LoadBalancer(\"main\", LoadBalancerArgs.builder()\n            .ipIds(            \n                v4.id(),\n                v6.id())\n            .name(\"ipv6-lb\")\n            .type(\"LB-S\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  v4:\n    type: scaleway:loadbalancers:Ip\n  v6:\n    type: scaleway:loadbalancers:Ip\n    properties:\n      isIpv6: true\n  main:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipIds:\n        - ${v4.id}\n        - ${v6.id}\n      name: ipv6-lb\n      type: LB-S\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPAM IDs\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv4Subnet: {\n        subnet: \"172.16.32.0/22\",\n    },\n});\nconst ip01 = new scaleway.ipam.Ip(\"ip01\", {\n    address: \"172.16.32.7\",\n    sources: [{\n        privateNetworkId: pn01.id,\n    }],\n});\nconst v4 = new scaleway.loadbalancers.Ip(\"v4\", {});\nconst lb01 = new scaleway.loadbalancers.LoadBalancer(\"lb01\", {\n    ipIds: [v4.id],\n    name: \"my-lb\",\n    type: \"LB-S\",\n    privateNetworks: [{\n        privateNetworkId: pn01.id,\n        ipamIds: ip01.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv4_subnet={\n        \"subnet\": \"172.16.32.0/22\",\n    })\nip01 = scaleway.ipam.Ip(\"ip01\",\n    address=\"172.16.32.7\",\n    sources=[{\n        \"private_network_id\": pn01.id,\n    }])\nv4 = scaleway.loadbalancers.Ip(\"v4\")\nlb01 = scaleway.loadbalancers.LoadBalancer(\"lb01\",\n    ip_ids=[v4.id],\n    name=\"my-lb\",\n    type=\"LB-S\",\n    private_networks=[{\n        \"private_network_id\": pn01.id,\n        \"ipam_ids\": ip01.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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.32.0/22\",\n        },\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Address = \"172.16.32.7\",\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\n            {\n                PrivateNetworkId = pn01.Id,\n            },\n        },\n    });\n\n    var v4 = new Scaleway.Loadbalancers.Ip(\"v4\");\n\n    var lb01 = new Scaleway.Loadbalancers.LoadBalancer(\"lb01\", new()\n    {\n        IpIds = new[]\n        {\n            v4.Id,\n        },\n        Name = \"my-lb\",\n        Type = \"LB-S\",\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Loadbalancers.Inputs.LoadBalancerPrivateNetworkArgs\n            {\n                PrivateNetworkId = pn01.Id,\n                IpamIds = ip01.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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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\tip01, err := ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.32.7\"),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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\tv4, err := loadbalancers.NewIp(ctx, \"v4\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewLoadBalancer(ctx, \"lb01\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tv4.ID(),\n\t\t\t},\n\t\t\tName: pulumi.String(\"my-lb\"),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t\tPrivateNetworks: loadbalancers.LoadBalancerPrivateNetworkArray{\n\t\t\t\t\u0026loadbalancers.LoadBalancerPrivateNetworkArgs{\n\t\t\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\t\t\tIpamIds:          ip01.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.LoadBalancerPrivateNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vpc01 = new Vpc(\"vpc01\", VpcArgs.builder()\n            .name(\"my vpc\")\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.32.0/22\")\n                .build())\n            .build());\n\n        var ip01 = new com.pulumi.scaleway.ipam.Ip(\"ip01\", com.pulumi.scaleway.ipam.IpArgs.builder()\n            .address(\"172.16.32.7\")\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n        var v4 = new com.pulumi.scaleway.loadbalancers.Ip(\"v4\");\n\n        var lb01 = new LoadBalancer(\"lb01\", LoadBalancerArgs.builder()\n            .ipIds(v4.id())\n            .name(\"my-lb\")\n            .type(\"LB-S\")\n            .privateNetworks(LoadBalancerPrivateNetworkArgs.builder()\n                .privateNetworkId(pn01.id())\n                .ipamIds(ip01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv4Subnet:\n        subnet: 172.16.32.0/22\n  ip01:\n    type: scaleway:ipam:Ip\n    properties:\n      address: 172.16.32.7\n      sources:\n        - privateNetworkId: ${pn01.id}\n  v4:\n    type: scaleway:loadbalancers:Ip\n  lb01:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipIds:\n        - ${v4.id}\n      name: my-lb\n      type: LB-S\n      privateNetworks:\n        - privateNetworkId: ${pn01.id}\n          ipamIds: ${ip01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Migration\n\nIn order to migrate to other Load Balancer types, you can check upwards or downwards migration via our CLI `scw lb lb-types list`.\nThis change will not recreate your Load Balancer.\n\nPlease check our [documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-migrate-a-load-balancer) for further details.\n\n## Import\n\nLoad Balancers can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:loadbalancers/loadBalancer:LoadBalancer main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\nBe aware that you will also need to import the `scaleway_lb_ip` resource.\n\n","properties":{"assignFlexibleIp":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.\n"},"assignFlexibleIpv6":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.\n"},"description":{"type":"string","description":"The description of the Load Balancer.\n"},"externalPrivateNetworks":{"type":"boolean","description":"A boolean to specify whether to use lb_private_network.\nIf \u003cspan pulumi-lang-nodejs=\"`externalPrivateNetworks`\" pulumi-lang-dotnet=\"`ExternalPrivateNetworks`\" pulumi-lang-go=\"`externalPrivateNetworks`\" pulumi-lang-python=\"`external_private_networks`\" pulumi-lang-yaml=\"`externalPrivateNetworks`\" pulumi-lang-java=\"`externalPrivateNetworks`\"\u003e`external_private_networks`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e can not be set directly in the Load Balancer.\n"},"ipAddress":{"type":"string","description":"The Load Balancer public IPv4 address.\n"},"ipId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e. The ID of the associated Load Balancer IP. See below.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e will recreate the Load Balancer.\n","deprecationMessage":"Please use ip_ids"},"ipIds":{"type":"array","items":{"type":"string"},"description":"The List of IP IDs to attach to the Load Balancer.\n\n\u003e **Important:** Make sure to use a \u003cspan pulumi-lang-nodejs=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-dotnet=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-go=\"`loadbalancers.Ip`\" pulumi-lang-python=\"`loadbalancers.Ip`\" pulumi-lang-yaml=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-java=\"`scaleway.loadbalancers.Ip`\"\u003e`scaleway.loadbalancers.Ip`\u003c/span\u003e resource to create the IPs.\n"},"ipv6Address":{"type":"string","description":"The Load Balancer public IPv6 address.\n"},"name":{"type":"string","description":"The name of the Load Balancer.\n"},"organizationId":{"type":"string","description":"The ID of the Organization ID the Load Balancer is associated with.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/LoadBalancerPrivateIp:LoadBalancerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/LoadBalancerPrivateNetwork:LoadBalancerPrivateNetwork"},"description":"List of private network to connect with your load balancer.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Load Balancer is associated with.\n"},"region":{"type":"string","description":"The region of the resource"},"releaseIp":{"type":"boolean","description":"The \u003cspan pulumi-lang-nodejs=\"`releaseIp`\" pulumi-lang-dotnet=\"`ReleaseIp`\" pulumi-lang-go=\"`releaseIp`\" pulumi-lang-python=\"`release_ip`\" pulumi-lang-yaml=\"`releaseIp`\" pulumi-lang-java=\"`releaseIp`\"\u003e`release_ip`\u003c/span\u003e allow the release of the IP address associated with the Load Balancer.\n","deprecationMessage":"The resource ip will be destroyed by it's own resource. Please set this to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e"},"sslCompatibilityLevel":{"type":"string","description":"Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Load Balancer.\n"},"type":{"type":"string","description":"The type of the Load Balancer. Please check the migration section to upgrade the type.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Load Balancer.\n"}},"required":["ipAddress","ipId","ipIds","ipv6Address","name","organizationId","privateIps","privateNetworks","projectId","region","type"],"inputProperties":{"assignFlexibleIp":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.\n","willReplaceOnChanges":true},"assignFlexibleIpv6":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.\n"},"description":{"type":"string","description":"The description of the Load Balancer.\n"},"externalPrivateNetworks":{"type":"boolean","description":"A boolean to specify whether to use lb_private_network.\nIf \u003cspan pulumi-lang-nodejs=\"`externalPrivateNetworks`\" pulumi-lang-dotnet=\"`ExternalPrivateNetworks`\" pulumi-lang-go=\"`externalPrivateNetworks`\" pulumi-lang-python=\"`external_private_networks`\" pulumi-lang-yaml=\"`externalPrivateNetworks`\" pulumi-lang-java=\"`externalPrivateNetworks`\"\u003e`external_private_networks`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e can not be set directly in the Load Balancer.\n"},"ipId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e. The ID of the associated Load Balancer IP. See below.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e will recreate the Load Balancer.\n","deprecationMessage":"Please use ip_ids"},"ipIds":{"type":"array","items":{"type":"string"},"description":"The List of IP IDs to attach to the Load Balancer.\n\n\u003e **Important:** Make sure to use a \u003cspan pulumi-lang-nodejs=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-dotnet=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-go=\"`loadbalancers.Ip`\" pulumi-lang-python=\"`loadbalancers.Ip`\" pulumi-lang-yaml=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-java=\"`scaleway.loadbalancers.Ip`\"\u003e`scaleway.loadbalancers.Ip`\u003c/span\u003e resource to create the IPs.\n"},"name":{"type":"string","description":"The name of the Load Balancer.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/LoadBalancerPrivateNetwork:LoadBalancerPrivateNetwork"},"description":"List of private network to connect with your load balancer.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Load Balancer is associated with.\n","willReplaceOnChanges":true},"releaseIp":{"type":"boolean","description":"The \u003cspan pulumi-lang-nodejs=\"`releaseIp`\" pulumi-lang-dotnet=\"`ReleaseIp`\" pulumi-lang-go=\"`releaseIp`\" pulumi-lang-python=\"`release_ip`\" pulumi-lang-yaml=\"`releaseIp`\" pulumi-lang-java=\"`releaseIp`\"\u003e`release_ip`\u003c/span\u003e allow the release of the IP address associated with the Load Balancer.\n","deprecationMessage":"The resource ip will be destroyed by it's own resource. Please set this to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e"},"sslCompatibilityLevel":{"type":"string","description":"Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Load Balancer.\n"},"type":{"type":"string","description":"The type of the Load Balancer. Please check the migration section to upgrade the type.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Load Balancer.\n","willReplaceOnChanges":true}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering LoadBalancer resources.\n","properties":{"assignFlexibleIp":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv4 to the Load Balancer.\n","willReplaceOnChanges":true},"assignFlexibleIpv6":{"type":"boolean","description":"Defines whether to automatically assign a flexible public IPv6 to the Load Balancer.\n"},"description":{"type":"string","description":"The description of the Load Balancer.\n"},"externalPrivateNetworks":{"type":"boolean","description":"A boolean to specify whether to use lb_private_network.\nIf \u003cspan pulumi-lang-nodejs=\"`externalPrivateNetworks`\" pulumi-lang-dotnet=\"`ExternalPrivateNetworks`\" pulumi-lang-go=\"`externalPrivateNetworks`\" pulumi-lang-python=\"`external_private_networks`\" pulumi-lang-yaml=\"`externalPrivateNetworks`\" pulumi-lang-java=\"`externalPrivateNetworks`\"\u003e`external_private_networks`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e can not be set directly in the Load Balancer.\n"},"ipAddress":{"type":"string","description":"The Load Balancer public IPv4 address.\n"},"ipId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipIds`\" pulumi-lang-dotnet=\"`IpIds`\" pulumi-lang-go=\"`ipIds`\" pulumi-lang-python=\"`ip_ids`\" pulumi-lang-yaml=\"`ipIds`\" pulumi-lang-java=\"`ipIds`\"\u003e`ip_ids`\u003c/span\u003e. The ID of the associated Load Balancer IP. See below.\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e will recreate the Load Balancer.\n","deprecationMessage":"Please use ip_ids"},"ipIds":{"type":"array","items":{"type":"string"},"description":"The List of IP IDs to attach to the Load Balancer.\n\n\u003e **Important:** Make sure to use a \u003cspan pulumi-lang-nodejs=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-dotnet=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-go=\"`loadbalancers.Ip`\" pulumi-lang-python=\"`loadbalancers.Ip`\" pulumi-lang-yaml=\"`scaleway.loadbalancers.Ip`\" pulumi-lang-java=\"`scaleway.loadbalancers.Ip`\"\u003e`scaleway.loadbalancers.Ip`\u003c/span\u003e resource to create the IPs.\n"},"ipv6Address":{"type":"string","description":"The Load Balancer public IPv6 address.\n"},"name":{"type":"string","description":"The name of the Load Balancer.\n"},"organizationId":{"type":"string","description":"The ID of the Organization ID the Load Balancer is associated with.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/LoadBalancerPrivateIp:LoadBalancerPrivateIp"},"description":"The list of private IPv4 and IPv6 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:loadbalancers/LoadBalancerPrivateNetwork:LoadBalancerPrivateNetwork"},"description":"List of private network to connect with your load balancer.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Load Balancer is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region of the resource"},"releaseIp":{"type":"boolean","description":"The \u003cspan pulumi-lang-nodejs=\"`releaseIp`\" pulumi-lang-dotnet=\"`ReleaseIp`\" pulumi-lang-go=\"`releaseIp`\" pulumi-lang-python=\"`release_ip`\" pulumi-lang-yaml=\"`releaseIp`\" pulumi-lang-java=\"`releaseIp`\"\u003e`release_ip`\u003c/span\u003e allow the release of the IP address associated with the Load Balancer.\n","deprecationMessage":"The resource ip will be destroyed by it's own resource. Please set this to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e"},"sslCompatibilityLevel":{"type":"string","description":"Enforces minimal SSL version (in SSL/TLS offloading context). Please check [possible values](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-create-a-load-balancer).\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Load Balancer.\n"},"type":{"type":"string","description":"The type of the Load Balancer. Please check the migration section to upgrade the type.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the Load Balancer.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/loadbalancer:Loadbalancer"}]},"scaleway:loadbalancers/privateNetwork:PrivateNetwork":{"description":"Creates and manages Scaleway Load Balancer Private Network attachments.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/use-with-private-network/).\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv4Subnet: {\n        subnet: \"172.16.32.0/22\",\n    },\n});\nconst ip01 = new scaleway.ipam.Ip(\"ip01\", {\n    address: \"172.16.32.7\",\n    sources: [{\n        privateNetworkId: pn01.id,\n    }],\n});\nconst lb01 = new scaleway.loadbalancers.LoadBalancer(\"lb01\", {\n    name: \"test-lb-private-network\",\n    type: \"LB-S\",\n});\nconst lbpn01 = new scaleway.loadbalancers.PrivateNetwork(\"lbpn01\", {\n    lbId: lb01.id,\n    privateNetworkId: pn01.id,\n    ipamIpIds: ip01.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv4_subnet={\n        \"subnet\": \"172.16.32.0/22\",\n    })\nip01 = scaleway.ipam.Ip(\"ip01\",\n    address=\"172.16.32.7\",\n    sources=[{\n        \"private_network_id\": pn01.id,\n    }])\nlb01 = scaleway.loadbalancers.LoadBalancer(\"lb01\",\n    name=\"test-lb-private-network\",\n    type=\"LB-S\")\nlbpn01 = scaleway.loadbalancers.PrivateNetwork(\"lbpn01\",\n    lb_id=lb01.id,\n    private_network_id=pn01.id,\n    ipam_ip_ids=ip01.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 vpc01 = new Scaleway.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.32.0/22\",\n        },\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Address = \"172.16.32.7\",\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\n            {\n                PrivateNetworkId = pn01.Id,\n            },\n        },\n    });\n\n    var lb01 = new Scaleway.Loadbalancers.LoadBalancer(\"lb01\", new()\n    {\n        Name = \"test-lb-private-network\",\n        Type = \"LB-S\",\n    });\n\n    var lbpn01 = new Scaleway.Loadbalancers.PrivateNetwork(\"lbpn01\", new()\n    {\n        LbId = lb01.Id,\n        PrivateNetworkId = pn01.Id,\n        IpamIpIds = ip01.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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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\tip01, err := ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.32.7\"),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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\tlb01, err := loadbalancers.NewLoadBalancer(ctx, \"lb01\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tName: pulumi.String(\"test-lb-private-network\"),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewPrivateNetwork(ctx, \"lbpn01\", \u0026loadbalancers.PrivateNetworkArgs{\n\t\t\tLbId:             lb01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tIpamIpIds:        ip01.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var vpc01 = new Vpc(\"vpc01\", VpcArgs.builder()\n            .name(\"my vpc\")\n            .build());\n\n        var pn01 = new com.pulumi.scaleway.network.PrivateNetwork(\"pn01\", com.pulumi.scaleway.network.PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.32.0/22\")\n                .build())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .address(\"172.16.32.7\")\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n        var lb01 = new LoadBalancer(\"lb01\", LoadBalancerArgs.builder()\n            .name(\"test-lb-private-network\")\n            .type(\"LB-S\")\n            .build());\n\n        var lbpn01 = new com.pulumi.scaleway.loadbalancers.PrivateNetwork(\"lbpn01\", com.pulumi.scaleway.loadbalancers.PrivateNetworkArgs.builder()\n            .lbId(lb01.id())\n            .privateNetworkId(pn01.id())\n            .ipamIpIds(ip01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv4Subnet:\n        subnet: 172.16.32.0/22\n  ip01:\n    type: scaleway:ipam:Ip\n    properties:\n      address: 172.16.32.7\n      sources:\n        - privateNetworkId: ${pn01.id}\n  lb01:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      name: test-lb-private-network\n      type: LB-S\n  lbpn01:\n    type: scaleway:loadbalancers:PrivateNetwork\n    properties:\n      lbId: ${lb01.id}\n      privateNetworkId: ${pn01.id}\n      ipamIpIds: ${ip01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPrivate Network attachments can be imported using `{zone}/{lb-id}/{private-network-id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:loadbalancers/privateNetwork:PrivateNetwork lbpn01 fr-par-1/11111111-1111-1111-1111-111111111111/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the Private Network attachment (RFC 3339 format).\n"},"ipamIpIds":{"type":"string","description":"The IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.\n"},"lbId":{"type":"string","description":"The load-balancer ID to attach the private network to.\n"},"privateNetworkId":{"type":"string","description":"The private network ID to attach.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Private Network attachment is associated with.\n"},"status":{"type":"string","description":"The status of the Private Network attachment.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Private Network attachment (RFC 3339 format).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Private Network should be attached.\n"}},"required":["createdAt","ipamIpIds","lbId","privateNetworkId","projectId","status","updatedAt"],"inputProperties":{"ipamIpIds":{"type":"string","description":"The IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.\n","willReplaceOnChanges":true},"lbId":{"type":"string","description":"The load-balancer ID to attach the private network to.\n","willReplaceOnChanges":true},"privateNetworkId":{"type":"string","description":"The private network ID to attach.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Private Network attachment is associated with.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Private Network should be attached.\n","willReplaceOnChanges":true}},"requiredInputs":["lbId","privateNetworkId"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateNetwork resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the Private Network attachment (RFC 3339 format).\n"},"ipamIpIds":{"type":"string","description":"The IPAM ID of a pre-reserved IP address to assign to the Load Balancer on this Private Network.\n","willReplaceOnChanges":true},"lbId":{"type":"string","description":"The load-balancer ID to attach the private network to.\n","willReplaceOnChanges":true},"privateNetworkId":{"type":"string","description":"The private network ID to attach.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Private Network attachment is associated with.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the Private Network attachment.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Private Network attachment (RFC 3339 format).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Private Network should be attached.\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:loadbalancers/route:Route":{"description":"Creates and manages Scaleway Load Balancer routes.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-routes/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-route).\n\n## Example Usage\n\n### With SNI for direction to TCP backends\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ip01 = new scaleway.loadbalancers.Ip(\"ip01\", {});\nconst lb01 = new scaleway.loadbalancers.LoadBalancer(\"lb01\", {\n    ipId: ip01.id,\n    name: \"test-lb\",\n    type: \"lb-s\",\n});\nconst bkd01 = new scaleway.loadbalancers.Backend(\"bkd01\", {\n    lbId: lb01.id,\n    forwardProtocol: \"tcp\",\n    forwardPort: 80,\n    proxyProtocol: \"none\",\n});\nconst frt01 = new scaleway.loadbalancers.Frontend(\"frt01\", {\n    lbId: lb01.id,\n    backendId: bkd01.id,\n    inboundPort: 80,\n});\nconst rt01 = new scaleway.loadbalancers.Route(\"rt01\", {\n    frontendId: frt01.id,\n    backendId: bkd01.id,\n    matchSni: \"sni.scaleway.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nip01 = scaleway.loadbalancers.Ip(\"ip01\")\nlb01 = scaleway.loadbalancers.LoadBalancer(\"lb01\",\n    ip_id=ip01.id,\n    name=\"test-lb\",\n    type=\"lb-s\")\nbkd01 = scaleway.loadbalancers.Backend(\"bkd01\",\n    lb_id=lb01.id,\n    forward_protocol=\"tcp\",\n    forward_port=80,\n    proxy_protocol=\"none\")\nfrt01 = scaleway.loadbalancers.Frontend(\"frt01\",\n    lb_id=lb01.id,\n    backend_id=bkd01.id,\n    inbound_port=80)\nrt01 = scaleway.loadbalancers.Route(\"rt01\",\n    frontend_id=frt01.id,\n    backend_id=bkd01.id,\n    match_sni=\"sni.scaleway.com\")\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 ip01 = new Scaleway.Loadbalancers.Ip(\"ip01\");\n\n    var lb01 = new Scaleway.Loadbalancers.LoadBalancer(\"lb01\", new()\n    {\n        IpId = ip01.Id,\n        Name = \"test-lb\",\n        Type = \"lb-s\",\n    });\n\n    var bkd01 = new Scaleway.Loadbalancers.Backend(\"bkd01\", new()\n    {\n        LbId = lb01.Id,\n        ForwardProtocol = \"tcp\",\n        ForwardPort = 80,\n        ProxyProtocol = \"none\",\n    });\n\n    var frt01 = new Scaleway.Loadbalancers.Frontend(\"frt01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = bkd01.Id,\n        InboundPort = 80,\n    });\n\n    var rt01 = new Scaleway.Loadbalancers.Route(\"rt01\", new()\n    {\n        FrontendId = frt01.Id,\n        BackendId = bkd01.Id,\n        MatchSni = \"sni.scaleway.com\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip01, err := loadbalancers.NewIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb01, err := loadbalancers.NewLoadBalancer(ctx, \"lb01\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: ip01.ID(),\n\t\t\tName: pulumi.String(\"test-lb\"),\n\t\t\tType: pulumi.String(\"lb-s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbkd01, err := loadbalancers.NewBackend(ctx, \"bkd01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb01.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"tcp\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrt01, err := loadbalancers.NewFrontend(ctx, \"frt01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        lb01.ID(),\n\t\t\tBackendId:   bkd01.ID(),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewRoute(ctx, \"rt01\", \u0026loadbalancers.RouteArgs{\n\t\t\tFrontendId: frt01.ID(),\n\t\t\tBackendId:  bkd01.ID(),\n\t\t\tMatchSni:   pulumi.String(\"sni.scaleway.com\"),\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.Route;\nimport com.pulumi.scaleway.loadbalancers.RouteArgs;\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 ip01 = new Ip(\"ip01\");\n\n        var lb01 = new LoadBalancer(\"lb01\", LoadBalancerArgs.builder()\n            .ipId(ip01.id())\n            .name(\"test-lb\")\n            .type(\"lb-s\")\n            .build());\n\n        var bkd01 = new Backend(\"bkd01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .forwardProtocol(\"tcp\")\n            .forwardPort(80)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var frt01 = new Frontend(\"frt01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(bkd01.id())\n            .inboundPort(80)\n            .build());\n\n        var rt01 = new Route(\"rt01\", RouteArgs.builder()\n            .frontendId(frt01.id())\n            .backendId(bkd01.id())\n            .matchSni(\"sni.scaleway.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip01:\n    type: scaleway:loadbalancers:Ip\n  lb01:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipId: ${ip01.id}\n      name: test-lb\n      type: lb-s\n  bkd01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      forwardProtocol: tcp\n      forwardPort: 80\n      proxyProtocol: none\n  frt01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${bkd01.id}\n      inboundPort: 80\n  rt01:\n    type: scaleway:loadbalancers:Route\n    properties:\n      frontendId: ${frt01.id}\n      backendId: ${bkd01.id}\n      matchSni: sni.scaleway.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With host-header for direction to HTTP backends\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ip01 = new scaleway.loadbalancers.Ip(\"ip01\", {});\nconst lb01 = new scaleway.loadbalancers.LoadBalancer(\"lb01\", {\n    ipId: ip01.id,\n    name: \"test-lb\",\n    type: \"lb-s\",\n});\nconst bkd01 = new scaleway.loadbalancers.Backend(\"bkd01\", {\n    lbId: lb01.id,\n    forwardProtocol: \"http\",\n    forwardPort: 80,\n    proxyProtocol: \"none\",\n});\nconst frt01 = new scaleway.loadbalancers.Frontend(\"frt01\", {\n    lbId: lb01.id,\n    backendId: bkd01.id,\n    inboundPort: 80,\n});\nconst rt01 = new scaleway.loadbalancers.Route(\"rt01\", {\n    frontendId: frt01.id,\n    backendId: bkd01.id,\n    matchHostHeader: \"host.scaleway.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nip01 = scaleway.loadbalancers.Ip(\"ip01\")\nlb01 = scaleway.loadbalancers.LoadBalancer(\"lb01\",\n    ip_id=ip01.id,\n    name=\"test-lb\",\n    type=\"lb-s\")\nbkd01 = scaleway.loadbalancers.Backend(\"bkd01\",\n    lb_id=lb01.id,\n    forward_protocol=\"http\",\n    forward_port=80,\n    proxy_protocol=\"none\")\nfrt01 = scaleway.loadbalancers.Frontend(\"frt01\",\n    lb_id=lb01.id,\n    backend_id=bkd01.id,\n    inbound_port=80)\nrt01 = scaleway.loadbalancers.Route(\"rt01\",\n    frontend_id=frt01.id,\n    backend_id=bkd01.id,\n    match_host_header=\"host.scaleway.com\")\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 ip01 = new Scaleway.Loadbalancers.Ip(\"ip01\");\n\n    var lb01 = new Scaleway.Loadbalancers.LoadBalancer(\"lb01\", new()\n    {\n        IpId = ip01.Id,\n        Name = \"test-lb\",\n        Type = \"lb-s\",\n    });\n\n    var bkd01 = new Scaleway.Loadbalancers.Backend(\"bkd01\", new()\n    {\n        LbId = lb01.Id,\n        ForwardProtocol = \"http\",\n        ForwardPort = 80,\n        ProxyProtocol = \"none\",\n    });\n\n    var frt01 = new Scaleway.Loadbalancers.Frontend(\"frt01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = bkd01.Id,\n        InboundPort = 80,\n    });\n\n    var rt01 = new Scaleway.Loadbalancers.Route(\"rt01\", new()\n    {\n        FrontendId = frt01.Id,\n        BackendId = bkd01.Id,\n        MatchHostHeader = \"host.scaleway.com\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip01, err := loadbalancers.NewIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb01, err := loadbalancers.NewLoadBalancer(ctx, \"lb01\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: ip01.ID(),\n\t\t\tName: pulumi.String(\"test-lb\"),\n\t\t\tType: pulumi.String(\"lb-s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbkd01, err := loadbalancers.NewBackend(ctx, \"bkd01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb01.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrt01, err := loadbalancers.NewFrontend(ctx, \"frt01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        lb01.ID(),\n\t\t\tBackendId:   bkd01.ID(),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewRoute(ctx, \"rt01\", \u0026loadbalancers.RouteArgs{\n\t\t\tFrontendId:      frt01.ID(),\n\t\t\tBackendId:       bkd01.ID(),\n\t\t\tMatchHostHeader: pulumi.String(\"host.scaleway.com\"),\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.Route;\nimport com.pulumi.scaleway.loadbalancers.RouteArgs;\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 ip01 = new Ip(\"ip01\");\n\n        var lb01 = new LoadBalancer(\"lb01\", LoadBalancerArgs.builder()\n            .ipId(ip01.id())\n            .name(\"test-lb\")\n            .type(\"lb-s\")\n            .build());\n\n        var bkd01 = new Backend(\"bkd01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .forwardProtocol(\"http\")\n            .forwardPort(80)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var frt01 = new Frontend(\"frt01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(bkd01.id())\n            .inboundPort(80)\n            .build());\n\n        var rt01 = new Route(\"rt01\", RouteArgs.builder()\n            .frontendId(frt01.id())\n            .backendId(bkd01.id())\n            .matchHostHeader(\"host.scaleway.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip01:\n    type: scaleway:loadbalancers:Ip\n  lb01:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipId: ${ip01.id}\n      name: test-lb\n      type: lb-s\n  bkd01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      forwardProtocol: http\n      forwardPort: 80\n      proxyProtocol: none\n  frt01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${bkd01.id}\n      inboundPort: 80\n  rt01:\n    type: scaleway:loadbalancers:Route\n    properties:\n      frontendId: ${frt01.id}\n      backendId: ${bkd01.id}\n      matchHostHeader: host.scaleway.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With path-begin matching for HTTP backends\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst ip = new scaleway.loadbalancers.Ip(\"ip\", {});\nconst lb = new scaleway.loadbalancers.LoadBalancer(\"lb\", {\n    ipId: ip.id,\n    name: \"my-lb\",\n    type: \"lb-s\",\n});\nconst app = new scaleway.loadbalancers.Backend(\"app\", {\n    lbId: lb.id,\n    forwardProtocol: \"http\",\n    forwardPort: 80,\n    proxyProtocol: \"none\",\n});\nconst admin = new scaleway.loadbalancers.Backend(\"admin\", {\n    lbId: lb.id,\n    forwardProtocol: \"http\",\n    forwardPort: 8080,\n    proxyProtocol: \"none\",\n});\nconst frontend = new scaleway.loadbalancers.Frontend(\"frontend\", {\n    lbId: lb.id,\n    backendId: app.id,\n    inboundPort: 80,\n});\nconst adminRoute = new scaleway.loadbalancers.Route(\"admin_route\", {\n    frontendId: frontend.id,\n    backendId: admin.id,\n    matchPathBegin: \"/admin\",\n});\nconst defaultRoute = new scaleway.loadbalancers.Route(\"default_route\", {\n    frontendId: frontend.id,\n    backendId: app.id,\n    matchPathBegin: \"/\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nip = scaleway.loadbalancers.Ip(\"ip\")\nlb = scaleway.loadbalancers.LoadBalancer(\"lb\",\n    ip_id=ip.id,\n    name=\"my-lb\",\n    type=\"lb-s\")\napp = scaleway.loadbalancers.Backend(\"app\",\n    lb_id=lb.id,\n    forward_protocol=\"http\",\n    forward_port=80,\n    proxy_protocol=\"none\")\nadmin = scaleway.loadbalancers.Backend(\"admin\",\n    lb_id=lb.id,\n    forward_protocol=\"http\",\n    forward_port=8080,\n    proxy_protocol=\"none\")\nfrontend = scaleway.loadbalancers.Frontend(\"frontend\",\n    lb_id=lb.id,\n    backend_id=app.id,\n    inbound_port=80)\nadmin_route = scaleway.loadbalancers.Route(\"admin_route\",\n    frontend_id=frontend.id,\n    backend_id=admin.id,\n    match_path_begin=\"/admin\")\ndefault_route = scaleway.loadbalancers.Route(\"default_route\",\n    frontend_id=frontend.id,\n    backend_id=app.id,\n    match_path_begin=\"/\")\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 ip = new Scaleway.Loadbalancers.Ip(\"ip\");\n\n    var lb = new Scaleway.Loadbalancers.LoadBalancer(\"lb\", new()\n    {\n        IpId = ip.Id,\n        Name = \"my-lb\",\n        Type = \"lb-s\",\n    });\n\n    var app = new Scaleway.Loadbalancers.Backend(\"app\", new()\n    {\n        LbId = lb.Id,\n        ForwardProtocol = \"http\",\n        ForwardPort = 80,\n        ProxyProtocol = \"none\",\n    });\n\n    var admin = new Scaleway.Loadbalancers.Backend(\"admin\", new()\n    {\n        LbId = lb.Id,\n        ForwardProtocol = \"http\",\n        ForwardPort = 8080,\n        ProxyProtocol = \"none\",\n    });\n\n    var frontend = new Scaleway.Loadbalancers.Frontend(\"frontend\", new()\n    {\n        LbId = lb.Id,\n        BackendId = app.Id,\n        InboundPort = 80,\n    });\n\n    var adminRoute = new Scaleway.Loadbalancers.Route(\"admin_route\", new()\n    {\n        FrontendId = frontend.Id,\n        BackendId = admin.Id,\n        MatchPathBegin = \"/admin\",\n    });\n\n    var defaultRoute = new Scaleway.Loadbalancers.Route(\"default_route\", new()\n    {\n        FrontendId = frontend.Id,\n        BackendId = app.Id,\n        MatchPathBegin = \"/\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip, err := loadbalancers.NewIp(ctx, \"ip\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb, err := loadbalancers.NewLoadBalancer(ctx, \"lb\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: ip.ID(),\n\t\t\tName: pulumi.String(\"my-lb\"),\n\t\t\tType: pulumi.String(\"lb-s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapp, err := loadbalancers.NewBackend(ctx, \"app\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tadmin, err := loadbalancers.NewBackend(ctx, \"admin\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(8080),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrontend, err := loadbalancers.NewFrontend(ctx, \"frontend\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        lb.ID(),\n\t\t\tBackendId:   app.ID(),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewRoute(ctx, \"admin_route\", \u0026loadbalancers.RouteArgs{\n\t\t\tFrontendId:     frontend.ID(),\n\t\t\tBackendId:      admin.ID(),\n\t\t\tMatchPathBegin: pulumi.String(\"/admin\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = loadbalancers.NewRoute(ctx, \"default_route\", \u0026loadbalancers.RouteArgs{\n\t\t\tFrontendId:     frontend.ID(),\n\t\t\tBackendId:      app.ID(),\n\t\t\tMatchPathBegin: pulumi.String(\"/\"),\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.Route;\nimport com.pulumi.scaleway.loadbalancers.RouteArgs;\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 ip = new Ip(\"ip\");\n\n        var lb = new LoadBalancer(\"lb\", LoadBalancerArgs.builder()\n            .ipId(ip.id())\n            .name(\"my-lb\")\n            .type(\"lb-s\")\n            .build());\n\n        var app = new Backend(\"app\", BackendArgs.builder()\n            .lbId(lb.id())\n            .forwardProtocol(\"http\")\n            .forwardPort(80)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var admin = new Backend(\"admin\", BackendArgs.builder()\n            .lbId(lb.id())\n            .forwardProtocol(\"http\")\n            .forwardPort(8080)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var frontend = new Frontend(\"frontend\", FrontendArgs.builder()\n            .lbId(lb.id())\n            .backendId(app.id())\n            .inboundPort(80)\n            .build());\n\n        var adminRoute = new Route(\"adminRoute\", RouteArgs.builder()\n            .frontendId(frontend.id())\n            .backendId(admin.id())\n            .matchPathBegin(\"/admin\")\n            .build());\n\n        var defaultRoute = new Route(\"defaultRoute\", RouteArgs.builder()\n            .frontendId(frontend.id())\n            .backendId(app.id())\n            .matchPathBegin(\"/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip:\n    type: scaleway:loadbalancers:Ip\n  lb:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipId: ${ip.id}\n      name: my-lb\n      type: lb-s\n  app:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb.id}\n      forwardProtocol: http\n      forwardPort: 80\n      proxyProtocol: none\n  admin:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb.id}\n      forwardProtocol: http\n      forwardPort: 8080\n      proxyProtocol: none\n  frontend:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb.id}\n      backendId: ${app.id}\n      inboundPort: 80\n  adminRoute:\n    type: scaleway:loadbalancers:Route\n    name: admin_route\n    properties:\n      frontendId: ${frontend.id}\n      backendId: ${admin.id}\n      matchPathBegin: /admin\n  defaultRoute:\n    type: scaleway:loadbalancers:Route\n    name: default_route\n    properties:\n      frontendId: ${frontend.id}\n      backendId: ${app.id}\n      matchPathBegin: /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLoad Balancer frontends can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:loadbalancers/route:Route main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"backendId":{"type":"string","description":"The ID of the backend the route is associated with.\n"},"createdAt":{"type":"string","description":"The date on which the route was created.\n"},"frontendId":{"type":"string","description":"The ID of the frontend the route is associated with.\n"},"matchHostHeader":{"type":"string","description":"The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on HTTP Load Balancers.\n"},"matchPathBegin":{"type":"string","description":"The value to match in the URL beginning path from an incoming request.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n"},"matchSni":{"type":"string","description":"The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on TCP Load Balancers.\n"},"matchSubdomains":{"type":"boolean","description":"If true, all subdomains will match.\n"},"updatedAt":{"type":"string","description":"The date on which the route was last updated.\n"}},"required":["backendId","createdAt","frontendId","updatedAt"],"inputProperties":{"backendId":{"type":"string","description":"The ID of the backend the route is associated with.\n"},"frontendId":{"type":"string","description":"The ID of the frontend the route is associated with.\n","willReplaceOnChanges":true},"matchHostHeader":{"type":"string","description":"The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on HTTP Load Balancers.\n"},"matchPathBegin":{"type":"string","description":"The value to match in the URL beginning path from an incoming request.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n"},"matchSni":{"type":"string","description":"The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on TCP Load Balancers.\n"},"matchSubdomains":{"type":"boolean","description":"If true, all subdomains will match.\n"}},"requiredInputs":["backendId","frontendId"],"stateInputs":{"description":"Input properties used for looking up and filtering Route resources.\n","properties":{"backendId":{"type":"string","description":"The ID of the backend the route is associated with.\n"},"createdAt":{"type":"string","description":"The date on which the route was created.\n"},"frontendId":{"type":"string","description":"The ID of the frontend the route is associated with.\n","willReplaceOnChanges":true},"matchHostHeader":{"type":"string","description":"The HTTP host header to match. Value to match in the HTTP Host request header from an incoming connection.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on HTTP Load Balancers.\n"},"matchPathBegin":{"type":"string","description":"The value to match in the URL beginning path from an incoming request.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n"},"matchSni":{"type":"string","description":"The Server Name Indication (SNI) value to match. Value to match in the Server Name Indication TLS extension (SNI) field from an incoming connection made via an SSL/TLS transport layer.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`matchSni`\" pulumi-lang-dotnet=\"`MatchSni`\" pulumi-lang-go=\"`matchSni`\" pulumi-lang-python=\"`match_sni`\" pulumi-lang-yaml=\"`matchSni`\" pulumi-lang-java=\"`matchSni`\"\u003e`match_sni`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`matchHostHeader`\" pulumi-lang-dotnet=\"`MatchHostHeader`\" pulumi-lang-go=\"`matchHostHeader`\" pulumi-lang-python=\"`match_host_header`\" pulumi-lang-yaml=\"`matchHostHeader`\" pulumi-lang-java=\"`matchHostHeader`\"\u003e`match_host_header`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`matchPathBegin`\" pulumi-lang-dotnet=\"`MatchPathBegin`\" pulumi-lang-go=\"`matchPathBegin`\" pulumi-lang-python=\"`match_path_begin`\" pulumi-lang-yaml=\"`matchPathBegin`\" pulumi-lang-java=\"`matchPathBegin`\"\u003e`match_path_begin`\u003c/span\u003e should be specified.\n\n\u003e **Important:** This field should be set for routes on TCP Load Balancers.\n"},"matchSubdomains":{"type":"boolean","description":"If true, all subdomains will match.\n"},"updatedAt":{"type":"string","description":"The date on which the route was last updated.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/loadbalancerRoute:LoadbalancerRoute"}]},"scaleway:mnq/natsAccount:NatsAccount":{"description":"Creates and manages Scaleway Messaging and Queuing NATS accounts.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/nats-overview/)\nTo use the Scaleway provider with the official NATS JetStream provider, check out the corresponding guide.\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.mnq.NatsAccount(\"main\", {name: \"nats-account\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.NatsAccount(\"main\", name=\"nats-account\")\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.Mnq.NatsAccount(\"main\", new()\n    {\n        Name = \"nats-account\",\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mnq.NewNatsAccount(ctx, \"main\", \u0026mnq.NatsAccountArgs{\n\t\t\tName: pulumi.String(\"nats-account\"),\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.mnq.NatsAccount;\nimport com.pulumi.scaleway.mnq.NatsAccountArgs;\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 NatsAccount(\"main\", NatsAccountArgs.builder()\n            .name(\"nats-account\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:NatsAccount\n    properties:\n      name: nats-account\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNamespaces can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:mnq/natsAccount:NatsAccount main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the NATS service for this account.\n"},"name":{"type":"string","description":"The unique name of the NATS account.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the\naccount is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account should be created.\n"}},"required":["endpoint","name","projectId"],"inputProperties":{"name":{"type":"string","description":"The unique name of the NATS account.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the\naccount is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering NatsAccount resources.\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the NATS service for this account.\n"},"name":{"type":"string","description":"The unique name of the NATS account.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the\naccount is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/mnqNatsAccount:MnqNatsAccount"}]},"scaleway:mnq/natsCredentials:NatsCredentials":{"description":"Creates and manages Scaleway Messaging and Queuing NATS credentials.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/nats-overview/).\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.mnq.NatsAccount(\"main\", {name: \"nats-account\"});\nconst mainNatsCredentials = new scaleway.mnq.NatsCredentials(\"main\", {accountId: main.id});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.NatsAccount(\"main\", name=\"nats-account\")\nmain_nats_credentials = scaleway.mnq.NatsCredentials(\"main\", account_id=main.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 main = new Scaleway.Mnq.NatsAccount(\"main\", new()\n    {\n        Name = \"nats-account\",\n    });\n\n    var mainNatsCredentials = new Scaleway.Mnq.NatsCredentials(\"main\", new()\n    {\n        AccountId = 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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewNatsAccount(ctx, \"main\", \u0026mnq.NatsAccountArgs{\n\t\t\tName: pulumi.String(\"nats-account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewNatsCredentials(ctx, \"main\", \u0026mnq.NatsCredentialsArgs{\n\t\t\tAccountId: main.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.mnq.NatsAccount;\nimport com.pulumi.scaleway.mnq.NatsAccountArgs;\nimport com.pulumi.scaleway.mnq.NatsCredentials;\nimport com.pulumi.scaleway.mnq.NatsCredentialsArgs;\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 NatsAccount(\"main\", NatsAccountArgs.builder()\n            .name(\"nats-account\")\n            .build());\n\n        var mainNatsCredentials = new NatsCredentials(\"mainNatsCredentials\", NatsCredentialsArgs.builder()\n            .accountId(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:NatsAccount\n    properties:\n      name: nats-account\n  mainNatsCredentials:\n    type: scaleway:mnq:NatsCredentials\n    name: main\n    properties:\n      accountId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNamespaces can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:mnq/natsCredentials:NatsCredentials main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"accountId":{"type":"string","description":"The ID of the NATS account the credentials are generated from\n"},"file":{"type":"string","description":"The content of the credentials file.\n","secret":true},"name":{"type":"string","description":"The unique name of the NATS credentials.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account exists.\n"}},"required":["accountId","file","name"],"inputProperties":{"accountId":{"type":"string","description":"The ID of the NATS account the credentials are generated from\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The unique name of the NATS credentials.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account exists.\n","willReplaceOnChanges":true}},"requiredInputs":["accountId"],"stateInputs":{"description":"Input properties used for looking up and filtering NatsCredentials resources.\n","properties":{"accountId":{"type":"string","description":"The ID of the NATS account the credentials are generated from\n","willReplaceOnChanges":true},"file":{"type":"string","description":"The content of the credentials file.\n","secret":true},"name":{"type":"string","description":"The unique name of the NATS credentials.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which the account exists.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/mnqNatsCredentials:MnqNatsCredentials"}]},"scaleway:mnq/sns:Sns":{"description":"Activates Scaleway Messaging and Queuing SNS in a Project.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/sns-overview/).\n\n## Example Usage\n\n### Basic\n\nActivate SNS in the default Project\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.mnq.Sns(\"main\", {});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sns(\"main\")\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.Mnq.Sns(\"main\");\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mnq.NewSns(ctx, \"main\", 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.mnq.Sns;\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 Sns(\"main\");\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sns\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nActivate SNS 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 project = scaleway.account.getProject({\n    name: \"default\",\n});\n// For specific Project in default region\nconst forProject = new scaleway.mnq.Sns(\"for_project\", {projectId: project.then(project =\u003e project.id)});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.get_project(name=\"default\")\n# For specific Project in default region\nfor_project = scaleway.mnq.Sns(\"for_project\", project_id=project.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 project = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    // For specific Project in default region\n    var forProject = new Scaleway.Mnq.Sns(\"for_project\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// For specific Project in default region\n\t\t_, err = mnq.NewSns(ctx, \"for_project\", \u0026mnq.SnsArgs{\n\t\t\tProjectId: pulumi.String(project.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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.mnq.Sns;\nimport com.pulumi.scaleway.mnq.SnsArgs;\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 project = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        // For specific Project in default region\n        var forProject = new Sns(\"forProject\", SnsArgs.builder()\n            .projectId(project.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # For specific Project in default region\n  forProject:\n    type: scaleway:mnq:Sns\n    name: for_project\n    properties:\n      projectId: ${project.id}\nvariables:\n  project:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSNS status can be imported using `{region}/{project_id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:mnq/sns:Sns main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the SNS service for this Project.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project in which SNS will be enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS will be enabled.\n"}},"required":["endpoint","projectId"],"inputProperties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project in which SNS will be enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS will be enabled.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Sns resources.\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the SNS service for this Project.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project in which SNS will be enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS will be enabled.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/mnqSns:MnqSns"}]},"scaleway:mnq/snsCredentials:SnsCredentials":{"description":"Creates and manages Scaleway Messaging and Queuing SNS credentials.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/sns-overview/)\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.mnq.Sns(\"main\", {});\nconst mainSnsCredentials = new scaleway.mnq.SnsCredentials(\"main\", {\n    projectId: main.projectId,\n    name: \"sns-credentials\",\n    permissions: {\n        canManage: false,\n        canReceive: true,\n        canPublish: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sns(\"main\")\nmain_sns_credentials = scaleway.mnq.SnsCredentials(\"main\",\n    project_id=main.project_id,\n    name=\"sns-credentials\",\n    permissions={\n        \"can_manage\": False,\n        \"can_receive\": True,\n        \"can_publish\": False,\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.Mnq.Sns(\"main\");\n\n    var mainSnsCredentials = new Scaleway.Mnq.SnsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"sns-credentials\",\n        Permissions = new Scaleway.Mnq.Inputs.SnsCredentialsPermissionsArgs\n        {\n            CanManage = false,\n            CanReceive = true,\n            CanPublish = false,\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewSns(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSnsCredentials(ctx, \"main\", \u0026mnq.SnsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"sns-credentials\"),\n\t\t\tPermissions: \u0026mnq.SnsCredentialsPermissionsArgs{\n\t\t\t\tCanManage:  pulumi.Bool(false),\n\t\t\t\tCanReceive: pulumi.Bool(true),\n\t\t\t\tCanPublish: pulumi.Bool(false),\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.mnq.Sns;\nimport com.pulumi.scaleway.mnq.SnsCredentials;\nimport com.pulumi.scaleway.mnq.SnsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SnsCredentialsPermissionsArgs;\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 Sns(\"main\");\n\n        var mainSnsCredentials = new SnsCredentials(\"mainSnsCredentials\", SnsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .name(\"sns-credentials\")\n            .permissions(SnsCredentialsPermissionsArgs.builder()\n                .canManage(false)\n                .canReceive(true)\n                .canPublish(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sns\n  mainSnsCredentials:\n    type: scaleway:mnq:SnsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: sns-credentials\n      permissions:\n        canManage: false\n        canReceive: true\n        canPublish: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSNS credentials can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:mnq/snsCredentials:SnsCredentials main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"accessKey":{"type":"string","description":"The ID of the key.\n","secret":true},"name":{"type":"string","description":"The unique name of the SNS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:mnq/SnsCredentialsPermissions:SnsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SNS is enabled.\n"},"secretKey":{"type":"string","description":"The secret value of the key.\n","secret":true}},"required":["accessKey","name","permissions","projectId","secretKey"],"inputProperties":{"name":{"type":"string","description":"The unique name of the SNS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:mnq/SnsCredentialsPermissions:SnsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SNS is enabled.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering SnsCredentials resources.\n","properties":{"accessKey":{"type":"string","description":"The ID of the key.\n","secret":true},"name":{"type":"string","description":"The unique name of the SNS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:mnq/SnsCredentialsPermissions:SnsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SNS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret value of the key.\n","secret":true}},"type":"object"},"aliases":[{"type":"scaleway:index/mnqSnsCredentials:MnqSnsCredentials"}]},"scaleway:mnq/snsTopic:SnsTopic":{"description":"Manage Scaleway Messaging and queuing SNS topics.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/how-to/create-manage-topics/).\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.mnq.Sns(\"main\", {});\nconst mainSnsCredentials = new scaleway.mnq.SnsCredentials(\"main\", {\n    projectId: main.projectId,\n    permissions: {\n        canManage: true,\n    },\n});\nconst topic = new scaleway.mnq.SnsTopic(\"topic\", {\n    projectId: main.projectId,\n    name: \"my-topic\",\n    accessKey: mainSnsCredentials.accessKey,\n    secretKey: mainSnsCredentials.secretKey,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sns(\"main\")\nmain_sns_credentials = scaleway.mnq.SnsCredentials(\"main\",\n    project_id=main.project_id,\n    permissions={\n        \"can_manage\": True,\n    })\ntopic = scaleway.mnq.SnsTopic(\"topic\",\n    project_id=main.project_id,\n    name=\"my-topic\",\n    access_key=main_sns_credentials.access_key,\n    secret_key=main_sns_credentials.secret_key)\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.Mnq.Sns(\"main\");\n\n    var mainSnsCredentials = new Scaleway.Mnq.SnsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Permissions = new Scaleway.Mnq.Inputs.SnsCredentialsPermissionsArgs\n        {\n            CanManage = true,\n        },\n    });\n\n    var topic = new Scaleway.Mnq.SnsTopic(\"topic\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"my-topic\",\n        AccessKey = mainSnsCredentials.AccessKey,\n        SecretKey = mainSnsCredentials.SecretKey,\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewSns(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSnsCredentials, err := mnq.NewSnsCredentials(ctx, \"main\", \u0026mnq.SnsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tPermissions: \u0026mnq.SnsCredentialsPermissionsArgs{\n\t\t\t\tCanManage: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSnsTopic(ctx, \"topic\", \u0026mnq.SnsTopicArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"my-topic\"),\n\t\t\tAccessKey: mainSnsCredentials.AccessKey,\n\t\t\tSecretKey: mainSnsCredentials.SecretKey,\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.mnq.Sns;\nimport com.pulumi.scaleway.mnq.SnsCredentials;\nimport com.pulumi.scaleway.mnq.SnsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SnsCredentialsPermissionsArgs;\nimport com.pulumi.scaleway.mnq.SnsTopic;\nimport com.pulumi.scaleway.mnq.SnsTopicArgs;\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 Sns(\"main\");\n\n        var mainSnsCredentials = new SnsCredentials(\"mainSnsCredentials\", SnsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .permissions(SnsCredentialsPermissionsArgs.builder()\n                .canManage(true)\n                .build())\n            .build());\n\n        var topic = new SnsTopic(\"topic\", SnsTopicArgs.builder()\n            .projectId(main.projectId())\n            .name(\"my-topic\")\n            .accessKey(mainSnsCredentials.accessKey())\n            .secretKey(mainSnsCredentials.secretKey())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sns\n  mainSnsCredentials:\n    type: scaleway:mnq:SnsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      permissions:\n        canManage: true\n  topic:\n    type: scaleway:mnq:SnsTopic\n    properties:\n      projectId: ${main.projectId}\n      name: my-topic\n      accessKey: ${mainSnsCredentials.accessKey}\n      secretKey: ${mainSnsCredentials.secretKey}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSNS topics can be imported using `{region}/{project-id}/{topic-name}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:mnq/snsTopic:SnsTopic main fr-par/11111111111111111111111111111111/my-topic\n```\n\n","properties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true},"arn":{"type":"string","description":"The ARN of the topic\n"},"contentBasedDeduplication":{"type":"boolean","description":"Specifies whether to enable content-based deduplication.\n"},"fifoTopic":{"type":"boolean","description":"Whether the topic is a FIFO topic. If true, the topic name must end with .fifo.\n"},"name":{"type":"string","description":"The unique name of the SNS topic. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n"},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"owner":{"type":"string","description":"Owner of the SNS topic, should have format 'project-${project_id}'"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n"},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n"}},"required":["accessKey","arn","contentBasedDeduplication","fifoTopic","name","namePrefix","owner","projectId","secretKey"],"inputProperties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true},"contentBasedDeduplication":{"type":"boolean","description":"Specifies whether to enable content-based deduplication.\n"},"fifoTopic":{"type":"boolean","description":"Whether the topic is a FIFO topic. If true, the topic name must end with .fifo.\n"},"name":{"type":"string","description":"The unique name of the SNS topic. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n"}},"requiredInputs":["accessKey","secretKey"],"stateInputs":{"description":"Input properties used for looking up and filtering SnsTopic resources.\n","properties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true},"arn":{"type":"string","description":"The ARN of the topic\n"},"contentBasedDeduplication":{"type":"boolean","description":"Specifies whether to enable content-based deduplication.\n"},"fifoTopic":{"type":"boolean","description":"Whether the topic is a FIFO topic. If true, the topic name must end with .fifo.\n"},"name":{"type":"string","description":"The unique name of the SNS topic. Either \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"owner":{"type":"string","description":"Owner of the SNS topic, should have format 'project-${project_id}'"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/mnqSnsTopic:MnqSnsTopic"}]},"scaleway:mnq/snsTopicSubscription:SnsTopicSubscription":{"description":"Manages Scaleway Messaging and Queuing SNS topic subscriptions.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/sns-overview/).\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\n// For default project in default region\nconst main = new scaleway.mnq.Sns(\"main\", {});\nconst mainSnsCredentials = new scaleway.mnq.SnsCredentials(\"main\", {\n    projectId: main.projectId,\n    permissions: {\n        canManage: true,\n        canPublish: true,\n        canReceive: true,\n    },\n});\nconst topic = new scaleway.mnq.SnsTopic(\"topic\", {\n    projectId: main.projectId,\n    name: \"my-topic\",\n    accessKey: mainSnsCredentials.accessKey,\n    secretKey: mainSnsCredentials.secretKey,\n});\nconst mainSnsTopicSubscription = new scaleway.mnq.SnsTopicSubscription(\"main\", {\n    projectId: main.projectId,\n    accessKey: mainSnsCredentials.accessKey,\n    secretKey: mainSnsCredentials.secretKey,\n    topicId: topic.id,\n    protocol: \"http\",\n    endpoint: \"http://example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n# For default project in default region\nmain = scaleway.mnq.Sns(\"main\")\nmain_sns_credentials = scaleway.mnq.SnsCredentials(\"main\",\n    project_id=main.project_id,\n    permissions={\n        \"can_manage\": True,\n        \"can_publish\": True,\n        \"can_receive\": True,\n    })\ntopic = scaleway.mnq.SnsTopic(\"topic\",\n    project_id=main.project_id,\n    name=\"my-topic\",\n    access_key=main_sns_credentials.access_key,\n    secret_key=main_sns_credentials.secret_key)\nmain_sns_topic_subscription = scaleway.mnq.SnsTopicSubscription(\"main\",\n    project_id=main.project_id,\n    access_key=main_sns_credentials.access_key,\n    secret_key=main_sns_credentials.secret_key,\n    topic_id=topic.id,\n    protocol=\"http\",\n    endpoint=\"http://example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // For default project in default region\n    var main = new Scaleway.Mnq.Sns(\"main\");\n\n    var mainSnsCredentials = new Scaleway.Mnq.SnsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Permissions = new Scaleway.Mnq.Inputs.SnsCredentialsPermissionsArgs\n        {\n            CanManage = true,\n            CanPublish = true,\n            CanReceive = true,\n        },\n    });\n\n    var topic = new Scaleway.Mnq.SnsTopic(\"topic\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"my-topic\",\n        AccessKey = mainSnsCredentials.AccessKey,\n        SecretKey = mainSnsCredentials.SecretKey,\n    });\n\n    var mainSnsTopicSubscription = new Scaleway.Mnq.SnsTopicSubscription(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        AccessKey = mainSnsCredentials.AccessKey,\n        SecretKey = mainSnsCredentials.SecretKey,\n        TopicId = topic.Id,\n        Protocol = \"http\",\n        Endpoint = \"http://example.com\",\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// For default project in default region\n\t\tmain, err := mnq.NewSns(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSnsCredentials, err := mnq.NewSnsCredentials(ctx, \"main\", \u0026mnq.SnsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tPermissions: \u0026mnq.SnsCredentialsPermissionsArgs{\n\t\t\t\tCanManage:  pulumi.Bool(true),\n\t\t\t\tCanPublish: pulumi.Bool(true),\n\t\t\t\tCanReceive: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopic, err := mnq.NewSnsTopic(ctx, \"topic\", \u0026mnq.SnsTopicArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"my-topic\"),\n\t\t\tAccessKey: mainSnsCredentials.AccessKey,\n\t\t\tSecretKey: mainSnsCredentials.SecretKey,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSnsTopicSubscription(ctx, \"main\", \u0026mnq.SnsTopicSubscriptionArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tAccessKey: mainSnsCredentials.AccessKey,\n\t\t\tSecretKey: mainSnsCredentials.SecretKey,\n\t\t\tTopicId:   topic.ID(),\n\t\t\tProtocol:  pulumi.String(\"http\"),\n\t\t\tEndpoint:  pulumi.String(\"http://example.com\"),\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.mnq.Sns;\nimport com.pulumi.scaleway.mnq.SnsCredentials;\nimport com.pulumi.scaleway.mnq.SnsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SnsCredentialsPermissionsArgs;\nimport com.pulumi.scaleway.mnq.SnsTopic;\nimport com.pulumi.scaleway.mnq.SnsTopicArgs;\nimport com.pulumi.scaleway.mnq.SnsTopicSubscription;\nimport com.pulumi.scaleway.mnq.SnsTopicSubscriptionArgs;\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        // For default project in default region\n        var main = new Sns(\"main\");\n\n        var mainSnsCredentials = new SnsCredentials(\"mainSnsCredentials\", SnsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .permissions(SnsCredentialsPermissionsArgs.builder()\n                .canManage(true)\n                .canPublish(true)\n                .canReceive(true)\n                .build())\n            .build());\n\n        var topic = new SnsTopic(\"topic\", SnsTopicArgs.builder()\n            .projectId(main.projectId())\n            .name(\"my-topic\")\n            .accessKey(mainSnsCredentials.accessKey())\n            .secretKey(mainSnsCredentials.secretKey())\n            .build());\n\n        var mainSnsTopicSubscription = new SnsTopicSubscription(\"mainSnsTopicSubscription\", SnsTopicSubscriptionArgs.builder()\n            .projectId(main.projectId())\n            .accessKey(mainSnsCredentials.accessKey())\n            .secretKey(mainSnsCredentials.secretKey())\n            .topicId(topic.id())\n            .protocol(\"http\")\n            .endpoint(\"http://example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # For default project in default region\n  main:\n    type: scaleway:mnq:Sns\n  mainSnsCredentials:\n    type: scaleway:mnq:SnsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      permissions:\n        canManage: true\n        canPublish: true\n        canReceive: true\n  topic:\n    type: scaleway:mnq:SnsTopic\n    properties:\n      projectId: ${main.projectId}\n      name: my-topic\n      accessKey: ${mainSnsCredentials.accessKey}\n      secretKey: ${mainSnsCredentials.secretKey}\n  mainSnsTopicSubscription:\n    type: scaleway:mnq:SnsTopicSubscription\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      accessKey: ${mainSnsCredentials.accessKey}\n      secretKey: ${mainSnsCredentials.secretKey}\n      topicId: ${topic.id}\n      protocol: http\n      endpoint: http://example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSNS topic subscriptions can be imported using `{region}/{project-id}/{topic-name}/{subscription-id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:mnq/snsTopicSubscription:SnsTopicSubscription main fr-par/11111111111111111111111111111111/my-topic/11111111111111111111111111111111\n```\n\n","properties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true},"arn":{"type":"string","description":"The ARN of the topic subscription\n"},"endpoint":{"type":"string","description":"Endpoint of the subscription"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n"},"protocol":{"type":"string","description":"Protocol of the SNS topic subscription.\n"},"redrivePolicy":{"type":"boolean","description":"Activate JSON redrive policy.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n"},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n"},"topicArn":{"type":"string","description":"The ARN of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required.\n"},"topicId":{"type":"string","description":"The ID of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e.\n"}},"required":["accessKey","arn","projectId","protocol","redrivePolicy","secretKey"],"inputProperties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true,"willReplaceOnChanges":true},"endpoint":{"type":"string","description":"Endpoint of the subscription","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"Protocol of the SNS topic subscription.\n","willReplaceOnChanges":true},"redrivePolicy":{"type":"boolean","description":"Activate JSON redrive policy.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true,"willReplaceOnChanges":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n","willReplaceOnChanges":true},"topicArn":{"type":"string","description":"The ARN of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"topicId":{"type":"string","description":"The ID of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["accessKey","protocol","secretKey"],"stateInputs":{"description":"Input properties used for looking up and filtering SnsTopicSubscription resources.\n","properties":{"accessKey":{"type":"string","description":"The access key of the SNS credentials.\n","secret":true,"willReplaceOnChanges":true},"arn":{"type":"string","description":"The ARN of the topic subscription\n"},"endpoint":{"type":"string","description":"Endpoint of the subscription","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SNS is enabled.\n","willReplaceOnChanges":true},"protocol":{"type":"string","description":"Protocol of the SNS topic subscription.\n","willReplaceOnChanges":true},"redrivePolicy":{"type":"boolean","description":"Activate JSON redrive policy.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SNS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret key of the SNS credentials.\n","secret":true,"willReplaceOnChanges":true},"snsEndpoint":{"type":"string","description":"The endpoint of the SNS service. Can contain a {region} placeholder. Defaults to `https://sns.mnq.{region}.scaleway.com`.\n","willReplaceOnChanges":true},"topicArn":{"type":"string","description":"The ARN of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required.\n","willReplaceOnChanges":true},"topicId":{"type":"string","description":"The ID of the topic. Either \u003cspan pulumi-lang-nodejs=\"`topicId`\" pulumi-lang-dotnet=\"`TopicId`\" pulumi-lang-go=\"`topicId`\" pulumi-lang-python=\"`topic_id`\" pulumi-lang-yaml=\"`topicId`\" pulumi-lang-java=\"`topicId`\"\u003e`topic_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`topicArn`\" pulumi-lang-dotnet=\"`TopicArn`\" pulumi-lang-go=\"`topicArn`\" pulumi-lang-python=\"`topic_arn`\" pulumi-lang-yaml=\"`topicArn`\" pulumi-lang-java=\"`topicArn`\"\u003e`topic_arn`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/mnqSnsTopicSubscription:MnqSnsTopicSubscription"}]},"scaleway:mnq/sqs:Sqs":{"description":"Activate Scaleway Messaging and Queuing SQS in a Project.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/sqs-overview/).\n\n## Example Usage\n\n### Basic\n\nActivate SQS in the default Project\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.mnq.Sqs(\"main\", {});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sqs(\"main\")\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.Mnq.Sqs(\"main\");\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mnq.NewSqs(ctx, \"main\", 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.mnq.Sqs;\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 Sqs(\"main\");\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sqs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nActivate SQS for 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 project = scaleway.account.getProject({\n    name: \"default\",\n});\nconst forProject = new scaleway.mnq.Sqs(\"for_project\", {projectId: project.then(project =\u003e project.id)});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.get_project(name=\"default\")\nfor_project = scaleway.mnq.Sqs(\"for_project\", project_id=project.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 project = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    var forProject = new Scaleway.Mnq.Sqs(\"for_project\", new()\n    {\n        ProjectId = project.Apply(getProjectResult =\u003e getProjectResult.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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSqs(ctx, \"for_project\", \u0026mnq.SqsArgs{\n\t\t\tProjectId: pulumi.String(project.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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.mnq.Sqs;\nimport com.pulumi.scaleway.mnq.SqsArgs;\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 project = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        var forProject = new Sqs(\"forProject\", SqsArgs.builder()\n            .projectId(project.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  forProject:\n    type: scaleway:mnq:Sqs\n    name: for_project\n    properties:\n      projectId: ${project.id}\nvariables:\n  project:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSQS status can be imported using the `{region}/{project_id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:mnq/sqs:Sqs main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the SQS service for this Project.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS will be enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SQS will be enabled.\n"}},"required":["endpoint","projectId"],"inputProperties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS will be enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SQS will be enabled.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Sqs resources.\n","properties":{"endpoint":{"type":"string","description":"The endpoint of the SQS service for this Project.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS will be enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region\nin which SQS will be enabled.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/mnqSqs:MnqSqs"}]},"scaleway:mnq/sqsCredentials:SqsCredentials":{"description":"Creates and manages Scaleway Messaging and Queuing SQS credentials.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/reference-content/sqs-overview/)\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.mnq.Sqs(\"main\", {});\nconst mainSqsCredentials = new scaleway.mnq.SqsCredentials(\"main\", {\n    projectId: main.projectId,\n    name: \"sqs-credentials\",\n    permissions: {\n        canManage: false,\n        canReceive: true,\n        canPublish: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sqs(\"main\")\nmain_sqs_credentials = scaleway.mnq.SqsCredentials(\"main\",\n    project_id=main.project_id,\n    name=\"sqs-credentials\",\n    permissions={\n        \"can_manage\": False,\n        \"can_receive\": True,\n        \"can_publish\": False,\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.Mnq.Sqs(\"main\");\n\n    var mainSqsCredentials = new Scaleway.Mnq.SqsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"sqs-credentials\",\n        Permissions = new Scaleway.Mnq.Inputs.SqsCredentialsPermissionsArgs\n        {\n            CanManage = false,\n            CanReceive = true,\n            CanPublish = false,\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewSqs(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSqsCredentials(ctx, \"main\", \u0026mnq.SqsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"sqs-credentials\"),\n\t\t\tPermissions: \u0026mnq.SqsCredentialsPermissionsArgs{\n\t\t\t\tCanManage:  pulumi.Bool(false),\n\t\t\t\tCanReceive: pulumi.Bool(true),\n\t\t\t\tCanPublish: pulumi.Bool(false),\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.mnq.Sqs;\nimport com.pulumi.scaleway.mnq.SqsCredentials;\nimport com.pulumi.scaleway.mnq.SqsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SqsCredentialsPermissionsArgs;\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 Sqs(\"main\");\n\n        var mainSqsCredentials = new SqsCredentials(\"mainSqsCredentials\", SqsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .name(\"sqs-credentials\")\n            .permissions(SqsCredentialsPermissionsArgs.builder()\n                .canManage(false)\n                .canReceive(true)\n                .canPublish(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sqs\n  mainSqsCredentials:\n    type: scaleway:mnq:SqsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: sqs-credentials\n      permissions:\n        canManage: false\n        canReceive: true\n        canPublish: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSQS credentials can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:mnq/sqsCredentials:SqsCredentials main fr-par/11111111111111111111111111111111\n```\n\n","properties":{"accessKey":{"type":"string","description":"The ID of the key.\n","secret":true},"name":{"type":"string","description":"The unique name of the SQS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:mnq/SqsCredentialsPermissions:SqsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS is enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SQS is enabled.\n"},"secretKey":{"type":"string","description":"The secret value of the key.\n","secret":true}},"required":["accessKey","name","permissions","projectId","secretKey"],"inputProperties":{"name":{"type":"string","description":"The unique name of the SQS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:mnq/SqsCredentialsPermissions:SqsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SQS is enabled.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering SqsCredentials resources.\n","properties":{"accessKey":{"type":"string","description":"The ID of the key.\n","secret":true},"name":{"type":"string","description":"The unique name of the SQS credentials.\n"},"permissions":{"$ref":"#/types/scaleway:mnq/SqsCredentialsPermissions:SqsCredentialsPermissions","description":". List of permissions associated with these credentials.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS is enabled.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SQS is enabled.\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret value of the key.\n","secret":true}},"type":"object"},"aliases":[{"type":"scaleway:index/mnqSqsCredentials:MnqSqsCredentials"}]},"scaleway:mnq/sqsQueue:SqsQueue":{"description":"Creates and manages Scaleway Messaging and Queuing SQS queues.\nFor further information, see\nour [main documentation](https://www.scaleway.com/en/docs/messaging/how-to/create-manage-queues/).\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.mnq.Sqs(\"main\", {});\nconst mainSqsCredentials = new scaleway.mnq.SqsCredentials(\"main\", {\n    projectId: main.projectId,\n    name: \"sqs-credentials\",\n    permissions: {\n        canManage: true,\n        canReceive: false,\n        canPublish: false,\n    },\n});\nconst mainSqsQueue = new scaleway.mnq.SqsQueue(\"main\", {\n    projectId: main.projectId,\n    name: \"my-queue\",\n    sqsEndpoint: main.endpoint,\n    accessKey: mainSqsCredentials.accessKey,\n    secretKey: mainSqsCredentials.secretKey,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sqs(\"main\")\nmain_sqs_credentials = scaleway.mnq.SqsCredentials(\"main\",\n    project_id=main.project_id,\n    name=\"sqs-credentials\",\n    permissions={\n        \"can_manage\": True,\n        \"can_receive\": False,\n        \"can_publish\": False,\n    })\nmain_sqs_queue = scaleway.mnq.SqsQueue(\"main\",\n    project_id=main.project_id,\n    name=\"my-queue\",\n    sqs_endpoint=main.endpoint,\n    access_key=main_sqs_credentials.access_key,\n    secret_key=main_sqs_credentials.secret_key)\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.Mnq.Sqs(\"main\");\n\n    var mainSqsCredentials = new Scaleway.Mnq.SqsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"sqs-credentials\",\n        Permissions = new Scaleway.Mnq.Inputs.SqsCredentialsPermissionsArgs\n        {\n            CanManage = true,\n            CanReceive = false,\n            CanPublish = false,\n        },\n    });\n\n    var mainSqsQueue = new Scaleway.Mnq.SqsQueue(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"my-queue\",\n        SqsEndpoint = main.Endpoint,\n        AccessKey = mainSqsCredentials.AccessKey,\n        SecretKey = mainSqsCredentials.SecretKey,\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewSqs(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSqsCredentials, err := mnq.NewSqsCredentials(ctx, \"main\", \u0026mnq.SqsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"sqs-credentials\"),\n\t\t\tPermissions: \u0026mnq.SqsCredentialsPermissionsArgs{\n\t\t\t\tCanManage:  pulumi.Bool(true),\n\t\t\t\tCanReceive: pulumi.Bool(false),\n\t\t\t\tCanPublish: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSqsQueue(ctx, \"main\", \u0026mnq.SqsQueueArgs{\n\t\t\tProjectId:   main.ProjectId,\n\t\t\tName:        pulumi.String(\"my-queue\"),\n\t\t\tSqsEndpoint: main.Endpoint,\n\t\t\tAccessKey:   mainSqsCredentials.AccessKey,\n\t\t\tSecretKey:   mainSqsCredentials.SecretKey,\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.mnq.Sqs;\nimport com.pulumi.scaleway.mnq.SqsCredentials;\nimport com.pulumi.scaleway.mnq.SqsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SqsCredentialsPermissionsArgs;\nimport com.pulumi.scaleway.mnq.SqsQueue;\nimport com.pulumi.scaleway.mnq.SqsQueueArgs;\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 Sqs(\"main\");\n\n        var mainSqsCredentials = new SqsCredentials(\"mainSqsCredentials\", SqsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .name(\"sqs-credentials\")\n            .permissions(SqsCredentialsPermissionsArgs.builder()\n                .canManage(true)\n                .canReceive(false)\n                .canPublish(false)\n                .build())\n            .build());\n\n        var mainSqsQueue = new SqsQueue(\"mainSqsQueue\", SqsQueueArgs.builder()\n            .projectId(main.projectId())\n            .name(\"my-queue\")\n            .sqsEndpoint(main.endpoint())\n            .accessKey(mainSqsCredentials.accessKey())\n            .secretKey(mainSqsCredentials.secretKey())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sqs\n  mainSqsCredentials:\n    type: scaleway:mnq:SqsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: sqs-credentials\n      permissions:\n        canManage: true\n        canReceive: false\n        canPublish: false\n  mainSqsQueue:\n    type: scaleway:mnq:SqsQueue\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: my-queue\n      sqsEndpoint: ${main.endpoint}\n      accessKey: ${mainSqsCredentials.accessKey}\n      secretKey: ${mainSqsCredentials.secretKey}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With Dead Letter Queue\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.mnq.Sqs(\"main\", {});\nconst mainSqsCredentials = new scaleway.mnq.SqsCredentials(\"main\", {\n    projectId: main.projectId,\n    name: \"sqs-credentials\",\n    permissions: {\n        canManage: true,\n        canReceive: false,\n        canPublish: false,\n    },\n});\nconst deadLetter = new scaleway.mnq.SqsQueue(\"dead_letter\", {\n    projectId: main.projectId,\n    name: \"dead-letter-queue\",\n    sqsEndpoint: main.endpoint,\n    accessKey: mainSqsCredentials.accessKey,\n    secretKey: mainSqsCredentials.secretKey,\n});\nconst mainSqsQueue = new scaleway.mnq.SqsQueue(\"main\", {\n    projectId: main.projectId,\n    name: \"my-queue\",\n    sqsEndpoint: main.endpoint,\n    accessKey: mainSqsCredentials.accessKey,\n    secretKey: mainSqsCredentials.secretKey,\n    deadLetterQueue: {\n        id: deadLetter.id,\n        maxReceiveCount: 3,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.mnq.Sqs(\"main\")\nmain_sqs_credentials = scaleway.mnq.SqsCredentials(\"main\",\n    project_id=main.project_id,\n    name=\"sqs-credentials\",\n    permissions={\n        \"can_manage\": True,\n        \"can_receive\": False,\n        \"can_publish\": False,\n    })\ndead_letter = scaleway.mnq.SqsQueue(\"dead_letter\",\n    project_id=main.project_id,\n    name=\"dead-letter-queue\",\n    sqs_endpoint=main.endpoint,\n    access_key=main_sqs_credentials.access_key,\n    secret_key=main_sqs_credentials.secret_key)\nmain_sqs_queue = scaleway.mnq.SqsQueue(\"main\",\n    project_id=main.project_id,\n    name=\"my-queue\",\n    sqs_endpoint=main.endpoint,\n    access_key=main_sqs_credentials.access_key,\n    secret_key=main_sqs_credentials.secret_key,\n    dead_letter_queue={\n        \"id\": dead_letter.id,\n        \"max_receive_count\": 3,\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.Mnq.Sqs(\"main\");\n\n    var mainSqsCredentials = new Scaleway.Mnq.SqsCredentials(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"sqs-credentials\",\n        Permissions = new Scaleway.Mnq.Inputs.SqsCredentialsPermissionsArgs\n        {\n            CanManage = true,\n            CanReceive = false,\n            CanPublish = false,\n        },\n    });\n\n    var deadLetter = new Scaleway.Mnq.SqsQueue(\"dead_letter\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"dead-letter-queue\",\n        SqsEndpoint = main.Endpoint,\n        AccessKey = mainSqsCredentials.AccessKey,\n        SecretKey = mainSqsCredentials.SecretKey,\n    });\n\n    var mainSqsQueue = new Scaleway.Mnq.SqsQueue(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        Name = \"my-queue\",\n        SqsEndpoint = main.Endpoint,\n        AccessKey = mainSqsCredentials.AccessKey,\n        SecretKey = mainSqsCredentials.SecretKey,\n        DeadLetterQueue = new Scaleway.Mnq.Inputs.SqsQueueDeadLetterQueueArgs\n        {\n            Id = deadLetter.Id,\n            MaxReceiveCount = 3,\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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := mnq.NewSqs(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSqsCredentials, err := mnq.NewSqsCredentials(ctx, \"main\", \u0026mnq.SqsCredentialsArgs{\n\t\t\tProjectId: main.ProjectId,\n\t\t\tName:      pulumi.String(\"sqs-credentials\"),\n\t\t\tPermissions: \u0026mnq.SqsCredentialsPermissionsArgs{\n\t\t\t\tCanManage:  pulumi.Bool(true),\n\t\t\t\tCanReceive: pulumi.Bool(false),\n\t\t\t\tCanPublish: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdeadLetter, err := mnq.NewSqsQueue(ctx, \"dead_letter\", \u0026mnq.SqsQueueArgs{\n\t\t\tProjectId:   main.ProjectId,\n\t\t\tName:        pulumi.String(\"dead-letter-queue\"),\n\t\t\tSqsEndpoint: main.Endpoint,\n\t\t\tAccessKey:   mainSqsCredentials.AccessKey,\n\t\t\tSecretKey:   mainSqsCredentials.SecretKey,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mnq.NewSqsQueue(ctx, \"main\", \u0026mnq.SqsQueueArgs{\n\t\t\tProjectId:   main.ProjectId,\n\t\t\tName:        pulumi.String(\"my-queue\"),\n\t\t\tSqsEndpoint: main.Endpoint,\n\t\t\tAccessKey:   mainSqsCredentials.AccessKey,\n\t\t\tSecretKey:   mainSqsCredentials.SecretKey,\n\t\t\tDeadLetterQueue: \u0026mnq.SqsQueueDeadLetterQueueArgs{\n\t\t\t\tId:              deadLetter.ID(),\n\t\t\t\tMaxReceiveCount: pulumi.Int(3),\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.mnq.Sqs;\nimport com.pulumi.scaleway.mnq.SqsCredentials;\nimport com.pulumi.scaleway.mnq.SqsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SqsCredentialsPermissionsArgs;\nimport com.pulumi.scaleway.mnq.SqsQueue;\nimport com.pulumi.scaleway.mnq.SqsQueueArgs;\nimport com.pulumi.scaleway.mnq.inputs.SqsQueueDeadLetterQueueArgs;\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 Sqs(\"main\");\n\n        var mainSqsCredentials = new SqsCredentials(\"mainSqsCredentials\", SqsCredentialsArgs.builder()\n            .projectId(main.projectId())\n            .name(\"sqs-credentials\")\n            .permissions(SqsCredentialsPermissionsArgs.builder()\n                .canManage(true)\n                .canReceive(false)\n                .canPublish(false)\n                .build())\n            .build());\n\n        var deadLetter = new SqsQueue(\"deadLetter\", SqsQueueArgs.builder()\n            .projectId(main.projectId())\n            .name(\"dead-letter-queue\")\n            .sqsEndpoint(main.endpoint())\n            .accessKey(mainSqsCredentials.accessKey())\n            .secretKey(mainSqsCredentials.secretKey())\n            .build());\n\n        var mainSqsQueue = new SqsQueue(\"mainSqsQueue\", SqsQueueArgs.builder()\n            .projectId(main.projectId())\n            .name(\"my-queue\")\n            .sqsEndpoint(main.endpoint())\n            .accessKey(mainSqsCredentials.accessKey())\n            .secretKey(mainSqsCredentials.secretKey())\n            .deadLetterQueue(SqsQueueDeadLetterQueueArgs.builder()\n                .id(deadLetter.id())\n                .maxReceiveCount(3)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:mnq:Sqs\n  mainSqsCredentials:\n    type: scaleway:mnq:SqsCredentials\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: sqs-credentials\n      permissions:\n        canManage: true\n        canReceive: false\n        canPublish: false\n  deadLetter:\n    type: scaleway:mnq:SqsQueue\n    name: dead_letter\n    properties:\n      projectId: ${main.projectId}\n      name: dead-letter-queue\n      sqsEndpoint: ${main.endpoint}\n      accessKey: ${mainSqsCredentials.accessKey}\n      secretKey: ${mainSqsCredentials.secretKey}\n  mainSqsQueue:\n    type: scaleway:mnq:SqsQueue\n    name: main\n    properties:\n      projectId: ${main.projectId}\n      name: my-queue\n      sqsEndpoint: ${main.endpoint}\n      accessKey: ${mainSqsCredentials.accessKey}\n      secretKey: ${mainSqsCredentials.secretKey}\n      deadLetterQueue:\n        id: ${deadLetter.id}\n        maxReceiveCount: 3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Dead Letter Queue\n\nThe \u003cspan pulumi-lang-nodejs=\"`deadLetterQueue`\" pulumi-lang-dotnet=\"`DeadLetterQueue`\" pulumi-lang-go=\"`deadLetterQueue`\" pulumi-lang-python=\"`dead_letter_queue`\" pulumi-lang-yaml=\"`deadLetterQueue`\" pulumi-lang-java=\"`deadLetterQueue`\"\u003e`dead_letter_queue`\u003c/span\u003e block supports the following:\n\n- \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e - (Required) The ID of the dead letter queue. Can be either in the format `{region}/{project-id}/{queue-name}` or `arn:scw:sqs:{region}:project-{project-id}:{queue-name}`.\n\n- \u003cspan pulumi-lang-nodejs=\"`maxReceiveCount`\" pulumi-lang-dotnet=\"`MaxReceiveCount`\" pulumi-lang-go=\"`maxReceiveCount`\" pulumi-lang-python=\"`max_receive_count`\" pulumi-lang-yaml=\"`maxReceiveCount`\" pulumi-lang-java=\"`maxReceiveCount`\"\u003e`max_receive_count`\u003c/span\u003e - (Required) The number of times a message is delivered to the source queue before being moved to the dead letter queue. Must be between 1 and 1000.\n","properties":{"accessKey":{"type":"string","description":"The access key of the SQS queue.\n","secret":true},"arn":{"type":"string","description":"The ARN of the queue"},"contentBasedDeduplication":{"type":"boolean","description":"Specifies whether to enable content-based deduplication. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deadLetterQueue":{"$ref":"#/types/scaleway:mnq/SqsQueueDeadLetterQueue:SqsQueueDeadLetterQueue","description":"Configuration for the dead letter queue. See Dead Letter Queue below for details.\n"},"fifoQueue":{"type":"boolean","description":"Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\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 \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n"},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) 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":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). 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","arn","contentBasedDeduplication","fifoQueue","name","namePrefix","projectId","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 \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deadLetterQueue":{"$ref":"#/types/scaleway:mnq/SqsQueueDeadLetterQueue:SqsQueueDeadLetterQueue","description":"Configuration for the dead letter queue. See Dead Letter Queue below for details.\n"},"fifoQueue":{"type":"boolean","description":"Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\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 \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) 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":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). 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 SqsQueue resources.\n","properties":{"accessKey":{"type":"string","description":"The access key of the SQS queue.\n","secret":true},"arn":{"type":"string","description":"The ARN of the queue"},"contentBasedDeduplication":{"type":"boolean","description":"Specifies whether to enable content-based deduplication. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"deadLetterQueue":{"$ref":"#/types/scaleway:mnq/SqsQueueDeadLetterQueue:SqsQueueDeadLetterQueue","description":"Configuration for the dead letter queue. See Dead Letter Queue below for details.\n"},"fifoQueue":{"type":"boolean","description":"Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\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 \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e is required. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namePrefix`\" pulumi-lang-dotnet=\"`NamePrefix`\" pulumi-lang-go=\"`namePrefix`\" pulumi-lang-python=\"`name_prefix`\" pulumi-lang-yaml=\"`namePrefix`\" pulumi-lang-java=\"`namePrefix`\"\u003e`name_prefix`\u003c/span\u003e.\n","willReplaceOnChanges":true},"namePrefix":{"type":"string","description":"Creates a unique name beginning with the specified prefix. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) 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":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). 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"},"aliases":[{"type":"scaleway:index/mnqSqsQueue:MnqSqsQueue"}]},"scaleway:mongodb/instance:Instance":{"description":"Creates and manages Scaleway MongoDB® instance.\nFor more information refer to the [product documentation](https://www.scaleway.com/en/docs/managed-mongodb-databases/).\n\n\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\n//## Basic MongoDB instance creation\nconst main = new scaleway.mongodb.Instance(\"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\n### Basic MongoDB instance creation\nmain = scaleway.mongodb.Instance(\"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    //## Basic MongoDB instance creation\n    var main = new Scaleway.Mongodb.Instance(\"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/mongodb\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Basic MongoDB instance creation\n\t\t_, err := mongodb.NewInstance(ctx, \"main\", \u0026mongodb.InstanceArgs{\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.mongodb.Instance;\nimport com.pulumi.scaleway.mongodb.InstanceArgs;\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        //## Basic MongoDB instance creation\n        var main = new Instance(\"main\", InstanceArgs.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  ### Basic MongoDB instance creation\n  main:\n    type: scaleway:mongodb:Instance\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## Import\n\nMongoDB® instance can be imported using the `id`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:mongodb/instance:Instance main fr-par/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"},"isSnapshotScheduleEnabled":{"type":"boolean","description":"Whether automatic snapshot scheduling is enabled.\n"},"name":{"type":"string","description":"Name of the MongoDB® instance.\n"},"nodeNumber":{"type":"integer","description":"Number of nodes in the instance"},"nodeType":{"type":"string","description":"The type of MongoDB® instance to create.\n"},"password":{"type":"string","description":"Password of the user.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:mongodb/InstancePrivateIp:InstancePrivateIp"},"description":"The private IPv4 address associated with the instance.\n"},"privateNetwork":{"$ref":"#/types/scaleway:mongodb/InstancePrivateNetwork:InstancePrivateNetwork","description":"Private Network endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the MongoDB® instance is associated with.\n"},"publicNetwork":{"$ref":"#/types/scaleway:mongodb/InstancePublicNetwork:InstancePublicNetwork","description":"Public network endpoint configuration (no arguments).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® instance should be created.\n"},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings to define for the instance."},"snapshotId":{"type":"string","description":"Snapshot ID to restore the MongoDB® instance from.\n"},"snapshotScheduleFrequencyHours":{"type":"integer","description":"Snapshot schedule frequency in hours.\n"},"snapshotScheduleRetentionDays":{"type":"integer","description":"Snapshot schedule retention in days.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags attached to the MongoDB® instance.\n"},"tlsCertificate":{"type":"string","description":"The PEM-encoded TLS certificate for the MongoDB® instance, if available.\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 instance 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","isSnapshotScheduleEnabled","name","nodeNumber","nodeType","privateIps","projectId","publicNetwork","snapshotScheduleFrequencyHours","snapshotScheduleRetentionDays","tlsCertificate","updatedAt","version","volumeSizeInGb"],"inputProperties":{"isSnapshotScheduleEnabled":{"type":"boolean","description":"Whether automatic snapshot scheduling is enabled.\n"},"name":{"type":"string","description":"Name of the MongoDB® instance.\n"},"nodeNumber":{"type":"integer","description":"Number of nodes in the instance"},"nodeType":{"type":"string","description":"The type of MongoDB® instance to create.\n"},"password":{"type":"string","description":"Password of the user.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:mongodb/InstancePrivateIp:InstancePrivateIp"},"description":"The private IPv4 address associated with the instance.\n"},"privateNetwork":{"$ref":"#/types/scaleway:mongodb/InstancePrivateNetwork:InstancePrivateNetwork","description":"Private Network endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the MongoDB® instance is associated with.\n","willReplaceOnChanges":true},"publicNetwork":{"$ref":"#/types/scaleway:mongodb/InstancePublicNetwork:InstancePublicNetwork","description":"Public network endpoint configuration (no arguments).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® instance should be created.\n","willReplaceOnChanges":true},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings to define for the instance."},"snapshotId":{"type":"string","description":"Snapshot ID to restore the MongoDB® instance from.\n","willReplaceOnChanges":true},"snapshotScheduleFrequencyHours":{"type":"integer","description":"Snapshot schedule frequency in hours.\n"},"snapshotScheduleRetentionDays":{"type":"integer","description":"Snapshot schedule retention in days.\n"},"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 instance 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 Instance resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the MongoDB® instance.\n"},"isSnapshotScheduleEnabled":{"type":"boolean","description":"Whether automatic snapshot scheduling is enabled.\n"},"name":{"type":"string","description":"Name of the MongoDB® instance.\n"},"nodeNumber":{"type":"integer","description":"Number of nodes in the instance"},"nodeType":{"type":"string","description":"The type of MongoDB® instance to create.\n"},"password":{"type":"string","description":"Password of the user.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:mongodb/InstancePrivateIp:InstancePrivateIp"},"description":"The private IPv4 address associated with the instance.\n"},"privateNetwork":{"$ref":"#/types/scaleway:mongodb/InstancePrivateNetwork:InstancePrivateNetwork","description":"Private Network endpoints of the Database Instance.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the MongoDB® instance is associated with.\n","willReplaceOnChanges":true},"publicNetwork":{"$ref":"#/types/scaleway:mongodb/InstancePublicNetwork:InstancePublicNetwork","description":"Public network endpoint configuration (no arguments).\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® instance should be created.\n","willReplaceOnChanges":true},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings to define for the instance."},"snapshotId":{"type":"string","description":"Snapshot ID to restore the MongoDB® instance from.\n","willReplaceOnChanges":true},"snapshotScheduleFrequencyHours":{"type":"integer","description":"Snapshot schedule frequency in hours.\n"},"snapshotScheduleRetentionDays":{"type":"integer","description":"Snapshot schedule retention in days.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags attached to the MongoDB® instance.\n"},"tlsCertificate":{"type":"string","description":"The PEM-encoded TLS certificate for the MongoDB® instance, if available.\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 instance 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"},"aliases":[{"type":"scaleway:index/mongoDbInstance:MongoDbInstance"}]},"scaleway:mongodb/snapshot:Snapshot":{"description":"Creates and manages Scaleway MongoDB® snapshots.\nFor more information refer to the [product documentation](https://www.scaleway.com/en/docs/managed-mongodb-databases/).\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.mongodb.Snapshot(\"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.mongodb.Snapshot(\"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.Mongodb.Snapshot(\"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/mongodb\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodb.NewSnapshot(ctx, \"main\", \u0026mongodb.SnapshotArgs{\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.mongodb.Snapshot;\nimport com.pulumi.scaleway.mongodb.SnapshotArgs;\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 Snapshot(\"main\", SnapshotArgs.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:mongodb:Snapshot\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:mongodb/snapshot:Snapshot main fr-par/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, \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed.\n"},"instanceId":{"type":"string","description":"The ID of the MongoDB® instance from which the snapshot was created.\n"},"instanceName":{"type":"string","description":"The name of the MongoDB® instance from which the snapshot was created.\n"},"name":{"type":"string","description":"The name of the MongoDB® snapshot.\n"},"nodeType":{"type":"string","description":"The type of node associated with the MongoDB® snapshot.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® snapshot should be created.\n"},"size":{"type":"integer","description":"The size of the MongoDB® snapshot in bytes.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the MongoDB® snapshot.\n"},"volumeType":{"type":"string","description":"The type of volume used for the MongoDB® snapshot.\n"}},"required":["createdAt","expiresAt","instanceId","instanceName","name","nodeType","size","updatedAt","volumeType"],"inputProperties":{"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, \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed.\n"},"instanceId":{"type":"string","description":"The ID of the MongoDB® instance from which the snapshot was created.\n"},"name":{"type":"string","description":"The name of the MongoDB® snapshot.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® snapshot should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["expiresAt","instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering Snapshot resources.\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, \u003cspan pulumi-lang-nodejs=\"`expiresAt`\" pulumi-lang-dotnet=\"`ExpiresAt`\" pulumi-lang-go=\"`expiresAt`\" pulumi-lang-python=\"`expires_at`\" pulumi-lang-yaml=\"`expiresAt`\" pulumi-lang-java=\"`expiresAt`\"\u003e`expires_at`\u003c/span\u003e cannot be removed.\n"},"instanceId":{"type":"string","description":"The ID of the MongoDB® instance from which the snapshot was created.\n"},"instanceName":{"type":"string","description":"The name of the MongoDB® instance from which the snapshot was created.\n"},"name":{"type":"string","description":"The name of the MongoDB® snapshot.\n"},"nodeType":{"type":"string","description":"The type of node associated with the MongoDB® snapshot.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® snapshot should be created.\n","willReplaceOnChanges":true},"size":{"type":"integer","description":"The size of the MongoDB® snapshot in bytes.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the MongoDB® snapshot.\n"},"volumeType":{"type":"string","description":"The type of volume used for the MongoDB® snapshot.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/mongoDbSnapshot:MongoDbSnapshot"}]},"scaleway:mongodb/user:User":{"description":"Manages MongoDB users. For more information, see [the documentation](https://developers.scaleway.com/products/mongodb/api/).\n\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\n//## Basic user creation\nconst main = new scaleway.mongodb.Instance(\"main\", {\n    name: \"test-mongodb-user\",\n    version: \"7.0.12\",\n    nodeType: \"MGDB-PLAY2-NANO\",\n    nodeNumber: 1,\n    userName: \"initial_user\",\n    password: \"initial_password123\",\n    volumeSizeInGb: 5,\n});\nconst mainUser = new scaleway.mongodb.User(\"main\", {\n    instanceId: main.id,\n    name: \"my_user\",\n    password: \"my_password123\",\n    roles: [{\n        role: \"read_write\",\n        databaseName: \"my_database\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Basic user creation\nmain = scaleway.mongodb.Instance(\"main\",\n    name=\"test-mongodb-user\",\n    version=\"7.0.12\",\n    node_type=\"MGDB-PLAY2-NANO\",\n    node_number=1,\n    user_name=\"initial_user\",\n    password=\"initial_password123\",\n    volume_size_in_gb=5)\nmain_user = scaleway.mongodb.User(\"main\",\n    instance_id=main.id,\n    name=\"my_user\",\n    password=\"my_password123\",\n    roles=[{\n        \"role\": \"read_write\",\n        \"database_name\": \"my_database\",\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    //## Basic user creation\n    var main = new Scaleway.Mongodb.Instance(\"main\", new()\n    {\n        Name = \"test-mongodb-user\",\n        Version = \"7.0.12\",\n        NodeType = \"MGDB-PLAY2-NANO\",\n        NodeNumber = 1,\n        UserName = \"initial_user\",\n        Password = \"initial_password123\",\n        VolumeSizeInGb = 5,\n    });\n\n    var mainUser = new Scaleway.Mongodb.User(\"main\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"my_user\",\n        Password = \"my_password123\",\n        Roles = new[]\n        {\n            new Scaleway.Mongodb.Inputs.UserRoleArgs\n            {\n                Role = \"read_write\",\n                DatabaseName = \"my_database\",\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/mongodb\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Basic user creation\n\t\tmain, err := mongodb.NewInstance(ctx, \"main\", \u0026mongodb.InstanceArgs{\n\t\t\tName:           pulumi.String(\"test-mongodb-user\"),\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(\"initial_user\"),\n\t\t\tPassword:       pulumi.String(\"initial_password123\"),\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\t_, err = mongodb.NewUser(ctx, \"main\", \u0026mongodb.UserArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"my_user\"),\n\t\t\tPassword:   pulumi.String(\"my_password123\"),\n\t\t\tRoles: mongodb.UserRoleArray{\n\t\t\t\t\u0026mongodb.UserRoleArgs{\n\t\t\t\t\tRole:         pulumi.String(\"read_write\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"my_database\"),\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.mongodb.Instance;\nimport com.pulumi.scaleway.mongodb.InstanceArgs;\nimport com.pulumi.scaleway.mongodb.User;\nimport com.pulumi.scaleway.mongodb.UserArgs;\nimport com.pulumi.scaleway.mongodb.inputs.UserRoleArgs;\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        //## Basic user creation\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-mongodb-user\")\n            .version(\"7.0.12\")\n            .nodeType(\"MGDB-PLAY2-NANO\")\n            .nodeNumber(1)\n            .userName(\"initial_user\")\n            .password(\"initial_password123\")\n            .volumeSizeInGb(5)\n            .build());\n\n        var mainUser = new User(\"mainUser\", UserArgs.builder()\n            .instanceId(main.id())\n            .name(\"my_user\")\n            .password(\"my_password123\")\n            .roles(UserRoleArgs.builder()\n                .role(\"read_write\")\n                .databaseName(\"my_database\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Basic user creation\n  main:\n    type: scaleway:mongodb:Instance\n    properties:\n      name: test-mongodb-user\n      version: 7.0.12\n      nodeType: MGDB-PLAY2-NANO\n      nodeNumber: 1\n      userName: initial_user\n      password: initial_password123\n      volumeSizeInGb: 5\n  mainUser:\n    type: scaleway:mongodb:User\n    name: main\n    properties:\n      instanceId: ${main.id}\n      name: my_user\n      password: my_password123\n      roles:\n        - role: read_write\n          databaseName: my_database\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n//## Multiple user creation\nconst main = new scaleway.mongodb.Instance(\"main\", {\n    name: \"test-mongodb-multi-user\",\n    version: \"7.0.12\",\n    nodeType: \"MGDB-PLAY2-NANO\",\n    nodeNumber: 1,\n    userName: \"admin_user\",\n    password: \"admin_password123\",\n    volumeSizeInGb: 5,\n});\nconst appUser = new scaleway.mongodb.User(\"app_user\", {\n    instanceId: main.id,\n    name: \"app_user\",\n    password: \"app_password123\",\n    roles: [\n        {\n            role: \"read_write\",\n            databaseName: \"app_database\",\n        },\n        {\n            role: \"read\",\n            databaseName: \"logs_database\",\n        },\n    ],\n});\nconst adminUser = new scaleway.mongodb.User(\"admin_user\", {\n    instanceId: main.id,\n    name: \"admin_user\",\n    password: \"admin_password123\",\n    roles: [\n        {\n            role: \"db_admin\",\n            databaseName: \"admin\",\n        },\n        {\n            role: \"read\",\n            anyDatabase: true,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Multiple user creation\nmain = scaleway.mongodb.Instance(\"main\",\n    name=\"test-mongodb-multi-user\",\n    version=\"7.0.12\",\n    node_type=\"MGDB-PLAY2-NANO\",\n    node_number=1,\n    user_name=\"admin_user\",\n    password=\"admin_password123\",\n    volume_size_in_gb=5)\napp_user = scaleway.mongodb.User(\"app_user\",\n    instance_id=main.id,\n    name=\"app_user\",\n    password=\"app_password123\",\n    roles=[\n        {\n            \"role\": \"read_write\",\n            \"database_name\": \"app_database\",\n        },\n        {\n            \"role\": \"read\",\n            \"database_name\": \"logs_database\",\n        },\n    ])\nadmin_user = scaleway.mongodb.User(\"admin_user\",\n    instance_id=main.id,\n    name=\"admin_user\",\n    password=\"admin_password123\",\n    roles=[\n        {\n            \"role\": \"db_admin\",\n            \"database_name\": \"admin\",\n        },\n        {\n            \"role\": \"read\",\n            \"any_database\": True,\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    //## Multiple user creation\n    var main = new Scaleway.Mongodb.Instance(\"main\", new()\n    {\n        Name = \"test-mongodb-multi-user\",\n        Version = \"7.0.12\",\n        NodeType = \"MGDB-PLAY2-NANO\",\n        NodeNumber = 1,\n        UserName = \"admin_user\",\n        Password = \"admin_password123\",\n        VolumeSizeInGb = 5,\n    });\n\n    var appUser = new Scaleway.Mongodb.User(\"app_user\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"app_user\",\n        Password = \"app_password123\",\n        Roles = new[]\n        {\n            new Scaleway.Mongodb.Inputs.UserRoleArgs\n            {\n                Role = \"read_write\",\n                DatabaseName = \"app_database\",\n            },\n            new Scaleway.Mongodb.Inputs.UserRoleArgs\n            {\n                Role = \"read\",\n                DatabaseName = \"logs_database\",\n            },\n        },\n    });\n\n    var adminUser = new Scaleway.Mongodb.User(\"admin_user\", new()\n    {\n        InstanceId = main.Id,\n        Name = \"admin_user\",\n        Password = \"admin_password123\",\n        Roles = new[]\n        {\n            new Scaleway.Mongodb.Inputs.UserRoleArgs\n            {\n                Role = \"db_admin\",\n                DatabaseName = \"admin\",\n            },\n            new Scaleway.Mongodb.Inputs.UserRoleArgs\n            {\n                Role = \"read\",\n                AnyDatabase = true,\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/mongodb\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Multiple user creation\n\t\tmain, err := mongodb.NewInstance(ctx, \"main\", \u0026mongodb.InstanceArgs{\n\t\t\tName:           pulumi.String(\"test-mongodb-multi-user\"),\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(\"admin_user\"),\n\t\t\tPassword:       pulumi.String(\"admin_password123\"),\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\t_, err = mongodb.NewUser(ctx, \"app_user\", \u0026mongodb.UserArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"app_user\"),\n\t\t\tPassword:   pulumi.String(\"app_password123\"),\n\t\t\tRoles: mongodb.UserRoleArray{\n\t\t\t\t\u0026mongodb.UserRoleArgs{\n\t\t\t\t\tRole:         pulumi.String(\"read_write\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"app_database\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodb.UserRoleArgs{\n\t\t\t\t\tRole:         pulumi.String(\"read\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"logs_database\"),\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 = mongodb.NewUser(ctx, \"admin_user\", \u0026mongodb.UserArgs{\n\t\t\tInstanceId: main.ID(),\n\t\t\tName:       pulumi.String(\"admin_user\"),\n\t\t\tPassword:   pulumi.String(\"admin_password123\"),\n\t\t\tRoles: mongodb.UserRoleArray{\n\t\t\t\t\u0026mongodb.UserRoleArgs{\n\t\t\t\t\tRole:         pulumi.String(\"db_admin\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodb.UserRoleArgs{\n\t\t\t\t\tRole:        pulumi.String(\"read\"),\n\t\t\t\t\tAnyDatabase: pulumi.Bool(true),\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.mongodb.Instance;\nimport com.pulumi.scaleway.mongodb.InstanceArgs;\nimport com.pulumi.scaleway.mongodb.User;\nimport com.pulumi.scaleway.mongodb.UserArgs;\nimport com.pulumi.scaleway.mongodb.inputs.UserRoleArgs;\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        //## Multiple user creation\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-mongodb-multi-user\")\n            .version(\"7.0.12\")\n            .nodeType(\"MGDB-PLAY2-NANO\")\n            .nodeNumber(1)\n            .userName(\"admin_user\")\n            .password(\"admin_password123\")\n            .volumeSizeInGb(5)\n            .build());\n\n        var appUser = new User(\"appUser\", UserArgs.builder()\n            .instanceId(main.id())\n            .name(\"app_user\")\n            .password(\"app_password123\")\n            .roles(            \n                UserRoleArgs.builder()\n                    .role(\"read_write\")\n                    .databaseName(\"app_database\")\n                    .build(),\n                UserRoleArgs.builder()\n                    .role(\"read\")\n                    .databaseName(\"logs_database\")\n                    .build())\n            .build());\n\n        var adminUser = new User(\"adminUser\", UserArgs.builder()\n            .instanceId(main.id())\n            .name(\"admin_user\")\n            .password(\"admin_password123\")\n            .roles(            \n                UserRoleArgs.builder()\n                    .role(\"db_admin\")\n                    .databaseName(\"admin\")\n                    .build(),\n                UserRoleArgs.builder()\n                    .role(\"read\")\n                    .anyDatabase(true)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Multiple user creation\n  main:\n    type: scaleway:mongodb:Instance\n    properties:\n      name: test-mongodb-multi-user\n      version: 7.0.12\n      nodeType: MGDB-PLAY2-NANO\n      nodeNumber: 1\n      userName: admin_user\n      password: admin_password123\n      volumeSizeInGb: 5\n  appUser:\n    type: scaleway:mongodb:User\n    name: app_user\n    properties:\n      instanceId: ${main.id}\n      name: app_user\n      password: app_password123\n      roles:\n        - role: read_write\n          databaseName: app_database\n        - role: read\n          databaseName: logs_database\n  adminUser:\n    type: scaleway:mongodb:User\n    name: admin_user\n    properties:\n      instanceId: ${main.id}\n      name: admin_user\n      password: admin_password123\n      roles:\n        - role: db_admin\n          databaseName: admin\n        - role: read\n          anyDatabase: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nMongoDB® users can be imported using the `{region}/{instance_id}/{name}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:mongodb/user:User main fr-par/11111111-1111-1111-1111-111111111111/my_user\n```\n\n","properties":{"instanceId":{"type":"string","description":"The ID of the MongoDB® instance.\n"},"name":{"type":"string","description":"The name of the MongoDB® user.\n"},"password":{"type":"string","description":"The password of the MongoDB® user.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® user should be created.\n"},"roles":{"type":"array","items":{"$ref":"#/types/scaleway:mongodb/UserRole:UserRole"},"description":"List of roles assigned to the user. Each role block supports:\n"}},"required":["instanceId","name"],"inputProperties":{"instanceId":{"type":"string","description":"The ID of the MongoDB® instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the MongoDB® user.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the MongoDB® user.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® user should be created.\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"$ref":"#/types/scaleway:mongodb/UserRole:UserRole"},"description":"List of roles assigned to the user. Each role block supports:\n"}},"requiredInputs":["instanceId"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"instanceId":{"type":"string","description":"The ID of the MongoDB® instance.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the MongoDB® user.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the MongoDB® user.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® user should be created.\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"$ref":"#/types/scaleway:mongodb/UserRole:UserRole"},"description":"List of roles assigned to the user. Each role block supports:\n"}},"type":"object"}},"scaleway:network/acl:Acl":{"description":"Creates and manages Scaleway VPC ACLs.\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.network.Vpc(\"vpc01\", {name: \"tf-vpc-acl\"});\nconst acl01 = new scaleway.network.Acl(\"acl01\", {\n    vpcId: vpc01.id,\n    isIpv6: false,\n    rules: [{\n        protocol: \"TCP\",\n        srcPortLow: 0,\n        srcPortHigh: 0,\n        dstPortLow: 80,\n        dstPortHigh: 80,\n        source: \"0.0.0.0/0\",\n        destination: \"0.0.0.0/0\",\n        description: \"Allow HTTP traffic from any source\",\n        action: \"accept\",\n    }],\n    defaultPolicy: \"drop\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"tf-vpc-acl\")\nacl01 = scaleway.network.Acl(\"acl01\",\n    vpc_id=vpc01.id,\n    is_ipv6=False,\n    rules=[{\n        \"protocol\": \"TCP\",\n        \"src_port_low\": 0,\n        \"src_port_high\": 0,\n        \"dst_port_low\": 80,\n        \"dst_port_high\": 80,\n        \"source\": \"0.0.0.0/0\",\n        \"destination\": \"0.0.0.0/0\",\n        \"description\": \"Allow HTTP traffic from any source\",\n        \"action\": \"accept\",\n    }],\n    default_policy=\"drop\")\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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"tf-vpc-acl\",\n    });\n\n    var acl01 = new Scaleway.Network.Acl(\"acl01\", new()\n    {\n        VpcId = vpc01.Id,\n        IsIpv6 = false,\n        Rules = new[]\n        {\n            new Scaleway.Network.Inputs.AclRuleArgs\n            {\n                Protocol = \"TCP\",\n                SrcPortLow = 0,\n                SrcPortHigh = 0,\n                DstPortLow = 80,\n                DstPortHigh = 80,\n                Source = \"0.0.0.0/0\",\n                Destination = \"0.0.0.0/0\",\n                Description = \"Allow HTTP traffic from any source\",\n                Action = \"accept\",\n            },\n        },\n        DefaultPolicy = \"drop\",\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"tf-vpc-acl\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewAcl(ctx, \"acl01\", \u0026network.AclArgs{\n\t\t\tVpcId:  vpc01.ID(),\n\t\t\tIsIpv6: pulumi.Bool(false),\n\t\t\tRules: network.AclRuleArray{\n\t\t\t\t\u0026network.AclRuleArgs{\n\t\t\t\t\tProtocol:    pulumi.String(\"TCP\"),\n\t\t\t\t\tSrcPortLow:  pulumi.Int(0),\n\t\t\t\t\tSrcPortHigh: pulumi.Int(0),\n\t\t\t\t\tDstPortLow:  pulumi.Int(80),\n\t\t\t\t\tDstPortHigh: pulumi.Int(80),\n\t\t\t\t\tSource:      pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t\tDestination: pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t\tDescription: pulumi.String(\"Allow HTTP traffic from any source\"),\n\t\t\t\t\tAction:      pulumi.String(\"accept\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDefaultPolicy: pulumi.String(\"drop\"),\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.Acl;\nimport com.pulumi.scaleway.network.AclArgs;\nimport com.pulumi.scaleway.network.inputs.AclRuleArgs;\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(\"tf-vpc-acl\")\n            .build());\n\n        var acl01 = new Acl(\"acl01\", AclArgs.builder()\n            .vpcId(vpc01.id())\n            .isIpv6(false)\n            .rules(AclRuleArgs.builder()\n                .protocol(\"TCP\")\n                .srcPortLow(0)\n                .srcPortHigh(0)\n                .dstPortLow(80)\n                .dstPortHigh(80)\n                .source(\"0.0.0.0/0\")\n                .destination(\"0.0.0.0/0\")\n                .description(\"Allow HTTP traffic from any source\")\n                .action(\"accept\")\n                .build())\n            .defaultPolicy(\"drop\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: tf-vpc-acl\n  acl01:\n    type: scaleway:network:Acl\n    properties:\n      vpcId: ${vpc01.id}\n      isIpv6: false\n      rules:\n        - protocol: TCP\n          srcPortLow: 0\n          srcPortHigh: 0\n          dstPortLow: 80\n          dstPortHigh: 80\n          source: 0.0.0.0/0\n          destination: 0.0.0.0/0\n          description: Allow HTTP traffic from any source\n          action: accept\n      defaultPolicy: drop\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nACLs can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:network/acl:Acl main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"defaultPolicy":{"type":"string","description":"The action to take for packets which do not match any rules.\n"},"isIpv6":{"type":"boolean","description":"Defines whether this set of ACL rules is for IPv6 (false = IPv4). Each Network ACL can have rules for only one IP type.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the ACL.\n"},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:network/AclRule:AclRule"},"description":"The list of Network ACL rules.\n"},"vpcId":{"type":"string","description":"The VPC ID the ACL belongs to.\n"}},"required":["vpcId"],"inputProperties":{"defaultPolicy":{"type":"string","description":"The action to take for packets which do not match any rules.\n"},"isIpv6":{"type":"boolean","description":"Defines whether this set of ACL rules is for IPv6 (false = IPv4). Each Network ACL can have rules for only one IP type.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the ACL.\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:network/AclRule:AclRule"},"description":"The list of Network ACL rules.\n"},"vpcId":{"type":"string","description":"The VPC ID the ACL belongs to.\n"}},"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering Acl resources.\n","properties":{"defaultPolicy":{"type":"string","description":"The action to take for packets which do not match any rules.\n"},"isIpv6":{"type":"boolean","description":"Defines whether this set of ACL rules is for IPv6 (false = IPv4). Each Network ACL can have rules for only one IP type.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the ACL.\n","willReplaceOnChanges":true},"rules":{"type":"array","items":{"$ref":"#/types/scaleway:network/AclRule:AclRule"},"description":"The list of Network ACL rules.\n"},"vpcId":{"type":"string","description":"The VPC ID the ACL belongs to.\n"}},"type":"object"}},"scaleway:network/gatewayNetwork:GatewayNetwork":{"description":"Creates and manages GatewayNetworks (connections between a Public Gateway and a Private Network).\n\nIt allows the attachment of Private Networks to Public Gateways.\nFor more information, see [the API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#step-3-attach-private-networks-to-the-vpc-public-gateway).\n\n## Example Usage\n\n### Create a GatewayNetwork with IPAM configuration\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"pn_test_network\",\n    ipv4Subnet: {\n        subnet: \"172.16.64.0/22\",\n    },\n    vpcId: vpc01.id,\n});\nconst pg01 = new scaleway.network.PublicGateway(\"pg01\", {\n    name: \"foobar\",\n    type: \"VPC-GW-S\",\n});\nconst main = new scaleway.network.GatewayNetwork(\"main\", {\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n    enableMasquerade: true,\n    ipamConfigs: [{\n        pushDefaultRoute: true,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"pn_test_network\",\n    ipv4_subnet={\n        \"subnet\": \"172.16.64.0/22\",\n    },\n    vpc_id=vpc01.id)\npg01 = scaleway.network.PublicGateway(\"pg01\",\n    name=\"foobar\",\n    type=\"VPC-GW-S\")\nmain = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=pg01.id,\n    private_network_id=pn01.id,\n    enable_masquerade=True,\n    ipam_configs=[{\n        \"push_default_route\": True,\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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"pn_test_network\",\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.64.0/22\",\n        },\n        VpcId = vpc01.Id,\n    });\n\n    var pg01 = new Scaleway.Network.PublicGateway(\"pg01\", new()\n    {\n        Name = \"foobar\",\n        Type = \"VPC-GW-S\",\n    });\n\n    var main = new Scaleway.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.Id,\n        EnableMasquerade = true,\n        IpamConfigs = new[]\n        {\n            new Scaleway.Network.Inputs.GatewayNetworkIpamConfigArgs\n            {\n                PushDefaultRoute = true,\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"pn_test_network\"),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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\tpg01, err := network.NewPublicGateway(ctx, \"pg01\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        pg01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t\tIpamConfigs: network.GatewayNetworkIpamConfigArray{\n\t\t\t\t\u0026network.GatewayNetworkIpamConfigArgs{\n\t\t\t\t\tPushDefaultRoute: pulumi.Bool(true),\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.GatewayNetworkIpamConfigArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"pn_test_network\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.64.0/22\")\n                .build())\n            .vpcId(vpc01.id())\n            .build());\n\n        var pg01 = new PublicGateway(\"pg01\", PublicGatewayArgs.builder()\n            .name(\"foobar\")\n            .type(\"VPC-GW-S\")\n            .build());\n\n        var main = new GatewayNetwork(\"main\", GatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .enableMasquerade(true)\n            .ipamConfigs(GatewayNetworkIpamConfigArgs.builder()\n                .pushDefaultRoute(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: pn_test_network\n      ipv4Subnet:\n        subnet: 172.16.64.0/22\n      vpcId: ${vpc01.id}\n  pg01:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: foobar\n      type: VPC-GW-S\n  main:\n    type: scaleway:network:GatewayNetwork\n    properties:\n      gatewayId: ${pg01.id}\n      privateNetworkId: ${pn01.id}\n      enableMasquerade: true\n      ipamConfigs:\n        - pushDefaultRoute: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a GatewayNetwork with a booked IPAM IP\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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"pn_test_network\",\n    ipv4Subnet: {\n        subnet: \"172.16.64.0/22\",\n    },\n    vpcId: vpc01.id,\n});\nconst ip01 = new scaleway.ipam.Ip(\"ip01\", {\n    address: \"172.16.64.7\",\n    sources: [{\n        privateNetworkId: pn01.id,\n    }],\n});\nconst pg01 = new scaleway.network.PublicGateway(\"pg01\", {\n    name: \"foobar\",\n    type: \"VPC-GW-S\",\n});\nconst main = new scaleway.network.GatewayNetwork(\"main\", {\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n    enableMasquerade: true,\n    ipamConfigs: [{\n        pushDefaultRoute: true,\n        ipamIpId: ip01.id,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"pn_test_network\",\n    ipv4_subnet={\n        \"subnet\": \"172.16.64.0/22\",\n    },\n    vpc_id=vpc01.id)\nip01 = scaleway.ipam.Ip(\"ip01\",\n    address=\"172.16.64.7\",\n    sources=[{\n        \"private_network_id\": pn01.id,\n    }])\npg01 = scaleway.network.PublicGateway(\"pg01\",\n    name=\"foobar\",\n    type=\"VPC-GW-S\")\nmain = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=pg01.id,\n    private_network_id=pn01.id,\n    enable_masquerade=True,\n    ipam_configs=[{\n        \"push_default_route\": True,\n        \"ipam_ip_id\": ip01.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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"pn_test_network\",\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.64.0/22\",\n        },\n        VpcId = vpc01.Id,\n    });\n\n    var ip01 = new Scaleway.Ipam.Ip(\"ip01\", new()\n    {\n        Address = \"172.16.64.7\",\n        Sources = new[]\n        {\n            new Scaleway.Ipam.Inputs.IpSourceArgs\n            {\n                PrivateNetworkId = pn01.Id,\n            },\n        },\n    });\n\n    var pg01 = new Scaleway.Network.PublicGateway(\"pg01\", new()\n    {\n        Name = \"foobar\",\n        Type = \"VPC-GW-S\",\n    });\n\n    var main = new Scaleway.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.Id,\n        EnableMasquerade = true,\n        IpamConfigs = new[]\n        {\n            new Scaleway.Network.Inputs.GatewayNetworkIpamConfigArgs\n            {\n                PushDefaultRoute = true,\n                IpamIpId = ip01.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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"pn_test_network\"),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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 := ipam.NewIp(ctx, \"ip01\", \u0026ipam.IpArgs{\n\t\t\tAddress: pulumi.String(\"172.16.64.7\"),\n\t\t\tSources: ipam.IpSourceArray{\n\t\t\t\t\u0026ipam.IpSourceArgs{\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\tpg01, err := network.NewPublicGateway(ctx, \"pg01\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        pg01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t\tIpamConfigs: network.GatewayNetworkIpamConfigArray{\n\t\t\t\t\u0026network.GatewayNetworkIpamConfigArgs{\n\t\t\t\t\tPushDefaultRoute: pulumi.Bool(true),\n\t\t\t\t\tIpamIpId:         ip01.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.ipam.Ip;\nimport com.pulumi.scaleway.ipam.IpArgs;\nimport com.pulumi.scaleway.ipam.inputs.IpSourceArgs;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.GatewayNetworkIpamConfigArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"pn_test_network\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.64.0/22\")\n                .build())\n            .vpcId(vpc01.id())\n            .build());\n\n        var ip01 = new Ip(\"ip01\", IpArgs.builder()\n            .address(\"172.16.64.7\")\n            .sources(IpSourceArgs.builder()\n                .privateNetworkId(pn01.id())\n                .build())\n            .build());\n\n        var pg01 = new PublicGateway(\"pg01\", PublicGatewayArgs.builder()\n            .name(\"foobar\")\n            .type(\"VPC-GW-S\")\n            .build());\n\n        var main = new GatewayNetwork(\"main\", GatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .enableMasquerade(true)\n            .ipamConfigs(GatewayNetworkIpamConfigArgs.builder()\n                .pushDefaultRoute(true)\n                .ipamIpId(ip01.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: pn_test_network\n      ipv4Subnet:\n        subnet: 172.16.64.0/22\n      vpcId: ${vpc01.id}\n  ip01:\n    type: scaleway:ipam:Ip\n    properties:\n      address: 172.16.64.7\n      sources:\n        - privateNetworkId: ${pn01.id}\n  pg01:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: foobar\n      type: VPC-GW-S\n  main:\n    type: scaleway:network:GatewayNetwork\n    properties:\n      gatewayId: ${pg01.id}\n      privateNetworkId: ${pn01.id}\n      enableMasquerade: true\n      ipamConfigs:\n        - pushDefaultRoute: true\n          ipamIpId: ${ip01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nGatewayNetwork can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:network/gatewayNetwork:GatewayNetwork main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"cleanupDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether to remove DHCP configuration on this GatewayNetwork upon destroy. Requires DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"createdAt":{"type":"string","description":"The date and time of the creation of the GatewayNetwork.\n"},"dhcpId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. The ID of the Public Gateway DHCP configuration. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether a DHCP configuration should be enabled on this GatewayNetwork. Requires a DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableMasquerade":{"type":"boolean","description":"Whether masquerade (dynamic NAT) should be enabled on this GatewayNetwork.\n"},"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n"},"ipamConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:network/GatewayNetworkIpamConfig:GatewayNetworkIpamConfig"},"description":"Auto-configure the GatewayNetwork using Scaleway's IPAM (IP address management service). Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n"},"macAddress":{"type":"string","description":"The MAC address of the GatewayNetwork.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:network/GatewayNetworkPrivateIp:GatewayNetworkPrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network.\n"},"staticAddress":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Enable DHCP configuration on this GatewayNetwork. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"status":{"type":"string","description":"The status of the Public Gateway's connection to the Private Network.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the GatewayNetwork.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the gateway network should be created.\n\n\u003e **Important:**\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP fields are now deprecated.\nFor more information, please refer to the dedicated guide.\n"}},"required":["cleanupDhcp","createdAt","gatewayId","ipamConfigs","macAddress","privateIps","privateNetworkId","staticAddress","status","updatedAt"],"inputProperties":{"cleanupDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether to remove DHCP configuration on this GatewayNetwork upon destroy. Requires DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"dhcpId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. The ID of the Public Gateway DHCP configuration. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether a DHCP configuration should be enabled on this GatewayNetwork. Requires a DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableMasquerade":{"type":"boolean","description":"Whether masquerade (dynamic NAT) should be enabled on this GatewayNetwork.\n"},"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n","willReplaceOnChanges":true},"ipamConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:network/GatewayNetworkIpamConfig:GatewayNetworkIpamConfig"},"description":"Auto-configure the GatewayNetwork using Scaleway's IPAM (IP address management service). Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:network/GatewayNetworkPrivateIp:GatewayNetworkPrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network.\n","willReplaceOnChanges":true},"staticAddress":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Enable DHCP configuration on this GatewayNetwork. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the gateway network should be created.\n\n\u003e **Important:**\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP fields are now deprecated.\nFor more information, please refer to the dedicated guide.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayId","privateNetworkId"],"stateInputs":{"description":"Input properties used for looking up and filtering GatewayNetwork resources.\n","properties":{"cleanupDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether to remove DHCP configuration on this GatewayNetwork upon destroy. Requires DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"createdAt":{"type":"string","description":"The date and time of the creation of the GatewayNetwork.\n"},"dhcpId":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. The ID of the Public Gateway DHCP configuration. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableDhcp":{"type":"boolean","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Whether a DHCP configuration should be enabled on this GatewayNetwork. Requires a DHCP ID.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"enableMasquerade":{"type":"boolean","description":"Whether masquerade (dynamic NAT) should be enabled on this GatewayNetwork.\n"},"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n","willReplaceOnChanges":true},"ipamConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:network/GatewayNetworkIpamConfig:GatewayNetworkIpamConfig"},"description":"Auto-configure the GatewayNetwork using Scaleway's IPAM (IP address management service). Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n"},"macAddress":{"type":"string","description":"The MAC address of the GatewayNetwork.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:network/GatewayNetworkPrivateIp:GatewayNetworkPrivateIp"},"description":"The private IPv4 address associated with the resource.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network.\n","willReplaceOnChanges":true},"staticAddress":{"type":"string","description":"Please use \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e. Enable DHCP configuration on this GatewayNetwork. Only one of \u003cspan pulumi-lang-nodejs=\"`dhcpId`\" pulumi-lang-dotnet=\"`DhcpId`\" pulumi-lang-go=\"`dhcpId`\" pulumi-lang-python=\"`dhcp_id`\" pulumi-lang-yaml=\"`dhcpId`\" pulumi-lang-java=\"`dhcpId`\"\u003e`dhcp_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`staticAddress`\" pulumi-lang-dotnet=\"`StaticAddress`\" pulumi-lang-go=\"`staticAddress`\" pulumi-lang-python=\"`static_address`\" pulumi-lang-yaml=\"`staticAddress`\" pulumi-lang-java=\"`staticAddress`\"\u003e`static_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipamConfig`\" pulumi-lang-dotnet=\"`IpamConfig`\" pulumi-lang-go=\"`ipamConfig`\" pulumi-lang-python=\"`ipam_config`\" pulumi-lang-yaml=\"`ipamConfig`\" pulumi-lang-java=\"`ipamConfig`\"\u003e`ipam_config`\u003c/span\u003e should be specified.\n","deprecationMessage":"Please use ipam_config. For more information, please refer to the dedicated guide: https://github.com/scaleway/terraform-provider-scaleway/blob/master/docs/guides/migration_guide_vpcgw_v2.md"},"status":{"type":"string","description":"The status of the Public Gateway's connection to the Private Network.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the GatewayNetwork.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the gateway network should be created.\n\n\u003e **Important:**\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP fields are now deprecated.\nFor more information, please refer to the dedicated guide.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/vpcGatewayNetwork:VpcGatewayNetwork"}]},"scaleway:network/privateNetwork:PrivateNetwork":{"description":"Creates and manages Scaleway VPC Private Networks.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/vpc/#private-networks-ac2df4).\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 pnPriv = new scaleway.network.PrivateNetwork(\"pn_priv\", {\n    name: \"subnet_demo\",\n    tags: [\n        \"demo\",\n        \"terraform\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn_priv = scaleway.network.PrivateNetwork(\"pn_priv\",\n    name=\"subnet_demo\",\n    tags=[\n        \"demo\",\n        \"terraform\",\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 pnPriv = new Scaleway.Network.PrivateNetwork(\"pn_priv\", new()\n    {\n        Name = \"subnet_demo\",\n        Tags = new[]\n        {\n            \"demo\",\n            \"terraform\",\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewPrivateNetwork(ctx, \"pn_priv\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"subnet_demo\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"demo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\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 pnPriv = new PrivateNetwork(\"pnPriv\", PrivateNetworkArgs.builder()\n            .name(\"subnet_demo\")\n            .tags(            \n                \"demo\",\n                \"terraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pnPriv:\n    type: scaleway:network:PrivateNetwork\n    name: pn_priv\n    properties:\n      name: subnet_demo\n      tags:\n        - demo\n        - terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With subnets\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst pnPriv = new scaleway.network.PrivateNetwork(\"pn_priv\", {\n    name: \"subnet_demo\",\n    tags: [\n        \"demo\",\n        \"terraform\",\n    ],\n    ipv4Subnet: {\n        subnet: \"192.168.0.0/24\",\n    },\n    ipv6Subnets: [\n        {\n            subnet: \"fd46:78ab:30b8:177c::/64\",\n        },\n        {\n            subnet: \"fd46:78ab:30b8:c7df::/64\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npn_priv = scaleway.network.PrivateNetwork(\"pn_priv\",\n    name=\"subnet_demo\",\n    tags=[\n        \"demo\",\n        \"terraform\",\n    ],\n    ipv4_subnet={\n        \"subnet\": \"192.168.0.0/24\",\n    },\n    ipv6_subnets=[\n        {\n            \"subnet\": \"fd46:78ab:30b8:177c::/64\",\n        },\n        {\n            \"subnet\": \"fd46:78ab:30b8:c7df::/64\",\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 pnPriv = new Scaleway.Network.PrivateNetwork(\"pn_priv\", new()\n    {\n        Name = \"subnet_demo\",\n        Tags = new[]\n        {\n            \"demo\",\n            \"terraform\",\n        },\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"192.168.0.0/24\",\n        },\n        Ipv6Subnets = new[]\n        {\n            new Scaleway.Network.Inputs.PrivateNetworkIpv6SubnetArgs\n            {\n                Subnet = \"fd46:78ab:30b8:177c::/64\",\n            },\n            new Scaleway.Network.Inputs.PrivateNetworkIpv6SubnetArgs\n            {\n                Subnet = \"fd46:78ab:30b8:c7df::/64\",\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewPrivateNetwork(ctx, \"pn_priv\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"subnet_demo\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"demo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\n\t\t\t},\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\n\t\t\t\tSubnet: pulumi.String(\"192.168.0.0/24\"),\n\t\t\t},\n\t\t\tIpv6Subnets: network.PrivateNetworkIpv6SubnetArray{\n\t\t\t\t\u0026network.PrivateNetworkIpv6SubnetArgs{\n\t\t\t\t\tSubnet: pulumi.String(\"fd46:78ab:30b8:177c::/64\"),\n\t\t\t\t},\n\t\t\t\t\u0026network.PrivateNetworkIpv6SubnetArgs{\n\t\t\t\t\tSubnet: pulumi.String(\"fd46:78ab:30b8:c7df::/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\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv6SubnetArgs;\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 pnPriv = new PrivateNetwork(\"pnPriv\", PrivateNetworkArgs.builder()\n            .name(\"subnet_demo\")\n            .tags(            \n                \"demo\",\n                \"terraform\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"192.168.0.0/24\")\n                .build())\n            .ipv6Subnets(            \n                PrivateNetworkIpv6SubnetArgs.builder()\n                    .subnet(\"fd46:78ab:30b8:177c::/64\")\n                    .build(),\n                PrivateNetworkIpv6SubnetArgs.builder()\n                    .subnet(\"fd46:78ab:30b8:c7df::/64\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  pnPriv:\n    type: scaleway:network:PrivateNetwork\n    name: pn_priv\n    properties:\n      name: subnet_demo\n      tags:\n        - demo\n        - terraform\n      ipv4Subnet:\n        subnet: 192.168.0.0/24\n      ipv6Subnets:\n        - subnet: fd46:78ab:30b8:177c::/64\n        - subnet: fd46:78ab:30b8:c7df::/64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPrivate Networks can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:network/privateNetwork:PrivateNetwork main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the subnet.\n"},"enableDefaultRoutePropagation":{"type":"boolean","description":"Defines whether default v4 and v6 routes are propagated for this Private Network.\n"},"ipv4Subnet":{"$ref":"#/types/scaleway:network/PrivateNetworkIpv4Subnet:PrivateNetworkIpv4Subnet","description":"The IPv4 subnet to associate with the Private Network.\n"},"ipv6Subnets":{"type":"array","items":{"$ref":"#/types/scaleway:network/PrivateNetworkIpv6Subnet:PrivateNetworkIpv6Subnet"},"description":"The IPv6 subnets to associate with the private network.\n"},"isRegional":{"type":"boolean","description":"Private Networks are now all necessarily regional.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version"},"name":{"type":"string","description":"The name of the Private Network. If not provided, it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the Private Network is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the private network is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Private Network.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Private Network.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet.\n"},"vpcId":{"type":"string","description":"The VPC in which to create the Private Network.\n"},"zone":{"type":"string","description":"Use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version, please use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead"}},"required":["createdAt","enableDefaultRoutePropagation","ipv4Subnet","ipv6Subnets","isRegional","name","organizationId","projectId","updatedAt","vpcId","zone"],"inputProperties":{"enableDefaultRoutePropagation":{"type":"boolean","description":"Defines whether default v4 and v6 routes are propagated for this Private Network.\n"},"ipv4Subnet":{"$ref":"#/types/scaleway:network/PrivateNetworkIpv4Subnet:PrivateNetworkIpv4Subnet","description":"The IPv4 subnet to associate with the Private Network.\n"},"ipv6Subnets":{"type":"array","items":{"$ref":"#/types/scaleway:network/PrivateNetworkIpv6Subnet:PrivateNetworkIpv6Subnet"},"description":"The IPv6 subnets to associate with the private network.\n"},"isRegional":{"type":"boolean","description":"Private Networks are now all necessarily regional.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version"},"name":{"type":"string","description":"The name of the Private Network. If not provided, it will be randomly generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the private network is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Private Network.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Private Network.\n"},"vpcId":{"type":"string","description":"The VPC in which to create the Private Network.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"Use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version, please use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead"}},"stateInputs":{"description":"Input properties used for looking up and filtering PrivateNetwork resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the subnet.\n"},"enableDefaultRoutePropagation":{"type":"boolean","description":"Defines whether default v4 and v6 routes are propagated for this Private Network.\n"},"ipv4Subnet":{"$ref":"#/types/scaleway:network/PrivateNetworkIpv4Subnet:PrivateNetworkIpv4Subnet","description":"The IPv4 subnet to associate with the Private Network.\n"},"ipv6Subnets":{"type":"array","items":{"$ref":"#/types/scaleway:network/PrivateNetworkIpv6Subnet:PrivateNetworkIpv6Subnet"},"description":"The IPv6 subnets to associate with the private network.\n"},"isRegional":{"type":"boolean","description":"Private Networks are now all necessarily regional.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version"},"name":{"type":"string","description":"The name of the Private Network. If not provided, it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the Private Network is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the private network is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the Private Network.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Private Network.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the subnet.\n"},"vpcId":{"type":"string","description":"The VPC in which to create the Private Network.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"Use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead.\n","deprecationMessage":"This field is deprecated and will be removed in the next major version, please use \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e instead"}},"type":"object"},"aliases":[{"type":"scaleway:index/vpcPrivateNetwork:VpcPrivateNetwork"}]},"scaleway:network/publicGateway:PublicGateway":{"description":"Creates and manages Scaleway Public Gateways.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway).\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.network.PublicGateway(\"main\", {\n    name: \"public_gateway_demo\",\n    type: \"VPC-GW-S\",\n    tags: [\n        \"demo\",\n        \"terraform\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGateway(\"main\",\n    name=\"public_gateway_demo\",\n    type=\"VPC-GW-S\",\n    tags=[\n        \"demo\",\n        \"terraform\",\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.Network.PublicGateway(\"main\", new()\n    {\n        Name = \"public_gateway_demo\",\n        Type = \"VPC-GW-S\",\n        Tags = new[]\n        {\n            \"demo\",\n            \"terraform\",\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewPublicGateway(ctx, \"main\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"public_gateway_demo\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"demo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\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.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\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 PublicGateway(\"main\", PublicGatewayArgs.builder()\n            .name(\"public_gateway_demo\")\n            .type(\"VPC-GW-S\")\n            .tags(            \n                \"demo\",\n                \"terraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: public_gateway_demo\n      type: VPC-GW-S\n      tags:\n        - demo\n        - terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateways can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:network/publicGateway:PublicGateway main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"allowedIpRanges":{"type":"array","items":{"type":"string"},"description":"Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.\n"},"bandwidth":{"type":"integer","description":"The bandwidth available of the gateway"},"bastionEnabled":{"type":"boolean","description":"Enable SSH bastion on the gateway.\n"},"bastionPort":{"type":"integer","description":"The port on which the SSH bastion will listen.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway.\n"},"enableSmtp":{"type":"boolean","description":"Enable SMTP on the gateway.\n"},"ipId":{"type":"string","description":"Attach an existing flexible IP to the gateway.\n"},"moveToIpam":{"type":"boolean","description":"Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2"},"name":{"type":"string","description":"The name for the Public Gateway. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the public gateway is associated with.\n"},"refreshSshKeys":{"type":"string","description":"Trigger a refresh of the SSH keys on the Public Gateway by changing this field's value.\n"},"status":{"type":"string","description":"The status of the public gateway.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the Public Gateway.\n"},"type":{"type":"string","description":"The gateway type.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway.\n"},"upstreamDnsServers":{"type":"array","items":{"type":"string"},"description":"Override the gateway's default recursive DNS servers, if DNS features are enabled.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway should be created.\n"}},"required":["allowedIpRanges","bandwidth","bastionPort","createdAt","enableSmtp","ipId","name","organizationId","projectId","status","type","updatedAt","upstreamDnsServers"],"inputProperties":{"allowedIpRanges":{"type":"array","items":{"type":"string"},"description":"Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.\n"},"bastionEnabled":{"type":"boolean","description":"Enable SSH bastion on the gateway.\n"},"bastionPort":{"type":"integer","description":"The port on which the SSH bastion will listen.\n"},"enableSmtp":{"type":"boolean","description":"Enable SMTP on the gateway.\n"},"ipId":{"type":"string","description":"Attach an existing flexible IP to the gateway.\n","willReplaceOnChanges":true},"moveToIpam":{"type":"boolean","description":"Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2"},"name":{"type":"string","description":"The name for the Public Gateway. If not provided it will be randomly generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the public gateway is associated with.\n","willReplaceOnChanges":true},"refreshSshKeys":{"type":"string","description":"Trigger a refresh of the SSH keys on the Public Gateway by changing this field's value.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the Public Gateway.\n"},"type":{"type":"string","description":"The gateway type.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering PublicGateway resources.\n","properties":{"allowedIpRanges":{"type":"array","items":{"type":"string"},"description":"Set a definitive list of IP ranges (in CIDR notation) allowed to connect to the SSH bastion.\n"},"bandwidth":{"type":"integer","description":"The bandwidth available of the gateway"},"bastionEnabled":{"type":"boolean","description":"Enable SSH bastion on the gateway.\n"},"bastionPort":{"type":"integer","description":"The port on which the SSH bastion will listen.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway.\n"},"enableSmtp":{"type":"boolean","description":"Enable SMTP on the gateway.\n"},"ipId":{"type":"string","description":"Attach an existing flexible IP to the gateway.\n","willReplaceOnChanges":true},"moveToIpam":{"type":"boolean","description":"Put a Public Gateway in IPAM mode, so that it can be used with the Public Gateways API v2"},"name":{"type":"string","description":"The name for the Public Gateway. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the public gateway is associated with.\n","willReplaceOnChanges":true},"refreshSshKeys":{"type":"string","description":"Trigger a refresh of the SSH keys on the Public Gateway by changing this field's value.\n"},"status":{"type":"string","description":"The status of the public gateway.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the Public Gateway.\n"},"type":{"type":"string","description":"The gateway type.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway.\n"},"upstreamDnsServers":{"type":"array","items":{"type":"string"},"description":"Override the gateway's default recursive DNS servers, if DNS features are enabled.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/vpcPublicGateway:VpcPublicGateway"}]},"scaleway:network/publicGatewayDhcp:PublicGatewayDhcp":{"description":"\u003e **Important:**  The resource \u003cspan pulumi-lang-nodejs=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-dotnet=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-go=\"`network.PublicGatewayDhcp`\" pulumi-lang-python=\"`network.PublicGatewayDhcp`\" pulumi-lang-yaml=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-java=\"`scaleway.network.PublicGatewayDhcp`\"\u003e`scaleway.network.PublicGatewayDhcp`\u003c/span\u003e has been deprecated and will no longer be supported.\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.\nFor more information, please refer to the dedicated guide.\n\nCreates and manages Scaleway VPC Public Gateway DHCP configurations.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-c05544).\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.network.PublicGatewayDhcp(\"main\", {subnet: \"192.168.1.0/24\"});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGatewayDhcp(\"main\", subnet=\"192.168.1.0/24\")\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.Network.PublicGatewayDhcp(\"main\", new()\n    {\n        Subnet = \"192.168.1.0/24\",\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewPublicGatewayDhcp(ctx, \"main\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.1.0/24\"),\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.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\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 PublicGatewayDhcp(\"main\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.1.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGatewayDhcp\n    properties:\n      subnet: 192.168.1.0/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateway DHCP configuration can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:network/publicGatewayDhcp:PublicGatewayDhcp main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"address":{"type":"string","description":"The IP address of the DHCP server. This will be the gateway's address in the Private Network.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway DHCP configuration.\n"},"dnsLocalName":{"type":"string","description":"TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to \u003cspan pulumi-lang-nodejs=\"`priv`\" pulumi-lang-dotnet=\"`Priv`\" pulumi-lang-go=\"`priv`\" pulumi-lang-python=\"`priv`\" pulumi-lang-yaml=\"`priv`\" pulumi-lang-java=\"`priv`\"\u003e`priv`\u003c/span\u003e.\n"},"dnsSearches":{"type":"array","items":{"type":"string"},"description":"Additional DNS search paths\n"},"dnsServersOverrides":{"type":"array","items":{"type":"string"},"description":"Override the DNS server list pushed to DHCP clients, instead of the gateway itself.\n"},"enableDynamic":{"type":"boolean","description":"Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway DHCP config is associated with.\n"},"poolHigh":{"type":"string","description":"High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.\n"},"poolLow":{"type":"string","description":"Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway DHCP configuration is associated with.\n"},"pushDefaultRoute":{"type":"boolean","description":"Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n\u003e **Warning**: If you need to setup a default route, it's recommended to use the \u003cspan pulumi-lang-nodejs=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-dotnet=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-go=\"`network.GatewayNetwork`\" pulumi-lang-python=\"`network.GatewayNetwork`\" pulumi-lang-yaml=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-java=\"`scaleway.network.GatewayNetwork`\"\u003e`scaleway.network.GatewayNetwork`\u003c/span\u003e resource instead.\n"},"pushDnsServer":{"type":"boolean","description":"Whether the gateway should push custom DNS servers to clients. This allows for instance hostname \u003e IP resolution. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"rebindTimer":{"type":"integer","description":"After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`validLifetime`\" pulumi-lang-dotnet=\"`ValidLifetime`\" pulumi-lang-go=\"`validLifetime`\" pulumi-lang-python=\"`valid_lifetime`\" pulumi-lang-yaml=\"`validLifetime`\" pulumi-lang-java=\"`validLifetime`\"\u003e`valid_lifetime`\u003c/span\u003e. Defaults to 51m (3060s).\n"},"renewTimer":{"type":"integer","description":"After how long, in seconds, a renewal will be attempted. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`rebindTimer`\" pulumi-lang-dotnet=\"`RebindTimer`\" pulumi-lang-go=\"`rebindTimer`\" pulumi-lang-python=\"`rebind_timer`\" pulumi-lang-yaml=\"`rebindTimer`\" pulumi-lang-java=\"`rebindTimer`\"\u003e`rebind_timer`\u003c/span\u003e. Defaults to 50m (3000s).\n"},"subnet":{"type":"string","description":"The subnet to associate with the Public Gateway DHCP configuration.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway DHCP configuration.\n"},"validLifetime":{"type":"integer","description":"How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n"}},"required":["address","createdAt","dnsLocalName","dnsSearches","dnsServersOverrides","enableDynamic","organizationId","poolHigh","poolLow","projectId","pushDefaultRoute","pushDnsServer","rebindTimer","renewTimer","subnet","updatedAt","validLifetime"],"inputProperties":{"address":{"type":"string","description":"The IP address of the DHCP server. This will be the gateway's address in the Private Network.\n"},"dnsLocalName":{"type":"string","description":"TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to \u003cspan pulumi-lang-nodejs=\"`priv`\" pulumi-lang-dotnet=\"`Priv`\" pulumi-lang-go=\"`priv`\" pulumi-lang-python=\"`priv`\" pulumi-lang-yaml=\"`priv`\" pulumi-lang-java=\"`priv`\"\u003e`priv`\u003c/span\u003e.\n"},"dnsSearches":{"type":"array","items":{"type":"string"},"description":"Additional DNS search paths\n"},"dnsServersOverrides":{"type":"array","items":{"type":"string"},"description":"Override the DNS server list pushed to DHCP clients, instead of the gateway itself.\n"},"enableDynamic":{"type":"boolean","description":"Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"poolHigh":{"type":"string","description":"High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.\n"},"poolLow":{"type":"string","description":"Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway DHCP configuration is associated with.\n","willReplaceOnChanges":true},"pushDefaultRoute":{"type":"boolean","description":"Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n\u003e **Warning**: If you need to setup a default route, it's recommended to use the \u003cspan pulumi-lang-nodejs=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-dotnet=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-go=\"`network.GatewayNetwork`\" pulumi-lang-python=\"`network.GatewayNetwork`\" pulumi-lang-yaml=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-java=\"`scaleway.network.GatewayNetwork`\"\u003e`scaleway.network.GatewayNetwork`\u003c/span\u003e resource instead.\n"},"pushDnsServer":{"type":"boolean","description":"Whether the gateway should push custom DNS servers to clients. This allows for instance hostname \u003e IP resolution. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"rebindTimer":{"type":"integer","description":"After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`validLifetime`\" pulumi-lang-dotnet=\"`ValidLifetime`\" pulumi-lang-go=\"`validLifetime`\" pulumi-lang-python=\"`valid_lifetime`\" pulumi-lang-yaml=\"`validLifetime`\" pulumi-lang-java=\"`validLifetime`\"\u003e`valid_lifetime`\u003c/span\u003e. Defaults to 51m (3060s).\n"},"renewTimer":{"type":"integer","description":"After how long, in seconds, a renewal will be attempted. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`rebindTimer`\" pulumi-lang-dotnet=\"`RebindTimer`\" pulumi-lang-go=\"`rebindTimer`\" pulumi-lang-python=\"`rebind_timer`\" pulumi-lang-yaml=\"`rebindTimer`\" pulumi-lang-java=\"`rebindTimer`\"\u003e`rebind_timer`\u003c/span\u003e. Defaults to 50m (3000s).\n"},"subnet":{"type":"string","description":"The subnet to associate with the Public Gateway DHCP configuration.\n"},"validLifetime":{"type":"integer","description":"How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["subnet"],"stateInputs":{"description":"Input properties used for looking up and filtering PublicGatewayDhcp resources.\n","properties":{"address":{"type":"string","description":"The IP address of the DHCP server. This will be the gateway's address in the Private Network.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway DHCP configuration.\n"},"dnsLocalName":{"type":"string","description":"TLD given to hostnames in the Private Network. Allowed characters are `a-z0-9-.`. Defaults to the slugified Private Network name if created along a GatewayNetwork, or else to \u003cspan pulumi-lang-nodejs=\"`priv`\" pulumi-lang-dotnet=\"`Priv`\" pulumi-lang-go=\"`priv`\" pulumi-lang-python=\"`priv`\" pulumi-lang-yaml=\"`priv`\" pulumi-lang-java=\"`priv`\"\u003e`priv`\u003c/span\u003e.\n"},"dnsSearches":{"type":"array","items":{"type":"string"},"description":"Additional DNS search paths\n"},"dnsServersOverrides":{"type":"array","items":{"type":"string"},"description":"Override the DNS server list pushed to DHCP clients, instead of the gateway itself.\n"},"enableDynamic":{"type":"boolean","description":"Whether to enable dynamic pooling of IPs. By turning the dynamic pool off, only pre-existing DHCP reservations will be handed out. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway DHCP config is associated with.\n"},"poolHigh":{"type":"string","description":"High IP (excluded) of the dynamic address pool. Defaults to the last address of the subnet.\n"},"poolLow":{"type":"string","description":"Low IP (included) of the dynamic address pool. Defaults to the second address of the subnet.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway DHCP configuration is associated with.\n","willReplaceOnChanges":true},"pushDefaultRoute":{"type":"boolean","description":"Whether the gateway should push a default route to DHCP clients or only hand out IPs. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n\u003e **Warning**: If you need to setup a default route, it's recommended to use the \u003cspan pulumi-lang-nodejs=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-dotnet=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-go=\"`network.GatewayNetwork`\" pulumi-lang-python=\"`network.GatewayNetwork`\" pulumi-lang-yaml=\"`scaleway.network.GatewayNetwork`\" pulumi-lang-java=\"`scaleway.network.GatewayNetwork`\"\u003e`scaleway.network.GatewayNetwork`\u003c/span\u003e resource instead.\n"},"pushDnsServer":{"type":"boolean","description":"Whether the gateway should push custom DNS servers to clients. This allows for instance hostname \u003e IP resolution. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"rebindTimer":{"type":"integer","description":"After how long, in seconds, a DHCP client will query for a new lease if previous renews fail. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`validLifetime`\" pulumi-lang-dotnet=\"`ValidLifetime`\" pulumi-lang-go=\"`validLifetime`\" pulumi-lang-python=\"`valid_lifetime`\" pulumi-lang-yaml=\"`validLifetime`\" pulumi-lang-java=\"`validLifetime`\"\u003e`valid_lifetime`\u003c/span\u003e. Defaults to 51m (3060s).\n"},"renewTimer":{"type":"integer","description":"After how long, in seconds, a renewal will be attempted. Must be 30s lower than \u003cspan pulumi-lang-nodejs=\"`rebindTimer`\" pulumi-lang-dotnet=\"`RebindTimer`\" pulumi-lang-go=\"`rebindTimer`\" pulumi-lang-python=\"`rebind_timer`\" pulumi-lang-yaml=\"`rebindTimer`\" pulumi-lang-java=\"`rebindTimer`\"\u003e`rebind_timer`\u003c/span\u003e. Defaults to 50m (3000s).\n"},"subnet":{"type":"string","description":"The subnet to associate with the Public Gateway DHCP configuration.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway DHCP configuration.\n"},"validLifetime":{"type":"integer","description":"How long, in seconds, DHCP entries will be valid. Defaults to 1h (3600s).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/vpcPublicGatewayDhcp:VpcPublicGatewayDhcp"}]},"scaleway:network/publicGatewayDhcpReservation:PublicGatewayDhcpReservation":{"description":"\u003e **Important:**  The resource \u003cspan pulumi-lang-nodejs=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-dotnet=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-go=\"`network.PublicGatewayDhcpReservation`\" pulumi-lang-python=\"`network.PublicGatewayDhcpReservation`\" pulumi-lang-yaml=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-java=\"`scaleway.network.PublicGatewayDhcpReservation`\"\u003e`scaleway.network.PublicGatewayDhcpReservation`\u003c/span\u003e has been deprecated and will no longer be supported.\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.\nYou can use IPAM to manage your IPs. For more information, please refer to the dedicated guide.\n\nCreates and manages [Scaleway DHCP Reservations](https://www.scaleway.com/en/docs/vpc/concepts/#dhcp).\n\nThese static associations are used to assign IP addresses based on the MAC addresses of the resource.\n\nStatically assigned IP addresses should fall within the configured subnet, but be outside of the dynamic range.\n\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-c05544).\n\n[DHCP reservations](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-entries-e40fb6) hold both dynamic DHCP leases (IP addresses dynamically assigned by the gateway to resources) and static user-created DHCP reservations.\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.network.PrivateNetwork(\"main\", {name: \"your_private_network\"});\nconst mainServer = new scaleway.instance.Server(\"main\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    zone: \"fr-par-1\",\n    privateNetworks: [{\n        pnId: main.id,\n    }],\n});\nconst mainPublicGatewayIp = new scaleway.network.PublicGatewayIp(\"main\", {});\nconst mainPublicGatewayDhcp = new scaleway.network.PublicGatewayDhcp(\"main\", {subnet: \"192.168.1.0/24\"});\nconst mainPublicGateway = new scaleway.network.PublicGateway(\"main\", {\n    name: \"foobar\",\n    type: \"VPC-GW-S\",\n    ipId: mainPublicGatewayIp.id,\n});\nconst mainGatewayNetwork = new scaleway.network.GatewayNetwork(\"main\", {\n    gatewayId: mainPublicGateway.id,\n    privateNetworkId: main.id,\n    dhcpId: mainPublicGatewayDhcp.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n}, {\n    dependsOn: [\n        mainPublicGatewayIp,\n        main,\n    ],\n});\nconst mainPublicGatewayDhcpReservation = new scaleway.network.PublicGatewayDhcpReservation(\"main\", {\n    gatewayNetworkId: mainGatewayNetwork.id,\n    macAddress: mainServer.privateNetworks.apply(privateNetworks =\u003e privateNetworks?.[0]?.macAddress),\n    ipAddress: \"192.168.1.1\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PrivateNetwork(\"main\", name=\"your_private_network\")\nmain_server = scaleway.instance.Server(\"main\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    zone=\"fr-par-1\",\n    private_networks=[{\n        \"pn_id\": main.id,\n    }])\nmain_public_gateway_ip = scaleway.network.PublicGatewayIp(\"main\")\nmain_public_gateway_dhcp = scaleway.network.PublicGatewayDhcp(\"main\", subnet=\"192.168.1.0/24\")\nmain_public_gateway = scaleway.network.PublicGateway(\"main\",\n    name=\"foobar\",\n    type=\"VPC-GW-S\",\n    ip_id=main_public_gateway_ip.id)\nmain_gateway_network = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=main_public_gateway.id,\n    private_network_id=main.id,\n    dhcp_id=main_public_gateway_dhcp.id,\n    cleanup_dhcp=True,\n    enable_masquerade=True,\n    opts = pulumi.ResourceOptions(depends_on=[\n            main_public_gateway_ip,\n            main,\n        ]))\nmain_public_gateway_dhcp_reservation = scaleway.network.PublicGatewayDhcpReservation(\"main\",\n    gateway_network_id=main_gateway_network.id,\n    mac_address=main_server.private_networks[0].mac_address,\n    ip_address=\"192.168.1.1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Network.PrivateNetwork(\"main\", new()\n    {\n        Name = \"your_private_network\",\n    });\n\n    var mainServer = new Scaleway.Instance.Server(\"main\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        Zone = \"fr-par-1\",\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Instance.Inputs.ServerPrivateNetworkArgs\n            {\n                PnId = main.Id,\n            },\n        },\n    });\n\n    var mainPublicGatewayIp = new Scaleway.Network.PublicGatewayIp(\"main\");\n\n    var mainPublicGatewayDhcp = new Scaleway.Network.PublicGatewayDhcp(\"main\", new()\n    {\n        Subnet = \"192.168.1.0/24\",\n    });\n\n    var mainPublicGateway = new Scaleway.Network.PublicGateway(\"main\", new()\n    {\n        Name = \"foobar\",\n        Type = \"VPC-GW-S\",\n        IpId = mainPublicGatewayIp.Id,\n    });\n\n    var mainGatewayNetwork = new Scaleway.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = mainPublicGateway.Id,\n        PrivateNetworkId = main.Id,\n        DhcpId = mainPublicGatewayDhcp.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            mainPublicGatewayIp,\n            main,\n        },\n    });\n\n    var mainPublicGatewayDhcpReservation = new Scaleway.Network.PublicGatewayDhcpReservation(\"main\", new()\n    {\n        GatewayNetworkId = mainGatewayNetwork.Id,\n        MacAddress = mainServer.PrivateNetworks.Apply(privateNetworks =\u003e privateNetworks[0]?.MacAddress),\n        IpAddress = \"192.168.1.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPrivateNetwork(ctx, \"main\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"your_private_network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainServer, err := instance.NewServer(ctx, \"main\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tZone:  pulumi.String(\"fr-par-1\"),\n\t\t\tPrivateNetworks: instance.ServerPrivateNetworkArray{\n\t\t\t\t\u0026instance.ServerPrivateNetworkArgs{\n\t\t\t\t\tPnId: main.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\tmainPublicGatewayIp, err := network.NewPublicGatewayIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayDhcp, err := network.NewPublicGatewayDhcp(ctx, \"main\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGateway, err := network.NewPublicGateway(ctx, \"main\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: mainPublicGatewayIp.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainGatewayNetwork, err := network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        mainPublicGateway.ID(),\n\t\t\tPrivateNetworkId: main.ID(),\n\t\t\tDhcpId:           mainPublicGatewayDhcp.ID(),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmainPublicGatewayIp,\n\t\t\tmain,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewPublicGatewayDhcpReservation(ctx, \"main\", \u0026network.PublicGatewayDhcpReservationArgs{\n\t\t\tGatewayNetworkId: mainGatewayNetwork.ID(),\n\t\t\tMacAddress: pulumi.String(mainServer.PrivateNetworks.ApplyT(func(privateNetworks []instance.ServerPrivateNetwork) (*string, error) {\n\t\t\t\treturn \u0026privateNetworks[0].MacAddress, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tIpAddress: pulumi.String(\"192.168.1.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.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.inputs.ServerPrivateNetworkArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservation;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var main = new PrivateNetwork(\"main\", PrivateNetworkArgs.builder()\n            .name(\"your_private_network\")\n            .build());\n\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .zone(\"fr-par-1\")\n            .privateNetworks(ServerPrivateNetworkArgs.builder()\n                .pnId(main.id())\n                .build())\n            .build());\n\n        var mainPublicGatewayIp = new PublicGatewayIp(\"mainPublicGatewayIp\");\n\n        var mainPublicGatewayDhcp = new PublicGatewayDhcp(\"mainPublicGatewayDhcp\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.1.0/24\")\n            .build());\n\n        var mainPublicGateway = new PublicGateway(\"mainPublicGateway\", PublicGatewayArgs.builder()\n            .name(\"foobar\")\n            .type(\"VPC-GW-S\")\n            .ipId(mainPublicGatewayIp.id())\n            .build());\n\n        var mainGatewayNetwork = new GatewayNetwork(\"mainGatewayNetwork\", GatewayNetworkArgs.builder()\n            .gatewayId(mainPublicGateway.id())\n            .privateNetworkId(main.id())\n            .dhcpId(mainPublicGatewayDhcp.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    mainPublicGatewayIp,\n                    main)\n                .build());\n\n        var mainPublicGatewayDhcpReservation = new PublicGatewayDhcpReservation(\"mainPublicGatewayDhcpReservation\", PublicGatewayDhcpReservationArgs.builder()\n            .gatewayNetworkId(mainGatewayNetwork.id())\n            .macAddress(mainServer.privateNetworks().applyValue(_privateNetworks -\u003e _privateNetworks[0].macAddress()))\n            .ipAddress(\"192.168.1.1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: your_private_network\n  mainServer:\n    type: scaleway:instance:Server\n    name: main\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      zone: fr-par-1\n      privateNetworks:\n        - pnId: ${main.id}\n  mainPublicGatewayIp:\n    type: scaleway:network:PublicGatewayIp\n    name: main\n  mainPublicGatewayDhcp:\n    type: scaleway:network:PublicGatewayDhcp\n    name: main\n    properties:\n      subnet: 192.168.1.0/24\n  mainPublicGateway:\n    type: scaleway:network:PublicGateway\n    name: main\n    properties:\n      name: foobar\n      type: VPC-GW-S\n      ipId: ${mainPublicGatewayIp.id}\n  mainGatewayNetwork:\n    type: scaleway:network:GatewayNetwork\n    name: main\n    properties:\n      gatewayId: ${mainPublicGateway.id}\n      privateNetworkId: ${main.id}\n      dhcpId: ${mainPublicGatewayDhcp.id}\n      cleanupDhcp: true\n      enableMasquerade: true\n    options:\n      dependsOn:\n        - ${mainPublicGatewayIp}\n        - ${main}\n  mainPublicGatewayDhcpReservation:\n    type: scaleway:network:PublicGatewayDhcpReservation\n    name: main\n    properties:\n      gatewayNetworkId: ${mainGatewayNetwork.id}\n      macAddress: ${mainServer.privateNetworks[0].macAddress}\n      ipAddress: 192.168.1.1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateway DHCP reservation configurations can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:network/publicGatewayDhcpReservation:PublicGatewayDhcpReservation 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 Public Gateway DHCP configuration.\n"},"gatewayNetworkId":{"type":"string","description":"The ID of the owning GatewayNetwork.\n"},"hostname":{"type":"string","description":"The hostname of the client machine.\n"},"ipAddress":{"type":"string","description":"The IP address to give to the machine.\n"},"macAddress":{"type":"string","description":"The MAC address for the static entry.\n"},"type":{"type":"string","description":"The reservation type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are \u003cspan pulumi-lang-nodejs=\"`reservation`\" pulumi-lang-dotnet=\"`Reservation`\" pulumi-lang-go=\"`reservation`\" pulumi-lang-python=\"`reservation`\" pulumi-lang-yaml=\"`reservation`\" pulumi-lang-java=\"`reservation`\"\u003e`reservation`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`lease`\" pulumi-lang-dotnet=\"`Lease`\" pulumi-lang-go=\"`lease`\" pulumi-lang-python=\"`lease`\" pulumi-lang-yaml=\"`lease`\" pulumi-lang-java=\"`lease`\"\u003e`lease`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway DHCP configuration.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the public gateway DHCP config should be created.\n"}},"required":["createdAt","gatewayNetworkId","hostname","ipAddress","macAddress","type","updatedAt"],"inputProperties":{"gatewayNetworkId":{"type":"string","description":"The ID of the owning GatewayNetwork.\n"},"ipAddress":{"type":"string","description":"The IP address to give to the machine.\n"},"macAddress":{"type":"string","description":"The MAC address for the static entry.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the public gateway DHCP config should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayNetworkId","ipAddress","macAddress"],"stateInputs":{"description":"Input properties used for looking up and filtering PublicGatewayDhcpReservation resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway DHCP configuration.\n"},"gatewayNetworkId":{"type":"string","description":"The ID of the owning GatewayNetwork.\n"},"hostname":{"type":"string","description":"The hostname of the client machine.\n"},"ipAddress":{"type":"string","description":"The IP address to give to the machine.\n"},"macAddress":{"type":"string","description":"The MAC address for the static entry.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The reservation type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are \u003cspan pulumi-lang-nodejs=\"`reservation`\" pulumi-lang-dotnet=\"`Reservation`\" pulumi-lang-go=\"`reservation`\" pulumi-lang-python=\"`reservation`\" pulumi-lang-yaml=\"`reservation`\" pulumi-lang-java=\"`reservation`\"\u003e`reservation`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`lease`\" pulumi-lang-dotnet=\"`Lease`\" pulumi-lang-go=\"`lease`\" pulumi-lang-python=\"`lease`\" pulumi-lang-yaml=\"`lease`\" pulumi-lang-java=\"`lease`\"\u003e`lease`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway DHCP configuration.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the public gateway DHCP config should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/vpcPublicGatewayDhcpReservation:VpcPublicGatewayDhcpReservation"}]},"scaleway:network/publicGatewayIp:PublicGatewayIp":{"description":"Creates and manages Scaleway VPC Public Gateway public (flexible) IP addresses.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-ips-list-ips).\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.network.PublicGatewayIp(\"main\", {reverse: \"tf.example.com\"});\nconst tfA = new scaleway.domain.Record(\"tf_A\", {\n    dnsZone: \"example.com\",\n    name: \"tf\",\n    type: \"A\",\n    data: main.address,\n    ttl: 3600,\n    priority: 1,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGatewayIp(\"main\", reverse=\"tf.example.com\")\ntf_a = scaleway.domain.Record(\"tf_A\",\n    dns_zone=\"example.com\",\n    name=\"tf\",\n    type=\"A\",\n    data=main.address,\n    ttl=3600,\n    priority=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Network.PublicGatewayIp(\"main\", new()\n    {\n        Reverse = \"tf.example.com\",\n    });\n\n    var tfA = new Scaleway.Domain.Record(\"tf_A\", new()\n    {\n        DnsZone = \"example.com\",\n        Name = \"tf\",\n        Type = \"A\",\n        Data = main.Address,\n        Ttl = 3600,\n        Priority = 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/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPublicGatewayIp(ctx, \"main\", \u0026network.PublicGatewayIpArgs{\n\t\t\tReverse: pulumi.String(\"tf.example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"tf_A\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"example.com\"),\n\t\t\tName:     pulumi.String(\"tf\"),\n\t\t\tType:     pulumi.String(\"A\"),\n\t\t\tData:     main.Address,\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: 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.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGatewayIpArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\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 PublicGatewayIp(\"main\", PublicGatewayIpArgs.builder()\n            .reverse(\"tf.example.com\")\n            .build());\n\n        var tfA = new Record(\"tfA\", RecordArgs.builder()\n            .dnsZone(\"example.com\")\n            .name(\"tf\")\n            .type(\"A\")\n            .data(main.address())\n            .ttl(3600)\n            .priority(1)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  tfA:\n    type: scaleway:domain:Record\n    name: tf_A\n    properties:\n      dnsZone: example.com\n      name: tf\n      type: A\n      data: ${main.address}\n      ttl: 3600\n      priority: 1\n  main:\n    type: scaleway:network:PublicGatewayIp\n    properties:\n      reverse: tf.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateway IPs can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:network/publicGatewayIp:PublicGatewayIp main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"address":{"type":"string","description":"The IP address itself.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway IP.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway IP is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway IP is associated with.\n"},"reverse":{"type":"string","description":"The reverse domain name for the IP address\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Public Gateway IP.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway IP should be created.\n"}},"required":["address","createdAt","organizationId","projectId","reverse","updatedAt"],"inputProperties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse domain name for the IP address\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Public Gateway IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway IP should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering PublicGatewayIp resources.\n","properties":{"address":{"type":"string","description":"The IP address itself.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the Public Gateway IP.\n"},"organizationId":{"type":"string","description":"The Organization ID the Public Gateway IP is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Public Gateway IP is associated with.\n","willReplaceOnChanges":true},"reverse":{"type":"string","description":"The reverse domain name for the IP address\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Public Gateway IP.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Public Gateway IP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway IP should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/vpcPublicGatewayIp:VpcPublicGatewayIp"}]},"scaleway:network/publicGatewayIpReverseDns:PublicGatewayIpReverseDns":{"description":"Manages Scaleway Public Gateway public (flexible) IPs' reverse DNS.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-ips-list-ips).\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.network.PublicGatewayIp(\"main\", {});\nconst tfA = new scaleway.domain.Record(\"tf_A\", {\n    dnsZone: \"example.com\",\n    name: \"tf\",\n    type: \"A\",\n    data: main.address,\n    ttl: 3600,\n    priority: 1,\n});\nconst mainPublicGatewayIpReverseDns = new scaleway.network.PublicGatewayIpReverseDns(\"main\", {\n    gatewayIpId: main.id,\n    reverse: \"tf.example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGatewayIp(\"main\")\ntf_a = scaleway.domain.Record(\"tf_A\",\n    dns_zone=\"example.com\",\n    name=\"tf\",\n    type=\"A\",\n    data=main.address,\n    ttl=3600,\n    priority=1)\nmain_public_gateway_ip_reverse_dns = scaleway.network.PublicGatewayIpReverseDns(\"main\",\n    gateway_ip_id=main.id,\n    reverse=\"tf.example.com\")\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.Network.PublicGatewayIp(\"main\");\n\n    var tfA = new Scaleway.Domain.Record(\"tf_A\", new()\n    {\n        DnsZone = \"example.com\",\n        Name = \"tf\",\n        Type = \"A\",\n        Data = main.Address,\n        Ttl = 3600,\n        Priority = 1,\n    });\n\n    var mainPublicGatewayIpReverseDns = new Scaleway.Network.PublicGatewayIpReverseDns(\"main\", new()\n    {\n        GatewayIpId = main.Id,\n        Reverse = \"tf.example.com\",\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/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPublicGatewayIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"tf_A\", \u0026domain.RecordArgs{\n\t\t\tDnsZone:  pulumi.String(\"example.com\"),\n\t\t\tName:     pulumi.String(\"tf\"),\n\t\t\tType:     pulumi.String(\"A\"),\n\t\t\tData:     main.Address,\n\t\t\tTtl:      pulumi.Int(3600),\n\t\t\tPriority: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewPublicGatewayIpReverseDns(ctx, \"main\", \u0026network.PublicGatewayIpReverseDnsArgs{\n\t\t\tGatewayIpId: main.ID(),\n\t\t\tReverse:     pulumi.String(\"tf.example.com\"),\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.network.PublicGatewayIp;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIpReverseDns;\nimport com.pulumi.scaleway.network.PublicGatewayIpReverseDnsArgs;\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 PublicGatewayIp(\"main\");\n\n        var tfA = new Record(\"tfA\", RecordArgs.builder()\n            .dnsZone(\"example.com\")\n            .name(\"tf\")\n            .type(\"A\")\n            .data(main.address())\n            .ttl(3600)\n            .priority(1)\n            .build());\n\n        var mainPublicGatewayIpReverseDns = new PublicGatewayIpReverseDns(\"mainPublicGatewayIpReverseDns\", PublicGatewayIpReverseDnsArgs.builder()\n            .gatewayIpId(main.id())\n            .reverse(\"tf.example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGatewayIp\n  tfA:\n    type: scaleway:domain:Record\n    name: tf_A\n    properties:\n      dnsZone: example.com\n      name: tf\n      type: A\n      data: ${main.address}\n      ttl: 3600\n      priority: 1\n  mainPublicGatewayIpReverseDns:\n    type: scaleway:network:PublicGatewayIpReverseDns\n    name: main\n    properties:\n      gatewayIpId: ${main.id}\n      reverse: tf.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateway IP reverse DNS can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:network/publicGatewayIpReverseDns:PublicGatewayIpReverseDns reverse fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"gatewayIpId":{"type":"string","description":"The Public Gateway IP ID\n"},"reverse":{"type":"string","description":"The reverse domain name for this IP address\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n"}},"required":["gatewayIpId","reverse"],"inputProperties":{"gatewayIpId":{"type":"string","description":"The Public Gateway IP ID\n"},"reverse":{"type":"string","description":"The reverse domain name for this IP address\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayIpId","reverse"],"stateInputs":{"description":"Input properties used for looking up and filtering PublicGatewayIpReverseDns resources.\n","properties":{"gatewayIpId":{"type":"string","description":"The Public Gateway IP ID\n"},"reverse":{"type":"string","description":"The reverse domain name for this IP address\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/vpcPublicGatewayIpReverseDns:VpcPublicGatewayIpReverseDns"}]},"scaleway:network/publicGatewayPatRule:PublicGatewayPatRule":{"description":"Creates and manages Scaleway Public Gateway PAT (Port Address Translation).\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#pat-rules-e75d10).\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 sg01 = new scaleway.instance.SecurityGroup(\"sg01\", {\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n    inboundRules: [{\n        action: \"accept\",\n        port: 22,\n        protocol: \"TCP\",\n    }],\n});\nconst srv01 = new scaleway.instance.Server(\"srv01\", {\n    name: \"my-server\",\n    type: \"PLAY2-NANO\",\n    image: \"ubuntu_jammy\",\n    securityGroupId: sg01.id,\n});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {name: \"my-pn\"});\nconst pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    serverId: srv01.id,\n    privateNetworkId: pn01.id,\n});\nconst dhcp01 = new scaleway.network.PublicGatewayDhcp(\"dhcp01\", {subnet: \"192.168.0.0/24\"});\nconst ip01 = new scaleway.network.PublicGatewayIp(\"ip01\", {});\nconst pg01 = new scaleway.network.PublicGateway(\"pg01\", {\n    name: \"my-pg\",\n    type: \"VPC-GW-S\",\n    ipId: ip01.id,\n});\nconst gn01 = new scaleway.network.GatewayNetwork(\"gn01\", {\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n    dhcpId: dhcp01.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n});\nconst rsv01 = new scaleway.network.PublicGatewayDhcpReservation(\"rsv01\", {\n    gatewayNetworkId: gn01.id,\n    macAddress: pnic01.macAddress,\n    ipAddress: \"192.168.0.7\",\n});\n// PAT rule for SSH traffic\nconst pat01 = new scaleway.network.PublicGatewayPatRule(\"pat01\", {\n    gatewayId: pg01.id,\n    privateIp: rsv01.ipAddress,\n    privatePort: 22,\n    publicPort: 2202,\n    protocol: \"tcp\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsg01 = scaleway.instance.SecurityGroup(\"sg01\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\",\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"port\": 22,\n        \"protocol\": \"TCP\",\n    }])\nsrv01 = scaleway.instance.Server(\"srv01\",\n    name=\"my-server\",\n    type=\"PLAY2-NANO\",\n    image=\"ubuntu_jammy\",\n    security_group_id=sg01.id)\npn01 = scaleway.network.PrivateNetwork(\"pn01\", name=\"my-pn\")\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    server_id=srv01.id,\n    private_network_id=pn01.id)\ndhcp01 = scaleway.network.PublicGatewayDhcp(\"dhcp01\", subnet=\"192.168.0.0/24\")\nip01 = scaleway.network.PublicGatewayIp(\"ip01\")\npg01 = scaleway.network.PublicGateway(\"pg01\",\n    name=\"my-pg\",\n    type=\"VPC-GW-S\",\n    ip_id=ip01.id)\ngn01 = scaleway.network.GatewayNetwork(\"gn01\",\n    gateway_id=pg01.id,\n    private_network_id=pn01.id,\n    dhcp_id=dhcp01.id,\n    cleanup_dhcp=True,\n    enable_masquerade=True)\nrsv01 = scaleway.network.PublicGatewayDhcpReservation(\"rsv01\",\n    gateway_network_id=gn01.id,\n    mac_address=pnic01.mac_address,\n    ip_address=\"192.168.0.7\")\n# PAT rule for SSH traffic\npat01 = scaleway.network.PublicGatewayPatRule(\"pat01\",\n    gateway_id=pg01.id,\n    private_ip=rsv01.ip_address,\n    private_port=22,\n    public_port=2202,\n    protocol=\"tcp\")\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 sg01 = new Scaleway.Instance.SecurityGroup(\"sg01\", new()\n    {\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n        InboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 22,\n                Protocol = \"TCP\",\n            },\n        },\n    });\n\n    var srv01 = new Scaleway.Instance.Server(\"srv01\", new()\n    {\n        Name = \"my-server\",\n        Type = \"PLAY2-NANO\",\n        Image = \"ubuntu_jammy\",\n        SecurityGroupId = sg01.Id,\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"my-pn\",\n    });\n\n    var pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        ServerId = srv01.Id,\n        PrivateNetworkId = pn01.Id,\n    });\n\n    var dhcp01 = new Scaleway.Network.PublicGatewayDhcp(\"dhcp01\", new()\n    {\n        Subnet = \"192.168.0.0/24\",\n    });\n\n    var ip01 = new Scaleway.Network.PublicGatewayIp(\"ip01\");\n\n    var pg01 = new Scaleway.Network.PublicGateway(\"pg01\", new()\n    {\n        Name = \"my-pg\",\n        Type = \"VPC-GW-S\",\n        IpId = ip01.Id,\n    });\n\n    var gn01 = new Scaleway.Network.GatewayNetwork(\"gn01\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.Id,\n        DhcpId = dhcp01.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    });\n\n    var rsv01 = new Scaleway.Network.PublicGatewayDhcpReservation(\"rsv01\", new()\n    {\n        GatewayNetworkId = gn01.Id,\n        MacAddress = pnic01.MacAddress,\n        IpAddress = \"192.168.0.7\",\n    });\n\n    // PAT rule for SSH traffic\n    var pat01 = new Scaleway.Network.PublicGatewayPatRule(\"pat01\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateIp = rsv01.IpAddress,\n        PrivatePort = 22,\n        PublicPort = 2202,\n        Protocol = \"tcp\",\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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsg01, err := instance.NewSecurityGroup(ctx, \"sg01\", \u0026instance.SecurityGroupArgs{\n\t\t\tInboundDefaultPolicy:  pulumi.String(\"drop\"),\n\t\t\tOutboundDefaultPolicy: pulumi.String(\"accept\"),\n\t\t\tInboundRules: instance.SecurityGroupInboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction:   pulumi.String(\"accept\"),\n\t\t\t\t\tPort:     pulumi.Int(22),\n\t\t\t\t\tProtocol: pulumi.String(\"TCP\"),\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\tsrv01, err := instance.NewServer(ctx, \"srv01\", \u0026instance.ServerArgs{\n\t\t\tName:            pulumi.String(\"my-server\"),\n\t\t\tType:            pulumi.String(\"PLAY2-NANO\"),\n\t\t\tImage:           pulumi.String(\"ubuntu_jammy\"),\n\t\t\tSecurityGroupId: sg01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"my-pn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpnic01, err := instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         srv01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdhcp01, err := network.NewPublicGatewayDhcp(ctx, \"dhcp01\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tip01, err := network.NewPublicGatewayIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpg01, err := network.NewPublicGateway(ctx, \"pg01\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"my-pg\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: ip01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgn01, err := network.NewGatewayNetwork(ctx, \"gn01\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        pg01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tDhcpId:           dhcp01.ID(),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trsv01, err := network.NewPublicGatewayDhcpReservation(ctx, \"rsv01\", \u0026network.PublicGatewayDhcpReservationArgs{\n\t\t\tGatewayNetworkId: gn01.ID(),\n\t\t\tMacAddress:       pnic01.MacAddress,\n\t\t\tIpAddress:        pulumi.String(\"192.168.0.7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// PAT rule for SSH traffic\n\t\t_, err = network.NewPublicGatewayPatRule(ctx, \"pat01\", \u0026network.PublicGatewayPatRuleArgs{\n\t\t\tGatewayId:   pg01.ID(),\n\t\t\tPrivateIp:   rsv01.IpAddress,\n\t\t\tPrivatePort: pulumi.Int(22),\n\t\t\tPublicPort:  pulumi.Int(2202),\n\t\t\tProtocol:    pulumi.String(\"tcp\"),\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.instance.SecurityGroup;\nimport com.pulumi.scaleway.instance.SecurityGroupArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupInboundRuleArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservation;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservationArgs;\nimport com.pulumi.scaleway.network.PublicGatewayPatRule;\nimport com.pulumi.scaleway.network.PublicGatewayPatRuleArgs;\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 sg01 = new SecurityGroup(\"sg01\", SecurityGroupArgs.builder()\n            .inboundDefaultPolicy(\"drop\")\n            .outboundDefaultPolicy(\"accept\")\n            .inboundRules(SecurityGroupInboundRuleArgs.builder()\n                .action(\"accept\")\n                .port(22)\n                .protocol(\"TCP\")\n                .build())\n            .build());\n\n        var srv01 = new Server(\"srv01\", ServerArgs.builder()\n            .name(\"my-server\")\n            .type(\"PLAY2-NANO\")\n            .image(\"ubuntu_jammy\")\n            .securityGroupId(sg01.id())\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"my-pn\")\n            .build());\n\n        var pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .serverId(srv01.id())\n            .privateNetworkId(pn01.id())\n            .build());\n\n        var dhcp01 = new PublicGatewayDhcp(\"dhcp01\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.0.0/24\")\n            .build());\n\n        var ip01 = new PublicGatewayIp(\"ip01\");\n\n        var pg01 = new PublicGateway(\"pg01\", PublicGatewayArgs.builder()\n            .name(\"my-pg\")\n            .type(\"VPC-GW-S\")\n            .ipId(ip01.id())\n            .build());\n\n        var gn01 = new GatewayNetwork(\"gn01\", GatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .dhcpId(dhcp01.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build());\n\n        var rsv01 = new PublicGatewayDhcpReservation(\"rsv01\", PublicGatewayDhcpReservationArgs.builder()\n            .gatewayNetworkId(gn01.id())\n            .macAddress(pnic01.macAddress())\n            .ipAddress(\"192.168.0.7\")\n            .build());\n\n        // PAT rule for SSH traffic\n        var pat01 = new PublicGatewayPatRule(\"pat01\", PublicGatewayPatRuleArgs.builder()\n            .gatewayId(pg01.id())\n            .privateIp(rsv01.ipAddress())\n            .privatePort(22)\n            .publicPort(2202)\n            .protocol(\"tcp\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sg01:\n    type: scaleway:instance:SecurityGroup\n    properties:\n      inboundDefaultPolicy: drop\n      outboundDefaultPolicy: accept\n      inboundRules:\n        - action: accept\n          port: 22\n          protocol: TCP\n  srv01:\n    type: scaleway:instance:Server\n    properties:\n      name: my-server\n      type: PLAY2-NANO\n      image: ubuntu_jammy\n      securityGroupId: ${sg01.id}\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      serverId: ${srv01.id}\n      privateNetworkId: ${pn01.id}\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: my-pn\n  dhcp01:\n    type: scaleway:network:PublicGatewayDhcp\n    properties:\n      subnet: 192.168.0.0/24\n  ip01:\n    type: scaleway:network:PublicGatewayIp\n  pg01:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: my-pg\n      type: VPC-GW-S\n      ipId: ${ip01.id}\n  gn01:\n    type: scaleway:network:GatewayNetwork\n    properties:\n      gatewayId: ${pg01.id}\n      privateNetworkId: ${pn01.id}\n      dhcpId: ${dhcp01.id}\n      cleanupDhcp: true\n      enableMasquerade: true\n  rsv01:\n    type: scaleway:network:PublicGatewayDhcpReservation\n    properties:\n      gatewayNetworkId: ${gn01.id}\n      macAddress: ${pnic01.macAddress}\n      ipAddress: 192.168.0.7\n  # PAT rule for SSH traffic\n  pat01:\n    type: scaleway:network:PublicGatewayPatRule\n    properties:\n      gatewayId: ${pg01.id}\n      privateIp: ${rsv01.ipAddress}\n      privatePort: 22\n      publicPort: 2202\n      protocol: tcp\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPublic Gateway PAT rule configurations can be imported using `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:network/publicGatewayPatRule:PublicGatewayPatRule 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 PAT rule configuration.\n"},"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n"},"organizationId":{"type":"string","description":"The Organization ID the PAT rule configuration is associated with.\n"},"privateIp":{"type":"string","description":"The private IP address to forward data to.\n"},"privatePort":{"type":"integer","description":"The private port to translate to.\n"},"protocol":{"type":"string","description":"The protocol the rule should apply to. Possible values are \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"},"publicPort":{"type":"integer","description":"The public port to listen on.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the PAT rule configuration.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n"}},"required":["createdAt","gatewayId","organizationId","privateIp","privatePort","publicPort","updatedAt"],"inputProperties":{"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n"},"privateIp":{"type":"string","description":"The private IP address to forward data to.\n"},"privatePort":{"type":"integer","description":"The private port to translate to.\n"},"protocol":{"type":"string","description":"The protocol the rule should apply to. Possible values are \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"},"publicPort":{"type":"integer","description":"The public port to listen on.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayId","privateIp","privatePort","publicPort"],"stateInputs":{"description":"Input properties used for looking up and filtering PublicGatewayPatRule resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the PAT rule configuration.\n"},"gatewayId":{"type":"string","description":"The ID of the Public Gateway.\n"},"organizationId":{"type":"string","description":"The Organization ID the PAT rule configuration is associated with.\n"},"privateIp":{"type":"string","description":"The private IP address to forward data to.\n"},"privatePort":{"type":"integer","description":"The private port to translate to.\n"},"protocol":{"type":"string","description":"The protocol the rule should apply to. Possible values are \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n"},"publicPort":{"type":"integer","description":"The public port to listen on.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the PAT rule configuration.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Public Gateway DHCP configuration should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/vpcPublicGatewayPatRule:VpcPublicGatewayPatRule"}]},"scaleway:network/route:Route":{"description":"Creates and manages Scaleway VPC Routes.\nFor more information, see [the main documentation](https://www.scaleway.com/en/docs/vpc/concepts/).\n\n## Example Usage\n\n### With Instance\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.network.Vpc(\"vpc01\", {name: \"tf-vpc-vpn\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"tf-pn-vpn\",\n    ipv4Subnet: {\n        subnet: \"172.16.64.0/22\",\n    },\n    vpcId: vpc01.id,\n});\nconst server01 = new scaleway.instance.Server(\"server01\", {\n    name: \"tf-server-vpn\",\n    type: \"PLAY2-MICRO\",\n    image: \"openvpn\",\n});\nconst pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    privateNetworkId: pn01.id,\n    serverId: server01.id,\n});\nconst rt01 = new scaleway.network.Route(\"rt01\", {\n    vpcId: vpc01.id,\n    description: \"tf-route-vpn\",\n    tags: [\n        \"tf\",\n        \"route\",\n    ],\n    destination: \"10.0.0.0/24\",\n    nexthopResourceId: pnic01.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"tf-vpc-vpn\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"tf-pn-vpn\",\n    ipv4_subnet={\n        \"subnet\": \"172.16.64.0/22\",\n    },\n    vpc_id=vpc01.id)\nserver01 = scaleway.instance.Server(\"server01\",\n    name=\"tf-server-vpn\",\n    type=\"PLAY2-MICRO\",\n    image=\"openvpn\")\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    private_network_id=pn01.id,\n    server_id=server01.id)\nrt01 = scaleway.network.Route(\"rt01\",\n    vpc_id=vpc01.id,\n    description=\"tf-route-vpn\",\n    tags=[\n        \"tf\",\n        \"route\",\n    ],\n    destination=\"10.0.0.0/24\",\n    nexthop_resource_id=pnic01.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 vpc01 = new Scaleway.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"tf-vpc-vpn\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"tf-pn-vpn\",\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.64.0/22\",\n        },\n        VpcId = vpc01.Id,\n    });\n\n    var server01 = new Scaleway.Instance.Server(\"server01\", new()\n    {\n        Name = \"tf-server-vpn\",\n        Type = \"PLAY2-MICRO\",\n        Image = \"openvpn\",\n    });\n\n    var pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        PrivateNetworkId = pn01.Id,\n        ServerId = server01.Id,\n    });\n\n    var rt01 = new Scaleway.Network.Route(\"rt01\", new()\n    {\n        VpcId = vpc01.Id,\n        Description = \"tf-route-vpn\",\n        Tags = new[]\n        {\n            \"tf\",\n            \"route\",\n        },\n        Destination = \"10.0.0.0/24\",\n        NexthopResourceId = pnic01.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"tf-vpc-vpn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"tf-pn-vpn\"),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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\tserver01, err := instance.NewServer(ctx, \"server01\", \u0026instance.ServerArgs{\n\t\t\tName:  pulumi.String(\"tf-server-vpn\"),\n\t\t\tType:  pulumi.String(\"PLAY2-MICRO\"),\n\t\t\tImage: pulumi.String(\"openvpn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpnic01, err := instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tServerId:         server01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewRoute(ctx, \"rt01\", \u0026network.RouteArgs{\n\t\t\tVpcId:       vpc01.ID(),\n\t\t\tDescription: pulumi.String(\"tf-route-vpn\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tf\"),\n\t\t\t\tpulumi.String(\"route\"),\n\t\t\t},\n\t\t\tDestination:       pulumi.String(\"10.0.0.0/24\"),\n\t\t\tNexthopResourceId: pnic01.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.network.Route;\nimport com.pulumi.scaleway.network.RouteArgs;\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(\"tf-vpc-vpn\")\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"tf-pn-vpn\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.64.0/22\")\n                .build())\n            .vpcId(vpc01.id())\n            .build());\n\n        var server01 = new Server(\"server01\", ServerArgs.builder()\n            .name(\"tf-server-vpn\")\n            .type(\"PLAY2-MICRO\")\n            .image(\"openvpn\")\n            .build());\n\n        var pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .privateNetworkId(pn01.id())\n            .serverId(server01.id())\n            .build());\n\n        var rt01 = new Route(\"rt01\", RouteArgs.builder()\n            .vpcId(vpc01.id())\n            .description(\"tf-route-vpn\")\n            .tags(            \n                \"tf\",\n                \"route\")\n            .destination(\"10.0.0.0/24\")\n            .nexthopResourceId(pnic01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: tf-vpc-vpn\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: tf-pn-vpn\n      ipv4Subnet:\n        subnet: 172.16.64.0/22\n      vpcId: ${vpc01.id}\n  server01:\n    type: scaleway:instance:Server\n    properties:\n      name: tf-server-vpn\n      type: PLAY2-MICRO\n      image: openvpn\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      privateNetworkId: ${pn01.id}\n      serverId: ${server01.id}\n  rt01:\n    type: scaleway:network:Route\n    properties:\n      vpcId: ${vpc01.id}\n      description: tf-route-vpn\n      tags:\n        - tf\n        - route\n      destination: 10.0.0.0/24\n      nexthopResourceId: ${pnic01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With Baremetal\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.network.Vpc(\"vpc01\", {name: \"tf-vpc-vpn\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    name: \"tf-pn-vpn\",\n    ipv4Subnet: {\n        subnet: \"172.16.64.0/22\",\n    },\n    vpcId: vpc01.id,\n});\nconst myOs = scaleway.elasticmetal.getOs({\n    zone: \"fr-par-2\",\n    name: \"Ubuntu\",\n    version: \"22.04 LTS (Jammy Jellyfish)\",\n});\nconst myOffer = scaleway.elasticmetal.getOffer({\n    zone: \"fr-par-2\",\n    name: \"EM-B112X-SSD\",\n});\nconst privateNetwork = scaleway.elasticmetal.getOption({\n    zone: \"fr-par-2\",\n    name: \"Private Network\",\n});\nconst myKey = scaleway.iam.getSshKey({\n    name: \"main\",\n});\nconst myServer = new scaleway.elasticmetal.Server(\"my_server\", {\n    zone: \"fr-par-2\",\n    offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n    os: myOs.then(myOs =\u003e myOs.osId),\n    sshKeyIds: [myKey.then(myKey =\u003e myKey.id)],\n    options: [{\n        id: privateNetwork.then(privateNetwork =\u003e privateNetwork.optionId),\n    }],\n    privateNetworks: [{\n        id: pn01.id,\n    }],\n});\nconst rt01 = new scaleway.network.Route(\"rt01\", {\n    vpcId: vpc01.id,\n    description: \"tf-route-vpn\",\n    tags: [\n        \"tf\",\n        \"route\",\n    ],\n    destination: \"10.0.0.0/24\",\n    nexthopResourceId: myServer.privateNetworks.apply(privateNetworks =\u003e privateNetworks?.[0]?.mappingId),\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"tf-vpc-vpn\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    name=\"tf-pn-vpn\",\n    ipv4_subnet={\n        \"subnet\": \"172.16.64.0/22\",\n    },\n    vpc_id=vpc01.id)\nmy_os = scaleway.elasticmetal.get_os(zone=\"fr-par-2\",\n    name=\"Ubuntu\",\n    version=\"22.04 LTS (Jammy Jellyfish)\")\nmy_offer = scaleway.elasticmetal.get_offer(zone=\"fr-par-2\",\n    name=\"EM-B112X-SSD\")\nprivate_network = scaleway.elasticmetal.get_option(zone=\"fr-par-2\",\n    name=\"Private Network\")\nmy_key = scaleway.iam.get_ssh_key(name=\"main\")\nmy_server = scaleway.elasticmetal.Server(\"my_server\",\n    zone=\"fr-par-2\",\n    offer=my_offer.offer_id,\n    os=my_os.os_id,\n    ssh_key_ids=[my_key.id],\n    options=[{\n        \"id\": private_network.option_id,\n    }],\n    private_networks=[{\n        \"id\": pn01.id,\n    }])\nrt01 = scaleway.network.Route(\"rt01\",\n    vpc_id=vpc01.id,\n    description=\"tf-route-vpn\",\n    tags=[\n        \"tf\",\n        \"route\",\n    ],\n    destination=\"10.0.0.0/24\",\n    nexthop_resource_id=my_server.private_networks[0].mapping_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 vpc01 = new Scaleway.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"tf-vpc-vpn\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"tf-pn-vpn\",\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.64.0/22\",\n        },\n        VpcId = vpc01.Id,\n    });\n\n    var myOs = Scaleway.Elasticmetal.GetOs.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"Ubuntu\",\n        Version = \"22.04 LTS (Jammy Jellyfish)\",\n    });\n\n    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"EM-B112X-SSD\",\n    });\n\n    var privateNetwork = Scaleway.Elasticmetal.GetOption.Invoke(new()\n    {\n        Zone = \"fr-par-2\",\n        Name = \"Private Network\",\n    });\n\n    var myKey = Scaleway.Iam.GetSshKey.Invoke(new()\n    {\n        Name = \"main\",\n    });\n\n    var myServer = new Scaleway.Elasticmetal.Server(\"my_server\", new()\n    {\n        Zone = \"fr-par-2\",\n        Offer = myOffer.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        Os = myOs.Apply(getOsResult =\u003e getOsResult.OsId),\n        SshKeyIds = new[]\n        {\n            myKey.Apply(getSshKeyResult =\u003e getSshKeyResult.Id),\n        },\n        Options = new[]\n        {\n            new Scaleway.Elasticmetal.Inputs.ServerOptionArgs\n            {\n                Id = privateNetwork.Apply(getOptionResult =\u003e getOptionResult.OptionId),\n            },\n        },\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Elasticmetal.Inputs.ServerPrivateNetworkArgs\n            {\n                Id = pn01.Id,\n            },\n        },\n    });\n\n    var rt01 = new Scaleway.Network.Route(\"rt01\", new()\n    {\n        VpcId = vpc01.Id,\n        Description = \"tf-route-vpn\",\n        Tags = new[]\n        {\n            \"tf\",\n            \"route\",\n        },\n        Destination = \"10.0.0.0/24\",\n        NexthopResourceId = myServer.PrivateNetworks.Apply(privateNetworks =\u003e privateNetworks[0]?.MappingId),\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/elasticmetal\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"tf-vpc-vpn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"tf-pn-vpn\"),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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\tmyOs, err := elasticmetal.GetOs(ctx, \u0026elasticmetal.GetOsArgs{\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 := elasticmetal.GetOffer(ctx, \u0026elasticmetal.GetOfferArgs{\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 := elasticmetal.GetOption(ctx, \u0026elasticmetal.GetOptionArgs{\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\tmyKey, err := iam.LookupSshKey(ctx, \u0026iam.LookupSshKeyArgs{\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\tmyServer, err := elasticmetal.NewServer(ctx, \"my_server\", \u0026elasticmetal.ServerArgs{\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(myKey.Id),\n\t\t\t},\n\t\t\tOptions: elasticmetal.ServerOptionArray{\n\t\t\t\t\u0026elasticmetal.ServerOptionArgs{\n\t\t\t\t\tId: pulumi.String(privateNetwork.OptionId),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPrivateNetworks: elasticmetal.ServerPrivateNetworkArray{\n\t\t\t\t\u0026elasticmetal.ServerPrivateNetworkArgs{\n\t\t\t\t\tId: 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 = network.NewRoute(ctx, \"rt01\", \u0026network.RouteArgs{\n\t\t\tVpcId:       vpc01.ID(),\n\t\t\tDescription: pulumi.String(\"tf-route-vpn\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tf\"),\n\t\t\t\tpulumi.String(\"route\"),\n\t\t\t},\n\t\t\tDestination: pulumi.String(\"10.0.0.0/24\"),\n\t\t\tNexthopResourceId: pulumi.String(myServer.PrivateNetworks.ApplyT(func(privateNetworks []elasticmetal.ServerPrivateNetwork) (*string, error) {\n\t\t\t\treturn \u0026privateNetworks[0].MappingId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOptionArgs;\nimport com.pulumi.scaleway.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetSshKeyArgs;\nimport com.pulumi.scaleway.elasticmetal.Server;\nimport com.pulumi.scaleway.elasticmetal.ServerArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.ServerOptionArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.ServerPrivateNetworkArgs;\nimport com.pulumi.scaleway.network.Route;\nimport com.pulumi.scaleway.network.RouteArgs;\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(\"tf-vpc-vpn\")\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"tf-pn-vpn\")\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.64.0/22\")\n                .build())\n            .vpcId(vpc01.id())\n            .build());\n\n        final var myOs = ElasticmetalFunctions.getOs(GetOsArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"Ubuntu\")\n            .version(\"22.04 LTS (Jammy Jellyfish)\")\n            .build());\n\n        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"EM-B112X-SSD\")\n            .build());\n\n        final var privateNetwork = ElasticmetalFunctions.getOption(GetOptionArgs.builder()\n            .zone(\"fr-par-2\")\n            .name(\"Private Network\")\n            .build());\n\n        final var myKey = IamFunctions.getSshKey(GetSshKeyArgs.builder()\n            .name(\"main\")\n            .build());\n\n        var myServer = new Server(\"myServer\", ServerArgs.builder()\n            .zone(\"fr-par-2\")\n            .offer(myOffer.offerId())\n            .os(myOs.osId())\n            .sshKeyIds(myKey.id())\n            .options(ServerOptionArgs.builder()\n                .id(privateNetwork.optionId())\n                .build())\n            .privateNetworks(ServerPrivateNetworkArgs.builder()\n                .id(pn01.id())\n                .build())\n            .build());\n\n        var rt01 = new Route(\"rt01\", RouteArgs.builder()\n            .vpcId(vpc01.id())\n            .description(\"tf-route-vpn\")\n            .tags(            \n                \"tf\",\n                \"route\")\n            .destination(\"10.0.0.0/24\")\n            .nexthopResourceId(myServer.privateNetworks().applyValue(_privateNetworks -\u003e _privateNetworks[0].mappingId()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: tf-vpc-vpn\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: tf-pn-vpn\n      ipv4Subnet:\n        subnet: 172.16.64.0/22\n      vpcId: ${vpc01.id}\n  myServer:\n    type: scaleway:elasticmetal:Server\n    name: my_server\n    properties:\n      zone: fr-par-2\n      offer: ${myOffer.offerId}\n      os: ${myOs.osId}\n      sshKeyIds:\n        - ${myKey.id}\n      options:\n        - id: ${privateNetwork.optionId}\n      privateNetworks:\n        - id: ${pn01.id}\n  rt01:\n    type: scaleway:network:Route\n    properties:\n      vpcId: ${vpc01.id}\n      description: tf-route-vpn\n      tags:\n        - tf\n        - route\n      destination: 10.0.0.0/24\n      nexthopResourceId: ${myServer.privateNetworks[0].mappingId}\nvariables:\n  myOs:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\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:elasticmetal:getOffer\n      arguments:\n        zone: fr-par-2\n        name: EM-B112X-SSD\n  privateNetwork:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOption\n      arguments:\n        zone: fr-par-2\n        name: Private Network\n  myKey:\n    fn::invoke:\n      function: scaleway:iam:getSshKey\n      arguments:\n        name: main\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRoutes can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:network/route:Route main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the route (RFC 3339 format).\n"},"description":{"type":"string","description":"The route description.\n"},"destination":{"type":"string","description":"The destination of the route.\n"},"nexthopPrivateNetworkId":{"type":"string","description":"The ID of the nexthop private network.\n"},"nexthopResourceId":{"type":"string","description":"The ID of the nexthop resource.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the route.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the route.\n"},"updatedAt":{"type":"string","description":"The date and time of the creation of the route (RFC 3339 format).\n"},"vpcId":{"type":"string","description":"The VPC ID the route belongs to.\n"}},"required":["createdAt","updatedAt","vpcId"],"inputProperties":{"description":{"type":"string","description":"The route description.\n"},"destination":{"type":"string","description":"The destination of the route.\n"},"nexthopPrivateNetworkId":{"type":"string","description":"The ID of the nexthop private network.\n"},"nexthopResourceId":{"type":"string","description":"The ID of the nexthop resource.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the route.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the route.\n"},"vpcId":{"type":"string","description":"The VPC ID the route belongs to.\n","willReplaceOnChanges":true}},"requiredInputs":["vpcId"],"stateInputs":{"description":"Input properties used for looking up and filtering Route resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the route (RFC 3339 format).\n"},"description":{"type":"string","description":"The route description.\n"},"destination":{"type":"string","description":"The destination of the route.\n"},"nexthopPrivateNetworkId":{"type":"string","description":"The ID of the nexthop private network.\n"},"nexthopResourceId":{"type":"string","description":"The ID of the nexthop resource.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the route.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the route.\n"},"updatedAt":{"type":"string","description":"The date and time of the creation of the route (RFC 3339 format).\n"},"vpcId":{"type":"string","description":"The VPC ID the route belongs to.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/vpcRoute:VpcRoute"}]},"scaleway:network/vpc:Vpc":{"description":"Creates and manages Scaleway Virtual Private Clouds.\nFor more information, see [the main documentation](https://www.scaleway.com/en/docs/vpc/concepts/).\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.network.Vpc(\"vpc01\", {\n    name: \"my-vpc\",\n    tags: [\n        \"demo\",\n        \"terraform\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\",\n    name=\"my-vpc\",\n    tags=[\n        \"demo\",\n        \"terraform\",\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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my-vpc\",\n        Tags = new[]\n        {\n            \"demo\",\n            \"terraform\",\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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewVpc(ctx, \"vpc01\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"my-vpc\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"demo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\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            .tags(            \n                \"demo\",\n                \"terraform\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my-vpc\n      tags:\n        - demo\n        - terraform\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable routing\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.network.Vpc(\"vpc01\", {\n    name: \"my-vpc\",\n    tags: [\n        \"demo\",\n        \"terraform\",\n        \"routing\",\n    ],\n    enableRouting: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\",\n    name=\"my-vpc\",\n    tags=[\n        \"demo\",\n        \"terraform\",\n        \"routing\",\n    ],\n    enable_routing=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 vpc01 = new Scaleway.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my-vpc\",\n        Tags = new[]\n        {\n            \"demo\",\n            \"terraform\",\n            \"routing\",\n        },\n        EnableRouting = 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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := network.NewVpc(ctx, \"vpc01\", \u0026network.VpcArgs{\n\t\t\tName: pulumi.String(\"my-vpc\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"demo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\n\t\t\t\tpulumi.String(\"routing\"),\n\t\t\t},\n\t\t\tEnableRouting: 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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\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            .tags(            \n                \"demo\",\n                \"terraform\",\n                \"routing\")\n            .enableRouting(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my-vpc\n      tags:\n        - demo\n        - terraform\n        - routing\n      enableRouting: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVPCs can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:network/vpc:Vpc vpc_demo fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"Date and time of VPC's creation (RFC 3339 format).\n"},"enableCustomRoutesPropagation":{"type":"boolean","description":"Defines whether the VPC advertises custom routes between its Private Networks. Note that you will not be able to deactivate it afterwards.\n"},"enableRouting":{"type":"boolean","description":"Enable routing between Private Networks in the VPC. Note that you will not be able to deactivate it afterwards.\n"},"isDefault":{"type":"boolean","description":"Defines whether the VPC is the default one for its Project.\n"},"name":{"type":"string","description":"The name for the VPC. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the VPC is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the VPC is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the VPC.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the VPC.\n"},"updatedAt":{"type":"string","description":"Date and time of VPC's last update (RFC 3339 format).\n"}},"required":["createdAt","enableCustomRoutesPropagation","enableRouting","isDefault","name","organizationId","projectId","updatedAt"],"inputProperties":{"enableCustomRoutesPropagation":{"type":"boolean","description":"Defines whether the VPC advertises custom routes between its Private Networks. Note that you will not be able to deactivate it afterwards.\n"},"enableRouting":{"type":"boolean","description":"Enable routing between Private Networks in the VPC. Note that you will not be able to deactivate it afterwards.\n"},"name":{"type":"string","description":"The name for the VPC. If not provided it will be randomly generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the VPC is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the VPC.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the VPC.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Vpc resources.\n","properties":{"createdAt":{"type":"string","description":"Date and time of VPC's creation (RFC 3339 format).\n"},"enableCustomRoutesPropagation":{"type":"boolean","description":"Defines whether the VPC advertises custom routes between its Private Networks. Note that you will not be able to deactivate it afterwards.\n"},"enableRouting":{"type":"boolean","description":"Enable routing between Private Networks in the VPC. Note that you will not be able to deactivate it afterwards.\n"},"isDefault":{"type":"boolean","description":"Defines whether the VPC is the default one for its Project.\n"},"name":{"type":"string","description":"The name for the VPC. If not provided it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the VPC is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the VPC is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region of the VPC.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags to associate with the VPC.\n"},"updatedAt":{"type":"string","description":"Date and time of VPC's last update (RFC 3339 format).\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/vpc:Vpc"}]},"scaleway:object/bucket:Bucket":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.Bucket`\" pulumi-lang-dotnet=\"`scaleway.object.Bucket`\" pulumi-lang-go=\"`object.Bucket`\" pulumi-lang-python=\"`object.Bucket`\" pulumi-lang-yaml=\"`scaleway.object.Bucket`\" pulumi-lang-java=\"`scaleway.object.Bucket`\"\u003e`scaleway.object.Bucket`\u003c/span\u003e resource allows you to create and manage buckets for [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/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.object.Bucket(\"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.object.Bucket(\"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.Object.Bucket(\"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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"some_bucket\", \u0026object.BucketArgs{\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\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 Bucket(\"someBucket\", BucketArgs.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:object:Bucket\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.object.Bucket(\"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.object.Bucket(\"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.Object.Bucket(\"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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"some_bucket\", \u0026object.BucketArgs{\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\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 Bucket(\"someBucket\", BucketArgs.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:object:Bucket\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.object.Bucket(\"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.object.Bucket(\"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.Object.Bucket(\"main\", new()\n    {\n        Name = \"mybuckectid\",\n        Region = \"fr-par\",\n        LifecycleRules = new[]\n        {\n            new Scaleway.Object.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"id1\",\n                Prefix = \"path1/\",\n                Enabled = true,\n                Expiration = new Scaleway.Object.Inputs.BucketLifecycleRuleExpirationArgs\n                {\n                    Days = 365,\n                },\n                Transitions = new[]\n                {\n                    new Scaleway.Object.Inputs.BucketLifecycleRuleTransitionArgs\n                    {\n                        Days = 120,\n                        StorageClass = \"GLACIER\",\n                    },\n                },\n            },\n            new Scaleway.Object.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"id2\",\n                Prefix = \"path2/\",\n                Enabled = true,\n                Expiration = new Scaleway.Object.Inputs.BucketLifecycleRuleExpirationArgs\n                {\n                    Days = 50,\n                },\n            },\n            new Scaleway.Object.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"id3\",\n                Prefix = \"path3/\",\n                Enabled = false,\n                Tags = \n                {\n                    { \"tagKey\", \"tagValue\" },\n                    { \"terraform\", \"hashicorp\" },\n                },\n                Expiration = new Scaleway.Object.Inputs.BucketLifecycleRuleExpirationArgs\n                {\n                    Days = 1,\n                },\n            },\n            new Scaleway.Object.Inputs.BucketLifecycleRuleArgs\n            {\n                Id = \"id4\",\n                Enabled = true,\n                Tags = \n                {\n                    { \"tag1\", \"value1\" },\n                },\n                Transitions = new[]\n                {\n                    new Scaleway.Object.Inputs.BucketLifecycleRuleTransitionArgs\n                    {\n                        Days = 1,\n                        StorageClass = \"GLACIER\",\n                    },\n                },\n            },\n            new Scaleway.Object.Inputs.BucketLifecycleRuleArgs\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\n\t\t\tName:   pulumi.String(\"mybuckectid\"),\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t\tLifecycleRules: object.BucketLifecycleRuleArray{\n\t\t\t\t\u0026object.BucketLifecycleRuleArgs{\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: \u0026object.BucketLifecycleRuleExpirationArgs{\n\t\t\t\t\t\tDays: pulumi.Int(365),\n\t\t\t\t\t},\n\t\t\t\t\tTransitions: object.BucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026object.BucketLifecycleRuleTransitionArgs{\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\u0026object.BucketLifecycleRuleArgs{\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: \u0026object.BucketLifecycleRuleExpirationArgs{\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\u0026object.BucketLifecycleRuleArgs{\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: \u0026object.BucketLifecycleRuleExpirationArgs{\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\u0026object.BucketLifecycleRuleArgs{\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: object.BucketLifecycleRuleTransitionArray{\n\t\t\t\t\t\t\u0026object.BucketLifecycleRuleTransitionArgs{\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\u0026object.BucketLifecycleRuleArgs{\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.inputs.BucketLifecycleRuleArgs;\nimport com.pulumi.scaleway.object.inputs.BucketLifecycleRuleExpirationArgs;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"mybuckectid\")\n            .region(\"fr-par\")\n            .lifecycleRules(            \n                BucketLifecycleRuleArgs.builder()\n                    .id(\"id1\")\n                    .prefix(\"path1/\")\n                    .enabled(true)\n                    .expiration(BucketLifecycleRuleExpirationArgs.builder()\n                        .days(365)\n                        .build())\n                    .transitions(BucketLifecycleRuleTransitionArgs.builder()\n                        .days(120)\n                        .storageClass(\"GLACIER\")\n                        .build())\n                    .build(),\n                BucketLifecycleRuleArgs.builder()\n                    .id(\"id2\")\n                    .prefix(\"path2/\")\n                    .enabled(true)\n                    .expiration(BucketLifecycleRuleExpirationArgs.builder()\n                        .days(50)\n                        .build())\n                    .build(),\n                BucketLifecycleRuleArgs.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(BucketLifecycleRuleExpirationArgs.builder()\n                        .days(1)\n                        .build())\n                    .build(),\n                BucketLifecycleRuleArgs.builder()\n                    .id(\"id4\")\n                    .enabled(true)\n                    .tags(Map.of(\"tag1\", \"value1\"))\n                    .transitions(BucketLifecycleRuleTransitionArgs.builder()\n                        .days(1)\n                        .storageClass(\"GLACIER\")\n                        .build())\n                    .build(),\n                BucketLifecycleRuleArgs.builder()\n                    .enabled(true)\n                    .abortIncompleteMultipartUploadDays(30)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\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:object/bucket:Bucket 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:object/bucket:Bucket some_bucket fr-par/some-bucket@11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"acl":{"type":"string","description":"(Deprecated) The canned ACL you want to apply to the bucket.\n\n\u003e **Note:** The \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e attribute is deprecated. See\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003eresource 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.\n","deprecationMessage":"ACL attribute is deprecated. Please use the resource\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003einstead."},"apiEndpoint":{"type":"string","description":"API URL of the bucket"},"corsRules":{"type":"array","items":{"$ref":"#/types/scaleway:object/BucketCorsRule:BucketCorsRule"},"description":"List of CORS rules"},"endpoint":{"type":"string","description":"The endpoint URL of the bucket.\n"},"forceDestroy":{"type":"boolean","description":"Boolean that, when set to true, allows the deletion of all objects (including locked objects) when the bucket is destroyed. This operation is irreversible, and the objects cannot be recovered. The default is false.\n"},"lifecycleRules":{"type":"array","items":{"$ref":"#/types/scaleway:object/BucketLifecycleRule:BucketLifecycleRule"},"description":"Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects"},"name":{"type":"string","description":"The name of the bucket.\n"},"objectLockEnabled":{"type":"boolean","description":"Enable object lock"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the bucket is associated with.\n"},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#region-definition) in which the bucket will be created.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A list of tags (key/value) for the bucket.\n\n* \u003e **Important:** The Scaleway console does not support `key/value` tags yet, so only the tags' values will be displayed.\nIf you make any change to your bucket's tags using the console, it will overwrite them with the format `value/value`.\n"},"versioning":{"$ref":"#/types/scaleway:object/BucketVersioning:BucketVersioning","description":"Allow multiple versions of an object in the same bucket"}},"required":["apiEndpoint","corsRules","endpoint","name","projectId","versioning"],"inputProperties":{"acl":{"type":"string","description":"(Deprecated) The canned ACL you want to apply to the bucket.\n\n\u003e **Note:** The \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e attribute is deprecated. See\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003eresource 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.\n","deprecationMessage":"ACL attribute is deprecated. Please use the resource\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003einstead."},"corsRules":{"type":"array","items":{"$ref":"#/types/scaleway:object/BucketCorsRule:BucketCorsRule"},"description":"List of CORS rules"},"forceDestroy":{"type":"boolean","description":"Boolean that, when set to true, allows the deletion of all objects (including locked objects) when the bucket is destroyed. This operation is irreversible, and the objects cannot be recovered. The default is false.\n"},"lifecycleRules":{"type":"array","items":{"$ref":"#/types/scaleway:object/BucketLifecycleRule:BucketLifecycleRule"},"description":"Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects"},"name":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"objectLockEnabled":{"type":"boolean","description":"Enable object lock","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the bucket is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#region-definition) in which the bucket will be created.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A list of tags (key/value) for the bucket.\n\n* \u003e **Important:** The Scaleway console does not support `key/value` tags yet, so only the tags' values will be displayed.\nIf you make any change to your bucket's tags using the console, it will overwrite them with the format `value/value`.\n"},"versioning":{"$ref":"#/types/scaleway:object/BucketVersioning:BucketVersioning","description":"Allow multiple versions of an object in the same bucket"}},"stateInputs":{"description":"Input properties used for looking up and filtering Bucket resources.\n","properties":{"acl":{"type":"string","description":"(Deprecated) The canned ACL you want to apply to the bucket.\n\n\u003e **Note:** The \u003cspan pulumi-lang-nodejs=\"`acl`\" pulumi-lang-dotnet=\"`Acl`\" pulumi-lang-go=\"`acl`\" pulumi-lang-python=\"`acl`\" pulumi-lang-yaml=\"`acl`\" pulumi-lang-java=\"`acl`\"\u003e`acl`\u003c/span\u003e attribute is deprecated. See\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003eresource 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.\n","deprecationMessage":"ACL attribute is deprecated. Please use the resource\u003cspan pulumi-lang-nodejs=\" scaleway.object.BucketAcl \" pulumi-lang-dotnet=\" scaleway.object.BucketAcl \" pulumi-lang-go=\" object.BucketAcl \" pulumi-lang-python=\" object.BucketAcl \" pulumi-lang-yaml=\" scaleway.object.BucketAcl \" pulumi-lang-java=\" scaleway.object.BucketAcl \"\u003e scaleway.object.BucketAcl \u003c/span\u003einstead."},"apiEndpoint":{"type":"string","description":"API URL of the bucket"},"corsRules":{"type":"array","items":{"$ref":"#/types/scaleway:object/BucketCorsRule:BucketCorsRule"},"description":"List of CORS rules"},"endpoint":{"type":"string","description":"The endpoint URL of the bucket.\n"},"forceDestroy":{"type":"boolean","description":"Boolean that, when set to true, allows the deletion of all objects (including locked objects) when the bucket is destroyed. This operation is irreversible, and the objects cannot be recovered. The default is false.\n"},"lifecycleRules":{"type":"array","items":{"$ref":"#/types/scaleway:object/BucketLifecycleRule:BucketLifecycleRule"},"description":"Lifecycle configuration is a set of rules that define actions that Scaleway Object Storage applies to a group of objects"},"name":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"objectLockEnabled":{"type":"boolean","description":"Enable object lock","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the bucket is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#region-definition) in which the bucket will be created.\n","willReplaceOnChanges":true},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"A list of tags (key/value) for the bucket.\n\n* \u003e **Important:** The Scaleway console does not support `key/value` tags yet, so only the tags' values will be displayed.\nIf you make any change to your bucket's tags using the console, it will overwrite them with the format `value/value`.\n"},"versioning":{"$ref":"#/types/scaleway:object/BucketVersioning:BucketVersioning","description":"Allow multiple versions of an object in the same bucket"}},"type":"object"},"aliases":[{"type":"scaleway:index/objectBucket:ObjectBucket"}]},"scaleway:object/bucketAcl:BucketAcl":{"description":"## 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.object.Bucket(\"some_bucket\", {name: \"unique-name\"});\nconst main = new scaleway.object.BucketAcl(\"main\", {\n    bucket: mainScalewayObjectBucket.id,\n    acl: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nsome_bucket = scaleway.object.Bucket(\"some_bucket\", name=\"unique-name\")\nmain = scaleway.object.BucketAcl(\"main\",\n    bucket=main_scaleway_object_bucket[\"id\"],\n    acl=\"private\")\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.Object.Bucket(\"some_bucket\", new()\n    {\n        Name = \"unique-name\",\n    });\n\n    var main = new Scaleway.Object.BucketAcl(\"main\", new()\n    {\n        Bucket = mainScalewayObjectBucket.Id,\n        Acl = \"private\",\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.NewBucket(ctx, \"some_bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"unique-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketAcl(ctx, \"main\", \u0026object.BucketAclArgs{\n\t\t\tBucket: pulumi.Any(mainScalewayObjectBucket.Id),\n\t\t\tAcl:    pulumi.String(\"private\"),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketAcl;\nimport com.pulumi.scaleway.object.BucketAclArgs;\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 Bucket(\"someBucket\", BucketArgs.builder()\n            .name(\"unique-name\")\n            .build());\n\n        var main = new BucketAcl(\"main\", BucketAclArgs.builder()\n            .bucket(mainScalewayObjectBucket.id())\n            .acl(\"private\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  someBucket:\n    type: scaleway:object:Bucket\n    name: some_bucket\n    properties:\n      name: unique-name\n  main:\n    type: scaleway:object:BucketAcl\n    properties:\n      bucket: ${mainScalewayObjectBucket.id}\n      acl: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nFor more information, refer to the [PutBucketAcl API call documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/bucket-operations/#putbucketacl).\n\n\n### With Grants\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.object.Bucket(\"main\", {name: \"your-bucket\"});\nconst mainBucketAcl = new scaleway.object.BucketAcl(\"main\", {\n    bucket: main.id,\n    accessControlPolicy: {\n        grants: [\n            {\n                grantee: {\n                    id: \"\u003cproject-id\u003e:\u003cproject-id\u003e\",\n                    type: \"CanonicalUser\",\n                },\n                permission: \"FULL_CONTROL\",\n            },\n            {\n                grantee: {\n                    id: \"\u003cproject-id\u003e\",\n                    type: \"CanonicalUser\",\n                },\n                permission: \"WRITE\",\n            },\n        ],\n        owner: {\n            id: \"\u003cproject-id\u003e\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.object.Bucket(\"main\", name=\"your-bucket\")\nmain_bucket_acl = scaleway.object.BucketAcl(\"main\",\n    bucket=main.id,\n    access_control_policy={\n        \"grants\": [\n            {\n                \"grantee\": {\n                    \"id\": \"\u003cproject-id\u003e:\u003cproject-id\u003e\",\n                    \"type\": \"CanonicalUser\",\n                },\n                \"permission\": \"FULL_CONTROL\",\n            },\n            {\n                \"grantee\": {\n                    \"id\": \"\u003cproject-id\u003e\",\n                    \"type\": \"CanonicalUser\",\n                },\n                \"permission\": \"WRITE\",\n            },\n        ],\n        \"owner\": {\n            \"id\": \"\u003cproject-id\u003e\",\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.Object.Bucket(\"main\", new()\n    {\n        Name = \"your-bucket\",\n    });\n\n    var mainBucketAcl = new Scaleway.Object.BucketAcl(\"main\", new()\n    {\n        Bucket = main.Id,\n        AccessControlPolicy = new Scaleway.Object.Inputs.BucketAclAccessControlPolicyArgs\n        {\n            Grants = new[]\n            {\n                new Scaleway.Object.Inputs.BucketAclAccessControlPolicyGrantArgs\n                {\n                    Grantee = new Scaleway.Object.Inputs.BucketAclAccessControlPolicyGrantGranteeArgs\n                    {\n                        Id = \"\u003cproject-id\u003e:\u003cproject-id\u003e\",\n                        Type = \"CanonicalUser\",\n                    },\n                    Permission = \"FULL_CONTROL\",\n                },\n                new Scaleway.Object.Inputs.BucketAclAccessControlPolicyGrantArgs\n                {\n                    Grantee = new Scaleway.Object.Inputs.BucketAclAccessControlPolicyGrantGranteeArgs\n                    {\n                        Id = \"\u003cproject-id\u003e\",\n                        Type = \"CanonicalUser\",\n                    },\n                    Permission = \"WRITE\",\n                },\n            },\n            Owner = new Scaleway.Object.Inputs.BucketAclAccessControlPolicyOwnerArgs\n            {\n                Id = \"\u003cproject-id\u003e\",\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"your-bucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketAcl(ctx, \"main\", \u0026object.BucketAclArgs{\n\t\t\tBucket: main.ID(),\n\t\t\tAccessControlPolicy: \u0026object.BucketAclAccessControlPolicyArgs{\n\t\t\t\tGrants: object.BucketAclAccessControlPolicyGrantArray{\n\t\t\t\t\t\u0026object.BucketAclAccessControlPolicyGrantArgs{\n\t\t\t\t\t\tGrantee: \u0026object.BucketAclAccessControlPolicyGrantGranteeArgs{\n\t\t\t\t\t\t\tId:   pulumi.String(\"\u003cproject-id\u003e:\u003cproject-id\u003e\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"CanonicalUser\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPermission: pulumi.String(\"FULL_CONTROL\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026object.BucketAclAccessControlPolicyGrantArgs{\n\t\t\t\t\t\tGrantee: \u0026object.BucketAclAccessControlPolicyGrantGranteeArgs{\n\t\t\t\t\t\t\tId:   pulumi.String(\"\u003cproject-id\u003e\"),\n\t\t\t\t\t\t\tType: pulumi.String(\"CanonicalUser\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPermission: pulumi.String(\"WRITE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tOwner: \u0026object.BucketAclAccessControlPolicyOwnerArgs{\n\t\t\t\t\tId: pulumi.String(\"\u003cproject-id\u003e\"),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketAcl;\nimport com.pulumi.scaleway.object.BucketAclArgs;\nimport com.pulumi.scaleway.object.inputs.BucketAclAccessControlPolicyArgs;\nimport com.pulumi.scaleway.object.inputs.BucketAclAccessControlPolicyOwnerArgs;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"your-bucket\")\n            .build());\n\n        var mainBucketAcl = new BucketAcl(\"mainBucketAcl\", BucketAclArgs.builder()\n            .bucket(main.id())\n            .accessControlPolicy(BucketAclAccessControlPolicyArgs.builder()\n                .grants(                \n                    BucketAclAccessControlPolicyGrantArgs.builder()\n                        .grantee(BucketAclAccessControlPolicyGrantGranteeArgs.builder()\n                            .id(\"\u003cproject-id\u003e:\u003cproject-id\u003e\")\n                            .type(\"CanonicalUser\")\n                            .build())\n                        .permission(\"FULL_CONTROL\")\n                        .build(),\n                    BucketAclAccessControlPolicyGrantArgs.builder()\n                        .grantee(BucketAclAccessControlPolicyGrantGranteeArgs.builder()\n                            .id(\"\u003cproject-id\u003e\")\n                            .type(\"CanonicalUser\")\n                            .build())\n                        .permission(\"WRITE\")\n                        .build())\n                .owner(BucketAclAccessControlPolicyOwnerArgs.builder()\n                    .id(\"\u003cproject-id\u003e\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\n    properties:\n      name: your-bucket\n  mainBucketAcl:\n    type: scaleway:object:BucketAcl\n    name: main\n    properties:\n      bucket: ${main.id}\n      accessControlPolicy:\n        grants:\n          - grantee:\n              id: \u003cproject-id\u003e:\u003cproject-id\u003e\n              type: CanonicalUser\n            permission: FULL_CONTROL\n          - grantee:\n              id: \u003cproject-id\u003e\n              type: CanonicalUser\n            permission: WRITE\n        owner:\n          id: \u003cproject-id\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## The ACL\n\nRefer 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.\n\n## The access control policy\n\nThe \u003cspan pulumi-lang-nodejs=\"`accessControlPolicy`\" pulumi-lang-dotnet=\"`AccessControlPolicy`\" pulumi-lang-go=\"`accessControlPolicy`\" pulumi-lang-python=\"`access_control_policy`\" pulumi-lang-yaml=\"`accessControlPolicy`\" pulumi-lang-java=\"`accessControlPolicy`\"\u003e`access_control_policy`\u003c/span\u003e configuration block supports the following arguments:\n\n* \u003cspan pulumi-lang-nodejs=\"`grant`\" pulumi-lang-dotnet=\"`Grant`\" pulumi-lang-go=\"`grant`\" pulumi-lang-python=\"`grant`\" pulumi-lang-yaml=\"`grant`\" pulumi-lang-java=\"`grant`\"\u003e`grant`\u003c/span\u003e - (Required) Set of grant configuration blocks documented below.\n* \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e - (Required) Configuration block of the bucket owner's display name and ID documented below.\n\n## The grant\n\nThe \u003cspan pulumi-lang-nodejs=\"`grant`\" pulumi-lang-dotnet=\"`Grant`\" pulumi-lang-go=\"`grant`\" pulumi-lang-python=\"`grant`\" pulumi-lang-yaml=\"`grant`\" pulumi-lang-java=\"`grant`\"\u003e`grant`\u003c/span\u003e configuration block supports the following arguments:\n\n* \u003cspan pulumi-lang-nodejs=\"`grantee`\" pulumi-lang-dotnet=\"`Grantee`\" pulumi-lang-go=\"`grantee`\" pulumi-lang-python=\"`grantee`\" pulumi-lang-yaml=\"`grantee`\" pulumi-lang-java=\"`grantee`\"\u003e`grantee`\u003c/span\u003e - (Required) Configuration block for the project being granted permissions documented below.\n* \u003cspan pulumi-lang-nodejs=\"`permission`\" pulumi-lang-dotnet=\"`Permission`\" pulumi-lang-go=\"`permission`\" pulumi-lang-python=\"`permission`\" pulumi-lang-yaml=\"`permission`\" pulumi-lang-java=\"`permission`\"\u003e`permission`\u003c/span\u003e - (Required) Logging permissions assigned to the grantee for the bucket.\n\n## The permission\n\nThe following list shows each access policy permissions supported.\n\n`READ`, `WRITE`, `READ_ACP`, `WRITE_ACP`, `FULL_CONTROL`\n\nFor more information about ACL permissions in the S3 bucket, see [ACL permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html).\n\n## The owner\n\nThe \u003cspan pulumi-lang-nodejs=\"`owner`\" pulumi-lang-dotnet=\"`Owner`\" pulumi-lang-go=\"`owner`\" pulumi-lang-python=\"`owner`\" pulumi-lang-yaml=\"`owner`\" pulumi-lang-java=\"`owner`\"\u003e`owner`\u003c/span\u003e configuration block supports the following arguments:\n\n* \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e - (Required) The ID of the project owner.\n* \u003cspan pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\"\u003e`display_name`\u003c/span\u003e - (Optional) The display name of the owner.\n\n## the grantee\n\nThe \u003cspan pulumi-lang-nodejs=\"`grantee`\" pulumi-lang-dotnet=\"`Grantee`\" pulumi-lang-go=\"`grantee`\" pulumi-lang-python=\"`grantee`\" pulumi-lang-yaml=\"`grantee`\" pulumi-lang-java=\"`grantee`\"\u003e`grantee`\u003c/span\u003e configuration block supports the following arguments:\n\n* \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e - (Optional) The canonical user ID of the grantee.\n* \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e - (Required) Type of grantee. Valid values: CanonicalUser, Group.\n* \u003cspan pulumi-lang-nodejs=\"`uri`\" pulumi-lang-dotnet=\"`Uri`\" pulumi-lang-go=\"`uri`\" pulumi-lang-python=\"`uri`\" pulumi-lang-yaml=\"`uri`\" pulumi-lang-java=\"`uri`\"\u003e`uri`\u003c/span\u003e - (Optional) The uri of the grantee if type is Group.\n\n## Import\n\nBucket ACLs can be imported using the `{region}/{bucketName}/{acl}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:object/bucketAcl:BucketAcl some_bucket fr-par/some-bucket/private\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:object/bucketAcl:BucketAcl some_bucket fr-par/some-bucket/private@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx\n```\n\n","properties":{"accessControlPolicy":{"$ref":"#/types/scaleway:object/BucketAclAccessControlPolicy:BucketAclAccessControlPolicy","description":"A configuration block that sets the ACL permissions for an object per grantee documented below.\n"},"acl":{"type":"string","description":"The canned ACL you want to apply to the bucket. Refer to the [AWS Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl_overview.html#canned-acl) documentation page to find a list of all the supported canned ACLs.\n"},"bucket":{"type":"string","description":"The bucket's name or regional ID."},"expectedBucketOwner":{"type":"string","description":"The project ID of the expected bucket owner.\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#regions-and-zones) in which the bucket should be created.\n"}},"required":["accessControlPolicy","bucket","projectId"],"inputProperties":{"accessControlPolicy":{"$ref":"#/types/scaleway:object/BucketAclAccessControlPolicy:BucketAclAccessControlPolicy","description":"A configuration block that sets the ACL permissions for an object per grantee documented below.\n"},"acl":{"type":"string","description":"The canned ACL you want to apply to the bucket. Refer to the [AWS Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl_overview.html#canned-acl) documentation page to find a list of all the supported canned ACLs.\n"},"bucket":{"type":"string","description":"The bucket's name or regional ID.","willReplaceOnChanges":true},"expectedBucketOwner":{"type":"string","description":"The project ID of the expected bucket owner.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#regions-and-zones) in which the bucket should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["bucket"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketAcl resources.\n","properties":{"accessControlPolicy":{"$ref":"#/types/scaleway:object/BucketAclAccessControlPolicy:BucketAclAccessControlPolicy","description":"A configuration block that sets the ACL permissions for an object per grantee documented below.\n"},"acl":{"type":"string","description":"The canned ACL you want to apply to the bucket. Refer to the [AWS Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl_overview.html#canned-acl) documentation page to find a list of all the supported canned ACLs.\n"},"bucket":{"type":"string","description":"The bucket's name or regional ID.","willReplaceOnChanges":true},"expectedBucketOwner":{"type":"string","description":"The project ID of the expected bucket owner.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The [region](https://www.scaleway.com/en/developers/api/#regions-and-zones) in which the bucket should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/objectBucketAcl:ObjectBucketAcl"}]},"scaleway:object/bucketLockConfiguration:BucketLockConfiguration":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.BucketLockConfiguration`\" pulumi-lang-dotnet=\"`scaleway.object.BucketLockConfiguration`\" pulumi-lang-go=\"`object.BucketLockConfiguration`\" pulumi-lang-python=\"`object.BucketLockConfiguration`\" pulumi-lang-yaml=\"`scaleway.object.BucketLockConfiguration`\" pulumi-lang-java=\"`scaleway.object.BucketLockConfiguration`\"\u003e`scaleway.object.BucketLockConfiguration`\u003c/span\u003e resource allows you to create and manage an object lock configuration for [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/object-lock/) for more information on object lock.\n\n## Example Usage\n\n### Configure an Object Lock for a new bucket\n\n\u003e **Note:** \u003cspan pulumi-lang-nodejs=\"`objectLockEnabled`\" pulumi-lang-dotnet=\"`ObjectLockEnabled`\" pulumi-lang-go=\"`objectLockEnabled`\" pulumi-lang-python=\"`object_lock_enabled`\" pulumi-lang-yaml=\"`objectLockEnabled`\" pulumi-lang-java=\"`objectLockEnabled`\"\u003e`object_lock_enabled`\u003c/span\u003e must be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e before configuring the lock.\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.object.Bucket(\"main\", {\n    name: \"MyBucket\",\n    acl: \"public-read\",\n    objectLockEnabled: true,\n});\nconst mainBucketLockConfiguration = new scaleway.object.BucketLockConfiguration(\"main\", {\n    bucket: main.name,\n    rule: {\n        defaultRetention: {\n            mode: \"GOVERNANCE\",\n            days: 1,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.object.Bucket(\"main\",\n    name=\"MyBucket\",\n    acl=\"public-read\",\n    object_lock_enabled=True)\nmain_bucket_lock_configuration = scaleway.object.BucketLockConfiguration(\"main\",\n    bucket=main.name,\n    rule={\n        \"default_retention\": {\n            \"mode\": \"GOVERNANCE\",\n            \"days\": 1,\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.Object.Bucket(\"main\", new()\n    {\n        Name = \"MyBucket\",\n        Acl = \"public-read\",\n        ObjectLockEnabled = true,\n    });\n\n    var mainBucketLockConfiguration = new Scaleway.Object.BucketLockConfiguration(\"main\", new()\n    {\n        Bucket = main.Name,\n        Rule = new Scaleway.Object.Inputs.BucketLockConfigurationRuleArgs\n        {\n            DefaultRetention = new Scaleway.Object.Inputs.BucketLockConfigurationRuleDefaultRetentionArgs\n            {\n                Mode = \"GOVERNANCE\",\n                Days = 1,\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\n\t\t\tName:              pulumi.String(\"MyBucket\"),\n\t\t\tAcl:               pulumi.String(\"public-read\"),\n\t\t\tObjectLockEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketLockConfiguration(ctx, \"main\", \u0026object.BucketLockConfigurationArgs{\n\t\t\tBucket: main.Name,\n\t\t\tRule: \u0026object.BucketLockConfigurationRuleArgs{\n\t\t\t\tDefaultRetention: \u0026object.BucketLockConfigurationRuleDefaultRetentionArgs{\n\t\t\t\t\tMode: pulumi.String(\"GOVERNANCE\"),\n\t\t\t\t\tDays: pulumi.Int(1),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketLockConfiguration;\nimport com.pulumi.scaleway.object.BucketLockConfigurationArgs;\nimport com.pulumi.scaleway.object.inputs.BucketLockConfigurationRuleArgs;\nimport com.pulumi.scaleway.object.inputs.BucketLockConfigurationRuleDefaultRetentionArgs;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"MyBucket\")\n            .acl(\"public-read\")\n            .objectLockEnabled(true)\n            .build());\n\n        var mainBucketLockConfiguration = new BucketLockConfiguration(\"mainBucketLockConfiguration\", BucketLockConfigurationArgs.builder()\n            .bucket(main.name())\n            .rule(BucketLockConfigurationRuleArgs.builder()\n                .defaultRetention(BucketLockConfigurationRuleDefaultRetentionArgs.builder()\n                    .mode(\"GOVERNANCE\")\n                    .days(1)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\n    properties:\n      name: MyBucket\n      acl: public-read\n      objectLockEnabled: true\n  mainBucketLockConfiguration:\n    type: scaleway:object:BucketLockConfiguration\n    name: main\n    properties:\n      bucket: ${main.name}\n      rule:\n        defaultRetention:\n          mode: GOVERNANCE\n          days: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Configure an object Lock for an existing bucket\n\n[Contact Scaleway support](https://console.scaleway.com/support/tickets/create) to enable object lock on an existing bucket.\n\n## Import\n\nBucket lock configurations can be imported using the `{region}/{bucketName}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:object/bucketLockConfiguration:BucketLockConfiguration 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:object/bucketLockConfiguration:BucketLockConfiguration some_bucket fr-par/some-bucket@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx\n```\n\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"The region you want to attach the resource to"},"rule":{"$ref":"#/types/scaleway:object/BucketLockConfigurationRule:BucketLockConfigurationRule","description":"Specifies the object lock rule for the specified object.\n"}},"required":["bucket","projectId","rule"],"inputProperties":{"bucket":{"type":"string","description":"The bucket's name or regional ID.","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true},"rule":{"$ref":"#/types/scaleway:object/BucketLockConfigurationRule:BucketLockConfigurationRule","description":"Specifies the object lock rule for the specified object.\n"}},"requiredInputs":["bucket","rule"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketLockConfiguration resources.\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID.","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true},"rule":{"$ref":"#/types/scaleway:object/BucketLockConfigurationRule:BucketLockConfigurationRule","description":"Specifies the object lock rule for the specified object.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/objectBucketLockConfiguration:ObjectBucketLockConfiguration"}]},"scaleway:object/bucketPolicy:BucketPolicy":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.BucketPolicy`\" pulumi-lang-dotnet=\"`scaleway.object.BucketPolicy`\" pulumi-lang-go=\"`object.BucketPolicy`\" pulumi-lang-python=\"`object.BucketPolicy`\" pulumi-lang-yaml=\"`scaleway.object.BucketPolicy`\" pulumi-lang-java=\"`scaleway.object.BucketPolicy`\"\u003e`scaleway.object.BucketPolicy`\u003c/span\u003e resource allows you to create and manage bucket policies for [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/bucket-policy/) for more information on Object Storage bucket policies.\n\n## Example Usage\n\n### Example Usage with an IAM user\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Project ID\nconst _default = scaleway.account.getProject({\n    name: \"default\",\n});\n// IAM configuration\nconst user = scaleway.iam.getUser({\n    email: \"user@scaleway.com\",\n});\nconst policy = new scaleway.iam.Policy(\"policy\", {\n    name: \"object-storage-policy\",\n    userId: user.then(user =\u003e user.id),\n    rules: [{\n        projectIds: [_default.then(_default =\u003e _default.id)],\n        permissionSetNames: [\"ObjectStorageFullAccess\"],\n    }],\n});\n// Object storage configuration\nconst bucket = new scaleway.object.Bucket(\"bucket\", {name: \"some-unique-name\"});\nconst policyBucketPolicy = new scaleway.object.BucketPolicy(\"policy\", {\n    bucket: bucket.name,\n    policy: pulumi.jsonStringify({\n        Version: \"2023-04-17\",\n        Id: \"MyBucketPolicy\",\n        Statement: [{\n            Effect: \"Allow\",\n            Action: [\"s3:*\"],\n            Principal: {\n                SCW: user.then(user =\u003e `user_id:${user.id}`),\n            },\n            Resource: [\n                bucket.name,\n                pulumi.interpolate`${bucket.name}/*`,\n            ],\n        }],\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Project ID\ndefault = scaleway.account.get_project(name=\"default\")\n# IAM configuration\nuser = scaleway.iam.get_user(email=\"user@scaleway.com\")\npolicy = scaleway.iam.Policy(\"policy\",\n    name=\"object-storage-policy\",\n    user_id=user.id,\n    rules=[{\n        \"project_ids\": [default.id],\n        \"permission_set_names\": [\"ObjectStorageFullAccess\"],\n    }])\n# Object storage configuration\nbucket = scaleway.object.Bucket(\"bucket\", name=\"some-unique-name\")\npolicy_bucket_policy = scaleway.object.BucketPolicy(\"policy\",\n    bucket=bucket.name,\n    policy=pulumi.Output.json_dumps({\n        \"Version\": \"2023-04-17\",\n        \"Id\": \"MyBucketPolicy\",\n        \"Statement\": [{\n            \"Effect\": \"Allow\",\n            \"Action\": [\"s3:*\"],\n            \"Principal\": {\n                \"SCW\": f\"user_id:{user.id}\",\n            },\n            \"Resource\": [\n                bucket.name,\n                bucket.name.apply(lambda name: f\"{name}/*\"),\n            ],\n        }],\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Project ID\n    var @default = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    // IAM configuration\n    var user = Scaleway.Iam.GetUser.Invoke(new()\n    {\n        Email = \"user@scaleway.com\",\n    });\n\n    var policy = new Scaleway.Iam.Policy(\"policy\", new()\n    {\n        Name = \"object-storage-policy\",\n        UserId = user.Apply(getUserResult =\u003e getUserResult.Id),\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                ProjectIds = new[]\n                {\n                    @default.Apply(@default =\u003e @default.Apply(getProjectResult =\u003e getProjectResult.Id)),\n                },\n                PermissionSetNames = new[]\n                {\n                    \"ObjectStorageFullAccess\",\n                },\n            },\n        },\n    });\n\n    // Object storage configuration\n    var bucket = new Scaleway.Object.Bucket(\"bucket\", new()\n    {\n        Name = \"some-unique-name\",\n    });\n\n    var policyBucketPolicy = new Scaleway.Object.BucketPolicy(\"policy\", new()\n    {\n        Bucket = bucket.Name,\n        Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"2023-04-17\",\n            [\"Id\"] = \"MyBucketPolicy\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Effect\"] = \"Allow\",\n                    [\"Action\"] = new[]\n                    {\n                        \"s3:*\",\n                    },\n                    [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"SCW\"] = $\"user_id:{user.Apply(getUserResult =\u003e getUserResult.Id)}\",\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        bucket.Name,\n                        bucket.Name.Apply(name =\u003e $\"{name}/*\"),\n                    },\n                },\n            },\n        })),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Project ID\n\t\t_default, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// IAM configuration\n\t\tuser, err := iam.LookupUser(ctx, \u0026iam.LookupUserArgs{\n\t\t\tEmail: pulumi.StringRef(\"user@scaleway.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"policy\", \u0026iam.PolicyArgs{\n\t\t\tName:   pulumi.String(\"object-storage-policy\"),\n\t\t\tUserId: pulumi.String(user.Id),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tProjectIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(_default.Id),\n\t\t\t\t\t},\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ObjectStorageFullAccess\"),\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\t// Object storage configuration\n\t\tbucket, err := object.NewBucket(ctx, \"bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketPolicy(ctx, \"policy\", \u0026object.BucketPolicyArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tPolicy: pulumi.All(bucket.Name, bucket.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tbucketName := _args[0].(string)\n\t\t\t\tbucketName1 := _args[1].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"Version\": \"2023-04-17\",\n\t\t\t\t\t\"Id\":      \"MyBucketPolicy\",\n\t\t\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\"s3:*\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"SCW\": fmt.Sprintf(\"user_id:%v\", user.Id),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\tbucketName,\n\t\t\t\t\t\t\t\tfmt.Sprintf(\"%v/*\", bucketName1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetUserArgs;\nimport com.pulumi.scaleway.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\nimport com.pulumi.scaleway.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketPolicy;\nimport com.pulumi.scaleway.object.BucketPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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        // Project ID\n        final var default = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        // IAM configuration\n        final var user = IamFunctions.getUser(GetUserArgs.builder()\n            .email(\"user@scaleway.com\")\n            .build());\n\n        var policy = new Policy(\"policy\", PolicyArgs.builder()\n            .name(\"object-storage-policy\")\n            .userId(user.id())\n            .rules(PolicyRuleArgs.builder()\n                .projectIds(default_.id())\n                .permissionSetNames(\"ObjectStorageFullAccess\")\n                .build())\n            .build());\n\n        // Object storage configuration\n        var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n            .name(\"some-unique-name\")\n            .build());\n\n        var policyBucketPolicy = new BucketPolicy(\"policyBucketPolicy\", BucketPolicyArgs.builder()\n            .bucket(bucket.name())\n            .policy(Output.tuple(bucket.name(), bucket.name()).applyValue(values -\u003e {\n                var bucketName = values.t1;\n                var bucketName1 = values.t2;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(\"Version\", \"2023-04-17\"),\n                        jsonProperty(\"Id\", \"MyBucketPolicy\"),\n                        jsonProperty(\"Statement\", jsonArray(jsonObject(\n                            jsonProperty(\"Effect\", \"Allow\"),\n                            jsonProperty(\"Action\", jsonArray(\"s3:*\")),\n                            jsonProperty(\"Principal\", jsonObject(\n                                jsonProperty(\"SCW\", String.format(\"user_id:%s\", user.id()))\n                            )),\n                            jsonProperty(\"Resource\", jsonArray(\n                                bucketName, \n                                String.format(\"%s/*\", bucketName1)\n                            ))\n                        )))\n                    ));\n            }))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy:\n    type: scaleway:iam:Policy\n    properties:\n      name: object-storage-policy\n      userId: ${user.id}\n      rules:\n        - projectIds:\n            - ${default.id}\n          permissionSetNames:\n            - ObjectStorageFullAccess\n  # Object storage configuration\n  bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: some-unique-name\n  policyBucketPolicy:\n    type: scaleway:object:BucketPolicy\n    name: policy\n    properties:\n      bucket: ${bucket.name}\n      policy:\n        fn::toJSON:\n          Version: 2023-04-17\n          Id: MyBucketPolicy\n          Statement:\n            - Effect: Allow\n              Action:\n                - s3:*\n              Principal:\n                SCW: user_id:${user.id}\n              Resource:\n                - ${bucket.name}\n                - ${bucket.name}/*\nvariables:\n  # Project ID\n  default:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n  # IAM configuration\n  user:\n    fn::invoke:\n      function: scaleway:iam:getUser\n      arguments:\n        email: user@scaleway.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with an IAM application\n\n### Creating a bucket and delegating read access to an application\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Project ID\nconst _default = scaleway.account.getProject({\n    name: \"default\",\n});\n// IAM configuration\nconst reading_app = new scaleway.iam.Application(\"reading-app\", {name: \"reading-app\"});\nconst policy = new scaleway.iam.Policy(\"policy\", {\n    name: \"object-storage-policy\",\n    applicationId: reading_app.id,\n    rules: [{\n        projectIds: [_default.then(_default =\u003e _default.id)],\n        permissionSetNames: [\"ObjectStorageBucketsRead\"],\n    }],\n});\n// Object storage configuration\nconst bucket = new scaleway.object.Bucket(\"bucket\", {name: \"some-unique-name\"});\nconst policyBucketPolicy = new scaleway.object.BucketPolicy(\"policy\", {\n    bucket: bucket.id,\n    policy: pulumi.jsonStringify({\n        Version: \"2023-04-17\",\n        Statement: [{\n            Sid: \"Delegate read access\",\n            Effect: \"Allow\",\n            Principal: {\n                SCW: pulumi.interpolate`application_id:${reading_app.id}`,\n            },\n            Action: [\n                \"s3:ListBucket\",\n                \"s3:GetObject\",\n            ],\n            Resource: [\n                bucket.name,\n                pulumi.interpolate`${bucket.name}/*`,\n            ],\n        }],\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Project ID\ndefault = scaleway.account.get_project(name=\"default\")\n# IAM configuration\nreading_app = scaleway.iam.Application(\"reading-app\", name=\"reading-app\")\npolicy = scaleway.iam.Policy(\"policy\",\n    name=\"object-storage-policy\",\n    application_id=reading_app.id,\n    rules=[{\n        \"project_ids\": [default.id],\n        \"permission_set_names\": [\"ObjectStorageBucketsRead\"],\n    }])\n# Object storage configuration\nbucket = scaleway.object.Bucket(\"bucket\", name=\"some-unique-name\")\npolicy_bucket_policy = scaleway.object.BucketPolicy(\"policy\",\n    bucket=bucket.id,\n    policy=pulumi.Output.json_dumps({\n        \"Version\": \"2023-04-17\",\n        \"Statement\": [{\n            \"Sid\": \"Delegate read access\",\n            \"Effect\": \"Allow\",\n            \"Principal\": {\n                \"SCW\": reading_app.id.apply(lambda id: f\"application_id:{id}\"),\n            },\n            \"Action\": [\n                \"s3:ListBucket\",\n                \"s3:GetObject\",\n            ],\n            \"Resource\": [\n                bucket.name,\n                bucket.name.apply(lambda name: f\"{name}/*\"),\n            ],\n        }],\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Project ID\n    var @default = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    // IAM configuration\n    var reading_app = new Scaleway.Iam.Application(\"reading-app\", new()\n    {\n        Name = \"reading-app\",\n    });\n\n    var policy = new Scaleway.Iam.Policy(\"policy\", new()\n    {\n        Name = \"object-storage-policy\",\n        ApplicationId = reading_app.Id,\n        Rules = new[]\n        {\n            new Scaleway.Iam.Inputs.PolicyRuleArgs\n            {\n                ProjectIds = new[]\n                {\n                    @default.Apply(@default =\u003e @default.Apply(getProjectResult =\u003e getProjectResult.Id)),\n                },\n                PermissionSetNames = new[]\n                {\n                    \"ObjectStorageBucketsRead\",\n                },\n            },\n        },\n    });\n\n    // Object storage configuration\n    var bucket = new Scaleway.Object.Bucket(\"bucket\", new()\n    {\n        Name = \"some-unique-name\",\n    });\n\n    var policyBucketPolicy = new Scaleway.Object.BucketPolicy(\"policy\", new()\n    {\n        Bucket = bucket.Id,\n        Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"2023-04-17\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Sid\"] = \"Delegate read access\",\n                    [\"Effect\"] = \"Allow\",\n                    [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"SCW\"] = reading_app.Id.Apply(id =\u003e $\"application_id:{id}\"),\n                    },\n                    [\"Action\"] = new[]\n                    {\n                        \"s3:ListBucket\",\n                        \"s3:GetObject\",\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        bucket.Name,\n                        bucket.Name.Apply(name =\u003e $\"{name}/*\"),\n                    },\n                },\n            },\n        })),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Project ID\n\t\t_default, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// IAM configuration\n\t\treading_app, err := iam.NewApplication(ctx, \"reading-app\", \u0026iam.ApplicationArgs{\n\t\t\tName: pulumi.String(\"reading-app\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewPolicy(ctx, \"policy\", \u0026iam.PolicyArgs{\n\t\t\tName:          pulumi.String(\"object-storage-policy\"),\n\t\t\tApplicationId: reading_app.ID(),\n\t\t\tRules: iam.PolicyRuleArray{\n\t\t\t\t\u0026iam.PolicyRuleArgs{\n\t\t\t\t\tProjectIds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(_default.Id),\n\t\t\t\t\t},\n\t\t\t\t\tPermissionSetNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ObjectStorageBucketsRead\"),\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\t// Object storage configuration\n\t\tbucket, err := object.NewBucket(ctx, \"bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketPolicy(ctx, \"policy\", \u0026object.BucketPolicyArgs{\n\t\t\tBucket: bucket.ID(),\n\t\t\tPolicy: pulumi.All(reading_app.ID(), bucket.Name, bucket.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tid := _args[0].(string)\n\t\t\t\tbucketName := _args[1].(string)\n\t\t\t\tbucketName1 := _args[2].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"Version\": \"2023-04-17\",\n\t\t\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"Sid\":    \"Delegate read access\",\n\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"SCW\": fmt.Sprintf(\"application_id:%v\", id),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\"s3:ListBucket\",\n\t\t\t\t\t\t\t\t\"s3:GetObject\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\tbucketName,\n\t\t\t\t\t\t\t\tfmt.Sprintf(\"%v/*\", bucketName1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.iam.Application;\nimport com.pulumi.scaleway.iam.ApplicationArgs;\nimport com.pulumi.scaleway.iam.Policy;\nimport com.pulumi.scaleway.iam.PolicyArgs;\nimport com.pulumi.scaleway.iam.inputs.PolicyRuleArgs;\nimport com.pulumi.scaleway.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketPolicy;\nimport com.pulumi.scaleway.object.BucketPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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        // Project ID\n        final var default = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        // IAM configuration\n        var reading_app = new Application(\"reading-app\", ApplicationArgs.builder()\n            .name(\"reading-app\")\n            .build());\n\n        var policy = new Policy(\"policy\", PolicyArgs.builder()\n            .name(\"object-storage-policy\")\n            .applicationId(reading_app.id())\n            .rules(PolicyRuleArgs.builder()\n                .projectIds(default_.id())\n                .permissionSetNames(\"ObjectStorageBucketsRead\")\n                .build())\n            .build());\n\n        // Object storage configuration\n        var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n            .name(\"some-unique-name\")\n            .build());\n\n        var policyBucketPolicy = new BucketPolicy(\"policyBucketPolicy\", BucketPolicyArgs.builder()\n            .bucket(bucket.id())\n            .policy(Output.tuple(reading_app.id(), bucket.name(), bucket.name()).applyValue(values -\u003e {\n                var id = values.t1;\n                var bucketName = values.t2;\n                var bucketName1 = values.t3;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(\"Version\", \"2023-04-17\"),\n                        jsonProperty(\"Statement\", jsonArray(jsonObject(\n                            jsonProperty(\"Sid\", \"Delegate read access\"),\n                            jsonProperty(\"Effect\", \"Allow\"),\n                            jsonProperty(\"Principal\", jsonObject(\n                                jsonProperty(\"SCW\", String.format(\"application_id:%s\", id))\n                            )),\n                            jsonProperty(\"Action\", jsonArray(\n                                \"s3:ListBucket\", \n                                \"s3:GetObject\"\n                            )),\n                            jsonProperty(\"Resource\", jsonArray(\n                                bucketName, \n                                String.format(\"%s/*\", bucketName1)\n                            ))\n                        )))\n                    ));\n            }))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # IAM configuration\n  reading-app:\n    type: scaleway:iam:Application\n    properties:\n      name: reading-app\n  policy:\n    type: scaleway:iam:Policy\n    properties:\n      name: object-storage-policy\n      applicationId: ${[\"reading-app\"].id}\n      rules:\n        - projectIds:\n            - ${default.id}\n          permissionSetNames:\n            - ObjectStorageBucketsRead\n  # Object storage configuration\n  bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: some-unique-name\n  policyBucketPolicy:\n    type: scaleway:object:BucketPolicy\n    name: policy\n    properties:\n      bucket: ${bucket.id}\n      policy:\n        fn::toJSON:\n          Version: 2023-04-17\n          Statement:\n            - Sid: Delegate read access\n              Effect: Allow\n              Principal:\n                SCW: application_id:${[\"reading-app\"].id}\n              Action:\n                - s3:ListBucket\n                - s3:GetObject\n              Resource:\n                - ${bucket.name}\n                - ${bucket.name}/*\nvariables:\n  # Project ID\n  default:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Reading the bucket with the application\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst reading_app = scaleway.iam.getApplication({\n    name: \"reading-app\",\n});\nconst reading_api_key = new scaleway.iam.ApiKey(\"reading-api-key\", {applicationId: reading_app.then(reading_app =\u003e reading_app.id)});\nconst bucket = scaleway.object.getBucket({\n    name: \"some-unique-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nreading_app = scaleway.iam.get_application(name=\"reading-app\")\nreading_api_key = scaleway.iam.ApiKey(\"reading-api-key\", application_id=reading_app.id)\nbucket = scaleway.object.get_bucket(name=\"some-unique-name\")\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 reading_app = Scaleway.Iam.GetApplication.Invoke(new()\n    {\n        Name = \"reading-app\",\n    });\n\n    var reading_api_key = new Scaleway.Iam.ApiKey(\"reading-api-key\", new()\n    {\n        ApplicationId = reading_app.Apply(reading_app =\u003e reading_app.Apply(getApplicationResult =\u003e getApplicationResult.Id)),\n    });\n\n    var bucket = Scaleway.Object.GetBucket.Invoke(new()\n    {\n        Name = \"some-unique-name\",\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/iam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treading_app, err := iam.LookupApplication(ctx, \u0026iam.LookupApplicationArgs{\n\t\t\tName: pulumi.StringRef(\"reading-app\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewApiKey(ctx, \"reading-api-key\", \u0026iam.ApiKeyArgs{\n\t\t\tApplicationId: pulumi.String(reading_app.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.LookupBucket(ctx, \u0026object.LookupBucketArgs{\n\t\t\tName: pulumi.StringRef(\"some-unique-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetApplicationArgs;\nimport com.pulumi.scaleway.iam.ApiKey;\nimport com.pulumi.scaleway.iam.ApiKeyArgs;\nimport com.pulumi.scaleway.object.ObjectFunctions;\nimport com.pulumi.scaleway.object.inputs.GetBucketArgs;\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 reading-app = IamFunctions.getApplication(GetApplicationArgs.builder()\n            .name(\"reading-app\")\n            .build());\n\n        var reading_api_key = new ApiKey(\"reading-api-key\", ApiKeyArgs.builder()\n            .applicationId(reading_app.id())\n            .build());\n\n        final var bucket = ObjectFunctions.getBucket(GetBucketArgs.builder()\n            .name(\"some-unique-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  reading-api-key:\n    type: scaleway:iam:ApiKey\n    properties:\n      applicationId: ${[\"reading-app\"].id}\nvariables:\n  reading-app:\n    fn::invoke:\n      function: scaleway:iam:getApplication\n      arguments:\n        name: reading-app\n  bucket:\n    fn::invoke:\n      function: scaleway:object:getBucket\n      arguments:\n        name: some-unique-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with deprecated version 2012-10-17\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Project ID\nconst _default = scaleway.account.getProject({\n    name: \"default\",\n});\n// Object storage configuration\nconst bucket = new scaleway.object.Bucket(\"bucket\", {\n    name: \"mia-cross-crash-tests\",\n    region: \"fr-par\",\n});\nconst policy = new scaleway.object.BucketPolicy(\"policy\", {\n    bucket: bucket.name,\n    policy: pulumi.jsonStringify({\n        Version: \"2012-10-17\",\n        Statement: [{\n            Effect: \"Allow\",\n            Action: [\n                \"s3:ListBucket\",\n                \"s3:GetObjectTagging\",\n            ],\n            Principal: {\n                SCW: _default.then(_default =\u003e `project_id:${_default.id}`),\n            },\n            Resource: [\n                bucket.name,\n                pulumi.interpolate`${bucket.name}/*`,\n            ],\n        }],\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Project ID\ndefault = scaleway.account.get_project(name=\"default\")\n# Object storage configuration\nbucket = scaleway.object.Bucket(\"bucket\",\n    name=\"mia-cross-crash-tests\",\n    region=\"fr-par\")\npolicy = scaleway.object.BucketPolicy(\"policy\",\n    bucket=bucket.name,\n    policy=pulumi.Output.json_dumps({\n        \"Version\": \"2012-10-17\",\n        \"Statement\": [{\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"s3:ListBucket\",\n                \"s3:GetObjectTagging\",\n            ],\n            \"Principal\": {\n                \"SCW\": f\"project_id:{default.id}\",\n            },\n            \"Resource\": [\n                bucket.name,\n                bucket.name.apply(lambda name: f\"{name}/*\"),\n            ],\n        }],\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Project ID\n    var @default = Scaleway.Account.GetProject.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    // Object storage configuration\n    var bucket = new Scaleway.Object.Bucket(\"bucket\", new()\n    {\n        Name = \"mia-cross-crash-tests\",\n        Region = \"fr-par\",\n    });\n\n    var policy = new Scaleway.Object.BucketPolicy(\"policy\", new()\n    {\n        Bucket = bucket.Name,\n        Policy = Output.JsonSerialize(Output.Create(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"2012-10-17\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Effect\"] = \"Allow\",\n                    [\"Action\"] = new[]\n                    {\n                        \"s3:ListBucket\",\n                        \"s3:GetObjectTagging\",\n                    },\n                    [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"SCW\"] = @default.Apply(@default =\u003e $\"project_id:{@default.Apply(getProjectResult =\u003e getProjectResult.Id)}\"),\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        bucket.Name,\n                        bucket.Name.Apply(name =\u003e $\"{name}/*\"),\n                    },\n                },\n            },\n        })),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Project ID\n\t\t_default, err := account.LookupProject(ctx, \u0026account.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Object storage configuration\n\t\tbucket, err := object.NewBucket(ctx, \"bucket\", \u0026object.BucketArgs{\n\t\t\tName:   pulumi.String(\"mia-cross-crash-tests\"),\n\t\t\tRegion: pulumi.String(\"fr-par\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketPolicy(ctx, \"policy\", \u0026object.BucketPolicyArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tPolicy: pulumi.All(bucket.Name, bucket.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tbucketName := _args[0].(string)\n\t\t\t\tbucketName1 := _args[1].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\t\t\"s3:ListBucket\",\n\t\t\t\t\t\t\t\t\"s3:GetObjectTagging\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\t\t\"SCW\": fmt.Sprintf(\"project_id:%v\", _default.Id),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\t\tbucketName,\n\t\t\t\t\t\t\t\tfmt.Sprintf(\"%v/*\", bucketName1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectArgs;\nimport com.pulumi.scaleway.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketPolicy;\nimport com.pulumi.scaleway.object.BucketPolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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        // Project ID\n        final var default = AccountFunctions.getProject(GetProjectArgs.builder()\n            .name(\"default\")\n            .build());\n\n        // Object storage configuration\n        var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n            .name(\"mia-cross-crash-tests\")\n            .region(\"fr-par\")\n            .build());\n\n        var policy = new BucketPolicy(\"policy\", BucketPolicyArgs.builder()\n            .bucket(bucket.name())\n            .policy(Output.tuple(bucket.name(), bucket.name()).applyValue(values -\u003e {\n                var bucketName = values.t1;\n                var bucketName1 = values.t2;\n                return serializeJson(\n                    jsonObject(\n                        jsonProperty(\"Version\", \"2012-10-17\"),\n                        jsonProperty(\"Statement\", jsonArray(jsonObject(\n                            jsonProperty(\"Effect\", \"Allow\"),\n                            jsonProperty(\"Action\", jsonArray(\n                                \"s3:ListBucket\", \n                                \"s3:GetObjectTagging\"\n                            )),\n                            jsonProperty(\"Principal\", jsonObject(\n                                jsonProperty(\"SCW\", String.format(\"project_id:%s\", default_.id()))\n                            )),\n                            jsonProperty(\"Resource\", jsonArray(\n                                bucketName, \n                                String.format(\"%s/*\", bucketName1)\n                            ))\n                        )))\n                    ));\n            }))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Object storage configuration\n  bucket:\n    type: scaleway:object:Bucket\n    properties:\n      name: mia-cross-crash-tests\n      region: fr-par\n  policy:\n    type: scaleway:object:BucketPolicy\n    properties:\n      bucket: ${bucket.name}\n      policy:\n        fn::toJSON:\n          Version: 2012-10-17\n          Statement:\n            - Effect: Allow\n              Action:\n                - s3:ListBucket\n                - s3:GetObjectTagging\n              Principal:\n                SCW: project_id:${default.id}\n              Resource:\n                - ${bucket.name}\n                - ${bucket.name}/*\nvariables:\n  # Project ID\n  default:\n    fn::invoke:\n      function: scaleway:account:getProject\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**NB:** To configure the AWS provider with Scaleway credentials, refer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/object-storage-aws-cli/).\n\n## Import\n\nBucket policies can be imported using the `{region}/{bucketName}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:object/bucketPolicy:BucketPolicy 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:object/bucketPolicy:BucketPolicy some_bucket fr-par/some-bucket@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx\n```\n\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"policy":{"type":"string","description":"The text of the policy."},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"The Scaleway region this bucket resides in.\n"}},"required":["bucket","policy","projectId"],"inputProperties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"policy":{"type":"string","description":"The text of the policy."},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The Scaleway region this bucket resides in.\n","willReplaceOnChanges":true}},"requiredInputs":["bucket","policy"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketPolicy resources.\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"policy":{"type":"string","description":"The text of the policy."},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The Scaleway region this bucket resides in.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/objectBucketPolicy:ObjectBucketPolicy"}]},"scaleway:object/bucketWebsiteConfiguration:BucketWebsiteConfiguration":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.BucketWebsiteConfiguration`\" pulumi-lang-dotnet=\"`scaleway.object.BucketWebsiteConfiguration`\" pulumi-lang-go=\"`object.BucketWebsiteConfiguration`\" pulumi-lang-python=\"`object.BucketWebsiteConfiguration`\" pulumi-lang-yaml=\"`scaleway.object.BucketWebsiteConfiguration`\" pulumi-lang-java=\"`scaleway.object.BucketWebsiteConfiguration`\"\u003e`scaleway.object.BucketWebsiteConfiguration`\u003c/span\u003e resource allows you to deploy and manage a bucket website with [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/how-to/use-bucket-website/) for more information on bucket websites.\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 test = new scaleway.object.Bucket(\"test\", {\n    name: \"my-bucket\",\n    acl: \"public-read\",\n});\nconst someFile = new scaleway.object.Item(\"some_file\", {\n    bucket: test.name,\n    key: \"index.html\",\n    file: \"index.html\",\n    visibility: \"public-read\",\n    contentType: \"text/html\",\n});\nconst testBucketWebsiteConfiguration = new scaleway.object.BucketWebsiteConfiguration(\"test\", {\n    bucket: test.name,\n    indexDocument: {\n        suffix: \"index.html\",\n    },\n    errorDocument: {\n        key: \"error.html\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ntest = scaleway.object.Bucket(\"test\",\n    name=\"my-bucket\",\n    acl=\"public-read\")\nsome_file = scaleway.object.Item(\"some_file\",\n    bucket=test.name,\n    key=\"index.html\",\n    file=\"index.html\",\n    visibility=\"public-read\",\n    content_type=\"text/html\")\ntest_bucket_website_configuration = scaleway.object.BucketWebsiteConfiguration(\"test\",\n    bucket=test.name,\n    index_document={\n        \"suffix\": \"index.html\",\n    },\n    error_document={\n        \"key\": \"error.html\",\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 test = new Scaleway.Object.Bucket(\"test\", new()\n    {\n        Name = \"my-bucket\",\n        Acl = \"public-read\",\n    });\n\n    var someFile = new Scaleway.Object.Item(\"some_file\", new()\n    {\n        Bucket = test.Name,\n        Key = \"index.html\",\n        File = \"index.html\",\n        Visibility = \"public-read\",\n        ContentType = \"text/html\",\n    });\n\n    var testBucketWebsiteConfiguration = new Scaleway.Object.BucketWebsiteConfiguration(\"test\", new()\n    {\n        Bucket = test.Name,\n        IndexDocument = new Scaleway.Object.Inputs.BucketWebsiteConfigurationIndexDocumentArgs\n        {\n            Suffix = \"index.html\",\n        },\n        ErrorDocument = new Scaleway.Object.Inputs.BucketWebsiteConfigurationErrorDocumentArgs\n        {\n            Key = \"error.html\",\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := object.NewBucket(ctx, \"test\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"my-bucket\"),\n\t\t\tAcl:  pulumi.String(\"public-read\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewItem(ctx, \"some_file\", \u0026object.ItemArgs{\n\t\t\tBucket:      test.Name,\n\t\t\tKey:         pulumi.String(\"index.html\"),\n\t\t\tFile:        pulumi.String(\"index.html\"),\n\t\t\tVisibility:  pulumi.String(\"public-read\"),\n\t\t\tContentType: pulumi.String(\"text/html\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketWebsiteConfiguration(ctx, \"test\", \u0026object.BucketWebsiteConfigurationArgs{\n\t\t\tBucket: test.Name,\n\t\t\tIndexDocument: \u0026object.BucketWebsiteConfigurationIndexDocumentArgs{\n\t\t\t\tSuffix: pulumi.String(\"index.html\"),\n\t\t\t},\n\t\t\tErrorDocument: \u0026object.BucketWebsiteConfigurationErrorDocumentArgs{\n\t\t\t\tKey: pulumi.String(\"error.html\"),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.Item;\nimport com.pulumi.scaleway.object.ItemArgs;\nimport com.pulumi.scaleway.object.BucketWebsiteConfiguration;\nimport com.pulumi.scaleway.object.BucketWebsiteConfigurationArgs;\nimport com.pulumi.scaleway.object.inputs.BucketWebsiteConfigurationIndexDocumentArgs;\nimport com.pulumi.scaleway.object.inputs.BucketWebsiteConfigurationErrorDocumentArgs;\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 test = new Bucket(\"test\", BucketArgs.builder()\n            .name(\"my-bucket\")\n            .acl(\"public-read\")\n            .build());\n\n        var someFile = new Item(\"someFile\", ItemArgs.builder()\n            .bucket(test.name())\n            .key(\"index.html\")\n            .file(\"index.html\")\n            .visibility(\"public-read\")\n            .contentType(\"text/html\")\n            .build());\n\n        var testBucketWebsiteConfiguration = new BucketWebsiteConfiguration(\"testBucketWebsiteConfiguration\", BucketWebsiteConfigurationArgs.builder()\n            .bucket(test.name())\n            .indexDocument(BucketWebsiteConfigurationIndexDocumentArgs.builder()\n                .suffix(\"index.html\")\n                .build())\n            .errorDocument(BucketWebsiteConfigurationErrorDocumentArgs.builder()\n                .key(\"error.html\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: scaleway:object:Bucket\n    properties:\n      name: my-bucket\n      acl: public-read\n  someFile:\n    type: scaleway:object:Item\n    name: some_file\n    properties:\n      bucket: ${test.name}\n      key: index.html\n      file: index.html\n      visibility: public-read\n      contentType: text/html\n  testBucketWebsiteConfiguration:\n    type: scaleway:object:BucketWebsiteConfiguration\n    name: test\n    properties:\n      bucket: ${test.name}\n      indexDocument:\n        suffix: index.html\n      errorDocument:\n        key: error.html\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With A Bucket Policy\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.object.Bucket(\"main\", {\n    name: \"MyBucket\",\n    acl: \"public-read\",\n});\nconst mainBucketPolicy = new scaleway.object.BucketPolicy(\"main\", {\n    bucket: main.id,\n    policy: JSON.stringify({\n        Version: \"2012-10-17\",\n        Id: \"MyPolicy\",\n        Statement: [{\n            Sid: \"GrantToEveryone\",\n            Effect: \"Allow\",\n            Principal: \"*\",\n            Action: [\"s3:GetObject\"],\n            Resource: [\"\u003cbucket-name\u003e/*\"],\n        }],\n    }),\n});\nconst mainBucketWebsiteConfiguration = new scaleway.object.BucketWebsiteConfiguration(\"main\", {\n    bucket: main.id,\n    indexDocument: {\n        suffix: \"index.html\",\n    },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.object.Bucket(\"main\",\n    name=\"MyBucket\",\n    acl=\"public-read\")\nmain_bucket_policy = scaleway.object.BucketPolicy(\"main\",\n    bucket=main.id,\n    policy=json.dumps({\n        \"Version\": \"2012-10-17\",\n        \"Id\": \"MyPolicy\",\n        \"Statement\": [{\n            \"Sid\": \"GrantToEveryone\",\n            \"Effect\": \"Allow\",\n            \"Principal\": \"*\",\n            \"Action\": [\"s3:GetObject\"],\n            \"Resource\": [\"\u003cbucket-name\u003e/*\"],\n        }],\n    }))\nmain_bucket_website_configuration = scaleway.object.BucketWebsiteConfiguration(\"main\",\n    bucket=main.id,\n    index_document={\n        \"suffix\": \"index.html\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Object.Bucket(\"main\", new()\n    {\n        Name = \"MyBucket\",\n        Acl = \"public-read\",\n    });\n\n    var mainBucketPolicy = new Scaleway.Object.BucketPolicy(\"main\", new()\n    {\n        Bucket = main.Id,\n        Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Version\"] = \"2012-10-17\",\n            [\"Id\"] = \"MyPolicy\",\n            [\"Statement\"] = new[]\n            {\n                new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"Sid\"] = \"GrantToEveryone\",\n                    [\"Effect\"] = \"Allow\",\n                    [\"Principal\"] = \"*\",\n                    [\"Action\"] = new[]\n                    {\n                        \"s3:GetObject\",\n                    },\n                    [\"Resource\"] = new[]\n                    {\n                        \"\u003cbucket-name\u003e/*\",\n                    },\n                },\n            },\n        }),\n    });\n\n    var mainBucketWebsiteConfiguration = new Scaleway.Object.BucketWebsiteConfiguration(\"main\", new()\n    {\n        Bucket = main.Id,\n        IndexDocument = new Scaleway.Object.Inputs.BucketWebsiteConfigurationIndexDocumentArgs\n        {\n            Suffix = \"index.html\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"MyBucket\"),\n\t\t\tAcl:  pulumi.String(\"public-read\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Id\":      \"MyPolicy\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Sid\":       \"GrantToEveryone\",\n\t\t\t\t\t\"Effect\":    \"Allow\",\n\t\t\t\t\t\"Principal\": \"*\",\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"s3:GetObject\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Resource\": []string{\n\t\t\t\t\t\t\"\u003cbucket-name\u003e/*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = object.NewBucketPolicy(ctx, \"main\", \u0026object.BucketPolicyArgs{\n\t\t\tBucket: main.ID(),\n\t\t\tPolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewBucketWebsiteConfiguration(ctx, \"main\", \u0026object.BucketWebsiteConfigurationArgs{\n\t\t\tBucket: main.ID(),\n\t\t\tIndexDocument: \u0026object.BucketWebsiteConfigurationIndexDocumentArgs{\n\t\t\t\tSuffix: pulumi.String(\"index.html\"),\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.BucketPolicy;\nimport com.pulumi.scaleway.object.BucketPolicyArgs;\nimport com.pulumi.scaleway.object.BucketWebsiteConfiguration;\nimport com.pulumi.scaleway.object.BucketWebsiteConfigurationArgs;\nimport com.pulumi.scaleway.object.inputs.BucketWebsiteConfigurationIndexDocumentArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"MyBucket\")\n            .acl(\"public-read\")\n            .build());\n\n        var mainBucketPolicy = new BucketPolicy(\"mainBucketPolicy\", BucketPolicyArgs.builder()\n            .bucket(main.id())\n            .policy(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Version\", \"2012-10-17\"),\n                    jsonProperty(\"Id\", \"MyPolicy\"),\n                    jsonProperty(\"Statement\", jsonArray(jsonObject(\n                        jsonProperty(\"Sid\", \"GrantToEveryone\"),\n                        jsonProperty(\"Effect\", \"Allow\"),\n                        jsonProperty(\"Principal\", \"*\"),\n                        jsonProperty(\"Action\", jsonArray(\"s3:GetObject\")),\n                        jsonProperty(\"Resource\", jsonArray(\"\u003cbucket-name\u003e/*\"))\n                    )))\n                )))\n            .build());\n\n        var mainBucketWebsiteConfiguration = new BucketWebsiteConfiguration(\"mainBucketWebsiteConfiguration\", BucketWebsiteConfigurationArgs.builder()\n            .bucket(main.id())\n            .indexDocument(BucketWebsiteConfigurationIndexDocumentArgs.builder()\n                .suffix(\"index.html\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\n    properties:\n      name: MyBucket\n      acl: public-read\n  mainBucketPolicy:\n    type: scaleway:object:BucketPolicy\n    name: main\n    properties:\n      bucket: ${main.id}\n      policy:\n        fn::toJSON:\n          Version: 2012-10-17\n          Id: MyPolicy\n          Statement:\n            - Sid: GrantToEveryone\n              Effect: Allow\n              Principal: '*'\n              Action:\n                - s3:GetObject\n              Resource:\n                - \u003cbucket-name\u003e/*\n  mainBucketWebsiteConfiguration:\n    type: scaleway:object:BucketWebsiteConfiguration\n    name: main\n    properties:\n      bucket: ${main.id}\n      indexDocument:\n        suffix: index.html\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBucket website configurations can be imported using the `{region}/{bucketName}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:object/bucketWebsiteConfiguration:BucketWebsiteConfiguration 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:object/bucketWebsiteConfiguration:BucketWebsiteConfiguration some_bucket fr-par/some-bucket@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx\n```\n\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n"},"errorDocument":{"$ref":"#/types/scaleway:object/BucketWebsiteConfigurationErrorDocument:BucketWebsiteConfigurationErrorDocument","description":"The name of the error file for the website detailed below.\n"},"indexDocument":{"$ref":"#/types/scaleway:object/BucketWebsiteConfigurationIndexDocument:BucketWebsiteConfigurationIndexDocument","description":"The name of the index file for the website detailed below.\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"The region you want to attach the resource to"},"websiteDomain":{"type":"string","description":"The domain of the website endpoint. This is used to create DNS alias [records](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/manage-dns-records/).\n"},"websiteEndpoint":{"type":"string","description":"The website endpoint.\n"}},"required":["bucket","indexDocument","projectId","websiteDomain","websiteEndpoint"],"inputProperties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"errorDocument":{"$ref":"#/types/scaleway:object/BucketWebsiteConfigurationErrorDocument:BucketWebsiteConfigurationErrorDocument","description":"The name of the error file for the website detailed below.\n"},"indexDocument":{"$ref":"#/types/scaleway:object/BucketWebsiteConfigurationIndexDocument:BucketWebsiteConfigurationIndexDocument","description":"The name of the index file for the website detailed below.\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true}},"requiredInputs":["bucket","indexDocument"],"stateInputs":{"description":"Input properties used for looking up and filtering BucketWebsiteConfiguration resources.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n","willReplaceOnChanges":true},"errorDocument":{"$ref":"#/types/scaleway:object/BucketWebsiteConfigurationErrorDocument:BucketWebsiteConfigurationErrorDocument","description":"The name of the error file for the website detailed below.\n"},"indexDocument":{"$ref":"#/types/scaleway:object/BucketWebsiteConfigurationIndexDocument:BucketWebsiteConfigurationIndexDocument","description":"The name of the index file for the website detailed below.\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The region you want to attach the resource to","willReplaceOnChanges":true},"websiteDomain":{"type":"string","description":"The domain of the website endpoint. This is used to create DNS alias [records](https://www.scaleway.com/en/docs/network/domains-and-dns/how-to/manage-dns-records/).\n"},"websiteEndpoint":{"type":"string","description":"The website endpoint.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/objectBucketWebsiteConfiguration:ObjectBucketWebsiteConfiguration"}]},"scaleway:object/item:Item":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.Item`\" pulumi-lang-dotnet=\"`scaleway.object.Item`\" pulumi-lang-go=\"`object.Item`\" pulumi-lang-python=\"`object.Item`\" pulumi-lang-yaml=\"`scaleway.object.Item`\" pulumi-lang-java=\"`scaleway.object.Item`\"\u003e`scaleway.object.Item`\u003c/span\u003e resource allows you to create and manage objects for [Scaleway Object storage](https://www.scaleway.com/en/docs/object-storage/).\n\nRefer to the [dedicated documentation](https://www.scaleway.com/en/docs/object-storage/how-to/upload-files-into-a-bucket/) for more information on Object Storage objects.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\nimport * as std from \"@pulumi/std\";\n\nconst someBucket = new scaleway.object.Bucket(\"some_bucket\", {name: \"some-unique-name\"});\nconst someFile = new scaleway.object.Item(\"some_file\", {\n    bucket: someBucket.id,\n    key: \"object_path\",\n    file: \"myfile\",\n    hash: std.index.filemd5({\n        input: \"myfile\",\n    }).result,\n});\n```\n```python\nimport pulumi\nimport pulumi_std as std\nimport pulumiverse_scaleway as scaleway\n\nsome_bucket = scaleway.object.Bucket(\"some_bucket\", name=\"some-unique-name\")\nsome_file = scaleway.object.Item(\"some_file\",\n    bucket=some_bucket.id,\n    key=\"object_path\",\n    file=\"myfile\",\n    hash=std.index.filemd5(input=\"myfile\")[\"result\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var someBucket = new Scaleway.Object.Bucket(\"some_bucket\", new()\n    {\n        Name = \"some-unique-name\",\n    });\n\n    var someFile = new Scaleway.Object.Item(\"some_file\", new()\n    {\n        Bucket = someBucket.Id,\n        Key = \"object_path\",\n        File = \"myfile\",\n        Hash = Std.Index.Filemd5.Invoke(new()\n        {\n            Input = \"myfile\",\n        }).Result,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsomeBucket, err := object.NewBucket(ctx, \"some_bucket\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"some-unique-name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFilemd5, err := std.Filemd5(ctx, map[string]interface{}{\n\t\t\t\"input\": \"myfile\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = object.NewItem(ctx, \"some_file\", \u0026object.ItemArgs{\n\t\t\tBucket: someBucket.ID(),\n\t\t\tKey:    pulumi.String(\"object_path\"),\n\t\t\tFile:   pulumi.String(\"myfile\"),\n\t\t\tHash:   invokeFilemd5.Result,\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.Item;\nimport com.pulumi.scaleway.object.ItemArgs;\nimport com.pulumi.std.StdFunctions;\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 Bucket(\"someBucket\", BucketArgs.builder()\n            .name(\"some-unique-name\")\n            .build());\n\n        var someFile = new Item(\"someFile\", ItemArgs.builder()\n            .bucket(someBucket.id())\n            .key(\"object_path\")\n            .file(\"myfile\")\n            .hash(StdFunctions.filemd5(Map.of(\"input\", \"myfile\")).result())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  someBucket:\n    type: scaleway:object:Bucket\n    name: some_bucket\n    properties:\n      name: some-unique-name\n  someFile:\n    type: scaleway:object:Item\n    name: some_file\n    properties:\n      bucket: ${someBucket.id}\n      key: object_path\n      file: myfile\n      hash:\n        fn::invoke:\n          function: std:filemd5\n          arguments:\n            input: myfile\n          return: result\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nObjects can be imported using the `{region}/{bucketName}/{objectKey}` identifier, as shown below:\n\nbash\n\n```sh\n$ pulumi import scaleway:object/item:Item some_object fr-par/some-bucket/some-file\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:object/item:Item some_object fr-par/some-bucket/some-file@xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx\n```\n\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"content":{"type":"string","description":"The content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentBase64":{"type":"string","description":"The base64-encoded content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n\n\u003e **Note:** Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentType":{"type":"string","description":"The standard MIME type of the object's content (e.g., 'application/json', 'text/plain'). This specifies how the object should be interpreted by clients. See RFC 9110: \u003chttps://www.rfc-editor.org/rfc/rfc9110.html#name-content-type\u003e\n"},"file":{"type":"string","description":"The name of the file to upload, defaults to an empty file.\n"},"hash":{"type":"string","description":"Hash of the file, used to trigger the upload on file change.\n"},"key":{"type":"string","description":"The path to the object.\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of metadata used for the object (keys must be lowercase).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to"},"region":{"type":"string","description":"The Scaleway region the bucket resides in.\n"},"sseCustomerKey":{"type":"string","description":"Customer's encryption keys to encrypt data (SSE-C)\n","secret":true},"storageClass":{"type":"string","description":"Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class) (`STANDARD`, `GLACIER`, or `ONEZONE_IA`) used to store the object.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of tags.\n"},"visibility":{"type":"string","description":"Visibility of the object, `public-read` or \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n"}},"required":["bucket","contentType","key","projectId","visibility"],"inputProperties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"content":{"type":"string","description":"The content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentBase64":{"type":"string","description":"The base64-encoded content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n\n\u003e **Note:** Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentType":{"type":"string","description":"The standard MIME type of the object's content (e.g., 'application/json', 'text/plain'). This specifies how the object should be interpreted by clients. See RFC 9110: \u003chttps://www.rfc-editor.org/rfc/rfc9110.html#name-content-type\u003e\n"},"file":{"type":"string","description":"The name of the file to upload, defaults to an empty file.\n"},"hash":{"type":"string","description":"Hash of the file, used to trigger the upload on file change.\n"},"key":{"type":"string","description":"The path to the object.\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of metadata used for the object (keys must be lowercase).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The Scaleway region the bucket resides in.\n","willReplaceOnChanges":true},"sseCustomerKey":{"type":"string","description":"Customer's encryption keys to encrypt data (SSE-C)\n","secret":true},"storageClass":{"type":"string","description":"Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class) (`STANDARD`, `GLACIER`, or `ONEZONE_IA`) used to store the object.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of tags.\n"},"visibility":{"type":"string","description":"Visibility of the object, `public-read` or \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n"}},"requiredInputs":["bucket","key"],"stateInputs":{"description":"Input properties used for looking up and filtering Item resources.\n","properties":{"bucket":{"type":"string","description":"The bucket's name or regional ID."},"content":{"type":"string","description":"The content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentBase64":{"type":"string","description":"The base64-encoded content of the file to upload. Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n\n\u003e **Note:** Only one of \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`content`\" pulumi-lang-dotnet=\"`Content`\" pulumi-lang-go=\"`content`\" pulumi-lang-python=\"`content`\" pulumi-lang-yaml=\"`content`\" pulumi-lang-java=\"`content`\"\u003e`content`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`contentBase64`\" pulumi-lang-dotnet=\"`ContentBase64`\" pulumi-lang-go=\"`contentBase64`\" pulumi-lang-python=\"`content_base64`\" pulumi-lang-yaml=\"`contentBase64`\" pulumi-lang-java=\"`contentBase64`\"\u003e`content_base64`\u003c/span\u003e can be defined.\n"},"contentType":{"type":"string","description":"The standard MIME type of the object's content (e.g., 'application/json', 'text/plain'). This specifies how the object should be interpreted by clients. See RFC 9110: \u003chttps://www.rfc-editor.org/rfc/rfc9110.html#name-content-type\u003e\n"},"file":{"type":"string","description":"The name of the file to upload, defaults to an empty file.\n"},"hash":{"type":"string","description":"Hash of the file, used to trigger the upload on file change.\n"},"key":{"type":"string","description":"The path to the object.\n"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of metadata used for the object (keys must be lowercase).\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to","willReplaceOnChanges":true},"region":{"type":"string","description":"The Scaleway region the bucket resides in.\n","willReplaceOnChanges":true},"sseCustomerKey":{"type":"string","description":"Customer's encryption keys to encrypt data (SSE-C)\n","secret":true},"storageClass":{"type":"string","description":"Specifies the Scaleway [storage class](https://www.scaleway.com/en/docs/object-storage/concepts/#storage-class) (`STANDARD`, `GLACIER`, or `ONEZONE_IA`) used to store the object.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of tags.\n"},"visibility":{"type":"string","description":"Visibility of the object, `public-read` or \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/objectItem:ObjectItem"}]},"scaleway:observability/alertManager:AlertManager":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.AlertManager`\" pulumi-lang-dotnet=\"`scaleway.observability.AlertManager`\" pulumi-lang-go=\"`observability.AlertManager`\" pulumi-lang-python=\"`observability.AlertManager`\" pulumi-lang-yaml=\"`scaleway.observability.AlertManager`\" pulumi-lang-java=\"`scaleway.observability.AlertManager`\"\u003e`scaleway.observability.AlertManager`\u003c/span\u003e resource allows you to enable and manage the Scaleway Cockpit [alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager).\n\nRefer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.\n\n## Example Usage\n\n### Enable preconfigured alerts (Recommended)\n\nUse preconfigured alerts to monitor your Scaleway resources with ready-to-use alert rules:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"my-observability-project\"});\nconst main = new scaleway.observability.Cockpit(\"main\", {projectId: project.id});\nconst all = scaleway.observability.getPreconfiguredAlertOutput({\n    projectId: main.projectId,\n});\nconst mainAlertManager = new scaleway.observability.AlertManager(\"main\", {\n    projectId: main.projectId,\n    preconfiguredAlertIds: all.apply(all =\u003e .filter(alert =\u003e alert.productName == \"instance\").map(alert =\u003e (alert.preconfiguredRuleId))),\n    contactPoints: [{\n        email: \"alerts@example.com\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"my-observability-project\")\nmain = scaleway.observability.Cockpit(\"main\", project_id=project.id)\nall = scaleway.observability.get_preconfigured_alert_output(project_id=main.project_id)\nmain_alert_manager = scaleway.observability.AlertManager(\"main\",\n    project_id=main.project_id,\n    preconfigured_alert_ids=all.apply(lambda all: [alert.preconfigured_rule_id for alert in all.alerts if alert.product_name == \"instance\"]),\n    contact_points=[{\n        \"email\": \"alerts@example.com\",\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"my-observability-project\",\n    });\n\n    var main = new Scaleway.Observability.Cockpit(\"main\", new()\n    {\n        ProjectId = project.Id,\n    });\n\n    var all = Scaleway.Observability.GetPreconfiguredAlert.Invoke(new()\n    {\n        ProjectId = main.ProjectId,\n    });\n\n    var mainAlertManager = new Scaleway.Observability.AlertManager(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        PreconfiguredAlertIds = .Where(alert =\u003e alert.ProductName == \"instance\").Select(alert =\u003e \n        {\n            return alert.PreconfiguredRuleId;\n        }).ToList(),\n        ContactPoints = new[]\n        {\n            new Scaleway.Observability.Inputs.AlertManagerContactPointArgs\n            {\n                Email = \"alerts@example.com\",\n            },\n        },\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Enable the alert manager with contact points\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"tf_test_project\"});\nconst alertManager = new scaleway.observability.AlertManager(\"alert_manager\", {\n    projectId: project.id,\n    contactPoints: [\n        {\n            email: \"alert1@example.com\",\n        },\n        {\n            email: \"alert2@example.com\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"tf_test_project\")\nalert_manager = scaleway.observability.AlertManager(\"alert_manager\",\n    project_id=project.id,\n    contact_points=[\n        {\n            \"email\": \"alert1@example.com\",\n        },\n        {\n            \"email\": \"alert2@example.com\",\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"tf_test_project\",\n    });\n\n    var alertManager = new Scaleway.Observability.AlertManager(\"alert_manager\", new()\n    {\n        ProjectId = project.Id,\n        ContactPoints = new[]\n        {\n            new Scaleway.Observability.Inputs.AlertManagerContactPointArgs\n            {\n                Email = \"alert1@example.com\",\n            },\n            new Scaleway.Observability.Inputs.AlertManagerContactPointArgs\n            {\n                Email = \"alert2@example.com\",\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.NewProject(ctx, \"project\", \u0026account.ProjectArgs{\n\t\t\tName: pulumi.String(\"tf_test_project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = observability.NewAlertManager(ctx, \"alert_manager\", \u0026observability.AlertManagerArgs{\n\t\t\tProjectId: project.ID(),\n\t\t\tContactPoints: observability.AlertManagerContactPointArray{\n\t\t\t\t\u0026observability.AlertManagerContactPointArgs{\n\t\t\t\t\tEmail: pulumi.String(\"alert1@example.com\"),\n\t\t\t\t},\n\t\t\t\t\u0026observability.AlertManagerContactPointArgs{\n\t\t\t\t\tEmail: pulumi.String(\"alert2@example.com\"),\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.account.Project;\nimport com.pulumi.scaleway.account.ProjectArgs;\nimport com.pulumi.scaleway.observability.AlertManager;\nimport com.pulumi.scaleway.observability.AlertManagerArgs;\nimport com.pulumi.scaleway.observability.inputs.AlertManagerContactPointArgs;\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 project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"tf_test_project\")\n            .build());\n\n        var alertManager = new AlertManager(\"alertManager\", AlertManagerArgs.builder()\n            .projectId(project.id())\n            .contactPoints(            \n                AlertManagerContactPointArgs.builder()\n                    .email(\"alert1@example.com\")\n                    .build(),\n                AlertManagerContactPointArgs.builder()\n                    .email(\"alert2@example.com\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: scaleway:account:Project\n    properties:\n      name: tf_test_project\n  alertManager:\n    type: scaleway:observability:AlertManager\n    name: alert_manager\n    properties:\n      projectId: ${project.id}\n      contactPoints:\n        - email: alert1@example.com\n        - email: alert2@example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Legacy: Enable managed alerts (Deprecated)\n\n\u003e **Deprecated:** The \u003cspan pulumi-lang-nodejs=\"`enableManagedAlerts`\" pulumi-lang-dotnet=\"`EnableManagedAlerts`\" pulumi-lang-go=\"`enableManagedAlerts`\" pulumi-lang-python=\"`enable_managed_alerts`\" pulumi-lang-yaml=\"`enableManagedAlerts`\" pulumi-lang-java=\"`enableManagedAlerts`\"\u003e`enable_managed_alerts`\u003c/span\u003e field is deprecated. Use \u003cspan pulumi-lang-nodejs=\"`preconfiguredAlertIds`\" pulumi-lang-dotnet=\"`PreconfiguredAlertIds`\" pulumi-lang-go=\"`preconfiguredAlertIds`\" pulumi-lang-python=\"`preconfigured_alert_ids`\" pulumi-lang-yaml=\"`preconfiguredAlertIds`\" pulumi-lang-java=\"`preconfiguredAlertIds`\"\u003e`preconfigured_alert_ids`\u003c/span\u003e instead.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"tf_test_project\"});\nconst alertManager = new scaleway.observability.AlertManager(\"alert_manager\", {\n    projectId: project.id,\n    enableManagedAlerts: true,\n    contactPoints: [{\n        email: \"alert@example.com\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"tf_test_project\")\nalert_manager = scaleway.observability.AlertManager(\"alert_manager\",\n    project_id=project.id,\n    enable_managed_alerts=True,\n    contact_points=[{\n        \"email\": \"alert@example.com\",\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"tf_test_project\",\n    });\n\n    var alertManager = new Scaleway.Observability.AlertManager(\"alert_manager\", new()\n    {\n        ProjectId = project.Id,\n        EnableManagedAlerts = true,\n        ContactPoints = new[]\n        {\n            new Scaleway.Observability.Inputs.AlertManagerContactPointArgs\n            {\n                Email = \"alert@example.com\",\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.NewProject(ctx, \"project\", \u0026account.ProjectArgs{\n\t\t\tName: pulumi.String(\"tf_test_project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = observability.NewAlertManager(ctx, \"alert_manager\", \u0026observability.AlertManagerArgs{\n\t\t\tProjectId:           project.ID(),\n\t\t\tEnableManagedAlerts: pulumi.Bool(true),\n\t\t\tContactPoints: observability.AlertManagerContactPointArray{\n\t\t\t\t\u0026observability.AlertManagerContactPointArgs{\n\t\t\t\t\tEmail: pulumi.String(\"alert@example.com\"),\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.account.Project;\nimport com.pulumi.scaleway.account.ProjectArgs;\nimport com.pulumi.scaleway.observability.AlertManager;\nimport com.pulumi.scaleway.observability.AlertManagerArgs;\nimport com.pulumi.scaleway.observability.inputs.AlertManagerContactPointArgs;\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 project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"tf_test_project\")\n            .build());\n\n        var alertManager = new AlertManager(\"alertManager\", AlertManagerArgs.builder()\n            .projectId(project.id())\n            .enableManagedAlerts(true)\n            .contactPoints(AlertManagerContactPointArgs.builder()\n                .email(\"alert@example.com\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: scaleway:account:Project\n    properties:\n      name: tf_test_project\n  alertManager:\n    type: scaleway:observability:AlertManager\n    name: alert_manager\n    properties:\n      projectId: ${project.id}\n      enableManagedAlerts: true\n      contactPoints:\n        - email: alert@example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import alert managers using the ID of the Project associated with Cockpit.\n\nbash\n\n```sh\n$ pulumi import scaleway:observability/alertManager:AlertManager main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"alertManagerUrl":{"type":"string","description":"The URL of the alert manager.\n"},"contactPoints":{"type":"array","items":{"$ref":"#/types/scaleway:observability/AlertManagerContactPoint:AlertManagerContactPoint"},"description":"A list of contact points with email addresses that will receive alerts. Each map should contain a single key \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e.\n"},"enableManagedAlerts":{"type":"boolean","description":"**Deprecated** (Optional, Boolean) Use \u003cspan pulumi-lang-nodejs=\"`preconfiguredAlertIds`\" pulumi-lang-dotnet=\"`PreconfiguredAlertIds`\" pulumi-lang-go=\"`preconfiguredAlertIds`\" pulumi-lang-python=\"`preconfigured_alert_ids`\" pulumi-lang-yaml=\"`preconfiguredAlertIds`\" pulumi-lang-java=\"`preconfiguredAlertIds`\"\u003e`preconfigured_alert_ids`\u003c/span\u003e instead. This field will be removed in a future version. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, it enables *all* preconfigured alerts for the project. You cannot filter or disable individual alerts with this legacy flag.\n","deprecationMessage":"Use 'preconfigured_alert_ids' instead. This field will be removed in a future version."},"preconfiguredAlertIds":{"type":"array","items":{"type":"string"},"description":"A set of preconfigured alert rule IDs to enable explicitly. Use the \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-dotnet=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-go=\"`observability.getPreconfiguredAlert`\" pulumi-lang-python=\"`observability_get_preconfigured_alert`\" pulumi-lang-yaml=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-java=\"`scaleway.observability.getPreconfiguredAlert`\"\u003e`scaleway.observability.getPreconfiguredAlert`\u003c/span\u003e data source to list available alerts.\n"},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n"},"region":{"type":"string","description":") The region where the [alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager) should be enabled.\n"}},"required":["alertManagerUrl","enableManagedAlerts","projectId"],"inputProperties":{"contactPoints":{"type":"array","items":{"$ref":"#/types/scaleway:observability/AlertManagerContactPoint:AlertManagerContactPoint"},"description":"A list of contact points with email addresses that will receive alerts. Each map should contain a single key \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e.\n"},"enableManagedAlerts":{"type":"boolean","description":"**Deprecated** (Optional, Boolean) Use \u003cspan pulumi-lang-nodejs=\"`preconfiguredAlertIds`\" pulumi-lang-dotnet=\"`PreconfiguredAlertIds`\" pulumi-lang-go=\"`preconfiguredAlertIds`\" pulumi-lang-python=\"`preconfigured_alert_ids`\" pulumi-lang-yaml=\"`preconfiguredAlertIds`\" pulumi-lang-java=\"`preconfiguredAlertIds`\"\u003e`preconfigured_alert_ids`\u003c/span\u003e instead. This field will be removed in a future version. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, it enables *all* preconfigured alerts for the project. You cannot filter or disable individual alerts with this legacy flag.\n","deprecationMessage":"Use 'preconfigured_alert_ids' instead. This field will be removed in a future version."},"preconfiguredAlertIds":{"type":"array","items":{"type":"string"},"description":"A set of preconfigured alert rule IDs to enable explicitly. Use the \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-dotnet=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-go=\"`observability.getPreconfiguredAlert`\" pulumi-lang-python=\"`observability_get_preconfigured_alert`\" pulumi-lang-yaml=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-java=\"`scaleway.observability.getPreconfiguredAlert`\"\u003e`scaleway.observability.getPreconfiguredAlert`\u003c/span\u003e data source to list available alerts.\n"},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":") The region where the [alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager) should be enabled.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering AlertManager resources.\n","properties":{"alertManagerUrl":{"type":"string","description":"The URL of the alert manager.\n"},"contactPoints":{"type":"array","items":{"$ref":"#/types/scaleway:observability/AlertManagerContactPoint:AlertManagerContactPoint"},"description":"A list of contact points with email addresses that will receive alerts. Each map should contain a single key \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e.\n"},"enableManagedAlerts":{"type":"boolean","description":"**Deprecated** (Optional, Boolean) Use \u003cspan pulumi-lang-nodejs=\"`preconfiguredAlertIds`\" pulumi-lang-dotnet=\"`PreconfiguredAlertIds`\" pulumi-lang-go=\"`preconfiguredAlertIds`\" pulumi-lang-python=\"`preconfigured_alert_ids`\" pulumi-lang-yaml=\"`preconfiguredAlertIds`\" pulumi-lang-java=\"`preconfiguredAlertIds`\"\u003e`preconfigured_alert_ids`\u003c/span\u003e instead. This field will be removed in a future version. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, it enables *all* preconfigured alerts for the project. You cannot filter or disable individual alerts with this legacy flag.\n","deprecationMessage":"Use 'preconfigured_alert_ids' instead. This field will be removed in a future version."},"preconfiguredAlertIds":{"type":"array","items":{"type":"string"},"description":"A set of preconfigured alert rule IDs to enable explicitly. Use the \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-dotnet=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-go=\"`observability.getPreconfiguredAlert`\" pulumi-lang-python=\"`observability_get_preconfigured_alert`\" pulumi-lang-yaml=\"`scaleway.observability.getPreconfiguredAlert`\" pulumi-lang-java=\"`scaleway.observability.getPreconfiguredAlert`\"\u003e`scaleway.observability.getPreconfiguredAlert`\u003c/span\u003e data source to list available alerts.\n"},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":") The region where the [alert manager](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#alert-manager) should be enabled.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/cockpitAlertManager:CockpitAlertManager"}]},"scaleway:observability/cockpit:Cockpit":{"description":"\n\n## Import\n\nThis section explains how to import a Cockpit using its `{project_id}`.\n\nbash\n\n```sh\n$ pulumi import scaleway:observability/cockpit:Cockpit main 11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"endpoints":{"type":"array","items":{"$ref":"#/types/scaleway:observability/CockpitEndpoint:CockpitEndpoint"},"description":"(Deprecated) A list of [endpoints](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#endpoints) related to Cockpit, each with specific URLs:\n","deprecationMessage":"Use 'scaleway_cockpit_source' instead of 'endpoints'. This field will be removed in future releases."},"plan":{"type":"string","description":"Name of the plan to use. Available plans are: free, premium, and custom.\n\u003e **Important:** The plan field is deprecated. Any modification or selection will have no effect.\n\n\u003e **Warning:** This entire resource is deprecated and will be removed after January 1st, 2025. Please migrate to the new specialized resources as described in the Cockpit Migration Guide.\n","deprecationMessage":"The 'plan' attribute is deprecated and no longer has any effect. Future updates will remove this attribute entirely."},"planId":{"type":"string","description":"(Deprecated) The ID of the current pricing plan.\n","deprecationMessage":"The 'plan_id' attribute is deprecated and will be removed in a future release."},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n"},"pushUrls":{"type":"array","items":{"$ref":"#/types/scaleway:observability/CockpitPushUrl:CockpitPushUrl"},"description":"[DEPRECATED] Push_url","deprecationMessage":"Please use \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Source`\" pulumi-lang-dotnet=\"`scaleway.observability.Source`\" pulumi-lang-go=\"`observability.Source`\" pulumi-lang-python=\"`observability.Source`\" pulumi-lang-yaml=\"`scaleway.observability.Source`\" pulumi-lang-java=\"`scaleway.observability.Source`\"\u003e`scaleway.observability.Source`\u003c/span\u003e instead"}},"required":["endpoints","planId","projectId","pushUrls"],"inputProperties":{"plan":{"type":"string","description":"Name of the plan to use. Available plans are: free, premium, and custom.\n\u003e **Important:** The plan field is deprecated. Any modification or selection will have no effect.\n\n\u003e **Warning:** This entire resource is deprecated and will be removed after January 1st, 2025. Please migrate to the new specialized resources as described in the Cockpit Migration Guide.\n","deprecationMessage":"The 'plan' attribute is deprecated and no longer has any effect. Future updates will remove this attribute entirely."},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Cockpit resources.\n","properties":{"endpoints":{"type":"array","items":{"$ref":"#/types/scaleway:observability/CockpitEndpoint:CockpitEndpoint"},"description":"(Deprecated) A list of [endpoints](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#endpoints) related to Cockpit, each with specific URLs:\n","deprecationMessage":"Use 'scaleway_cockpit_source' instead of 'endpoints'. This field will be removed in future releases."},"plan":{"type":"string","description":"Name of the plan to use. Available plans are: free, premium, and custom.\n\u003e **Important:** The plan field is deprecated. Any modification or selection will have no effect.\n\n\u003e **Warning:** This entire resource is deprecated and will be removed after January 1st, 2025. Please migrate to the new specialized resources as described in the Cockpit Migration Guide.\n","deprecationMessage":"The 'plan' attribute is deprecated and no longer has any effect. Future updates will remove this attribute entirely."},"planId":{"type":"string","description":"(Deprecated) The ID of the current pricing plan.\n","deprecationMessage":"The 'plan_id' attribute is deprecated and will be removed in a future release."},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"pushUrls":{"type":"array","items":{"$ref":"#/types/scaleway:observability/CockpitPushUrl:CockpitPushUrl"},"description":"[DEPRECATED] Push_url","deprecationMessage":"Please use \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Source`\" pulumi-lang-dotnet=\"`scaleway.observability.Source`\" pulumi-lang-go=\"`observability.Source`\" pulumi-lang-python=\"`observability.Source`\" pulumi-lang-yaml=\"`scaleway.observability.Source`\" pulumi-lang-java=\"`scaleway.observability.Source`\"\u003e`scaleway.observability.Source`\u003c/span\u003e instead"}},"type":"object"},"aliases":[{"type":"scaleway:index/cockpit:Cockpit"}]},"scaleway:observability/grafanaUser:GrafanaUser":{"description":"\n\n## Import\n\nThis section explains how to import Grafana users using the ID of the Project associated with Cockpit, and the Grafana user ID in the `{project_id}/{grafana_user_id}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:observability/grafanaUser:GrafanaUser main 11111111-1111-1111-1111-111111111111/2\n```\n\n","properties":{"grafanaUrl":{"type":"string","description":"URL for Grafana.\n"},"login":{"type":"string","description":"The username of the Grafana user. The \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.\n"},"password":{"type":"string","description":"The password of the Grafana user.\n","secret":true},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n"},"role":{"type":"string","description":"The role assigned to the Grafana user. Must be \u003cspan pulumi-lang-nodejs=\"`editor`\" pulumi-lang-dotnet=\"`Editor`\" pulumi-lang-go=\"`editor`\" pulumi-lang-python=\"`editor`\" pulumi-lang-yaml=\"`editor`\" pulumi-lang-java=\"`editor`\"\u003e`editor`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`viewer`\" pulumi-lang-dotnet=\"`Viewer`\" pulumi-lang-go=\"`viewer`\" pulumi-lang-python=\"`viewer`\" pulumi-lang-yaml=\"`viewer`\" pulumi-lang-java=\"`viewer`\"\u003e`viewer`\u003c/span\u003e.\n"}},"required":["grafanaUrl","login","password","projectId","role"],"inputProperties":{"login":{"type":"string","description":"The username of the Grafana user. The \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"role":{"type":"string","description":"The role assigned to the Grafana user. Must be \u003cspan pulumi-lang-nodejs=\"`editor`\" pulumi-lang-dotnet=\"`Editor`\" pulumi-lang-go=\"`editor`\" pulumi-lang-python=\"`editor`\" pulumi-lang-yaml=\"`editor`\" pulumi-lang-java=\"`editor`\"\u003e`editor`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`viewer`\" pulumi-lang-dotnet=\"`Viewer`\" pulumi-lang-go=\"`viewer`\" pulumi-lang-python=\"`viewer`\" pulumi-lang-yaml=\"`viewer`\" pulumi-lang-java=\"`viewer`\"\u003e`viewer`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["login","role"],"stateInputs":{"description":"Input properties used for looking up and filtering GrafanaUser resources.\n","properties":{"grafanaUrl":{"type":"string","description":"URL for Grafana.\n"},"login":{"type":"string","description":"The username of the Grafana user. The \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e user is not yet available for creation. You need your Grafana username to log in to Grafana and access your dashboards.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"The password of the Grafana user.\n","secret":true},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"role":{"type":"string","description":"The role assigned to the Grafana user. Must be \u003cspan pulumi-lang-nodejs=\"`editor`\" pulumi-lang-dotnet=\"`Editor`\" pulumi-lang-go=\"`editor`\" pulumi-lang-python=\"`editor`\" pulumi-lang-yaml=\"`editor`\" pulumi-lang-java=\"`editor`\"\u003e`editor`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`viewer`\" pulumi-lang-dotnet=\"`Viewer`\" pulumi-lang-go=\"`viewer`\" pulumi-lang-python=\"`viewer`\" pulumi-lang-yaml=\"`viewer`\" pulumi-lang-java=\"`viewer`\"\u003e`viewer`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/cockpitGrafanaUser:CockpitGrafanaUser"}]},"scaleway:observability/source:Source":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Source`\" pulumi-lang-dotnet=\"`scaleway.observability.Source`\" pulumi-lang-go=\"`observability.Source`\" pulumi-lang-python=\"`observability.Source`\" pulumi-lang-yaml=\"`scaleway.observability.Source`\" pulumi-lang-java=\"`scaleway.observability.Source`\"\u003e`scaleway.observability.Source`\u003c/span\u003e resource allows you to create and manage [data sources](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-sources) in Scaleway's Cockpit.\n\nRefer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.\n\n## Example Usage\n\n### Create a data source\n\nThe following command allows you to create a [metrics](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#metric) data source named `my-data-source` in a given Project.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"test project data source\"});\nconst main = new scaleway.observability.Source(\"main\", {\n    projectId: project.id,\n    name: \"my-data-source\",\n    type: \"metrics\",\n    retentionDays: 6,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"test project data source\")\nmain = scaleway.observability.Source(\"main\",\n    project_id=project.id,\n    name=\"my-data-source\",\n    type=\"metrics\",\n    retention_days=6)\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"test project data source\",\n    });\n\n    var main = new Scaleway.Observability.Source(\"main\", new()\n    {\n        ProjectId = project.Id,\n        Name = \"my-data-source\",\n        Type = \"metrics\",\n        RetentionDays = 6,\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.NewProject(ctx, \"project\", \u0026account.ProjectArgs{\n\t\t\tName: pulumi.String(\"test project data source\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = observability.NewSource(ctx, \"main\", \u0026observability.SourceArgs{\n\t\t\tProjectId:     project.ID(),\n\t\t\tName:          pulumi.String(\"my-data-source\"),\n\t\t\tType:          pulumi.String(\"metrics\"),\n\t\t\tRetentionDays: pulumi.Int(6),\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.account.Project;\nimport com.pulumi.scaleway.account.ProjectArgs;\nimport com.pulumi.scaleway.observability.Source;\nimport com.pulumi.scaleway.observability.SourceArgs;\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 project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"test project data source\")\n            .build());\n\n        var main = new Source(\"main\", SourceArgs.builder()\n            .projectId(project.id())\n            .name(\"my-data-source\")\n            .type(\"metrics\")\n            .retentionDays(6)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: scaleway:account:Project\n    properties:\n      name: test project data source\n  main:\n    type: scaleway:observability:Source\n    properties:\n      projectId: ${project.id}\n      name: my-data-source\n      type: metrics\n      retentionDays: 6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import a data source using the ID of the region it is located in, in the `{region}/{id}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:observability/source:Source main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time the data source was created (in RFC 3339 format).\n"},"name":{"type":"string","description":"The name of the data source.\n"},"origin":{"type":"string","description":"The origin of the Cockpit data source.\n"},"projectId":{"type":"string","description":") The ID of the Project the data source is associated with.\n"},"pushUrl":{"type":"string","description":"The URL endpoint used for pushing data to the Cockpit data source.\n"},"region":{"type":"string","description":") The region where the data source is located.\n"},"retentionDays":{"type":"integer","description":"The number of days to retain data in the data source. Must be a value between 1 and 365. For more details on retention policies, please refer to the [Scaleway Retention Documentation](https://www.scaleway.com/en/docs/cockpit/concepts/#retention). Note: Changes to this field will force the creation of a new resource.\n"},"synchronizedWithGrafana":{"type":"boolean","description":"Indicates whether the data source is synchronized with Grafana.\n"},"type":{"type":"string","description":"The [type](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-types) of data source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logs`\" pulumi-lang-dotnet=\"`Logs`\" pulumi-lang-go=\"`logs`\" pulumi-lang-python=\"`logs`\" pulumi-lang-yaml=\"`logs`\" pulumi-lang-java=\"`logs`\"\u003e`logs`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`traces`\" pulumi-lang-dotnet=\"`Traces`\" pulumi-lang-go=\"`traces`\" pulumi-lang-python=\"`traces`\" pulumi-lang-yaml=\"`traces`\" pulumi-lang-java=\"`traces`\"\u003e`traces`\u003c/span\u003e.\n"},"updatedAt":{"type":"string","description":"The date and time the data source was last updated (in RFC 3339 format).\n"},"url":{"type":"string","description":"The URL of the Cockpit data source.\n"}},"required":["createdAt","name","origin","projectId","pushUrl","retentionDays","synchronizedWithGrafana","updatedAt","url"],"inputProperties":{"name":{"type":"string","description":"The name of the data source.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":") The ID of the Project the data source is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":") The region where the data source is located.\n","willReplaceOnChanges":true},"retentionDays":{"type":"integer","description":"The number of days to retain data in the data source. Must be a value between 1 and 365. For more details on retention policies, please refer to the [Scaleway Retention Documentation](https://www.scaleway.com/en/docs/cockpit/concepts/#retention). Note: Changes to this field will force the creation of a new resource.\n"},"type":{"type":"string","description":"The [type](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-types) of data source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logs`\" pulumi-lang-dotnet=\"`Logs`\" pulumi-lang-go=\"`logs`\" pulumi-lang-python=\"`logs`\" pulumi-lang-yaml=\"`logs`\" pulumi-lang-java=\"`logs`\"\u003e`logs`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`traces`\" pulumi-lang-dotnet=\"`Traces`\" pulumi-lang-go=\"`traces`\" pulumi-lang-python=\"`traces`\" pulumi-lang-yaml=\"`traces`\" pulumi-lang-java=\"`traces`\"\u003e`traces`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["retentionDays"],"stateInputs":{"description":"Input properties used for looking up and filtering Source resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time the data source was created (in RFC 3339 format).\n"},"name":{"type":"string","description":"The name of the data source.\n","willReplaceOnChanges":true},"origin":{"type":"string","description":"The origin of the Cockpit data source.\n"},"projectId":{"type":"string","description":") The ID of the Project the data source is associated with.\n","willReplaceOnChanges":true},"pushUrl":{"type":"string","description":"The URL endpoint used for pushing data to the Cockpit data source.\n"},"region":{"type":"string","description":") The region where the data source is located.\n","willReplaceOnChanges":true},"retentionDays":{"type":"integer","description":"The number of days to retain data in the data source. Must be a value between 1 and 365. For more details on retention policies, please refer to the [Scaleway Retention Documentation](https://www.scaleway.com/en/docs/cockpit/concepts/#retention). Note: Changes to this field will force the creation of a new resource.\n"},"synchronizedWithGrafana":{"type":"boolean","description":"Indicates whether the data source is synchronized with Grafana.\n"},"type":{"type":"string","description":"The [type](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-types) of data source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logs`\" pulumi-lang-dotnet=\"`Logs`\" pulumi-lang-go=\"`logs`\" pulumi-lang-python=\"`logs`\" pulumi-lang-yaml=\"`logs`\" pulumi-lang-java=\"`logs`\"\u003e`logs`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`traces`\" pulumi-lang-dotnet=\"`Traces`\" pulumi-lang-go=\"`traces`\" pulumi-lang-python=\"`traces`\" pulumi-lang-yaml=\"`traces`\" pulumi-lang-java=\"`traces`\"\u003e`traces`\u003c/span\u003e.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time the data source was last updated (in RFC 3339 format).\n"},"url":{"type":"string","description":"The URL of the Cockpit data source.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/cockpitSource:CockpitSource"}]},"scaleway:observability/token:Token":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Token`\" pulumi-lang-dotnet=\"`scaleway.observability.Token`\" pulumi-lang-go=\"`observability.Token`\" pulumi-lang-python=\"`observability.Token`\" pulumi-lang-yaml=\"`scaleway.observability.Token`\" pulumi-lang-java=\"`scaleway.observability.Token`\"\u003e`scaleway.observability.Token`\u003c/span\u003e resource allows you to create and manage your Cockpit [tokens](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#tokens).\n\nRefer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.\n\n## Example Usage\n\n### Use a Cockpit token\n\nThe following commands allow you to:\n\n- create a Scaleway Project named `my-project`\n- create a Cockpit token named `my-awesome-token` inside the Project\n- assign \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e permissions to the token for metrics and logs\n- disable \u003cspan pulumi-lang-nodejs=\"`write`\" pulumi-lang-dotnet=\"`Write`\" pulumi-lang-go=\"`write`\" pulumi-lang-python=\"`write`\" pulumi-lang-yaml=\"`write`\" pulumi-lang-java=\"`write`\"\u003e`write`\u003c/span\u003e permissions for metrics and logs\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"my-project\"});\nconst main = new scaleway.observability.Token(\"main\", {\n    projectId: project.id,\n    name: \"my-awesome-token\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"my-project\")\nmain = scaleway.observability.Token(\"main\",\n    project_id=project.id,\n    name=\"my-awesome-token\")\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"my-project\",\n    });\n\n    var main = new Scaleway.Observability.Token(\"main\", new()\n    {\n        ProjectId = project.Id,\n        Name = \"my-awesome-token\",\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.NewProject(ctx, \"project\", \u0026account.ProjectArgs{\n\t\t\tName: pulumi.String(\"my-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = observability.NewToken(ctx, \"main\", \u0026observability.TokenArgs{\n\t\t\tProjectId: project.ID(),\n\t\t\tName:      pulumi.String(\"my-awesome-token\"),\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.account.Project;\nimport com.pulumi.scaleway.account.ProjectArgs;\nimport com.pulumi.scaleway.observability.Token;\nimport com.pulumi.scaleway.observability.TokenArgs;\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 project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"my-project\")\n            .build());\n\n        var main = new Token(\"main\", TokenArgs.builder()\n            .projectId(project.id())\n            .name(\"my-awesome-token\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: scaleway:account:Project\n    properties:\n      name: my-project\n  main:\n    type: scaleway:observability:Token\n    properties:\n      projectId: ${project.id}\n      name: my-awesome-token\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"my-project\"});\n// Create a token that can read metrics and logs but not write\nconst main = new scaleway.observability.Token(\"main\", {\n    projectId: project.id,\n    name: \"my-awesome-token\",\n    scopes: {\n        queryMetrics: true,\n        writeMetrics: false,\n        queryLogs: true,\n        writeLogs: false,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"my-project\")\n# Create a token that can read metrics and logs but not write\nmain = scaleway.observability.Token(\"main\",\n    project_id=project.id,\n    name=\"my-awesome-token\",\n    scopes={\n        \"query_metrics\": True,\n        \"write_metrics\": False,\n        \"query_logs\": True,\n        \"write_logs\": False,\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"my-project\",\n    });\n\n    // Create a token that can read metrics and logs but not write\n    var main = new Scaleway.Observability.Token(\"main\", new()\n    {\n        ProjectId = project.Id,\n        Name = \"my-awesome-token\",\n        Scopes = new Scaleway.Observability.Inputs.TokenScopesArgs\n        {\n            QueryMetrics = true,\n            WriteMetrics = false,\n            QueryLogs = true,\n            WriteLogs = false,\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/account\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := account.NewProject(ctx, \"project\", \u0026account.ProjectArgs{\n\t\t\tName: pulumi.String(\"my-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a token that can read metrics and logs but not write\n\t\t_, err = observability.NewToken(ctx, \"main\", \u0026observability.TokenArgs{\n\t\t\tProjectId: project.ID(),\n\t\t\tName:      pulumi.String(\"my-awesome-token\"),\n\t\t\tScopes: \u0026observability.TokenScopesArgs{\n\t\t\t\tQueryMetrics: pulumi.Bool(true),\n\t\t\t\tWriteMetrics: pulumi.Bool(false),\n\t\t\t\tQueryLogs:    pulumi.Bool(true),\n\t\t\t\tWriteLogs:    pulumi.Bool(false),\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.account.Project;\nimport com.pulumi.scaleway.account.ProjectArgs;\nimport com.pulumi.scaleway.observability.Token;\nimport com.pulumi.scaleway.observability.TokenArgs;\nimport com.pulumi.scaleway.observability.inputs.TokenScopesArgs;\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 project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"my-project\")\n            .build());\n\n        // Create a token that can read metrics and logs but not write\n        var main = new Token(\"main\", TokenArgs.builder()\n            .projectId(project.id())\n            .name(\"my-awesome-token\")\n            .scopes(TokenScopesArgs.builder()\n                .queryMetrics(true)\n                .writeMetrics(false)\n                .queryLogs(true)\n                .writeLogs(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: scaleway:account:Project\n    properties:\n      name: my-project\n  # Create a token that can read metrics and logs but not write\n  main:\n    type: scaleway:observability:Token\n    properties:\n      projectId: ${project.id}\n      name: my-awesome-token\n      scopes:\n        queryMetrics: true\n        writeMetrics: false\n        queryLogs: true\n        writeLogs: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import a Cockpit token using the `{region}/{id}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:observability/token:Token main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the Cockpit Token (Format ISO 8601)"},"name":{"type":"string","description":"The name of the token.\n"},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n"},"region":{"type":"string","description":") The region where the Cockpit token is located.\n"},"scopes":{"$ref":"#/types/scaleway:observability/TokenScopes:TokenScopes","description":"Scopes allowed, each with default values:\n"},"secretKey":{"type":"string","description":"The secret key of the token.\n","secret":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the Cockpit Token (Format ISO 8601)"}},"required":["createdAt","name","projectId","scopes","secretKey","updatedAt"],"inputProperties":{"name":{"type":"string","description":"The name of the token.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":") The region where the Cockpit token is located.\n","willReplaceOnChanges":true},"scopes":{"$ref":"#/types/scaleway:observability/TokenScopes:TokenScopes","description":"Scopes allowed, each with default values:\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Token resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the Cockpit Token (Format ISO 8601)"},"name":{"type":"string","description":"The name of the token.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":") The ID of the Project the Cockpit is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":") The region where the Cockpit token is located.\n","willReplaceOnChanges":true},"scopes":{"$ref":"#/types/scaleway:observability/TokenScopes:TokenScopes","description":"Scopes allowed, each with default values:\n","willReplaceOnChanges":true},"secretKey":{"type":"string","description":"The secret key of the token.\n","secret":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the Cockpit Token (Format ISO 8601)"}},"type":"object"},"aliases":[{"type":"scaleway:index/cockpitToken:CockpitToken"}]},"scaleway:opensearch/deployment:Deployment":{"description":"\n\n## Import\n\nOpenSearch deployments can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:opensearch/deployment:Deployment main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"Date and time of deployment creation (RFC 3339 format).\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/scaleway:opensearch/DeploymentEndpoint:DeploymentEndpoint"},"description":"List of endpoints for accessing the deployment.\n"},"name":{"type":"string","description":"Name of the OpenSearch deployment. If not specified, a random name will be generated.\n"},"nodeAmount":{"type":"integer","description":"Number of nodes in the cluster. Changing this forces recreation of the deployment.\n"},"nodeType":{"type":"string","description":"Type of node to use (e.g., \"SEARCHDB-SHARED-2C-8G\", \"SEARCHDB-DEDICATED-2C-8G\"). Changing this forces recreation of the deployment.\n"},"password":{"type":"string","description":"Password for the OpenSearch user. Must be at least 12 characters long. If not specified, you will need to reset the password through the API or console. Changing this forces recreation of the deployment.\n","secret":true},"privateNetwork":{"$ref":"#/types/scaleway:opensearch/DeploymentPrivateNetwork:DeploymentPrivateNetwork","description":"Private network configuration"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n\n\u003e **Important:** A public endpoint is automatically created by default. Private network endpoints can be added using a separate endpoint resource (coming soon).\n\n\u003e **Important:** The password must be at least 12 characters long. If not provided, you will need to reset it through the Scaleway console or API.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment should be created.\n"},"status":{"type":"string","description":"The status of the deployment (e.g., \"ready\", \"creating\", \"upgrading\").\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to apply to the deployment.\n"},"updatedAt":{"type":"string","description":"Date and time of deployment last update (RFC 3339 format).\n"},"userName":{"type":"string","description":"Username for the deployment. If not specified, the default username will be used. Changing this forces recreation of the deployment.\n"},"version":{"type":"string","description":"OpenSearch version to use (e.g., \"2.0\"). Changing this forces recreation of the deployment.\n"},"volume":{"$ref":"#/types/scaleway:opensearch/DeploymentVolume:DeploymentVolume","description":"Volume configuration for the cluster.\n"}},"required":["createdAt","endpoints","name","nodeAmount","nodeType","projectId","status","updatedAt","version"],"inputProperties":{"name":{"type":"string","description":"Name of the OpenSearch deployment. If not specified, a random name will be generated.\n"},"nodeAmount":{"type":"integer","description":"Number of nodes in the cluster. Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true},"nodeType":{"type":"string","description":"Type of node to use (e.g., \"SEARCHDB-SHARED-2C-8G\", \"SEARCHDB-DEDICATED-2C-8G\"). Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"Password for the OpenSearch user. Must be at least 12 characters long. If not specified, you will need to reset the password through the API or console. Changing this forces recreation of the deployment.\n","secret":true,"willReplaceOnChanges":true},"privateNetwork":{"$ref":"#/types/scaleway:opensearch/DeploymentPrivateNetwork:DeploymentPrivateNetwork","description":"Private network configuration","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n\n\u003e **Important:** A public endpoint is automatically created by default. Private network endpoints can be added using a separate endpoint resource (coming soon).\n\n\u003e **Important:** The password must be at least 12 characters long. If not provided, you will need to reset it through the Scaleway console or API.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment should be created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to apply to the deployment.\n"},"userName":{"type":"string","description":"Username for the deployment. If not specified, the default username will be used. Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"OpenSearch version to use (e.g., \"2.0\"). Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true},"volume":{"$ref":"#/types/scaleway:opensearch/DeploymentVolume:DeploymentVolume","description":"Volume configuration for the cluster.\n"}},"requiredInputs":["nodeAmount","nodeType","version"],"stateInputs":{"description":"Input properties used for looking up and filtering Deployment resources.\n","properties":{"createdAt":{"type":"string","description":"Date and time of deployment creation (RFC 3339 format).\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/scaleway:opensearch/DeploymentEndpoint:DeploymentEndpoint"},"description":"List of endpoints for accessing the deployment.\n"},"name":{"type":"string","description":"Name of the OpenSearch deployment. If not specified, a random name will be generated.\n"},"nodeAmount":{"type":"integer","description":"Number of nodes in the cluster. Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true},"nodeType":{"type":"string","description":"Type of node to use (e.g., \"SEARCHDB-SHARED-2C-8G\", \"SEARCHDB-DEDICATED-2C-8G\"). Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true},"password":{"type":"string","description":"Password for the OpenSearch user. Must be at least 12 characters long. If not specified, you will need to reset the password through the API or console. Changing this forces recreation of the deployment.\n","secret":true,"willReplaceOnChanges":true},"privateNetwork":{"$ref":"#/types/scaleway:opensearch/DeploymentPrivateNetwork:DeploymentPrivateNetwork","description":"Private network configuration","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the deployment is associated with.\n\n\u003e **Important:** A public endpoint is automatically created by default. Private network endpoints can be added using a separate endpoint resource (coming soon).\n\n\u003e **Important:** The password must be at least 12 characters long. If not provided, you will need to reset it through the Scaleway console or API.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the deployment should be created.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the deployment (e.g., \"ready\", \"creating\", \"upgrading\").\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to apply to the deployment.\n"},"updatedAt":{"type":"string","description":"Date and time of deployment last update (RFC 3339 format).\n"},"userName":{"type":"string","description":"Username for the deployment. If not specified, the default username will be used. Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"OpenSearch version to use (e.g., \"2.0\"). Changing this forces recreation of the deployment.\n","willReplaceOnChanges":true},"volume":{"$ref":"#/types/scaleway:opensearch/DeploymentVolume:DeploymentVolume","description":"Volume configuration for the cluster.\n"}},"type":"object"}},"scaleway:redis/cluster:Cluster":{"description":"Creates and manages Scaleway Redis™ clusters.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/managed-database-redis).\n\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\n//## Basic Redis cluster creation\nconst main = new scaleway.redis.Cluster(\"main\", {\n    name: \"test_redis_basic\",\n    version: \"6.2.7\",\n    nodeType: \"RED1-MICRO\",\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    tags: [\n        \"test\",\n        \"redis\",\n    ],\n    clusterSize: 1,\n    tlsEnabled: true,\n    acls: [{\n        ip: \"0.0.0.0/0\",\n        description: \"Allow all\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\n### Basic Redis cluster creation\nmain = scaleway.redis.Cluster(\"main\",\n    name=\"test_redis_basic\",\n    version=\"6.2.7\",\n    node_type=\"RED1-MICRO\",\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    tags=[\n        \"test\",\n        \"redis\",\n    ],\n    cluster_size=1,\n    tls_enabled=True,\n    acls=[{\n        \"ip\": \"0.0.0.0/0\",\n        \"description\": \"Allow all\",\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    //## Basic Redis cluster creation\n    var main = new Scaleway.Redis.Cluster(\"main\", new()\n    {\n        Name = \"test_redis_basic\",\n        Version = \"6.2.7\",\n        NodeType = \"RED1-MICRO\",\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        Tags = new[]\n        {\n            \"test\",\n            \"redis\",\n        },\n        ClusterSize = 1,\n        TlsEnabled = true,\n        Acls = new[]\n        {\n            new Scaleway.Redis.Inputs.ClusterAclArgs\n            {\n                Ip = \"0.0.0.0/0\",\n                Description = \"Allow all\",\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/redis\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ## Basic Redis cluster creation\n\t\t_, err := redis.NewCluster(ctx, \"main\", \u0026redis.ClusterArgs{\n\t\t\tName:     pulumi.String(\"test_redis_basic\"),\n\t\t\tVersion:  pulumi.String(\"6.2.7\"),\n\t\t\tNodeType: pulumi.String(\"RED1-MICRO\"),\n\t\t\tUserName: pulumi.String(\"my_initial_user\"),\n\t\t\tPassword: pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"test\"),\n\t\t\t\tpulumi.String(\"redis\"),\n\t\t\t},\n\t\t\tClusterSize: pulumi.Int(1),\n\t\t\tTlsEnabled:  pulumi.Bool(true),\n\t\t\tAcls: redis.ClusterAclArray{\n\t\t\t\t\u0026redis.ClusterAclArgs{\n\t\t\t\t\tIp:          pulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t\tDescription: pulumi.String(\"Allow all\"),\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.redis.Cluster;\nimport com.pulumi.scaleway.redis.ClusterArgs;\nimport com.pulumi.scaleway.redis.inputs.ClusterAclArgs;\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        //## Basic Redis cluster creation\n        var main = new Cluster(\"main\", ClusterArgs.builder()\n            .name(\"test_redis_basic\")\n            .version(\"6.2.7\")\n            .nodeType(\"RED1-MICRO\")\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .tags(            \n                \"test\",\n                \"redis\")\n            .clusterSize(1)\n            .tlsEnabled(true)\n            .acls(ClusterAclArgs.builder()\n                .ip(\"0.0.0.0/0\")\n                .description(\"Allow all\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ### Basic Redis cluster creation\n  main:\n    type: scaleway:redis:Cluster\n    properties:\n      name: test_redis_basic\n      version: 6.2.7\n      nodeType: RED1-MICRO\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      tags:\n        - test\n        - redis\n      clusterSize: 1\n      tlsEnabled: 'true'\n      acls:\n        - ip: 0.0.0.0/0\n          description: Allow all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRedis™ cluster can be imported using the `{zone}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:redis/cluster:Cluster main fr-par-1/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:redis/ClusterAcl:ClusterAcl"},"description":"List of acl rules, this is cluster's authorized IPs. More details on the ACL section.\n"},"certificate":{"type":"string","description":"The PEM of the certificate used by redis, only when \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e is true\n"},"clusterSize":{"type":"integer","description":"The number of nodes in the Redis™ cluster.\n\n\u003e **Important:**\n\n- Cluster_size = 1 for Standalone mode (single node).\n\n- Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.\n\n- Cluster_size \u003e= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.\n\n\u003e **Important:** If you are using the cluster mode (\u003e=3 nodes), you can set a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e than you initially\ndid, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller\n\u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and recreate your cluster.\n\n\u003e **Important:** If you are using the Standalone mode (1 node), setting a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and\nrecreate your cluster as you will be switching to the cluster mode.\n"},"createdAt":{"type":"string","description":"The date and time of creation of the Redis™ cluster.\n"},"name":{"type":"string","description":"The name of the Redis™ cluster.\n"},"nodeType":{"type":"string","description":"The type of Redis™ cluster you want to create (e.g. `RED1-M`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e. Keep in mind that\nyou cannot downgrade a Redis™ cluster.\n"},"password":{"type":"string","description":"Password for the first user of the Redis™ cluster. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:redis/ClusterPrivateIp:ClusterPrivateIp"},"description":"The list of private IPv4 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:redis/ClusterPrivateNetwork:ClusterPrivateNetwork"},"description":"Describes the Private Network you want to connect to your cluster. If not set, a public\nnetwork will be provided. More details on the Private Network section\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Redis™ cluster is\nassociated with.\n"},"publicNetwork":{"$ref":"#/types/scaleway:redis/ClusterPublicNetwork:ClusterPublicNetwork","description":"(Optional) Public network details. Only one of \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e may be set.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e block exports:\n"},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions\nwith scaleway API or CLI\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Redis™ cluster.\n"},"tlsEnabled":{"type":"boolean","description":"Whether TLS is enabled or not.\n\n\u003e The changes on \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e will force the resource creation.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the Redis™ cluster.\n"},"userName":{"type":"string","description":"Identifier for the first user of the Redis™ cluster.\n"},"version":{"type":"string","description":"Redis™ cluster's version (e.g. `6.2.7`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e. Keep in mind that you\ncannot downgrade a Redis™ cluster.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the\nRedis™ cluster should be created.\n"}},"required":["certificate","clusterSize","createdAt","name","nodeType","privateIps","projectId","publicNetwork","updatedAt","userName","version"],"inputProperties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:redis/ClusterAcl:ClusterAcl"},"description":"List of acl rules, this is cluster's authorized IPs. More details on the ACL section.\n"},"clusterSize":{"type":"integer","description":"The number of nodes in the Redis™ cluster.\n\n\u003e **Important:**\n\n- Cluster_size = 1 for Standalone mode (single node).\n\n- Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.\n\n- Cluster_size \u003e= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.\n\n\u003e **Important:** If you are using the cluster mode (\u003e=3 nodes), you can set a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e than you initially\ndid, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller\n\u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and recreate your cluster.\n\n\u003e **Important:** If you are using the Standalone mode (1 node), setting a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and\nrecreate your cluster as you will be switching to the cluster mode.\n"},"name":{"type":"string","description":"The name of the Redis™ cluster.\n"},"nodeType":{"type":"string","description":"The type of Redis™ cluster you want to create (e.g. `RED1-M`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e. Keep in mind that\nyou cannot downgrade a Redis™ cluster.\n"},"password":{"type":"string","description":"Password for the first user of the Redis™ cluster. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:redis/ClusterPrivateIp:ClusterPrivateIp"},"description":"The list of private IPv4 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:redis/ClusterPrivateNetwork:ClusterPrivateNetwork"},"description":"Describes the Private Network you want to connect to your cluster. If not set, a public\nnetwork will be provided. More details on the Private Network section\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Redis™ cluster is\nassociated with.\n","willReplaceOnChanges":true},"publicNetwork":{"$ref":"#/types/scaleway:redis/ClusterPublicNetwork:ClusterPublicNetwork","description":"(Optional) Public network details. Only one of \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e may be set.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e block exports:\n"},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions\nwith scaleway API or CLI\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Redis™ cluster.\n"},"tlsEnabled":{"type":"boolean","description":"Whether TLS is enabled or not.\n\n\u003e The changes on \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e will force the resource creation.\n","willReplaceOnChanges":true},"userName":{"type":"string","description":"Identifier for the first user of the Redis™ cluster.\n"},"version":{"type":"string","description":"Redis™ cluster's version (e.g. `6.2.7`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e. Keep in mind that you\ncannot downgrade a Redis™ cluster.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the\nRedis™ cluster should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["nodeType","userName","version"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"acls":{"type":"array","items":{"$ref":"#/types/scaleway:redis/ClusterAcl:ClusterAcl"},"description":"List of acl rules, this is cluster's authorized IPs. More details on the ACL section.\n"},"certificate":{"type":"string","description":"The PEM of the certificate used by redis, only when \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e is true\n"},"clusterSize":{"type":"integer","description":"The number of nodes in the Redis™ cluster.\n\n\u003e **Important:**\n\n- Cluster_size = 1 for Standalone mode (single node).\n\n- Cluster_size = 2 for High Availability (HA) mode, with 1 main node and 1 standby node.\n\n- Cluster_size \u003e= 3 for Cluster mode, which requires a minimum of 1 main node and 2 secondary nodes.\n\n\u003e **Important:** If you are using the cluster mode (\u003e=3 nodes), you can set a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e than you initially\ndid, it will migrate the Redis™ cluster but keep in mind that you cannot downgrade a Redis™ cluster, so setting a smaller\n\u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and recreate your cluster.\n\n\u003e **Important:** If you are using the Standalone mode (1 node), setting a bigger \u003cspan pulumi-lang-nodejs=\"`clusterSize`\" pulumi-lang-dotnet=\"`ClusterSize`\" pulumi-lang-go=\"`clusterSize`\" pulumi-lang-python=\"`cluster_size`\" pulumi-lang-yaml=\"`clusterSize`\" pulumi-lang-java=\"`clusterSize`\"\u003e`cluster_size`\u003c/span\u003e will destroy and\nrecreate your cluster as you will be switching to the cluster mode.\n"},"createdAt":{"type":"string","description":"The date and time of creation of the Redis™ cluster.\n"},"name":{"type":"string","description":"The name of the Redis™ cluster.\n"},"nodeType":{"type":"string","description":"The type of Redis™ cluster you want to create (e.g. `RED1-M`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`nodeType`\" pulumi-lang-dotnet=\"`NodeType`\" pulumi-lang-go=\"`nodeType`\" pulumi-lang-python=\"`node_type`\" pulumi-lang-yaml=\"`nodeType`\" pulumi-lang-java=\"`nodeType`\"\u003e`node_type`\u003c/span\u003e. Keep in mind that\nyou cannot downgrade a Redis™ cluster.\n"},"password":{"type":"string","description":"Password for the first user of the Redis™ cluster. Only one of \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e should be specified.\n","secret":true},"passwordWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\n","secret":true},"passwordWoVersion":{"type":"integer","description":"The version of the write-only password. To update the \u003cspan pulumi-lang-nodejs=\"`passwordWo`\" pulumi-lang-dotnet=\"`PasswordWo`\" pulumi-lang-go=\"`passwordWo`\" pulumi-lang-python=\"`password_wo`\" pulumi-lang-yaml=\"`passwordWo`\" pulumi-lang-java=\"`passwordWo`\"\u003e`password_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`passwordWoVersion`\" pulumi-lang-dotnet=\"`PasswordWoVersion`\" pulumi-lang-go=\"`passwordWoVersion`\" pulumi-lang-python=\"`password_wo_version`\" pulumi-lang-yaml=\"`passwordWoVersion`\" pulumi-lang-java=\"`passwordWoVersion`\"\u003e`password_wo_version`\u003c/span\u003e.\n"},"privateIps":{"type":"array","items":{"$ref":"#/types/scaleway:redis/ClusterPrivateIp:ClusterPrivateIp"},"description":"The list of private IPv4 addresses associated with the resource.\n"},"privateNetworks":{"type":"array","items":{"$ref":"#/types/scaleway:redis/ClusterPrivateNetwork:ClusterPrivateNetwork"},"description":"Describes the Private Network you want to connect to your cluster. If not set, a public\nnetwork will be provided. More details on the Private Network section\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the Redis™ cluster is\nassociated with.\n","willReplaceOnChanges":true},"publicNetwork":{"$ref":"#/types/scaleway:redis/ClusterPublicNetwork:ClusterPublicNetwork","description":"(Optional) Public network details. Only one of \u003cspan pulumi-lang-nodejs=\"`privateNetwork`\" pulumi-lang-dotnet=\"`PrivateNetwork`\" pulumi-lang-go=\"`privateNetwork`\" pulumi-lang-python=\"`private_network`\" pulumi-lang-yaml=\"`privateNetwork`\" pulumi-lang-java=\"`privateNetwork`\"\u003e`private_network`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e may be set.\n\u003e The \u003cspan pulumi-lang-nodejs=\"`publicNetwork`\" pulumi-lang-dotnet=\"`PublicNetwork`\" pulumi-lang-go=\"`publicNetwork`\" pulumi-lang-python=\"`public_network`\" pulumi-lang-yaml=\"`publicNetwork`\" pulumi-lang-java=\"`publicNetwork`\"\u003e`public_network`\u003c/span\u003e block exports:\n"},"settings":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of settings for Redis™ cluster. Available settings can be found by listing Redis™ versions\nwith scaleway API or CLI\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the Redis™ cluster.\n"},"tlsEnabled":{"type":"boolean","description":"Whether TLS is enabled or not.\n\n\u003e The changes on \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e will force the resource creation.\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"The date and time of the last update of the Redis™ cluster.\n"},"userName":{"type":"string","description":"Identifier for the first user of the Redis™ cluster.\n"},"version":{"type":"string","description":"Redis™ cluster's version (e.g. `6.2.7`).\n\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e will migrate the Redis™ cluster to the desired \u003cspan pulumi-lang-nodejs=\"`version`\" pulumi-lang-dotnet=\"`Version`\" pulumi-lang-go=\"`version`\" pulumi-lang-python=\"`version`\" pulumi-lang-yaml=\"`version`\" pulumi-lang-java=\"`version`\"\u003e`version`\u003c/span\u003e. Keep in mind that you\ncannot downgrade a Redis™ cluster.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the\nRedis™ cluster should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/redisCluster:RedisCluster"}]},"scaleway:registry/namespace:Namespace":{"description":"Creates and manages Scaleway Container Registry.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/registry).\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.registry.Namespace(\"main\", {\n    name: \"main-cr\",\n    description: \"Main container registry\",\n    isPublic: false,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.registry.Namespace(\"main\",\n    name=\"main-cr\",\n    description=\"Main container registry\",\n    is_public=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumiverse.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Registry.Namespace(\"main\", new()\n    {\n        Name = \"main-cr\",\n        Description = \"Main container registry\",\n        IsPublic = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/registry\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := registry.NewNamespace(ctx, \"main\", \u0026registry.NamespaceArgs{\n\t\t\tName:        pulumi.String(\"main-cr\"),\n\t\t\tDescription: pulumi.String(\"Main container registry\"),\n\t\t\tIsPublic:    pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.registry.Namespace;\nimport com.pulumi.scaleway.registry.NamespaceArgs;\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 Namespace(\"main\", NamespaceArgs.builder()\n            .name(\"main-cr\")\n            .description(\"Main container registry\")\n            .isPublic(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:registry:Namespace\n    properties:\n      name: main-cr\n      description: Main container registry\n      isPublic: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNamespaces can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:registry/namespace:Namespace main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"description":{"type":"string","description":"The description of the namespace.\n"},"endpoint":{"type":"string","description":"Endpoint reachable by Docker.\n"},"isPublic":{"type":"boolean","description":"Whether the images stored in the namespace should be downloadable publicly (docker pull).\n"},"name":{"type":"string","description":"The unique name of the namespace.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the namespace.\n"},"organizationId":{"type":"string","description":"The Organization ID the namespace is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the namespace is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n"}},"required":["endpoint","name","organizationId","projectId"],"inputProperties":{"description":{"type":"string","description":"The description of the namespace.\n"},"isPublic":{"type":"boolean","description":"Whether the images stored in the namespace should be downloadable publicly (docker pull).\n"},"name":{"type":"string","description":"The unique name of the namespace.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the namespace.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the namespace is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Namespace resources.\n","properties":{"description":{"type":"string","description":"The description of the namespace.\n"},"endpoint":{"type":"string","description":"Endpoint reachable by Docker.\n"},"isPublic":{"type":"boolean","description":"Whether the images stored in the namespace should be downloadable publicly (docker pull).\n"},"name":{"type":"string","description":"The unique name of the namespace.\n\n\u003e **Important** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the namespace.\n","willReplaceOnChanges":true},"organizationId":{"type":"string","description":"The Organization ID the namespace is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the namespace is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the namespace should be created.\n","willReplaceOnChanges":true}},"type":"object"},"aliases":[{"type":"scaleway:index/registryNamespace:RegistryNamespace"}]},"scaleway:s2svpn/connection:Connection":{"description":"Creates and manages Scaleway Site-to-Site VPN Connections.\nA connection links a Scaleway VPN Gateway to a Customer Gateway and establishes an IPSec tunnel with BGP routing.\n\nFor more information, see [the main documentation](https://www.scaleway.com/en/docs/site-to-site-vpn/reference-content/understanding-s2svpn/).\n\n## Example Usage\n\n### Basic Connection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst vpc = new scaleway.network.Vpc(\"vpc\", {name: \"my-vpc\"});\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {\n    name: \"my-private-network\",\n    vpcId: vpc.id,\n    ipv4Subnet: {\n        subnet: \"10.0.1.0/24\",\n    },\n});\nconst gateway = new scaleway.s2svpn.Gateway(\"gateway\", {\n    name: \"my-vpn-gateway\",\n    gatewayType: \"VGW-S\",\n    privateNetworkId: pn.id,\n});\nconst customerGw = new scaleway.s2svpn.CustomerGateway(\"customer_gw\", {\n    name: \"my-customer-gateway\",\n    ipv4Public: \"203.0.113.1\",\n    asn: 65000,\n});\nconst policy = new scaleway.s2svpn.RoutingPolicy(\"policy\", {\n    name: \"my-routing-policy\",\n    prefixFilterIns: [\"10.0.2.0/24\"],\n    prefixFilterOuts: [\"10.0.1.0/24\"],\n});\nconst main = new scaleway.s2svpn.Connection(\"main\", {\n    name: \"my-vpn-connection\",\n    vpnGatewayId: gateway.id,\n    customerGatewayId: customerGw.id,\n    initiationPolicy: \"customer_gateway\",\n    enableRoutePropagation: true,\n    bgpConfigIpv4s: [{\n        routingPolicyId: policy.id,\n        privateIp: \"169.254.0.1/30\",\n        peerPrivateIp: \"169.254.0.2/30\",\n    }],\n    ikev2Ciphers: [{\n        encryption: \"aes256\",\n        integrity: \"sha256\",\n        dhGroup: \"modp2048\",\n    }],\n    espCiphers: [{\n        encryption: \"aes256\",\n        integrity: \"sha256\",\n        dhGroup: \"modp2048\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc = scaleway.network.Vpc(\"vpc\", name=\"my-vpc\")\npn = scaleway.network.PrivateNetwork(\"pn\",\n    name=\"my-private-network\",\n    vpc_id=vpc.id,\n    ipv4_subnet={\n        \"subnet\": \"10.0.1.0/24\",\n    })\ngateway = scaleway.s2svpn.Gateway(\"gateway\",\n    name=\"my-vpn-gateway\",\n    gateway_type=\"VGW-S\",\n    private_network_id=pn.id)\ncustomer_gw = scaleway.s2svpn.CustomerGateway(\"customer_gw\",\n    name=\"my-customer-gateway\",\n    ipv4_public=\"203.0.113.1\",\n    asn=65000)\npolicy = scaleway.s2svpn.RoutingPolicy(\"policy\",\n    name=\"my-routing-policy\",\n    prefix_filter_ins=[\"10.0.2.0/24\"],\n    prefix_filter_outs=[\"10.0.1.0/24\"])\nmain = scaleway.s2svpn.Connection(\"main\",\n    name=\"my-vpn-connection\",\n    vpn_gateway_id=gateway.id,\n    customer_gateway_id=customer_gw.id,\n    initiation_policy=\"customer_gateway\",\n    enable_route_propagation=True,\n    bgp_config_ipv4s=[{\n        \"routing_policy_id\": policy.id,\n        \"private_ip\": \"169.254.0.1/30\",\n        \"peer_private_ip\": \"169.254.0.2/30\",\n    }],\n    ikev2_ciphers=[{\n        \"encryption\": \"aes256\",\n        \"integrity\": \"sha256\",\n        \"dh_group\": \"modp2048\",\n    }],\n    esp_ciphers=[{\n        \"encryption\": \"aes256\",\n        \"integrity\": \"sha256\",\n        \"dh_group\": \"modp2048\",\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 vpc = new Scaleway.Network.Vpc(\"vpc\", new()\n    {\n        Name = \"my-vpc\",\n    });\n\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\", new()\n    {\n        Name = \"my-private-network\",\n        VpcId = vpc.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"10.0.1.0/24\",\n        },\n    });\n\n    var gateway = new Scaleway.S2svpn.Gateway(\"gateway\", new()\n    {\n        Name = \"my-vpn-gateway\",\n        GatewayType = \"VGW-S\",\n        PrivateNetworkId = pn.Id,\n    });\n\n    var customerGw = new Scaleway.S2svpn.CustomerGateway(\"customer_gw\", new()\n    {\n        Name = \"my-customer-gateway\",\n        Ipv4Public = \"203.0.113.1\",\n        Asn = 65000,\n    });\n\n    var policy = new Scaleway.S2svpn.RoutingPolicy(\"policy\", new()\n    {\n        Name = \"my-routing-policy\",\n        PrefixFilterIns = new[]\n        {\n            \"10.0.2.0/24\",\n        },\n        PrefixFilterOuts = new[]\n        {\n            \"10.0.1.0/24\",\n        },\n    });\n\n    var main = new Scaleway.S2svpn.Connection(\"main\", new()\n    {\n        Name = \"my-vpn-connection\",\n        VpnGatewayId = gateway.Id,\n        CustomerGatewayId = customerGw.Id,\n        InitiationPolicy = \"customer_gateway\",\n        EnableRoutePropagation = true,\n        BgpConfigIpv4s = new[]\n        {\n            new Scaleway.S2svpn.Inputs.ConnectionBgpConfigIpv4Args\n            {\n                RoutingPolicyId = policy.Id,\n                PrivateIp = \"169.254.0.1/30\",\n                PeerPrivateIp = \"169.254.0.2/30\",\n            },\n        },\n        Ikev2Ciphers = new[]\n        {\n            new Scaleway.S2svpn.Inputs.ConnectionIkev2CipherArgs\n            {\n                Encryption = \"aes256\",\n                Integrity = \"sha256\",\n                DhGroup = \"modp2048\",\n            },\n        },\n        EspCiphers = new[]\n        {\n            new Scaleway.S2svpn.Inputs.ConnectionEspCipherArgs\n            {\n                Encryption = \"aes256\",\n                Integrity = \"sha256\",\n                DhGroup = \"modp2048\",\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/network\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc, err := network.NewVpc(ctx, \"vpc\", \u0026network.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\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", \u0026network.PrivateNetworkArgs{\n\t\t\tName:  pulumi.String(\"my-private-network\"),\n\t\t\tVpcId: vpc.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\n\t\t\t\tSubnet: pulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgateway, err := s2svpn.NewGateway(ctx, \"gateway\", \u0026s2svpn.GatewayArgs{\n\t\t\tName:             pulumi.String(\"my-vpn-gateway\"),\n\t\t\tGatewayType:      pulumi.String(\"VGW-S\"),\n\t\t\tPrivateNetworkId: pn.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcustomerGw, err := s2svpn.NewCustomerGateway(ctx, \"customer_gw\", \u0026s2svpn.CustomerGatewayArgs{\n\t\t\tName:       pulumi.String(\"my-customer-gateway\"),\n\t\t\tIpv4Public: pulumi.String(\"203.0.113.1\"),\n\t\t\tAsn:        pulumi.Int(65000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpolicy, err := s2svpn.NewRoutingPolicy(ctx, \"policy\", \u0026s2svpn.RoutingPolicyArgs{\n\t\t\tName: pulumi.String(\"my-routing-policy\"),\n\t\t\tPrefixFilterIns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t\tPrefixFilterOuts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s2svpn.NewConnection(ctx, \"main\", \u0026s2svpn.ConnectionArgs{\n\t\t\tName:                   pulumi.String(\"my-vpn-connection\"),\n\t\t\tVpnGatewayId:           gateway.ID(),\n\t\t\tCustomerGatewayId:      customerGw.ID(),\n\t\t\tInitiationPolicy:       pulumi.String(\"customer_gateway\"),\n\t\t\tEnableRoutePropagation: pulumi.Bool(true),\n\t\t\tBgpConfigIpv4s: s2svpn.ConnectionBgpConfigIpv4Array{\n\t\t\t\t\u0026s2svpn.ConnectionBgpConfigIpv4Args{\n\t\t\t\t\tRoutingPolicyId: policy.ID(),\n\t\t\t\t\tPrivateIp:       pulumi.String(\"169.254.0.1/30\"),\n\t\t\t\t\tPeerPrivateIp:   pulumi.String(\"169.254.0.2/30\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIkev2Ciphers: s2svpn.ConnectionIkev2CipherArray{\n\t\t\t\t\u0026s2svpn.ConnectionIkev2CipherArgs{\n\t\t\t\t\tEncryption: pulumi.String(\"aes256\"),\n\t\t\t\t\tIntegrity:  pulumi.String(\"sha256\"),\n\t\t\t\t\tDhGroup:    pulumi.String(\"modp2048\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEspCiphers: s2svpn.ConnectionEspCipherArray{\n\t\t\t\t\u0026s2svpn.ConnectionEspCipherArgs{\n\t\t\t\t\tEncryption: pulumi.String(\"aes256\"),\n\t\t\t\t\tIntegrity:  pulumi.String(\"sha256\"),\n\t\t\t\t\tDhGroup:    pulumi.String(\"modp2048\"),\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.s2svpn.Gateway;\nimport com.pulumi.scaleway.s2svpn.GatewayArgs;\nimport com.pulumi.scaleway.s2svpn.CustomerGateway;\nimport com.pulumi.scaleway.s2svpn.CustomerGatewayArgs;\nimport com.pulumi.scaleway.s2svpn.RoutingPolicy;\nimport com.pulumi.scaleway.s2svpn.RoutingPolicyArgs;\nimport com.pulumi.scaleway.s2svpn.Connection;\nimport com.pulumi.scaleway.s2svpn.ConnectionArgs;\nimport com.pulumi.scaleway.s2svpn.inputs.ConnectionBgpConfigIpv4Args;\nimport com.pulumi.scaleway.s2svpn.inputs.ConnectionIkev2CipherArgs;\nimport com.pulumi.scaleway.s2svpn.inputs.ConnectionEspCipherArgs;\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 vpc = new Vpc(\"vpc\", VpcArgs.builder()\n            .name(\"my-vpc\")\n            .build());\n\n        var pn = new PrivateNetwork(\"pn\", PrivateNetworkArgs.builder()\n            .name(\"my-private-network\")\n            .vpcId(vpc.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"10.0.1.0/24\")\n                .build())\n            .build());\n\n        var gateway = new Gateway(\"gateway\", GatewayArgs.builder()\n            .name(\"my-vpn-gateway\")\n            .gatewayType(\"VGW-S\")\n            .privateNetworkId(pn.id())\n            .build());\n\n        var customerGw = new CustomerGateway(\"customerGw\", CustomerGatewayArgs.builder()\n            .name(\"my-customer-gateway\")\n            .ipv4Public(\"203.0.113.1\")\n            .asn(65000)\n            .build());\n\n        var policy = new RoutingPolicy(\"policy\", RoutingPolicyArgs.builder()\n            .name(\"my-routing-policy\")\n            .prefixFilterIns(\"10.0.2.0/24\")\n            .prefixFilterOuts(\"10.0.1.0/24\")\n            .build());\n\n        var main = new Connection(\"main\", ConnectionArgs.builder()\n            .name(\"my-vpn-connection\")\n            .vpnGatewayId(gateway.id())\n            .customerGatewayId(customerGw.id())\n            .initiationPolicy(\"customer_gateway\")\n            .enableRoutePropagation(true)\n            .bgpConfigIpv4s(ConnectionBgpConfigIpv4Args.builder()\n                .routingPolicyId(policy.id())\n                .privateIp(\"169.254.0.1/30\")\n                .peerPrivateIp(\"169.254.0.2/30\")\n                .build())\n            .ikev2Ciphers(ConnectionIkev2CipherArgs.builder()\n                .encryption(\"aes256\")\n                .integrity(\"sha256\")\n                .dhGroup(\"modp2048\")\n                .build())\n            .espCiphers(ConnectionEspCipherArgs.builder()\n                .encryption(\"aes256\")\n                .integrity(\"sha256\")\n                .dhGroup(\"modp2048\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc:\n    type: scaleway:network:Vpc\n    properties:\n      name: my-vpc\n  pn:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: my-private-network\n      vpcId: ${vpc.id}\n      ipv4Subnet:\n        subnet: 10.0.1.0/24\n  gateway:\n    type: scaleway:s2svpn:Gateway\n    properties:\n      name: my-vpn-gateway\n      gatewayType: VGW-S\n      privateNetworkId: ${pn.id}\n  customerGw:\n    type: scaleway:s2svpn:CustomerGateway\n    name: customer_gw\n    properties:\n      name: my-customer-gateway\n      ipv4Public: 203.0.113.1\n      asn: 65000\n  policy:\n    type: scaleway:s2svpn:RoutingPolicy\n    properties:\n      name: my-routing-policy\n      prefixFilterIns:\n        - 10.0.2.0/24\n      prefixFilterOuts:\n        - 10.0.1.0/24\n  main:\n    type: scaleway:s2svpn:Connection\n    properties:\n      name: my-vpn-connection\n      vpnGatewayId: ${gateway.id}\n      customerGatewayId: ${customerGw.id}\n      initiationPolicy: customer_gateway\n      enableRoutePropagation: true\n      bgpConfigIpv4s:\n        - routingPolicyId: ${policy.id}\n          privateIp: 169.254.0.1/30\n          peerPrivateIp: 169.254.0.2/30\n      ikev2Ciphers:\n        - encryption: aes256\n          integrity: sha256\n          dhGroup: modp2048\n      espCiphers:\n        - encryption: aes256\n          integrity: sha256\n          dhGroup: modp2048\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nConnections can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:s2svpn/connection:Connection main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"bgpConfigIpv4s":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionBgpConfigIpv4:ConnectionBgpConfigIpv4"},"description":"BGP configuration for IPv4. See BGP Config below.\n"},"bgpConfigIpv6s":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionBgpConfigIpv6:ConnectionBgpConfigIpv6"},"description":"BGP configuration for IPv6. See BGP Config below.\n"},"bgpSessionIpv4s":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionBgpSessionIpv4:ConnectionBgpSessionIpv4"},"description":"The BGP IPv4 session information. See BGP Session below.\n"},"bgpSessionIpv6s":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionBgpSessionIpv6:ConnectionBgpSessionIpv6"},"description":"The BGP IPv6 session information. See BGP Session below.\n"},"bgpStatusIpv4":{"type":"string","description":"The status of the BGP IPv4 session.\n"},"bgpStatusIpv6":{"type":"string","description":"The status of the BGP IPv6 session.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the connection (RFC 3339 format).\n"},"customerGatewayId":{"type":"string","description":"The ID of the customer gateway to attach to the connection.\n"},"enableRoutePropagation":{"type":"boolean","description":"Defines whether route propagation is enabled or not.\n"},"espCiphers":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionEspCipher:ConnectionEspCipher"},"description":"ESP cipher configuration for Phase 2 (data encryption). See Cipher Config below.\n"},"ikev2Ciphers":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionIkev2Cipher:ConnectionIkev2Cipher"},"description":"IKEv2 cipher configuration for Phase 1 (tunnel establishment). See Cipher Config below.\n"},"initiationPolicy":{"type":"string","description":"Defines who initiates the IPSec tunnel.\n"},"isIpv6":{"type":"boolean","description":"Defines IP version of the IPSec Tunnel. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (IPv4).\n"},"name":{"type":"string","description":"The name of the connection.\n"},"organizationId":{"type":"string","description":"The Organization ID the connection is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the connection is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the connection should be created.\n"},"routePropagationEnabled":{"type":"boolean","description":"Whether route propagation is enabled.\n"},"secretId":{"type":"string","description":"The ID of the secret containing the pre-shared key (PSK) for the connection.\n"},"secretVersion":{"type":"integer","description":"The version of the secret containing the PSK.\n"},"status":{"type":"string","description":"The status of the connection.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the connection.\n"},"tunnelStatus":{"type":"string","description":"The status of the IPSec tunnel.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the connection (RFC 3339 format).\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway to attach to the connection.\n"}},"required":["bgpConfigIpv4s","bgpConfigIpv6s","bgpSessionIpv4s","bgpSessionIpv6s","bgpStatusIpv4","bgpStatusIpv6","createdAt","customerGatewayId","enableRoutePropagation","espCiphers","ikev2Ciphers","initiationPolicy","isIpv6","name","organizationId","projectId","routePropagationEnabled","secretId","secretVersion","status","tunnelStatus","updatedAt","vpnGatewayId"],"inputProperties":{"bgpConfigIpv4s":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionBgpConfigIpv4:ConnectionBgpConfigIpv4"},"description":"BGP configuration for IPv4. See BGP Config below.\n","willReplaceOnChanges":true},"bgpConfigIpv6s":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionBgpConfigIpv6:ConnectionBgpConfigIpv6"},"description":"BGP configuration for IPv6. See BGP Config below.\n","willReplaceOnChanges":true},"customerGatewayId":{"type":"string","description":"The ID of the customer gateway to attach to the connection.\n","willReplaceOnChanges":true},"enableRoutePropagation":{"type":"boolean","description":"Defines whether route propagation is enabled or not.\n","willReplaceOnChanges":true},"espCiphers":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionEspCipher:ConnectionEspCipher"},"description":"ESP cipher configuration for Phase 2 (data encryption). See Cipher Config below.\n"},"ikev2Ciphers":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionIkev2Cipher:ConnectionIkev2Cipher"},"description":"IKEv2 cipher configuration for Phase 1 (tunnel establishment). See Cipher Config below.\n"},"initiationPolicy":{"type":"string","description":"Defines who initiates the IPSec tunnel.\n"},"isIpv6":{"type":"boolean","description":"Defines IP version of the IPSec Tunnel. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (IPv4).\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the connection.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the connection is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the connection should be created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the connection.\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway to attach to the connection.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Connection resources.\n","properties":{"bgpConfigIpv4s":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionBgpConfigIpv4:ConnectionBgpConfigIpv4"},"description":"BGP configuration for IPv4. See BGP Config below.\n","willReplaceOnChanges":true},"bgpConfigIpv6s":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionBgpConfigIpv6:ConnectionBgpConfigIpv6"},"description":"BGP configuration for IPv6. See BGP Config below.\n","willReplaceOnChanges":true},"bgpSessionIpv4s":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionBgpSessionIpv4:ConnectionBgpSessionIpv4"},"description":"The BGP IPv4 session information. See BGP Session below.\n"},"bgpSessionIpv6s":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionBgpSessionIpv6:ConnectionBgpSessionIpv6"},"description":"The BGP IPv6 session information. See BGP Session below.\n"},"bgpStatusIpv4":{"type":"string","description":"The status of the BGP IPv4 session.\n"},"bgpStatusIpv6":{"type":"string","description":"The status of the BGP IPv6 session.\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the connection (RFC 3339 format).\n"},"customerGatewayId":{"type":"string","description":"The ID of the customer gateway to attach to the connection.\n","willReplaceOnChanges":true},"enableRoutePropagation":{"type":"boolean","description":"Defines whether route propagation is enabled or not.\n","willReplaceOnChanges":true},"espCiphers":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionEspCipher:ConnectionEspCipher"},"description":"ESP cipher configuration for Phase 2 (data encryption). See Cipher Config below.\n"},"ikev2Ciphers":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/ConnectionIkev2Cipher:ConnectionIkev2Cipher"},"description":"IKEv2 cipher configuration for Phase 1 (tunnel establishment). See Cipher Config below.\n"},"initiationPolicy":{"type":"string","description":"Defines who initiates the IPSec tunnel.\n"},"isIpv6":{"type":"boolean","description":"Defines IP version of the IPSec Tunnel. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (IPv4).\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the connection.\n"},"organizationId":{"type":"string","description":"The Organization ID the connection is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the connection is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the connection should be created.\n","willReplaceOnChanges":true},"routePropagationEnabled":{"type":"boolean","description":"Whether route propagation is enabled.\n"},"secretId":{"type":"string","description":"The ID of the secret containing the pre-shared key (PSK) for the connection.\n"},"secretVersion":{"type":"integer","description":"The version of the secret containing the PSK.\n"},"status":{"type":"string","description":"The status of the connection.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the connection.\n"},"tunnelStatus":{"type":"string","description":"The status of the IPSec tunnel.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the connection (RFC 3339 format).\n"},"vpnGatewayId":{"type":"string","description":"The ID of the VPN gateway to attach to the connection.\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:s2svpn/customerGateway:CustomerGateway":{"description":"Creates and manages Scaleway Site-to-Site VPN Customer Gateways.\nA customer gateway represents your external VPN endpoint (e.g., a firewall, router, or VPN appliance).\n\nFor more information, see [the main documentation](https://www.scaleway.com/en/docs/site-to-site-vpn/reference-content/understanding-s2svpn/).\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 customerGw = new scaleway.s2svpn.CustomerGateway(\"customer_gw\", {\n    name: \"my-customer-gateway\",\n    ipv4Public: \"203.0.113.1\",\n    asn: 65000,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ncustomer_gw = scaleway.s2svpn.CustomerGateway(\"customer_gw\",\n    name=\"my-customer-gateway\",\n    ipv4_public=\"203.0.113.1\",\n    asn=65000)\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 customerGw = new Scaleway.S2svpn.CustomerGateway(\"customer_gw\", new()\n    {\n        Name = \"my-customer-gateway\",\n        Ipv4Public = \"203.0.113.1\",\n        Asn = 65000,\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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := s2svpn.NewCustomerGateway(ctx, \"customer_gw\", \u0026s2svpn.CustomerGatewayArgs{\n\t\t\tName:       pulumi.String(\"my-customer-gateway\"),\n\t\t\tIpv4Public: pulumi.String(\"203.0.113.1\"),\n\t\t\tAsn:        pulumi.Int(65000),\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.s2svpn.CustomerGateway;\nimport com.pulumi.scaleway.s2svpn.CustomerGatewayArgs;\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 customerGw = new CustomerGateway(\"customerGw\", CustomerGatewayArgs.builder()\n            .name(\"my-customer-gateway\")\n            .ipv4Public(\"203.0.113.1\")\n            .asn(65000)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  customerGw:\n    type: scaleway:s2svpn:CustomerGateway\n    name: customer_gw\n    properties:\n      name: my-customer-gateway\n      ipv4Public: 203.0.113.1\n      asn: 65000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With IPv6\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst customerGw = new scaleway.s2svpn.CustomerGateway(\"customer_gw\", {\n    name: \"my-customer-gateway\",\n    ipv4Public: \"203.0.113.1\",\n    ipv6Public: \"2001:db8::1\",\n    asn: 65000,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ncustomer_gw = scaleway.s2svpn.CustomerGateway(\"customer_gw\",\n    name=\"my-customer-gateway\",\n    ipv4_public=\"203.0.113.1\",\n    ipv6_public=\"2001:db8::1\",\n    asn=65000)\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 customerGw = new Scaleway.S2svpn.CustomerGateway(\"customer_gw\", new()\n    {\n        Name = \"my-customer-gateway\",\n        Ipv4Public = \"203.0.113.1\",\n        Ipv6Public = \"2001:db8::1\",\n        Asn = 65000,\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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := s2svpn.NewCustomerGateway(ctx, \"customer_gw\", \u0026s2svpn.CustomerGatewayArgs{\n\t\t\tName:       pulumi.String(\"my-customer-gateway\"),\n\t\t\tIpv4Public: pulumi.String(\"203.0.113.1\"),\n\t\t\tIpv6Public: pulumi.String(\"2001:db8::1\"),\n\t\t\tAsn:        pulumi.Int(65000),\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.s2svpn.CustomerGateway;\nimport com.pulumi.scaleway.s2svpn.CustomerGatewayArgs;\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 customerGw = new CustomerGateway(\"customerGw\", CustomerGatewayArgs.builder()\n            .name(\"my-customer-gateway\")\n            .ipv4Public(\"203.0.113.1\")\n            .ipv6Public(\"2001:db8::1\")\n            .asn(65000)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  customerGw:\n    type: scaleway:s2svpn:CustomerGateway\n    name: customer_gw\n    properties:\n      name: my-customer-gateway\n      ipv4Public: 203.0.113.1\n      ipv6Public: 2001:db8::1\n      asn: 65000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Instance Public IP\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst vpnEndpointIp = new scaleway.instance.Ip(\"vpn_endpoint_ip\", {});\nconst vpnEndpoint = new scaleway.instance.Server(\"vpn_endpoint\", {\n    name: \"vpn-endpoint\",\n    type: \"DEV1-S\",\n    image: \"ubuntu_jammy\",\n    ipIds: [vpnEndpointIp.id],\n});\nconst customerGw = new scaleway.s2svpn.CustomerGateway(\"customer_gw\", {\n    name: \"my-customer-gateway\",\n    ipv4Public: vpnEndpointIp.address,\n    asn: 65000,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpn_endpoint_ip = scaleway.instance.Ip(\"vpn_endpoint_ip\")\nvpn_endpoint = scaleway.instance.Server(\"vpn_endpoint\",\n    name=\"vpn-endpoint\",\n    type=\"DEV1-S\",\n    image=\"ubuntu_jammy\",\n    ip_ids=[vpn_endpoint_ip.id])\ncustomer_gw = scaleway.s2svpn.CustomerGateway(\"customer_gw\",\n    name=\"my-customer-gateway\",\n    ipv4_public=vpn_endpoint_ip.address,\n    asn=65000)\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 vpnEndpointIp = new Scaleway.Instance.Ip(\"vpn_endpoint_ip\");\n\n    var vpnEndpoint = new Scaleway.Instance.Server(\"vpn_endpoint\", new()\n    {\n        Name = \"vpn-endpoint\",\n        Type = \"DEV1-S\",\n        Image = \"ubuntu_jammy\",\n        IpIds = new[]\n        {\n            vpnEndpointIp.Id,\n        },\n    });\n\n    var customerGw = new Scaleway.S2svpn.CustomerGateway(\"customer_gw\", new()\n    {\n        Name = \"my-customer-gateway\",\n        Ipv4Public = vpnEndpointIp.Address,\n        Asn = 65000,\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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpnEndpointIp, err := instance.NewIp(ctx, \"vpn_endpoint_ip\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = instance.NewServer(ctx, \"vpn_endpoint\", \u0026instance.ServerArgs{\n\t\t\tName:  pulumi.String(\"vpn-endpoint\"),\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tIpIds: pulumi.StringArray{\n\t\t\t\tvpnEndpointIp.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s2svpn.NewCustomerGateway(ctx, \"customer_gw\", \u0026s2svpn.CustomerGatewayArgs{\n\t\t\tName:       pulumi.String(\"my-customer-gateway\"),\n\t\t\tIpv4Public: vpnEndpointIp.Address,\n\t\t\tAsn:        pulumi.Int(65000),\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.instance.Ip;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.s2svpn.CustomerGateway;\nimport com.pulumi.scaleway.s2svpn.CustomerGatewayArgs;\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 vpnEndpointIp = new Ip(\"vpnEndpointIp\");\n\n        var vpnEndpoint = new Server(\"vpnEndpoint\", ServerArgs.builder()\n            .name(\"vpn-endpoint\")\n            .type(\"DEV1-S\")\n            .image(\"ubuntu_jammy\")\n            .ipIds(vpnEndpointIp.id())\n            .build());\n\n        var customerGw = new CustomerGateway(\"customerGw\", CustomerGatewayArgs.builder()\n            .name(\"my-customer-gateway\")\n            .ipv4Public(vpnEndpointIp.address())\n            .asn(65000)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpnEndpointIp:\n    type: scaleway:instance:Ip\n    name: vpn_endpoint_ip\n  vpnEndpoint:\n    type: scaleway:instance:Server\n    name: vpn_endpoint\n    properties:\n      name: vpn-endpoint\n      type: DEV1-S\n      image: ubuntu_jammy\n      ipIds:\n        - ${vpnEndpointIp.id}\n  customerGw:\n    type: scaleway:s2svpn:CustomerGateway\n    name: customer_gw\n    properties:\n      name: my-customer-gateway\n      ipv4Public: ${vpnEndpointIp.address}\n      asn: 65000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCustomer Gateways can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:s2svpn/customerGateway:CustomerGateway main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"asn":{"type":"integer","description":"The AS Number of the customer gateway. Must be different from Scaleway's ASN (12876). For testing, you can use a private ASN (64512-65535).\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the customer gateway (RFC 3339 format).\n"},"ipv4Public":{"type":"string","description":"The public IPv4 address of the customer gateway (your VPN endpoint).\n"},"ipv6Public":{"type":"string","description":"The public IPv6 address of the customer gateway (your VPN endpoint).\n"},"name":{"type":"string","description":"The name of the customer gateway. If not provided, it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the customer gateway is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the customer gateway is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the customer gateway should be created.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the customer gateway.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the customer gateway (RFC 3339 format).\n"}},"required":["asn","createdAt","ipv4Public","ipv6Public","name","organizationId","projectId","updatedAt"],"inputProperties":{"asn":{"type":"integer","description":"The AS Number of the customer gateway. Must be different from Scaleway's ASN (12876). For testing, you can use a private ASN (64512-65535).\n"},"ipv4Public":{"type":"string","description":"The public IPv4 address of the customer gateway (your VPN endpoint).\n"},"ipv6Public":{"type":"string","description":"The public IPv6 address of the customer gateway (your VPN endpoint).\n"},"name":{"type":"string","description":"The name of the customer gateway. If not provided, it will be randomly generated.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the customer gateway is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the customer gateway should be created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the customer gateway.\n"}},"requiredInputs":["asn"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomerGateway resources.\n","properties":{"asn":{"type":"integer","description":"The AS Number of the customer gateway. Must be different from Scaleway's ASN (12876). For testing, you can use a private ASN (64512-65535).\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the customer gateway (RFC 3339 format).\n"},"ipv4Public":{"type":"string","description":"The public IPv4 address of the customer gateway (your VPN endpoint).\n"},"ipv6Public":{"type":"string","description":"The public IPv6 address of the customer gateway (your VPN endpoint).\n"},"name":{"type":"string","description":"The name of the customer gateway. If not provided, it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the customer gateway is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the customer gateway is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the customer gateway should be created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the customer gateway.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the customer gateway (RFC 3339 format).\n"}},"type":"object"}},"scaleway:s2svpn/gateway:Gateway":{"description":"Creates and manages Scaleway Site-to-Site VPN Gateways.\nFor more information, see [the main documentation](https://www.scaleway.com/en/docs/site-to-site-vpn/reference-content/understanding-s2svpn/).\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 vpc = new scaleway.network.Vpc(\"vpc\", {name: \"my-vpc\"});\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {\n    name: \"my-private-network\",\n    vpcId: vpc.id,\n    ipv4Subnet: {\n        subnet: \"10.0.1.0/24\",\n    },\n});\nconst gateway = new scaleway.s2svpn.Gateway(\"gateway\", {\n    name: \"my-vpn-gateway\",\n    gatewayType: \"VGW-S\",\n    privateNetworkId: pn.id,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nvpc = scaleway.network.Vpc(\"vpc\", name=\"my-vpc\")\npn = scaleway.network.PrivateNetwork(\"pn\",\n    name=\"my-private-network\",\n    vpc_id=vpc.id,\n    ipv4_subnet={\n        \"subnet\": \"10.0.1.0/24\",\n    })\ngateway = scaleway.s2svpn.Gateway(\"gateway\",\n    name=\"my-vpn-gateway\",\n    gateway_type=\"VGW-S\",\n    private_network_id=pn.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 vpc = new Scaleway.Network.Vpc(\"vpc\", new()\n    {\n        Name = \"my-vpc\",\n    });\n\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\", new()\n    {\n        Name = \"my-private-network\",\n        VpcId = vpc.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"10.0.1.0/24\",\n        },\n    });\n\n    var gateway = new Scaleway.S2svpn.Gateway(\"gateway\", new()\n    {\n        Name = \"my-vpn-gateway\",\n        GatewayType = \"VGW-S\",\n        PrivateNetworkId = pn.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/network\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc, err := network.NewVpc(ctx, \"vpc\", \u0026network.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\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", \u0026network.PrivateNetworkArgs{\n\t\t\tName:  pulumi.String(\"my-private-network\"),\n\t\t\tVpcId: vpc.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\n\t\t\t\tSubnet: pulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s2svpn.NewGateway(ctx, \"gateway\", \u0026s2svpn.GatewayArgs{\n\t\t\tName:             pulumi.String(\"my-vpn-gateway\"),\n\t\t\tGatewayType:      pulumi.String(\"VGW-S\"),\n\t\t\tPrivateNetworkId: pn.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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.s2svpn.Gateway;\nimport com.pulumi.scaleway.s2svpn.GatewayArgs;\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 vpc = new Vpc(\"vpc\", VpcArgs.builder()\n            .name(\"my-vpc\")\n            .build());\n\n        var pn = new PrivateNetwork(\"pn\", PrivateNetworkArgs.builder()\n            .name(\"my-private-network\")\n            .vpcId(vpc.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"10.0.1.0/24\")\n                .build())\n            .build());\n\n        var gateway = new Gateway(\"gateway\", GatewayArgs.builder()\n            .name(\"my-vpn-gateway\")\n            .gatewayType(\"VGW-S\")\n            .privateNetworkId(pn.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc:\n    type: scaleway:network:Vpc\n    properties:\n      name: my-vpc\n  pn:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: my-private-network\n      vpcId: ${vpc.id}\n      ipv4Subnet:\n        subnet: 10.0.1.0/24\n  gateway:\n    type: scaleway:s2svpn:Gateway\n    properties:\n      name: my-vpn-gateway\n      gatewayType: VGW-S\n      privateNetworkId: ${pn.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVPN Gateways can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:s2svpn/gateway:Gateway main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"asn":{"type":"integer","description":"The AS Number of the VPN gateway (typically 12876 for Scaleway).\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the VPN gateway (RFC 3339 format).\n"},"gatewayType":{"type":"string","description":"The VPN gateway type (commercial offer type).\n"},"ipamPrivateIpv4Id":{"type":"string","description":"The ID of the IPAM private IPv4 address to attach to the VPN gateway.\n"},"ipamPrivateIpv6Id":{"type":"string","description":"The ID of the IPAM private IPv6 address to attach to the VPN gateway.\n"},"name":{"type":"string","description":"The name of the VPN gateway. If not provided, it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the VPN gateway is associated with.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network to attach to the VPN gateway.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the VPN gateway is associated with.\n"},"publicConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/GatewayPublicConfig:GatewayPublicConfig"},"description":"The public endpoint configuration of the VPN gateway. See Public Config below.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the VPN gateway should be created.\n"},"status":{"type":"string","description":"The status of the VPN gateway.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the VPN gateway.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the VPN gateway (RFC 3339 format).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the VPN gateway should be created.\n"}},"required":["asn","createdAt","gatewayType","ipamPrivateIpv4Id","ipamPrivateIpv6Id","name","organizationId","privateNetworkId","projectId","publicConfigs","status","tags","updatedAt"],"inputProperties":{"gatewayType":{"type":"string","description":"The VPN gateway type (commercial offer type).\n"},"ipamPrivateIpv4Id":{"type":"string","description":"The ID of the IPAM private IPv4 address to attach to the VPN gateway.\n"},"ipamPrivateIpv6Id":{"type":"string","description":"The ID of the IPAM private IPv6 address to attach to the VPN gateway.\n"},"name":{"type":"string","description":"The name of the VPN gateway. If not provided, it will be randomly generated.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network to attach to the VPN gateway.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the VPN gateway is associated with.\n","willReplaceOnChanges":true},"publicConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/GatewayPublicConfig:GatewayPublicConfig"},"description":"The public endpoint configuration of the VPN gateway. See Public Config below.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the VPN gateway should be created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the VPN gateway.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the VPN gateway should be created.\n","willReplaceOnChanges":true}},"requiredInputs":["gatewayType","privateNetworkId"],"stateInputs":{"description":"Input properties used for looking up and filtering Gateway resources.\n","properties":{"asn":{"type":"integer","description":"The AS Number of the VPN gateway (typically 12876 for Scaleway).\n"},"createdAt":{"type":"string","description":"The date and time of the creation of the VPN gateway (RFC 3339 format).\n"},"gatewayType":{"type":"string","description":"The VPN gateway type (commercial offer type).\n"},"ipamPrivateIpv4Id":{"type":"string","description":"The ID of the IPAM private IPv4 address to attach to the VPN gateway.\n"},"ipamPrivateIpv6Id":{"type":"string","description":"The ID of the IPAM private IPv6 address to attach to the VPN gateway.\n"},"name":{"type":"string","description":"The name of the VPN gateway. If not provided, it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the VPN gateway is associated with.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network to attach to the VPN gateway.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the VPN gateway is associated with.\n","willReplaceOnChanges":true},"publicConfigs":{"type":"array","items":{"$ref":"#/types/scaleway:s2svpn/GatewayPublicConfig:GatewayPublicConfig"},"description":"The public endpoint configuration of the VPN gateway. See Public Config below.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the VPN gateway should be created.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the VPN gateway.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the VPN gateway.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the VPN gateway (RFC 3339 format).\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the VPN gateway should be created.\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:s2svpn/routingPolicy:RoutingPolicy":{"description":"Creates and manages Scaleway Site-to-Site VPN Routing Policies.\nA routing policy defines which routes are accepted from and advertised to the peer gateway via BGP.\n\nFor more information, see [the main documentation](https://www.scaleway.com/en/docs/site-to-site-vpn/reference-content/understanding-s2svpn/).\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 policy = new scaleway.s2svpn.RoutingPolicy(\"policy\", {\n    name: \"my-routing-policy\",\n    prefixFilterIns: [\"10.0.2.0/24\"],\n    prefixFilterOuts: [\"10.0.1.0/24\"],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npolicy = scaleway.s2svpn.RoutingPolicy(\"policy\",\n    name=\"my-routing-policy\",\n    prefix_filter_ins=[\"10.0.2.0/24\"],\n    prefix_filter_outs=[\"10.0.1.0/24\"])\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 policy = new Scaleway.S2svpn.RoutingPolicy(\"policy\", new()\n    {\n        Name = \"my-routing-policy\",\n        PrefixFilterIns = new[]\n        {\n            \"10.0.2.0/24\",\n        },\n        PrefixFilterOuts = new[]\n        {\n            \"10.0.1.0/24\",\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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := s2svpn.NewRoutingPolicy(ctx, \"policy\", \u0026s2svpn.RoutingPolicyArgs{\n\t\t\tName: pulumi.String(\"my-routing-policy\"),\n\t\t\tPrefixFilterIns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t\tPrefixFilterOuts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\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.s2svpn.RoutingPolicy;\nimport com.pulumi.scaleway.s2svpn.RoutingPolicyArgs;\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 policy = new RoutingPolicy(\"policy\", RoutingPolicyArgs.builder()\n            .name(\"my-routing-policy\")\n            .prefixFilterIns(\"10.0.2.0/24\")\n            .prefixFilterOuts(\"10.0.1.0/24\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy:\n    type: scaleway:s2svpn:RoutingPolicy\n    properties:\n      name: my-routing-policy\n      prefixFilterIns:\n        - 10.0.2.0/24\n      prefixFilterOuts:\n        - 10.0.1.0/24\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Multiple Prefixes\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst policy = new scaleway.s2svpn.RoutingPolicy(\"policy\", {\n    name: \"my-routing-policy\",\n    prefixFilterIns: [\n        \"10.0.2.0/24\",\n        \"10.0.3.0/24\",\n    ],\n    prefixFilterOuts: [\n        \"10.0.1.0/24\",\n        \"172.16.0.0/16\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\npolicy = scaleway.s2svpn.RoutingPolicy(\"policy\",\n    name=\"my-routing-policy\",\n    prefix_filter_ins=[\n        \"10.0.2.0/24\",\n        \"10.0.3.0/24\",\n    ],\n    prefix_filter_outs=[\n        \"10.0.1.0/24\",\n        \"172.16.0.0/16\",\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 policy = new Scaleway.S2svpn.RoutingPolicy(\"policy\", new()\n    {\n        Name = \"my-routing-policy\",\n        PrefixFilterIns = new[]\n        {\n            \"10.0.2.0/24\",\n            \"10.0.3.0/24\",\n        },\n        PrefixFilterOuts = new[]\n        {\n            \"10.0.1.0/24\",\n            \"172.16.0.0/16\",\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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := s2svpn.NewRoutingPolicy(ctx, \"policy\", \u0026s2svpn.RoutingPolicyArgs{\n\t\t\tName: pulumi.String(\"my-routing-policy\"),\n\t\t\tPrefixFilterIns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t\tpulumi.String(\"10.0.3.0/24\"),\n\t\t\t},\n\t\t\tPrefixFilterOuts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t\tpulumi.String(\"172.16.0.0/16\"),\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.s2svpn.RoutingPolicy;\nimport com.pulumi.scaleway.s2svpn.RoutingPolicyArgs;\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 policy = new RoutingPolicy(\"policy\", RoutingPolicyArgs.builder()\n            .name(\"my-routing-policy\")\n            .prefixFilterIns(            \n                \"10.0.2.0/24\",\n                \"10.0.3.0/24\")\n            .prefixFilterOuts(            \n                \"10.0.1.0/24\",\n                \"172.16.0.0/16\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  policy:\n    type: scaleway:s2svpn:RoutingPolicy\n    properties:\n      name: my-routing-policy\n      prefixFilterIns:\n        - 10.0.2.0/24\n        - 10.0.3.0/24\n      prefixFilterOuts:\n        - 10.0.1.0/24\n        - 172.16.0.0/16\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRouting Policies can be imported using `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:s2svpn/routingPolicy:RoutingPolicy main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the routing policy (RFC 3339 format).\n"},"isIpv6":{"type":"boolean","description":"Defines whether the routing policy is for IPv6 prefixes. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (IPv4).\n"},"name":{"type":"string","description":"The name of the routing policy. If not provided, it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the routing policy is associated with.\n"},"prefixFilterIns":{"type":"array","items":{"type":"string"},"description":"List of IP prefixes (in CIDR notation) to accept from the peer gateway. These are the routes that the customer gateway can announce to Scaleway.\n"},"prefixFilterOuts":{"type":"array","items":{"type":"string"},"description":"List of IP prefixes (in CIDR notation) to advertise to the peer gateway. These are the routes that Scaleway will announce to the customer gateway.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the routing policy is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the routing policy should be created.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the routing policy.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the routing policy (RFC 3339 format).\n"}},"required":["createdAt","isIpv6","name","organizationId","projectId","updatedAt"],"inputProperties":{"isIpv6":{"type":"boolean","description":"Defines whether the routing policy is for IPv6 prefixes. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (IPv4).\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the routing policy. If not provided, it will be randomly generated.\n"},"prefixFilterIns":{"type":"array","items":{"type":"string"},"description":"List of IP prefixes (in CIDR notation) to accept from the peer gateway. These are the routes that the customer gateway can announce to Scaleway.\n"},"prefixFilterOuts":{"type":"array","items":{"type":"string"},"description":"List of IP prefixes (in CIDR notation) to advertise to the peer gateway. These are the routes that Scaleway will announce to the customer gateway.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the routing policy is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the routing policy should be created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the routing policy.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering RoutingPolicy resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the creation of the routing policy (RFC 3339 format).\n"},"isIpv6":{"type":"boolean","description":"Defines whether the routing policy is for IPv6 prefixes. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (IPv4).\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the routing policy. If not provided, it will be randomly generated.\n"},"organizationId":{"type":"string","description":"The Organization ID the routing policy is associated with.\n"},"prefixFilterIns":{"type":"array","items":{"type":"string"},"description":"List of IP prefixes (in CIDR notation) to accept from the peer gateway. These are the routes that the customer gateway can announce to Scaleway.\n"},"prefixFilterOuts":{"type":"array","items":{"type":"string"},"description":"List of IP prefixes (in CIDR notation) to advertise to the peer gateway. These are the routes that Scaleway will announce to the customer gateway.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the routing policy is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the routing policy should be created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The list of tags to apply to the routing policy.\n"},"updatedAt":{"type":"string","description":"The date and time of the last update of the routing policy (RFC 3339 format).\n"}},"type":"object"}},"scaleway:secrets/secret:Secret":{"description":"\n\n## Import\n\nThis section explains how to import a secret using the `{region}/{id}` format.\n\nbash\n\n```sh\n$ pulumi import scaleway:secrets/secret:Secret main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"Date and time of the secret's creation (in RFC 3339 format).\n"},"description":{"type":"string","description":"Description of the secret (e.g. `my-new-description`).\n"},"ephemeralPolicies":{"type":"array","items":{"$ref":"#/types/scaleway:secrets/SecretEphemeralPolicy:SecretEphemeralPolicy"},"description":"Ephemeral policy of the secret. Policy that defines whether/when a secret's versions expire. By default, the policy is applied to all the secret's versions.\n"},"name":{"type":"string","description":"Name of the secret (e.g. `my-secret`).\n"},"path":{"type":"string","description":"Path of the secret, defaults to `/`.\n"},"projectId":{"type":"string","description":"The project ID containing is the secret.\n"},"protected":{"type":"boolean","description":"True if secret protection is enabled on a given secret. A protected secret cannot be deleted."},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the resource exists.\n"},"status":{"type":"string","description":"The status of the secret.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags of the secret (e.g. `[\"tag\", \"secret\"]`).\n"},"type":{"type":"string","description":"Type of the secret. If not specified, the type is Opaque. Available values can be found in [SDK Constants](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/secret/v1beta1#pkg-constants).\n"},"updatedAt":{"type":"string","description":"Date and time of the secret's last update (in RFC 3339 format).\n"},"versionCount":{"type":"integer","description":"The amount of secret versions.\n"},"versions":{"type":"array","items":{"$ref":"#/types/scaleway:secrets/SecretVersion:SecretVersion"},"description":"List of the versions of the secret"}},"required":["createdAt","name","projectId","status","updatedAt","versionCount","versions"],"inputProperties":{"description":{"type":"string","description":"Description of the secret (e.g. `my-new-description`).\n"},"ephemeralPolicies":{"type":"array","items":{"$ref":"#/types/scaleway:secrets/SecretEphemeralPolicy:SecretEphemeralPolicy"},"description":"Ephemeral policy of the secret. Policy that defines whether/when a secret's versions expire. By default, the policy is applied to all the secret's versions.\n"},"name":{"type":"string","description":"Name of the secret (e.g. `my-secret`).\n"},"path":{"type":"string","description":"Path of the secret, defaults to `/`.\n"},"projectId":{"type":"string","description":"The project ID containing is the secret.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"True if secret protection is enabled on a given secret. A protected secret cannot be deleted."},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the resource exists.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"Tags of the secret (e.g. `[\"tag\", \"secret\"]`).\n"},"type":{"type":"string","description":"Type of the secret. If not specified, the type is Opaque. Available values can be found in [SDK Constants](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/secret/v1beta1#pkg-constants).\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Secret resources.\n","properties":{"createdAt":{"type":"string","description":"Date and time of the secret's creation (in RFC 3339 format).\n"},"description":{"type":"string","description":"Description of the secret (e.g. `my-new-description`).\n"},"ephemeralPolicies":{"type":"array","items":{"$ref":"#/types/scaleway:secrets/SecretEphemeralPolicy:SecretEphemeralPolicy"},"description":"Ephemeral policy of the secret. Policy that defines whether/when a secret's versions expire. By default, the policy is applied to all the secret's versions.\n"},"name":{"type":"string","description":"Name of the secret (e.g. `my-secret`).\n"},"path":{"type":"string","description":"Path of the secret, defaults to `/`.\n"},"projectId":{"type":"string","description":"The project ID containing is the secret.\n","willReplaceOnChanges":true},"protected":{"type":"boolean","description":"True if secret protection is enabled on a given secret. A protected secret cannot be deleted."},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region\nin which the resource exists.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the secret.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Tags of the secret (e.g. `[\"tag\", \"secret\"]`).\n"},"type":{"type":"string","description":"Type of the secret. If not specified, the type is Opaque. Available values can be found in [SDK Constants](https://pkg.go.dev/github.com/scaleway/scaleway-sdk-go@master/api/secret/v1beta1#pkg-constants).\n","willReplaceOnChanges":true},"updatedAt":{"type":"string","description":"Date and time of the secret's last update (in RFC 3339 format).\n"},"versionCount":{"type":"integer","description":"The amount of secret versions.\n"},"versions":{"type":"array","items":{"$ref":"#/types/scaleway:secrets/SecretVersion:SecretVersion"},"description":"List of the versions of the secret"}},"type":"object"},"aliases":[{"type":"scaleway:index/secret:Secret"}]},"scaleway:secrets/version:Version":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.secrets.Version`\" pulumi-lang-dotnet=\"`scaleway.secrets.Version`\" pulumi-lang-go=\"`secrets.Version`\" pulumi-lang-python=\"`secrets.Version`\" pulumi-lang-yaml=\"`scaleway.secrets.Version`\" pulumi-lang-java=\"`scaleway.secrets.Version`\"\u003e`scaleway.secrets.Version`\u003c/span\u003e resource allows you to create and manage secret versions in Scaleway Secret Manager.\n\nRefer to the Secret Manager [product documentation](https://www.scaleway.com/en/docs/secret-manager/) and [API documentation](https://www.scaleway.com/en/developers/api/secret-manager/) for more information.\n\n## Example Usage\n\n### Create a secret and a version\n\nThe following commands allow you to:\n\n- create a secret named \u003cspan pulumi-lang-nodejs=\"`foo`\" pulumi-lang-dotnet=\"`Foo`\" pulumi-lang-go=\"`foo`\" pulumi-lang-python=\"`foo`\" pulumi-lang-yaml=\"`foo`\" pulumi-lang-java=\"`foo`\"\u003e`foo`\u003c/span\u003e\n- create a version of this secret containing the \u003cspan pulumi-lang-nodejs=\"`myNewSecret`\" pulumi-lang-dotnet=\"`MyNewSecret`\" pulumi-lang-go=\"`myNewSecret`\" pulumi-lang-python=\"`my_new_secret`\" pulumi-lang-yaml=\"`myNewSecret`\" pulumi-lang-java=\"`myNewSecret`\"\u003e`my_new_secret`\u003c/span\u003e data\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.secrets.Secret(\"main\", {\n    name: \"foo\",\n    description: \"barr\",\n    tags: [\n        \"foo\",\n        \"terraform\",\n    ],\n});\nconst v1 = new scaleway.secrets.Version(\"v1\", {\n    description: \"version1\",\n    secretId: main.id,\n    data: \"my_new_secret\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.secrets.Secret(\"main\",\n    name=\"foo\",\n    description=\"barr\",\n    tags=[\n        \"foo\",\n        \"terraform\",\n    ])\nv1 = scaleway.secrets.Version(\"v1\",\n    description=\"version1\",\n    secret_id=main.id,\n    data=\"my_new_secret\")\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.Secrets.Secret(\"main\", new()\n    {\n        Name = \"foo\",\n        Description = \"barr\",\n        Tags = new[]\n        {\n            \"foo\",\n            \"terraform\",\n        },\n    });\n\n    var v1 = new Scaleway.Secrets.Version(\"v1\", new()\n    {\n        Description = \"version1\",\n        SecretId = main.Id,\n        Data = \"my_new_secret\",\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/secrets\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := secrets.NewSecret(ctx, \"main\", \u0026secrets.SecretArgs{\n\t\t\tName:        pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"barr\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"terraform\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = secrets.NewVersion(ctx, \"v1\", \u0026secrets.VersionArgs{\n\t\t\tDescription: pulumi.String(\"version1\"),\n\t\t\tSecretId:    main.ID(),\n\t\t\tData:        pulumi.String(\"my_new_secret\"),\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.secrets.Secret;\nimport com.pulumi.scaleway.secrets.SecretArgs;\nimport com.pulumi.scaleway.secrets.Version;\nimport com.pulumi.scaleway.secrets.VersionArgs;\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 Secret(\"main\", SecretArgs.builder()\n            .name(\"foo\")\n            .description(\"barr\")\n            .tags(            \n                \"foo\",\n                \"terraform\")\n            .build());\n\n        var v1 = new Version(\"v1\", VersionArgs.builder()\n            .description(\"version1\")\n            .secretId(main.id())\n            .data(\"my_new_secret\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:secrets:Secret\n    properties:\n      name: foo\n      description: barr\n      tags:\n        - foo\n        - terraform\n  v1:\n    type: scaleway:secrets:Version\n    properties:\n      description: version1\n      secretId: ${main.id}\n      data: my_new_secret\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis section explains how to import a secret version using the `{region}/{id}/{revision}` format.\n\n~\u003e **Important:** Keep in mind that if you import with the `latest` revision, you will overwrite the previous version you might have been using.\n\nbash\n\n```sh\n$ pulumi import scaleway:secrets/version:Version main fr-par/11111111-1111-1111-1111-111111111111/2\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the secret version's creation (in RFC 3339 format).\n"},"data":{"type":"string","description":"The raw data payload of the secret version. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true},"dataWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nThe raw data payload of your secret version in write-only mode. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true},"dataWoVersion":{"type":"integer","description":"The version of the write-only data. To update the \u003cspan pulumi-lang-nodejs=\"`dataWo`\" pulumi-lang-dotnet=\"`DataWo`\" pulumi-lang-go=\"`dataWo`\" pulumi-lang-python=\"`data_wo`\" pulumi-lang-yaml=\"`dataWo`\" pulumi-lang-java=\"`dataWo`\"\u003e`data_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`dataWoVersion`\" pulumi-lang-dotnet=\"`DataWoVersion`\" pulumi-lang-go=\"`dataWoVersion`\" pulumi-lang-python=\"`data_wo_version`\" pulumi-lang-yaml=\"`dataWoVersion`\" pulumi-lang-java=\"`dataWoVersion`\"\u003e`data_wo_version`\u003c/span\u003e.\n"},"description":{"type":"string","description":"Description of the secret version (e.g. `my-new-description`).\n"},"region":{"type":"string","description":"). The region where the resource exists.\n"},"revision":{"type":"string","description":"The revision number of the secret version.\n"},"secretId":{"type":"string","description":"The ID of the secret associated with the version.\n"},"status":{"type":"string","description":"The status of the secret version.\n"},"updatedAt":{"type":"string","description":"The date and time of the secret version's last update (in RFC 3339 format).\n"}},"required":["createdAt","revision","secretId","status","updatedAt"],"inputProperties":{"data":{"type":"string","description":"The raw data payload of the secret version. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true,"willReplaceOnChanges":true},"dataWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nThe raw data payload of your secret version in write-only mode. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true},"dataWoVersion":{"type":"integer","description":"The version of the write-only data. To update the \u003cspan pulumi-lang-nodejs=\"`dataWo`\" pulumi-lang-dotnet=\"`DataWo`\" pulumi-lang-go=\"`dataWo`\" pulumi-lang-python=\"`data_wo`\" pulumi-lang-yaml=\"`dataWo`\" pulumi-lang-java=\"`dataWo`\"\u003e`data_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`dataWoVersion`\" pulumi-lang-dotnet=\"`DataWoVersion`\" pulumi-lang-go=\"`dataWoVersion`\" pulumi-lang-python=\"`data_wo_version`\" pulumi-lang-yaml=\"`dataWoVersion`\" pulumi-lang-java=\"`dataWoVersion`\"\u003e`data_wo_version`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the secret version (e.g. `my-new-description`).\n"},"region":{"type":"string","description":"). The region where the resource exists.\n","willReplaceOnChanges":true},"secretId":{"type":"string","description":"The ID of the secret associated with the version.\n","willReplaceOnChanges":true}},"requiredInputs":["secretId"],"stateInputs":{"description":"Input properties used for looking up and filtering Version resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the secret version's creation (in RFC 3339 format).\n"},"data":{"type":"string","description":"The raw data payload of the secret version. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true,"willReplaceOnChanges":true},"dataWo":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nThe raw data payload of your secret version in write-only mode. Must not exceed 64KiB in size (e.g. `my-secret-version-payload`). Find out more on the data section.\n","secret":true},"dataWoVersion":{"type":"integer","description":"The version of the write-only data. To update the \u003cspan pulumi-lang-nodejs=\"`dataWo`\" pulumi-lang-dotnet=\"`DataWo`\" pulumi-lang-go=\"`dataWo`\" pulumi-lang-python=\"`data_wo`\" pulumi-lang-yaml=\"`dataWo`\" pulumi-lang-java=\"`dataWo`\"\u003e`data_wo`\u003c/span\u003e, you must also update the \u003cspan pulumi-lang-nodejs=\"`dataWoVersion`\" pulumi-lang-dotnet=\"`DataWoVersion`\" pulumi-lang-go=\"`dataWoVersion`\" pulumi-lang-python=\"`data_wo_version`\" pulumi-lang-yaml=\"`dataWoVersion`\" pulumi-lang-java=\"`dataWoVersion`\"\u003e`data_wo_version`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the secret version (e.g. `my-new-description`).\n"},"region":{"type":"string","description":"). The region where the resource exists.\n","willReplaceOnChanges":true},"revision":{"type":"string","description":"The revision number of the secret version.\n"},"secretId":{"type":"string","description":"The ID of the secret associated with the version.\n","willReplaceOnChanges":true},"status":{"type":"string","description":"The status of the secret version.\n"},"updatedAt":{"type":"string","description":"The date and time of the secret version's last update (in RFC 3339 format).\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/secretVersion:SecretVersion"}]},"scaleway:tem/blockedList:BlockedList":{"description":"Creates and manages blocklisted email addresses for a Scaleway Transactional Email Domain.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/transactional-email/#post-transactional-email-v1alpha1-regions-region-blocklists).\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 test = new scaleway.tem.BlockedList(\"test\", {\n    domainId: \"fr-par/12345678-1234-1234-1234-123456789abc\",\n    email: \"spam@example.com\",\n    type: \"mailbox_full\",\n    reason: \"Spam detected\",\n    region: \"fr-par\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\ntest = scaleway.tem.BlockedList(\"test\",\n    domain_id=\"fr-par/12345678-1234-1234-1234-123456789abc\",\n    email=\"spam@example.com\",\n    type=\"mailbox_full\",\n    reason=\"Spam detected\",\n    region=\"fr-par\")\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 test = new Scaleway.Tem.BlockedList(\"test\", new()\n    {\n        DomainId = \"fr-par/12345678-1234-1234-1234-123456789abc\",\n        Email = \"spam@example.com\",\n        Type = \"mailbox_full\",\n        Reason = \"Spam detected\",\n        Region = \"fr-par\",\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/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := tem.NewBlockedList(ctx, \"test\", \u0026tem.BlockedListArgs{\n\t\t\tDomainId: pulumi.String(\"fr-par/12345678-1234-1234-1234-123456789abc\"),\n\t\t\tEmail:    pulumi.String(\"spam@example.com\"),\n\t\t\tType:     pulumi.String(\"mailbox_full\"),\n\t\t\tReason:   pulumi.String(\"Spam detected\"),\n\t\t\tRegion:   pulumi.String(\"fr-par\"),\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.tem.BlockedList;\nimport com.pulumi.scaleway.tem.BlockedListArgs;\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 test = new BlockedList(\"test\", BlockedListArgs.builder()\n            .domainId(\"fr-par/12345678-1234-1234-1234-123456789abc\")\n            .email(\"spam@example.com\")\n            .type(\"mailbox_full\")\n            .reason(\"Spam detected\")\n            .region(\"fr-par\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: scaleway:tem:BlockedList\n    properties:\n      domainId: fr-par/12345678-1234-1234-1234-123456789abc\n      email: spam@example.com\n      type: mailbox_full\n      reason: Spam detected\n      region: fr-par\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBlocklists can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:tem/blockedList:BlockedList test fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"domainId":{"type":"string","description":"The ID of the domain affected by the blocklist. Must be in the format `{region}/{domain_id}`.\n"},"email":{"type":"string","description":"The email address to block.\n"},"projectId":{"type":"string","description":"The ID of the project this blocklist belongs to. Defaults to the provider's project ID.\n"},"reason":{"type":"string","description":"Reason for blocking the email address.\n"},"region":{"type":"string","description":"The region in which the blocklist is created. Defaults to the provider's region.\n"},"type":{"type":"string","description":"Type of the blocklist. Possible values are:\n"}},"required":["domainId","email","projectId","type"],"inputProperties":{"domainId":{"type":"string","description":"The ID of the domain affected by the blocklist. Must be in the format `{region}/{domain_id}`.\n","willReplaceOnChanges":true},"email":{"type":"string","description":"The email address to block.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project this blocklist belongs to. Defaults to the provider's project ID.\n","willReplaceOnChanges":true},"reason":{"type":"string","description":"Reason for blocking the email address.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region in which the blocklist is created. Defaults to the provider's region.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Type of the blocklist. Possible values are:\n","willReplaceOnChanges":true}},"requiredInputs":["domainId","email","type"],"stateInputs":{"description":"Input properties used for looking up and filtering BlockedList resources.\n","properties":{"domainId":{"type":"string","description":"The ID of the domain affected by the blocklist. Must be in the format `{region}/{domain_id}`.\n","willReplaceOnChanges":true},"email":{"type":"string","description":"The email address to block.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project this blocklist belongs to. Defaults to the provider's project ID.\n","willReplaceOnChanges":true},"reason":{"type":"string","description":"Reason for blocking the email address.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region in which the blocklist is created. Defaults to the provider's region.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Type of the blocklist. Possible values are:\n","willReplaceOnChanges":true}},"type":"object"}},"scaleway:tem/domain:Domain":{"description":"Creates and manages Scaleway Transactional Email Domains.\nFor more information refer to the [API documentation](https://www.scaleway.com/en/developers/api/transactional-email).\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.tem.Domain(\"main\", {\n    acceptTos: true,\n    name: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.tem.Domain(\"main\",\n    accept_tos=True,\n    name=\"example.com\")\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.Tem.Domain(\"main\", new()\n    {\n        AcceptTos = true,\n        Name = \"example.com\",\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/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := tem.NewDomain(ctx, \"main\", \u0026tem.DomainArgs{\n\t\t\tAcceptTos: pulumi.Bool(true),\n\t\t\tName:      pulumi.String(\"example.com\"),\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.tem.Domain;\nimport com.pulumi.scaleway.tem.DomainArgs;\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 Domain(\"main\", DomainArgs.builder()\n            .acceptTos(true)\n            .name(\"example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:tem:Domain\n    properties:\n      acceptTos: true\n      name: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Add the required records to your DNS zone\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\nconst domainName = config.require(\"domainName\");\nconst main = new scaleway.tem.Domain(\"main\", {\n    name: domainName,\n    acceptTos: true,\n});\nconst spf = new scaleway.domain.Record(\"spf\", {\n    dnsZone: domainName,\n    type: \"TXT\",\n    data: main.spfValue,\n});\nconst dkim = new scaleway.domain.Record(\"dkim\", {\n    dnsZone: domainName,\n    name: main.dkimName,\n    type: \"TXT\",\n    data: main.dkimConfig,\n});\nconst mx = new scaleway.domain.Record(\"mx\", {\n    dnsZone: domainName,\n    type: \"MX\",\n    data: main.mxConfig,\n});\nconst dmarc = new scaleway.domain.Record(\"dmarc\", {\n    dnsZone: domainName,\n    name: main.dmarcName,\n    type: \"TXT\",\n    data: main.dmarcConfig,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\ndomain_name = config.require(\"domainName\")\nmain = scaleway.tem.Domain(\"main\",\n    name=domain_name,\n    accept_tos=True)\nspf = scaleway.domain.Record(\"spf\",\n    dns_zone=domain_name,\n    type=\"TXT\",\n    data=main.spf_value)\ndkim = scaleway.domain.Record(\"dkim\",\n    dns_zone=domain_name,\n    name=main.dkim_name,\n    type=\"TXT\",\n    data=main.dkim_config)\nmx = scaleway.domain.Record(\"mx\",\n    dns_zone=domain_name,\n    type=\"MX\",\n    data=main.mx_config)\ndmarc = scaleway.domain.Record(\"dmarc\",\n    dns_zone=domain_name,\n    name=main.dmarc_name,\n    type=\"TXT\",\n    data=main.dmarc_config)\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 config = new Config();\n    var domainName = config.Require(\"domainName\");\n    var main = new Scaleway.Tem.Domain(\"main\", new()\n    {\n        Name = domainName,\n        AcceptTos = true,\n    });\n\n    var spf = new Scaleway.Domain.Record(\"spf\", new()\n    {\n        DnsZone = domainName,\n        Type = \"TXT\",\n        Data = main.SpfValue,\n    });\n\n    var dkim = new Scaleway.Domain.Record(\"dkim\", new()\n    {\n        DnsZone = domainName,\n        Name = main.DkimName,\n        Type = \"TXT\",\n        Data = main.DkimConfig,\n    });\n\n    var mx = new Scaleway.Domain.Record(\"mx\", new()\n    {\n        DnsZone = domainName,\n        Type = \"MX\",\n        Data = main.MxConfig,\n    });\n\n    var dmarc = new Scaleway.Domain.Record(\"dmarc\", new()\n    {\n        DnsZone = domainName,\n        Name = main.DmarcName,\n        Type = \"TXT\",\n        Data = main.DmarcConfig,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := cfg.Require(\"domainName\")\n\t\tmain, err := tem.NewDomain(ctx, \"main\", \u0026tem.DomainArgs{\n\t\t\tName:      pulumi.String(domainName),\n\t\t\tAcceptTos: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"spf\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tType:    pulumi.String(\"TXT\"),\n\t\t\tData:    main.SpfValue,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"dkim\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tName:    main.DkimName,\n\t\t\tType:    pulumi.String(\"TXT\"),\n\t\t\tData:    main.DkimConfig,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"mx\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tType:    pulumi.String(\"MX\"),\n\t\t\tData:    main.MxConfig,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"dmarc\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tName:    main.DmarcName,\n\t\t\tType:    pulumi.String(\"TXT\"),\n\t\t\tData:    main.DmarcConfig,\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.tem.Domain;\nimport com.pulumi.scaleway.tem.DomainArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\");\n        var main = new Domain(\"main\", DomainArgs.builder()\n            .name(domainName)\n            .acceptTos(true)\n            .build());\n\n        var spf = new Record(\"spf\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .type(\"TXT\")\n            .data(main.spfValue())\n            .build());\n\n        var dkim = new Record(\"dkim\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .name(main.dkimName())\n            .type(\"TXT\")\n            .data(main.dkimConfig())\n            .build());\n\n        var mx = new Record(\"mx\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .type(\"MX\")\n            .data(main.mxConfig())\n            .build());\n\n        var dmarc = new Record(\"dmarc\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .name(main.dmarcName())\n            .type(\"TXT\")\n            .data(main.dmarcConfig())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\nresources:\n  main:\n    type: scaleway:tem:Domain\n    properties:\n      name: ${domainName}\n      acceptTos: true\n  spf:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      type: TXT\n      data: ${main.spfValue}\n  dkim:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      name: ${main.dkimName}\n      type: TXT\n      data: ${main.dkimConfig}\n  mx:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      type: MX\n      data: ${main.mxConfig}\n  dmarc:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      name: ${main.dmarcName}\n      type: TXT\n      data: ${main.dmarcConfig}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Automatically Configure DNS Settings for Your Domain\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\nconst domainName = config.require(\"domainName\");\nconst main = new scaleway.tem.Domain(\"main\", {\n    name: domainName,\n    acceptTos: true,\n    autoconfig: true,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\ndomain_name = config.require(\"domainName\")\nmain = scaleway.tem.Domain(\"main\",\n    name=domain_name,\n    accept_tos=True,\n    autoconfig=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 config = new Config();\n    var domainName = config.Require(\"domainName\");\n    var main = new Scaleway.Tem.Domain(\"main\", new()\n    {\n        Name = domainName,\n        AcceptTos = true,\n        Autoconfig = 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/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := cfg.Require(\"domainName\")\n\t\t_, err := tem.NewDomain(ctx, \"main\", \u0026tem.DomainArgs{\n\t\t\tName:       pulumi.String(domainName),\n\t\t\tAcceptTos:  pulumi.Bool(true),\n\t\t\tAutoconfig: 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.tem.Domain;\nimport com.pulumi.scaleway.tem.DomainArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\");\n        var main = new Domain(\"main\", DomainArgs.builder()\n            .name(domainName)\n            .acceptTos(true)\n            .autoconfig(true)\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\nresources:\n  main:\n    type: scaleway:tem:Domain\n    properties:\n      name: ${domainName}\n      acceptTos: true\n      autoconfig: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Configuring GitLab Project Variables\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gitlab from \"@pulumi/gitlab\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\nconst domainName = config.require(\"domainName\");\nconst myDomain = scaleway.tem.getDomain({\n    name: domainName,\n});\nconst smtpAuthUser = new gitlab.ProjectVariable(\"smtp_auth_user\", {\n    key: \"SMTP_AUTH_USER\",\n    value: myDomain.then(myDomain =\u003e myDomain.smtpsAuthUser),\n});\nconst smtpPort = new gitlab.ProjectVariable(\"smtp_port\", {\n    key: \"SMTP_PORT\",\n    value: myDomain.then(myDomain =\u003e myDomain.smtpsPort),\n});\nconst smtpHost = new gitlab.ProjectVariable(\"smtp_host\", {\n    key: \"SMTP_HOST\",\n    value: myDomain.then(myDomain =\u003e myDomain.smtpsHost),\n});\n```\n```python\nimport pulumi\nimport pulumi_gitlab as gitlab\nimport pulumi_scaleway as scaleway\n\nconfig = pulumi.Config()\ndomain_name = config.require(\"domainName\")\nmy_domain = scaleway.tem.get_domain(name=domain_name)\nsmtp_auth_user = gitlab.ProjectVariable(\"smtp_auth_user\",\n    key=\"SMTP_AUTH_USER\",\n    value=my_domain.smtps_auth_user)\nsmtp_port = gitlab.ProjectVariable(\"smtp_port\",\n    key=\"SMTP_PORT\",\n    value=my_domain.smtps_port)\nsmtp_host = gitlab.ProjectVariable(\"smtp_host\",\n    key=\"SMTP_HOST\",\n    value=my_domain.smtps_host)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing GitLab = Pulumi.GitLab;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var domainName = config.Require(\"domainName\");\n    var myDomain = Scaleway.Tem.GetDomain.Invoke(new()\n    {\n        Name = domainName,\n    });\n\n    var smtpAuthUser = new GitLab.ProjectVariable(\"smtp_auth_user\", new()\n    {\n        Key = \"SMTP_AUTH_USER\",\n        Value = myDomain.Apply(getDomainResult =\u003e getDomainResult.SmtpsAuthUser),\n    });\n\n    var smtpPort = new GitLab.ProjectVariable(\"smtp_port\", new()\n    {\n        Key = \"SMTP_PORT\",\n        Value = myDomain.Apply(getDomainResult =\u003e getDomainResult.SmtpsPort),\n    });\n\n    var smtpHost = new GitLab.ProjectVariable(\"smtp_host\", new()\n    {\n        Key = \"SMTP_HOST\",\n        Value = myDomain.Apply(getDomainResult =\u003e getDomainResult.SmtpsHost),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gitlab/sdk/v9/go/gitlab\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := cfg.Require(\"domainName\")\n\t\tmyDomain, err := tem.LookupDomain(ctx, \u0026tem.LookupDomainArgs{\n\t\t\tName: pulumi.StringRef(domainName),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gitlab.NewProjectVariable(ctx, \"smtp_auth_user\", \u0026gitlab.ProjectVariableArgs{\n\t\t\tKey:   pulumi.String(\"SMTP_AUTH_USER\"),\n\t\t\tValue: pulumi.String(myDomain.SmtpsAuthUser),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gitlab.NewProjectVariable(ctx, \"smtp_port\", \u0026gitlab.ProjectVariableArgs{\n\t\t\tKey:   pulumi.String(\"SMTP_PORT\"),\n\t\t\tValue: pulumi.Int(myDomain.SmtpsPort),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = gitlab.NewProjectVariable(ctx, \"smtp_host\", \u0026gitlab.ProjectVariableArgs{\n\t\t\tKey:   pulumi.String(\"SMTP_HOST\"),\n\t\t\tValue: pulumi.Any(myDomain.SmtpsHost),\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.tem.TemFunctions;\nimport com.pulumi.scaleway.tem.inputs.GetDomainArgs;\nimport com.pulumi.gitlab.ProjectVariable;\nimport com.pulumi.gitlab.ProjectVariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\");\n        final var myDomain = TemFunctions.getDomain(GetDomainArgs.builder()\n            .name(domainName)\n            .build());\n\n        var smtpAuthUser = new ProjectVariable(\"smtpAuthUser\", ProjectVariableArgs.builder()\n            .key(\"SMTP_AUTH_USER\")\n            .value(myDomain.smtpsAuthUser())\n            .build());\n\n        var smtpPort = new ProjectVariable(\"smtpPort\", ProjectVariableArgs.builder()\n            .key(\"SMTP_PORT\")\n            .value(myDomain.smtpsPort())\n            .build());\n\n        var smtpHost = new ProjectVariable(\"smtpHost\", ProjectVariableArgs.builder()\n            .key(\"SMTP_HOST\")\n            .value(myDomain.smtpsHost())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\nresources:\n  smtpAuthUser:\n    type: gitlab:ProjectVariable\n    name: smtp_auth_user\n    properties:\n      key: SMTP_AUTH_USER\n      value: ${myDomain.smtpsAuthUser}\n  smtpPort:\n    type: gitlab:ProjectVariable\n    name: smtp_port\n    properties:\n      key: SMTP_PORT\n      value: ${myDomain.smtpsPort}\n  smtpHost:\n    type: gitlab:ProjectVariable\n    name: smtp_host\n    properties:\n      key: SMTP_HOST\n      value: ${myDomain.smtpsHost}\nvariables:\n  myDomain:\n    fn::invoke:\n      function: scaleway:tem:getDomain\n      arguments:\n        name: ${domainName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDomains can be imported using the `{region}/{id}`, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:tem/domain:Domain main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"acceptTos":{"type":"boolean","description":"Acceptation of the [Term of Service](https://tem.s3.fr-par.scw.cloud/antispam_policy.pdf).\n\u003e **Important:** This attribute must be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"autoconfig":{"type":"boolean","description":"Automatically configures DNS settings for the domain, simplifying the setup process by applying predefined configurations.\n"},"createdAt":{"type":"string","description":"The date and time of the Transaction Email Domain's creation (RFC 3339 format).\n"},"dkimConfig":{"type":"string","description":"The DKIM public key, as should be recorded in the DNS zone.\n"},"dkimName":{"type":"string","description":"DKIM name for the domain, as should be recorded in the DNS zone.\n"},"dmarcConfig":{"type":"string","description":"DMARC record for the domain, as should be recorded in the DNS zone.\n"},"dmarcName":{"type":"string","description":"DMARC name for the domain, as should be recorded in the DNS zone.\n"},"lastError":{"type":"string","description":"(Deprecated) The error message if the last check failed.\n","deprecationMessage":"last_error is deprecated"},"lastValidAt":{"type":"string","description":"The date and time the domain was last found to be valid (RFC 3339 format).\n"},"mxBlackhole":{"type":"string","description":"The Scaleway's blackhole MX server to use if you do not have one.\n"},"mxConfig":{"type":"string","description":"MX record configuration for the domain blackhole.\n"},"name":{"type":"string","description":"The domain name, must not be used in another Transactional Email Domain.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the domain.\n"},"nextCheckAt":{"type":"string","description":"The date and time of the next scheduled check (RFC 3339 format).\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the domain is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the domain should be created.\n\u003e **Important:** Currently, only fr-par is supported. Specifying any other region will cause an error.\n"},"reputations":{"type":"array","items":{"$ref":"#/types/scaleway:tem/DomainReputation:DomainReputation"},"description":"The domain's reputation.\n"},"revokedAt":{"type":"string","description":"The date and time of the revocation of the domain (RFC 3339 format).\n"},"smtpHost":{"type":"string","description":"The SMTP host to use to send emails.\n"},"smtpPort":{"type":"integer","description":"The SMTP port to use to send emails over TLS.\n"},"smtpPortAlternative":{"type":"integer","description":"The SMTP port to use to send emails over TLS.\n"},"smtpPortUnsecure":{"type":"integer","description":"The SMTP port to use to send emails.\n"},"smtpsAuthUser":{"type":"string","description":"SMTPS auth user refers to the identifier for a user authorized to send emails via SMTPS, ensuring secure email transmission.\n"},"smtpsPort":{"type":"integer","description":"The SMTPS port to use to send emails over TLS Wrapper.\n"},"smtpsPortAlternative":{"type":"integer","description":"The SMTPS port to use to send emails over TLS Wrapper.\n"},"spfConfig":{"type":"string","description":"The snippet of the SPF record that should be registered in the DNS zone.\n"},"spfValue":{"type":"string","description":"Complete SPF record value for the domain, as should be recorded in the DNS zone.\n"},"status":{"type":"string","description":"The status of the domain's reputation.\n"}},"required":["acceptTos","createdAt","dkimConfig","dkimName","dmarcConfig","dmarcName","lastError","lastValidAt","mxBlackhole","mxConfig","name","nextCheckAt","projectId","reputations","revokedAt","smtpHost","smtpPort","smtpPortAlternative","smtpPortUnsecure","smtpsAuthUser","smtpsPort","smtpsPortAlternative","spfConfig","spfValue","status"],"inputProperties":{"acceptTos":{"type":"boolean","description":"Acceptation of the [Term of Service](https://tem.s3.fr-par.scw.cloud/antispam_policy.pdf).\n\u003e **Important:** This attribute must be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"autoconfig":{"type":"boolean","description":"Automatically configures DNS settings for the domain, simplifying the setup process by applying predefined configurations.\n"},"name":{"type":"string","description":"The domain name, must not be used in another Transactional Email Domain.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the domain.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the domain is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the domain should be created.\n\u003e **Important:** Currently, only fr-par is supported. Specifying any other region will cause an error.\n","willReplaceOnChanges":true}},"requiredInputs":["acceptTos"],"stateInputs":{"description":"Input properties used for looking up and filtering Domain resources.\n","properties":{"acceptTos":{"type":"boolean","description":"Acceptation of the [Term of Service](https://tem.s3.fr-par.scw.cloud/antispam_policy.pdf).\n\u003e **Important:** This attribute must be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"autoconfig":{"type":"boolean","description":"Automatically configures DNS settings for the domain, simplifying the setup process by applying predefined configurations.\n"},"createdAt":{"type":"string","description":"The date and time of the Transaction Email Domain's creation (RFC 3339 format).\n"},"dkimConfig":{"type":"string","description":"The DKIM public key, as should be recorded in the DNS zone.\n"},"dkimName":{"type":"string","description":"DKIM name for the domain, as should be recorded in the DNS zone.\n"},"dmarcConfig":{"type":"string","description":"DMARC record for the domain, as should be recorded in the DNS zone.\n"},"dmarcName":{"type":"string","description":"DMARC name for the domain, as should be recorded in the DNS zone.\n"},"lastError":{"type":"string","description":"(Deprecated) The error message if the last check failed.\n","deprecationMessage":"last_error is deprecated"},"lastValidAt":{"type":"string","description":"The date and time the domain was last found to be valid (RFC 3339 format).\n"},"mxBlackhole":{"type":"string","description":"The Scaleway's blackhole MX server to use if you do not have one.\n"},"mxConfig":{"type":"string","description":"MX record configuration for the domain blackhole.\n"},"name":{"type":"string","description":"The domain name, must not be used in another Transactional Email Domain.\n\u003e **Important:** Updates to \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e will recreate the domain.\n","willReplaceOnChanges":true},"nextCheckAt":{"type":"string","description":"The date and time of the next scheduled check (RFC 3339 format).\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the domain is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the domain should be created.\n\u003e **Important:** Currently, only fr-par is supported. Specifying any other region will cause an error.\n","willReplaceOnChanges":true},"reputations":{"type":"array","items":{"$ref":"#/types/scaleway:tem/DomainReputation:DomainReputation"},"description":"The domain's reputation.\n"},"revokedAt":{"type":"string","description":"The date and time of the revocation of the domain (RFC 3339 format).\n"},"smtpHost":{"type":"string","description":"The SMTP host to use to send emails.\n"},"smtpPort":{"type":"integer","description":"The SMTP port to use to send emails over TLS.\n"},"smtpPortAlternative":{"type":"integer","description":"The SMTP port to use to send emails over TLS.\n"},"smtpPortUnsecure":{"type":"integer","description":"The SMTP port to use to send emails.\n"},"smtpsAuthUser":{"type":"string","description":"SMTPS auth user refers to the identifier for a user authorized to send emails via SMTPS, ensuring secure email transmission.\n"},"smtpsPort":{"type":"integer","description":"The SMTPS port to use to send emails over TLS Wrapper.\n"},"smtpsPortAlternative":{"type":"integer","description":"The SMTPS port to use to send emails over TLS Wrapper.\n"},"spfConfig":{"type":"string","description":"The snippet of the SPF record that should be registered in the DNS zone.\n"},"spfValue":{"type":"string","description":"Complete SPF record value for the domain, as should be recorded in the DNS zone.\n"},"status":{"type":"string","description":"The status of the domain's reputation.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/temDomain:TemDomain"}]},"scaleway:tem/domainValidation:DomainValidation":{"description":"## 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.tem.Domain(\"main\", {\n    acceptTos: true,\n    name: \"example.com\",\n});\nconst example = new scaleway.tem.DomainValidation(\"example\", {\n    domainId: main.id,\n    region: \"fr-par\",\n    timeout: 300,\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.tem.Domain(\"main\",\n    accept_tos=True,\n    name=\"example.com\")\nexample = scaleway.tem.DomainValidation(\"example\",\n    domain_id=main.id,\n    region=\"fr-par\",\n    timeout=300)\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.Tem.Domain(\"main\", new()\n    {\n        AcceptTos = true,\n        Name = \"example.com\",\n    });\n\n    var example = new Scaleway.Tem.DomainValidation(\"example\", new()\n    {\n        DomainId = main.Id,\n        Region = \"fr-par\",\n        Timeout = 300,\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/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := tem.NewDomain(ctx, \"main\", \u0026tem.DomainArgs{\n\t\t\tAcceptTos: pulumi.Bool(true),\n\t\t\tName:      pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = tem.NewDomainValidation(ctx, \"example\", \u0026tem.DomainValidationArgs{\n\t\t\tDomainId: main.ID(),\n\t\t\tRegion:   pulumi.String(\"fr-par\"),\n\t\t\tTimeout:  pulumi.Int(300),\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.tem.Domain;\nimport com.pulumi.scaleway.tem.DomainArgs;\nimport com.pulumi.scaleway.tem.DomainValidation;\nimport com.pulumi.scaleway.tem.DomainValidationArgs;\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 Domain(\"main\", DomainArgs.builder()\n            .acceptTos(true)\n            .name(\"example.com\")\n            .build());\n\n        var example = new DomainValidation(\"example\", DomainValidationArgs.builder()\n            .domainId(main.id())\n            .region(\"fr-par\")\n            .timeout(300)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:tem:Domain\n    properties:\n      acceptTos: true\n      name: example.com\n  example:\n    type: scaleway:tem:DomainValidation\n    properties:\n      domainId: ${main.id}\n      region: fr-par\n      timeout: 300\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"domainId":{"type":"string","description":"The ID of the domain name used when sending emails. This ID must correspond to a domain already registered with Scaleway's Transactional Email service.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). Specifies the region where the domain is registered. If not specified, it defaults to the provider's region.\n"},"timeout":{"type":"integer","description":"The maximum wait time in seconds before returning an error if the domain validation does not complete. The default is 300 seconds.\n"},"validated":{"type":"boolean","description":"Indicates if the domain has been verified for email sending. This is computed after the creation or update of the domain validation resource.\n"}},"required":["domainId","validated"],"inputProperties":{"domainId":{"type":"string","description":"The ID of the domain name used when sending emails. This ID must correspond to a domain already registered with Scaleway's Transactional Email service.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). Specifies the region where the domain is registered. If not specified, it defaults to the provider's region.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The maximum wait time in seconds before returning an error if the domain validation does not complete. The default is 300 seconds.\n","willReplaceOnChanges":true}},"requiredInputs":["domainId"],"stateInputs":{"description":"Input properties used for looking up and filtering DomainValidation resources.\n","properties":{"domainId":{"type":"string","description":"The ID of the domain name used when sending emails. This ID must correspond to a domain already registered with Scaleway's Transactional Email service.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). Specifies the region where the domain is registered. If not specified, it defaults to the provider's region.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The maximum wait time in seconds before returning an error if the domain validation does not complete. The default is 300 seconds.\n","willReplaceOnChanges":true},"validated":{"type":"boolean","description":"Indicates if the domain has been verified for email sending. This is computed after the creation or update of the domain validation resource.\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/temDomainValidation:TemDomainValidation"}]},"scaleway:tem/webhook:Webhook":{"description":"Creates and manages Scaleway Transactional Email Webhooks.\nFor more information, refer to the [API documentation](https://www.scaleway.com/en/developers/api/transactional-email).\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.tem.Webhook(\"main\", {\n    domainId: \"your-domain-id\",\n    eventTypes: [\n        \"email_delivered\",\n        \"email_bounced\",\n    ],\n    snsArn: \"arn:scw:sns:fr-par:project-xxxx:your-sns-topic\",\n    name: \"example-webhook\",\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.tem.Webhook(\"main\",\n    domain_id=\"your-domain-id\",\n    event_types=[\n        \"email_delivered\",\n        \"email_bounced\",\n    ],\n    sns_arn=\"arn:scw:sns:fr-par:project-xxxx:your-sns-topic\",\n    name=\"example-webhook\")\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.Tem.Webhook(\"main\", new()\n    {\n        DomainId = \"your-domain-id\",\n        EventTypes = new[]\n        {\n            \"email_delivered\",\n            \"email_bounced\",\n        },\n        SnsArn = \"arn:scw:sns:fr-par:project-xxxx:your-sns-topic\",\n        Name = \"example-webhook\",\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/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := tem.NewWebhook(ctx, \"main\", \u0026tem.WebhookArgs{\n\t\t\tDomainId: pulumi.String(\"your-domain-id\"),\n\t\t\tEventTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"email_delivered\"),\n\t\t\t\tpulumi.String(\"email_bounced\"),\n\t\t\t},\n\t\t\tSnsArn: pulumi.String(\"arn:scw:sns:fr-par:project-xxxx:your-sns-topic\"),\n\t\t\tName:   pulumi.String(\"example-webhook\"),\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.tem.Webhook;\nimport com.pulumi.scaleway.tem.WebhookArgs;\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 Webhook(\"main\", WebhookArgs.builder()\n            .domainId(\"your-domain-id\")\n            .eventTypes(            \n                \"email_delivered\",\n                \"email_bounced\")\n            .snsArn(\"arn:scw:sns:fr-par:project-xxxx:your-sns-topic\")\n            .name(\"example-webhook\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:tem:Webhook\n    properties:\n      domainId: your-domain-id\n      eventTypes:\n        - email_delivered\n        - email_bounced\n      snsArn: arn:scw:sns:fr-par:project-xxxx:your-sns-topic\n      name: example-webhook\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Complete Example with Dependencies\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst config = new pulumi.Config();\nconst domainName = config.require(\"domainName\");\nconst sns = new scaleway.mnq.Sns(\"sns\", {});\nconst snsCredentials = new scaleway.mnq.SnsCredentials(\"sns_credentials\", {permissions: {\n    canManage: true,\n}});\nconst snsTopic = new scaleway.mnq.SnsTopic(\"sns_topic\", {\n    name: \"test-mnq-sns-topic-basic\",\n    accessKey: snsCredentials.accessKey,\n    secretKey: snsCredentials.secretKey,\n});\nconst cr01 = new scaleway.tem.Domain(\"cr01\", {\n    name: domainName,\n    acceptTos: true,\n});\nconst spf = new scaleway.domain.Record(\"spf\", {\n    dnsZone: domainName,\n    type: \"TXT\",\n    data: pulumi.interpolate`v=spf1 ${cr01.spfConfig} -all`,\n});\nconst dkim = new scaleway.domain.Record(\"dkim\", {\n    dnsZone: domainName,\n    name: pulumi.interpolate`${cr01.projectId}._domainkey`,\n    type: \"TXT\",\n    data: cr01.dkimConfig,\n});\nconst mx = new scaleway.domain.Record(\"mx\", {\n    dnsZone: domainName,\n    type: \"MX\",\n    data: \".\",\n});\nconst dmarc = new scaleway.domain.Record(\"dmarc\", {\n    dnsZone: domainName,\n    name: cr01.dmarcName,\n    type: \"TXT\",\n    data: cr01.dmarcConfig,\n});\nconst valid = new scaleway.tem.DomainValidation(\"valid\", {\n    domainId: cr01.id,\n    region: cr01.region,\n    timeout: 3600,\n});\nconst webhook = new scaleway.tem.Webhook(\"webhook\", {\n    name: \"example-webhook\",\n    domainId: cr01.id,\n    eventTypes: [\n        \"email_delivered\",\n        \"email_bounced\",\n    ],\n    snsArn: snsTopic.arn,\n}, {\n    dependsOn: [\n        valid,\n        snsTopic,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumiverse_scaleway as scaleway\n\nconfig = pulumi.Config()\ndomain_name = config.require(\"domainName\")\nsns = scaleway.mnq.Sns(\"sns\")\nsns_credentials = scaleway.mnq.SnsCredentials(\"sns_credentials\", permissions={\n    \"can_manage\": True,\n})\nsns_topic = scaleway.mnq.SnsTopic(\"sns_topic\",\n    name=\"test-mnq-sns-topic-basic\",\n    access_key=sns_credentials.access_key,\n    secret_key=sns_credentials.secret_key)\ncr01 = scaleway.tem.Domain(\"cr01\",\n    name=domain_name,\n    accept_tos=True)\nspf = scaleway.domain.Record(\"spf\",\n    dns_zone=domain_name,\n    type=\"TXT\",\n    data=cr01.spf_config.apply(lambda spf_config: f\"v=spf1 {spf_config} -all\"))\ndkim = scaleway.domain.Record(\"dkim\",\n    dns_zone=domain_name,\n    name=cr01.project_id.apply(lambda project_id: f\"{project_id}._domainkey\"),\n    type=\"TXT\",\n    data=cr01.dkim_config)\nmx = scaleway.domain.Record(\"mx\",\n    dns_zone=domain_name,\n    type=\"MX\",\n    data=\".\")\ndmarc = scaleway.domain.Record(\"dmarc\",\n    dns_zone=domain_name,\n    name=cr01.dmarc_name,\n    type=\"TXT\",\n    data=cr01.dmarc_config)\nvalid = scaleway.tem.DomainValidation(\"valid\",\n    domain_id=cr01.id,\n    region=cr01.region,\n    timeout=3600)\nwebhook = scaleway.tem.Webhook(\"webhook\",\n    name=\"example-webhook\",\n    domain_id=cr01.id,\n    event_types=[\n        \"email_delivered\",\n        \"email_bounced\",\n    ],\n    sns_arn=sns_topic.arn,\n    opts = pulumi.ResourceOptions(depends_on=[\n            valid,\n            sns_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 config = new Config();\n    var domainName = config.Require(\"domainName\");\n    var sns = new Scaleway.Mnq.Sns(\"sns\");\n\n    var snsCredentials = new Scaleway.Mnq.SnsCredentials(\"sns_credentials\", new()\n    {\n        Permissions = new Scaleway.Mnq.Inputs.SnsCredentialsPermissionsArgs\n        {\n            CanManage = true,\n        },\n    });\n\n    var snsTopic = new Scaleway.Mnq.SnsTopic(\"sns_topic\", new()\n    {\n        Name = \"test-mnq-sns-topic-basic\",\n        AccessKey = snsCredentials.AccessKey,\n        SecretKey = snsCredentials.SecretKey,\n    });\n\n    var cr01 = new Scaleway.Tem.Domain(\"cr01\", new()\n    {\n        Name = domainName,\n        AcceptTos = true,\n    });\n\n    var spf = new Scaleway.Domain.Record(\"spf\", new()\n    {\n        DnsZone = domainName,\n        Type = \"TXT\",\n        Data = cr01.SpfConfig.Apply(spfConfig =\u003e $\"v=spf1 {spfConfig} -all\"),\n    });\n\n    var dkim = new Scaleway.Domain.Record(\"dkim\", new()\n    {\n        DnsZone = domainName,\n        Name = cr01.ProjectId.Apply(projectId =\u003e $\"{projectId}._domainkey\"),\n        Type = \"TXT\",\n        Data = cr01.DkimConfig,\n    });\n\n    var mx = new Scaleway.Domain.Record(\"mx\", new()\n    {\n        DnsZone = domainName,\n        Type = \"MX\",\n        Data = \".\",\n    });\n\n    var dmarc = new Scaleway.Domain.Record(\"dmarc\", new()\n    {\n        DnsZone = domainName,\n        Name = cr01.DmarcName,\n        Type = \"TXT\",\n        Data = cr01.DmarcConfig,\n    });\n\n    var valid = new Scaleway.Tem.DomainValidation(\"valid\", new()\n    {\n        DomainId = cr01.Id,\n        Region = cr01.Region,\n        Timeout = 3600,\n    });\n\n    var webhook = new Scaleway.Tem.Webhook(\"webhook\", new()\n    {\n        Name = \"example-webhook\",\n        DomainId = cr01.Id,\n        EventTypes = new[]\n        {\n            \"email_delivered\",\n            \"email_bounced\",\n        },\n        SnsArn = snsTopic.Arn,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            valid,\n            snsTopic,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/domain\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/mnq\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tdomainName := cfg.Require(\"domainName\")\n\t\t_, err := mnq.NewSns(ctx, \"sns\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsnsCredentials, err := mnq.NewSnsCredentials(ctx, \"sns_credentials\", \u0026mnq.SnsCredentialsArgs{\n\t\t\tPermissions: \u0026mnq.SnsCredentialsPermissionsArgs{\n\t\t\t\tCanManage: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsnsTopic, err := mnq.NewSnsTopic(ctx, \"sns_topic\", \u0026mnq.SnsTopicArgs{\n\t\t\tName:      pulumi.String(\"test-mnq-sns-topic-basic\"),\n\t\t\tAccessKey: snsCredentials.AccessKey,\n\t\t\tSecretKey: snsCredentials.SecretKey,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcr01, err := tem.NewDomain(ctx, \"cr01\", \u0026tem.DomainArgs{\n\t\t\tName:      pulumi.String(domainName),\n\t\t\tAcceptTos: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"spf\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tType:    pulumi.String(\"TXT\"),\n\t\t\tData: cr01.SpfConfig.ApplyT(func(spfConfig string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"v=spf1 %v -all\", spfConfig), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"dkim\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tName: cr01.ProjectId.ApplyT(func(projectId string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v._domainkey\", projectId), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tType: pulumi.String(\"TXT\"),\n\t\t\tData: cr01.DkimConfig,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"mx\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tType:    pulumi.String(\"MX\"),\n\t\t\tData:    pulumi.String(\".\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = domain.NewRecord(ctx, \"dmarc\", \u0026domain.RecordArgs{\n\t\t\tDnsZone: pulumi.String(domainName),\n\t\t\tName:    cr01.DmarcName,\n\t\t\tType:    pulumi.String(\"TXT\"),\n\t\t\tData:    cr01.DmarcConfig,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvalid, err := tem.NewDomainValidation(ctx, \"valid\", \u0026tem.DomainValidationArgs{\n\t\t\tDomainId: cr01.ID(),\n\t\t\tRegion:   cr01.Region,\n\t\t\tTimeout:  pulumi.Int(3600),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = tem.NewWebhook(ctx, \"webhook\", \u0026tem.WebhookArgs{\n\t\t\tName:     pulumi.String(\"example-webhook\"),\n\t\t\tDomainId: cr01.ID(),\n\t\t\tEventTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"email_delivered\"),\n\t\t\t\tpulumi.String(\"email_bounced\"),\n\t\t\t},\n\t\t\tSnsArn: snsTopic.Arn,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvalid,\n\t\t\tsnsTopic,\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.mnq.Sns;\nimport com.pulumi.scaleway.mnq.SnsCredentials;\nimport com.pulumi.scaleway.mnq.SnsCredentialsArgs;\nimport com.pulumi.scaleway.mnq.inputs.SnsCredentialsPermissionsArgs;\nimport com.pulumi.scaleway.mnq.SnsTopic;\nimport com.pulumi.scaleway.mnq.SnsTopicArgs;\nimport com.pulumi.scaleway.tem.Domain;\nimport com.pulumi.scaleway.tem.DomainArgs;\nimport com.pulumi.scaleway.domain.Record;\nimport com.pulumi.scaleway.domain.RecordArgs;\nimport com.pulumi.scaleway.tem.DomainValidation;\nimport com.pulumi.scaleway.tem.DomainValidationArgs;\nimport com.pulumi.scaleway.tem.Webhook;\nimport com.pulumi.scaleway.tem.WebhookArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var domainName = config.get(\"domainName\");\n        var sns = new Sns(\"sns\");\n\n        var snsCredentials = new SnsCredentials(\"snsCredentials\", SnsCredentialsArgs.builder()\n            .permissions(SnsCredentialsPermissionsArgs.builder()\n                .canManage(true)\n                .build())\n            .build());\n\n        var snsTopic = new SnsTopic(\"snsTopic\", SnsTopicArgs.builder()\n            .name(\"test-mnq-sns-topic-basic\")\n            .accessKey(snsCredentials.accessKey())\n            .secretKey(snsCredentials.secretKey())\n            .build());\n\n        var cr01 = new Domain(\"cr01\", DomainArgs.builder()\n            .name(domainName)\n            .acceptTos(true)\n            .build());\n\n        var spf = new Record(\"spf\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .type(\"TXT\")\n            .data(cr01.spfConfig().applyValue(_spfConfig -\u003e String.format(\"v=spf1 %s -all\", _spfConfig)))\n            .build());\n\n        var dkim = new Record(\"dkim\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .name(cr01.projectId().applyValue(_projectId -\u003e String.format(\"%s._domainkey\", _projectId)))\n            .type(\"TXT\")\n            .data(cr01.dkimConfig())\n            .build());\n\n        var mx = new Record(\"mx\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .type(\"MX\")\n            .data(\".\")\n            .build());\n\n        var dmarc = new Record(\"dmarc\", RecordArgs.builder()\n            .dnsZone(domainName)\n            .name(cr01.dmarcName())\n            .type(\"TXT\")\n            .data(cr01.dmarcConfig())\n            .build());\n\n        var valid = new DomainValidation(\"valid\", DomainValidationArgs.builder()\n            .domainId(cr01.id())\n            .region(cr01.region())\n            .timeout(3600)\n            .build());\n\n        var webhook = new Webhook(\"webhook\", WebhookArgs.builder()\n            .name(\"example-webhook\")\n            .domainId(cr01.id())\n            .eventTypes(            \n                \"email_delivered\",\n                \"email_bounced\")\n            .snsArn(snsTopic.arn())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    valid,\n                    snsTopic)\n                .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  domainName:\n    type: string\nresources:\n  sns:\n    type: scaleway:mnq:Sns\n  snsCredentials:\n    type: scaleway:mnq:SnsCredentials\n    name: sns_credentials\n    properties:\n      permissions:\n        canManage: true\n  snsTopic:\n    type: scaleway:mnq:SnsTopic\n    name: sns_topic\n    properties:\n      name: test-mnq-sns-topic-basic\n      accessKey: ${snsCredentials.accessKey}\n      secretKey: ${snsCredentials.secretKey}\n  cr01:\n    type: scaleway:tem:Domain\n    properties:\n      name: ${domainName}\n      acceptTos: true\n  spf:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      type: TXT\n      data: v=spf1 ${cr01.spfConfig} -all\n  dkim:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      name: ${cr01.projectId}._domainkey\n      type: TXT\n      data: ${cr01.dkimConfig}\n  mx:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      type: MX\n      data: .\n  dmarc:\n    type: scaleway:domain:Record\n    properties:\n      dnsZone: ${domainName}\n      name: ${cr01.dmarcName}\n      type: TXT\n      data: ${cr01.dmarcConfig}\n  valid:\n    type: scaleway:tem:DomainValidation\n    properties:\n      domainId: ${cr01.id}\n      region: ${cr01.region}\n      timeout: 3600\n  webhook:\n    type: scaleway:tem:Webhook\n    properties:\n      name: example-webhook\n      domainId: ${cr01.id}\n      eventTypes:\n        - email_delivered\n        - email_bounced\n      snsArn: ${snsTopic.arn}\n    options:\n      dependsOn:\n        - ${valid}\n        - ${snsTopic}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nWebhooks can be imported using the {region}/{id}, e.g.\n\nbash\n\n```sh\n$ pulumi import scaleway:tem/webhook:Webhook main fr-par/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"createdAt":{"type":"string","description":"The date and time of the webhook's creation (RFC 3339 format).\n"},"domainId":{"type":"string","description":"The ID of the domain the webhook is associated with.\n"},"eventTypes":{"type":"array","items":{"type":"string"},"description":"A list of event types that trigger the webhook.\n"},"name":{"type":"string","description":"The name of the webhook. Defaults to an autogenerated name if not provided.\n"},"organizationId":{"type":"string","description":"The ID of the organization the webhook belongs to.\n"},"projectId":{"type":"string","description":"The ID of the project the webhook is associated with.\n"},"region":{"type":"string","description":". The region in which the webhook should be created.\n"},"snsArn":{"type":"string","description":"The Amazon Resource Name (ARN) of the SNS topic.\n"},"updatedAt":{"type":"string","description":"The date and time of the webhook's last update (RFC 3339 format).\n"}},"required":["createdAt","domainId","eventTypes","name","organizationId","projectId","snsArn","updatedAt"],"inputProperties":{"domainId":{"type":"string","description":"The ID of the domain the webhook is associated with.\n","willReplaceOnChanges":true},"eventTypes":{"type":"array","items":{"type":"string"},"description":"A list of event types that trigger the webhook.\n"},"name":{"type":"string","description":"The name of the webhook. Defaults to an autogenerated name if not provided.\n"},"projectId":{"type":"string","description":"The ID of the project the webhook is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":". The region in which the webhook should be created.\n","willReplaceOnChanges":true},"snsArn":{"type":"string","description":"The Amazon Resource Name (ARN) of the SNS topic.\n"}},"requiredInputs":["domainId","eventTypes","snsArn"],"stateInputs":{"description":"Input properties used for looking up and filtering Webhook resources.\n","properties":{"createdAt":{"type":"string","description":"The date and time of the webhook's creation (RFC 3339 format).\n"},"domainId":{"type":"string","description":"The ID of the domain the webhook is associated with.\n","willReplaceOnChanges":true},"eventTypes":{"type":"array","items":{"type":"string"},"description":"A list of event types that trigger the webhook.\n"},"name":{"type":"string","description":"The name of the webhook. Defaults to an autogenerated name if not provided.\n"},"organizationId":{"type":"string","description":"The ID of the organization the webhook belongs to.\n"},"projectId":{"type":"string","description":"The ID of the project the webhook is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":". The region in which the webhook should be created.\n","willReplaceOnChanges":true},"snsArn":{"type":"string","description":"The Amazon Resource Name (ARN) of the SNS topic.\n"},"updatedAt":{"type":"string","description":"The date and time of the webhook's last update (RFC 3339 format).\n"}},"type":"object"},"aliases":[{"type":"scaleway:index/temWebhook:TemWebhook"}]}},"functions":{"pulumi:providers:scaleway/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"type":"ref","$ref":"#/provider"}},"type":"pulumi:providers:scaleway/terraformConfig","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}},"scaleway:account/getAvailabilityZones:getAvailabilityZones":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.account.getAvailabilityZones`\" pulumi-lang-dotnet=\"`scaleway.account.getAvailabilityZones`\" pulumi-lang-go=\"`account.getAvailabilityZones`\" pulumi-lang-python=\"`account_get_availability_zones`\" pulumi-lang-yaml=\"`scaleway.account.getAvailabilityZones`\" pulumi-lang-java=\"`scaleway.account.getAvailabilityZones`\"\u003e`scaleway.account.getAvailabilityZones`\u003c/span\u003e data source is used to retrieve information about the available zones based on its Region.\n\nFor technical and legal reasons, some products are split by Region or by Availability Zones. When using such product,\nyou can choose the location that better fits your need (country, latency, etc.).\n\nRefer to the Account [documentation](https://www.scaleway.com/en/docs/console/account/reference-content/products-availability/) for more information.\n\n## Retrieve the Availability Zones of a Region\n\nThe following command allow you to retrieve a the AZs of a Region.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by Region key\nconst main = scaleway.account.getAvailabilityZones({\n    region: \"nl-ams\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by Region key\nmain = scaleway.account.get_availability_zones(region=\"nl-ams\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by Region key\n    var main = Scaleway.Account.GetAvailabilityZones.Invoke(new()\n    {\n        Region = \"nl-ams\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/account\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by Region key\n\t\t_, err := account.GetAvailabilityZones(ctx, \u0026account.GetAvailabilityZonesArgs{\n\t\t\tRegion: pulumi.StringRef(\"nl-ams\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetAvailabilityZonesArgs;\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        // Get info by Region key\n        final var main = AccountFunctions.getAvailabilityZones(GetAvailabilityZonesArgs.builder()\n            .region(\"nl-ams\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by Region key\n  main:\n    fn::invoke:\n      function: scaleway:account:getAvailabilityZones\n      arguments:\n        region: nl-ams\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAvailabilityZones.\n","properties":{"region":{"type":"string","description":"Region is represented as a Geographical area, such as France. Defaults to `fr-par`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAvailabilityZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"region":{"type":"string"},"zones":{"description":"The list of availability zones in each Region\n","items":{"type":"string"},"type":"array"}},"required":["zones","id"],"type":"object"}},"scaleway:account/getProject:getProject":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.account.Project`\" pulumi-lang-dotnet=\"`scaleway.account.Project`\" pulumi-lang-go=\"`account.Project`\" pulumi-lang-python=\"`account.Project`\" pulumi-lang-yaml=\"`scaleway.account.Project`\" pulumi-lang-java=\"`scaleway.account.Project`\"\u003e`scaleway.account.Project`\u003c/span\u003e data source is used to retrieve information about a Scaleway project.\n\nRefer to the Organizations and Projects [documentation](https://www.scaleway.com/en/docs/organizations-and-projects/) and [API documentation](https://www.scaleway.com/en/developers/api/account/project-api/) for more information.\n\n","inputs":{"description":"A collection of arguments for invoking getProject.\n","properties":{"name":{"type":"string","description":"The name of the Project.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e should be specified.\n"},"organizationId":{"type":"string","description":"The unique identifier of the Organization with which the Project is associated.\n\nIf no default \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e is set, one must be set explicitly in this datasource\n"},"projectId":{"type":"string","description":"The unique identifier of the Project.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProject.\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"updatedAt":{"type":"string"}},"required":["createdAt","description","projectId","updatedAt","id"],"type":"object"}},"scaleway:account/getProjects:getProjects":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.account.getProjects`\" pulumi-lang-dotnet=\"`scaleway.account.getProjects`\" pulumi-lang-go=\"`account.getProjects`\" pulumi-lang-python=\"`account_get_projects`\" pulumi-lang-yaml=\"`scaleway.account.getProjects`\" pulumi-lang-java=\"`scaleway.account.getProjects`\"\u003e`scaleway.account.getProjects`\u003c/span\u003e data source is used to list all Scaleway projects in an Organization.\n\nRefer to the Organizations and Projects [documentation](https://www.scaleway.com/en/docs/organizations-and-projects/) and [API documentation](https://www.scaleway.com/en/developers/api/account/project-api/) for more information.\n\n## Retrieve a Scaleway Projects\n\nThe following commands allow you to:\n\n- retrieve all Projects in an Organization\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get all Projects in an Organization\nconst all = scaleway.account.getProjects({\n    organizationId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get all Projects in an Organization\nall = scaleway.account.get_projects(organization_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get all Projects in an Organization\n    var all = Scaleway.Account.GetProjects.Invoke(new()\n    {\n        OrganizationId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\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/account\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get all Projects in an Organization\n\t\t_, err := account.GetProjects(ctx, \u0026account.GetProjectsArgs{\n\t\t\tOrganizationId: pulumi.StringRef(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectsArgs;\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        // Get all Projects in an Organization\n        final var all = AccountFunctions.getProjects(GetProjectsArgs.builder()\n            .organizationId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get all Projects in an Organization\n  all:\n    fn::invoke:\n      function: scaleway:account:getProjects\n      arguments:\n        organizationId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example Usage\n\n### Deploy an SSH key in all your organization's projects\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst all = scaleway.account.getProjects({});\nconst main: scaleway.account.SshKey[] = [];\nall.then(all =\u003e all.projects).length.apply(rangeBody =\u003e {\n    for (const range = {value: 0}; range.value \u003c rangeBody; range.value++) {\n        main.push(new scaleway.account.SshKey(`main-${range.value}`, {\n            name: \"main\",\n            publicKey: publicKey,\n            projectId: all.then(all =\u003e all.projects[range.value].id),\n        }));\n    }\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nall = scaleway.account.get_projects()\nmain = []\ndef create_main(range_body):\n    for range in [{\"value\": i} for i in range(0, range_body)]:\n        main.append(scaleway.account.SshKey(f\"main-{range['value']}\",\n            name=\"main\",\n            public_key=public_key,\n            project_id=all.projects[range[\"value\"]].id))\n\n(len(all.projects)).apply(create_main)\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 all = Scaleway.Account.GetProjects.Invoke();\n\n    var main = new List\u003cScaleway.Account.SshKey\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c all.Apply(getProjectsResult =\u003e getProjectsResult.Projects).Length; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        main.Add(new Scaleway.Account.SshKey($\"main-{range.Value}\", new()\n        {\n            Name = \"main\",\n            PublicKey = publicKey,\n            ProjectId = all.Apply(getProjectsResult =\u003e getProjectsResult.Projects)[range.Value].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/account\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := account.GetProjects(ctx, \u0026account.GetProjectsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar main []*account.SshKey\n\t\tfor index := 0; index \u003c int(len(all.Projects)); index++ {\n\t\t\tkey0 := index\n\t\t\tval0 := index\n\t\t\t__res, err := account.NewSshKey(ctx, fmt.Sprintf(\"main-%v\", key0), \u0026account.SshKeyArgs{\n\t\t\t\tName:      pulumi.String(\"main\"),\n\t\t\t\tPublicKey: pulumi.Any(publicKey),\n\t\t\t\tProjectId: all.Projects[val0].Id,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\tmain = append(main, __res)\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.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetProjectsArgs;\nimport com.pulumi.scaleway.account.SshKey;\nimport com.pulumi.scaleway.account.SshKeyArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\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 all = AccountFunctions.getProjects(GetProjectsArgs.builder()\n            .build());\n\n        for (var i = 0; i \u003c all.projects().length(); i++) {\n            new SshKey(\"main-\" + i, SshKeyArgs.builder()\n                .name(\"main\")\n                .publicKey(publicKey)\n                .projectId(all.projects()[range.value()].id())\n                .build());\n\n        \n}\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjects.\n","properties":{"organizationId":{"type":"string","description":"The unique identifier of the Organization with which the Projects are associated.\nIf no default \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e is set, one must be set explicitly in this datasource\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProjects.\n","properties":{"createdAt":{"description":"(Computed) The date and time when the project was created.\n","type":"string"},"description":{"description":"(Computed) The description of the project.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"(Computed) The name of the project.\n","type":"string"},"organizationId":{"description":"(Computed) The unique identifier of the organization with which the project is associated.\n","type":"string"},"projects":{"description":"(Computed) A list of projects. Each project has the following attributes:\n","items":{"$ref":"#/types/scaleway:account/getProjectsProject:getProjectsProject"},"type":"array"},"updatedAt":{"description":"(Computed) The date and time when the project was updated.\n","type":"string"}},"required":["createdAt","description","name","organizationId","projects","updatedAt","id"],"type":"object"}},"scaleway:account/getSshKey:getSshKey":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.account.SshKey`\" pulumi-lang-dotnet=\"`scaleway.account.SshKey`\" pulumi-lang-go=\"`account.SshKey`\" pulumi-lang-python=\"`account.SshKey`\" pulumi-lang-yaml=\"`scaleway.account.SshKey`\" pulumi-lang-java=\"`scaleway.account.SshKey`\"\u003e`scaleway.account.SshKey`\u003c/span\u003e data source is used to retrieve information about a the SSH key of a Scaleway account.\n\nRefer to the Organizations and Projects [documentation](https://www.scaleway.com/en/docs/organizations-and-projects/how-to/create-ssh-key/) and [API documentation](https://www.scaleway.com/en/developers/api/iam/#path-ssh-keys) for more information.\n\n","inputs":{"description":"A collection of arguments for invoking getSshKey.\n","properties":{"name":{"type":"string","description":"The name of the SSH key.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project with which the SSH key is associated.\n"},"sshKeyId":{"type":"string","description":"The unique identifier of the SSH key.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`sshKeyId`\" pulumi-lang-dotnet=\"`SshKeyId`\" pulumi-lang-go=\"`sshKeyId`\" pulumi-lang-python=\"`ssh_key_id`\" pulumi-lang-yaml=\"`sshKeyId`\" pulumi-lang-java=\"`sshKeyId`\"\u003e`ssh_key_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSshKey.\n","properties":{"createdAt":{"type":"string"},"disabled":{"type":"boolean"},"fingerprint":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The unique identifier of the Organization with which the SSH key is associated.\n","type":"string"},"projectId":{"type":"string"},"publicKey":{"description":"The string of the SSH public key.\n","type":"string"},"sshKeyId":{"type":"string"},"updatedAt":{"type":"string"}},"required":["createdAt","disabled","fingerprint","organizationId","publicKey","updatedAt","id"],"type":"object"}},"scaleway:applesilicon/getOs:getOs":{"description":"Gets information about a Apple Silicon operating system.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/apple-silicon/#path-os-list-all-operating-systems-os).\n\nYou can also use the [scaleway-cli](https://github.com/scaleway/scaleway-cli) with `scw apple-silicon os list` to list all available operating systems.\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\n// Get info by os name and version\nconst byName = scaleway.applesilicon.getOs({\n    name: \"devos-sequoia-15.6\",\n});\n// Get info by os id\nconst byId = scaleway.applesilicon.getOs({\n    osId: \"cafecafe-5018-4dcd-bd08-35f031b0ac3e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by os name and version\nby_name = scaleway.applesilicon.get_os(name=\"devos-sequoia-15.6\")\n# Get info by os id\nby_id = scaleway.applesilicon.get_os(os_id=\"cafecafe-5018-4dcd-bd08-35f031b0ac3e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by os name and version\n    var byName = Scaleway.Applesilicon.GetOs.Invoke(new()\n    {\n        Name = \"devos-sequoia-15.6\",\n    });\n\n    // Get info by os id\n    var byId = Scaleway.Applesilicon.GetOs.Invoke(new()\n    {\n        OsId = \"cafecafe-5018-4dcd-bd08-35f031b0ac3e\",\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/applesilicon\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by os name and version\n\t\t_, err := applesilicon.GetOs(ctx, \u0026applesilicon.GetOsArgs{\n\t\t\tName: pulumi.StringRef(\"devos-sequoia-15.6\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by os id\n\t\t_, err = applesilicon.GetOs(ctx, \u0026applesilicon.GetOsArgs{\n\t\t\tOsId: pulumi.StringRef(\"cafecafe-5018-4dcd-bd08-35f031b0ac3e\"),\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.applesilicon.ApplesiliconFunctions;\nimport com.pulumi.scaleway.applesilicon.inputs.GetOsArgs;\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        // Get info by os name and version\n        final var byName = ApplesiliconFunctions.getOs(GetOsArgs.builder()\n            .name(\"devos-sequoia-15.6\")\n            .build());\n\n        // Get info by os id\n        final var byId = ApplesiliconFunctions.getOs(GetOsArgs.builder()\n            .osId(\"cafecafe-5018-4dcd-bd08-35f031b0ac3e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by os name and version\n  byName:\n    fn::invoke:\n      function: scaleway:applesilicon:getOs\n      arguments:\n        name: devos-sequoia-15.6\n  # Get info by os id\n  byId:\n    fn::invoke:\n      function: scaleway:applesilicon:getOs\n      arguments:\n        osId: cafecafe-5018-4dcd-bd08-35f031b0ac3e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOs.\n","properties":{"name":{"type":"string","description":"The os name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`osId`\" pulumi-lang-dotnet=\"`OsId`\" pulumi-lang-go=\"`osId`\" pulumi-lang-python=\"`os_id`\" pulumi-lang-yaml=\"`osId`\" pulumi-lang-java=\"`osId`\"\u003e`os_id`\u003c/span\u003e should be specified.\n"},"osId":{"type":"string","description":"The operating system id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`osId`\" pulumi-lang-dotnet=\"`OsId`\" pulumi-lang-go=\"`osId`\" pulumi-lang-python=\"`os_id`\" pulumi-lang-yaml=\"`osId`\" pulumi-lang-java=\"`osId`\"\u003e`os_id`\u003c/span\u003e should be specified.\n"},"version":{"type":"string","description":"The os version.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the os exists.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getOs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"osId":{"type":"string"},"version":{"type":"string"},"zone":{"type":"string"}},"required":["version","id"],"type":"object"}},"scaleway:audittrail/getEvent:getEvent":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.audittrail.getEvent`\" pulumi-lang-dotnet=\"`scaleway.audittrail.getEvent`\" pulumi-lang-go=\"`audittrail.getEvent`\" pulumi-lang-python=\"`audittrail_get_event`\" pulumi-lang-yaml=\"`scaleway.audittrail.getEvent`\" pulumi-lang-java=\"`scaleway.audittrail.getEvent`\"\u003e`scaleway.audittrail.getEvent`\u003c/span\u003e data source is used to retrieve information about existing Audit Trail events.\n\nRefer to the Audit Trail [documentation](https://www.scaleway.com/en/docs/audit-trail/) and [API documentation](https://www.scaleway.com/en/developers/api/audit-trail/) for more information.\n\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\n// Retrieve audit trail for a specific resource\nconst findByResourceId = scaleway.audittrail.getEvent({\n    resourceId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Retrieve audit trail for a specific resource\nfind_by_resource_id = scaleway.audittrail.get_event(resource_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    // Retrieve audit trail for a specific resource\n    var findByResourceId = Scaleway.Audittrail.GetEvent.Invoke(new()\n    {\n        ResourceId = \"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/audittrail\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve audit trail for a specific resource\n\t\t_, err := audittrail.GetEvent(ctx, \u0026audittrail.GetEventArgs{\n\t\t\tResourceId: 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.audittrail.AudittrailFunctions;\nimport com.pulumi.scaleway.audittrail.inputs.GetEventArgs;\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        // Retrieve audit trail for a specific resource\n        final var findByResourceId = AudittrailFunctions.getEvent(GetEventArgs.builder()\n            .resourceId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve audit trail for a specific resource\n  findByResourceId:\n    fn::invoke:\n      function: scaleway:audittrail:getEvent\n      arguments:\n        resourceId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Retrieve all audit trail events on the default organization\nconst findAll = scaleway.audittrail.getEvent({});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Retrieve all audit trail events on the default organization\nfind_all = scaleway.audittrail.get_event()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve all audit trail events on the default organization\n    var findAll = Scaleway.Audittrail.GetEvent.Invoke();\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/audittrail\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve all audit trail events on the default organization\n\t\t_, err := audittrail.GetEvent(ctx, \u0026audittrail.GetEventArgs{}, 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.audittrail.AudittrailFunctions;\nimport com.pulumi.scaleway.audittrail.inputs.GetEventArgs;\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        // Retrieve all audit trail events on the default organization\n        final var findAll = AudittrailFunctions.getEvent(GetEventArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve all audit trail events on the default organization\n  findAll:\n    fn::invoke:\n      function: scaleway:audittrail:getEvent\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Retrieve audit trail for a specific Scaleway product\nconst findByProductName = scaleway.audittrail.getEvent({\n    productName: \"secret-manager\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Retrieve audit trail for a specific Scaleway product\nfind_by_product_name = scaleway.audittrail.get_event(product_name=\"secret-manager\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve audit trail for a specific Scaleway product\n    var findByProductName = Scaleway.Audittrail.GetEvent.Invoke(new()\n    {\n        ProductName = \"secret-manager\",\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/audittrail\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve audit trail for a specific Scaleway product\n\t\t_, err := audittrail.GetEvent(ctx, \u0026audittrail.GetEventArgs{\n\t\t\tProductName: pulumi.StringRef(\"secret-manager\"),\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.audittrail.AudittrailFunctions;\nimport com.pulumi.scaleway.audittrail.inputs.GetEventArgs;\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        // Retrieve audit trail for a specific Scaleway product\n        final var findByProductName = AudittrailFunctions.getEvent(GetEventArgs.builder()\n            .productName(\"secret-manager\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve audit trail for a specific Scaleway product\n  findByProductName:\n    fn::invoke:\n      function: scaleway:audittrail:getEvent\n      arguments:\n        productName: secret-manager\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Retrieve audit trail events with various filtering\nconst findWithFilters = scaleway.audittrail.getEvent({\n    region: \"fr-par\",\n    serviceName: \"instance\",\n    methodName: \"CreateServer\",\n    principalId: \"11111111-1111-1111-1111-111111111111\",\n    sourceIp: \"192.0.2.1\",\n    status: 200,\n    recordedAfter: \"2025-10-01T00:00:00Z\",\n    recordedBefore: \"2025-12-31T23:59:59Z\",\n    orderBy: \"recorded_at_desc\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Retrieve audit trail events with various filtering\nfind_with_filters = scaleway.audittrail.get_event(region=\"fr-par\",\n    service_name=\"instance\",\n    method_name=\"CreateServer\",\n    principal_id=\"11111111-1111-1111-1111-111111111111\",\n    source_ip=\"192.0.2.1\",\n    status=200,\n    recorded_after=\"2025-10-01T00:00:00Z\",\n    recorded_before=\"2025-12-31T23:59:59Z\",\n    order_by=\"recorded_at_desc\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve audit trail events with various filtering\n    var findWithFilters = Scaleway.Audittrail.GetEvent.Invoke(new()\n    {\n        Region = \"fr-par\",\n        ServiceName = \"instance\",\n        MethodName = \"CreateServer\",\n        PrincipalId = \"11111111-1111-1111-1111-111111111111\",\n        SourceIp = \"192.0.2.1\",\n        Status = 200,\n        RecordedAfter = \"2025-10-01T00:00:00Z\",\n        RecordedBefore = \"2025-12-31T23:59:59Z\",\n        OrderBy = \"recorded_at_desc\",\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/audittrail\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve audit trail events with various filtering\n\t\t_, err := audittrail.GetEvent(ctx, \u0026audittrail.GetEventArgs{\n\t\t\tRegion:         pulumi.StringRef(\"fr-par\"),\n\t\t\tServiceName:    pulumi.StringRef(\"instance\"),\n\t\t\tMethodName:     pulumi.StringRef(\"CreateServer\"),\n\t\t\tPrincipalId:    pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\tSourceIp:       pulumi.StringRef(\"192.0.2.1\"),\n\t\t\tStatus:         pulumi.IntRef(200),\n\t\t\tRecordedAfter:  pulumi.StringRef(\"2025-10-01T00:00:00Z\"),\n\t\t\tRecordedBefore: pulumi.StringRef(\"2025-12-31T23:59:59Z\"),\n\t\t\tOrderBy:        pulumi.StringRef(\"recorded_at_desc\"),\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.audittrail.AudittrailFunctions;\nimport com.pulumi.scaleway.audittrail.inputs.GetEventArgs;\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        // Retrieve audit trail events with various filtering\n        final var findWithFilters = AudittrailFunctions.getEvent(GetEventArgs.builder()\n            .region(\"fr-par\")\n            .serviceName(\"instance\")\n            .methodName(\"CreateServer\")\n            .principalId(\"11111111-1111-1111-1111-111111111111\")\n            .sourceIp(\"192.0.2.1\")\n            .status(200)\n            .recordedAfter(\"2025-10-01T00:00:00Z\")\n            .recordedBefore(\"2025-12-31T23:59:59Z\")\n            .orderBy(\"recorded_at_desc\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve audit trail events with various filtering\n  findWithFilters:\n    fn::invoke:\n      function: scaleway:audittrail:getEvent\n      arguments:\n        region: fr-par\n        serviceName: instance\n        methodName: CreateServer\n        principalId: 11111111-1111-1111-1111-111111111111\n        sourceIp: 192.0.2.1\n        status: 200\n        recordedAfter: 2025-10-01T00:00:00Z\n        recordedBefore: 2025-12-31T23:59:59Z\n        orderBy: recorded_at_desc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Retrieve audit trail events on a specific organization\nconst findByOrg = scaleway.audittrail.getEvent({\n    organizationId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Retrieve audit trail events on a specific organization\nfind_by_org = scaleway.audittrail.get_event(organization_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    // Retrieve audit trail events on a specific organization\n    var findByOrg = Scaleway.Audittrail.GetEvent.Invoke(new()\n    {\n        OrganizationId = \"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/audittrail\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve audit trail events on a specific organization\n\t\t_, err := audittrail.GetEvent(ctx, \u0026audittrail.GetEventArgs{\n\t\t\tOrganizationId: 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.audittrail.AudittrailFunctions;\nimport com.pulumi.scaleway.audittrail.inputs.GetEventArgs;\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        // Retrieve audit trail events on a specific organization\n        final var findByOrg = AudittrailFunctions.getEvent(GetEventArgs.builder()\n            .organizationId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve audit trail events on a specific organization\n  findByOrg:\n    fn::invoke:\n      function: scaleway:audittrail:getEvent\n      arguments:\n        organizationId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Retrieve audit trail events on a specific project\nconst findByProject = scaleway.audittrail.getEvent({\n    projectId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Retrieve audit trail events on a specific project\nfind_by_project = scaleway.audittrail.get_event(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    // Retrieve audit trail events on a specific project\n    var findByProject = Scaleway.Audittrail.GetEvent.Invoke(new()\n    {\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/audittrail\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve audit trail events on a specific project\n\t\t_, err := audittrail.GetEvent(ctx, \u0026audittrail.GetEventArgs{\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.audittrail.AudittrailFunctions;\nimport com.pulumi.scaleway.audittrail.inputs.GetEventArgs;\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        // Retrieve audit trail events on a specific project\n        final var findByProject = AudittrailFunctions.getEvent(GetEventArgs.builder()\n            .projectId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve audit trail events on a specific project\n  findByProject:\n    fn::invoke:\n      function: scaleway:audittrail:getEvent\n      arguments:\n        projectId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Retrieve audit trail events for a specific type of resource\nconst findByResourceType = scaleway.audittrail.getEvent({\n    resourceType: \"instance_server\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Retrieve audit trail events for a specific type of resource\nfind_by_resource_type = scaleway.audittrail.get_event(resource_type=\"instance_server\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve audit trail events for a specific type of resource\n    var findByResourceType = Scaleway.Audittrail.GetEvent.Invoke(new()\n    {\n        ResourceType = \"instance_server\",\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/audittrail\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve audit trail events for a specific type of resource\n\t\t_, err := audittrail.GetEvent(ctx, \u0026audittrail.GetEventArgs{\n\t\t\tResourceType: pulumi.StringRef(\"instance_server\"),\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.audittrail.AudittrailFunctions;\nimport com.pulumi.scaleway.audittrail.inputs.GetEventArgs;\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        // Retrieve audit trail events for a specific type of resource\n        final var findByResourceType = AudittrailFunctions.getEvent(GetEventArgs.builder()\n            .resourceType(\"instance_server\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve audit trail events for a specific type of resource\n  findByResourceType:\n    fn::invoke:\n      function: scaleway:audittrail:getEvent\n      arguments:\n        resourceType: instance_server\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEvent.\n","properties":{"methodName":{"type":"string","description":"Name of the method of the API call performed.\n"},"orderBy":{"type":"string","description":"Defines the order in which events are returned. Possible values are \u003cspan pulumi-lang-nodejs=\"`recordedAtAsc`\" pulumi-lang-dotnet=\"`RecordedAtAsc`\" pulumi-lang-go=\"`recordedAtAsc`\" pulumi-lang-python=\"`recorded_at_asc`\" pulumi-lang-yaml=\"`recordedAtAsc`\" pulumi-lang-java=\"`recordedAtAsc`\"\u003e`recorded_at_asc`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`recordedAtDesc`\" pulumi-lang-dotnet=\"`RecordedAtDesc`\" pulumi-lang-go=\"`recordedAtDesc`\" pulumi-lang-python=\"`recorded_at_desc`\" pulumi-lang-yaml=\"`recordedAtDesc`\" pulumi-lang-java=\"`recordedAtDesc`\"\u003e`recorded_at_desc`\u003c/span\u003e. Default value: \u003cspan pulumi-lang-nodejs=\"`recordedAtDesc`\" pulumi-lang-dotnet=\"`RecordedAtDesc`\" pulumi-lang-go=\"`recordedAtDesc`\" pulumi-lang-python=\"`recorded_at_desc`\" pulumi-lang-yaml=\"`recordedAtDesc`\" pulumi-lang-java=\"`recordedAtDesc`\"\u003e`recorded_at_desc`\u003c/span\u003e.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) ID of the Organization containing the Audit Trail events.\n"},"principalId":{"type":"string","description":"ID of the User or IAM application at the origin of the event.\n"},"productName":{"type":"string","description":"Name of the Scaleway product in a hyphenated format.\n"},"projectId":{"type":"string","description":"ID of the Project containing the Audit Trail events.\n"},"recordedAfter":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`recordedAfter`\" pulumi-lang-dotnet=\"`RecordedAfter`\" pulumi-lang-go=\"`recordedAfter`\" pulumi-lang-python=\"`recorded_after`\" pulumi-lang-yaml=\"`recordedAfter`\" pulumi-lang-java=\"`recordedAfter`\"\u003e`recorded_after`\u003c/span\u003e parameter defines the earliest timestamp from which Audit Trail events are retrieved. Returns `one hour ago` by default (Format ISO 8601).\n"},"recordedBefore":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`recordedBefore`\" pulumi-lang-dotnet=\"`RecordedBefore`\" pulumi-lang-go=\"`recordedBefore`\" pulumi-lang-python=\"`recorded_before`\" pulumi-lang-yaml=\"`recordedBefore`\" pulumi-lang-java=\"`recordedBefore`\"\u003e`recorded_before`\u003c/span\u003e parameter defines the latest timestamp up to which Audit Trail events are retrieved. Must be later than recorded_after. Returns \u003cspan pulumi-lang-nodejs=\"`now`\" pulumi-lang-dotnet=\"`Now`\" pulumi-lang-go=\"`now`\" pulumi-lang-python=\"`now`\" pulumi-lang-yaml=\"`now`\" pulumi-lang-java=\"`now`\"\u003e`now`\u003c/span\u003e by default (Format ISO 8601).\n"},"region":{"type":"string","description":"The region you want to target. Defaults to the region specified in the provider configuration.\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"ID of the Scaleway resource associated with the listed events.\n"},"resourceType":{"type":"string","description":"Type of the scaleway resources associated with the listed events. Possible values are: \u003cspan pulumi-lang-nodejs=\"`secmSecret`\" pulumi-lang-dotnet=\"`SecmSecret`\" pulumi-lang-go=\"`secmSecret`\" pulumi-lang-python=\"`secm_secret`\" pulumi-lang-yaml=\"`secmSecret`\" pulumi-lang-java=\"`secmSecret`\"\u003e`secm_secret`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secmSecretVersion`\" pulumi-lang-dotnet=\"`SecmSecretVersion`\" pulumi-lang-go=\"`secmSecretVersion`\" pulumi-lang-python=\"`secm_secret_version`\" pulumi-lang-yaml=\"`secmSecretVersion`\" pulumi-lang-java=\"`secmSecretVersion`\"\u003e`secm_secret_version`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kubeCluster`\" pulumi-lang-dotnet=\"`KubeCluster`\" pulumi-lang-go=\"`kubeCluster`\" pulumi-lang-python=\"`kube_cluster`\" pulumi-lang-yaml=\"`kubeCluster`\" pulumi-lang-java=\"`kubeCluster`\"\u003e`kube_cluster`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kubePool`\" pulumi-lang-dotnet=\"`KubePool`\" pulumi-lang-go=\"`kubePool`\" pulumi-lang-python=\"`kube_pool`\" pulumi-lang-yaml=\"`kubePool`\" pulumi-lang-java=\"`kubePool`\"\u003e`kube_pool`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kubeNode`\" pulumi-lang-dotnet=\"`KubeNode`\" pulumi-lang-go=\"`kubeNode`\" pulumi-lang-python=\"`kube_node`\" pulumi-lang-yaml=\"`kubeNode`\" pulumi-lang-java=\"`kubeNode`\"\u003e`kube_node`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kubeAcl`\" pulumi-lang-dotnet=\"`KubeAcl`\" pulumi-lang-go=\"`kubeAcl`\" pulumi-lang-python=\"`kube_acl`\" pulumi-lang-yaml=\"`kubeAcl`\" pulumi-lang-java=\"`kubeAcl`\"\u003e`kube_acl`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`keymKey`\" pulumi-lang-dotnet=\"`KeymKey`\" pulumi-lang-go=\"`keymKey`\" pulumi-lang-python=\"`keym_key`\" pulumi-lang-yaml=\"`keymKey`\" pulumi-lang-java=\"`keymKey`\"\u003e`keym_key`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`iamUser`\" pulumi-lang-dotnet=\"`IamUser`\" pulumi-lang-go=\"`iamUser`\" pulumi-lang-python=\"`iam_user`\" pulumi-lang-yaml=\"`iamUser`\" pulumi-lang-java=\"`iamUser`\"\u003e`iam_user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`iamApplication`\" pulumi-lang-dotnet=\"`IamApplication`\" pulumi-lang-go=\"`iamApplication`\" pulumi-lang-python=\"`iam_application`\" pulumi-lang-yaml=\"`iamApplication`\" pulumi-lang-java=\"`iamApplication`\"\u003e`iam_application`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`iamGroup`\" pulumi-lang-dotnet=\"`IamGroup`\" pulumi-lang-go=\"`iamGroup`\" pulumi-lang-python=\"`iam_group`\" pulumi-lang-yaml=\"`iamGroup`\" pulumi-lang-java=\"`iamGroup`\"\u003e`iam_group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`iamPolicy`\" pulumi-lang-dotnet=\"`IamPolicy`\" pulumi-lang-go=\"`iamPolicy`\" pulumi-lang-python=\"`iam_policy`\" pulumi-lang-yaml=\"`iamPolicy`\" pulumi-lang-java=\"`iamPolicy`\"\u003e`iam_policy`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`iamApiKey`\" pulumi-lang-dotnet=\"`IamApiKey`\" pulumi-lang-go=\"`iamApiKey`\" pulumi-lang-python=\"`iam_api_key`\" pulumi-lang-yaml=\"`iamApiKey`\" pulumi-lang-java=\"`iamApiKey`\"\u003e`iam_api_key`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`iamSshKey`\" pulumi-lang-dotnet=\"`IamSshKey`\" pulumi-lang-go=\"`iamSshKey`\" pulumi-lang-python=\"`iam_ssh_key`\" pulumi-lang-yaml=\"`iamSshKey`\" pulumi-lang-java=\"`iamSshKey`\"\u003e`iam_ssh_key`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`iamRule`\" pulumi-lang-dotnet=\"`IamRule`\" pulumi-lang-go=\"`iamRule`\" pulumi-lang-python=\"`iam_rule`\" pulumi-lang-yaml=\"`iamRule`\" pulumi-lang-java=\"`iamRule`\"\u003e`iam_rule`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`iamSaml`\" pulumi-lang-dotnet=\"`IamSaml`\" pulumi-lang-go=\"`iamSaml`\" pulumi-lang-python=\"`iam_saml`\" pulumi-lang-yaml=\"`iamSaml`\" pulumi-lang-java=\"`iamSaml`\"\u003e`iam_saml`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`iamSamlCertificate`\" pulumi-lang-dotnet=\"`IamSamlCertificate`\" pulumi-lang-go=\"`iamSamlCertificate`\" pulumi-lang-python=\"`iam_saml_certificate`\" pulumi-lang-yaml=\"`iamSamlCertificate`\" pulumi-lang-java=\"`iamSamlCertificate`\"\u003e`iam_saml_certificate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secretManagerSecret`\" pulumi-lang-dotnet=\"`SecretManagerSecret`\" pulumi-lang-go=\"`secretManagerSecret`\" pulumi-lang-python=\"`secret_manager_secret`\" pulumi-lang-yaml=\"`secretManagerSecret`\" pulumi-lang-java=\"`secretManagerSecret`\"\u003e`secret_manager_secret`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`secretManagerVersion`\" pulumi-lang-dotnet=\"`SecretManagerVersion`\" pulumi-lang-go=\"`secretManagerVersion`\" pulumi-lang-python=\"`secret_manager_version`\" pulumi-lang-yaml=\"`secretManagerVersion`\" pulumi-lang-java=\"`secretManagerVersion`\"\u003e`secret_manager_version`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`keyManagerKey`\" pulumi-lang-dotnet=\"`KeyManagerKey`\" pulumi-lang-go=\"`keyManagerKey`\" pulumi-lang-python=\"`key_manager_key`\" pulumi-lang-yaml=\"`keyManagerKey`\" pulumi-lang-java=\"`keyManagerKey`\"\u003e`key_manager_key`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`accountUser`\" pulumi-lang-dotnet=\"`AccountUser`\" pulumi-lang-go=\"`accountUser`\" pulumi-lang-python=\"`account_user`\" pulumi-lang-yaml=\"`accountUser`\" pulumi-lang-java=\"`accountUser`\"\u003e`account_user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`accountOrganization`\" pulumi-lang-dotnet=\"`AccountOrganization`\" pulumi-lang-go=\"`accountOrganization`\" pulumi-lang-python=\"`account_organization`\" pulumi-lang-yaml=\"`accountOrganization`\" pulumi-lang-java=\"`accountOrganization`\"\u003e`account_organization`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`accountProject`\" pulumi-lang-dotnet=\"`AccountProject`\" pulumi-lang-go=\"`accountProject`\" pulumi-lang-python=\"`account_project`\" pulumi-lang-yaml=\"`accountProject`\" pulumi-lang-java=\"`accountProject`\"\u003e`account_project`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`instanceServer`\" pulumi-lang-dotnet=\"`InstanceServer`\" pulumi-lang-go=\"`instanceServer`\" pulumi-lang-python=\"`instance_server`\" pulumi-lang-yaml=\"`instanceServer`\" pulumi-lang-java=\"`instanceServer`\"\u003e`instance_server`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`instancePlacementGroup`\" pulumi-lang-dotnet=\"`InstancePlacementGroup`\" pulumi-lang-go=\"`instancePlacementGroup`\" pulumi-lang-python=\"`instance_placement_group`\" pulumi-lang-yaml=\"`instancePlacementGroup`\" pulumi-lang-java=\"`instancePlacementGroup`\"\u003e`instance_placement_group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`instanceSecurityGroup`\" pulumi-lang-dotnet=\"`InstanceSecurityGroup`\" pulumi-lang-go=\"`instanceSecurityGroup`\" pulumi-lang-python=\"`instance_security_group`\" pulumi-lang-yaml=\"`instanceSecurityGroup`\" pulumi-lang-java=\"`instanceSecurityGroup`\"\u003e`instance_security_group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`instanceVolume`\" pulumi-lang-dotnet=\"`InstanceVolume`\" pulumi-lang-go=\"`instanceVolume`\" pulumi-lang-python=\"`instance_volume`\" pulumi-lang-yaml=\"`instanceVolume`\" pulumi-lang-java=\"`instanceVolume`\"\u003e`instance_volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`instanceSnapshot`\" pulumi-lang-dotnet=\"`InstanceSnapshot`\" pulumi-lang-go=\"`instanceSnapshot`\" pulumi-lang-python=\"`instance_snapshot`\" pulumi-lang-yaml=\"`instanceSnapshot`\" pulumi-lang-java=\"`instanceSnapshot`\"\u003e`instance_snapshot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`instanceImage`\" pulumi-lang-dotnet=\"`InstanceImage`\" pulumi-lang-go=\"`instanceImage`\" pulumi-lang-python=\"`instance_image`\" pulumi-lang-yaml=\"`instanceImage`\" pulumi-lang-java=\"`instanceImage`\"\u003e`instance_image`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`appleSiliconServer`\" pulumi-lang-dotnet=\"`AppleSiliconServer`\" pulumi-lang-go=\"`appleSiliconServer`\" pulumi-lang-python=\"`apple_silicon_server`\" pulumi-lang-yaml=\"`appleSiliconServer`\" pulumi-lang-java=\"`appleSiliconServer`\"\u003e`apple_silicon_server`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`baremetalServer`\" pulumi-lang-dotnet=\"`BaremetalServer`\" pulumi-lang-go=\"`baremetalServer`\" pulumi-lang-python=\"`baremetal_server`\" pulumi-lang-yaml=\"`baremetalServer`\" pulumi-lang-java=\"`baremetalServer`\"\u003e`baremetal_server`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`baremetalSetting`\" pulumi-lang-dotnet=\"`BaremetalSetting`\" pulumi-lang-go=\"`baremetalSetting`\" pulumi-lang-python=\"`baremetal_setting`\" pulumi-lang-yaml=\"`baremetalSetting`\" pulumi-lang-java=\"`baremetalSetting`\"\u003e`baremetal_setting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`ipamIp`\" pulumi-lang-dotnet=\"`IpamIp`\" pulumi-lang-go=\"`ipamIp`\" pulumi-lang-python=\"`ipam_ip`\" pulumi-lang-yaml=\"`ipamIp`\" pulumi-lang-java=\"`ipamIp`\"\u003e`ipam_ip`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sbsVolume`\" pulumi-lang-dotnet=\"`SbsVolume`\" pulumi-lang-go=\"`sbsVolume`\" pulumi-lang-python=\"`sbs_volume`\" pulumi-lang-yaml=\"`sbsVolume`\" pulumi-lang-java=\"`sbsVolume`\"\u003e`sbs_volume`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sbsSnapshot`\" pulumi-lang-dotnet=\"`SbsSnapshot`\" pulumi-lang-go=\"`sbsSnapshot`\" pulumi-lang-python=\"`sbs_snapshot`\" pulumi-lang-yaml=\"`sbsSnapshot`\" pulumi-lang-java=\"`sbsSnapshot`\"\u003e`sbs_snapshot`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`loadBalancerLb`\" pulumi-lang-dotnet=\"`LoadBalancerLb`\" pulumi-lang-go=\"`loadBalancerLb`\" pulumi-lang-python=\"`load_balancer_lb`\" pulumi-lang-yaml=\"`loadBalancerLb`\" pulumi-lang-java=\"`loadBalancerLb`\"\u003e`load_balancer_lb`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`loadBalancerIp`\" pulumi-lang-dotnet=\"`LoadBalancerIp`\" pulumi-lang-go=\"`loadBalancerIp`\" pulumi-lang-python=\"`load_balancer_ip`\" pulumi-lang-yaml=\"`loadBalancerIp`\" pulumi-lang-java=\"`loadBalancerIp`\"\u003e`load_balancer_ip`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`loadBalancerFrontend`\" pulumi-lang-dotnet=\"`LoadBalancerFrontend`\" pulumi-lang-go=\"`loadBalancerFrontend`\" pulumi-lang-python=\"`load_balancer_frontend`\" pulumi-lang-yaml=\"`loadBalancerFrontend`\" pulumi-lang-java=\"`loadBalancerFrontend`\"\u003e`load_balancer_frontend`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`loadBalancerBackend`\" pulumi-lang-dotnet=\"`LoadBalancerBackend`\" pulumi-lang-go=\"`loadBalancerBackend`\" pulumi-lang-python=\"`load_balancer_backend`\" pulumi-lang-yaml=\"`loadBalancerBackend`\" pulumi-lang-java=\"`loadBalancerBackend`\"\u003e`load_balancer_backend`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`loadBalancerRoute`\" pulumi-lang-dotnet=\"`LoadBalancerRoute`\" pulumi-lang-go=\"`loadBalancerRoute`\" pulumi-lang-python=\"`load_balancer_route`\" pulumi-lang-yaml=\"`loadBalancerRoute`\" pulumi-lang-java=\"`loadBalancerRoute`\"\u003e`load_balancer_route`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`loadBalancerAcl`\" pulumi-lang-dotnet=\"`LoadBalancerAcl`\" pulumi-lang-go=\"`loadBalancerAcl`\" pulumi-lang-python=\"`load_balancer_acl`\" pulumi-lang-yaml=\"`loadBalancerAcl`\" pulumi-lang-java=\"`loadBalancerAcl`\"\u003e`load_balancer_acl`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`loadBalancerCertificate`\" pulumi-lang-dotnet=\"`LoadBalancerCertificate`\" pulumi-lang-go=\"`loadBalancerCertificate`\" pulumi-lang-python=\"`load_balancer_certificate`\" pulumi-lang-yaml=\"`loadBalancerCertificate`\" pulumi-lang-java=\"`loadBalancerCertificate`\"\u003e`load_balancer_certificate`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`sfsFilesystem`\" pulumi-lang-dotnet=\"`SfsFilesystem`\" pulumi-lang-go=\"`sfsFilesystem`\" pulumi-lang-python=\"`sfs_filesystem`\" pulumi-lang-yaml=\"`sfsFilesystem`\" pulumi-lang-java=\"`sfsFilesystem`\"\u003e`sfs_filesystem`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`vpcPrivateNetwork`\" pulumi-lang-dotnet=\"`VpcPrivateNetwork`\" pulumi-lang-go=\"`vpcPrivateNetwork`\" pulumi-lang-python=\"`vpc_private_network`\" pulumi-lang-yaml=\"`vpcPrivateNetwork`\" pulumi-lang-java=\"`vpcPrivateNetwork`\"\u003e`vpc_private_network`\u003c/span\u003e.\n"},"serviceName":{"type":"string","description":"Name of the service of the API call performed.\n"},"sourceIp":{"type":"string","description":"IP address at the origin of the event.\n"},"status":{"type":"integer","description":"HTTP status code of the request.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getEvent.\n","properties":{"events":{"description":"List of Audit Trail events matching the requested criteria.\n","items":{"$ref":"#/types/scaleway:audittrail/getEventEvent:getEventEvent"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"methodName":{"description":"API method called to trigger the event.\n","type":"string"},"orderBy":{"type":"string"},"organizationId":{"description":"ID of the Organization containing the Audit Trail events. (UUID format)\n","type":"string"},"principalId":{"description":"ID of the user or IAM application at the origin of the event.\n","type":"string"},"productName":{"description":"Scaleway product associated with the listed events in a hyphenated format. Possible values are: `secret-manager`, `key-manager`, \u003cspan pulumi-lang-nodejs=\"`iam`\" pulumi-lang-dotnet=\"`Iam`\" pulumi-lang-go=\"`iam`\" pulumi-lang-python=\"`iam`\" pulumi-lang-yaml=\"`iam`\" pulumi-lang-java=\"`iam`\"\u003e`iam`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`kubernetes`\" pulumi-lang-dotnet=\"`Kubernetes`\" pulumi-lang-go=\"`kubernetes`\" pulumi-lang-python=\"`kubernetes`\" pulumi-lang-yaml=\"`kubernetes`\" pulumi-lang-java=\"`kubernetes`\"\u003e`kubernetes`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e, `apple-silicon`, \u003cspan pulumi-lang-nodejs=\"`instance`\" pulumi-lang-dotnet=\"`Instance`\" pulumi-lang-go=\"`instance`\" pulumi-lang-python=\"`instance`\" pulumi-lang-yaml=\"`instance`\" pulumi-lang-java=\"`instance`\"\u003e`instance`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`baremetal`\" pulumi-lang-dotnet=\"`Baremetal`\" pulumi-lang-go=\"`baremetal`\" pulumi-lang-python=\"`baremetal`\" pulumi-lang-yaml=\"`baremetal`\" pulumi-lang-java=\"`baremetal`\"\u003e`baremetal`\u003c/span\u003e, `load-balancer`, or `edge-services`.\n","type":"string"},"projectId":{"description":"Project of the resource attached to the event. (UUID format)\n","type":"string"},"recordedAfter":{"type":"string"},"recordedBefore":{"type":"string"},"region":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"serviceName":{"description":"API name called to trigger the event. Possible values are: `scaleway.secret_manager.v1beta1.Api`, `scaleway.key_manager.v1alpha1.Api`, `scaleway.iam.v1alpha1.Api`, `scaleway.iam.v1alpha1.UnauthenticatedApi`, `scaleway.k8s.v1.Api`, `scaleway.account.v3.UserApi`, `scaleway.account.v3.OrganizationApi`, `scaleway.account.v2.GDPRApi`, `scaleway.apple_silicon.v1alpha1.Api`, `scaleway.instance.v1.Api`, `scaleway.baremetal.v1.Api`, or `scaleway.lb.v1.ZonedApi`.\n","type":"string"},"sourceIp":{"description":"IP address at the origin of the event. (IP address)\n","type":"string"},"status":{"type":"integer"}},"required":["events","organizationId","id"],"type":"object"}},"scaleway:autoscaling/getInstanceGroup:getInstanceGroup":{"description":"Gets information about an Autoscaling Instance group.\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\n// Get info by name\nconst byName = scaleway.autoscaling.getInstanceGroup({\n    name: \"my-instance-group\",\n});\n// Get info by ID\nconst byId = scaleway.autoscaling.getInstanceGroup({\n    instanceGroupId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nby_name = scaleway.autoscaling.get_instance_group(name=\"my-instance-group\")\n# Get info by ID\nby_id = scaleway.autoscaling.get_instance_group(instance_group_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    // Get info by name\n    var byName = Scaleway.Autoscaling.GetInstanceGroup.Invoke(new()\n    {\n        Name = \"my-instance-group\",\n    });\n\n    // Get info by ID\n    var byId = Scaleway.Autoscaling.GetInstanceGroup.Invoke(new()\n    {\n        InstanceGroupId = \"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/autoscaling\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := autoscaling.LookupInstanceGroup(ctx, \u0026autoscaling.LookupInstanceGroupArgs{\n\t\t\tName: pulumi.StringRef(\"my-instance-group\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by ID\n\t\t_, err = autoscaling.LookupInstanceGroup(ctx, \u0026autoscaling.LookupInstanceGroupArgs{\n\t\t\tInstanceGroupId: 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.autoscaling.AutoscalingFunctions;\nimport com.pulumi.scaleway.autoscaling.inputs.GetInstanceGroupArgs;\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        // Get info by name\n        final var byName = AutoscalingFunctions.getInstanceGroup(GetInstanceGroupArgs.builder()\n            .name(\"my-instance-group\")\n            .build());\n\n        // Get info by ID\n        final var byId = AutoscalingFunctions.getInstanceGroup(GetInstanceGroupArgs.builder()\n            .instanceGroupId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  byName:\n    fn::invoke:\n      function: scaleway:autoscaling:getInstanceGroup\n      arguments:\n        name: my-instance-group\n  # Get info by ID\n  byId:\n    fn::invoke:\n      function: scaleway:autoscaling:getInstanceGroup\n      arguments:\n        instanceGroupId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceGroup.\n","properties":{"instanceGroupId":{"type":"string","description":"The ID of the Instance group. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`instanceGroupId`\" pulumi-lang-dotnet=\"`InstanceGroupId`\" pulumi-lang-go=\"`instanceGroupId`\" pulumi-lang-python=\"`instance_group_id`\" pulumi-lang-yaml=\"`instanceGroupId`\" pulumi-lang-java=\"`instanceGroupId`\"\u003e`instance_group_id`\u003c/span\u003e should be specified.\n"},"name":{"type":"string","description":"The name of the Instance group. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`instanceGroupId`\" pulumi-lang-dotnet=\"`InstanceGroupId`\" pulumi-lang-go=\"`instanceGroupId`\" pulumi-lang-python=\"`instance_group_id`\" pulumi-lang-yaml=\"`instanceGroupId`\" pulumi-lang-java=\"`instanceGroupId`\"\u003e`instance_group_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Instance group exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceGroup.\n","properties":{"capacities":{"items":{"$ref":"#/types/scaleway:autoscaling/getInstanceGroupCapacity:getInstanceGroupCapacity"},"type":"array"},"createdAt":{"type":"string"},"deleteServersOnDestroy":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceGroupId":{"type":"string"},"loadBalancers":{"items":{"$ref":"#/types/scaleway:autoscaling/getInstanceGroupLoadBalancer:getInstanceGroupLoadBalancer"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"templateId":{"type":"string"},"updatedAt":{"type":"string"},"zone":{"type":"string"}},"required":["capacities","createdAt","deleteServersOnDestroy","loadBalancers","projectId","tags","templateId","updatedAt","id"],"type":"object"}},"scaleway:autoscaling/getInstancePolicy:getInstancePolicy":{"description":"Gets information about an Autoscaling Instance policy.\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\n// Get info by name (instance_group_id is required when using name)\nconst byName = scaleway.autoscaling.getInstancePolicy({\n    name: \"my-instance-policy\",\n    instanceGroupId: main.id,\n});\n// Get info by ID\nconst byId = scaleway.autoscaling.getInstancePolicy({\n    instancePolicyId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name (instance_group_id is required when using name)\nby_name = scaleway.autoscaling.get_instance_policy(name=\"my-instance-policy\",\n    instance_group_id=main[\"id\"])\n# Get info by ID\nby_id = scaleway.autoscaling.get_instance_policy(instance_policy_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    // Get info by name (instance_group_id is required when using name)\n    var byName = Scaleway.Autoscaling.GetInstancePolicy.Invoke(new()\n    {\n        Name = \"my-instance-policy\",\n        InstanceGroupId = main.Id,\n    });\n\n    // Get info by ID\n    var byId = Scaleway.Autoscaling.GetInstancePolicy.Invoke(new()\n    {\n        InstancePolicyId = \"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/autoscaling\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name (instance_group_id is required when using name)\n\t\t_, err := autoscaling.LookupInstancePolicy(ctx, \u0026autoscaling.LookupInstancePolicyArgs{\n\t\t\tName:            pulumi.StringRef(\"my-instance-policy\"),\n\t\t\tInstanceGroupId: pulumi.StringRef(main.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by ID\n\t\t_, err = autoscaling.LookupInstancePolicy(ctx, \u0026autoscaling.LookupInstancePolicyArgs{\n\t\t\tInstancePolicyId: 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.autoscaling.AutoscalingFunctions;\nimport com.pulumi.scaleway.autoscaling.inputs.GetInstancePolicyArgs;\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        // Get info by name (instance_group_id is required when using name)\n        final var byName = AutoscalingFunctions.getInstancePolicy(GetInstancePolicyArgs.builder()\n            .name(\"my-instance-policy\")\n            .instanceGroupId(main.id())\n            .build());\n\n        // Get info by ID\n        final var byId = AutoscalingFunctions.getInstancePolicy(GetInstancePolicyArgs.builder()\n            .instancePolicyId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name (instance_group_id is required when using name)\n  byName:\n    fn::invoke:\n      function: scaleway:autoscaling:getInstancePolicy\n      arguments:\n        name: my-instance-policy\n        instanceGroupId: ${main.id}\n  # Get info by ID\n  byId:\n    fn::invoke:\n      function: scaleway:autoscaling:getInstancePolicy\n      arguments:\n        instancePolicyId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstancePolicy.\n","properties":{"instanceGroupId":{"type":"string","description":"The ID of the Instance group the policy belongs to. Required when looking up by \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"instancePolicyId":{"type":"string","description":"The ID of the Instance policy. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`instancePolicyId`\" pulumi-lang-dotnet=\"`InstancePolicyId`\" pulumi-lang-go=\"`instancePolicyId`\" pulumi-lang-python=\"`instance_policy_id`\" pulumi-lang-yaml=\"`instancePolicyId`\" pulumi-lang-java=\"`instancePolicyId`\"\u003e`instance_policy_id`\u003c/span\u003e should be specified.\n"},"name":{"type":"string","description":"The name of the Instance policy. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`instancePolicyId`\" pulumi-lang-dotnet=\"`InstancePolicyId`\" pulumi-lang-go=\"`instancePolicyId`\" pulumi-lang-python=\"`instance_policy_id`\" pulumi-lang-yaml=\"`instancePolicyId`\" pulumi-lang-java=\"`instancePolicyId`\"\u003e`instance_policy_id`\u003c/span\u003e should be specified. When using \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`instanceGroupId`\" pulumi-lang-dotnet=\"`InstanceGroupId`\" pulumi-lang-go=\"`instanceGroupId`\" pulumi-lang-python=\"`instance_group_id`\" pulumi-lang-yaml=\"`instanceGroupId`\" pulumi-lang-java=\"`instanceGroupId`\"\u003e`instance_group_id`\u003c/span\u003e is required.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Instance policy exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstancePolicy.\n","properties":{"action":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceGroupId":{"type":"string"},"instancePolicyId":{"type":"string"},"metrics":{"items":{"$ref":"#/types/scaleway:autoscaling/getInstancePolicyMetric:getInstancePolicyMetric"},"type":"array"},"name":{"type":"string"},"priority":{"type":"integer"},"projectId":{"type":"string"},"type":{"type":"string"},"value":{"type":"integer"},"zone":{"type":"string"}},"required":["action","metrics","priority","projectId","type","value","id"],"type":"object"}},"scaleway:billing/getConsumptions:getConsumptions":{"description":"Gets information about your Consumptions.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  # Find your detailed monthly consumption list\n  my-consumption:\n    fn::invoke:\n      function: scaleway:billing:getConsumptions\n      arguments:\n        organizationId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getConsumptions.\n","properties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the consumption list is associated with.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getConsumptions.\n","properties":{"consumptions":{"description":"List of found consumptions\n","items":{"$ref":"#/types/scaleway:billing/getConsumptionsConsumption:getConsumptionsConsumption"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"projectId":{"description":"The project ID of the consumption.\n","type":"string"},"updatedAt":{"description":"The last consumption update date.\n","type":"string"}},"required":["consumptions","organizationId","projectId","updatedAt","id"],"type":"object"}},"scaleway:billing/getInvoices:getInvoices":{"description":"Gets information about your Scaleway invoices.\n\n","inputs":{"description":"A collection of arguments for invoking getInvoices.\n","properties":{"invoiceType":{"type":"string","description":"Invoices with the given type are listed. Valid values are \u003cspan pulumi-lang-nodejs=\"`periodic`\" pulumi-lang-dotnet=\"`Periodic`\" pulumi-lang-go=\"`periodic`\" pulumi-lang-python=\"`periodic`\" pulumi-lang-yaml=\"`periodic`\" pulumi-lang-java=\"`periodic`\"\u003e`periodic`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`purchase`\" pulumi-lang-dotnet=\"`Purchase`\" pulumi-lang-go=\"`purchase`\" pulumi-lang-python=\"`purchase`\" pulumi-lang-yaml=\"`purchase`\" pulumi-lang-java=\"`purchase`\"\u003e`purchase`\u003c/span\u003e.\n"},"startedAfter":{"type":"string","description":"Invoices with a start date that are greater or equal to \u003cspan pulumi-lang-nodejs=\"`startedAfter`\" pulumi-lang-dotnet=\"`StartedAfter`\" pulumi-lang-go=\"`startedAfter`\" pulumi-lang-python=\"`started_after`\" pulumi-lang-yaml=\"`startedAfter`\" pulumi-lang-java=\"`startedAfter`\"\u003e`started_after`\u003c/span\u003e are listed (RFC 3339 format).\n"},"startedBefore":{"type":"string","description":"Invoices with a start date that precedes \u003cspan pulumi-lang-nodejs=\"`startedBefore`\" pulumi-lang-dotnet=\"`StartedBefore`\" pulumi-lang-go=\"`startedBefore`\" pulumi-lang-python=\"`started_before`\" pulumi-lang-yaml=\"`startedBefore`\" pulumi-lang-java=\"`startedBefore`\"\u003e`started_before`\u003c/span\u003e are listed (RFC 3339 format).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInvoices.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"invoiceType":{"description":"The type of invoice.\n","type":"string"},"invoices":{"description":"List of found invoices\n","items":{"$ref":"#/types/scaleway:billing/getInvoicesInvoice:getInvoicesInvoice"},"type":"array"},"organizationId":{"type":"string"},"startedAfter":{"type":"string"},"startedBefore":{"type":"string"}},"required":["invoices","organizationId","id"],"type":"object"}},"scaleway:block/getSnapshot:getSnapshot":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.block.Snapshot`\" pulumi-lang-dotnet=\"`scaleway.block.Snapshot`\" pulumi-lang-go=\"`block.Snapshot`\" pulumi-lang-python=\"`block.Snapshot`\" pulumi-lang-yaml=\"`scaleway.block.Snapshot`\" pulumi-lang-java=\"`scaleway.block.Snapshot`\"\u003e`scaleway.block.Snapshot`\u003c/span\u003e data source is used to retrieve information about a Block Storage volume snapshot.\n\nRefer to the Block Storage [product documentation](https://www.scaleway.com/en/docs/block-storage/) and [API documentation](https://www.scaleway.com/en/developers/api/block/) for more information.\n\n","inputs":{"description":"A collection of arguments for invoking getSnapshot.\n","properties":{"name":{"type":"string","description":"The name of the snapshot. Only one of name or\u003cspan pulumi-lang-nodejs=\" snapshotId \" pulumi-lang-dotnet=\" SnapshotId \" pulumi-lang-go=\" snapshotId \" pulumi-lang-python=\" snapshot_id \" pulumi-lang-yaml=\" snapshotId \" pulumi-lang-java=\" snapshotId \"\u003e snapshot_id \u003c/span\u003eshould be specified.\n"},"projectId":{"type":"string","description":"The unique identifier of the Project to which the snapshot is associated.\n"},"snapshotId":{"type":"string","description":"The unique identifier of the snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e should be specified.\n"},"volumeId":{"type":"string","description":"The unique identifier of the volume from which the snapshot was created.\n"},"zone":{"type":"string","description":") The zone in which the snapshot exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSnapshot.\n","properties":{"exports":{"items":{"$ref":"#/types/scaleway:block/getSnapshotExport:getSnapshotExport"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imports":{"items":{"$ref":"#/types/scaleway:block/getSnapshotImport:getSnapshotImport"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"string"},"snapshotId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"volumeId":{"type":"string"},"zone":{"type":"string"}},"required":["exports","imports","tags","id"],"type":"object"}},"scaleway:block/getVolume:getVolume":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.block.Volume`\" pulumi-lang-dotnet=\"`scaleway.block.Volume`\" pulumi-lang-go=\"`block.Volume`\" pulumi-lang-python=\"`block.Volume`\" pulumi-lang-yaml=\"`scaleway.block.Volume`\" pulumi-lang-java=\"`scaleway.block.Volume`\"\u003e`scaleway.block.Volume`\u003c/span\u003e data source is used to retrieve information about a Block Storage volume.\nRefer to the Block Storage [product documentation](https://www.scaleway.com/en/docs/block-storage/) and [API documentation](https://www.scaleway.com/en/developers/api/block/) for more information.\n\n","inputs":{"description":"A collection of arguments for invoking getVolume.\n","properties":{"name":{"type":"string","description":"The name of the volume. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`volumeId`\" pulumi-lang-dotnet=\"`VolumeId`\" pulumi-lang-go=\"`volumeId`\" pulumi-lang-python=\"`volume_id`\" pulumi-lang-yaml=\"`volumeId`\" pulumi-lang-java=\"`volumeId`\"\u003e`volume_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The unique identifier of the Project to which the volume is associated.\n"},"volumeId":{"type":"string","description":"The unique identifier of the volume. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`volumeId`\" pulumi-lang-dotnet=\"`VolumeId`\" pulumi-lang-go=\"`volumeId`\" pulumi-lang-python=\"`volume_id`\" pulumi-lang-yaml=\"`volumeId`\" pulumi-lang-java=\"`volumeId`\"\u003e`volume_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"). The zone in which the volume exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVolume.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceVolumeId":{"type":"string"},"iops":{"type":"integer"},"name":{"type":"string"},"projectId":{"type":"string"},"sizeInGb":{"type":"integer"},"snapshotId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"volumeId":{"type":"string"},"zone":{"type":"string"}},"required":["instanceVolumeId","iops","sizeInGb","snapshotId","tags","id"],"type":"object"}},"scaleway:containers/getContainer:getContainer":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Container`\" pulumi-lang-dotnet=\"`scaleway.containers.Container`\" pulumi-lang-go=\"`containers.Container`\" pulumi-lang-python=\"`containers.Container`\" pulumi-lang-yaml=\"`scaleway.containers.Container`\" pulumi-lang-java=\"`scaleway.containers.Container`\"\u003e`scaleway.containers.Container`\u003c/span\u003e data source is used to retrieve information about a Serverless Container.\n\nRefer to the Serverless Containers [product documentation](https://www.scaleway.com/en/docs/serverless/containers/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/) for more information.\n\nFor more information on the limitations of Serverless Containers, refer to the [dedicated documentation](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/).\n\n## Retrieve a Serverless Container\n\nThe following commands allow you to:\n\n- retrieve a container by its name\n- retrieve a container by its ID\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.containers.Namespace(\"main\", {});\nconst mainContainer = new scaleway.containers.Container(\"main\", {\n    name: \"test-container-data\",\n    namespaceId: main.id,\n});\n// Get info by container name\nconst byName = scaleway.containers.getContainerOutput({\n    namespaceId: main.id,\n    name: mainContainer.name,\n});\n// Get info by container ID\nconst byId = scaleway.containers.getContainerOutput({\n    namespaceId: main.id,\n    containerId: mainContainer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\")\nmain_container = scaleway.containers.Container(\"main\",\n    name=\"test-container-data\",\n    namespace_id=main.id)\n# Get info by container name\nby_name = scaleway.containers.get_container_output(namespace_id=main.id,\n    name=main_container.name)\n# Get info by container ID\nby_id = scaleway.containers.get_container_output(namespace_id=main.id,\n    container_id=main_container.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.Containers.Namespace(\"main\");\n\n    var mainContainer = new Scaleway.Containers.Container(\"main\", new()\n    {\n        Name = \"test-container-data\",\n        NamespaceId = main.Id,\n    });\n\n    // Get info by container name\n    var byName = Scaleway.Containers.GetContainer.Invoke(new()\n    {\n        NamespaceId = main.Id,\n        Name = mainContainer.Name,\n    });\n\n    // Get info by container ID\n    var byId = Scaleway.Containers.GetContainer.Invoke(new()\n    {\n        NamespaceId = main.Id,\n        ContainerId = mainContainer.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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := containers.NewNamespace(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainContainer, err := containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"test-container-data\"),\n\t\t\tNamespaceId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by container name\n\t\t_ = containers.LookupContainerOutput(ctx, containers.GetContainerOutputArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tName:        mainContainer.Name,\n\t\t}, nil)\n\t\t// Get info by container ID\n\t\t_ = containers.LookupContainerOutput(ctx, containers.GetContainerOutputArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tContainerId: mainContainer.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.containers.Namespace;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.containers.ContainersFunctions;\nimport com.pulumi.scaleway.containers.inputs.GetContainerArgs;\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 Namespace(\"main\");\n\n        var mainContainer = new Container(\"mainContainer\", ContainerArgs.builder()\n            .name(\"test-container-data\")\n            .namespaceId(main.id())\n            .build());\n\n        // Get info by container name\n        final var byName = ContainersFunctions.getContainer(GetContainerArgs.builder()\n            .namespaceId(main.id())\n            .name(mainContainer.name())\n            .build());\n\n        // Get info by container ID\n        final var byId = ContainersFunctions.getContainer(GetContainerArgs.builder()\n            .namespaceId(main.id())\n            .containerId(mainContainer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n  mainContainer:\n    type: scaleway:containers:Container\n    name: main\n    properties:\n      name: test-container-data\n      namespaceId: ${main.id}\nvariables:\n  # Get info by container name\n  byName:\n    fn::invoke:\n      function: scaleway:containers:getContainer\n      arguments:\n        namespaceId: ${main.id}\n        name: ${mainContainer.name}\n  # Get info by container ID\n  byId:\n    fn::invoke:\n      function: scaleway:containers:getContainer\n      arguments:\n        namespaceId: ${main.id}\n        containerId: ${mainContainer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Arguments reference\n\nThis section lists the arguments that you can provide to the \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Container`\" pulumi-lang-dotnet=\"`scaleway.containers.Container`\" pulumi-lang-go=\"`containers.Container`\" pulumi-lang-python=\"`containers.Container`\" pulumi-lang-yaml=\"`scaleway.containers.Container`\" pulumi-lang-java=\"`scaleway.containers.Container`\"\u003e`scaleway.containers.Container`\u003c/span\u003e data source to filter and retrieve the desired namespace. Each argument has a specific purpose:\n\n- \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e - (Required) The unique name of the container.\n\n- \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e - (Required) The container namespace ID of the container.\n\n- \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e - (Optional) The unique identifier of the project with which the container is associated.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the container.\n","inputs":{"description":"A collection of arguments for invoking getContainer.\n","properties":{"containerId":{"type":"string"},"name":{"type":"string"},"namespaceId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container was created.\n"}},"type":"object","required":["namespaceId"]},"outputs":{"description":"A collection of values returned by getContainer.\n","properties":{"args":{"items":{"type":"string"},"type":"array"},"commands":{"items":{"type":"string"},"type":"array"},"containerId":{"type":"string"},"cpuLimit":{"description":"The amount of vCPU computing resources to allocate to each container.\n","type":"integer"},"cronStatus":{"description":"The cron status of the container.\n","type":"string"},"deploy":{"description":"Boolean indicating whether the container is on a production environment.\n","type":"boolean"},"description":{"description":"The description of the container.\n","type":"string"},"domainName":{"description":"The container domain name.\n","type":"string"},"environmentVariables":{"additionalProperties":{"type":"string"},"description":"The [environment](https://www.scaleway.com/en/docs/serverless-containers/concepts/#environment-variables) variables of the container.\n","type":"object"},"errorMessage":{"description":"The error message of the container.\n","type":"string"},"healthChecks":{"description":"Health check configuration block of the container.\n","items":{"$ref":"#/types/scaleway:containers/getContainerHealthCheck:getContainerHealthCheck"},"type":"array"},"httpOption":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"localStorageLimit":{"type":"integer"},"maxConcurrency":{"description":"The maximum number of simultaneous requests your container can handle at the same time.\n","type":"integer"},"maxScale":{"description":"The maximum number of instances the container can scale to.\n","type":"integer"},"memoryLimit":{"description":"The memory resources in MB to allocate to each container.\n","type":"integer"},"minScale":{"description":"The minimum number of container instances running continuously.\n","type":"integer"},"name":{"type":"string"},"namespaceId":{"type":"string"},"port":{"description":"The port to expose the container.\n","type":"integer"},"privacy":{"description":"The privacy type define the way to authenticate to your container. Refer to the [dedicated documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) for more information.\n","type":"string"},"privateNetworkId":{"type":"string"},"projectId":{"type":"string"},"protocol":{"description":"The communication [protocol](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`h2c`\" pulumi-lang-dotnet=\"`H2c`\" pulumi-lang-go=\"`h2c`\" pulumi-lang-python=\"`h2c`\" pulumi-lang-yaml=\"`h2c`\" pulumi-lang-java=\"`h2c`\"\u003e`h2c`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e.\n","type":"string"},"region":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container was created.\n","type":"string"},"registryImage":{"description":"The registry image address (e.g. `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`).\n","type":"string"},"registrySha256":{"description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n","type":"string"},"sandbox":{"description":"(Optional) Execution environment of the container.\n","type":"string"},"scalingOptions":{"description":"Configuration block used to decide when to scale up or down. Possible values:\n","items":{"$ref":"#/types/scaleway:containers/getContainerScalingOption:getContainerScalingOption"},"type":"array"},"secretEnvironmentVariables":{"additionalProperties":{"type":"string"},"type":"object"},"status":{"description":"The container status.\n","type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"timeout":{"description":"The maximum amount of time your container can spend processing a request before being stopped.\n","type":"integer"}},"required":["args","commands","cpuLimit","cronStatus","deploy","description","domainName","environmentVariables","errorMessage","healthChecks","httpOption","localStorageLimit","maxConcurrency","maxScale","memoryLimit","minScale","namespaceId","port","privacy","privateNetworkId","protocol","registryImage","registrySha256","sandbox","scalingOptions","secretEnvironmentVariables","status","tags","timeout","id"],"type":"object"}},"scaleway:containers/getNamespace:getNamespace":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Namespace`\" pulumi-lang-dotnet=\"`scaleway.containers.Namespace`\" pulumi-lang-go=\"`containers.Namespace`\" pulumi-lang-python=\"`containers.Namespace`\" pulumi-lang-yaml=\"`scaleway.containers.Namespace`\" pulumi-lang-java=\"`scaleway.containers.Namespace`\"\u003e`scaleway.containers.Namespace`\u003c/span\u003e data source is used to retrieve information about a Serverless Containers namespace.\n\nRefer to the Serverless Containers [product documentation](https://www.scaleway.com/en/docs/serverless/containers/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/) for more information.\n\n## Retrieve a Serverless Containers namespace\n\nThe following commands allow you to:\n\n- retrieve a namespace by its name\n- retrieve a namespace by its ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by namespace name\nconst byName = scaleway.containers.getNamespace({\n    name: \"my-namespace-name\",\n});\n// Get info by namespace ID\nconst byId = scaleway.containers.getNamespace({\n    namespaceId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by namespace name\nby_name = scaleway.containers.get_namespace(name=\"my-namespace-name\")\n# Get info by namespace ID\nby_id = scaleway.containers.get_namespace(namespace_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    // Get info by namespace name\n    var byName = Scaleway.Containers.GetNamespace.Invoke(new()\n    {\n        Name = \"my-namespace-name\",\n    });\n\n    // Get info by namespace ID\n    var byId = Scaleway.Containers.GetNamespace.Invoke(new()\n    {\n        NamespaceId = \"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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by namespace name\n\t\t_, err := containers.LookupNamespace(ctx, \u0026containers.LookupNamespaceArgs{\n\t\t\tName: pulumi.StringRef(\"my-namespace-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by namespace ID\n\t\t_, err = containers.LookupNamespace(ctx, \u0026containers.LookupNamespaceArgs{\n\t\t\tNamespaceId: 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.containers.ContainersFunctions;\nimport com.pulumi.scaleway.containers.inputs.GetNamespaceArgs;\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        // Get info by namespace name\n        final var byName = ContainersFunctions.getNamespace(GetNamespaceArgs.builder()\n            .name(\"my-namespace-name\")\n            .build());\n\n        // Get info by namespace ID\n        final var byId = ContainersFunctions.getNamespace(GetNamespaceArgs.builder()\n            .namespaceId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by namespace name\n  byName:\n    fn::invoke:\n      function: scaleway:containers:getNamespace\n      arguments:\n        name: my-namespace-name\n  # Get info by namespace ID\n  byId:\n    fn::invoke:\n      function: scaleway:containers:getNamespace\n      arguments:\n        namespaceId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNamespace.\n","properties":{"name":{"type":"string","description":"The name of the namespace. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e should be specified.\n"},"namespaceId":{"type":"string","description":"The unique identifier of the namespace. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project with which the namespace is associated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the namespace exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNamespace.\n","properties":{"activateVpcIntegration":{"type":"boolean"},"description":{"description":"The description of the namespace.\n","type":"string"},"destroyRegistry":{"type":"boolean"},"environmentVariables":{"additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n","type":"object"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"namespaceId":{"type":"string"},"organizationId":{"description":"The unique identifier of the organization with which the namespace is associated.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"registryEndpoint":{"description":"The registry endpoint of the namespace.\n","type":"string"},"registryNamespaceId":{"description":"The unique identifier of the registry namespace of the Serverless Containers namespace.\n","type":"string"},"secretEnvironmentVariables":{"additionalProperties":{"type":"string"},"type":"object"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["activateVpcIntegration","description","destroyRegistry","environmentVariables","organizationId","registryEndpoint","registryNamespaceId","secretEnvironmentVariables","tags","id"],"type":"object"}},"scaleway:databases/getAcl:getAcl":{"description":"Gets information about the Database Instance network Access Control List.\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\n// Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\nconst myAcl = scaleway.databases.getAcl({\n    instanceId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\nmy_acl = scaleway.databases.get_acl(instance_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    // Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\n    var myAcl = Scaleway.Databases.GetAcl.Invoke(new()\n    {\n        InstanceId = \"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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\n\t\t_, err := databases.LookupAcl(ctx, \u0026databases.LookupAclArgs{\n\t\t\tInstanceId: \"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.databases.DatabasesFunctions;\nimport com.pulumi.scaleway.databases.inputs.GetAclArgs;\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        // Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\n        final var myAcl = DatabasesFunctions.getAcl(GetAclArgs.builder()\n            .instanceId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\n  myAcl:\n    fn::invoke:\n      function: scaleway:databases:getAcl\n      arguments:\n        instanceId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAcl.\n","properties":{"instanceId":{"type":"string","description":"The RDB instance ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getAcl.\n","properties":{"aclRules":{"description":"A list of ACLs rules (structure is described below)\n","items":{"$ref":"#/types/scaleway:databases/getAclAclRule:getAclAclRule"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"region":{"type":"string"}},"required":["aclRules","instanceId","id"],"type":"object"}},"scaleway:databases/getDatabase:getDatabase":{"description":"Gets information about a database.\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\n// Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\nconst myDb = scaleway.databases.getDatabase({\n    instanceId: \"11111111-1111-1111-1111-111111111111\",\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\nmy_db = scaleway.databases.get_database(instance_id=\"11111111-1111-1111-1111-111111111111\",\n    name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\n    var myDb = Scaleway.Databases.GetDatabase.Invoke(new()\n    {\n        InstanceId = \"11111111-1111-1111-1111-111111111111\",\n        Name = \"foobar\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\n\t\t_, err := databases.LookupDatabase(ctx, \u0026databases.LookupDatabaseArgs{\n\t\t\tInstanceId: \"11111111-1111-1111-1111-111111111111\",\n\t\t\tName:       \"foobar\",\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.databases.DatabasesFunctions;\nimport com.pulumi.scaleway.databases.inputs.GetDatabaseArgs;\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        // Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\n        final var myDb = DatabasesFunctions.getDatabase(GetDatabaseArgs.builder()\n            .instanceId(\"11111111-1111-1111-1111-111111111111\")\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\n  myDb:\n    fn::invoke:\n      function: scaleway:databases:getDatabase\n      arguments:\n        instanceId: 11111111-1111-1111-1111-111111111111\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabase.\n","properties":{"instanceId":{"type":"string","description":"The RDB instance ID.\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"region":{"type":"string"}},"type":"object","required":["instanceId","name"]},"outputs":{"description":"A collection of values returned by getDatabase.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"managed":{"description":"Whether the database is managed or not.\n","type":"boolean"},"name":{"type":"string"},"owner":{"description":"The name of the owner of the database.\n","type":"string"},"region":{"type":"string"},"size":{"description":"Size of the database (in bytes).\n","type":"string"}},"required":["instanceId","managed","name","owner","size","id"],"type":"object"}},"scaleway:databases/getDatabaseBackup:getDatabaseBackup":{"description":"Gets information about an RDB backup.\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 findByName = scaleway.databases.getDatabaseBackup({\n    name: \"mybackup\",\n});\nconst findByNameAndInstance = scaleway.databases.getDatabaseBackup({\n    name: \"mybackup\",\n    instanceId: \"11111111-1111-1111-1111-111111111111\",\n});\nconst findById = scaleway.databases.getDatabaseBackup({\n    backupId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nfind_by_name = scaleway.databases.get_database_backup(name=\"mybackup\")\nfind_by_name_and_instance = scaleway.databases.get_database_backup(name=\"mybackup\",\n    instance_id=\"11111111-1111-1111-1111-111111111111\")\nfind_by_id = scaleway.databases.get_database_backup(backup_id=\"11111111-1111-1111-1111-111111111111\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var findByName = Scaleway.Databases.GetDatabaseBackup.Invoke(new()\n    {\n        Name = \"mybackup\",\n    });\n\n    var findByNameAndInstance = Scaleway.Databases.GetDatabaseBackup.Invoke(new()\n    {\n        Name = \"mybackup\",\n        InstanceId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    var findById = Scaleway.Databases.GetDatabaseBackup.Invoke(new()\n    {\n        BackupId = \"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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.LookupDatabaseBackup(ctx, \u0026databases.LookupDatabaseBackupArgs{\n\t\t\tName: pulumi.StringRef(\"mybackup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.LookupDatabaseBackup(ctx, \u0026databases.LookupDatabaseBackupArgs{\n\t\t\tName:       pulumi.StringRef(\"mybackup\"),\n\t\t\tInstanceId: 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\t_, err = databases.LookupDatabaseBackup(ctx, \u0026databases.LookupDatabaseBackupArgs{\n\t\t\tBackupId: 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.databases.DatabasesFunctions;\nimport com.pulumi.scaleway.databases.inputs.GetDatabaseBackupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var findByName = DatabasesFunctions.getDatabaseBackup(GetDatabaseBackupArgs.builder()\n            .name(\"mybackup\")\n            .build());\n\n        final var findByNameAndInstance = DatabasesFunctions.getDatabaseBackup(GetDatabaseBackupArgs.builder()\n            .name(\"mybackup\")\n            .instanceId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        final var findById = DatabasesFunctions.getDatabaseBackup(GetDatabaseBackupArgs.builder()\n            .backupId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  findByName:\n    fn::invoke:\n      function: scaleway:databases:getDatabaseBackup\n      arguments:\n        name: mybackup\n  findByNameAndInstance:\n    fn::invoke:\n      function: scaleway:databases:getDatabaseBackup\n      arguments:\n        name: mybackup\n        instanceId: 11111111-1111-1111-1111-111111111111\n  findById:\n    fn::invoke:\n      function: scaleway:databases:getDatabaseBackup\n      arguments:\n        backupId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabaseBackup.\n","properties":{"backupId":{"type":"string","description":"The backup ID.\n"},"instanceId":{"type":"string","description":"The Database Instance ID.\n"},"name":{"type":"string","description":"The name of the RDB instance.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`backupId`\" pulumi-lang-dotnet=\"`BackupId`\" pulumi-lang-go=\"`backupId`\" pulumi-lang-python=\"`backup_id`\" pulumi-lang-yaml=\"`backupId`\" pulumi-lang-java=\"`backupId`\"\u003e`backup_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project the Database Backup is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Backup is associated with.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDatabaseBackup.\n","properties":{"backupId":{"type":"string"},"createdAt":{"type":"string"},"databaseName":{"type":"string"},"downloadUrl":{"type":"string"},"downloadUrlExpiresAt":{"type":"string"},"expiresAt":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"instanceName":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"sameRegion":{"type":"boolean"},"size":{"type":"integer"},"status":{"type":"string"},"updatedAt":{"type":"string"}},"required":["createdAt","databaseName","downloadUrl","downloadUrlExpiresAt","expiresAt","instanceName","sameRegion","size","status","updatedAt","id"],"type":"object"}},"scaleway:databases/getInstance:getInstance":{"description":"Gets information about an Database Instance.\n\nFor further information refer the Managed Databases for PostgreSQL and MySQL [API documentation](https://developers.scaleway.com/en/products/rdb/api/#database-instance)\n\n","inputs":{"description":"A collection of arguments for invoking getInstance.\n","properties":{"instanceId":{"type":"string","description":"The RDB instance ID.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"projectId":{"type":"string","description":"The ID of the project the Database Instance is in. Can be used to filter instances when using \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstance.\n","properties":{"backupSameRegion":{"type":"boolean"},"backupScheduleFrequency":{"type":"integer"},"backupScheduleRetention":{"type":"integer"},"certificate":{"type":"string"},"disableBackup":{"type":"boolean"},"encryptionAtRest":{"type":"boolean"},"endpointIp":{"type":"string"},"endpointPort":{"type":"integer"},"engine":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"initSettings":{"additionalProperties":{"type":"string"},"type":"object"},"instanceId":{"type":"string"},"isHaCluster":{"type":"boolean"},"loadBalancers":{"items":{"$ref":"#/types/scaleway:databases/getInstanceLoadBalancer:getInstanceLoadBalancer"},"type":"array"},"logsPolicies":{"items":{"$ref":"#/types/scaleway:databases/getInstanceLogsPolicy:getInstanceLogsPolicy"},"type":"array"},"name":{"type":"string"},"nodeType":{"type":"string"},"organizationId":{"type":"string"},"password":{"type":"string"},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"integer"},"privateIps":{"items":{"$ref":"#/types/scaleway:databases/getInstancePrivateIp:getInstancePrivateIp"},"type":"array"},"privateNetworks":{"items":{"$ref":"#/types/scaleway:databases/getInstancePrivateNetwork:getInstancePrivateNetwork"},"type":"array"},"projectId":{"type":"string"},"readReplicas":{"items":{"$ref":"#/types/scaleway:databases/getInstanceReadReplica:getInstanceReadReplica"},"type":"array"},"region":{"type":"string"},"settings":{"additionalProperties":{"type":"string"},"type":"object"},"snapshotId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"upgradableVersions":{"items":{"$ref":"#/types/scaleway:databases/getInstanceUpgradableVersion:getInstanceUpgradableVersion"},"type":"array"},"userName":{"type":"string"},"volumeSizeInGb":{"type":"integer"},"volumeType":{"type":"string"}},"required":["backupSameRegion","backupScheduleFrequency","backupScheduleRetention","certificate","disableBackup","encryptionAtRest","endpointIp","endpointPort","engine","initSettings","isHaCluster","loadBalancers","logsPolicies","nodeType","organizationId","password","passwordWo","passwordWoVersion","privateIps","privateNetworks","readReplicas","settings","snapshotId","tags","upgradableVersions","userName","volumeSizeInGb","volumeType","id"],"type":"object"}},"scaleway:databases/getPrivilege:getPrivilege":{"description":"Gets information about the privileges in a database.\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\n// Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\nconst main = scaleway.databases.getPrivilege({\n    instanceId: \"11111111-1111-111111111111\",\n    userName: \"my-user\",\n    databaseName: \"my-database\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\nmain = scaleway.databases.get_privilege(instance_id=\"11111111-1111-111111111111\",\n    user_name=\"my-user\",\n    database_name=\"my-database\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\n    var main = Scaleway.Databases.GetPrivilege.Invoke(new()\n    {\n        InstanceId = \"11111111-1111-111111111111\",\n        UserName = \"my-user\",\n        DatabaseName = \"my-database\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\n\t\t_, err := databases.LookupPrivilege(ctx, \u0026databases.LookupPrivilegeArgs{\n\t\t\tInstanceId:   \"11111111-1111-111111111111\",\n\t\t\tUserName:     \"my-user\",\n\t\t\tDatabaseName: \"my-database\",\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.databases.DatabasesFunctions;\nimport com.pulumi.scaleway.databases.inputs.GetPrivilegeArgs;\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        // Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\n        final var main = DatabasesFunctions.getPrivilege(GetPrivilegeArgs.builder()\n            .instanceId(\"11111111-1111-111111111111\")\n            .userName(\"my-user\")\n            .databaseName(\"my-database\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\n  main:\n    fn::invoke:\n      function: scaleway:databases:getPrivilege\n      arguments:\n        instanceId: 11111111-1111-111111111111\n        userName: my-user\n        databaseName: my-database\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivilege.\n","properties":{"databaseName":{"type":"string","description":"The database name.\n"},"instanceId":{"type":"string","description":"The Database Instance ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n"},"userName":{"type":"string","description":"The user name.\n"}},"type":"object","required":["databaseName","instanceId","userName"]},"outputs":{"description":"A collection of values returned by getPrivilege.\n","properties":{"databaseName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"permission":{"description":"The permission for this user on the database. Possible values are \u003cspan pulumi-lang-nodejs=\"`readonly`\" pulumi-lang-dotnet=\"`Readonly`\" pulumi-lang-go=\"`readonly`\" pulumi-lang-python=\"`readonly`\" pulumi-lang-yaml=\"`readonly`\" pulumi-lang-java=\"`readonly`\"\u003e`readonly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e\n, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n","type":"string"},"region":{"type":"string"},"userName":{"type":"string"}},"required":["databaseName","instanceId","permission","userName","id"],"type":"object"}},"scaleway:domain/getRecord:getRecord":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.domain.Record`\" pulumi-lang-dotnet=\"`scaleway.domain.Record`\" pulumi-lang-go=\"`domain.Record`\" pulumi-lang-python=\"`domain.Record`\" pulumi-lang-yaml=\"`scaleway.domain.Record`\" pulumi-lang-java=\"`scaleway.domain.Record`\"\u003e`scaleway.domain.Record`\u003c/span\u003e data source is used to get information about an existing domain record.\n\nRefer to the Domains and DNS [product documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) and [API documentation](https://www.scaleway.com/en/developers/api/domains-and-dns/) for more information.\n\n## Query domain records\n\nThe following commands allow you to:\n\n- query a domain record specified by the DNS zone (`domain.tld`), the record name (\u003cspan pulumi-lang-nodejs=\"`www`\" pulumi-lang-dotnet=\"`Www`\" pulumi-lang-go=\"`www`\" pulumi-lang-python=\"`www`\" pulumi-lang-yaml=\"`www`\" pulumi-lang-java=\"`www`\"\u003e`www`\u003c/span\u003e), the record type (`A`), and the record content (`1.2.3.4`).\n- query a domain record specified by the DNS zone (`domain.tld`) and the unique record ID (`11111111-1111-1111-1111-111111111111`).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Query record by DNS zone, record name, type and content\nconst byContent = scaleway.domain.getRecord({\n    dnsZone: \"domain.tld\",\n    name: \"www\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n});\n// Query record by DNS zone and record ID\nconst byId = scaleway.domain.getRecord({\n    dnsZone: \"domain.tld\",\n    recordId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Query record by DNS zone, record name, type and content\nby_content = scaleway.domain.get_record(dns_zone=\"domain.tld\",\n    name=\"www\",\n    type=\"A\",\n    data=\"1.2.3.4\")\n# Query record by DNS zone and record ID\nby_id = scaleway.domain.get_record(dns_zone=\"domain.tld\",\n    record_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    // Query record by DNS zone, record name, type and content\n    var byContent = Scaleway.Domain.GetRecord.Invoke(new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"www\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n    });\n\n    // Query record by DNS zone and record ID\n    var byId = Scaleway.Domain.GetRecord.Invoke(new()\n    {\n        DnsZone = \"domain.tld\",\n        RecordId = \"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/domain\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Query record by DNS zone, record name, type and content\n\t\t_, err := domain.LookupRecord(ctx, \u0026domain.LookupRecordArgs{\n\t\t\tDnsZone: pulumi.StringRef(\"domain.tld\"),\n\t\t\tName:    pulumi.StringRef(\"www\"),\n\t\t\tType:    pulumi.StringRef(\"A\"),\n\t\t\tData:    pulumi.StringRef(\"1.2.3.4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Query record by DNS zone and record ID\n\t\t_, err = domain.LookupRecord(ctx, \u0026domain.LookupRecordArgs{\n\t\t\tDnsZone:  pulumi.StringRef(\"domain.tld\"),\n\t\t\tRecordId: 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.domain.DomainFunctions;\nimport com.pulumi.scaleway.domain.inputs.GetRecordArgs;\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        // Query record by DNS zone, record name, type and content\n        final var byContent = DomainFunctions.getRecord(GetRecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"www\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .build());\n\n        // Query record by DNS zone and record ID\n        final var byId = DomainFunctions.getRecord(GetRecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .recordId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Query record by DNS zone, record name, type and content\n  byContent:\n    fn::invoke:\n      function: scaleway:domain:getRecord\n      arguments:\n        dnsZone: domain.tld\n        name: www\n        type: A\n        data: 1.2.3.4\n  # Query record by DNS zone and record ID\n  byId:\n    fn::invoke:\n      function: scaleway:domain:getRecord\n      arguments:\n        dnsZone: domain.tld\n        recordId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRecord.\n","properties":{"data":{"type":"string","description":"The content of the record (e.g., an IPv4 address for an `A` record or a string for a `TXT` record). Cannot be used with \u003cspan pulumi-lang-nodejs=\"`recordId`\" pulumi-lang-dotnet=\"`RecordId`\" pulumi-lang-go=\"`recordId`\" pulumi-lang-python=\"`record_id`\" pulumi-lang-yaml=\"`recordId`\" pulumi-lang-java=\"`recordId`\"\u003e`record_id`\u003c/span\u003e.\n"},"dnsZone":{"type":"string","description":"The DNS zone (domain) to which the record belongs. This is a required field in both examples above but is optional in the context of defining the data source.\n"},"name":{"type":"string","description":"The name of the record, which can be an empty string for a root record. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`recordId`\" pulumi-lang-dotnet=\"`RecordId`\" pulumi-lang-go=\"`recordId`\" pulumi-lang-python=\"`record_id`\" pulumi-lang-yaml=\"`recordId`\" pulumi-lang-java=\"`recordId`\"\u003e`record_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"). The ID of the Project associated with the domain.\n"},"recordId":{"type":"string","description":"The unique identifier of the record. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`data`\" pulumi-lang-dotnet=\"`Data`\" pulumi-lang-go=\"`data`\" pulumi-lang-python=\"`data`\" pulumi-lang-yaml=\"`data`\" pulumi-lang-java=\"`data`\"\u003e`data`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the record (`A`, `AAAA`, `MX`, `CNAME`, etc.). Cannot be used with \u003cspan pulumi-lang-nodejs=\"`recordId`\" pulumi-lang-dotnet=\"`RecordId`\" pulumi-lang-go=\"`recordId`\" pulumi-lang-python=\"`record_id`\" pulumi-lang-yaml=\"`recordId`\" pulumi-lang-java=\"`recordId`\"\u003e`record_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRecord.\n","properties":{"data":{"type":"string"},"dnsZone":{"type":"string"},"fqdn":{"type":"string"},"geoIps":{"description":"Information about dynamic records based on user geolocation. Find out more about dynamic records.\n","items":{"$ref":"#/types/scaleway:domain/getRecordGeoIp:getRecordGeoIp"},"type":"array"},"httpServices":{"description":"Information about dynamic records based on URL resolution. Find out more about dynamic records.\n","items":{"$ref":"#/types/scaleway:domain/getRecordHttpService:getRecordHttpService"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"priority":{"description":"The priority of the record, mainly used with `MX` records.\n","type":"integer"},"projectId":{"type":"string"},"recordId":{"type":"string"},"rootZone":{"type":"boolean"},"ttl":{"description":"The Time To Live (TTL) of the record in seconds.\n","type":"integer"},"type":{"type":"string"},"views":{"description":"Information about dynamic records based on the client’s (resolver) subnet. Find out more about dynamic records.\n","items":{"$ref":"#/types/scaleway:domain/getRecordView:getRecordView"},"type":"array"},"weighteds":{"description":"Information about dynamic records based on IP weights. Find out more about dynamic records.\n","items":{"$ref":"#/types/scaleway:domain/getRecordWeighted:getRecordWeighted"},"type":"array"}},"required":["fqdn","geoIps","httpServices","priority","rootZone","ttl","views","weighteds","id"],"type":"object"}},"scaleway:domain/getZone:getZone":{"inputs":{"description":"A collection of arguments for invoking getZone.\n","properties":{"domain":{"type":"string","description":"The primary domain name where the DNS zone is located. This is a mandatory field.\n"},"projectId":{"type":"string","description":"). The ID of the Scaleway Project associated with the domain. If not specified, it defaults to the \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e set in the provider configuration.\n"},"subdomain":{"type":"string","description":"The subdomain (or zone name) within the primary domain. This is a mandatory field.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getZone.\n","properties":{"domain":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"message":{"description":"Message associated with the domain zone (typically used for status or error messages).\n","type":"string"},"ns":{"description":"The list of name servers for the zone.\n","items":{"type":"string"},"type":"array"},"nsDefaults":{"description":"The default list of name servers for the zone.\n","items":{"type":"string"},"type":"array"},"nsMasters":{"description":"The master list of name servers for the zone.\n","items":{"type":"string"},"type":"array"},"projectId":{"type":"string"},"status":{"description":"The status of the domain zone.\n","type":"string"},"subdomain":{"type":"string"},"updatedAt":{"description":"The date and time of the last update to the DNS zone.\n","type":"string"}},"required":["message","ns","nsDefaults","nsMasters","status","updatedAt","id"],"type":"object"}},"scaleway:elasticmetal/getIp:getIp":{"description":"Gets information about a Flexible IP.\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\n// Get info by IP address\nconst withIp = scaleway.elasticmetal.getIp({\n    ipAddress: \"1.2.3.4\",\n});\n// Get info by IP ID\nconst withId = scaleway.elasticmetal.getIp({\n    flexibleIpId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by IP address\nwith_ip = scaleway.elasticmetal.get_ip(ip_address=\"1.2.3.4\")\n# Get info by IP ID\nwith_id = scaleway.elasticmetal.get_ip(flexible_ip_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    // Get info by IP address\n    var withIp = Scaleway.Elasticmetal.GetIp.Invoke(new()\n    {\n        IpAddress = \"1.2.3.4\",\n    });\n\n    // Get info by IP ID\n    var withId = Scaleway.Elasticmetal.GetIp.Invoke(new()\n    {\n        FlexibleIpId = \"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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by IP address\n\t\t_, err := elasticmetal.LookupIp(ctx, \u0026elasticmetal.LookupIpArgs{\n\t\t\tIpAddress: pulumi.StringRef(\"1.2.3.4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by IP ID\n\t\t_, err = elasticmetal.LookupIp(ctx, \u0026elasticmetal.LookupIpArgs{\n\t\t\tFlexibleIpId: 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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetIpArgs;\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        // Get info by IP address\n        final var withIp = ElasticmetalFunctions.getIp(GetIpArgs.builder()\n            .ipAddress(\"1.2.3.4\")\n            .build());\n\n        // Get info by IP ID\n        final var withId = ElasticmetalFunctions.getIp(GetIpArgs.builder()\n            .flexibleIpId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by IP address\n  withIp:\n    fn::invoke:\n      function: scaleway:elasticmetal:getIp\n      arguments:\n        ipAddress: 1.2.3.4\n  # Get info by IP ID\n  withId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getIp\n      arguments:\n        flexibleIpId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIp.\n","properties":{"flexibleIpId":{"type":"string","description":"The IP ID.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`flexibleIpId`\" pulumi-lang-dotnet=\"`FlexibleIpId`\" pulumi-lang-go=\"`flexibleIpId`\" pulumi-lang-python=\"`flexible_ip_id`\" pulumi-lang-yaml=\"`flexibleIpId`\" pulumi-lang-java=\"`flexibleIpId`\"\u003e`flexible_ip_id`\u003c/span\u003e should be specified.\n"},"ipAddress":{"type":"string","description":"The IP address.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`flexibleIpId`\" pulumi-lang-dotnet=\"`FlexibleIpId`\" pulumi-lang-go=\"`flexibleIpId`\" pulumi-lang-python=\"`flexible_ip_id`\" pulumi-lang-yaml=\"`flexibleIpId`\" pulumi-lang-java=\"`flexibleIpId`\"\u003e`flexible_ip_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Flexible IP is associated with.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getIp.\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"flexibleIpId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipAddress":{"type":"string"},"isIpv6":{"type":"boolean"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"reverse":{"type":"string"},"serverId":{"type":"string"},"status":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"zone":{"type":"string"}},"required":["createdAt","description","isIpv6","organizationId","projectId","reverse","serverId","status","tags","updatedAt","zone","id"],"type":"object"}},"scaleway:elasticmetal/getIps:getIps":{"description":"Gets information about multiple Flexible IPs.\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\n// Find ips that share the same tags\nconst fipsByTags = scaleway.elasticmetal.getIps({\n    tags: [\"a tag\"],\n});\n// Find ips that share the same Server ID\nconst myOffer = scaleway.elasticmetal.getOffer({\n    name: \"EM-B112X-SSD\",\n});\nconst base = new scaleway.elasticmetal.Server(\"base\", {\n    name: \"MyServer\",\n    offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n    installConfigAfterward: true,\n});\nconst first = new scaleway.elasticmetal.Ip(\"first\", {\n    serverId: base.id,\n    tags: [\n        \"foo\",\n        \"first\",\n    ],\n});\nconst second = new scaleway.elasticmetal.Ip(\"second\", {\n    serverId: base.id,\n    tags: [\n        \"foo\",\n        \"second\",\n    ],\n});\nconst fipsByServerId = scaleway.elasticmetal.getIpsOutput({\n    serverIds: [base.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Find ips that share the same tags\nfips_by_tags = scaleway.elasticmetal.get_ips(tags=[\"a tag\"])\n# Find ips that share the same Server ID\nmy_offer = scaleway.elasticmetal.get_offer(name=\"EM-B112X-SSD\")\nbase = scaleway.elasticmetal.Server(\"base\",\n    name=\"MyServer\",\n    offer=my_offer.offer_id,\n    install_config_afterward=True)\nfirst = scaleway.elasticmetal.Ip(\"first\",\n    server_id=base.id,\n    tags=[\n        \"foo\",\n        \"first\",\n    ])\nsecond = scaleway.elasticmetal.Ip(\"second\",\n    server_id=base.id,\n    tags=[\n        \"foo\",\n        \"second\",\n    ])\nfips_by_server_id = scaleway.elasticmetal.get_ips_output(server_ids=[base.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    // Find ips that share the same tags\n    var fipsByTags = Scaleway.Elasticmetal.GetIps.Invoke(new()\n    {\n        Tags = new[]\n        {\n            \"a tag\",\n        },\n    });\n\n    // Find ips that share the same Server ID\n    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()\n    {\n        Name = \"EM-B112X-SSD\",\n    });\n\n    var @base = new Scaleway.Elasticmetal.Server(\"base\", new()\n    {\n        Name = \"MyServer\",\n        Offer = myOffer.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        InstallConfigAfterward = true,\n    });\n\n    var first = new Scaleway.Elasticmetal.Ip(\"first\", new()\n    {\n        ServerId = @base.Id,\n        Tags = new[]\n        {\n            \"foo\",\n            \"first\",\n        },\n    });\n\n    var second = new Scaleway.Elasticmetal.Ip(\"second\", new()\n    {\n        ServerId = @base.Id,\n        Tags = new[]\n        {\n            \"foo\",\n            \"second\",\n        },\n    });\n\n    var fipsByServerId = Scaleway.Elasticmetal.GetIps.Invoke(new()\n    {\n        ServerIds = new[]\n        {\n            @base.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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find ips that share the same tags\n\t\t_, err := elasticmetal.GetIps(ctx, \u0026elasticmetal.GetIpsArgs{\n\t\t\tTags: []string{\n\t\t\t\t\"a tag\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find ips that share the same Server ID\n\t\tmyOffer, err := elasticmetal.GetOffer(ctx, \u0026elasticmetal.GetOfferArgs{\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\tbase, err := elasticmetal.NewServer(ctx, \"base\", \u0026elasticmetal.ServerArgs{\n\t\t\tName:                   pulumi.String(\"MyServer\"),\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\t_, err = elasticmetal.NewIp(ctx, \"first\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"first\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticmetal.NewIp(ctx, \"second\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"second\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = elasticmetal.GetIpsOutput(ctx, elasticmetal.GetIpsOutputArgs{\n\t\t\tServerIds: pulumi.StringArray{\n\t\t\t\tbase.ID(),\n\t\t\t},\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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetIpsArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.elasticmetal.Server;\nimport com.pulumi.scaleway.elasticmetal.ServerArgs;\nimport com.pulumi.scaleway.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\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        // Find ips that share the same tags\n        final var fipsByTags = ElasticmetalFunctions.getIps(GetIpsArgs.builder()\n            .tags(\"a tag\")\n            .build());\n\n        // Find ips that share the same Server ID\n        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()\n            .name(\"EM-B112X-SSD\")\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .name(\"MyServer\")\n            .offer(myOffer.offerId())\n            .installConfigAfterward(true)\n            .build());\n\n        var first = new Ip(\"first\", IpArgs.builder()\n            .serverId(base.id())\n            .tags(            \n                \"foo\",\n                \"first\")\n            .build());\n\n        var second = new Ip(\"second\", IpArgs.builder()\n            .serverId(base.id())\n            .tags(            \n                \"foo\",\n                \"second\")\n            .build());\n\n        final var fipsByServerId = ElasticmetalFunctions.getIps(GetIpsArgs.builder()\n            .serverIds(base.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  base:\n    type: scaleway:elasticmetal:Server\n    properties:\n      name: MyServer\n      offer: ${myOffer.offerId}\n      installConfigAfterward: true\n  first:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      serverId: ${base.id}\n      tags:\n        - foo\n        - first\n  second:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      serverId: ${base.id}\n      tags:\n        - foo\n        - second\nvariables:\n  # Find ips that share the same tags\n  fipsByTags:\n    fn::invoke:\n      function: scaleway:elasticmetal:getIps\n      arguments:\n        tags:\n          - a tag\n  # Find ips that share the same Server ID\n  myOffer:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOffer\n      arguments:\n        name: EM-B112X-SSD\n  fipsByServerId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getIps\n      arguments:\n        serverIds:\n          - ${base.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIps.\n","properties":{"projectId":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is in.\n","willReplaceOnChanges":true},"serverIds":{"type":"array","items":{"type":"string"},"description":"List of server IDs used as filter. IPs with these exact server IDs are listed.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. IPs with these exact tags are listed.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which IPs exist.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getIps.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ips":{"description":"List of found flexible IPS\n","items":{"$ref":"#/types/scaleway:elasticmetal/getIpsIp:getIpsIp"},"type":"array"},"organizationId":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the IP is in.\n","type":"string"},"projectId":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is in.\n","type":"string"},"serverIds":{"items":{"type":"string"},"type":"array"},"tags":{"description":"The list of tags which are attached to the flexible IP.\n","items":{"type":"string"},"type":"array"},"zone":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the MAC address exist.\n","type":"string"}},"required":["ips","organizationId","projectId","id"],"type":"object"}},"scaleway:elasticmetal/getOffer:getOffer":{"description":"Gets information about a baremetal offer. For more information, see the [API documentation](https://developers.scaleway.com/en/products/baremetal/api).\n\n","inputs":{"description":"A collection of arguments for invoking getOffer.\n","properties":{"includeDisabled":{"type":"boolean","description":"Include disabled offers.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"offerId":{"type":"string","description":"The offer id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"subscriptionPeriod":{"type":"string","description":"Period of subscription the desired offer. Should be \u003cspan pulumi-lang-nodejs=\"`hourly`\" pulumi-lang-dotnet=\"`Hourly`\" pulumi-lang-go=\"`hourly`\" pulumi-lang-python=\"`hourly`\" pulumi-lang-yaml=\"`hourly`\" pulumi-lang-java=\"`hourly`\"\u003e`hourly`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`monthly`\" pulumi-lang-dotnet=\"`Monthly`\" pulumi-lang-go=\"`monthly`\" pulumi-lang-python=\"`monthly`\" pulumi-lang-yaml=\"`monthly`\" pulumi-lang-java=\"`monthly`\"\u003e`monthly`\u003c/span\u003e.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the offer should be created.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getOffer.\n","properties":{"bandwidth":{"description":"Available Bandwidth with the offer.\n","type":"integer"},"commercialRange":{"description":"Commercial range of the offer.\n","type":"string"},"cpu":{"$ref":"#/types/scaleway:elasticmetal/getOfferCpu:getOfferCpu","description":"A list of cpu specifications. (Structure is documented below.)\n"},"disks":{"description":"A list of disk specifications. (Structure is documented below.)\n","items":{"$ref":"#/types/scaleway:elasticmetal/getOfferDisk:getOfferDisk"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"includeDisabled":{"type":"boolean"},"memories":{"description":"A list of memory specifications. (Structure is documented below.)\n","items":{"$ref":"#/types/scaleway:elasticmetal/getOfferMemory:getOfferMemory"},"type":"array"},"name":{"description":"Name of the CPU.\n","type":"string"},"offerId":{"type":"string"},"stock":{"description":"Stock status for this offer. Possible values are: \u003cspan pulumi-lang-nodejs=\"`empty`\" pulumi-lang-dotnet=\"`Empty`\" pulumi-lang-go=\"`empty`\" pulumi-lang-python=\"`empty`\" pulumi-lang-yaml=\"`empty`\" pulumi-lang-java=\"`empty`\"\u003e`empty`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`available`\" pulumi-lang-dotnet=\"`Available`\" pulumi-lang-go=\"`available`\" pulumi-lang-python=\"`available`\" pulumi-lang-yaml=\"`available`\" pulumi-lang-java=\"`available`\"\u003e`available`\u003c/span\u003e.\n","type":"string"},"subscriptionPeriod":{"type":"string"},"zone":{"type":"string"}},"required":["bandwidth","commercialRange","cpu","disks","memories","stock","id"],"type":"object"}},"scaleway:elasticmetal/getOption:getOption":{"description":"Gets information about a baremetal option.\nFor more information, see the [API documentation](https://developers.scaleway.com/en/products/baremetal/api).\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\n// Get info by option name\nconst byName = scaleway.elasticmetal.getOption({\n    name: \"Remote Access\",\n});\n// Get info by option id\nconst byId = scaleway.elasticmetal.getOption({\n    optionId: \"931df052-d713-4674-8b58-96a63244c8e2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by option name\nby_name = scaleway.elasticmetal.get_option(name=\"Remote Access\")\n# Get info by option id\nby_id = scaleway.elasticmetal.get_option(option_id=\"931df052-d713-4674-8b58-96a63244c8e2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by option name\n    var byName = Scaleway.Elasticmetal.GetOption.Invoke(new()\n    {\n        Name = \"Remote Access\",\n    });\n\n    // Get info by option id\n    var byId = Scaleway.Elasticmetal.GetOption.Invoke(new()\n    {\n        OptionId = \"931df052-d713-4674-8b58-96a63244c8e2\",\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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by option name\n\t\t_, err := elasticmetal.GetOption(ctx, \u0026elasticmetal.GetOptionArgs{\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// Get info by option id\n\t\t_, err = elasticmetal.GetOption(ctx, \u0026elasticmetal.GetOptionArgs{\n\t\t\tOptionId: pulumi.StringRef(\"931df052-d713-4674-8b58-96a63244c8e2\"),\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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOptionArgs;\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        // Get info by option name\n        final var byName = ElasticmetalFunctions.getOption(GetOptionArgs.builder()\n            .name(\"Remote Access\")\n            .build());\n\n        // Get info by option id\n        final var byId = ElasticmetalFunctions.getOption(GetOptionArgs.builder()\n            .optionId(\"931df052-d713-4674-8b58-96a63244c8e2\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by option name\n  byName:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOption\n      arguments:\n        name: Remote Access\n  # Get info by option id\n  byId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOption\n      arguments:\n        optionId: 931df052-d713-4674-8b58-96a63244c8e2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOption.\n","properties":{"name":{"type":"string","description":"The option name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`optionId`\" pulumi-lang-dotnet=\"`OptionId`\" pulumi-lang-go=\"`optionId`\" pulumi-lang-python=\"`option_id`\" pulumi-lang-yaml=\"`optionId`\" pulumi-lang-java=\"`optionId`\"\u003e`option_id`\u003c/span\u003e should be specified.\n"},"optionId":{"type":"string","description":"The option id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`optionId`\" pulumi-lang-dotnet=\"`OptionId`\" pulumi-lang-go=\"`optionId`\" pulumi-lang-python=\"`option_id`\" pulumi-lang-yaml=\"`optionId`\" pulumi-lang-java=\"`optionId`\"\u003e`option_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the option exists.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getOption.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"manageable":{"description":"Is false if the option could not be added or removed.\n","type":"boolean"},"name":{"description":"The name of the option.\n","type":"string"},"optionId":{"type":"string"},"zone":{"type":"string"}},"required":["manageable","id"],"type":"object"}},"scaleway:elasticmetal/getOs:getOs":{"description":"Gets information about a baremetal operating system.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/elastic-metal/#path-os-list-available-oses).\n\nYou can also use the [scaleway-cli](https://github.com/scaleway/scaleway-cli) with `scw baremetal os list` to list all available operating systems.\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\n// Get info by os name and version\nconst byName = scaleway.elasticmetal.getOs({\n    name: \"Ubuntu\",\n    version: \"20.04 LTS (Focal Fossa)\",\n});\n// Get info by os id\nconst byId = scaleway.elasticmetal.getOs({\n    osId: \"03b7f4ba-a6a1-4305-984e-b54fafbf1681\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by os name and version\nby_name = scaleway.elasticmetal.get_os(name=\"Ubuntu\",\n    version=\"20.04 LTS (Focal Fossa)\")\n# Get info by os id\nby_id = scaleway.elasticmetal.get_os(os_id=\"03b7f4ba-a6a1-4305-984e-b54fafbf1681\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by os name and version\n    var byName = Scaleway.Elasticmetal.GetOs.Invoke(new()\n    {\n        Name = \"Ubuntu\",\n        Version = \"20.04 LTS (Focal Fossa)\",\n    });\n\n    // Get info by os id\n    var byId = Scaleway.Elasticmetal.GetOs.Invoke(new()\n    {\n        OsId = \"03b7f4ba-a6a1-4305-984e-b54fafbf1681\",\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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by os name and version\n\t\t_, err := elasticmetal.GetOs(ctx, \u0026elasticmetal.GetOsArgs{\n\t\t\tName:    pulumi.StringRef(\"Ubuntu\"),\n\t\t\tVersion: pulumi.StringRef(\"20.04 LTS (Focal Fossa)\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by os id\n\t\t_, err = elasticmetal.GetOs(ctx, \u0026elasticmetal.GetOsArgs{\n\t\t\tOsId: pulumi.StringRef(\"03b7f4ba-a6a1-4305-984e-b54fafbf1681\"),\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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;\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        // Get info by os name and version\n        final var byName = ElasticmetalFunctions.getOs(GetOsArgs.builder()\n            .name(\"Ubuntu\")\n            .version(\"20.04 LTS (Focal Fossa)\")\n            .build());\n\n        // Get info by os id\n        final var byId = ElasticmetalFunctions.getOs(GetOsArgs.builder()\n            .osId(\"03b7f4ba-a6a1-4305-984e-b54fafbf1681\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by os name and version\n  byName:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\n      arguments:\n        name: Ubuntu\n        version: 20.04 LTS (Focal Fossa)\n  # Get info by os id\n  byId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\n      arguments:\n        osId: 03b7f4ba-a6a1-4305-984e-b54fafbf1681\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOs.\n","properties":{"name":{"type":"string","description":"The os name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`osId`\" pulumi-lang-dotnet=\"`OsId`\" pulumi-lang-go=\"`osId`\" pulumi-lang-python=\"`os_id`\" pulumi-lang-yaml=\"`osId`\" pulumi-lang-java=\"`osId`\"\u003e`os_id`\u003c/span\u003e should be specified.\n"},"osId":{"type":"string","description":"The operating system id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`osId`\" pulumi-lang-dotnet=\"`OsId`\" pulumi-lang-go=\"`osId`\" pulumi-lang-python=\"`os_id`\" pulumi-lang-yaml=\"`osId`\" pulumi-lang-java=\"`osId`\"\u003e`os_id`\u003c/span\u003e should be specified.\n"},"version":{"type":"string","description":"The os version.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the os exists.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getOs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"osId":{"type":"string"},"version":{"type":"string"},"zone":{"type":"string"}},"required":["id"],"type":"object"}},"scaleway:elasticmetal/getPartitionSchema:getPartitionSchema":{"description":"The\u003cspan pulumi-lang-nodejs=\" scaleway.elasticmetal.getPartitionSchema \" pulumi-lang-dotnet=\" scaleway.elasticmetal.getPartitionSchema \" pulumi-lang-go=\" elasticmetal.getPartitionSchema \" pulumi-lang-python=\" elasticmetal_get_partition_schema \" pulumi-lang-yaml=\" scaleway.elasticmetal.getPartitionSchema \" pulumi-lang-java=\" scaleway.elasticmetal.getPartitionSchema \"\u003e scaleway.elasticmetal.getPartitionSchema \u003c/span\u003edata source allows you to retrieve a ready-to-use partitioning schema for a BareMetal server. This schema can be used for custom installations with optional swap and extra partitions.\n\nThis data source simplifies the process of generating valid partitioning configurations, especially useful when dealing with OS and offer compatibility requirements.\n\n## Partitioning Details\n\nThe partitioning schema generated by the \u003cspan pulumi-lang-nodejs=\"`scaleway.elasticmetal.getPartitionSchema`\" pulumi-lang-dotnet=\"`scaleway.elasticmetal.getPartitionSchema`\" pulumi-lang-go=\"`elasticmetal.getPartitionSchema`\" pulumi-lang-python=\"`elasticmetal_get_partition_schema`\" pulumi-lang-yaml=\"`scaleway.elasticmetal.getPartitionSchema`\" pulumi-lang-java=\"`scaleway.elasticmetal.getPartitionSchema`\"\u003e`scaleway.elasticmetal.getPartitionSchema`\u003c/span\u003e data source includes a root (`/`) partition that is **20GB** in size by default.\n\nIf additional storage is required, you can enable the \u003cspan pulumi-lang-nodejs=\"`extraPartition`\" pulumi-lang-dotnet=\"`ExtraPartition`\" pulumi-lang-go=\"`extraPartition`\" pulumi-lang-python=\"`extra_partition`\" pulumi-lang-yaml=\"`extraPartition`\" pulumi-lang-java=\"`extraPartition`\"\u003e`extra_partition`\u003c/span\u003e option to mount extra space on a custom path (e.g., `/data`).\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 _default = scaleway.elasticmetal.getPartitionSchema({\n    offerId: \"11111111-1111-1111-1111-111111111111\",\n    osId: \"22222222-2222-2222-2222-222222222222\",\n    swap: true,\n    extraPartition: true,\n    ext4Mountpoint: \"/data\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\ndefault = scaleway.elasticmetal.get_partition_schema(offer_id=\"11111111-1111-1111-1111-111111111111\",\n    os_id=\"22222222-2222-2222-2222-222222222222\",\n    swap=True,\n    extra_partition=True,\n    ext4_mountpoint=\"/data\")\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 @default = Scaleway.Elasticmetal.GetPartitionSchema.Invoke(new()\n    {\n        OfferId = \"11111111-1111-1111-1111-111111111111\",\n        OsId = \"22222222-2222-2222-2222-222222222222\",\n        Swap = true,\n        ExtraPartition = true,\n        Ext4Mountpoint = \"/data\",\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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticmetal.GetPartitionSchema(ctx, \u0026elasticmetal.GetPartitionSchemaArgs{\n\t\t\tOfferId:        \"11111111-1111-1111-1111-111111111111\",\n\t\t\tOsId:           \"22222222-2222-2222-2222-222222222222\",\n\t\t\tSwap:           pulumi.BoolRef(true),\n\t\t\tExtraPartition: pulumi.BoolRef(true),\n\t\t\tExt4Mountpoint: pulumi.StringRef(\"/data\"),\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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetPartitionSchemaArgs;\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 default = ElasticmetalFunctions.getPartitionSchema(GetPartitionSchemaArgs.builder()\n            .offerId(\"11111111-1111-1111-1111-111111111111\")\n            .osId(\"22222222-2222-2222-2222-222222222222\")\n            .swap(true)\n            .extraPartition(true)\n            .ext4Mountpoint(\"/data\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: scaleway:elasticmetal:getPartitionSchema\n      arguments:\n        offerId: 11111111-1111-1111-1111-111111111111\n        osId: 22222222-2222-2222-2222-222222222222\n        swap: true\n        extraPartition: true\n        ext4Mountpoint: /data\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n","inputs":{"description":"A collection of arguments for invoking getPartitionSchema.\n","properties":{"ext4Mountpoint":{"type":"string","description":"The mount point for the extra partition. Must be an absolute path using alphanumeric characters and underscores.\n"},"extraPartition":{"type":"boolean","description":"Whether to add an extra ext4 data partition.\n"},"offerId":{"type":"string","description":"The UUID of the BareMetal offer.\n"},"osId":{"type":"string","description":"The UUID of the OS image.\n"},"swap":{"type":"boolean","description":"Whether to include a swap partition.\n"}},"type":"object","required":["offerId","osId"]},"outputs":{"description":"A collection of values returned by getPartitionSchema.\n","properties":{"ext4Mountpoint":{"type":"string"},"extraPartition":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"jsonPartition":{"description":"— A validated partitioning schema in JSON format that can be directly used for BareMetal server deployment.\n","type":"string"},"offerId":{"type":"string"},"osId":{"type":"string"},"swap":{"type":"boolean"}},"required":["jsonPartition","offerId","osId","id"],"type":"object"}},"scaleway:elasticmetal/getServer:getServer":{"description":"Gets information about a baremetal server.\nFor more information, see the [API documentation](https://developers.scaleway.com/en/products/baremetal/api).\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\n// Get info by server name\nconst byName = scaleway.elasticmetal.getServer({\n    name: \"foobar\",\n    zone: \"fr-par-2\",\n});\n// Get info by server id\nconst byId = scaleway.elasticmetal.getServer({\n    serverId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by server name\nby_name = scaleway.elasticmetal.get_server(name=\"foobar\",\n    zone=\"fr-par-2\")\n# Get info by server id\nby_id = scaleway.elasticmetal.get_server(server_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    // Get info by server name\n    var byName = Scaleway.Elasticmetal.GetServer.Invoke(new()\n    {\n        Name = \"foobar\",\n        Zone = \"fr-par-2\",\n    });\n\n    // Get info by server id\n    var byId = Scaleway.Elasticmetal.GetServer.Invoke(new()\n    {\n        ServerId = \"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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by server name\n\t\t_, err := elasticmetal.LookupServer(ctx, \u0026elasticmetal.LookupServerArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by server id\n\t\t_, err = elasticmetal.LookupServer(ctx, \u0026elasticmetal.LookupServerArgs{\n\t\t\tServerId: 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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetServerArgs;\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        // Get info by server name\n        final var byName = ElasticmetalFunctions.getServer(GetServerArgs.builder()\n            .name(\"foobar\")\n            .zone(\"fr-par-2\")\n            .build());\n\n        // Get info by server id\n        final var byId = ElasticmetalFunctions.getServer(GetServerArgs.builder()\n            .serverId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by server name\n  byName:\n    fn::invoke:\n      function: scaleway:elasticmetal:getServer\n      arguments:\n        name: foobar\n        zone: fr-par-2\n  # Get info by server id\n  byId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getServer\n      arguments:\n        serverId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServer.\n","properties":{"name":{"type":"string","description":"The server name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`serverId`\" pulumi-lang-dotnet=\"`ServerId`\" pulumi-lang-go=\"`serverId`\" pulumi-lang-python=\"`server_id`\" pulumi-lang-yaml=\"`serverId`\" pulumi-lang-java=\"`serverId`\"\u003e`server_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the baremetal server is associated with.\n"},"serverId":{"type":"string"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServer.\n","properties":{"cloudInit":{"type":"string"},"description":{"type":"string"},"domain":{"type":"string"},"hostname":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"installConfigAfterward":{"type":"boolean"},"ips":{"items":{"$ref":"#/types/scaleway:elasticmetal/getServerIp:getServerIp"},"type":"array"},"ipv4s":{"items":{"$ref":"#/types/scaleway:elasticmetal/getServerIpv4:getServerIpv4"},"type":"array"},"ipv6s":{"items":{"$ref":"#/types/scaleway:elasticmetal/getServerIpv6:getServerIpv6"},"type":"array"},"name":{"type":"string"},"offer":{"type":"string"},"offerId":{"type":"string"},"offerName":{"type":"string"},"options":{"items":{"$ref":"#/types/scaleway:elasticmetal/getServerOption:getServerOption"},"type":"array"},"organizationId":{"type":"string"},"os":{"type":"string"},"osName":{"type":"string"},"partitioning":{"type":"string"},"password":{"type":"string"},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"integer"},"privateIps":{"items":{"$ref":"#/types/scaleway:elasticmetal/getServerPrivateIp:getServerPrivateIp"},"type":"array"},"privateNetworks":{"items":{"$ref":"#/types/scaleway:elasticmetal/getServerPrivateNetwork:getServerPrivateNetwork"},"type":"array"},"projectId":{"type":"string"},"protected":{"type":"boolean"},"reinstallOnConfigChanges":{"type":"boolean"},"serverId":{"type":"string"},"servicePassword":{"type":"string"},"servicePasswordWo":{"type":"string"},"servicePasswordWoVersion":{"type":"integer"},"serviceUser":{"type":"string"},"sshKeyIds":{"items":{"type":"string"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"user":{"type":"string"},"zone":{"type":"string"}},"required":["cloudInit","description","domain","hostname","installConfigAfterward","ips","ipv4s","ipv6s","offer","offerId","offerName","options","organizationId","os","osName","partitioning","password","passwordWo","passwordWoVersion","privateIps","privateNetworks","protected","reinstallOnConfigChanges","servicePassword","servicePasswordWo","servicePasswordWoVersion","serviceUser","sshKeyIds","tags","user","id"],"type":"object"}},"scaleway:functions/getFunction:getFunction":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Function`\" pulumi-lang-dotnet=\"`scaleway.functions.Function`\" pulumi-lang-go=\"`functions.Function`\" pulumi-lang-python=\"`functions.Function`\" pulumi-lang-yaml=\"`scaleway.functions.Function`\" pulumi-lang-java=\"`scaleway.functions.Function`\"\u003e`scaleway.functions.Function`\u003c/span\u003e data source is used to retrieve information about a Serverless Function.\n\nRefer to the Serverless Functions [product documentation](https://www.scaleway.com/en/docs/serverless/functions/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/) for more information.\n\nFor more information on the limitations of Serverless Functions, refer to the [dedicated documentation](https://www.scaleway.com/en/docs/compute/functions/reference-content/functions-limitations/).\n\n","inputs":{"description":"A collection of arguments for invoking getFunction.\n","properties":{"functionId":{"type":"string","description":"The unique identifier of the function. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e should be specified.\n"},"name":{"type":"string","description":"The name of the function. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e should be specified.\n"},"namespaceId":{"type":"string","description":"The namespace ID associated with this function.\n"},"projectId":{"type":"string","description":"The unique identifier of the project with which the function is associated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container exists.\n"}},"type":"object","required":["namespaceId"]},"outputs":{"description":"A collection of values returned by getFunction.\n","properties":{"cpuLimit":{"type":"integer"},"deploy":{"type":"boolean"},"description":{"type":"string"},"domainName":{"type":"string"},"environmentVariables":{"additionalProperties":{"type":"string"},"type":"object"},"functionId":{"type":"string"},"handler":{"type":"string"},"httpOption":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"maxScale":{"type":"integer"},"memoryLimit":{"type":"integer"},"minScale":{"type":"integer"},"name":{"type":"string"},"namespaceId":{"type":"string"},"organizationId":{"type":"string"},"privacy":{"type":"string"},"privateNetworkId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"runtime":{"type":"string"},"sandbox":{"type":"string"},"secretEnvironmentVariables":{"additionalProperties":{"type":"string"},"type":"object"},"tags":{"items":{"type":"string"},"type":"array"},"timeout":{"type":"integer"},"zipFile":{"type":"string"},"zipHash":{"type":"string"}},"required":["cpuLimit","deploy","description","domainName","environmentVariables","handler","httpOption","maxScale","memoryLimit","minScale","namespaceId","organizationId","privacy","privateNetworkId","runtime","sandbox","secretEnvironmentVariables","tags","timeout","zipFile","zipHash","id"],"type":"object"}},"scaleway:functions/getNamespace:getNamespace":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Namespace`\" pulumi-lang-dotnet=\"`scaleway.functions.Namespace`\" pulumi-lang-go=\"`functions.Namespace`\" pulumi-lang-python=\"`functions.Namespace`\" pulumi-lang-yaml=\"`scaleway.functions.Namespace`\" pulumi-lang-java=\"`scaleway.functions.Namespace`\"\u003e`scaleway.functions.Namespace`\u003c/span\u003e data source is used to retrieve information about a Serverless Functions namespace.\n\nRefer to the Serverless Functions [product documentation](https://www.scaleway.com/en/docs/serverless/functions/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/) for more information.\n\n","inputs":{"description":"A collection of arguments for invoking getNamespace.\n","properties":{"name":{"type":"string","description":"The name of the namespace. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e should be specified.\n"},"namespaceId":{"type":"string","description":"The unique identifier of the namespace. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project with which the namespace is associated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the namespace exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNamespace.\n","properties":{"activateVpcIntegration":{"type":"boolean"},"description":{"description":"The description of the namespace.\n","type":"string"},"environmentVariables":{"additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n","type":"object"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"namespaceId":{"type":"string"},"organizationId":{"description":"The unique identifier of the organization with which the namespace is associated.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"registryEndpoint":{"description":"The registry endpoint of the namespace.\n","type":"string"},"registryNamespaceId":{"description":"The unique identifier of the registry namespace of the Serverless Functions namespace.\n","type":"string"},"secretEnvironmentVariables":{"additionalProperties":{"type":"string"},"type":"object"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["activateVpcIntegration","description","environmentVariables","organizationId","registryEndpoint","registryNamespaceId","secretEnvironmentVariables","tags","id"],"type":"object"}},"scaleway:hosting/getHosting:getHosting":{"description":"Gets information about a webhosting.\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\n// Get info by offer domain\nconst byDomain = scaleway.hosting.getHosting({\n    domain: \"foobar.com\",\n});\n// Get info by id\nconst byId = scaleway.hosting.getHosting({\n    webhostingId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by offer domain\nby_domain = scaleway.hosting.get_hosting(domain=\"foobar.com\")\n# Get info by id\nby_id = scaleway.hosting.get_hosting(webhosting_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    // Get info by offer domain\n    var byDomain = Scaleway.Hosting.GetHosting.Invoke(new()\n    {\n        Domain = \"foobar.com\",\n    });\n\n    // Get info by id\n    var byId = Scaleway.Hosting.GetHosting.Invoke(new()\n    {\n        WebhostingId = \"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/hosting\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by offer domain\n\t\t_, err := hosting.LookupHosting(ctx, \u0026hosting.LookupHostingArgs{\n\t\t\tDomain: pulumi.StringRef(\"foobar.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by id\n\t\t_, err = hosting.LookupHosting(ctx, \u0026hosting.LookupHostingArgs{\n\t\t\tWebhostingId: 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.hosting.HostingFunctions;\nimport com.pulumi.scaleway.hosting.inputs.GetHostingArgs;\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        // Get info by offer domain\n        final var byDomain = HostingFunctions.getHosting(GetHostingArgs.builder()\n            .domain(\"foobar.com\")\n            .build());\n\n        // Get info by id\n        final var byId = HostingFunctions.getHosting(GetHostingArgs.builder()\n            .webhostingId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by offer domain\n  byDomain:\n    fn::invoke:\n      function: scaleway:hosting:getHosting\n      arguments:\n        domain: foobar.com\n  # Get info by id\n  byId:\n    fn::invoke:\n      function: scaleway:hosting:getHosting\n      arguments:\n        webhostingId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getHosting.\n","properties":{"domain":{"type":"string","description":"The hosting domain name. Only one of \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`webhostingId`\" pulumi-lang-dotnet=\"`WebhostingId`\" pulumi-lang-go=\"`webhostingId`\" pulumi-lang-python=\"`webhosting_id`\" pulumi-lang-yaml=\"`webhostingId`\" pulumi-lang-java=\"`webhostingId`\"\u003e`webhosting_id`\u003c/span\u003e should be specified.\n"},"organizationId":{"type":"string","description":"The ID of the organization the hosting is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the hosting is associated with.\n"},"webhostingId":{"type":"string","description":"The hosting id. Only one of \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`webhostingId`\" pulumi-lang-dotnet=\"`WebhostingId`\" pulumi-lang-go=\"`webhostingId`\" pulumi-lang-python=\"`webhosting_id`\" pulumi-lang-yaml=\"`webhostingId`\" pulumi-lang-java=\"`webhostingId`\"\u003e`webhosting_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHosting.\n","properties":{"cpanelUrls":{"items":{"$ref":"#/types/scaleway:hosting/getHostingCpanelUrl:getHostingCpanelUrl"},"type":"array"},"createdAt":{"type":"string"},"dnsStatus":{"type":"string"},"domain":{"type":"string"},"email":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"nameServers":{"items":{"$ref":"#/types/scaleway:hosting/getHostingNameServer:getHostingNameServer"},"type":"array"},"offerId":{"type":"string"},"offerName":{"type":"string"},"optionIds":{"items":{"type":"string"},"type":"array"},"options":{"items":{"$ref":"#/types/scaleway:hosting/getHostingOption:getHostingOption"},"type":"array"},"organizationId":{"type":"string"},"platformHostname":{"type":"string"},"platformNumber":{"type":"integer"},"projectId":{"type":"string"},"records":{"items":{"$ref":"#/types/scaleway:hosting/getHostingRecord:getHostingRecord"},"type":"array"},"region":{"type":"string"},"status":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"username":{"type":"string"},"webhostingId":{"type":"string"}},"required":["cpanelUrls","createdAt","dnsStatus","email","nameServers","offerId","offerName","optionIds","options","organizationId","platformHostname","platformNumber","records","region","status","tags","updatedAt","username","id"],"type":"object"}},"scaleway:hosting/getOffer:getOffer":{"description":"Gets information about a webhosting offer.\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\n// Get info by offer name\nconst byName = scaleway.hosting.getOffer({\n    name: \"performance\",\n    controlPanel: \"Cpanel\",\n});\n// Get info by offer id\nconst byId = scaleway.hosting.getOffer({\n    offerId: \"de2426b4-a9e9-11ec-b909-0242ac120002\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by offer name\nby_name = scaleway.hosting.get_offer(name=\"performance\",\n    control_panel=\"Cpanel\")\n# Get info by offer id\nby_id = scaleway.hosting.get_offer(offer_id=\"de2426b4-a9e9-11ec-b909-0242ac120002\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by offer name\n    var byName = Scaleway.Hosting.GetOffer.Invoke(new()\n    {\n        Name = \"performance\",\n        ControlPanel = \"Cpanel\",\n    });\n\n    // Get info by offer id\n    var byId = Scaleway.Hosting.GetOffer.Invoke(new()\n    {\n        OfferId = \"de2426b4-a9e9-11ec-b909-0242ac120002\",\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/hosting\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by offer name\n\t\t_, err := hosting.GetOffer(ctx, \u0026hosting.GetOfferArgs{\n\t\t\tName:         pulumi.StringRef(\"performance\"),\n\t\t\tControlPanel: pulumi.StringRef(\"Cpanel\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by offer id\n\t\t_, err = hosting.GetOffer(ctx, \u0026hosting.GetOfferArgs{\n\t\t\tOfferId: pulumi.StringRef(\"de2426b4-a9e9-11ec-b909-0242ac120002\"),\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.hosting.HostingFunctions;\nimport com.pulumi.scaleway.hosting.inputs.GetOfferArgs;\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        // Get info by offer name\n        final var byName = HostingFunctions.getOffer(GetOfferArgs.builder()\n            .name(\"performance\")\n            .controlPanel(\"Cpanel\")\n            .build());\n\n        // Get info by offer id\n        final var byId = HostingFunctions.getOffer(GetOfferArgs.builder()\n            .offerId(\"de2426b4-a9e9-11ec-b909-0242ac120002\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by offer name\n  byName:\n    fn::invoke:\n      function: scaleway:hosting:getOffer\n      arguments:\n        name: performance\n        controlPanel: Cpanel\n  # Get info by offer id\n  byId:\n    fn::invoke:\n      function: scaleway:hosting:getOffer\n      arguments:\n        offerId: de2426b4-a9e9-11ec-b909-0242ac120002\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOffer.\n","properties":{"controlPanel":{"type":"string","description":"Name of the control panel (Cpanel or Plesk). This argument is only used when \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e is not specified.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"offerId":{"type":"string","description":"The offer id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which offer exists.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getOffer.\n","properties":{"billingOperationPath":{"description":"The billing operation identifier for the option.\n","type":"string"},"controlPanel":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the option.\n","type":"string"},"offerId":{"type":"string"},"offers":{"description":"The detailed offer of the hosting.\n","items":{"$ref":"#/types/scaleway:hosting/getOfferOffer:getOfferOffer"},"type":"array"},"price":{"description":"The offer price.\n","type":"string"},"products":{"deprecationMessage":"The product field is deprecated. Please use the offer field instead.","description":"(deprecated) The offer product.\n","items":{"$ref":"#/types/scaleway:hosting/getOfferProduct:getOfferProduct"},"type":"array"},"region":{"type":"string"}},"required":["billingOperationPath","offers","price","products","id"],"type":"object"}},"scaleway:iam/getApiKey:getApiKey":{"description":"Gets information about an existing IAM API key. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get api key infos by id (access_key)\nconst main = scaleway.iam.getApiKey({\n    accessKey: \"SCWABCDEFGHIJKLMNOPQ\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get api key infos by id (access_key)\nmain = scaleway.iam.get_api_key(access_key=\"SCWABCDEFGHIJKLMNOPQ\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get api key infos by id (access_key)\n    var main = Scaleway.Iam.GetApiKey.Invoke(new()\n    {\n        AccessKey = \"SCWABCDEFGHIJKLMNOPQ\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get api key infos by id (access_key)\n\t\t_, err := iam.LookupApiKey(ctx, \u0026iam.LookupApiKeyArgs{\n\t\t\tAccessKey: \"SCWABCDEFGHIJKLMNOPQ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetApiKeyArgs;\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        // Get api key infos by id (access_key)\n        final var main = IamFunctions.getApiKey(GetApiKeyArgs.builder()\n            .accessKey(\"SCWABCDEFGHIJKLMNOPQ\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get api key infos by id (access_key)\n  main:\n    fn::invoke:\n      function: scaleway:iam:getApiKey\n      arguments:\n        accessKey: SCWABCDEFGHIJKLMNOPQ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApiKey.\n","properties":{"accessKey":{"type":"string","description":"The access key of the IAM API key which is also the ID of the API key.\n"}},"type":"object","required":["accessKey"]},"outputs":{"description":"A collection of values returned by getApiKey.\n","properties":{"accessKey":{"type":"string"},"applicationId":{"type":"string"},"createdAt":{"type":"string"},"creationIp":{"type":"string"},"defaultProjectId":{"type":"string"},"description":{"type":"string"},"editable":{"type":"boolean"},"expiresAt":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"updatedAt":{"type":"string"},"userId":{"type":"string"}},"required":["accessKey","applicationId","createdAt","creationIp","defaultProjectId","description","editable","expiresAt","updatedAt","userId","id"],"type":"object"}},"scaleway:iam/getApplication:getApplication":{"description":"Gets information about an existing IAM application.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by name\nconst findByName = scaleway.iam.getApplication({\n    name: \"foobar\",\n});\n// Get info by application ID\nconst findById = scaleway.iam.getApplication({\n    applicationId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nfind_by_name = scaleway.iam.get_application(name=\"foobar\")\n# Get info by application ID\nfind_by_id = scaleway.iam.get_application(application_id=\"11111111-1111-1111-1111-111111111111\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by name\n    var findByName = Scaleway.Iam.GetApplication.Invoke(new()\n    {\n        Name = \"foobar\",\n    });\n\n    // Get info by application ID\n    var findById = Scaleway.Iam.GetApplication.Invoke(new()\n    {\n        ApplicationId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := iam.LookupApplication(ctx, \u0026iam.LookupApplicationArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by application ID\n\t\t_, err = iam.LookupApplication(ctx, \u0026iam.LookupApplicationArgs{\n\t\t\tApplicationId: pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetApplicationArgs;\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        // Get info by name\n        final var findByName = IamFunctions.getApplication(GetApplicationArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n        // Get info by application ID\n        final var findById = IamFunctions.getApplication(GetApplicationArgs.builder()\n            .applicationId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  findByName:\n    fn::invoke:\n      function: scaleway:iam:getApplication\n      arguments:\n        name: foobar\n  # Get info by application ID\n  findById:\n    fn::invoke:\n      function: scaleway:iam:getApplication\n      arguments:\n        applicationId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApplication.\n","properties":{"applicationId":{"type":"string","description":"The ID of the IAM application.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the IAM application.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the\nOrganization the application is associated with.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getApplication.\n","properties":{"applicationId":{"type":"string"},"createdAt":{"type":"string"},"description":{"type":"string"},"editable":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"}},"required":["createdAt","description","editable","tags","updatedAt","id"],"type":"object"}},"scaleway:iam/getGroup:getGroup":{"description":"Gets information about an existing IAM group.\n\nFor more information, refer to the [IAM API documentation](https://developers.scaleway.com/en/products/iam/api/v1alpha1/#applications-83ce5e)\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\n// Get info by name\nconst findByName = scaleway.iam.getGroup({\n    name: \"foobar\",\n});\n// Get info by group ID\nconst findById = scaleway.iam.getGroup({\n    groupId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nfind_by_name = scaleway.iam.get_group(name=\"foobar\")\n# Get info by group ID\nfind_by_id = scaleway.iam.get_group(group_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    // Get info by name\n    var findByName = Scaleway.Iam.GetGroup.Invoke(new()\n    {\n        Name = \"foobar\",\n    });\n\n    // Get info by group ID\n    var findById = Scaleway.Iam.GetGroup.Invoke(new()\n    {\n        GroupId = \"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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := iam.LookupGroup(ctx, \u0026iam.LookupGroupArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by group ID\n\t\t_, err = iam.LookupGroup(ctx, \u0026iam.LookupGroupArgs{\n\t\t\tGroupId: 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.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetGroupArgs;\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        // Get info by name\n        final var findByName = IamFunctions.getGroup(GetGroupArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n        // Get info by group ID\n        final var findById = IamFunctions.getGroup(GetGroupArgs.builder()\n            .groupId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  findByName:\n    fn::invoke:\n      function: scaleway:iam:getGroup\n      arguments:\n        name: foobar\n  # Get info by group ID\n  findById:\n    fn::invoke:\n      function: scaleway:iam:getGroup\n      arguments:\n        groupId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroup.\n","properties":{"groupId":{"type":"string","description":"The ID of the IAM group.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the IAM group.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the\norganization the group is associated with.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGroup.\n","properties":{"applicationIds":{"items":{"type":"string"},"type":"array"},"createdAt":{"type":"string"},"description":{"type":"string"},"externalMembership":{"type":"boolean"},"groupId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"userIds":{"items":{"type":"string"},"type":"array"}},"required":["applicationIds","createdAt","description","externalMembership","tags","updatedAt","userIds","id"],"type":"object"}},"scaleway:iam/getPolicy:getPolicy":{"description":"Use this data source to get information on an existing IAM policy based on its ID.\nFor more information refer to the [IAM API documentation](https://developers.scaleway.com/en/products/iam/api/).\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\n// Get policy by id\nconst findById = scaleway.iam.getPolicy({\n    policyId: \"11111111-1111-1111-1111-111111111111\",\n});\n// Get policy by name\nconst findByName = scaleway.iam.getPolicy({\n    name: \"my_policy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get policy by id\nfind_by_id = scaleway.iam.get_policy(policy_id=\"11111111-1111-1111-1111-111111111111\")\n# Get policy by name\nfind_by_name = scaleway.iam.get_policy(name=\"my_policy\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get policy by id\n    var findById = Scaleway.Iam.GetPolicy.Invoke(new()\n    {\n        PolicyId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    // Get policy by name\n    var findByName = Scaleway.Iam.GetPolicy.Invoke(new()\n    {\n        Name = \"my_policy\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get policy by id\n\t\t_, err := iam.LookupPolicy(ctx, \u0026iam.LookupPolicyArgs{\n\t\t\tPolicyId: 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\t// Get policy by name\n\t\t_, err = iam.LookupPolicy(ctx, \u0026iam.LookupPolicyArgs{\n\t\t\tName: pulumi.StringRef(\"my_policy\"),\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.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetPolicyArgs;\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        // Get policy by id\n        final var findById = IamFunctions.getPolicy(GetPolicyArgs.builder()\n            .policyId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        // Get policy by name\n        final var findByName = IamFunctions.getPolicy(GetPolicyArgs.builder()\n            .name(\"my_policy\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get policy by id\n  findById:\n    fn::invoke:\n      function: scaleway:iam:getPolicy\n      arguments:\n        policyId: 11111111-1111-1111-1111-111111111111\n  # Get policy by name\n  findByName:\n    fn::invoke:\n      function: scaleway:iam:getPolicy\n      arguments:\n        name: my_policy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPolicy.\n","properties":{"name":{"type":"string","description":"The name of the IAM policy.\n"},"policyId":{"type":"string","description":"The ID of the IAM policy.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`policyId`\" pulumi-lang-dotnet=\"`PolicyId`\" pulumi-lang-go=\"`policyId`\" pulumi-lang-python=\"`policy_id`\" pulumi-lang-yaml=\"`policyId`\" pulumi-lang-java=\"`policyId`\"\u003e`policy_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPolicy.\n","properties":{"applicationId":{"description":"ID of the application the policy is linked to\n","type":"string"},"createdAt":{"description":"The date and time of the creation of the policy.\n","type":"string"},"description":{"description":"The description of the IAM policy.\n","type":"string"},"editable":{"description":"Whether the policy is editable.\n","type":"boolean"},"groupId":{"description":"ID of the group the policy is linked to\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"noPrincipal":{"description":"If the policy doesn't apply to a principal.\n","type":"boolean"},"organizationId":{"description":"ID of organization scoped to the rule.\n","type":"string"},"policyId":{"type":"string"},"rules":{"description":"List of rules in the policy.\n","items":{"$ref":"#/types/scaleway:iam/getPolicyRule:getPolicyRule"},"type":"array"},"tags":{"description":"The tags associated with the IAM policy.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"The date and time of the last update of the policy.\n","type":"string"},"userId":{"description":"ID of the user the policy is linked to\n","type":"string"}},"required":["applicationId","createdAt","description","editable","groupId","noPrincipal","organizationId","rules","tags","updatedAt","userId","id"],"type":"object"}},"scaleway:iam/getSshKey:getSshKey":{"description":"Use this data source to get SSH key information based on its ID or name.\n\n","inputs":{"description":"A collection of arguments for invoking getSshKey.\n","properties":{"name":{"type":"string","description":"The SSH key name.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH\nkey is associated with.\n"},"sshKeyId":{"type":"string","description":"The SSH key id.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`sshKeyId`\" pulumi-lang-dotnet=\"`SshKeyId`\" pulumi-lang-go=\"`sshKeyId`\" pulumi-lang-python=\"`ssh_key_id`\" pulumi-lang-yaml=\"`sshKeyId`\" pulumi-lang-java=\"`sshKeyId`\"\u003e`ssh_key_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSshKey.\n","properties":{"createdAt":{"description":"The date and time of the creation of the SSH key.\n","type":"string"},"disabled":{"description":"The SSH key status.\n","type":"boolean"},"fingerprint":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The ID of the organization the SSH key is associated with.\n","type":"string"},"projectId":{"type":"string"},"publicKey":{"description":"The SSH public key string\n","type":"string"},"sshKeyId":{"type":"string"},"updatedAt":{"description":"The date and time of the last update of the SSH key.\n","type":"string"}},"required":["createdAt","disabled","fingerprint","organizationId","publicKey","updatedAt","id"],"type":"object"}},"scaleway:iam/getUser:getUser":{"description":"Use this data source to get information on an existing IAM user based on its ID or email address.\nFor more information refer to the [IAM API documentation](https://developers.scaleway.com/en/products/iam/api/v1alpha1/#users-06bdcf).\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\n// Get info by user id\nconst findById = scaleway.iam.getUser({\n    userId: \"11111111-1111-1111-1111-111111111111\",\n});\n// Get info by email address\nconst findByEmail = scaleway.iam.getUser({\n    email: \"foo@bar.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by user id\nfind_by_id = scaleway.iam.get_user(user_id=\"11111111-1111-1111-1111-111111111111\")\n# Get info by email address\nfind_by_email = scaleway.iam.get_user(email=\"foo@bar.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by user id\n    var findById = Scaleway.Iam.GetUser.Invoke(new()\n    {\n        UserId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    // Get info by email address\n    var findByEmail = Scaleway.Iam.GetUser.Invoke(new()\n    {\n        Email = \"foo@bar.com\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by user id\n\t\t_, err := iam.LookupUser(ctx, \u0026iam.LookupUserArgs{\n\t\t\tUserId: 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\t// Get info by email address\n\t\t_, err = iam.LookupUser(ctx, \u0026iam.LookupUserArgs{\n\t\t\tEmail: pulumi.StringRef(\"foo@bar.com\"),\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.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetUserArgs;\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        // Get info by user id\n        final var findById = IamFunctions.getUser(GetUserArgs.builder()\n            .userId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        // Get info by email address\n        final var findByEmail = IamFunctions.getUser(GetUserArgs.builder()\n            .email(\"foo@bar.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by user id\n  findById:\n    fn::invoke:\n      function: scaleway:iam:getUser\n      arguments:\n        userId: 11111111-1111-1111-1111-111111111111\n  # Get info by email address\n  findByEmail:\n    fn::invoke:\n      function: scaleway:iam:getUser\n      arguments:\n        email: foo@bar.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUser.\n","properties":{"email":{"type":"string","description":"The email address of the IAM user.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the\norganization the user is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the user.\n"},"userId":{"type":"string","description":"The ID of the IAM user.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getUser.\n","properties":{"email":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"tags":{"description":"The tags associated with the user.\n","items":{"type":"string"},"type":"array"},"userId":{"type":"string"}},"required":["id"],"type":"object"}},"scaleway:index/getAccountProject:getAccountProject":{"deprecationMessage":"scaleway.index/getaccountproject.getAccountProject has been deprecated in favor of scaleway.account/getproject.getProject","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.account.Project`\" pulumi-lang-dotnet=\"`scaleway.account.Project`\" pulumi-lang-go=\"`account.Project`\" pulumi-lang-python=\"`account.Project`\" pulumi-lang-yaml=\"`scaleway.account.Project`\" pulumi-lang-java=\"`scaleway.account.Project`\"\u003e`scaleway.account.Project`\u003c/span\u003e data source is used to retrieve information about a Scaleway project.\n\nRefer to the Organizations and Projects [documentation](https://www.scaleway.com/en/docs/organizations-and-projects/) and [API documentation](https://www.scaleway.com/en/developers/api/account/project-api/) for more information.\n\n","inputs":{"description":"A collection of arguments for invoking getAccountProject.\n","properties":{"name":{"type":"string","description":"The name of the Project.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e should be specified.\n"},"organizationId":{"type":"string","description":"The unique identifier of the Organization with which the Project is associated.\n\nIf no default \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e is set, one must be set explicitly in this datasource\n"},"projectId":{"type":"string","description":"The unique identifier of the Project.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccountProject.\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"updatedAt":{"type":"string"}},"required":["createdAt","description","projectId","updatedAt","id"],"type":"object"}},"scaleway:index/getAccountSshKey:getAccountSshKey":{"deprecationMessage":"scaleway.index/getaccountsshkey.getAccountSshKey has been deprecated in favor of scaleway.account/getsshkey.getSshKey","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.account.SshKey`\" pulumi-lang-dotnet=\"`scaleway.account.SshKey`\" pulumi-lang-go=\"`account.SshKey`\" pulumi-lang-python=\"`account.SshKey`\" pulumi-lang-yaml=\"`scaleway.account.SshKey`\" pulumi-lang-java=\"`scaleway.account.SshKey`\"\u003e`scaleway.account.SshKey`\u003c/span\u003e data source is used to retrieve information about a the SSH key of a Scaleway account.\n\nRefer to the Organizations and Projects [documentation](https://www.scaleway.com/en/docs/organizations-and-projects/how-to/create-ssh-key/) and [API documentation](https://www.scaleway.com/en/developers/api/iam/#path-ssh-keys) for more information.\n\n","inputs":{"description":"A collection of arguments for invoking getAccountSshKey.\n","properties":{"name":{"type":"string","description":"The name of the SSH key.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project with which the SSH key is associated.\n"},"sshKeyId":{"type":"string","description":"The unique identifier of the SSH key.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`sshKeyId`\" pulumi-lang-dotnet=\"`SshKeyId`\" pulumi-lang-go=\"`sshKeyId`\" pulumi-lang-python=\"`ssh_key_id`\" pulumi-lang-yaml=\"`sshKeyId`\" pulumi-lang-java=\"`sshKeyId`\"\u003e`ssh_key_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAccountSshKey.\n","properties":{"createdAt":{"type":"string"},"disabled":{"type":"boolean"},"fingerprint":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The unique identifier of the Organization with which the SSH key is associated.\n","type":"string"},"projectId":{"type":"string"},"publicKey":{"description":"The string of the SSH public key.\n","type":"string"},"sshKeyId":{"type":"string"},"updatedAt":{"type":"string"}},"required":["createdAt","disabled","fingerprint","organizationId","publicKey","updatedAt","id"],"type":"object"}},"scaleway:index/getAvailabilityZones:getAvailabilityZones":{"deprecationMessage":"scaleway.index/getavailabilityzones.getAvailabilityZones has been deprecated in favor of scaleway.account/getavailabilityzones.getAvailabilityZones","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.account.getAvailabilityZones`\" pulumi-lang-dotnet=\"`scaleway.account.getAvailabilityZones`\" pulumi-lang-go=\"`account.getAvailabilityZones`\" pulumi-lang-python=\"`account_get_availability_zones`\" pulumi-lang-yaml=\"`scaleway.account.getAvailabilityZones`\" pulumi-lang-java=\"`scaleway.account.getAvailabilityZones`\"\u003e`scaleway.account.getAvailabilityZones`\u003c/span\u003e data source is used to retrieve information about the available zones based on its Region.\n\nFor technical and legal reasons, some products are split by Region or by Availability Zones. When using such product,\nyou can choose the location that better fits your need (country, latency, etc.).\n\nRefer to the Account [documentation](https://www.scaleway.com/en/docs/console/account/reference-content/products-availability/) for more information.\n\n## Retrieve the Availability Zones of a Region\n\nThe following command allow you to retrieve a the AZs of a Region.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by Region key\nconst main = scaleway.account.getAvailabilityZones({\n    region: \"nl-ams\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by Region key\nmain = scaleway.account.get_availability_zones(region=\"nl-ams\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by Region key\n    var main = Scaleway.Account.GetAvailabilityZones.Invoke(new()\n    {\n        Region = \"nl-ams\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/account\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by Region key\n\t\t_, err := account.GetAvailabilityZones(ctx, \u0026account.GetAvailabilityZonesArgs{\n\t\t\tRegion: pulumi.StringRef(\"nl-ams\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.account.AccountFunctions;\nimport com.pulumi.scaleway.account.inputs.GetAvailabilityZonesArgs;\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        // Get info by Region key\n        final var main = AccountFunctions.getAvailabilityZones(GetAvailabilityZonesArgs.builder()\n            .region(\"nl-ams\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by Region key\n  main:\n    fn::invoke:\n      function: scaleway:account:getAvailabilityZones\n      arguments:\n        region: nl-ams\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAvailabilityZones.\n","properties":{"region":{"type":"string","description":"Region is represented as a Geographical area, such as France. Defaults to `fr-par`.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAvailabilityZones.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"region":{"type":"string"},"zones":{"description":"The list of availability zones in each Region\n","items":{"type":"string"},"type":"array"}},"required":["zones","id"],"type":"object"}},"scaleway:index/getBaremetalOffer:getBaremetalOffer":{"deprecationMessage":"scaleway.index/getbaremetaloffer.getBaremetalOffer has been deprecated in favor of scaleway.elasticmetal/getoffer.getOffer","description":"Gets information about a baremetal offer. For more information, see the [API documentation](https://developers.scaleway.com/en/products/baremetal/api).\n\n","inputs":{"description":"A collection of arguments for invoking getBaremetalOffer.\n","properties":{"includeDisabled":{"type":"boolean","description":"Include disabled offers.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"offerId":{"type":"string","description":"The offer id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"subscriptionPeriod":{"type":"string","description":"Period of subscription the desired offer. Should be \u003cspan pulumi-lang-nodejs=\"`hourly`\" pulumi-lang-dotnet=\"`Hourly`\" pulumi-lang-go=\"`hourly`\" pulumi-lang-python=\"`hourly`\" pulumi-lang-yaml=\"`hourly`\" pulumi-lang-java=\"`hourly`\"\u003e`hourly`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`monthly`\" pulumi-lang-dotnet=\"`Monthly`\" pulumi-lang-go=\"`monthly`\" pulumi-lang-python=\"`monthly`\" pulumi-lang-yaml=\"`monthly`\" pulumi-lang-java=\"`monthly`\"\u003e`monthly`\u003c/span\u003e.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the offer should be created.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getBaremetalOffer.\n","properties":{"bandwidth":{"description":"Available Bandwidth with the offer.\n","type":"integer"},"commercialRange":{"description":"Commercial range of the offer.\n","type":"string"},"cpu":{"$ref":"#/types/scaleway:index/getBaremetalOfferCpu:getBaremetalOfferCpu","description":"A list of cpu specifications. (Structure is documented below.)\n"},"disks":{"description":"A list of disk specifications. (Structure is documented below.)\n","items":{"$ref":"#/types/scaleway:index/getBaremetalOfferDisk:getBaremetalOfferDisk"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"includeDisabled":{"type":"boolean"},"memories":{"description":"A list of memory specifications. (Structure is documented below.)\n","items":{"$ref":"#/types/scaleway:index/getBaremetalOfferMemory:getBaremetalOfferMemory"},"type":"array"},"name":{"description":"Name of the CPU.\n","type":"string"},"offerId":{"type":"string"},"stock":{"description":"Stock status for this offer. Possible values are: \u003cspan pulumi-lang-nodejs=\"`empty`\" pulumi-lang-dotnet=\"`Empty`\" pulumi-lang-go=\"`empty`\" pulumi-lang-python=\"`empty`\" pulumi-lang-yaml=\"`empty`\" pulumi-lang-java=\"`empty`\"\u003e`empty`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`low`\" pulumi-lang-dotnet=\"`Low`\" pulumi-lang-go=\"`low`\" pulumi-lang-python=\"`low`\" pulumi-lang-yaml=\"`low`\" pulumi-lang-java=\"`low`\"\u003e`low`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`available`\" pulumi-lang-dotnet=\"`Available`\" pulumi-lang-go=\"`available`\" pulumi-lang-python=\"`available`\" pulumi-lang-yaml=\"`available`\" pulumi-lang-java=\"`available`\"\u003e`available`\u003c/span\u003e.\n","type":"string"},"subscriptionPeriod":{"type":"string"},"zone":{"type":"string"}},"required":["bandwidth","commercialRange","cpu","disks","memories","stock","id"],"type":"object"}},"scaleway:index/getBaremetalOption:getBaremetalOption":{"deprecationMessage":"scaleway.index/getbaremetaloption.getBaremetalOption has been deprecated in favor of scaleway.elasticmetal/getoption.getOption","description":"Gets information about a baremetal option.\nFor more information, see the [API documentation](https://developers.scaleway.com/en/products/baremetal/api).\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\n// Get info by option name\nconst byName = scaleway.elasticmetal.getOption({\n    name: \"Remote Access\",\n});\n// Get info by option id\nconst byId = scaleway.elasticmetal.getOption({\n    optionId: \"931df052-d713-4674-8b58-96a63244c8e2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by option name\nby_name = scaleway.elasticmetal.get_option(name=\"Remote Access\")\n# Get info by option id\nby_id = scaleway.elasticmetal.get_option(option_id=\"931df052-d713-4674-8b58-96a63244c8e2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by option name\n    var byName = Scaleway.Elasticmetal.GetOption.Invoke(new()\n    {\n        Name = \"Remote Access\",\n    });\n\n    // Get info by option id\n    var byId = Scaleway.Elasticmetal.GetOption.Invoke(new()\n    {\n        OptionId = \"931df052-d713-4674-8b58-96a63244c8e2\",\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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by option name\n\t\t_, err := elasticmetal.GetOption(ctx, \u0026elasticmetal.GetOptionArgs{\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// Get info by option id\n\t\t_, err = elasticmetal.GetOption(ctx, \u0026elasticmetal.GetOptionArgs{\n\t\t\tOptionId: pulumi.StringRef(\"931df052-d713-4674-8b58-96a63244c8e2\"),\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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOptionArgs;\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        // Get info by option name\n        final var byName = ElasticmetalFunctions.getOption(GetOptionArgs.builder()\n            .name(\"Remote Access\")\n            .build());\n\n        // Get info by option id\n        final var byId = ElasticmetalFunctions.getOption(GetOptionArgs.builder()\n            .optionId(\"931df052-d713-4674-8b58-96a63244c8e2\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by option name\n  byName:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOption\n      arguments:\n        name: Remote Access\n  # Get info by option id\n  byId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOption\n      arguments:\n        optionId: 931df052-d713-4674-8b58-96a63244c8e2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBaremetalOption.\n","properties":{"name":{"type":"string","description":"The option name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`optionId`\" pulumi-lang-dotnet=\"`OptionId`\" pulumi-lang-go=\"`optionId`\" pulumi-lang-python=\"`option_id`\" pulumi-lang-yaml=\"`optionId`\" pulumi-lang-java=\"`optionId`\"\u003e`option_id`\u003c/span\u003e should be specified.\n"},"optionId":{"type":"string","description":"The option id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`optionId`\" pulumi-lang-dotnet=\"`OptionId`\" pulumi-lang-go=\"`optionId`\" pulumi-lang-python=\"`option_id`\" pulumi-lang-yaml=\"`optionId`\" pulumi-lang-java=\"`optionId`\"\u003e`option_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the option exists.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getBaremetalOption.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"manageable":{"description":"Is false if the option could not be added or removed.\n","type":"boolean"},"name":{"description":"The name of the option.\n","type":"string"},"optionId":{"type":"string"},"zone":{"type":"string"}},"required":["manageable","id"],"type":"object"}},"scaleway:index/getBaremetalOs:getBaremetalOs":{"deprecationMessage":"scaleway.index/getbaremetalos.getBaremetalOs has been deprecated in favor of scaleway.elasticmetal/getos.getOs","description":"Gets information about a baremetal operating system.\nFor more information, see the [API documentation](https://www.scaleway.com/en/developers/api/elastic-metal/#path-os-list-available-oses).\n\nYou can also use the [scaleway-cli](https://github.com/scaleway/scaleway-cli) with `scw baremetal os list` to list all available operating systems.\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\n// Get info by os name and version\nconst byName = scaleway.elasticmetal.getOs({\n    name: \"Ubuntu\",\n    version: \"20.04 LTS (Focal Fossa)\",\n});\n// Get info by os id\nconst byId = scaleway.elasticmetal.getOs({\n    osId: \"03b7f4ba-a6a1-4305-984e-b54fafbf1681\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by os name and version\nby_name = scaleway.elasticmetal.get_os(name=\"Ubuntu\",\n    version=\"20.04 LTS (Focal Fossa)\")\n# Get info by os id\nby_id = scaleway.elasticmetal.get_os(os_id=\"03b7f4ba-a6a1-4305-984e-b54fafbf1681\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by os name and version\n    var byName = Scaleway.Elasticmetal.GetOs.Invoke(new()\n    {\n        Name = \"Ubuntu\",\n        Version = \"20.04 LTS (Focal Fossa)\",\n    });\n\n    // Get info by os id\n    var byId = Scaleway.Elasticmetal.GetOs.Invoke(new()\n    {\n        OsId = \"03b7f4ba-a6a1-4305-984e-b54fafbf1681\",\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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by os name and version\n\t\t_, err := elasticmetal.GetOs(ctx, \u0026elasticmetal.GetOsArgs{\n\t\t\tName:    pulumi.StringRef(\"Ubuntu\"),\n\t\t\tVersion: pulumi.StringRef(\"20.04 LTS (Focal Fossa)\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by os id\n\t\t_, err = elasticmetal.GetOs(ctx, \u0026elasticmetal.GetOsArgs{\n\t\t\tOsId: pulumi.StringRef(\"03b7f4ba-a6a1-4305-984e-b54fafbf1681\"),\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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOsArgs;\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        // Get info by os name and version\n        final var byName = ElasticmetalFunctions.getOs(GetOsArgs.builder()\n            .name(\"Ubuntu\")\n            .version(\"20.04 LTS (Focal Fossa)\")\n            .build());\n\n        // Get info by os id\n        final var byId = ElasticmetalFunctions.getOs(GetOsArgs.builder()\n            .osId(\"03b7f4ba-a6a1-4305-984e-b54fafbf1681\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by os name and version\n  byName:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\n      arguments:\n        name: Ubuntu\n        version: 20.04 LTS (Focal Fossa)\n  # Get info by os id\n  byId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOs\n      arguments:\n        osId: 03b7f4ba-a6a1-4305-984e-b54fafbf1681\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBaremetalOs.\n","properties":{"name":{"type":"string","description":"The os name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`osId`\" pulumi-lang-dotnet=\"`OsId`\" pulumi-lang-go=\"`osId`\" pulumi-lang-python=\"`os_id`\" pulumi-lang-yaml=\"`osId`\" pulumi-lang-java=\"`osId`\"\u003e`os_id`\u003c/span\u003e should be specified.\n"},"osId":{"type":"string","description":"The operating system id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`osId`\" pulumi-lang-dotnet=\"`OsId`\" pulumi-lang-go=\"`osId`\" pulumi-lang-python=\"`os_id`\" pulumi-lang-yaml=\"`osId`\" pulumi-lang-java=\"`osId`\"\u003e`os_id`\u003c/span\u003e should be specified.\n"},"version":{"type":"string","description":"The os version.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the os exists.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getBaremetalOs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"osId":{"type":"string"},"version":{"type":"string"},"zone":{"type":"string"}},"required":["id"],"type":"object"}},"scaleway:index/getBaremetalServer:getBaremetalServer":{"deprecationMessage":"scaleway.index/getbaremetalserver.getBaremetalServer has been deprecated in favor of scaleway.elasticmetal/getserver.getServer","description":"Gets information about a baremetal server.\nFor more information, see the [API documentation](https://developers.scaleway.com/en/products/baremetal/api).\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\n// Get info by server name\nconst byName = scaleway.elasticmetal.getServer({\n    name: \"foobar\",\n    zone: \"fr-par-2\",\n});\n// Get info by server id\nconst byId = scaleway.elasticmetal.getServer({\n    serverId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by server name\nby_name = scaleway.elasticmetal.get_server(name=\"foobar\",\n    zone=\"fr-par-2\")\n# Get info by server id\nby_id = scaleway.elasticmetal.get_server(server_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    // Get info by server name\n    var byName = Scaleway.Elasticmetal.GetServer.Invoke(new()\n    {\n        Name = \"foobar\",\n        Zone = \"fr-par-2\",\n    });\n\n    // Get info by server id\n    var byId = Scaleway.Elasticmetal.GetServer.Invoke(new()\n    {\n        ServerId = \"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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by server name\n\t\t_, err := elasticmetal.LookupServer(ctx, \u0026elasticmetal.LookupServerArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t\tZone: pulumi.StringRef(\"fr-par-2\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by server id\n\t\t_, err = elasticmetal.LookupServer(ctx, \u0026elasticmetal.LookupServerArgs{\n\t\t\tServerId: 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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetServerArgs;\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        // Get info by server name\n        final var byName = ElasticmetalFunctions.getServer(GetServerArgs.builder()\n            .name(\"foobar\")\n            .zone(\"fr-par-2\")\n            .build());\n\n        // Get info by server id\n        final var byId = ElasticmetalFunctions.getServer(GetServerArgs.builder()\n            .serverId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by server name\n  byName:\n    fn::invoke:\n      function: scaleway:elasticmetal:getServer\n      arguments:\n        name: foobar\n        zone: fr-par-2\n  # Get info by server id\n  byId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getServer\n      arguments:\n        serverId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBaremetalServer.\n","properties":{"name":{"type":"string","description":"The server name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`serverId`\" pulumi-lang-dotnet=\"`ServerId`\" pulumi-lang-go=\"`serverId`\" pulumi-lang-python=\"`server_id`\" pulumi-lang-yaml=\"`serverId`\" pulumi-lang-java=\"`serverId`\"\u003e`server_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the baremetal server is associated with.\n"},"serverId":{"type":"string"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBaremetalServer.\n","properties":{"cloudInit":{"type":"string"},"description":{"type":"string"},"domain":{"type":"string"},"hostname":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"installConfigAfterward":{"type":"boolean"},"ips":{"items":{"$ref":"#/types/scaleway:index/getBaremetalServerIp:getBaremetalServerIp"},"type":"array"},"ipv4s":{"items":{"$ref":"#/types/scaleway:index/getBaremetalServerIpv4:getBaremetalServerIpv4"},"type":"array"},"ipv6s":{"items":{"$ref":"#/types/scaleway:index/getBaremetalServerIpv6:getBaremetalServerIpv6"},"type":"array"},"name":{"type":"string"},"offer":{"type":"string"},"offerId":{"type":"string"},"offerName":{"type":"string"},"options":{"items":{"$ref":"#/types/scaleway:index/getBaremetalServerOption:getBaremetalServerOption"},"type":"array"},"organizationId":{"type":"string"},"os":{"type":"string"},"osName":{"type":"string"},"partitioning":{"type":"string"},"password":{"type":"string"},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"integer"},"privateIps":{"items":{"$ref":"#/types/scaleway:index/getBaremetalServerPrivateIp:getBaremetalServerPrivateIp"},"type":"array"},"privateNetworks":{"items":{"$ref":"#/types/scaleway:index/getBaremetalServerPrivateNetwork:getBaremetalServerPrivateNetwork"},"type":"array"},"projectId":{"type":"string"},"protected":{"type":"boolean"},"reinstallOnConfigChanges":{"type":"boolean"},"serverId":{"type":"string"},"servicePassword":{"type":"string"},"servicePasswordWo":{"type":"string"},"servicePasswordWoVersion":{"type":"integer"},"serviceUser":{"type":"string"},"sshKeyIds":{"items":{"type":"string"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"user":{"type":"string"},"zone":{"type":"string"}},"required":["cloudInit","description","domain","hostname","installConfigAfterward","ips","ipv4s","ipv6s","offer","offerId","offerName","options","organizationId","os","osName","partitioning","password","passwordWo","passwordWoVersion","privateIps","privateNetworks","protected","reinstallOnConfigChanges","servicePassword","servicePasswordWo","servicePasswordWoVersion","serviceUser","sshKeyIds","tags","user","id"],"type":"object"}},"scaleway:index/getBillingConsumptions:getBillingConsumptions":{"deprecationMessage":"scaleway.index/getbillingconsumptions.getBillingConsumptions has been deprecated in favor of scaleway.billing/getconsumptions.getConsumptions","description":"Gets information about your Consumptions.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  # Find your detailed monthly consumption list\n  my-consumption:\n    fn::invoke:\n      function: scaleway:billing:getConsumptions\n      arguments:\n        organizationId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBillingConsumptions.\n","properties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the consumption list is associated with.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getBillingConsumptions.\n","properties":{"consumptions":{"description":"List of found consumptions\n","items":{"$ref":"#/types/scaleway:index/getBillingConsumptionsConsumption:getBillingConsumptionsConsumption"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"projectId":{"description":"The project ID of the consumption.\n","type":"string"},"updatedAt":{"description":"The last consumption update date.\n","type":"string"}},"required":["consumptions","organizationId","projectId","updatedAt","id"],"type":"object"}},"scaleway:index/getBillingInvoices:getBillingInvoices":{"deprecationMessage":"scaleway.index/getbillinginvoices.getBillingInvoices has been deprecated in favor of scaleway.billing/getinvoices.getInvoices","description":"Gets information about your Scaleway invoices.\n\n","inputs":{"description":"A collection of arguments for invoking getBillingInvoices.\n","properties":{"invoiceType":{"type":"string","description":"Invoices with the given type are listed. Valid values are \u003cspan pulumi-lang-nodejs=\"`periodic`\" pulumi-lang-dotnet=\"`Periodic`\" pulumi-lang-go=\"`periodic`\" pulumi-lang-python=\"`periodic`\" pulumi-lang-yaml=\"`periodic`\" pulumi-lang-java=\"`periodic`\"\u003e`periodic`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`purchase`\" pulumi-lang-dotnet=\"`Purchase`\" pulumi-lang-go=\"`purchase`\" pulumi-lang-python=\"`purchase`\" pulumi-lang-yaml=\"`purchase`\" pulumi-lang-java=\"`purchase`\"\u003e`purchase`\u003c/span\u003e.\n"},"startedAfter":{"type":"string","description":"Invoices with a start date that are greater or equal to \u003cspan pulumi-lang-nodejs=\"`startedAfter`\" pulumi-lang-dotnet=\"`StartedAfter`\" pulumi-lang-go=\"`startedAfter`\" pulumi-lang-python=\"`started_after`\" pulumi-lang-yaml=\"`startedAfter`\" pulumi-lang-java=\"`startedAfter`\"\u003e`started_after`\u003c/span\u003e are listed (RFC 3339 format).\n"},"startedBefore":{"type":"string","description":"Invoices with a start date that precedes \u003cspan pulumi-lang-nodejs=\"`startedBefore`\" pulumi-lang-dotnet=\"`StartedBefore`\" pulumi-lang-go=\"`startedBefore`\" pulumi-lang-python=\"`started_before`\" pulumi-lang-yaml=\"`startedBefore`\" pulumi-lang-java=\"`startedBefore`\"\u003e`started_before`\u003c/span\u003e are listed (RFC 3339 format).\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBillingInvoices.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"invoiceType":{"description":"The type of invoice.\n","type":"string"},"invoices":{"description":"List of found invoices\n","items":{"$ref":"#/types/scaleway:index/getBillingInvoicesInvoice:getBillingInvoicesInvoice"},"type":"array"},"organizationId":{"type":"string"},"startedAfter":{"type":"string"},"startedBefore":{"type":"string"}},"required":["invoices","organizationId","id"],"type":"object"}},"scaleway:index/getBlockSnapshot:getBlockSnapshot":{"deprecationMessage":"scaleway.index/getblocksnapshot.getBlockSnapshot has been deprecated in favor of scaleway.block/getsnapshot.getSnapshot","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.block.Snapshot`\" pulumi-lang-dotnet=\"`scaleway.block.Snapshot`\" pulumi-lang-go=\"`block.Snapshot`\" pulumi-lang-python=\"`block.Snapshot`\" pulumi-lang-yaml=\"`scaleway.block.Snapshot`\" pulumi-lang-java=\"`scaleway.block.Snapshot`\"\u003e`scaleway.block.Snapshot`\u003c/span\u003e data source is used to retrieve information about a Block Storage volume snapshot.\n\nRefer to the Block Storage [product documentation](https://www.scaleway.com/en/docs/block-storage/) and [API documentation](https://www.scaleway.com/en/developers/api/block/) for more information.\n\n","inputs":{"description":"A collection of arguments for invoking getBlockSnapshot.\n","properties":{"name":{"type":"string","description":"The name of the snapshot. Only one of name or\u003cspan pulumi-lang-nodejs=\" snapshotId \" pulumi-lang-dotnet=\" SnapshotId \" pulumi-lang-go=\" snapshotId \" pulumi-lang-python=\" snapshot_id \" pulumi-lang-yaml=\" snapshotId \" pulumi-lang-java=\" snapshotId \"\u003e snapshot_id \u003c/span\u003eshould be specified.\n"},"projectId":{"type":"string","description":"The unique identifier of the Project to which the snapshot is associated.\n"},"snapshotId":{"type":"string","description":"The unique identifier of the snapshot. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e should be specified.\n"},"volumeId":{"type":"string","description":"The unique identifier of the volume from which the snapshot was created.\n"},"zone":{"type":"string","description":") The zone in which the snapshot exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBlockSnapshot.\n","properties":{"exports":{"items":{"$ref":"#/types/scaleway:index/getBlockSnapshotExport:getBlockSnapshotExport"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imports":{"items":{"$ref":"#/types/scaleway:index/getBlockSnapshotImport:getBlockSnapshotImport"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"string"},"snapshotId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"volumeId":{"type":"string"},"zone":{"type":"string"}},"required":["exports","imports","tags","id"],"type":"object"}},"scaleway:index/getBlockVolume:getBlockVolume":{"deprecationMessage":"scaleway.index/getblockvolume.getBlockVolume has been deprecated in favor of scaleway.block/getvolume.getVolume","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.block.Volume`\" pulumi-lang-dotnet=\"`scaleway.block.Volume`\" pulumi-lang-go=\"`block.Volume`\" pulumi-lang-python=\"`block.Volume`\" pulumi-lang-yaml=\"`scaleway.block.Volume`\" pulumi-lang-java=\"`scaleway.block.Volume`\"\u003e`scaleway.block.Volume`\u003c/span\u003e data source is used to retrieve information about a Block Storage volume.\nRefer to the Block Storage [product documentation](https://www.scaleway.com/en/docs/block-storage/) and [API documentation](https://www.scaleway.com/en/developers/api/block/) for more information.\n\n","inputs":{"description":"A collection of arguments for invoking getBlockVolume.\n","properties":{"name":{"type":"string","description":"The name of the volume. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`volumeId`\" pulumi-lang-dotnet=\"`VolumeId`\" pulumi-lang-go=\"`volumeId`\" pulumi-lang-python=\"`volume_id`\" pulumi-lang-yaml=\"`volumeId`\" pulumi-lang-java=\"`volumeId`\"\u003e`volume_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The unique identifier of the Project to which the volume is associated.\n"},"volumeId":{"type":"string","description":"The unique identifier of the volume. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`volumeId`\" pulumi-lang-dotnet=\"`VolumeId`\" pulumi-lang-go=\"`volumeId`\" pulumi-lang-python=\"`volume_id`\" pulumi-lang-yaml=\"`volumeId`\" pulumi-lang-java=\"`volumeId`\"\u003e`volume_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"). The zone in which the volume exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBlockVolume.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceVolumeId":{"type":"string"},"iops":{"type":"integer"},"name":{"type":"string"},"projectId":{"type":"string"},"sizeInGb":{"type":"integer"},"snapshotId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"volumeId":{"type":"string"},"zone":{"type":"string"}},"required":["instanceVolumeId","iops","sizeInGb","snapshotId","tags","id"],"type":"object"}},"scaleway:index/getCockpit:getCockpit":{"deprecationMessage":"scaleway.index/getcockpit.getCockpit has been deprecated in favor of scaleway.observability/getinstance.getInstance","description":"\u003e **Important:**  The data source \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Cockpit`\" pulumi-lang-dotnet=\"`scaleway.observability.Cockpit`\" pulumi-lang-go=\"`observability.Cockpit`\" pulumi-lang-python=\"`observability.Cockpit`\" pulumi-lang-yaml=\"`scaleway.observability.Cockpit`\" pulumi-lang-java=\"`scaleway.observability.Cockpit`\"\u003e`scaleway.observability.Cockpit`\u003c/span\u003e has been deprecated and will no longer be supported. Instead, use resource \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Cockpit`\" pulumi-lang-dotnet=\"`scaleway.observability.Cockpit`\" pulumi-lang-go=\"`observability.Cockpit`\" pulumi-lang-python=\"`observability.Cockpit`\" pulumi-lang-yaml=\"`scaleway.observability.Cockpit`\" pulumi-lang-java=\"`scaleway.observability.Cockpit`\"\u003e`scaleway.observability.Cockpit`\u003c/span\u003e.\n\n\u003e **Note:**\nAs of April 2024, Cockpit has introduced [regionalization](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#region) to offer more flexibility and resilience.\nIf you have created customized dashboards with data for your Scaleway resources before April 2024, you will need to update your queries in Grafana, with the new regionalized data sources.\n\nThe \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Cockpit`\" pulumi-lang-dotnet=\"`scaleway.observability.Cockpit`\" pulumi-lang-go=\"`observability.Cockpit`\" pulumi-lang-python=\"`observability.Cockpit`\" pulumi-lang-yaml=\"`scaleway.observability.Cockpit`\" pulumi-lang-java=\"`scaleway.observability.Cockpit`\"\u003e`scaleway.observability.Cockpit`\u003c/span\u003e data source is used to retrieve information about a Scaleway Cockpit associated with a given Project. This can be the default Project or a specific Project identified by its ID.\n\nRefer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.\n\n## Retrieve a Cockpit\n\nThe following commands allow you to:\n\n- get information on the Cockpit associated with your Scaleway default Project\n- get information on the Cockpit associated with a specific Scaleway Project\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get the default Project's Cockpit\nconst main = scaleway.observability.getInstance({});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get the default Project's Cockpit\nmain = scaleway.observability.get_instance()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get the default Project's Cockpit\n    var main = Scaleway.Observability.GetInstance.Invoke();\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get the default Project's Cockpit\n\t\t_, err := observability.GetInstance(ctx, \u0026observability.GetInstanceArgs{}, 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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetInstanceArgs;\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        // Get the default Project's Cockpit\n        final var main = ObservabilityFunctions.getInstance(GetInstanceArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get the default Project's Cockpit\n  main:\n    fn::invoke:\n      function: scaleway:observability:getInstance\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get a specific Project's Cockpit\nconst main = scaleway.observability.getInstance({\n    projectId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get a specific Project's Cockpit\nmain = scaleway.observability.get_instance(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    // Get a specific Project's Cockpit\n    var main = Scaleway.Observability.GetInstance.Invoke(new()\n    {\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get a specific Project's Cockpit\n\t\t_, err := observability.GetInstance(ctx, \u0026observability.GetInstanceArgs{\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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetInstanceArgs;\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        // Get a specific Project's Cockpit\n        final var main = ObservabilityFunctions.getInstance(GetInstanceArgs.builder()\n            .projectId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get a specific Project's Cockpit\n  main:\n    fn::invoke:\n      function: scaleway:observability:getInstance\n      arguments:\n        projectId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCockpit.\n","properties":{"projectId":{"type":"string","description":"Specifies the ID of the Scaleway Project that the Cockpit is associated with. If not specified, it defaults to the Project ID specified in the provider configuration.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCockpit.\n","properties":{"endpoints":{"description":"(Deprecated) A list of [endpoints](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#endpoints) related to Cockpit, each with specific URLs:\n","items":{"$ref":"#/types/scaleway:index/getCockpitEndpoint:getCockpitEndpoint"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"plan":{"deprecationMessage":"The 'plan' attribute is deprecated and will be removed in a future version. Any changes to this attribute will have no effect.","type":"string"},"planId":{"description":"(Deprecated) ID of the current pricing plan\n","type":"string"},"projectId":{"type":"string"},"pushUrls":{"items":{"$ref":"#/types/scaleway:index/getCockpitPushUrl:getCockpitPushUrl"},"type":"array"}},"required":["endpoints","plan","planId","pushUrls","id"],"type":"object"}},"scaleway:index/getCockpitSource:getCockpitSource":{"deprecationMessage":"scaleway.index/getcockpitsource.getCockpitSource has been deprecated in favor of scaleway.observability/getsource.getSource","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Source`\" pulumi-lang-dotnet=\"`scaleway.observability.Source`\" pulumi-lang-go=\"`observability.Source`\" pulumi-lang-python=\"`observability.Source`\" pulumi-lang-yaml=\"`scaleway.observability.Source`\" pulumi-lang-java=\"`scaleway.observability.Source`\"\u003e`scaleway.observability.Source`\u003c/span\u003e data source allows you to retrieve information about a specific [data source](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-sources) in Scaleway's Cockpit.\n\nRefer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.\n\n## Example Usage\n\n### Retrieve a specific data source by ID\n\nThe following example retrieves a Cockpit data source by its unique ID.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst example = scaleway.observability.getSource({\n    id: \"fr-par/11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nexample = scaleway.observability.get_source(id=\"fr-par/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 example = Scaleway.Observability.GetSource.Invoke(new()\n    {\n        Id = \"fr-par/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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := observability.LookupSource(ctx, \u0026observability.LookupSourceArgs{\n\t\t\tId: pulumi.StringRef(\"fr-par/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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetSourceArgs;\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 example = ObservabilityFunctions.getSource(GetSourceArgs.builder()\n            .id(\"fr-par/11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: scaleway:observability:getSource\n      arguments:\n        id: fr-par/11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Retrieve a data source by filters\n\nYou can also retrieve a data source by specifying filtering criteria such as \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst filtered = scaleway.observability.getSource({\n    projectId: \"11111111-1111-1111-1111-111111111111\",\n    region: \"fr-par\",\n    name: \"my-data-source\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nfiltered = scaleway.observability.get_source(project_id=\"11111111-1111-1111-1111-111111111111\",\n    region=\"fr-par\",\n    name=\"my-data-source\")\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 filtered = Scaleway.Observability.GetSource.Invoke(new()\n    {\n        ProjectId = \"11111111-1111-1111-1111-111111111111\",\n        Region = \"fr-par\",\n        Name = \"my-data-source\",\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := observability.LookupSource(ctx, \u0026observability.LookupSourceArgs{\n\t\t\tProjectId: pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\tRegion:    pulumi.StringRef(\"fr-par\"),\n\t\t\tName:      pulumi.StringRef(\"my-data-source\"),\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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetSourceArgs;\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 filtered = ObservabilityFunctions.getSource(GetSourceArgs.builder()\n            .projectId(\"11111111-1111-1111-1111-111111111111\")\n            .region(\"fr-par\")\n            .name(\"my-data-source\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  filtered:\n    fn::invoke:\n      function: scaleway:observability:getSource\n      arguments:\n        projectId: 11111111-1111-1111-1111-111111111111\n        region: fr-par\n        name: my-data-source\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCockpitSource.\n","properties":{"id":{"type":"string","description":"The unique identifier of the Cockpit data source in the `{region}/{id}` format. If specified, other filters are ignored.\n"},"name":{"type":"string","description":"The name of the data source.\n"},"origin":{"type":"string","description":"The origin of the data source. Possible values are:\n"},"projectId":{"type":"string","description":"The ID of the Project the data source is associated with. Defaults to the Project ID specified in the provider configuration.\n"},"region":{"type":"string","description":"The region where the data source is located. Defaults to the region specified in the provider configuration.\n"},"type":{"type":"string","description":"The [type](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-types) of data source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logs`\" pulumi-lang-dotnet=\"`Logs`\" pulumi-lang-go=\"`logs`\" pulumi-lang-python=\"`logs`\" pulumi-lang-yaml=\"`logs`\" pulumi-lang-java=\"`logs`\"\u003e`logs`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`traces`\" pulumi-lang-dotnet=\"`Traces`\" pulumi-lang-go=\"`traces`\" pulumi-lang-python=\"`traces`\" pulumi-lang-yaml=\"`traces`\" pulumi-lang-java=\"`traces`\"\u003e`traces`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCockpitSource.\n","properties":{"createdAt":{"description":"The date and time the data source was created (in RFC 3339 format).\n","type":"string"},"id":{"description":"The unique identifier of the data source in the `{region}/{id}` format.\n","type":"string"},"name":{"type":"string"},"origin":{"description":"The origin of the data source.\n","type":"string"},"projectId":{"type":"string"},"pushUrl":{"type":"string"},"region":{"type":"string"},"retentionDays":{"description":"The number of days the data is retained in the data source.\n","type":"integer"},"synchronizedWithGrafana":{"description":"Indicates whether the data source is synchronized with Grafana.\n","type":"boolean"},"type":{"type":"string"},"updatedAt":{"description":"The date and time the data source was last updated (in RFC 3339 format).\n","type":"string"},"url":{"description":"The URL of the Cockpit data source.\n","type":"string"}},"required":["createdAt","pushUrl","retentionDays","synchronizedWithGrafana","updatedAt","url"],"type":"object"}},"scaleway:index/getConfig:getConfig":{"description":"Gets information about the current configuration that Scaleway provider is using.\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\n// Get configuration information\nconst main = scaleway.getConfig({});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get configuration information\nmain = scaleway.get_config()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get configuration information\n    var main = Scaleway.GetConfig.Invoke();\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// Get configuration information\n\t\t_, err := scaleway.GetConfig(ctx, map[string]interface{}{}, 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 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        // Get configuration information\n        final var main = ScalewayFunctions.getConfig(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get configuration information\n  main:\n    fn::invoke:\n      function: scaleway:getConfig\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getConfig.\n","properties":{"accessKey":{"type":"string"},"accessKeySource":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"organizationIdSource":{"type":"string"},"projectId":{"type":"string"},"projectIdSource":{"type":"string"},"region":{"type":"string"},"regionSource":{"type":"string"},"secretKey":{"secret":true,"type":"string"},"secretKeySource":{"type":"string"},"zone":{"type":"string"},"zoneSource":{"type":"string"}},"required":["accessKey","accessKeySource","organizationId","organizationIdSource","projectId","projectIdSource","region","regionSource","secretKey","secretKeySource","zone","zoneSource","id"],"type":"object"}},"scaleway:index/getContainer:getContainer":{"deprecationMessage":"scaleway.index/getcontainer.getContainer has been deprecated in favor of scaleway.containers/getcontainer.getContainer","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Container`\" pulumi-lang-dotnet=\"`scaleway.containers.Container`\" pulumi-lang-go=\"`containers.Container`\" pulumi-lang-python=\"`containers.Container`\" pulumi-lang-yaml=\"`scaleway.containers.Container`\" pulumi-lang-java=\"`scaleway.containers.Container`\"\u003e`scaleway.containers.Container`\u003c/span\u003e data source is used to retrieve information about a Serverless Container.\n\nRefer to the Serverless Containers [product documentation](https://www.scaleway.com/en/docs/serverless/containers/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/) for more information.\n\nFor more information on the limitations of Serverless Containers, refer to the [dedicated documentation](https://www.scaleway.com/en/docs/serverless-containers/reference-content/containers-limitations/).\n\n## Retrieve a Serverless Container\n\nThe following commands allow you to:\n\n- retrieve a container by its name\n- retrieve a container by its ID\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.containers.Namespace(\"main\", {});\nconst mainContainer = new scaleway.containers.Container(\"main\", {\n    name: \"test-container-data\",\n    namespaceId: main.id,\n});\n// Get info by container name\nconst byName = scaleway.containers.getContainerOutput({\n    namespaceId: main.id,\n    name: mainContainer.name,\n});\n// Get info by container ID\nconst byId = scaleway.containers.getContainerOutput({\n    namespaceId: main.id,\n    containerId: mainContainer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.containers.Namespace(\"main\")\nmain_container = scaleway.containers.Container(\"main\",\n    name=\"test-container-data\",\n    namespace_id=main.id)\n# Get info by container name\nby_name = scaleway.containers.get_container_output(namespace_id=main.id,\n    name=main_container.name)\n# Get info by container ID\nby_id = scaleway.containers.get_container_output(namespace_id=main.id,\n    container_id=main_container.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.Containers.Namespace(\"main\");\n\n    var mainContainer = new Scaleway.Containers.Container(\"main\", new()\n    {\n        Name = \"test-container-data\",\n        NamespaceId = main.Id,\n    });\n\n    // Get info by container name\n    var byName = Scaleway.Containers.GetContainer.Invoke(new()\n    {\n        NamespaceId = main.Id,\n        Name = mainContainer.Name,\n    });\n\n    // Get info by container ID\n    var byId = Scaleway.Containers.GetContainer.Invoke(new()\n    {\n        NamespaceId = main.Id,\n        ContainerId = mainContainer.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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := containers.NewNamespace(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainContainer, err := containers.NewContainer(ctx, \"main\", \u0026containers.ContainerArgs{\n\t\t\tName:        pulumi.String(\"test-container-data\"),\n\t\t\tNamespaceId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by container name\n\t\t_ = containers.LookupContainerOutput(ctx, containers.GetContainerOutputArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tName:        mainContainer.Name,\n\t\t}, nil)\n\t\t// Get info by container ID\n\t\t_ = containers.LookupContainerOutput(ctx, containers.GetContainerOutputArgs{\n\t\t\tNamespaceId: main.ID(),\n\t\t\tContainerId: mainContainer.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.containers.Namespace;\nimport com.pulumi.scaleway.containers.Container;\nimport com.pulumi.scaleway.containers.ContainerArgs;\nimport com.pulumi.scaleway.containers.ContainersFunctions;\nimport com.pulumi.scaleway.containers.inputs.GetContainerArgs;\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 Namespace(\"main\");\n\n        var mainContainer = new Container(\"mainContainer\", ContainerArgs.builder()\n            .name(\"test-container-data\")\n            .namespaceId(main.id())\n            .build());\n\n        // Get info by container name\n        final var byName = ContainersFunctions.getContainer(GetContainerArgs.builder()\n            .namespaceId(main.id())\n            .name(mainContainer.name())\n            .build());\n\n        // Get info by container ID\n        final var byId = ContainersFunctions.getContainer(GetContainerArgs.builder()\n            .namespaceId(main.id())\n            .containerId(mainContainer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:containers:Namespace\n  mainContainer:\n    type: scaleway:containers:Container\n    name: main\n    properties:\n      name: test-container-data\n      namespaceId: ${main.id}\nvariables:\n  # Get info by container name\n  byName:\n    fn::invoke:\n      function: scaleway:containers:getContainer\n      arguments:\n        namespaceId: ${main.id}\n        name: ${mainContainer.name}\n  # Get info by container ID\n  byId:\n    fn::invoke:\n      function: scaleway:containers:getContainer\n      arguments:\n        namespaceId: ${main.id}\n        containerId: ${mainContainer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Arguments reference\n\nThis section lists the arguments that you can provide to the \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Container`\" pulumi-lang-dotnet=\"`scaleway.containers.Container`\" pulumi-lang-go=\"`containers.Container`\" pulumi-lang-python=\"`containers.Container`\" pulumi-lang-yaml=\"`scaleway.containers.Container`\" pulumi-lang-java=\"`scaleway.containers.Container`\"\u003e`scaleway.containers.Container`\u003c/span\u003e data source to filter and retrieve the desired namespace. Each argument has a specific purpose:\n\n- \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e - (Required) The unique name of the container.\n\n- \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e - (Required) The container namespace ID of the container.\n\n- \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e - (Optional) The unique identifier of the project with which the container is associated.\n\n\u003e **Important** Updating the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e argument will recreate the container.\n","inputs":{"description":"A collection of arguments for invoking getContainer.\n","properties":{"containerId":{"type":"string"},"name":{"type":"string"},"namespaceId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container was created.\n"}},"type":"object","required":["namespaceId"]},"outputs":{"description":"A collection of values returned by getContainer.\n","properties":{"args":{"items":{"type":"string"},"type":"array"},"commands":{"items":{"type":"string"},"type":"array"},"containerId":{"type":"string"},"cpuLimit":{"description":"The amount of vCPU computing resources to allocate to each container.\n","type":"integer"},"cronStatus":{"description":"The cron status of the container.\n","type":"string"},"deploy":{"description":"Boolean indicating whether the container is on a production environment.\n","type":"boolean"},"description":{"description":"The description of the container.\n","type":"string"},"domainName":{"description":"The container domain name.\n","type":"string"},"environmentVariables":{"additionalProperties":{"type":"string"},"description":"The [environment](https://www.scaleway.com/en/docs/serverless-containers/concepts/#environment-variables) variables of the container.\n","type":"object"},"errorMessage":{"description":"The error message of the container.\n","type":"string"},"healthChecks":{"description":"Health check configuration block of the container.\n","items":{"$ref":"#/types/scaleway:index/getContainerHealthCheck:getContainerHealthCheck"},"type":"array"},"httpOption":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"localStorageLimit":{"type":"integer"},"maxConcurrency":{"description":"The maximum number of simultaneous requests your container can handle at the same time.\n","type":"integer"},"maxScale":{"description":"The maximum number of instances the container can scale to.\n","type":"integer"},"memoryLimit":{"description":"The memory resources in MB to allocate to each container.\n","type":"integer"},"minScale":{"description":"The minimum number of container instances running continuously.\n","type":"integer"},"name":{"type":"string"},"namespaceId":{"type":"string"},"port":{"description":"The port to expose the container.\n","type":"integer"},"privacy":{"description":"The privacy type define the way to authenticate to your container. Refer to the [dedicated documentation](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) for more information.\n","type":"string"},"privateNetworkId":{"type":"string"},"projectId":{"type":"string"},"protocol":{"description":"The communication [protocol](https://www.scaleway.com/en/developers/api/serverless-containers/#path-containers-update-an-existing-container) \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`h2c`\" pulumi-lang-dotnet=\"`H2c`\" pulumi-lang-go=\"`h2c`\" pulumi-lang-python=\"`h2c`\" pulumi-lang-yaml=\"`h2c`\" pulumi-lang-java=\"`h2c`\"\u003e`h2c`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`http1`\" pulumi-lang-dotnet=\"`Http1`\" pulumi-lang-go=\"`http1`\" pulumi-lang-python=\"`http1`\" pulumi-lang-yaml=\"`http1`\" pulumi-lang-java=\"`http1`\"\u003e`http1`\u003c/span\u003e.\n","type":"string"},"region":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container was created.\n","type":"string"},"registryImage":{"description":"The registry image address (e.g. `rg.fr-par.scw.cloud/$NAMESPACE/$IMAGE`).\n","type":"string"},"registrySha256":{"description":"The sha256 of your source registry image, changing it will re-apply the deployment. Can be any string.\n","type":"string"},"sandbox":{"description":"(Optional) Execution environment of the container.\n","type":"string"},"scalingOptions":{"description":"Configuration block used to decide when to scale up or down. Possible values:\n","items":{"$ref":"#/types/scaleway:index/getContainerScalingOption:getContainerScalingOption"},"type":"array"},"secretEnvironmentVariables":{"additionalProperties":{"type":"string"},"type":"object"},"status":{"description":"The container status.\n","type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"timeout":{"description":"The maximum amount of time your container can spend processing a request before being stopped.\n","type":"integer"}},"required":["args","commands","cpuLimit","cronStatus","deploy","description","domainName","environmentVariables","errorMessage","healthChecks","httpOption","localStorageLimit","maxConcurrency","maxScale","memoryLimit","minScale","namespaceId","port","privacy","privateNetworkId","protocol","registryImage","registrySha256","sandbox","scalingOptions","secretEnvironmentVariables","status","tags","timeout","id"],"type":"object"}},"scaleway:index/getContainerNamespace:getContainerNamespace":{"deprecationMessage":"scaleway.index/getcontainernamespace.getContainerNamespace has been deprecated in favor of scaleway.containers/getnamespace.getNamespace","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.containers.Namespace`\" pulumi-lang-dotnet=\"`scaleway.containers.Namespace`\" pulumi-lang-go=\"`containers.Namespace`\" pulumi-lang-python=\"`containers.Namespace`\" pulumi-lang-yaml=\"`scaleway.containers.Namespace`\" pulumi-lang-java=\"`scaleway.containers.Namespace`\"\u003e`scaleway.containers.Namespace`\u003c/span\u003e data source is used to retrieve information about a Serverless Containers namespace.\n\nRefer to the Serverless Containers [product documentation](https://www.scaleway.com/en/docs/serverless/containers/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-containers/) for more information.\n\n## Retrieve a Serverless Containers namespace\n\nThe following commands allow you to:\n\n- retrieve a namespace by its name\n- retrieve a namespace by its ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by namespace name\nconst byName = scaleway.containers.getNamespace({\n    name: \"my-namespace-name\",\n});\n// Get info by namespace ID\nconst byId = scaleway.containers.getNamespace({\n    namespaceId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by namespace name\nby_name = scaleway.containers.get_namespace(name=\"my-namespace-name\")\n# Get info by namespace ID\nby_id = scaleway.containers.get_namespace(namespace_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    // Get info by namespace name\n    var byName = Scaleway.Containers.GetNamespace.Invoke(new()\n    {\n        Name = \"my-namespace-name\",\n    });\n\n    // Get info by namespace ID\n    var byId = Scaleway.Containers.GetNamespace.Invoke(new()\n    {\n        NamespaceId = \"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/containers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by namespace name\n\t\t_, err := containers.LookupNamespace(ctx, \u0026containers.LookupNamespaceArgs{\n\t\t\tName: pulumi.StringRef(\"my-namespace-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by namespace ID\n\t\t_, err = containers.LookupNamespace(ctx, \u0026containers.LookupNamespaceArgs{\n\t\t\tNamespaceId: 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.containers.ContainersFunctions;\nimport com.pulumi.scaleway.containers.inputs.GetNamespaceArgs;\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        // Get info by namespace name\n        final var byName = ContainersFunctions.getNamespace(GetNamespaceArgs.builder()\n            .name(\"my-namespace-name\")\n            .build());\n\n        // Get info by namespace ID\n        final var byId = ContainersFunctions.getNamespace(GetNamespaceArgs.builder()\n            .namespaceId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by namespace name\n  byName:\n    fn::invoke:\n      function: scaleway:containers:getNamespace\n      arguments:\n        name: my-namespace-name\n  # Get info by namespace ID\n  byId:\n    fn::invoke:\n      function: scaleway:containers:getNamespace\n      arguments:\n        namespaceId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getContainerNamespace.\n","properties":{"name":{"type":"string","description":"The name of the namespace. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e should be specified.\n"},"namespaceId":{"type":"string","description":"The unique identifier of the namespace. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project with which the namespace is associated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the namespace exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getContainerNamespace.\n","properties":{"activateVpcIntegration":{"type":"boolean"},"description":{"description":"The description of the namespace.\n","type":"string"},"destroyRegistry":{"type":"boolean"},"environmentVariables":{"additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n","type":"object"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"namespaceId":{"type":"string"},"organizationId":{"description":"The unique identifier of the organization with which the namespace is associated.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"registryEndpoint":{"description":"The registry endpoint of the namespace.\n","type":"string"},"registryNamespaceId":{"description":"The unique identifier of the registry namespace of the Serverless Containers namespace.\n","type":"string"},"secretEnvironmentVariables":{"additionalProperties":{"type":"string"},"type":"object"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["activateVpcIntegration","description","destroyRegistry","environmentVariables","organizationId","registryEndpoint","registryNamespaceId","secretEnvironmentVariables","tags","id"],"type":"object"}},"scaleway:index/getDatabase:getDatabase":{"deprecationMessage":"scaleway.index/getdatabase.getDatabase has been deprecated in favor of scaleway.databases/getdatabase.getDatabase","description":"Gets information about a database.\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\n// Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\nconst myDb = scaleway.databases.getDatabase({\n    instanceId: \"11111111-1111-1111-1111-111111111111\",\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\nmy_db = scaleway.databases.get_database(instance_id=\"11111111-1111-1111-1111-111111111111\",\n    name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\n    var myDb = Scaleway.Databases.GetDatabase.Invoke(new()\n    {\n        InstanceId = \"11111111-1111-1111-1111-111111111111\",\n        Name = \"foobar\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\n\t\t_, err := databases.LookupDatabase(ctx, \u0026databases.LookupDatabaseArgs{\n\t\t\tInstanceId: \"11111111-1111-1111-1111-111111111111\",\n\t\t\tName:       \"foobar\",\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.databases.DatabasesFunctions;\nimport com.pulumi.scaleway.databases.inputs.GetDatabaseArgs;\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        // Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\n        final var myDb = DatabasesFunctions.getDatabase(GetDatabaseArgs.builder()\n            .instanceId(\"11111111-1111-1111-1111-111111111111\")\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get the database foobar hosted on instance id 11111111-1111-1111-1111-111111111111\n  myDb:\n    fn::invoke:\n      function: scaleway:databases:getDatabase\n      arguments:\n        instanceId: 11111111-1111-1111-1111-111111111111\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabase.\n","properties":{"instanceId":{"type":"string","description":"The RDB instance ID.\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"region":{"type":"string"}},"type":"object","required":["instanceId","name"]},"outputs":{"description":"A collection of values returned by getDatabase.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"managed":{"description":"Whether the database is managed or not.\n","type":"boolean"},"name":{"type":"string"},"owner":{"description":"The name of the owner of the database.\n","type":"string"},"region":{"type":"string"},"size":{"description":"Size of the database (in bytes).\n","type":"string"}},"required":["instanceId","managed","name","owner","size","id"],"type":"object"}},"scaleway:index/getDatabaseAcl:getDatabaseAcl":{"deprecationMessage":"scaleway.index/getdatabaseacl.getDatabaseAcl has been deprecated in favor of scaleway.databases/getacl.getAcl","description":"Gets information about the Database Instance network Access Control List.\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\n// Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\nconst myAcl = scaleway.databases.getAcl({\n    instanceId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\nmy_acl = scaleway.databases.get_acl(instance_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    // Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\n    var myAcl = Scaleway.Databases.GetAcl.Invoke(new()\n    {\n        InstanceId = \"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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\n\t\t_, err := databases.LookupAcl(ctx, \u0026databases.LookupAclArgs{\n\t\t\tInstanceId: \"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.databases.DatabasesFunctions;\nimport com.pulumi.scaleway.databases.inputs.GetAclArgs;\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        // Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\n        final var myAcl = DatabasesFunctions.getAcl(GetAclArgs.builder()\n            .instanceId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get the database ACL for the instance id 11111111-1111-1111-1111-111111111111 located in the default region e.g: fr-par\n  myAcl:\n    fn::invoke:\n      function: scaleway:databases:getAcl\n      arguments:\n        instanceId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabaseAcl.\n","properties":{"instanceId":{"type":"string","description":"The RDB instance ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance should be created.\n"}},"type":"object","required":["instanceId"]},"outputs":{"description":"A collection of values returned by getDatabaseAcl.\n","properties":{"aclRules":{"description":"A list of ACLs rules (structure is described below)\n","items":{"$ref":"#/types/scaleway:index/getDatabaseAclAclRule:getDatabaseAclAclRule"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"region":{"type":"string"}},"required":["aclRules","instanceId","id"],"type":"object"}},"scaleway:index/getDatabaseBackup:getDatabaseBackup":{"deprecationMessage":"scaleway.index/getdatabasebackup.getDatabaseBackup has been deprecated in favor of scaleway.databases/getdatabasebackup.getDatabaseBackup","description":"Gets information about an RDB backup.\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 findByName = scaleway.databases.getDatabaseBackup({\n    name: \"mybackup\",\n});\nconst findByNameAndInstance = scaleway.databases.getDatabaseBackup({\n    name: \"mybackup\",\n    instanceId: \"11111111-1111-1111-1111-111111111111\",\n});\nconst findById = scaleway.databases.getDatabaseBackup({\n    backupId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nfind_by_name = scaleway.databases.get_database_backup(name=\"mybackup\")\nfind_by_name_and_instance = scaleway.databases.get_database_backup(name=\"mybackup\",\n    instance_id=\"11111111-1111-1111-1111-111111111111\")\nfind_by_id = scaleway.databases.get_database_backup(backup_id=\"11111111-1111-1111-1111-111111111111\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var findByName = Scaleway.Databases.GetDatabaseBackup.Invoke(new()\n    {\n        Name = \"mybackup\",\n    });\n\n    var findByNameAndInstance = Scaleway.Databases.GetDatabaseBackup.Invoke(new()\n    {\n        Name = \"mybackup\",\n        InstanceId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    var findById = Scaleway.Databases.GetDatabaseBackup.Invoke(new()\n    {\n        BackupId = \"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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databases.LookupDatabaseBackup(ctx, \u0026databases.LookupDatabaseBackupArgs{\n\t\t\tName: pulumi.StringRef(\"mybackup\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databases.LookupDatabaseBackup(ctx, \u0026databases.LookupDatabaseBackupArgs{\n\t\t\tName:       pulumi.StringRef(\"mybackup\"),\n\t\t\tInstanceId: 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\t_, err = databases.LookupDatabaseBackup(ctx, \u0026databases.LookupDatabaseBackupArgs{\n\t\t\tBackupId: 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.databases.DatabasesFunctions;\nimport com.pulumi.scaleway.databases.inputs.GetDatabaseBackupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var findByName = DatabasesFunctions.getDatabaseBackup(GetDatabaseBackupArgs.builder()\n            .name(\"mybackup\")\n            .build());\n\n        final var findByNameAndInstance = DatabasesFunctions.getDatabaseBackup(GetDatabaseBackupArgs.builder()\n            .name(\"mybackup\")\n            .instanceId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        final var findById = DatabasesFunctions.getDatabaseBackup(GetDatabaseBackupArgs.builder()\n            .backupId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  findByName:\n    fn::invoke:\n      function: scaleway:databases:getDatabaseBackup\n      arguments:\n        name: mybackup\n  findByNameAndInstance:\n    fn::invoke:\n      function: scaleway:databases:getDatabaseBackup\n      arguments:\n        name: mybackup\n        instanceId: 11111111-1111-1111-1111-111111111111\n  findById:\n    fn::invoke:\n      function: scaleway:databases:getDatabaseBackup\n      arguments:\n        backupId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabaseBackup.\n","properties":{"backupId":{"type":"string","description":"The backup ID.\n"},"instanceId":{"type":"string","description":"The Database Instance ID.\n"},"name":{"type":"string","description":"The name of the RDB instance.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`backupId`\" pulumi-lang-dotnet=\"`BackupId`\" pulumi-lang-go=\"`backupId`\" pulumi-lang-python=\"`backup_id`\" pulumi-lang-yaml=\"`backupId`\" pulumi-lang-java=\"`backupId`\"\u003e`backup_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project the Database Backup is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Backup is associated with.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDatabaseBackup.\n","properties":{"backupId":{"type":"string"},"createdAt":{"type":"string"},"databaseName":{"type":"string"},"downloadUrl":{"type":"string"},"downloadUrlExpiresAt":{"type":"string"},"expiresAt":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"instanceName":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"sameRegion":{"type":"boolean"},"size":{"type":"integer"},"status":{"type":"string"},"updatedAt":{"type":"string"}},"required":["createdAt","databaseName","downloadUrl","downloadUrlExpiresAt","expiresAt","instanceName","sameRegion","size","status","updatedAt","id"],"type":"object"}},"scaleway:index/getDatabaseInstance:getDatabaseInstance":{"deprecationMessage":"scaleway.index/getdatabaseinstance.getDatabaseInstance has been deprecated in favor of scaleway.databases/getinstance.getInstance","description":"Gets information about an Database Instance.\n\nFor further information refer the Managed Databases for PostgreSQL and MySQL [API documentation](https://developers.scaleway.com/en/products/rdb/api/#database-instance)\n\n","inputs":{"description":"A collection of arguments for invoking getDatabaseInstance.\n","properties":{"instanceId":{"type":"string","description":"The RDB instance ID.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the RDB instance.\n"},"projectId":{"type":"string","description":"The ID of the project the Database Instance is in. Can be used to filter instances when using \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Database Instance exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDatabaseInstance.\n","properties":{"backupSameRegion":{"type":"boolean"},"backupScheduleFrequency":{"type":"integer"},"backupScheduleRetention":{"type":"integer"},"certificate":{"type":"string"},"disableBackup":{"type":"boolean"},"encryptionAtRest":{"type":"boolean"},"endpointIp":{"type":"string"},"endpointPort":{"type":"integer"},"engine":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"initSettings":{"additionalProperties":{"type":"string"},"type":"object"},"instanceId":{"type":"string"},"isHaCluster":{"type":"boolean"},"loadBalancers":{"items":{"$ref":"#/types/scaleway:index/getDatabaseInstanceLoadBalancer:getDatabaseInstanceLoadBalancer"},"type":"array"},"logsPolicies":{"items":{"$ref":"#/types/scaleway:index/getDatabaseInstanceLogsPolicy:getDatabaseInstanceLogsPolicy"},"type":"array"},"name":{"type":"string"},"nodeType":{"type":"string"},"organizationId":{"type":"string"},"password":{"type":"string"},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"integer"},"privateIps":{"items":{"$ref":"#/types/scaleway:index/getDatabaseInstancePrivateIp:getDatabaseInstancePrivateIp"},"type":"array"},"privateNetworks":{"items":{"$ref":"#/types/scaleway:index/getDatabaseInstancePrivateNetwork:getDatabaseInstancePrivateNetwork"},"type":"array"},"projectId":{"type":"string"},"readReplicas":{"items":{"$ref":"#/types/scaleway:index/getDatabaseInstanceReadReplica:getDatabaseInstanceReadReplica"},"type":"array"},"region":{"type":"string"},"settings":{"additionalProperties":{"type":"string"},"type":"object"},"snapshotId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"upgradableVersions":{"items":{"$ref":"#/types/scaleway:index/getDatabaseInstanceUpgradableVersion:getDatabaseInstanceUpgradableVersion"},"type":"array"},"userName":{"type":"string"},"volumeSizeInGb":{"type":"integer"},"volumeType":{"type":"string"}},"required":["backupSameRegion","backupScheduleFrequency","backupScheduleRetention","certificate","disableBackup","encryptionAtRest","endpointIp","endpointPort","engine","initSettings","isHaCluster","loadBalancers","logsPolicies","nodeType","organizationId","password","passwordWo","passwordWoVersion","privateIps","privateNetworks","readReplicas","settings","snapshotId","tags","upgradableVersions","userName","volumeSizeInGb","volumeType","id"],"type":"object"}},"scaleway:index/getDatabasePrivilege:getDatabasePrivilege":{"deprecationMessage":"scaleway.index/getdatabaseprivilege.getDatabasePrivilege has been deprecated in favor of scaleway.databases/getprivilege.getPrivilege","description":"Gets information about the privileges in a database.\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\n// Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\nconst main = scaleway.databases.getPrivilege({\n    instanceId: \"11111111-1111-111111111111\",\n    userName: \"my-user\",\n    databaseName: \"my-database\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\nmain = scaleway.databases.get_privilege(instance_id=\"11111111-1111-111111111111\",\n    user_name=\"my-user\",\n    database_name=\"my-database\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\n    var main = Scaleway.Databases.GetPrivilege.Invoke(new()\n    {\n        InstanceId = \"11111111-1111-111111111111\",\n        UserName = \"my-user\",\n        DatabaseName = \"my-database\",\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/databases\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\n\t\t_, err := databases.LookupPrivilege(ctx, \u0026databases.LookupPrivilegeArgs{\n\t\t\tInstanceId:   \"11111111-1111-111111111111\",\n\t\t\tUserName:     \"my-user\",\n\t\t\tDatabaseName: \"my-database\",\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.databases.DatabasesFunctions;\nimport com.pulumi.scaleway.databases.inputs.GetPrivilegeArgs;\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        // Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\n        final var main = DatabasesFunctions.getPrivilege(GetPrivilegeArgs.builder()\n            .instanceId(\"11111111-1111-111111111111\")\n            .userName(\"my-user\")\n            .databaseName(\"my-database\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get the database privilege for the user \"my-user\" on the database \"my-database\" hosted on instance id 11111111-1111-1111-1111-111111111111 and on the default region. e.g: fr-par\n  main:\n    fn::invoke:\n      function: scaleway:databases:getPrivilege\n      arguments:\n        instanceId: 11111111-1111-111111111111\n        userName: my-user\n        databaseName: my-database\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDatabasePrivilege.\n","properties":{"databaseName":{"type":"string","description":"The database name.\n"},"instanceId":{"type":"string","description":"The Database Instance ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the resource exists.\n"},"userName":{"type":"string","description":"The user name.\n"}},"type":"object","required":["databaseName","instanceId","userName"]},"outputs":{"description":"A collection of values returned by getDatabasePrivilege.\n","properties":{"databaseName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceId":{"type":"string"},"permission":{"description":"The permission for this user on the database. Possible values are \u003cspan pulumi-lang-nodejs=\"`readonly`\" pulumi-lang-dotnet=\"`Readonly`\" pulumi-lang-go=\"`readonly`\" pulumi-lang-python=\"`readonly`\" pulumi-lang-yaml=\"`readonly`\" pulumi-lang-java=\"`readonly`\"\u003e`readonly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readwrite`\" pulumi-lang-dotnet=\"`Readwrite`\" pulumi-lang-go=\"`readwrite`\" pulumi-lang-python=\"`readwrite`\" pulumi-lang-yaml=\"`readwrite`\" pulumi-lang-java=\"`readwrite`\"\u003e`readwrite`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e\n, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e.\n","type":"string"},"region":{"type":"string"},"userName":{"type":"string"}},"required":["databaseName","instanceId","permission","userName","id"],"type":"object"}},"scaleway:index/getDomainRecord:getDomainRecord":{"deprecationMessage":"scaleway.index/getdomainrecord.getDomainRecord has been deprecated in favor of scaleway.domain/getrecord.getRecord","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.domain.Record`\" pulumi-lang-dotnet=\"`scaleway.domain.Record`\" pulumi-lang-go=\"`domain.Record`\" pulumi-lang-python=\"`domain.Record`\" pulumi-lang-yaml=\"`scaleway.domain.Record`\" pulumi-lang-java=\"`scaleway.domain.Record`\"\u003e`scaleway.domain.Record`\u003c/span\u003e data source is used to get information about an existing domain record.\n\nRefer to the Domains and DNS [product documentation](https://www.scaleway.com/en/docs/network/domains-and-dns/) and [API documentation](https://www.scaleway.com/en/developers/api/domains-and-dns/) for more information.\n\n## Query domain records\n\nThe following commands allow you to:\n\n- query a domain record specified by the DNS zone (`domain.tld`), the record name (\u003cspan pulumi-lang-nodejs=\"`www`\" pulumi-lang-dotnet=\"`Www`\" pulumi-lang-go=\"`www`\" pulumi-lang-python=\"`www`\" pulumi-lang-yaml=\"`www`\" pulumi-lang-java=\"`www`\"\u003e`www`\u003c/span\u003e), the record type (`A`), and the record content (`1.2.3.4`).\n- query a domain record specified by the DNS zone (`domain.tld`) and the unique record ID (`11111111-1111-1111-1111-111111111111`).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Query record by DNS zone, record name, type and content\nconst byContent = scaleway.domain.getRecord({\n    dnsZone: \"domain.tld\",\n    name: \"www\",\n    type: \"A\",\n    data: \"1.2.3.4\",\n});\n// Query record by DNS zone and record ID\nconst byId = scaleway.domain.getRecord({\n    dnsZone: \"domain.tld\",\n    recordId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Query record by DNS zone, record name, type and content\nby_content = scaleway.domain.get_record(dns_zone=\"domain.tld\",\n    name=\"www\",\n    type=\"A\",\n    data=\"1.2.3.4\")\n# Query record by DNS zone and record ID\nby_id = scaleway.domain.get_record(dns_zone=\"domain.tld\",\n    record_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    // Query record by DNS zone, record name, type and content\n    var byContent = Scaleway.Domain.GetRecord.Invoke(new()\n    {\n        DnsZone = \"domain.tld\",\n        Name = \"www\",\n        Type = \"A\",\n        Data = \"1.2.3.4\",\n    });\n\n    // Query record by DNS zone and record ID\n    var byId = Scaleway.Domain.GetRecord.Invoke(new()\n    {\n        DnsZone = \"domain.tld\",\n        RecordId = \"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/domain\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Query record by DNS zone, record name, type and content\n\t\t_, err := domain.LookupRecord(ctx, \u0026domain.LookupRecordArgs{\n\t\t\tDnsZone: pulumi.StringRef(\"domain.tld\"),\n\t\t\tName:    pulumi.StringRef(\"www\"),\n\t\t\tType:    pulumi.StringRef(\"A\"),\n\t\t\tData:    pulumi.StringRef(\"1.2.3.4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Query record by DNS zone and record ID\n\t\t_, err = domain.LookupRecord(ctx, \u0026domain.LookupRecordArgs{\n\t\t\tDnsZone:  pulumi.StringRef(\"domain.tld\"),\n\t\t\tRecordId: 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.domain.DomainFunctions;\nimport com.pulumi.scaleway.domain.inputs.GetRecordArgs;\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        // Query record by DNS zone, record name, type and content\n        final var byContent = DomainFunctions.getRecord(GetRecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .name(\"www\")\n            .type(\"A\")\n            .data(\"1.2.3.4\")\n            .build());\n\n        // Query record by DNS zone and record ID\n        final var byId = DomainFunctions.getRecord(GetRecordArgs.builder()\n            .dnsZone(\"domain.tld\")\n            .recordId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Query record by DNS zone, record name, type and content\n  byContent:\n    fn::invoke:\n      function: scaleway:domain:getRecord\n      arguments:\n        dnsZone: domain.tld\n        name: www\n        type: A\n        data: 1.2.3.4\n  # Query record by DNS zone and record ID\n  byId:\n    fn::invoke:\n      function: scaleway:domain:getRecord\n      arguments:\n        dnsZone: domain.tld\n        recordId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getDomainRecord.\n","properties":{"data":{"type":"string","description":"The content of the record (e.g., an IPv4 address for an `A` record or a string for a `TXT` record). Cannot be used with \u003cspan pulumi-lang-nodejs=\"`recordId`\" pulumi-lang-dotnet=\"`RecordId`\" pulumi-lang-go=\"`recordId`\" pulumi-lang-python=\"`record_id`\" pulumi-lang-yaml=\"`recordId`\" pulumi-lang-java=\"`recordId`\"\u003e`record_id`\u003c/span\u003e.\n"},"dnsZone":{"type":"string","description":"The DNS zone (domain) to which the record belongs. This is a required field in both examples above but is optional in the context of defining the data source.\n"},"name":{"type":"string","description":"The name of the record, which can be an empty string for a root record. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`recordId`\" pulumi-lang-dotnet=\"`RecordId`\" pulumi-lang-go=\"`recordId`\" pulumi-lang-python=\"`record_id`\" pulumi-lang-yaml=\"`recordId`\" pulumi-lang-java=\"`recordId`\"\u003e`record_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"). The ID of the Project associated with the domain.\n"},"recordId":{"type":"string","description":"The unique identifier of the record. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`data`\" pulumi-lang-dotnet=\"`Data`\" pulumi-lang-go=\"`data`\" pulumi-lang-python=\"`data`\" pulumi-lang-yaml=\"`data`\" pulumi-lang-java=\"`data`\"\u003e`data`\u003c/span\u003e.\n"},"type":{"type":"string","description":"The type of the record (`A`, `AAAA`, `MX`, `CNAME`, etc.). Cannot be used with \u003cspan pulumi-lang-nodejs=\"`recordId`\" pulumi-lang-dotnet=\"`RecordId`\" pulumi-lang-go=\"`recordId`\" pulumi-lang-python=\"`record_id`\" pulumi-lang-yaml=\"`recordId`\" pulumi-lang-java=\"`recordId`\"\u003e`record_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDomainRecord.\n","properties":{"data":{"type":"string"},"dnsZone":{"type":"string"},"fqdn":{"type":"string"},"geoIps":{"description":"Information about dynamic records based on user geolocation. Find out more about dynamic records.\n","items":{"$ref":"#/types/scaleway:index/getDomainRecordGeoIp:getDomainRecordGeoIp"},"type":"array"},"httpServices":{"description":"Information about dynamic records based on URL resolution. Find out more about dynamic records.\n","items":{"$ref":"#/types/scaleway:index/getDomainRecordHttpService:getDomainRecordHttpService"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"priority":{"description":"The priority of the record, mainly used with `MX` records.\n","type":"integer"},"projectId":{"type":"string"},"recordId":{"type":"string"},"rootZone":{"type":"boolean"},"ttl":{"description":"The Time To Live (TTL) of the record in seconds.\n","type":"integer"},"type":{"type":"string"},"views":{"description":"Information about dynamic records based on the client’s (resolver) subnet. Find out more about dynamic records.\n","items":{"$ref":"#/types/scaleway:index/getDomainRecordView:getDomainRecordView"},"type":"array"},"weighteds":{"description":"Information about dynamic records based on IP weights. Find out more about dynamic records.\n","items":{"$ref":"#/types/scaleway:index/getDomainRecordWeighted:getDomainRecordWeighted"},"type":"array"}},"required":["fqdn","geoIps","httpServices","priority","rootZone","ttl","views","weighteds","id"],"type":"object"}},"scaleway:index/getDomainZone:getDomainZone":{"deprecationMessage":"scaleway.index/getdomainzone.getDomainZone has been deprecated in favor of scaleway.domain/getzone.getZone","inputs":{"description":"A collection of arguments for invoking getDomainZone.\n","properties":{"domain":{"type":"string","description":"The primary domain name where the DNS zone is located. This is a mandatory field.\n"},"projectId":{"type":"string","description":"). The ID of the Scaleway Project associated with the domain. If not specified, it defaults to the \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e set in the provider configuration.\n"},"subdomain":{"type":"string","description":"The subdomain (or zone name) within the primary domain. This is a mandatory field.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDomainZone.\n","properties":{"domain":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"message":{"description":"Message associated with the domain zone (typically used for status or error messages).\n","type":"string"},"ns":{"description":"The list of name servers for the zone.\n","items":{"type":"string"},"type":"array"},"nsDefaults":{"description":"The default list of name servers for the zone.\n","items":{"type":"string"},"type":"array"},"nsMasters":{"description":"The master list of name servers for the zone.\n","items":{"type":"string"},"type":"array"},"projectId":{"type":"string"},"status":{"description":"The status of the domain zone.\n","type":"string"},"subdomain":{"type":"string"},"updatedAt":{"description":"The date and time of the last update to the DNS zone.\n","type":"string"}},"required":["message","ns","nsDefaults","nsMasters","status","updatedAt","id"],"type":"object"}},"scaleway:index/getFlexibleIp:getFlexibleIp":{"deprecationMessage":"scaleway.index/getflexibleip.getFlexibleIp has been deprecated in favor of scaleway.elasticmetal/getip.getIp","description":"Gets information about a Flexible IP.\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\n// Get info by IP address\nconst withIp = scaleway.elasticmetal.getIp({\n    ipAddress: \"1.2.3.4\",\n});\n// Get info by IP ID\nconst withId = scaleway.elasticmetal.getIp({\n    flexibleIpId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by IP address\nwith_ip = scaleway.elasticmetal.get_ip(ip_address=\"1.2.3.4\")\n# Get info by IP ID\nwith_id = scaleway.elasticmetal.get_ip(flexible_ip_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    // Get info by IP address\n    var withIp = Scaleway.Elasticmetal.GetIp.Invoke(new()\n    {\n        IpAddress = \"1.2.3.4\",\n    });\n\n    // Get info by IP ID\n    var withId = Scaleway.Elasticmetal.GetIp.Invoke(new()\n    {\n        FlexibleIpId = \"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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by IP address\n\t\t_, err := elasticmetal.LookupIp(ctx, \u0026elasticmetal.LookupIpArgs{\n\t\t\tIpAddress: pulumi.StringRef(\"1.2.3.4\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by IP ID\n\t\t_, err = elasticmetal.LookupIp(ctx, \u0026elasticmetal.LookupIpArgs{\n\t\t\tFlexibleIpId: 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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetIpArgs;\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        // Get info by IP address\n        final var withIp = ElasticmetalFunctions.getIp(GetIpArgs.builder()\n            .ipAddress(\"1.2.3.4\")\n            .build());\n\n        // Get info by IP ID\n        final var withId = ElasticmetalFunctions.getIp(GetIpArgs.builder()\n            .flexibleIpId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by IP address\n  withIp:\n    fn::invoke:\n      function: scaleway:elasticmetal:getIp\n      arguments:\n        ipAddress: 1.2.3.4\n  # Get info by IP ID\n  withId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getIp\n      arguments:\n        flexibleIpId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlexibleIp.\n","properties":{"flexibleIpId":{"type":"string","description":"The IP ID.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`flexibleIpId`\" pulumi-lang-dotnet=\"`FlexibleIpId`\" pulumi-lang-go=\"`flexibleIpId`\" pulumi-lang-python=\"`flexible_ip_id`\" pulumi-lang-yaml=\"`flexibleIpId`\" pulumi-lang-java=\"`flexibleIpId`\"\u003e`flexible_ip_id`\u003c/span\u003e should be specified.\n"},"ipAddress":{"type":"string","description":"The IP address.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`flexibleIpId`\" pulumi-lang-dotnet=\"`FlexibleIpId`\" pulumi-lang-go=\"`flexibleIpId`\" pulumi-lang-python=\"`flexible_ip_id`\" pulumi-lang-yaml=\"`flexibleIpId`\" pulumi-lang-java=\"`flexibleIpId`\"\u003e`flexible_ip_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the Flexible IP is associated with.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getFlexibleIp.\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"flexibleIpId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipAddress":{"type":"string"},"isIpv6":{"type":"boolean"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"reverse":{"type":"string"},"serverId":{"type":"string"},"status":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"zone":{"type":"string"}},"required":["createdAt","description","isIpv6","organizationId","projectId","reverse","serverId","status","tags","updatedAt","zone","id"],"type":"object"}},"scaleway:index/getFlexibleIps:getFlexibleIps":{"deprecationMessage":"scaleway.index/getflexibleips.getFlexibleIps has been deprecated in favor of scaleway.elasticmetal/getips.getIps","description":"Gets information about multiple Flexible IPs.\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\n// Find ips that share the same tags\nconst fipsByTags = scaleway.elasticmetal.getIps({\n    tags: [\"a tag\"],\n});\n// Find ips that share the same Server ID\nconst myOffer = scaleway.elasticmetal.getOffer({\n    name: \"EM-B112X-SSD\",\n});\nconst base = new scaleway.elasticmetal.Server(\"base\", {\n    name: \"MyServer\",\n    offer: myOffer.then(myOffer =\u003e myOffer.offerId),\n    installConfigAfterward: true,\n});\nconst first = new scaleway.elasticmetal.Ip(\"first\", {\n    serverId: base.id,\n    tags: [\n        \"foo\",\n        \"first\",\n    ],\n});\nconst second = new scaleway.elasticmetal.Ip(\"second\", {\n    serverId: base.id,\n    tags: [\n        \"foo\",\n        \"second\",\n    ],\n});\nconst fipsByServerId = scaleway.elasticmetal.getIpsOutput({\n    serverIds: [base.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Find ips that share the same tags\nfips_by_tags = scaleway.elasticmetal.get_ips(tags=[\"a tag\"])\n# Find ips that share the same Server ID\nmy_offer = scaleway.elasticmetal.get_offer(name=\"EM-B112X-SSD\")\nbase = scaleway.elasticmetal.Server(\"base\",\n    name=\"MyServer\",\n    offer=my_offer.offer_id,\n    install_config_afterward=True)\nfirst = scaleway.elasticmetal.Ip(\"first\",\n    server_id=base.id,\n    tags=[\n        \"foo\",\n        \"first\",\n    ])\nsecond = scaleway.elasticmetal.Ip(\"second\",\n    server_id=base.id,\n    tags=[\n        \"foo\",\n        \"second\",\n    ])\nfips_by_server_id = scaleway.elasticmetal.get_ips_output(server_ids=[base.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    // Find ips that share the same tags\n    var fipsByTags = Scaleway.Elasticmetal.GetIps.Invoke(new()\n    {\n        Tags = new[]\n        {\n            \"a tag\",\n        },\n    });\n\n    // Find ips that share the same Server ID\n    var myOffer = Scaleway.Elasticmetal.GetOffer.Invoke(new()\n    {\n        Name = \"EM-B112X-SSD\",\n    });\n\n    var @base = new Scaleway.Elasticmetal.Server(\"base\", new()\n    {\n        Name = \"MyServer\",\n        Offer = myOffer.Apply(getOfferResult =\u003e getOfferResult.OfferId),\n        InstallConfigAfterward = true,\n    });\n\n    var first = new Scaleway.Elasticmetal.Ip(\"first\", new()\n    {\n        ServerId = @base.Id,\n        Tags = new[]\n        {\n            \"foo\",\n            \"first\",\n        },\n    });\n\n    var second = new Scaleway.Elasticmetal.Ip(\"second\", new()\n    {\n        ServerId = @base.Id,\n        Tags = new[]\n        {\n            \"foo\",\n            \"second\",\n        },\n    });\n\n    var fipsByServerId = Scaleway.Elasticmetal.GetIps.Invoke(new()\n    {\n        ServerIds = new[]\n        {\n            @base.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/elasticmetal\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find ips that share the same tags\n\t\t_, err := elasticmetal.GetIps(ctx, \u0026elasticmetal.GetIpsArgs{\n\t\t\tTags: []string{\n\t\t\t\t\"a tag\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find ips that share the same Server ID\n\t\tmyOffer, err := elasticmetal.GetOffer(ctx, \u0026elasticmetal.GetOfferArgs{\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\tbase, err := elasticmetal.NewServer(ctx, \"base\", \u0026elasticmetal.ServerArgs{\n\t\t\tName:                   pulumi.String(\"MyServer\"),\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\t_, err = elasticmetal.NewIp(ctx, \"first\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"first\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elasticmetal.NewIp(ctx, \"second\", \u0026elasticmetal.IpArgs{\n\t\t\tServerId: base.ID(),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"second\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = elasticmetal.GetIpsOutput(ctx, elasticmetal.GetIpsOutputArgs{\n\t\t\tServerIds: pulumi.StringArray{\n\t\t\t\tbase.ID(),\n\t\t\t},\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.elasticmetal.ElasticmetalFunctions;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetIpsArgs;\nimport com.pulumi.scaleway.elasticmetal.inputs.GetOfferArgs;\nimport com.pulumi.scaleway.elasticmetal.Server;\nimport com.pulumi.scaleway.elasticmetal.ServerArgs;\nimport com.pulumi.scaleway.elasticmetal.Ip;\nimport com.pulumi.scaleway.elasticmetal.IpArgs;\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        // Find ips that share the same tags\n        final var fipsByTags = ElasticmetalFunctions.getIps(GetIpsArgs.builder()\n            .tags(\"a tag\")\n            .build());\n\n        // Find ips that share the same Server ID\n        final var myOffer = ElasticmetalFunctions.getOffer(GetOfferArgs.builder()\n            .name(\"EM-B112X-SSD\")\n            .build());\n\n        var base = new Server(\"base\", ServerArgs.builder()\n            .name(\"MyServer\")\n            .offer(myOffer.offerId())\n            .installConfigAfterward(true)\n            .build());\n\n        var first = new Ip(\"first\", IpArgs.builder()\n            .serverId(base.id())\n            .tags(            \n                \"foo\",\n                \"first\")\n            .build());\n\n        var second = new Ip(\"second\", IpArgs.builder()\n            .serverId(base.id())\n            .tags(            \n                \"foo\",\n                \"second\")\n            .build());\n\n        final var fipsByServerId = ElasticmetalFunctions.getIps(GetIpsArgs.builder()\n            .serverIds(base.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  base:\n    type: scaleway:elasticmetal:Server\n    properties:\n      name: MyServer\n      offer: ${myOffer.offerId}\n      installConfigAfterward: true\n  first:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      serverId: ${base.id}\n      tags:\n        - foo\n        - first\n  second:\n    type: scaleway:elasticmetal:Ip\n    properties:\n      serverId: ${base.id}\n      tags:\n        - foo\n        - second\nvariables:\n  # Find ips that share the same tags\n  fipsByTags:\n    fn::invoke:\n      function: scaleway:elasticmetal:getIps\n      arguments:\n        tags:\n          - a tag\n  # Find ips that share the same Server ID\n  myOffer:\n    fn::invoke:\n      function: scaleway:elasticmetal:getOffer\n      arguments:\n        name: EM-B112X-SSD\n  fipsByServerId:\n    fn::invoke:\n      function: scaleway:elasticmetal:getIps\n      arguments:\n        serverIds:\n          - ${base.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlexibleIps.\n","properties":{"projectId":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is in.\n","willReplaceOnChanges":true},"serverIds":{"type":"array","items":{"type":"string"},"description":"List of server IDs used as filter. IPs with these exact server IDs are listed.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. IPs with these exact tags are listed.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which IPs exist.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getFlexibleIps.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ips":{"description":"List of found flexible IPS\n","items":{"$ref":"#/types/scaleway:index/getFlexibleIpsIp:getFlexibleIpsIp"},"type":"array"},"organizationId":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the organization the IP is in.\n","type":"string"},"projectId":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is in.\n","type":"string"},"serverIds":{"items":{"type":"string"},"type":"array"},"tags":{"description":"The list of tags which are attached to the flexible IP.\n","items":{"type":"string"},"type":"array"},"zone":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the MAC address exist.\n","type":"string"}},"required":["ips","organizationId","projectId","id"],"type":"object"}},"scaleway:index/getFunction:getFunction":{"deprecationMessage":"scaleway.index/getfunction.getFunction has been deprecated in favor of scaleway.functions/getfunction.getFunction","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Function`\" pulumi-lang-dotnet=\"`scaleway.functions.Function`\" pulumi-lang-go=\"`functions.Function`\" pulumi-lang-python=\"`functions.Function`\" pulumi-lang-yaml=\"`scaleway.functions.Function`\" pulumi-lang-java=\"`scaleway.functions.Function`\"\u003e`scaleway.functions.Function`\u003c/span\u003e data source is used to retrieve information about a Serverless Function.\n\nRefer to the Serverless Functions [product documentation](https://www.scaleway.com/en/docs/serverless/functions/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/) for more information.\n\nFor more information on the limitations of Serverless Functions, refer to the [dedicated documentation](https://www.scaleway.com/en/docs/compute/functions/reference-content/functions-limitations/).\n\n","inputs":{"description":"A collection of arguments for invoking getFunction.\n","properties":{"functionId":{"type":"string","description":"The unique identifier of the function. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`functionId`\" pulumi-lang-dotnet=\"`FunctionId`\" pulumi-lang-go=\"`functionId`\" pulumi-lang-python=\"`function_id`\" pulumi-lang-yaml=\"`functionId`\" pulumi-lang-java=\"`functionId`\"\u003e`function_id`\u003c/span\u003e should be specified.\n"},"name":{"type":"string","description":"The name of the function. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e should be specified.\n"},"namespaceId":{"type":"string","description":"The namespace ID associated with this function.\n"},"projectId":{"type":"string","description":"The unique identifier of the project with which the function is associated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the container exists.\n"}},"type":"object","required":["namespaceId"]},"outputs":{"description":"A collection of values returned by getFunction.\n","properties":{"cpuLimit":{"type":"integer"},"deploy":{"type":"boolean"},"description":{"type":"string"},"domainName":{"type":"string"},"environmentVariables":{"additionalProperties":{"type":"string"},"type":"object"},"functionId":{"type":"string"},"handler":{"type":"string"},"httpOption":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"maxScale":{"type":"integer"},"memoryLimit":{"type":"integer"},"minScale":{"type":"integer"},"name":{"type":"string"},"namespaceId":{"type":"string"},"organizationId":{"type":"string"},"privacy":{"type":"string"},"privateNetworkId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"runtime":{"type":"string"},"sandbox":{"type":"string"},"secretEnvironmentVariables":{"additionalProperties":{"type":"string"},"type":"object"},"tags":{"items":{"type":"string"},"type":"array"},"timeout":{"type":"integer"},"zipFile":{"type":"string"},"zipHash":{"type":"string"}},"required":["cpuLimit","deploy","description","domainName","environmentVariables","handler","httpOption","maxScale","memoryLimit","minScale","namespaceId","organizationId","privacy","privateNetworkId","runtime","sandbox","secretEnvironmentVariables","tags","timeout","zipFile","zipHash","id"],"type":"object"}},"scaleway:index/getFunctionNamespace:getFunctionNamespace":{"deprecationMessage":"scaleway.index/getfunctionnamespace.getFunctionNamespace has been deprecated in favor of scaleway.functions/getnamespace.getNamespace","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.functions.Namespace`\" pulumi-lang-dotnet=\"`scaleway.functions.Namespace`\" pulumi-lang-go=\"`functions.Namespace`\" pulumi-lang-python=\"`functions.Namespace`\" pulumi-lang-yaml=\"`scaleway.functions.Namespace`\" pulumi-lang-java=\"`scaleway.functions.Namespace`\"\u003e`scaleway.functions.Namespace`\u003c/span\u003e data source is used to retrieve information about a Serverless Functions namespace.\n\nRefer to the Serverless Functions [product documentation](https://www.scaleway.com/en/docs/serverless/functions/) and [API documentation](https://www.scaleway.com/en/developers/api/serverless-functions/) for more information.\n\n","inputs":{"description":"A collection of arguments for invoking getFunctionNamespace.\n","properties":{"name":{"type":"string","description":"The name of the namespace. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e should be specified.\n"},"namespaceId":{"type":"string","description":"The unique identifier of the namespace. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The unique identifier of the project with which the namespace is associated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the namespace exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFunctionNamespace.\n","properties":{"activateVpcIntegration":{"type":"boolean"},"description":{"description":"The description of the namespace.\n","type":"string"},"environmentVariables":{"additionalProperties":{"type":"string"},"description":"The environment variables of the namespace.\n","type":"object"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"namespaceId":{"type":"string"},"organizationId":{"description":"The unique identifier of the organization with which the namespace is associated.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"registryEndpoint":{"description":"The registry endpoint of the namespace.\n","type":"string"},"registryNamespaceId":{"description":"The unique identifier of the registry namespace of the Serverless Functions namespace.\n","type":"string"},"secretEnvironmentVariables":{"additionalProperties":{"type":"string"},"type":"object"},"tags":{"items":{"type":"string"},"type":"array"}},"required":["activateVpcIntegration","description","environmentVariables","organizationId","registryEndpoint","registryNamespaceId","secretEnvironmentVariables","tags","id"],"type":"object"}},"scaleway:index/getIamApiKey:getIamApiKey":{"deprecationMessage":"scaleway.index/getiamapikey.getIamApiKey has been deprecated in favor of scaleway.iam/getapikey.getApiKey","description":"Gets information about an existing IAM API key. For more information, refer to the [IAM API documentation](https://www.scaleway.com/en/developers/api/iam/#api-keys-3665ae).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get api key infos by id (access_key)\nconst main = scaleway.iam.getApiKey({\n    accessKey: \"SCWABCDEFGHIJKLMNOPQ\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get api key infos by id (access_key)\nmain = scaleway.iam.get_api_key(access_key=\"SCWABCDEFGHIJKLMNOPQ\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get api key infos by id (access_key)\n    var main = Scaleway.Iam.GetApiKey.Invoke(new()\n    {\n        AccessKey = \"SCWABCDEFGHIJKLMNOPQ\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get api key infos by id (access_key)\n\t\t_, err := iam.LookupApiKey(ctx, \u0026iam.LookupApiKeyArgs{\n\t\t\tAccessKey: \"SCWABCDEFGHIJKLMNOPQ\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetApiKeyArgs;\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        // Get api key infos by id (access_key)\n        final var main = IamFunctions.getApiKey(GetApiKeyArgs.builder()\n            .accessKey(\"SCWABCDEFGHIJKLMNOPQ\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get api key infos by id (access_key)\n  main:\n    fn::invoke:\n      function: scaleway:iam:getApiKey\n      arguments:\n        accessKey: SCWABCDEFGHIJKLMNOPQ\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIamApiKey.\n","properties":{"accessKey":{"type":"string","description":"The access key of the IAM API key which is also the ID of the API key.\n"}},"type":"object","required":["accessKey"]},"outputs":{"description":"A collection of values returned by getIamApiKey.\n","properties":{"accessKey":{"type":"string"},"applicationId":{"type":"string"},"createdAt":{"type":"string"},"creationIp":{"type":"string"},"defaultProjectId":{"type":"string"},"description":{"type":"string"},"editable":{"type":"boolean"},"expiresAt":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"updatedAt":{"type":"string"},"userId":{"type":"string"}},"required":["accessKey","applicationId","createdAt","creationIp","defaultProjectId","description","editable","expiresAt","updatedAt","userId","id"],"type":"object"}},"scaleway:index/getIamApplication:getIamApplication":{"deprecationMessage":"scaleway.index/getiamapplication.getIamApplication has been deprecated in favor of scaleway.iam/getapplication.getApplication","description":"Gets information about an existing IAM application.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by name\nconst findByName = scaleway.iam.getApplication({\n    name: \"foobar\",\n});\n// Get info by application ID\nconst findById = scaleway.iam.getApplication({\n    applicationId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nfind_by_name = scaleway.iam.get_application(name=\"foobar\")\n# Get info by application ID\nfind_by_id = scaleway.iam.get_application(application_id=\"11111111-1111-1111-1111-111111111111\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by name\n    var findByName = Scaleway.Iam.GetApplication.Invoke(new()\n    {\n        Name = \"foobar\",\n    });\n\n    // Get info by application ID\n    var findById = Scaleway.Iam.GetApplication.Invoke(new()\n    {\n        ApplicationId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := iam.LookupApplication(ctx, \u0026iam.LookupApplicationArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by application ID\n\t\t_, err = iam.LookupApplication(ctx, \u0026iam.LookupApplicationArgs{\n\t\t\tApplicationId: pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetApplicationArgs;\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        // Get info by name\n        final var findByName = IamFunctions.getApplication(GetApplicationArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n        // Get info by application ID\n        final var findById = IamFunctions.getApplication(GetApplicationArgs.builder()\n            .applicationId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  findByName:\n    fn::invoke:\n      function: scaleway:iam:getApplication\n      arguments:\n        name: foobar\n  # Get info by application ID\n  findById:\n    fn::invoke:\n      function: scaleway:iam:getApplication\n      arguments:\n        applicationId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIamApplication.\n","properties":{"applicationId":{"type":"string","description":"The ID of the IAM application.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`applicationId`\" pulumi-lang-dotnet=\"`ApplicationId`\" pulumi-lang-go=\"`applicationId`\" pulumi-lang-python=\"`application_id`\" pulumi-lang-yaml=\"`applicationId`\" pulumi-lang-java=\"`applicationId`\"\u003e`application_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the IAM application.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the\nOrganization the application is associated with.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIamApplication.\n","properties":{"applicationId":{"type":"string"},"createdAt":{"type":"string"},"description":{"type":"string"},"editable":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"}},"required":["createdAt","description","editable","tags","updatedAt","id"],"type":"object"}},"scaleway:index/getIamGroup:getIamGroup":{"deprecationMessage":"scaleway.index/getiamgroup.getIamGroup has been deprecated in favor of scaleway.iam/getgroup.getGroup","description":"Gets information about an existing IAM group.\n\nFor more information, refer to the [IAM API documentation](https://developers.scaleway.com/en/products/iam/api/v1alpha1/#applications-83ce5e)\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\n// Get info by name\nconst findByName = scaleway.iam.getGroup({\n    name: \"foobar\",\n});\n// Get info by group ID\nconst findById = scaleway.iam.getGroup({\n    groupId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nfind_by_name = scaleway.iam.get_group(name=\"foobar\")\n# Get info by group ID\nfind_by_id = scaleway.iam.get_group(group_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    // Get info by name\n    var findByName = Scaleway.Iam.GetGroup.Invoke(new()\n    {\n        Name = \"foobar\",\n    });\n\n    // Get info by group ID\n    var findById = Scaleway.Iam.GetGroup.Invoke(new()\n    {\n        GroupId = \"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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := iam.LookupGroup(ctx, \u0026iam.LookupGroupArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by group ID\n\t\t_, err = iam.LookupGroup(ctx, \u0026iam.LookupGroupArgs{\n\t\t\tGroupId: 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.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetGroupArgs;\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        // Get info by name\n        final var findByName = IamFunctions.getGroup(GetGroupArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n        // Get info by group ID\n        final var findById = IamFunctions.getGroup(GetGroupArgs.builder()\n            .groupId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  findByName:\n    fn::invoke:\n      function: scaleway:iam:getGroup\n      arguments:\n        name: foobar\n  # Get info by group ID\n  findById:\n    fn::invoke:\n      function: scaleway:iam:getGroup\n      arguments:\n        groupId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIamGroup.\n","properties":{"groupId":{"type":"string","description":"The ID of the IAM group.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the IAM group.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the\norganization the group is associated with.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIamGroup.\n","properties":{"applicationIds":{"items":{"type":"string"},"type":"array"},"createdAt":{"type":"string"},"description":{"type":"string"},"externalMembership":{"type":"boolean"},"groupId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"userIds":{"items":{"type":"string"},"type":"array"}},"required":["applicationIds","createdAt","description","externalMembership","tags","updatedAt","userIds","id"],"type":"object"}},"scaleway:index/getIamSshKey:getIamSshKey":{"deprecationMessage":"scaleway.index/getiamsshkey.getIamSshKey has been deprecated in favor of scaleway.iam/getsshkey.getSshKey","description":"Use this data source to get SSH key information based on its ID or name.\n\n","inputs":{"description":"A collection of arguments for invoking getIamSshKey.\n","properties":{"name":{"type":"string","description":"The SSH key name.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the SSH\nkey is associated with.\n"},"sshKeyId":{"type":"string","description":"The SSH key id.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`sshKeyId`\" pulumi-lang-dotnet=\"`SshKeyId`\" pulumi-lang-go=\"`sshKeyId`\" pulumi-lang-python=\"`ssh_key_id`\" pulumi-lang-yaml=\"`sshKeyId`\" pulumi-lang-java=\"`sshKeyId`\"\u003e`ssh_key_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIamSshKey.\n","properties":{"createdAt":{"description":"The date and time of the creation of the SSH key.\n","type":"string"},"disabled":{"description":"The SSH key status.\n","type":"boolean"},"fingerprint":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The ID of the organization the SSH key is associated with.\n","type":"string"},"projectId":{"type":"string"},"publicKey":{"description":"The SSH public key string\n","type":"string"},"sshKeyId":{"type":"string"},"updatedAt":{"description":"The date and time of the last update of the SSH key.\n","type":"string"}},"required":["createdAt","disabled","fingerprint","organizationId","publicKey","updatedAt","id"],"type":"object"}},"scaleway:index/getIamUser:getIamUser":{"deprecationMessage":"scaleway.index/getiamuser.getIamUser has been deprecated in favor of scaleway.iam/getuser.getUser","description":"Use this data source to get information on an existing IAM user based on its ID or email address.\nFor more information refer to the [IAM API documentation](https://developers.scaleway.com/en/products/iam/api/v1alpha1/#users-06bdcf).\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\n// Get info by user id\nconst findById = scaleway.iam.getUser({\n    userId: \"11111111-1111-1111-1111-111111111111\",\n});\n// Get info by email address\nconst findByEmail = scaleway.iam.getUser({\n    email: \"foo@bar.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by user id\nfind_by_id = scaleway.iam.get_user(user_id=\"11111111-1111-1111-1111-111111111111\")\n# Get info by email address\nfind_by_email = scaleway.iam.get_user(email=\"foo@bar.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by user id\n    var findById = Scaleway.Iam.GetUser.Invoke(new()\n    {\n        UserId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    // Get info by email address\n    var findByEmail = Scaleway.Iam.GetUser.Invoke(new()\n    {\n        Email = \"foo@bar.com\",\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/iam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by user id\n\t\t_, err := iam.LookupUser(ctx, \u0026iam.LookupUserArgs{\n\t\t\tUserId: 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\t// Get info by email address\n\t\t_, err = iam.LookupUser(ctx, \u0026iam.LookupUserArgs{\n\t\t\tEmail: pulumi.StringRef(\"foo@bar.com\"),\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.iam.IamFunctions;\nimport com.pulumi.scaleway.iam.inputs.GetUserArgs;\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        // Get info by user id\n        final var findById = IamFunctions.getUser(GetUserArgs.builder()\n            .userId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        // Get info by email address\n        final var findByEmail = IamFunctions.getUser(GetUserArgs.builder()\n            .email(\"foo@bar.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by user id\n  findById:\n    fn::invoke:\n      function: scaleway:iam:getUser\n      arguments:\n        userId: 11111111-1111-1111-1111-111111111111\n  # Get info by email address\n  findByEmail:\n    fn::invoke:\n      function: scaleway:iam:getUser\n      arguments:\n        email: foo@bar.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIamUser.\n","properties":{"email":{"type":"string","description":"The email address of the IAM user.\n"},"organizationId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the\norganization the user is associated with.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the user.\n"},"userId":{"type":"string","description":"The ID of the IAM user.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`email`\" pulumi-lang-dotnet=\"`Email`\" pulumi-lang-go=\"`email`\" pulumi-lang-python=\"`email`\" pulumi-lang-yaml=\"`email`\" pulumi-lang-java=\"`email`\"\u003e`email`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIamUser.\n","properties":{"email":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"tags":{"description":"The tags associated with the user.\n","items":{"type":"string"},"type":"array"},"userId":{"type":"string"}},"required":["id"],"type":"object"}},"scaleway:index/getInstanceImage:getInstanceImage":{"deprecationMessage":"scaleway.index/getinstanceimage.getInstanceImage has been deprecated in favor of scaleway.instance/getimage.getImage","description":"Gets information about an instance image.\n\n","inputs":{"description":"A collection of arguments for invoking getInstanceImage.\n","properties":{"architecture":{"type":"string","description":"The architecture the image is compatible with. Possible values are: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`arm`\" pulumi-lang-dotnet=\"`Arm`\" pulumi-lang-go=\"`arm`\" pulumi-lang-python=\"`arm`\" pulumi-lang-yaml=\"`arm`\" pulumi-lang-java=\"`arm`\"\u003e`arm`\u003c/span\u003e.\n"},"imageId":{"type":"string","description":"The image id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e should be specified.\n"},"latest":{"type":"boolean","description":"Use the latest image ID.\n"},"name":{"type":"string","description":"The image name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the image is associated with.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the image exists.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceImage.\n","properties":{"additionalVolumeIds":{"description":"IDs of the additional volumes in this image.\n","items":{"type":"string"},"type":"array"},"architecture":{"type":"string"},"creationDate":{"description":"Date of the image creation.\n","type":"string"},"defaultBootscriptId":{"description":"ID of the default bootscript for this image.\n","type":"string"},"fromServerId":{"description":"ID of the server the image if based from.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imageId":{"type":"string"},"latest":{"type":"boolean"},"modificationDate":{"description":"Date of image latest update.\n","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The ID of the organization the image is associated with.\n","type":"string"},"projectId":{"description":"The ID of the project the image is associated with.\n","type":"string"},"public":{"description":"Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e if the image is public.\n","type":"boolean"},"rootVolumeId":{"description":"ID of the root volume in this image.\n","type":"string"},"state":{"description":"State of the image. Possible values are: \u003cspan pulumi-lang-nodejs=\"`available`\" pulumi-lang-dotnet=\"`Available`\" pulumi-lang-go=\"`available`\" pulumi-lang-python=\"`available`\" pulumi-lang-yaml=\"`available`\" pulumi-lang-java=\"`available`\"\u003e`available`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e.\n","type":"string"},"zone":{"type":"string"}},"required":["additionalVolumeIds","creationDate","defaultBootscriptId","fromServerId","modificationDate","organizationId","projectId","public","rootVolumeId","state","id"],"type":"object"}},"scaleway:index/getInstanceIp:getInstanceIp":{"deprecationMessage":"scaleway.index/getinstanceip.getInstanceIp has been deprecated in favor of scaleway.instance/getip.getIp","description":"Gets information about an instance IP.\n\n","inputs":{"description":"A collection of arguments for invoking getInstanceIp.\n","properties":{"address":{"type":"string","description":"The IPv4 address to retrieve\nOnly one of \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e should be specified.\n"},"id":{"type":"string","description":"The ID of the IP address to retrieve\nOnly one of \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is associated with.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceIp.\n","properties":{"address":{"description":"The IP address.\n","type":"string"},"id":{"description":"The ID of the IP.\n","type":"string"},"organizationId":{"description":"The organization ID the IP is associated with.\n","type":"string"},"prefix":{"description":"The IP Prefix.\n","type":"string"},"projectId":{"type":"string"},"reverse":{"description":"The reverse dns attached to this IP\n","type":"string"},"serverId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"description":"The type of the IP\n","type":"string"},"zone":{"type":"string"}},"required":["organizationId","prefix","reverse","serverId","tags","type"],"type":"object"}},"scaleway:index/getInstancePlacementGroup:getInstancePlacementGroup":{"deprecationMessage":"scaleway.index/getinstanceplacementgroup.getInstancePlacementGroup has been deprecated in favor of scaleway.instance/getplacementgroup.getPlacementGroup","description":"Gets information about a Security Group.\n\n","inputs":{"description":"A collection of arguments for invoking getInstancePlacementGroup.\n","properties":{"name":{"type":"string","description":"The placement group name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`placementGroupId`\" pulumi-lang-dotnet=\"`PlacementGroupId`\" pulumi-lang-go=\"`placementGroupId`\" pulumi-lang-python=\"`placement_group_id`\" pulumi-lang-yaml=\"`placementGroupId`\" pulumi-lang-java=\"`placementGroupId`\"\u003e`placement_group_id`\u003c/span\u003e should be specified.\n"},"placementGroupId":{"type":"string","description":"The placement group id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`placementGroupId`\" pulumi-lang-dotnet=\"`PlacementGroupId`\" pulumi-lang-go=\"`placementGroupId`\" pulumi-lang-python=\"`placement_group_id`\" pulumi-lang-yaml=\"`placementGroupId`\" pulumi-lang-java=\"`placementGroupId`\"\u003e`placement_group_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the placement group is associated with.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the placement group exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstancePlacementGroup.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The organization ID the placement group is associated with.\n","type":"string"},"placementGroupId":{"type":"string"},"policyMode":{"description":"The [policy mode](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) of the placement group.\n","type":"string"},"policyRespected":{"description":"Is true when the policy is respected.\n","type":"boolean"},"policyType":{"description":"The [policy type](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) of the placement group.\n","type":"string"},"projectId":{"type":"string"},"tags":{"description":"A list of tags to apply to the placement group.\n","items":{"type":"string"},"type":"array"},"zone":{"type":"string"}},"required":["organizationId","policyMode","policyRespected","policyType","projectId","tags","id"],"type":"object"}},"scaleway:index/getInstancePrivateNic:getInstancePrivateNic":{"deprecationMessage":"scaleway.index/getinstanceprivatenic.getInstancePrivateNic has been deprecated in favor of scaleway.instance/getprivatenic.getPrivateNic","description":"Gets information about an instance private NIC.\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 byNicId = scaleway.instance.getPrivateNic({\n    serverId: \"11111111-1111-1111-1111-111111111111\",\n    privateNicId: \"11111111-1111-1111-1111-111111111111\",\n});\nconst byPnId = scaleway.instance.getPrivateNic({\n    serverId: \"11111111-1111-1111-1111-111111111111\",\n    privateNetworkId: \"11111111-1111-1111-1111-111111111111\",\n});\nconst byTags = scaleway.instance.getPrivateNic({\n    serverId: \"11111111-1111-1111-1111-111111111111\",\n    tags: [\"mytag\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nby_nic_id = scaleway.instance.get_private_nic(server_id=\"11111111-1111-1111-1111-111111111111\",\n    private_nic_id=\"11111111-1111-1111-1111-111111111111\")\nby_pn_id = scaleway.instance.get_private_nic(server_id=\"11111111-1111-1111-1111-111111111111\",\n    private_network_id=\"11111111-1111-1111-1111-111111111111\")\nby_tags = scaleway.instance.get_private_nic(server_id=\"11111111-1111-1111-1111-111111111111\",\n    tags=[\"mytag\"])\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 byNicId = Scaleway.Instance.GetPrivateNic.Invoke(new()\n    {\n        ServerId = \"11111111-1111-1111-1111-111111111111\",\n        PrivateNicId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    var byPnId = Scaleway.Instance.GetPrivateNic.Invoke(new()\n    {\n        ServerId = \"11111111-1111-1111-1111-111111111111\",\n        PrivateNetworkId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    var byTags = Scaleway.Instance.GetPrivateNic.Invoke(new()\n    {\n        ServerId = \"11111111-1111-1111-1111-111111111111\",\n        Tags = new[]\n        {\n            \"mytag\",\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.LookupPrivateNic(ctx, \u0026instance.LookupPrivateNicArgs{\n\t\t\tServerId:     \"11111111-1111-1111-1111-111111111111\",\n\t\t\tPrivateNicId: 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\t_, err = instance.LookupPrivateNic(ctx, \u0026instance.LookupPrivateNicArgs{\n\t\t\tServerId:         \"11111111-1111-1111-1111-111111111111\",\n\t\t\tPrivateNetworkId: 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\t_, err = instance.LookupPrivateNic(ctx, \u0026instance.LookupPrivateNicArgs{\n\t\t\tServerId: \"11111111-1111-1111-1111-111111111111\",\n\t\t\tTags: []string{\n\t\t\t\t\"mytag\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.instance.InstanceFunctions;\nimport com.pulumi.scaleway.instance.inputs.GetPrivateNicArgs;\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 byNicId = InstanceFunctions.getPrivateNic(GetPrivateNicArgs.builder()\n            .serverId(\"11111111-1111-1111-1111-111111111111\")\n            .privateNicId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        final var byPnId = InstanceFunctions.getPrivateNic(GetPrivateNicArgs.builder()\n            .serverId(\"11111111-1111-1111-1111-111111111111\")\n            .privateNetworkId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        final var byTags = InstanceFunctions.getPrivateNic(GetPrivateNicArgs.builder()\n            .serverId(\"11111111-1111-1111-1111-111111111111\")\n            .tags(\"mytag\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  byNicId:\n    fn::invoke:\n      function: scaleway:instance:getPrivateNic\n      arguments:\n        serverId: 11111111-1111-1111-1111-111111111111\n        privateNicId: 11111111-1111-1111-1111-111111111111\n  byPnId:\n    fn::invoke:\n      function: scaleway:instance:getPrivateNic\n      arguments:\n        serverId: 11111111-1111-1111-1111-111111111111\n        privateNetworkId: 11111111-1111-1111-1111-111111111111\n  byTags:\n    fn::invoke:\n      function: scaleway:instance:getPrivateNic\n      arguments:\n        serverId: 11111111-1111-1111-1111-111111111111\n        tags:\n          - mytag\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstancePrivateNic.\n","properties":{"privateNetworkId":{"type":"string","description":"The ID of the private network\nOnly one of \u003cspan pulumi-lang-nodejs=\"`privateNicId`\" pulumi-lang-dotnet=\"`PrivateNicId`\" pulumi-lang-go=\"`privateNicId`\" pulumi-lang-python=\"`private_nic_id`\" pulumi-lang-yaml=\"`privateNicId`\" pulumi-lang-java=\"`privateNicId`\"\u003e`private_nic_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e should be specified.\n"},"privateNicId":{"type":"string","description":"The ID of the instance server private nic\nOnly one of \u003cspan pulumi-lang-nodejs=\"`privateNicId`\" pulumi-lang-dotnet=\"`PrivateNicId`\" pulumi-lang-go=\"`privateNicId`\" pulumi-lang-python=\"`private_nic_id`\" pulumi-lang-yaml=\"`privateNicId`\" pulumi-lang-java=\"`privateNicId`\"\u003e`private_nic_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e should be specified.\n"},"serverId":{"type":"string","description":"The server's id\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the private NIC.\nAs datasource only returns one private NIC, the search with given tags must return only one result\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the private nic exists.\n"}},"type":"object","required":["serverId"]},"outputs":{"description":"A collection of values returned by getInstancePrivateNic.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipIds":{"items":{"type":"string"},"type":"array"},"ipamIpIds":{"items":{"type":"string"},"type":"array"},"macAddress":{"type":"string"},"privateIps":{"items":{"$ref":"#/types/scaleway:index/getInstancePrivateNicPrivateIp:getInstancePrivateNicPrivateIp"},"type":"array"},"privateNetworkId":{"type":"string"},"privateNicId":{"type":"string"},"serverId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"zone":{"type":"string"}},"required":["ipIds","ipamIpIds","macAddress","privateIps","serverId","id"],"type":"object"}},"scaleway:index/getInstanceSecurityGroup:getInstanceSecurityGroup":{"deprecationMessage":"scaleway.index/getinstancesecuritygroup.getInstanceSecurityGroup has been deprecated in favor of scaleway.instance/getsecuritygroup.getSecurityGroup","description":"Gets information about a Security Group.\n\n","inputs":{"description":"A collection of arguments for invoking getInstanceSecurityGroup.\n","properties":{"name":{"type":"string","description":"The security group name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the security group is associated with.\n"},"securityGroupId":{"type":"string","description":"The security group id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the security group exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceSecurityGroup.\n","properties":{"description":{"type":"string"},"enableDefaultSecurity":{"type":"boolean"},"externalRules":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"inboundDefaultPolicy":{"description":"The default policy on incoming traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n","type":"string"},"inboundRules":{"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n","items":{"$ref":"#/types/scaleway:index/getInstanceSecurityGroupInboundRule:getInstanceSecurityGroupInboundRule"},"type":"array"},"name":{"type":"string"},"organizationId":{"description":"The ID of the organization the security group is associated with.\n","type":"string"},"outboundDefaultPolicy":{"description":"The default policy on outgoing traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n","type":"string"},"outboundRules":{"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n","items":{"$ref":"#/types/scaleway:index/getInstanceSecurityGroupOutboundRule:getInstanceSecurityGroupOutboundRule"},"type":"array"},"projectId":{"type":"string"},"securityGroupId":{"type":"string"},"stateful":{"type":"boolean"},"tags":{"items":{"type":"string"},"type":"array"},"zone":{"type":"string"}},"required":["description","enableDefaultSecurity","externalRules","inboundDefaultPolicy","inboundRules","organizationId","outboundDefaultPolicy","outboundRules","stateful","tags","id"],"type":"object"}},"scaleway:index/getInstanceServer:getInstanceServer":{"deprecationMessage":"scaleway.index/getinstanceserver.getInstanceServer has been deprecated in favor of scaleway.instance/getserver.getServer","description":"Gets information about an instance server.\n\n","inputs":{"description":"A collection of arguments for invoking getInstanceServer.\n","properties":{"name":{"type":"string","description":"The server name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`serverId`\" pulumi-lang-dotnet=\"`ServerId`\" pulumi-lang-go=\"`serverId`\" pulumi-lang-python=\"`server_id`\" pulumi-lang-yaml=\"`serverId`\" pulumi-lang-java=\"`serverId`\"\u003e`server_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the instance server is associated with.\n"},"serverId":{"type":"string","description":"The server id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`serverId`\" pulumi-lang-dotnet=\"`ServerId`\" pulumi-lang-go=\"`serverId`\" pulumi-lang-python=\"`server_id`\" pulumi-lang-yaml=\"`serverId`\" pulumi-lang-java=\"`serverId`\"\u003e`server_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceServer.\n","properties":{"additionalVolumeIds":{"description":"The [additional volumes](https://developers.scaleway.com/en/products/instance/api/#volumes-7e8a39)\nattached to the server.\n","items":{"type":"string"},"type":"array"},"adminPasswordEncryptionSshKeyId":{"type":"string"},"bootType":{"type":"string"},"bootscriptId":{"type":"string"},"cloudInit":{"description":"The cloud init script associated with this server.\n","type":"string"},"enableDynamicIp":{"description":"True if dynamic IP in enable on the server.\n","type":"boolean"},"filesystems":{"items":{"$ref":"#/types/scaleway:index/getInstanceServerFilesystem:getInstanceServerFilesystem"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"image":{"description":"The UUID and the label of the base image used by the server.\n","type":"string"},"ipId":{"type":"string"},"ipIds":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"organizationId":{"description":"The ID of the organization the server is associated with.\n","type":"string"},"placementGroupId":{"description":"The [placement group](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) the server is attached to.\n","type":"string"},"placementGroupPolicyRespected":{"description":"True when the placement group policy is respected.\n","type":"boolean"},"privateIps":{"description":"The list of private IPs of the server.\n","items":{"$ref":"#/types/scaleway:index/getInstanceServerPrivateIp:getInstanceServerPrivateIp"},"type":"array"},"privateNetworks":{"items":{"$ref":"#/types/scaleway:index/getInstanceServerPrivateNetwork:getInstanceServerPrivateNetwork"},"type":"array"},"projectId":{"type":"string"},"protected":{"type":"boolean"},"publicIps":{"description":"The list of public IPs of the server\n","items":{"$ref":"#/types/scaleway:index/getInstanceServerPublicIp:getInstanceServerPublicIp"},"type":"array"},"replaceOnTypeChange":{"type":"boolean"},"rootVolumes":{"items":{"$ref":"#/types/scaleway:index/getInstanceServerRootVolume:getInstanceServerRootVolume"},"type":"array"},"securityGroupId":{"description":"The [security group](https://developers.scaleway.com/en/products/instance/api/#security-groups-8d7f89) the server is attached to.\n","type":"string"},"serverId":{"type":"string"},"state":{"description":"The state of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`started`\" pulumi-lang-dotnet=\"`Started`\" pulumi-lang-go=\"`started`\" pulumi-lang-python=\"`started`\" pulumi-lang-yaml=\"`started`\" pulumi-lang-java=\"`started`\"\u003e`started`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`standby`\" pulumi-lang-dotnet=\"`Standby`\" pulumi-lang-go=\"`standby`\" pulumi-lang-python=\"`standby`\" pulumi-lang-yaml=\"`standby`\" pulumi-lang-java=\"`standby`\"\u003e`standby`\u003c/span\u003e.\n","type":"string"},"tags":{"description":"The tags associated with the server.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The commercial type of the server.\nYou find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).\n","type":"string"},"userData":{"additionalProperties":{"type":"string"},"description":"The user data associated with the server.\n","type":"object"},"zone":{"type":"string"}},"required":["additionalVolumeIds","adminPasswordEncryptionSshKeyId","bootType","bootscriptId","cloudInit","enableDynamicIp","filesystems","image","ipId","ipIds","organizationId","placementGroupId","placementGroupPolicyRespected","privateIps","privateNetworks","protected","publicIps","replaceOnTypeChange","rootVolumes","securityGroupId","state","tags","type","userData","id"],"type":"object"}},"scaleway:index/getInstanceServers:getInstanceServers":{"deprecationMessage":"scaleway.index/getinstanceservers.getInstanceServers has been deprecated in favor of scaleway.instance/getservers.getServers","description":"Gets information about multiple instance servers.\n\n## Examples\n\n","inputs":{"description":"A collection of arguments for invoking getInstanceServers.\n","properties":{"name":{"type":"string","description":"The server name used as filter. Servers with a name like it are listed.\n"},"projectId":{"type":"string","description":"The ID of the project the server is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. Servers with these exact tags are listed.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which servers exist.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceServers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the server.\n","type":"string"},"organizationId":{"description":"The organization ID the server is associated with.\n","type":"string"},"projectId":{"description":"The ID of the project the server is associated with.\n","type":"string"},"servers":{"description":"List of found servers\n","items":{"$ref":"#/types/scaleway:index/getInstanceServersServer:getInstanceServersServer"},"type":"array"},"tags":{"description":"The tags associated with the server.\n","items":{"type":"string"},"type":"array"},"zone":{"description":"The zone in which the server is.\n","type":"string"}},"required":["organizationId","projectId","servers","id"],"type":"object"}},"scaleway:index/getInstanceSnapshot:getInstanceSnapshot":{"deprecationMessage":"scaleway.index/getinstancesnapshot.getInstanceSnapshot has been deprecated in favor of scaleway.instance/getsnapshot.getSnapshot","description":"Gets information about an instance snapshot.\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\n// Get info by snapshot name\nconst byName = scaleway.instance.getSnapshot({\n    name: \"my-snapshot-name\",\n});\n// Get info by snapshot ID\nconst byId = scaleway.instance.getSnapshot({\n    snapshotId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by snapshot name\nby_name = scaleway.instance.get_snapshot(name=\"my-snapshot-name\")\n# Get info by snapshot ID\nby_id = scaleway.instance.get_snapshot(snapshot_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    // Get info by snapshot name\n    var byName = Scaleway.Instance.GetSnapshot.Invoke(new()\n    {\n        Name = \"my-snapshot-name\",\n    });\n\n    // Get info by snapshot ID\n    var byId = Scaleway.Instance.GetSnapshot.Invoke(new()\n    {\n        SnapshotId = \"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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by snapshot name\n\t\t_, err := instance.LookupSnapshot(ctx, \u0026instance.LookupSnapshotArgs{\n\t\t\tName: pulumi.StringRef(\"my-snapshot-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by snapshot ID\n\t\t_, err = instance.LookupSnapshot(ctx, \u0026instance.LookupSnapshotArgs{\n\t\t\tSnapshotId: 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.instance.InstanceFunctions;\nimport com.pulumi.scaleway.instance.inputs.GetSnapshotArgs;\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        // Get info by snapshot name\n        final var byName = InstanceFunctions.getSnapshot(GetSnapshotArgs.builder()\n            .name(\"my-snapshot-name\")\n            .build());\n\n        // Get info by snapshot ID\n        final var byId = InstanceFunctions.getSnapshot(GetSnapshotArgs.builder()\n            .snapshotId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by snapshot name\n  byName:\n    fn::invoke:\n      function: scaleway:instance:getSnapshot\n      arguments:\n        name: my-snapshot-name\n  # Get info by snapshot ID\n  byId:\n    fn::invoke:\n      function: scaleway:instance:getSnapshot\n      arguments:\n        snapshotId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstanceSnapshot.\n","properties":{"name":{"type":"string","description":"The snapshot name.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the snapshot is associated with.\n"},"snapshotId":{"type":"string","description":"The snapshot id.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the snapshot exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceSnapshot.\n","properties":{"createdAt":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imports":{"items":{"$ref":"#/types/scaleway:index/getInstanceSnapshotImport:getInstanceSnapshotImport"},"type":"array"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"sizeInGb":{"type":"integer"},"snapshotId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"},"volumeId":{"type":"string"},"zone":{"type":"string"}},"required":["createdAt","imports","organizationId","sizeInGb","tags","type","volumeId","id"],"type":"object"}},"scaleway:index/getInstanceVolume:getInstanceVolume":{"deprecationMessage":"scaleway.index/getinstancevolume.getInstanceVolume has been deprecated in favor of scaleway.instance/getvolume.getVolume","description":"Gets information about an instance volume.\n\n","inputs":{"description":"A collection of arguments for invoking getInstanceVolume.\n","properties":{"name":{"type":"string","description":"The volume name.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`volumeId`\" pulumi-lang-dotnet=\"`VolumeId`\" pulumi-lang-go=\"`volumeId`\" pulumi-lang-python=\"`volume_id`\" pulumi-lang-yaml=\"`volumeId`\" pulumi-lang-java=\"`volumeId`\"\u003e`volume_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the volume is associated with.\n"},"volumeId":{"type":"string","description":"The volume id.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`volumeId`\" pulumi-lang-dotnet=\"`VolumeId`\" pulumi-lang-go=\"`volumeId`\" pulumi-lang-python=\"`volume_id`\" pulumi-lang-yaml=\"`volumeId`\" pulumi-lang-java=\"`volumeId`\"\u003e`volume_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the volume exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstanceVolume.\n","properties":{"fromSnapshotId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"migrateToSbs":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"description":"The ID of the organization the volume is associated with.\n","type":"string"},"projectId":{"type":"string"},"serverId":{"type":"string"},"sizeInGb":{"type":"integer"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"},"volumeId":{"type":"string"},"zone":{"type":"string"}},"required":["fromSnapshotId","migrateToSbs","organizationId","serverId","sizeInGb","tags","type","id"],"type":"object"}},"scaleway:index/getIotDevice:getIotDevice":{"deprecationMessage":"scaleway.index/getiotdevice.getIotDevice has been deprecated in favor of scaleway.iot/getdevice.getDevice","description":"Gets information about an IOT Device.\n\n","inputs":{"description":"A collection of arguments for invoking getIotDevice.\n","properties":{"deviceId":{"type":"string","description":"The device ID.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`deviceId`\" pulumi-lang-dotnet=\"`DeviceId`\" pulumi-lang-go=\"`deviceId`\" pulumi-lang-python=\"`device_id`\" pulumi-lang-yaml=\"`deviceId`\" pulumi-lang-java=\"`deviceId`\"\u003e`device_id`\u003c/span\u003e should be specified.\n"},"hubId":{"type":"string","description":"The hub ID.\n"},"name":{"type":"string","description":"The name of the Hub.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`deviceId`\" pulumi-lang-dotnet=\"`DeviceId`\" pulumi-lang-go=\"`deviceId`\" pulumi-lang-python=\"`device_id`\" pulumi-lang-yaml=\"`deviceId`\" pulumi-lang-java=\"`deviceId`\"\u003e`device_id`\u003c/span\u003e should be specified.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the hub exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIotDevice.\n","properties":{"allowInsecure":{"type":"boolean"},"allowMultipleConnections":{"type":"boolean"},"certificates":{"items":{"$ref":"#/types/scaleway:index/getIotDeviceCertificate:getIotDeviceCertificate"},"type":"array"},"createdAt":{"type":"string"},"description":{"type":"string"},"deviceId":{"type":"string"},"hubId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isConnected":{"type":"boolean"},"lastActivityAt":{"type":"string"},"messageFilters":{"items":{"$ref":"#/types/scaleway:index/getIotDeviceMessageFilter:getIotDeviceMessageFilter"},"type":"array"},"name":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"}},"required":["allowInsecure","allowMultipleConnections","certificates","createdAt","description","hubId","isConnected","lastActivityAt","messageFilters","status","updatedAt","id"],"type":"object"}},"scaleway:index/getIotHub:getIotHub":{"deprecationMessage":"scaleway.index/getiothub.getIotHub has been deprecated in favor of scaleway.iot/gethub.getHub","description":"Gets information about an IOT Hub.\n\n","inputs":{"description":"A collection of arguments for invoking getIotHub.\n","properties":{"hubId":{"type":"string","description":"The Hub ID.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`hubId`\" pulumi-lang-dotnet=\"`HubId`\" pulumi-lang-go=\"`hubId`\" pulumi-lang-python=\"`hub_id`\" pulumi-lang-yaml=\"`hubId`\" pulumi-lang-java=\"`hubId`\"\u003e`hub_id`\u003c/span\u003e should be specified.\n"},"name":{"type":"string","description":"The name of the Hub.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`hubId`\" pulumi-lang-dotnet=\"`HubId`\" pulumi-lang-go=\"`hubId`\" pulumi-lang-python=\"`hub_id`\" pulumi-lang-yaml=\"`hubId`\" pulumi-lang-java=\"`hubId`\"\u003e`hub_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the hub is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the hub exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIotHub.\n","properties":{"connectedDeviceCount":{"type":"integer"},"createdAt":{"type":"string"},"deviceAutoProvisioning":{"type":"boolean"},"deviceCount":{"type":"integer"},"disableEvents":{"type":"boolean"},"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"eventsTopicPrefix":{"type":"string"},"hubCa":{"type":"string"},"hubCaChallenge":{"type":"string"},"hubId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"mqttCa":{"type":"string"},"mqttCaUrl":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"productPlan":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"}},"required":["connectedDeviceCount","createdAt","deviceAutoProvisioning","deviceCount","disableEvents","enabled","endpoint","eventsTopicPrefix","hubCa","hubCaChallenge","mqttCa","mqttCaUrl","organizationId","productPlan","status","updatedAt","id"],"type":"object"}},"scaleway:index/getIpamIp:getIpamIp":{"deprecationMessage":"scaleway.index/getipamip.getIpamIp has been deprecated in favor of scaleway.ipam/getip.getIp","description":"Gets information about IP addresses managed by Scaleway's IP Address Management (IPAM) service. IPAM is used for the DHCP bundled with VPC Private Networks.\n\nFor more information about IPAM, see the main [documentation](https://www.scaleway.com/en/docs/vpc/concepts/#ipam).\n\n## Examples\n\n### IPAM IP ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by ipam ip id\nconst byId = scaleway.ipam.getIp({\n    ipamIpId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by ipam ip id\nby_id = scaleway.ipam.get_ip(ipam_ip_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    // Get info by ipam ip id\n    var byId = Scaleway.Ipam.GetIp.Invoke(new()\n    {\n        IpamIpId = \"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/ipam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by ipam ip id\n\t\t_, err := ipam.LookupIp(ctx, \u0026ipam.LookupIpArgs{\n\t\t\tIpamIpId: 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.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpArgs;\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        // Get info by ipam ip id\n        final var byId = IpamFunctions.getIp(GetIpArgs.builder()\n            .ipamIpId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by ipam ip id\n  byId:\n    fn::invoke:\n      function: scaleway:ipam:getIp\n      arguments:\n        ipamIpId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Instance Private Network IP\n\nGet an Instance's IP on a Private Network.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Connect your instance to a private network using a private nic.\nconst nic = new scaleway.instance.PrivateNic(\"nic\", {\n    serverId: server.id,\n    privateNetworkId: pn.id,\n});\n// Find server private IPv4 using private-nic mac address\nconst byMac = scaleway.ipam.getIpOutput({\n    macAddress: nic.macAddress,\n    type: \"ipv4\",\n});\n// Find server private IPv4 using private-nic id\nconst byId = scaleway.ipam.getIpOutput({\n    resource: {\n        id: nic.id,\n        type: \"instance_private_nic\",\n    },\n    type: \"ipv4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Connect your instance to a private network using a private nic.\nnic = scaleway.instance.PrivateNic(\"nic\",\n    server_id=server[\"id\"],\n    private_network_id=pn[\"id\"])\n# Find server private IPv4 using private-nic mac address\nby_mac = scaleway.ipam.get_ip_output(mac_address=nic.mac_address,\n    type=\"ipv4\")\n# Find server private IPv4 using private-nic id\nby_id = scaleway.ipam.get_ip_output(resource={\n        \"id\": nic.id,\n        \"type\": \"instance_private_nic\",\n    },\n    type=\"ipv4\")\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    // Connect your instance to a private network using a private nic.\n    var nic = new Scaleway.Instance.PrivateNic(\"nic\", new()\n    {\n        ServerId = server.Id,\n        PrivateNetworkId = pn.Id,\n    });\n\n    // Find server private IPv4 using private-nic mac address\n    var byMac = Scaleway.Ipam.GetIp.Invoke(new()\n    {\n        MacAddress = nic.MacAddress,\n        Type = \"ipv4\",\n    });\n\n    // Find server private IPv4 using private-nic id\n    var byId = Scaleway.Ipam.GetIp.Invoke(new()\n    {\n        Resource = new Scaleway.Ipam.Inputs.GetIpResourceInputArgs\n        {\n            Id = nic.Id,\n            Type = \"instance_private_nic\",\n        },\n        Type = \"ipv4\",\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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/ipam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Connect your instance to a private network using a private nic.\n\t\tnic, err := instance.NewPrivateNic(ctx, \"nic\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         pulumi.Any(server.Id),\n\t\t\tPrivateNetworkId: pulumi.Any(pn.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find server private IPv4 using private-nic mac address\n\t\t_ = ipam.LookupIpOutput(ctx, ipam.GetIpOutputArgs{\n\t\t\tMacAddress: nic.MacAddress,\n\t\t\tType:       pulumi.String(\"ipv4\"),\n\t\t}, nil)\n\t\t// Find server private IPv4 using private-nic id\n\t\t_ = ipam.LookupIpOutput(ctx, ipam.GetIpOutputArgs{\n\t\t\tResource: \u0026ipam.GetIpResourceArgs{\n\t\t\t\tId:   nic.ID(),\n\t\t\t\tType: pulumi.String(\"instance_private_nic\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"ipv4\"),\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.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpArgs;\nimport com.pulumi.scaleway.ipam.inputs.GetIpResourceArgs;\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        // Connect your instance to a private network using a private nic.\n        var nic = new PrivateNic(\"nic\", PrivateNicArgs.builder()\n            .serverId(server.id())\n            .privateNetworkId(pn.id())\n            .build());\n\n        // Find server private IPv4 using private-nic mac address\n        final var byMac = IpamFunctions.getIp(GetIpArgs.builder()\n            .macAddress(nic.macAddress())\n            .type(\"ipv4\")\n            .build());\n\n        // Find server private IPv4 using private-nic id\n        final var byId = IpamFunctions.getIp(GetIpArgs.builder()\n            .resource(GetIpResourceArgs.builder()\n                .id(nic.id())\n                .type(\"instance_private_nic\")\n                .build())\n            .type(\"ipv4\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Connect your instance to a private network using a private nic.\n  nic:\n    type: scaleway:instance:PrivateNic\n    properties:\n      serverId: ${server.id}\n      privateNetworkId: ${pn.id}\nvariables:\n  # Find server private IPv4 using private-nic mac address\n  byMac:\n    fn::invoke:\n      function: scaleway:ipam:getIp\n      arguments:\n        macAddress: ${nic.macAddress}\n        type: ipv4\n  # Find server private IPv4 using private-nic id\n  byId:\n    fn::invoke:\n      function: scaleway:ipam:getIp\n      arguments:\n        resource:\n          id: ${nic.id}\n          type: instance_private_nic\n        type: ipv4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDB instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Find the private IPv4 using resource name\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst main = new scaleway.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    privateNetwork: {\n        pnId: pn.id,\n    },\n});\nconst byName = scaleway.ipam.getIpOutput({\n    resource: {\n        name: main.name,\n        type: \"rdb_instance\",\n    },\n    type: \"ipv4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Find the private IPv4 using resource name\npn = scaleway.network.PrivateNetwork(\"pn\")\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    private_network={\n        \"pn_id\": pn.id,\n    })\nby_name = scaleway.ipam.get_ip_output(resource={\n        \"name\": main.name,\n        \"type\": \"rdb_instance\",\n    },\n    type=\"ipv4\")\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    // Find the private IPv4 using resource name\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var main = new Scaleway.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        PrivateNetwork = new Scaleway.Databases.Inputs.InstancePrivateNetworkArgs\n        {\n            PnId = pn.Id,\n        },\n    });\n\n    var byName = Scaleway.Ipam.GetIp.Invoke(new()\n    {\n        Resource = new Scaleway.Ipam.Inputs.GetIpResourceInputArgs\n        {\n            Name = main.Name,\n            Type = \"rdb_instance\",\n        },\n        Type = \"ipv4\",\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/databases\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find the private IPv4 using resource name\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tPrivateNetwork: \u0026databases.InstancePrivateNetworkArgs{\n\t\t\t\tPnId: pn.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = ipam.LookupIpOutput(ctx, ipam.GetIpOutputArgs{\n\t\t\tResource: \u0026ipam.GetIpResourceArgs{\n\t\t\t\tName: main.Name,\n\t\t\t\tType: pulumi.String(\"rdb_instance\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"ipv4\"),\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.inputs.InstancePrivateNetworkArgs;\nimport com.pulumi.scaleway.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpArgs;\nimport com.pulumi.scaleway.ipam.inputs.GetIpResourceArgs;\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        // Find the private IPv4 using resource name\n        var pn = new PrivateNetwork(\"pn\");\n\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .privateNetwork(InstancePrivateNetworkArgs.builder()\n                .pnId(pn.id())\n                .build())\n            .build());\n\n        final var byName = IpamFunctions.getIp(GetIpArgs.builder()\n            .resource(GetIpResourceArgs.builder()\n                .name(main.name())\n                .type(\"rdb_instance\")\n                .build())\n            .type(\"ipv4\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Find the private IPv4 using resource name\n  pn:\n    type: scaleway:network:PrivateNetwork\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      privateNetwork:\n        pnId: ${pn.id}\nvariables:\n  byName:\n    fn::invoke:\n      function: scaleway:ipam:getIp\n      arguments:\n        resource:\n          name: ${main.name}\n          type: rdb_instance\n        type: ipv4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpamIp.\n","properties":{"attached":{"type":"boolean","description":"Defines whether to filter only for IPs which are attached to a resource. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\n"},"ipamIpId":{"type":"string","description":"The IPAM IP ID. Cannot be used with any other arguments.\n"},"macAddress":{"type":"string","description":"The MAC address linked to the IP. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the IP belongs to. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the IP exists.\n","willReplaceOnChanges":true},"resource":{"$ref":"#/types/scaleway:index/getIpamIpResource:getIpamIpResource","description":"Filter by resource ID, type or name. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\nIf specified, \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is required, and at least one of \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e must be set.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\nAs datasource only returns one IP, the search with given tags must return only one result.\n"},"type":{"type":"string","description":"The type of IP to search for (\u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e). Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\n"},"zonal":{"type":"string","description":"Only IPs that are zonal, and in this zone, will be returned.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpamIp.\n","properties":{"address":{"description":"The IP address.\n","type":"string"},"addressCidr":{"description":"the IP address in CIDR notation.\n","type":"string"},"attached":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipamIpId":{"type":"string"},"macAddress":{"type":"string"},"organizationId":{"type":"string"},"privateNetworkId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"resource":{"$ref":"#/types/scaleway:index/getIpamIpResource:getIpamIpResource"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"},"zonal":{"type":"string"}},"required":["address","addressCidr","organizationId","projectId","id"],"type":"object"}},"scaleway:index/getIpamIps:getIpamIps":{"deprecationMessage":"scaleway.index/getipamips.getIpamIps has been deprecated in favor of scaleway.ipam/getips.getIps","description":"Gets information about multiple IP addresses managed by Scaleway's IP Address Management (IPAM) service.\n\nFor more information about IPAM, see the main [documentation](https://www.scaleway.com/en/docs/vpc/concepts/#ipam).\n\n## Examples\n\n### By tag\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst byTag = scaleway.ipam.getIps({\n    tags: [\"tag\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nby_tag = scaleway.ipam.get_ips(tags=[\"tag\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var byTag = Scaleway.Ipam.GetIps.Invoke(new()\n    {\n        Tags = new[]\n        {\n            \"tag\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/ipam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ipam.GetIps(ctx, \u0026ipam.GetIpsArgs{\n\t\t\tTags: []string{\n\t\t\t\t\"tag\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpsArgs;\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 byTag = IpamFunctions.getIps(GetIpsArgs.builder()\n            .tags(\"tag\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  byTag:\n    fn::invoke:\n      function: scaleway:ipam:getIps\n      arguments:\n        tags:\n          - tag\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### By type and 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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv4Subnet: {\n        subnet: \"172.16.32.0/22\",\n    },\n});\nconst redis01 = new scaleway.redis.Cluster(\"redis01\", {\n    name: \"my_redis_cluster\",\n    version: \"7.0.5\",\n    nodeType: \"RED1-XS\",\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    clusterSize: 3,\n    privateNetworks: [{\n        id: pn01.id,\n    }],\n});\nconst byTypeAndResource = scaleway.ipam.getIpsOutput({\n    type: \"ipv4\",\n    resource: {\n        id: redis01.id,\n        type: \"redis_cluster\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv4_subnet={\n        \"subnet\": \"172.16.32.0/22\",\n    })\nredis01 = scaleway.redis.Cluster(\"redis01\",\n    name=\"my_redis_cluster\",\n    version=\"7.0.5\",\n    node_type=\"RED1-XS\",\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    cluster_size=3,\n    private_networks=[{\n        \"id\": pn01.id,\n    }])\nby_type_and_resource = scaleway.ipam.get_ips_output(type=\"ipv4\",\n    resource={\n        \"id\": redis01.id,\n        \"type\": \"redis_cluster\",\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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.32.0/22\",\n        },\n    });\n\n    var redis01 = new Scaleway.Redis.Cluster(\"redis01\", new()\n    {\n        Name = \"my_redis_cluster\",\n        Version = \"7.0.5\",\n        NodeType = \"RED1-XS\",\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        ClusterSize = 3,\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Redis.Inputs.ClusterPrivateNetworkArgs\n            {\n                Id = pn01.Id,\n            },\n        },\n    });\n\n    var byTypeAndResource = Scaleway.Ipam.GetIps.Invoke(new()\n    {\n        Type = \"ipv4\",\n        Resource = new Scaleway.Ipam.Inputs.GetIpsResourceInputArgs\n        {\n            Id = redis01.Id,\n            Type = \"redis_cluster\",\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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/redis\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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\tredis01, err := redis.NewCluster(ctx, \"redis01\", \u0026redis.ClusterArgs{\n\t\t\tName:        pulumi.String(\"my_redis_cluster\"),\n\t\t\tVersion:     pulumi.String(\"7.0.5\"),\n\t\t\tNodeType:    pulumi.String(\"RED1-XS\"),\n\t\t\tUserName:    pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:    pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tClusterSize: pulumi.Int(3),\n\t\t\tPrivateNetworks: redis.ClusterPrivateNetworkArray{\n\t\t\t\t\u0026redis.ClusterPrivateNetworkArgs{\n\t\t\t\t\tId: 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_ = ipam.GetIpsOutput(ctx, ipam.GetIpsOutputArgs{\n\t\t\tType: pulumi.String(\"ipv4\"),\n\t\t\tResource: \u0026ipam.GetIpsResourceArgs{\n\t\t\t\tId:   redis01.ID(),\n\t\t\t\tType: pulumi.String(\"redis_cluster\"),\n\t\t\t},\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.redis.Cluster;\nimport com.pulumi.scaleway.redis.ClusterArgs;\nimport com.pulumi.scaleway.redis.inputs.ClusterPrivateNetworkArgs;\nimport com.pulumi.scaleway.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpsArgs;\nimport com.pulumi.scaleway.ipam.inputs.GetIpsResourceArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.32.0/22\")\n                .build())\n            .build());\n\n        var redis01 = new Cluster(\"redis01\", ClusterArgs.builder()\n            .name(\"my_redis_cluster\")\n            .version(\"7.0.5\")\n            .nodeType(\"RED1-XS\")\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .clusterSize(3)\n            .privateNetworks(ClusterPrivateNetworkArgs.builder()\n                .id(pn01.id())\n                .build())\n            .build());\n\n        final var byTypeAndResource = IpamFunctions.getIps(GetIpsArgs.builder()\n            .type(\"ipv4\")\n            .resource(GetIpsResourceArgs.builder()\n                .id(redis01.id())\n                .type(\"redis_cluster\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv4Subnet:\n        subnet: 172.16.32.0/22\n  redis01:\n    type: scaleway:redis:Cluster\n    properties:\n      name: my_redis_cluster\n      version: 7.0.5\n      nodeType: RED1-XS\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      clusterSize: 3\n      privateNetworks:\n        - id: ${pn01.id}\nvariables:\n  byTypeAndResource:\n    fn::invoke:\n      function: scaleway:ipam:getIps\n      arguments:\n        type: ipv4\n        resource:\n          id: ${redis01.id}\n          type: redis_cluster\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIpamIps.\n","properties":{"attached":{"type":"boolean","description":"Defines whether to filter only for IPs which are attached to a resource.\n"},"macAddress":{"type":"string","description":"The linked MAC address to filter for.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network to filter for.\n"},"projectId":{"type":"string","description":"The ID of the Project to filter for.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region to filter for.\n","willReplaceOnChanges":true},"resource":{"$ref":"#/types/scaleway:index/getIpamIpsResource:getIpamIpsResource","description":"Filter for a resource attached to the IP, using resource ID, type or name.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The IP tags to filter for.\n"},"type":{"type":"string","description":"The type of IP to filter for (\u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e).\n"},"zonal":{"type":"string","description":"Only IPs that are zonal, and in this zone, will be returned.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIpamIps.\n","properties":{"attached":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ips":{"description":"List of found IPs.\n","items":{"$ref":"#/types/scaleway:index/getIpamIpsIp:getIpamIpsIp"},"type":"array"},"macAddress":{"description":"The associated MAC address.\n","type":"string"},"organizationId":{"type":"string"},"privateNetworkId":{"type":"string"},"projectId":{"description":"The ID of the Project the resource is associated with.\n","type":"string"},"region":{"description":"The region of the IP.\n","type":"string"},"resource":{"$ref":"#/types/scaleway:index/getIpamIpsResource:getIpamIpsResource","description":"The list of public IPs attached to the resource.\n"},"tags":{"description":"The tags associated with the IP.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The type of resource.\n","type":"string"},"zonal":{"type":"string"}},"required":["ips","organizationId","projectId","id"],"type":"object"}},"scaleway:index/getK8sVersion:getK8sVersion":{"deprecationMessage":"scaleway.index/getk8sversion.getK8sVersion has been deprecated in favor of scaleway.kubernetes/getversion.getVersion","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.kubernetes.getVersion`\" pulumi-lang-dotnet=\"`scaleway.kubernetes.getVersion`\" pulumi-lang-go=\"`kubernetes.getVersion`\" pulumi-lang-python=\"`kubernetes_get_version`\" pulumi-lang-yaml=\"`scaleway.kubernetes.getVersion`\" pulumi-lang-java=\"`scaleway.kubernetes.getVersion`\"\u003e`scaleway.kubernetes.getVersion`\u003c/span\u003e data source is used to retrieve information about a Kubernetes version.\n\nRefer to the Kubernetes [documentation](https://www.scaleway.com/en/docs/compute/kubernetes/) and [API documentation](https://www.scaleway.com/en/developers/api/kubernetes/) for more information.\n\nYou can also use the [scaleway-cli](https://github.com/scaleway/scaleway-cli) with `scw k8s version list` to list all available versions.\n\n\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\n// Use the latest version\nconst latest = scaleway.kubernetes.getVersion({\n    name: \"latest\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Use the latest version\nlatest = scaleway.kubernetes.get_version(name=\"latest\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Use the latest version\n    var latest = Scaleway.Kubernetes.GetVersion.Invoke(new()\n    {\n        Name = \"latest\",\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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Use the latest version\n\t\t_, err := kubernetes.GetVersion(ctx, \u0026kubernetes.GetVersionArgs{\n\t\t\tName: \"latest\",\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.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetVersionArgs;\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        // Use the latest version\n        final var latest = KubernetesFunctions.getVersion(GetVersionArgs.builder()\n            .name(\"latest\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Use the latest version\n  latest:\n    fn::invoke:\n      function: scaleway:kubernetes:getVersion\n      arguments:\n        name: latest\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Use a specific version\nconst byName = scaleway.kubernetes.getVersion({\n    name: \"1.26.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Use a specific version\nby_name = scaleway.kubernetes.get_version(name=\"1.26.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Use a specific version\n    var byName = Scaleway.Kubernetes.GetVersion.Invoke(new()\n    {\n        Name = \"1.26.0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Use a specific version\n\t\t_, err := kubernetes.GetVersion(ctx, \u0026kubernetes.GetVersionArgs{\n\t\t\tName: \"1.26.0\",\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.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetVersionArgs;\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        // Use a specific version\n        final var byName = KubernetesFunctions.getVersion(GetVersionArgs.builder()\n            .name(\"1.26.0\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Use a specific version\n  byName:\n    fn::invoke:\n      function: scaleway:kubernetes:getVersion\n      arguments:\n        name: 1.26.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getK8sVersion.\n","properties":{"name":{"type":"string","description":"The name of the Kubernetes version.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the version exists.\n","willReplaceOnChanges":true}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getK8sVersion.\n","properties":{"availableCnis":{"description":"The list of supported Container Network Interface (CNI) plugins for this version.\n","items":{"type":"string"},"type":"array"},"availableContainerRuntimes":{"description":"The list of supported container runtimes for this version.\n","items":{"type":"string"},"type":"array"},"availableFeatureGates":{"description":"The list of supported feature gates for this version.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"majorMinorOnly":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"}},"required":["availableCnis","availableContainerRuntimes","availableFeatureGates","majorMinorOnly","name","id"],"type":"object"}},"scaleway:index/getKeyManagerKey:getKeyManagerKey":{"deprecationMessage":"scaleway.index/getkeymanagerkey.getKeyManagerKey has been deprecated in favor of scaleway.keymanager/getkey.getKey","description":"Gets information about a Key Manager Key. For more information, refer to the [Key Manager API documentation](https://www.scaleway.com/en/developers/api/key-manager/#path-keys-get-key-metadata).\n\n## Example Usage\n\n### Create a key and get its information\n\nThe following commands allow you to:\n\n- create a key named `my-kms-key`\n- retrieve the key's information using the key's ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Create a key\nconst symmetric = new scaleway.keymanager.Key(\"symmetric\", {\n    name: \"my-kms-key\",\n    region: \"fr-par\",\n    projectId: \"your-project-id\",\n    usage: \"symmetric_encryption\",\n    algorithm: \"aes_256_gcm\",\n    description: \"Key for encrypting secrets\",\n    tags: [\n        \"env:prod\",\n        \"kms\",\n    ],\n    unprotected: true,\n    rotationPolicy: {\n        rotationPeriod: \"720h\",\n    },\n});\n// Get the key information by its ID\nconst byID = scaleway.keymanager.getKey({\n    keyId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Create a key\nsymmetric = scaleway.keymanager.Key(\"symmetric\",\n    name=\"my-kms-key\",\n    region=\"fr-par\",\n    project_id=\"your-project-id\",\n    usage=\"symmetric_encryption\",\n    algorithm=\"aes_256_gcm\",\n    description=\"Key for encrypting secrets\",\n    tags=[\n        \"env:prod\",\n        \"kms\",\n    ],\n    unprotected=True,\n    rotation_policy={\n        \"rotation_period\": \"720h\",\n    })\n# Get the key information by its ID\nby_id = scaleway.keymanager.get_key(key_id=\"11111111-1111-1111-1111-111111111111\")\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    // Create a key\n    var symmetric = new Scaleway.Keymanager.Key(\"symmetric\", new()\n    {\n        Name = \"my-kms-key\",\n        Region = \"fr-par\",\n        ProjectId = \"your-project-id\",\n        Usage = \"symmetric_encryption\",\n        Algorithm = \"aes_256_gcm\",\n        Description = \"Key for encrypting secrets\",\n        Tags = new[]\n        {\n            \"env:prod\",\n            \"kms\",\n        },\n        Unprotected = true,\n        RotationPolicy = new Scaleway.Keymanager.Inputs.KeyRotationPolicyArgs\n        {\n            RotationPeriod = \"720h\",\n        },\n    });\n\n    // Get the key information by its ID\n    var byID = Scaleway.Keymanager.GetKey.Invoke(new()\n    {\n        KeyId = \"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/keymanager\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a key\n\t\t_, err := keymanager.NewKey(ctx, \"symmetric\", \u0026keymanager.KeyArgs{\n\t\t\tName:        pulumi.String(\"my-kms-key\"),\n\t\t\tRegion:      pulumi.String(\"fr-par\"),\n\t\t\tProjectId:   pulumi.String(\"your-project-id\"),\n\t\t\tUsage:       pulumi.String(\"symmetric_encryption\"),\n\t\t\tAlgorithm:   pulumi.String(\"aes_256_gcm\"),\n\t\t\tDescription: pulumi.String(\"Key for encrypting secrets\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"env:prod\"),\n\t\t\t\tpulumi.String(\"kms\"),\n\t\t\t},\n\t\t\tUnprotected: pulumi.Bool(true),\n\t\t\tRotationPolicy: \u0026keymanager.KeyRotationPolicyArgs{\n\t\t\t\tRotationPeriod: pulumi.String(\"720h\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get the key information by its ID\n\t\t_, err = keymanager.LookupKey(ctx, \u0026keymanager.LookupKeyArgs{\n\t\t\tKeyId: \"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.keymanager.Key;\nimport com.pulumi.scaleway.keymanager.KeyArgs;\nimport com.pulumi.scaleway.keymanager.inputs.KeyRotationPolicyArgs;\nimport com.pulumi.scaleway.keymanager.KeymanagerFunctions;\nimport com.pulumi.scaleway.keymanager.inputs.GetKeyArgs;\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        // Create a key\n        var symmetric = new Key(\"symmetric\", KeyArgs.builder()\n            .name(\"my-kms-key\")\n            .region(\"fr-par\")\n            .projectId(\"your-project-id\")\n            .usage(\"symmetric_encryption\")\n            .algorithm(\"aes_256_gcm\")\n            .description(\"Key for encrypting secrets\")\n            .tags(            \n                \"env:prod\",\n                \"kms\")\n            .unprotected(true)\n            .rotationPolicy(KeyRotationPolicyArgs.builder()\n                .rotationPeriod(\"720h\")\n                .build())\n            .build());\n\n        // Get the key information by its ID\n        final var byID = KeymanagerFunctions.getKey(GetKeyArgs.builder()\n            .keyId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a key\n  symmetric:\n    type: scaleway:keymanager:Key\n    properties:\n      name: my-kms-key\n      region: fr-par\n      projectId: your-project-id\n      usage: symmetric_encryption\n      algorithm: aes_256_gcm\n      description: Key for encrypting secrets\n      tags:\n        - env:prod\n        - kms\n      unprotected: true\n      rotationPolicy:\n        rotationPeriod: 720h\nvariables:\n  # Get the key information by its ID\n  byID:\n    fn::invoke:\n      function: scaleway:keymanager:getKey\n      arguments:\n        keyId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKeyManagerKey.\n","properties":{"keyId":{"type":"string","description":"ID of the key to target. Can be a plain UUID or a regional ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the key was created.\n"}},"type":"object","required":["keyId"]},"outputs":{"description":"A collection of values returned by getKeyManagerKey.\n","properties":{"algorithm":{"type":"string"},"createdAt":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"keyId":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"origin":{"type":"string"},"projectId":{"type":"string"},"protected":{"type":"boolean"},"region":{"type":"string"},"rotatedAt":{"type":"string"},"rotationCount":{"type":"integer"},"rotationPolicies":{"items":{"$ref":"#/types/scaleway:index/getKeyManagerKeyRotationPolicy:getKeyManagerKeyRotationPolicy"},"type":"array"},"state":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"unprotected":{"type":"boolean"},"updatedAt":{"type":"string"},"usage":{"type":"string"}},"required":["algorithm","createdAt","description","id","keyId","locked","name","origin","projectId","protected","rotatedAt","rotationCount","rotationPolicies","state","tags","unprotected","updatedAt","usage"],"type":"object"}},"scaleway:index/getKubernetesCluster:getKubernetesCluster":{"deprecationMessage":"scaleway.index/getkubernetescluster.getKubernetesCluster has been deprecated in favor of scaleway.kubernetes/getcluster.getCluster","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-dotnet=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-go=\"`kubernetes.Cluster`\" pulumi-lang-python=\"`kubernetes.Cluster`\" pulumi-lang-yaml=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-java=\"`scaleway.kubernetes.Cluster`\"\u003e`scaleway.kubernetes.Cluster`\u003c/span\u003e data source is used to retrieve information about a Kubernetes Cluster.\n\nRefer to the Kubernetes [documentation](https://www.scaleway.com/en/docs/compute/kubernetes/) and [API documentation](https://www.scaleway.com/en/developers/api/kubernetes/) for more information.\n\n\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\n// Get info by cluster id\nconst myKey = scaleway.kubernetes.getCluster({\n    clusterId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by cluster id\nmy_key = scaleway.kubernetes.get_cluster(cluster_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    // Get info by cluster id\n    var myKey = Scaleway.Kubernetes.GetCluster.Invoke(new()\n    {\n        ClusterId = \"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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by cluster id\n\t\t_, err := kubernetes.LookupCluster(ctx, \u0026kubernetes.LookupClusterArgs{\n\t\t\tClusterId: 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.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetClusterArgs;\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        // Get info by cluster id\n        final var myKey = KubernetesFunctions.getCluster(GetClusterArgs.builder()\n            .clusterId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by cluster id\n  myKey:\n    fn::invoke:\n      function: scaleway:kubernetes:getCluster\n      arguments:\n        clusterId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by cluster name\nconst myKey = scaleway.kubernetes.getCluster({\n    name: \"my-cluster-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by cluster name\nmy_key = scaleway.kubernetes.get_cluster(name=\"my-cluster-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by cluster name\n    var myKey = Scaleway.Kubernetes.GetCluster.Invoke(new()\n    {\n        Name = \"my-cluster-name\",\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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by cluster name\n\t\t_, err := kubernetes.LookupCluster(ctx, \u0026kubernetes.LookupClusterArgs{\n\t\t\tName: pulumi.StringRef(\"my-cluster-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetClusterArgs;\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        // Get info by cluster name\n        final var myKey = KubernetesFunctions.getCluster(GetClusterArgs.builder()\n            .name(\"my-cluster-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by cluster name\n  myKey:\n    fn::invoke:\n      function: scaleway:kubernetes:getCluster\n      arguments:\n        name: my-cluster-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubernetesCluster.\n","properties":{"clusterId":{"type":"string","description":"The cluster ID. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e should be specified.\n"},"name":{"type":"string","description":"The cluster name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the cluster is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the cluster exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getKubernetesCluster.\n","properties":{"admissionPlugins":{"description":"The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) enabled on the cluster.\n","items":{"type":"string"},"type":"array"},"apiserverCertSans":{"items":{"type":"string"},"type":"array"},"apiserverUrl":{"description":"The URL of the Kubernetes API server.\n","type":"string"},"autoUpgrades":{"description":"The auto upgrade configuration.\n","items":{"$ref":"#/types/scaleway:index/getKubernetesClusterAutoUpgrade:getKubernetesClusterAutoUpgrade"},"type":"array"},"autoscalerConfigs":{"description":"The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).\n","items":{"$ref":"#/types/scaleway:index/getKubernetesClusterAutoscalerConfig:getKubernetesClusterAutoscalerConfig"},"type":"array"},"clusterId":{"type":"string"},"cni":{"description":"The Container Network Interface (CNI) for the Kubernetes cluster.\n","type":"string"},"createdAt":{"description":"The creation date of the cluster.\n","type":"string"},"description":{"description":"A description for the Kubernetes cluster.\n","type":"string"},"featureGates":{"description":"The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) enabled on the cluster.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"kubeconfigs":{"items":{"$ref":"#/types/scaleway:index/getKubernetesClusterKubeconfig:getKubernetesClusterKubeconfig"},"type":"array"},"name":{"type":"string"},"openIdConnectConfigs":{"items":{"$ref":"#/types/scaleway:index/getKubernetesClusterOpenIdConnectConfig:getKubernetesClusterOpenIdConnectConfig"},"type":"array"},"organizationId":{"description":"The ID of the organization the cluster is associated with.\n","type":"string"},"podCidr":{"type":"string"},"privateNetworkId":{"description":"The ID of the private network of the cluster.\n","type":"string"},"projectId":{"type":"string"},"region":{"description":"The region in which the cluster is.\n","type":"string"},"serviceCidr":{"type":"string"},"serviceDnsIp":{"type":"string"},"status":{"description":"The status of the Kubernetes cluster.\n","type":"string"},"tags":{"description":"The tags associated with the Kubernetes cluster.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the Kubernetes cluster.\n","type":"string"},"updatedAt":{"description":"The last update date of the cluster.\n","type":"string"},"upgradeAvailable":{"description":"True if a newer Kubernetes version is available.\n","type":"boolean"},"version":{"description":"The version of the Kubernetes cluster.\n","type":"string"},"wildcardDns":{"description":"The DNS wildcard that points to all ready nodes.\n","type":"string"}},"required":["admissionPlugins","apiserverCertSans","apiserverUrl","autoUpgrades","autoscalerConfigs","cni","createdAt","description","featureGates","kubeconfigs","openIdConnectConfigs","organizationId","podCidr","privateNetworkId","serviceCidr","serviceDnsIp","status","tags","type","updatedAt","upgradeAvailable","version","wildcardDns","id"],"type":"object"}},"scaleway:index/getKubernetesNodePool:getKubernetesNodePool":{"deprecationMessage":"scaleway.index/getkubernetesnodepool.getKubernetesNodePool has been deprecated in favor of scaleway.kubernetes/getpool.getPool","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.kubernetes.Pool`\" pulumi-lang-dotnet=\"`scaleway.kubernetes.Pool`\" pulumi-lang-go=\"`kubernetes.Pool`\" pulumi-lang-python=\"`kubernetes.Pool`\" pulumi-lang-yaml=\"`scaleway.kubernetes.Pool`\" pulumi-lang-java=\"`scaleway.kubernetes.Pool`\"\u003e`scaleway.kubernetes.Pool`\u003c/span\u003e data source is used to retrieve information about a Kubernetes Cluster's Pool.\n\nRefer to the Kubernetes [documentation](https://www.scaleway.com/en/docs/compute/kubernetes/) and [API documentation](https://www.scaleway.com/en/developers/api/kubernetes/) for more information.\n\n\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\n// Get info by pool id\nconst myKey = scaleway.kubernetes.getPool({\n    poolId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by pool id\nmy_key = scaleway.kubernetes.get_pool(pool_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    // Get info by pool id\n    var myKey = Scaleway.Kubernetes.GetPool.Invoke(new()\n    {\n        PoolId = \"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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by pool id\n\t\t_, err := kubernetes.LookupPool(ctx, \u0026kubernetes.LookupPoolArgs{\n\t\t\tPoolId: 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.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetPoolArgs;\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        // Get info by pool id\n        final var myKey = KubernetesFunctions.getPool(GetPoolArgs.builder()\n            .poolId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by pool id\n  myKey:\n    fn::invoke:\n      function: scaleway:kubernetes:getPool\n      arguments:\n        poolId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by pool name (need cluster_id)\nconst myKey = scaleway.kubernetes.getPool({\n    name: \"my-pool-name\",\n    clusterId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by pool name (need cluster_id)\nmy_key = scaleway.kubernetes.get_pool(name=\"my-pool-name\",\n    cluster_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    // Get info by pool name (need cluster_id)\n    var myKey = Scaleway.Kubernetes.GetPool.Invoke(new()\n    {\n        Name = \"my-pool-name\",\n        ClusterId = \"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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by pool name (need cluster_id)\n\t\t_, err := kubernetes.LookupPool(ctx, \u0026kubernetes.LookupPoolArgs{\n\t\t\tName:      pulumi.StringRef(\"my-pool-name\"),\n\t\t\tClusterId: 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.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetPoolArgs;\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        // Get info by pool name (need cluster_id)\n        final var myKey = KubernetesFunctions.getPool(GetPoolArgs.builder()\n            .name(\"my-pool-name\")\n            .clusterId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by pool name (need cluster_id)\n  myKey:\n    fn::invoke:\n      function: scaleway:kubernetes:getPool\n      arguments:\n        name: my-pool-name\n        clusterId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKubernetesNodePool.\n","properties":{"clusterId":{"type":"string","description":"The cluster ID. Required when \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e is set.\n"},"name":{"type":"string","description":"The pool name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`poolId`\" pulumi-lang-dotnet=\"`PoolId`\" pulumi-lang-go=\"`poolId`\" pulumi-lang-python=\"`pool_id`\" pulumi-lang-yaml=\"`poolId`\" pulumi-lang-java=\"`poolId`\"\u003e`pool_id`\u003c/span\u003e should be specified. \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e should be specified with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"poolId":{"type":"string","description":"The pool's ID. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`poolId`\" pulumi-lang-dotnet=\"`PoolId`\" pulumi-lang-go=\"`poolId`\" pulumi-lang-python=\"`pool_id`\" pulumi-lang-yaml=\"`poolId`\" pulumi-lang-java=\"`poolId`\"\u003e`pool_id`\u003c/span\u003e should be specified.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the pool exists.\n"},"size":{"type":"integer","description":"The size of the pool.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getKubernetesNodePool.\n","properties":{"autohealing":{"description":"True if the autohealing feature is enabled for this pool.\n","type":"boolean"},"autoscaling":{"description":"True if the autoscaling feature is enabled for this pool.\n","type":"boolean"},"clusterId":{"type":"string"},"containerRuntime":{"description":"The container runtime of the pool.\n","type":"string"},"createdAt":{"description":"The creation date of the pool.\n","type":"string"},"currentSize":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"kubeletArgs":{"additionalProperties":{"type":"string"},"type":"object"},"maxSize":{"description":"The maximum size of the pool, used by the autoscaling feature.\n","type":"integer"},"minSize":{"description":"The minimum size of the pool, used by the autoscaling feature.\n","type":"integer"},"name":{"description":"The name of the node.\n","type":"string"},"nodeType":{"description":"The commercial type of the pool instances.\n","type":"string"},"nodes":{"description":"(List of) The nodes in the default pool.\n","items":{"$ref":"#/types/scaleway:index/getKubernetesNodePoolNode:getKubernetesNodePoolNode"},"type":"array"},"placementGroupId":{"description":"[placement group](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) the nodes of the pool are attached to.\n","type":"string"},"poolId":{"type":"string"},"publicIpDisabled":{"type":"boolean"},"region":{"type":"string"},"rootVolumeSizeInGb":{"type":"integer"},"rootVolumeType":{"type":"string"},"securityGroupId":{"type":"string"},"size":{"description":"The size of the pool.\n","type":"integer"},"status":{"description":"The status of the node.\n","type":"string"},"tags":{"description":"The tags associated with the pool.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"The last update date of the pool.\n","type":"string"},"upgradePolicies":{"items":{"$ref":"#/types/scaleway:index/getKubernetesNodePoolUpgradePolicy:getKubernetesNodePoolUpgradePolicy"},"type":"array"},"version":{"description":"The version of the pool.\n","type":"string"},"waitForPoolReady":{"type":"boolean"},"zone":{"type":"string"}},"required":["autohealing","autoscaling","containerRuntime","createdAt","currentSize","kubeletArgs","maxSize","minSize","nodeType","nodes","placementGroupId","publicIpDisabled","rootVolumeSizeInGb","rootVolumeType","securityGroupId","status","tags","updatedAt","upgradePolicies","version","waitForPoolReady","zone","id"],"type":"object"}},"scaleway:index/getLbAcls:getLbAcls":{"deprecationMessage":"scaleway.index/getlbacls.getLbAcls has been deprecated in favor of scaleway.loadbalancers/getacls.getAcls","description":"Gets information about multiple Load Balancer ACLs.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/acls/) or [API reference](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-acls-get-an-acl).\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\n// Find acls that share the same frontend ID\nconst byFrontID = scaleway.loadbalancers.getAcls({\n    frontendId: frt01.id,\n});\n// Find acls by frontend ID and name\nconst byFrontIDAndName = scaleway.loadbalancers.getAcls({\n    frontendId: frt01.id,\n    name: \"tf-acls-datasource\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Find acls that share the same frontend ID\nby_front_id = scaleway.loadbalancers.get_acls(frontend_id=frt01[\"id\"])\n# Find acls by frontend ID and name\nby_front_id_and_name = scaleway.loadbalancers.get_acls(frontend_id=frt01[\"id\"],\n    name=\"tf-acls-datasource\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Find acls that share the same frontend ID\n    var byFrontID = Scaleway.Loadbalancers.GetAcls.Invoke(new()\n    {\n        FrontendId = frt01.Id,\n    });\n\n    // Find acls by frontend ID and name\n    var byFrontIDAndName = Scaleway.Loadbalancers.GetAcls.Invoke(new()\n    {\n        FrontendId = frt01.Id,\n        Name = \"tf-acls-datasource\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find acls that share the same frontend ID\n\t\t_, err := loadbalancers.GetAcls(ctx, \u0026loadbalancers.GetAclsArgs{\n\t\t\tFrontendId: frt01.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find acls by frontend ID and name\n\t\t_, err = loadbalancers.GetAcls(ctx, \u0026loadbalancers.GetAclsArgs{\n\t\t\tFrontendId: frt01.Id,\n\t\t\tName:       pulumi.StringRef(\"tf-acls-datasource\"),\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.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetAclsArgs;\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        // Find acls that share the same frontend ID\n        final var byFrontID = LoadbalancersFunctions.getAcls(GetAclsArgs.builder()\n            .frontendId(frt01.id())\n            .build());\n\n        // Find acls by frontend ID and name\n        final var byFrontIDAndName = LoadbalancersFunctions.getAcls(GetAclsArgs.builder()\n            .frontendId(frt01.id())\n            .name(\"tf-acls-datasource\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Find acls that share the same frontend ID\n  byFrontID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getAcls\n      arguments:\n        frontendId: ${frt01.id}\n  # Find acls by frontend ID and name\n  byFrontIDAndName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getAcls\n      arguments:\n        frontendId: ${frt01.id}\n        name: tf-acls-datasource\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLbAcls.\n","properties":{"frontendId":{"type":"string","description":"The frontend ID this ACL is attached to. ACLs with a matching frontend ID are listed.\n\u003e **Important:** LB frontend IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111`\n"},"name":{"type":"string","description":"The ACL name to filter for. ACLs with a matching name are listed.\n"},"projectId":{"type":"string","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the ACLs exist.\n","willReplaceOnChanges":true}},"type":"object","required":["frontendId"]},"outputs":{"description":"A collection of values returned by getLbAcls.\n","properties":{"acls":{"description":"List of retrieved ACLs\n","items":{"$ref":"#/types/scaleway:index/getLbAclsAcl:getLbAclsAcl"},"type":"array"},"frontendId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"zone":{"type":"string"}},"required":["acls","frontendId","organizationId","projectId","id"],"type":"object"}},"scaleway:index/getLbBackend:getLbBackend":{"deprecationMessage":"scaleway.index/getlbbackend.getLbBackend has been deprecated in favor of scaleway.loadbalancers/getbackend.getBackend","description":"Get information about Scaleway Load Balancer backends.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-backends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-backends).\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.loadbalancers.Ip(\"main\", {});\nconst mainLoadBalancer = new scaleway.loadbalancers.LoadBalancer(\"main\", {\n    ipId: main.id,\n    name: \"data-test-lb-backend\",\n    type: \"LB-S\",\n});\nconst mainBackend = new scaleway.loadbalancers.Backend(\"main\", {\n    lbId: mainLoadBalancer.id,\n    name: \"backend01\",\n    forwardProtocol: \"http\",\n    forwardPort: 80,\n});\nconst byID = scaleway.loadbalancers.getBackendOutput({\n    backendId: mainBackend.id,\n});\nconst byName = scaleway.loadbalancers.getBackendOutput({\n    name: mainBackend.name,\n    lbId: mainLoadBalancer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.loadbalancers.Ip(\"main\")\nmain_load_balancer = scaleway.loadbalancers.LoadBalancer(\"main\",\n    ip_id=main.id,\n    name=\"data-test-lb-backend\",\n    type=\"LB-S\")\nmain_backend = scaleway.loadbalancers.Backend(\"main\",\n    lb_id=main_load_balancer.id,\n    name=\"backend01\",\n    forward_protocol=\"http\",\n    forward_port=80)\nby_id = scaleway.loadbalancers.get_backend_output(backend_id=main_backend.id)\nby_name = scaleway.loadbalancers.get_backend_output(name=main_backend.name,\n    lb_id=main_load_balancer.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.Loadbalancers.Ip(\"main\");\n\n    var mainLoadBalancer = new Scaleway.Loadbalancers.LoadBalancer(\"main\", new()\n    {\n        IpId = main.Id,\n        Name = \"data-test-lb-backend\",\n        Type = \"LB-S\",\n    });\n\n    var mainBackend = new Scaleway.Loadbalancers.Backend(\"main\", new()\n    {\n        LbId = mainLoadBalancer.Id,\n        Name = \"backend01\",\n        ForwardProtocol = \"http\",\n        ForwardPort = 80,\n    });\n\n    var byID = Scaleway.Loadbalancers.GetBackend.Invoke(new()\n    {\n        BackendId = mainBackend.Id,\n    });\n\n    var byName = Scaleway.Loadbalancers.GetBackend.Invoke(new()\n    {\n        Name = mainBackend.Name,\n        LbId = mainLoadBalancer.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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := loadbalancers.NewIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainLoadBalancer, err := loadbalancers.NewLoadBalancer(ctx, \"main\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: main.ID(),\n\t\t\tName: pulumi.String(\"data-test-lb-backend\"),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainBackend, err := loadbalancers.NewBackend(ctx, \"main\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            mainLoadBalancer.ID(),\n\t\t\tName:            pulumi.String(\"backend01\"),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = loadbalancers.LookupBackendOutput(ctx, loadbalancers.GetBackendOutputArgs{\n\t\t\tBackendId: mainBackend.ID(),\n\t\t}, nil)\n\t\t_ = loadbalancers.LookupBackendOutput(ctx, loadbalancers.GetBackendOutputArgs{\n\t\t\tName: mainBackend.Name,\n\t\t\tLbId: mainLoadBalancer.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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetBackendArgs;\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 Ip(\"main\");\n\n        var mainLoadBalancer = new LoadBalancer(\"mainLoadBalancer\", LoadBalancerArgs.builder()\n            .ipId(main.id())\n            .name(\"data-test-lb-backend\")\n            .type(\"LB-S\")\n            .build());\n\n        var mainBackend = new Backend(\"mainBackend\", BackendArgs.builder()\n            .lbId(mainLoadBalancer.id())\n            .name(\"backend01\")\n            .forwardProtocol(\"http\")\n            .forwardPort(80)\n            .build());\n\n        final var byID = LoadbalancersFunctions.getBackend(GetBackendArgs.builder()\n            .backendId(mainBackend.id())\n            .build());\n\n        final var byName = LoadbalancersFunctions.getBackend(GetBackendArgs.builder()\n            .name(mainBackend.name())\n            .lbId(mainLoadBalancer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:loadbalancers:Ip\n  mainLoadBalancer:\n    type: scaleway:loadbalancers:LoadBalancer\n    name: main\n    properties:\n      ipId: ${main.id}\n      name: data-test-lb-backend\n      type: LB-S\n  mainBackend:\n    type: scaleway:loadbalancers:Backend\n    name: main\n    properties:\n      lbId: ${mainLoadBalancer.id}\n      name: backend01\n      forwardProtocol: http\n      forwardPort: '80'\nvariables:\n  byID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getBackend\n      arguments:\n        backendId: ${mainBackend.id}\n  byName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getBackend\n      arguments:\n        name: ${mainBackend.name}\n        lbId: ${mainLoadBalancer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLbBackend.\n","properties":{"backendId":{"type":"string","description":"The backend ID.\n- Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`backendId`\" pulumi-lang-dotnet=\"`BackendId`\" pulumi-lang-go=\"`backendId`\" pulumi-lang-python=\"`backend_id`\" pulumi-lang-yaml=\"`backendId`\" pulumi-lang-java=\"`backendId`\"\u003e`backend_id`\u003c/span\u003e should be specified.\n"},"lbId":{"type":"string","description":"Load Balancer ID this backend is attached to.\n"},"name":{"type":"string","description":"The name of the backend.\n- When using \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e you should specify the `lb-id`\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLbBackend.\n","properties":{"backendId":{"type":"string"},"failoverHost":{"type":"string"},"forwardPort":{"type":"integer"},"forwardPortAlgorithm":{"type":"string"},"forwardProtocol":{"type":"string"},"healthCheckDelay":{"type":"string"},"healthCheckHttp":{"items":{"$ref":"#/types/scaleway:index/getLbBackendHealthCheckHttp:getLbBackendHealthCheckHttp"},"type":"array"},"healthCheckHttps":{"items":{"$ref":"#/types/scaleway:index/getLbBackendHealthCheckHttp:getLbBackendHealthCheckHttp"},"type":"array"},"healthCheckMaxRetries":{"type":"integer"},"healthCheckPort":{"type":"integer"},"healthCheckSendProxy":{"type":"boolean"},"healthCheckTcps":{"items":{"$ref":"#/types/scaleway:index/getLbBackendHealthCheckTcp:getLbBackendHealthCheckTcp"},"type":"array"},"healthCheckTimeout":{"type":"string"},"healthCheckTransientDelay":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ignoreSslServerVerify":{"type":"boolean"},"lbId":{"type":"string"},"maxConnections":{"type":"integer"},"maxRetries":{"type":"integer"},"name":{"type":"string"},"onMarkedDownAction":{"type":"string"},"proxyProtocol":{"type":"string"},"redispatchAttemptCount":{"type":"integer"},"sendProxyV2":{"type":"boolean"},"serverIps":{"items":{"type":"string"},"type":"array"},"sslBridging":{"type":"boolean"},"stickySessions":{"type":"string"},"stickySessionsCookieName":{"type":"string"},"timeoutConnect":{"type":"string"},"timeoutQueue":{"type":"string"},"timeoutServer":{"type":"string"},"timeoutTunnel":{"type":"string"}},"required":["failoverHost","forwardPort","forwardPortAlgorithm","forwardProtocol","healthCheckDelay","healthCheckHttp","healthCheckHttps","healthCheckMaxRetries","healthCheckPort","healthCheckSendProxy","healthCheckTcps","healthCheckTimeout","healthCheckTransientDelay","ignoreSslServerVerify","maxConnections","maxRetries","onMarkedDownAction","proxyProtocol","redispatchAttemptCount","sendProxyV2","serverIps","sslBridging","stickySessions","stickySessionsCookieName","timeoutConnect","timeoutQueue","timeoutServer","timeoutTunnel","id"],"type":"object"}},"scaleway:index/getLbBackends:getLbBackends":{"deprecationMessage":"scaleway.index/getlbbackends.getLbBackends has been deprecated in favor of scaleway.loadbalancers/getbackends.getBackends","description":"Gets information about multiple Load Balancer Backends.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-backends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-backends).\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\n// Find backends that share the same LB ID\nconst byLBID = scaleway.loadbalancers.getBackends({\n    lbId: lb01.id,\n});\n// Find backends by LB ID and name\nconst byLBIDAndName = scaleway.loadbalancers.getBackends({\n    lbId: lb01.id,\n    name: \"tf-backend-datasource\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Find backends that share the same LB ID\nby_lbid = scaleway.loadbalancers.get_backends(lb_id=lb01[\"id\"])\n# Find backends by LB ID and name\nby_lbid_and_name = scaleway.loadbalancers.get_backends(lb_id=lb01[\"id\"],\n    name=\"tf-backend-datasource\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Find backends that share the same LB ID\n    var byLBID = Scaleway.Loadbalancers.GetBackends.Invoke(new()\n    {\n        LbId = lb01.Id,\n    });\n\n    // Find backends by LB ID and name\n    var byLBIDAndName = Scaleway.Loadbalancers.GetBackends.Invoke(new()\n    {\n        LbId = lb01.Id,\n        Name = \"tf-backend-datasource\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find backends that share the same LB ID\n\t\t_, err := loadbalancers.GetBackends(ctx, \u0026loadbalancers.GetBackendsArgs{\n\t\t\tLbId: lb01.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find backends by LB ID and name\n\t\t_, err = loadbalancers.GetBackends(ctx, \u0026loadbalancers.GetBackendsArgs{\n\t\t\tLbId: lb01.Id,\n\t\t\tName: pulumi.StringRef(\"tf-backend-datasource\"),\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.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetBackendsArgs;\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        // Find backends that share the same LB ID\n        final var byLBID = LoadbalancersFunctions.getBackends(GetBackendsArgs.builder()\n            .lbId(lb01.id())\n            .build());\n\n        // Find backends by LB ID and name\n        final var byLBIDAndName = LoadbalancersFunctions.getBackends(GetBackendsArgs.builder()\n            .lbId(lb01.id())\n            .name(\"tf-backend-datasource\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Find backends that share the same LB ID\n  byLBID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getBackends\n      arguments:\n        lbId: ${lb01.id}\n  # Find backends by LB ID and name\n  byLBIDAndName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getBackends\n      arguments:\n        lbId: ${lb01.id}\n        name: tf-backend-datasource\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLbBackends.\n","properties":{"lbId":{"type":"string","description":"The Load Balancer ID this backend is attached to. Backends with a matching ID are listed.\n"},"name":{"type":"string","description":"The backend name to filter for. Backends with a matching name are listed.\n"},"projectId":{"type":"string","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which backends exist.\n","willReplaceOnChanges":true}},"type":"object","required":["lbId"]},"outputs":{"description":"A collection of values returned by getLbBackends.\n","properties":{"backends":{"description":"List of retrieved backends\n","items":{"$ref":"#/types/scaleway:index/getLbBackendsBackend:getLbBackendsBackend"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lbId":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"zone":{"type":"string"}},"required":["backends","lbId","organizationId","projectId","id"],"type":"object"}},"scaleway:index/getLbFrontend:getLbFrontend":{"deprecationMessage":"scaleway.index/getlbfrontend.getLbFrontend has been deprecated in favor of scaleway.loadbalancers/getfrontend.getFrontend","description":"Get information about Scaleway Load Balancer frontends.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-frontends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-frontends).\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 ip01 = new scaleway.loadbalancers.Ip(\"ip01\", {});\nconst lb01 = new scaleway.loadbalancers.LoadBalancer(\"lb01\", {\n    ipId: ip01.id,\n    name: \"test-lb\",\n    type: \"lb-s\",\n});\nconst bkd01 = new scaleway.loadbalancers.Backend(\"bkd01\", {\n    lbId: lb01.id,\n    forwardProtocol: \"tcp\",\n    forwardPort: 80,\n    proxyProtocol: \"none\",\n});\nconst frt01 = new scaleway.loadbalancers.Frontend(\"frt01\", {\n    lbId: lb01.id,\n    backendId: bkd01.id,\n    inboundPort: 80,\n});\nconst byID = scaleway.loadbalancers.getFrontendOutput({\n    frontendId: frt01.id,\n});\nconst byName = scaleway.loadbalancers.getFrontendOutput({\n    name: frt01.name,\n    lbId: lb01.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nip01 = scaleway.loadbalancers.Ip(\"ip01\")\nlb01 = scaleway.loadbalancers.LoadBalancer(\"lb01\",\n    ip_id=ip01.id,\n    name=\"test-lb\",\n    type=\"lb-s\")\nbkd01 = scaleway.loadbalancers.Backend(\"bkd01\",\n    lb_id=lb01.id,\n    forward_protocol=\"tcp\",\n    forward_port=80,\n    proxy_protocol=\"none\")\nfrt01 = scaleway.loadbalancers.Frontend(\"frt01\",\n    lb_id=lb01.id,\n    backend_id=bkd01.id,\n    inbound_port=80)\nby_id = scaleway.loadbalancers.get_frontend_output(frontend_id=frt01.id)\nby_name = scaleway.loadbalancers.get_frontend_output(name=frt01.name,\n    lb_id=lb01.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 ip01 = new Scaleway.Loadbalancers.Ip(\"ip01\");\n\n    var lb01 = new Scaleway.Loadbalancers.LoadBalancer(\"lb01\", new()\n    {\n        IpId = ip01.Id,\n        Name = \"test-lb\",\n        Type = \"lb-s\",\n    });\n\n    var bkd01 = new Scaleway.Loadbalancers.Backend(\"bkd01\", new()\n    {\n        LbId = lb01.Id,\n        ForwardProtocol = \"tcp\",\n        ForwardPort = 80,\n        ProxyProtocol = \"none\",\n    });\n\n    var frt01 = new Scaleway.Loadbalancers.Frontend(\"frt01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = bkd01.Id,\n        InboundPort = 80,\n    });\n\n    var byID = Scaleway.Loadbalancers.GetFrontend.Invoke(new()\n    {\n        FrontendId = frt01.Id,\n    });\n\n    var byName = Scaleway.Loadbalancers.GetFrontend.Invoke(new()\n    {\n        Name = frt01.Name,\n        LbId = lb01.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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip01, err := loadbalancers.NewIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb01, err := loadbalancers.NewLoadBalancer(ctx, \"lb01\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: ip01.ID(),\n\t\t\tName: pulumi.String(\"test-lb\"),\n\t\t\tType: pulumi.String(\"lb-s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbkd01, err := loadbalancers.NewBackend(ctx, \"bkd01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb01.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"tcp\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrt01, err := loadbalancers.NewFrontend(ctx, \"frt01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        lb01.ID(),\n\t\t\tBackendId:   bkd01.ID(),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = loadbalancers.LookupFrontendOutput(ctx, loadbalancers.GetFrontendOutputArgs{\n\t\t\tFrontendId: frt01.ID(),\n\t\t}, nil)\n\t\t_ = loadbalancers.LookupFrontendOutput(ctx, loadbalancers.GetFrontendOutputArgs{\n\t\t\tName: frt01.Name,\n\t\t\tLbId: lb01.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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetFrontendArgs;\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 ip01 = new Ip(\"ip01\");\n\n        var lb01 = new LoadBalancer(\"lb01\", LoadBalancerArgs.builder()\n            .ipId(ip01.id())\n            .name(\"test-lb\")\n            .type(\"lb-s\")\n            .build());\n\n        var bkd01 = new Backend(\"bkd01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .forwardProtocol(\"tcp\")\n            .forwardPort(80)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var frt01 = new Frontend(\"frt01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(bkd01.id())\n            .inboundPort(80)\n            .build());\n\n        final var byID = LoadbalancersFunctions.getFrontend(GetFrontendArgs.builder()\n            .frontendId(frt01.id())\n            .build());\n\n        final var byName = LoadbalancersFunctions.getFrontend(GetFrontendArgs.builder()\n            .name(frt01.name())\n            .lbId(lb01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip01:\n    type: scaleway:loadbalancers:Ip\n  lb01:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipId: ${ip01.id}\n      name: test-lb\n      type: lb-s\n  bkd01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      forwardProtocol: tcp\n      forwardPort: 80\n      proxyProtocol: none\n  frt01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${bkd01.id}\n      inboundPort: 80\nvariables:\n  byID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getFrontend\n      arguments:\n        frontendId: ${frt01.id}\n  byName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getFrontend\n      arguments:\n        name: ${frt01.name}\n        lbId: ${lb01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLbFrontend.\n","properties":{"frontendId":{"type":"string","description":"The frontend ID.\n- Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`frontendId`\" pulumi-lang-dotnet=\"`FrontendId`\" pulumi-lang-go=\"`frontendId`\" pulumi-lang-python=\"`frontend_id`\" pulumi-lang-yaml=\"`frontendId`\" pulumi-lang-java=\"`frontendId`\"\u003e`frontend_id`\u003c/span\u003e should be specified.\n"},"lbId":{"type":"string","description":"The Load Balancer ID this frontend is attached to.\n"},"name":{"type":"string","description":"The name of the frontend.\n- When using the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e you should specify the `lb-id`\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLbFrontend.\n","properties":{"acls":{"items":{"$ref":"#/types/scaleway:index/getLbFrontendAcl:getLbFrontendAcl"},"type":"array"},"backendId":{"type":"string"},"certificateId":{"type":"string"},"certificateIds":{"items":{"type":"string"},"type":"array"},"connectionRateLimit":{"type":"integer"},"createdAt":{"type":"string"},"enableAccessLogs":{"type":"boolean"},"enableHttp3":{"type":"boolean"},"externalAcls":{"type":"boolean"},"frontendId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"inboundPort":{"type":"integer"},"lbId":{"type":"string"},"name":{"type":"string"},"timeoutClient":{"type":"string"},"updatedAt":{"type":"string"}},"required":["acls","backendId","certificateId","certificateIds","connectionRateLimit","createdAt","enableAccessLogs","enableHttp3","externalAcls","inboundPort","timeoutClient","updatedAt","id"],"type":"object"}},"scaleway:index/getLbFrontends:getLbFrontends":{"deprecationMessage":"scaleway.index/getlbfrontends.getLbFrontends has been deprecated in favor of scaleway.loadbalancers/getfrontends.getFrontends","description":"Gets information about multiple Load Balancer frontends.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-frontends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-frontends).\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\n// Find frontends that share the same LB ID\nconst byLBID = scaleway.loadbalancers.getFrontends({\n    lbId: lb01.id,\n});\n// Find frontends by LB ID and name\nconst byLBIDAndName = scaleway.loadbalancers.getFrontends({\n    lbId: lb01.id,\n    name: \"tf-frontend-datasource\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Find frontends that share the same LB ID\nby_lbid = scaleway.loadbalancers.get_frontends(lb_id=lb01[\"id\"])\n# Find frontends by LB ID and name\nby_lbid_and_name = scaleway.loadbalancers.get_frontends(lb_id=lb01[\"id\"],\n    name=\"tf-frontend-datasource\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Find frontends that share the same LB ID\n    var byLBID = Scaleway.Loadbalancers.GetFrontends.Invoke(new()\n    {\n        LbId = lb01.Id,\n    });\n\n    // Find frontends by LB ID and name\n    var byLBIDAndName = Scaleway.Loadbalancers.GetFrontends.Invoke(new()\n    {\n        LbId = lb01.Id,\n        Name = \"tf-frontend-datasource\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find frontends that share the same LB ID\n\t\t_, err := loadbalancers.GetFrontends(ctx, \u0026loadbalancers.GetFrontendsArgs{\n\t\t\tLbId: lb01.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find frontends by LB ID and name\n\t\t_, err = loadbalancers.GetFrontends(ctx, \u0026loadbalancers.GetFrontendsArgs{\n\t\t\tLbId: lb01.Id,\n\t\t\tName: pulumi.StringRef(\"tf-frontend-datasource\"),\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.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetFrontendsArgs;\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        // Find frontends that share the same LB ID\n        final var byLBID = LoadbalancersFunctions.getFrontends(GetFrontendsArgs.builder()\n            .lbId(lb01.id())\n            .build());\n\n        // Find frontends by LB ID and name\n        final var byLBIDAndName = LoadbalancersFunctions.getFrontends(GetFrontendsArgs.builder()\n            .lbId(lb01.id())\n            .name(\"tf-frontend-datasource\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Find frontends that share the same LB ID\n  byLBID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getFrontends\n      arguments:\n        lbId: ${lb01.id}\n  # Find frontends by LB ID and name\n  byLBIDAndName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getFrontends\n      arguments:\n        lbId: ${lb01.id}\n        name: tf-frontend-datasource\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLbFrontends.\n","properties":{"lbId":{"type":"string","description":"The Load Balancer ID this frontend is attached to. Frontends with a matching ID are listed.\n"},"name":{"type":"string","description":"The frontend name to filter for. Frontends with a matching name are listed.\n"},"projectId":{"type":"string","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the frontends exist.\n","willReplaceOnChanges":true}},"type":"object","required":["lbId"]},"outputs":{"description":"A collection of values returned by getLbFrontends.\n","properties":{"frontends":{"description":"List of retrieved frontends\n","items":{"$ref":"#/types/scaleway:index/getLbFrontendsFrontend:getLbFrontendsFrontend"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lbId":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"zone":{"type":"string"}},"required":["frontends","lbId","organizationId","projectId","id"],"type":"object"}},"scaleway:index/getLbIps:getLbIps":{"deprecationMessage":"scaleway.index/getlbips.getLbIps has been deprecated in favor of scaleway.loadbalancers/getips.getIps","description":"Gets information about multiple Load Balancer IP addresses.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-flex-ips/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-ip-addresses-list-ip-addresses).\n\n","inputs":{"description":"A collection of arguments for invoking getLbIps.\n","properties":{"ipCidrRange":{"type":"string","description":"The IP CIDR range to filter for. IPs within a matching CIDR block are listed.\n"},"ipType":{"type":"string","description":"The IP type used as a filter.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. IPs with these exact tags are listed.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IPs exist.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getLbIps.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipCidrRange":{"type":"string"},"ipType":{"type":"string"},"ips":{"description":"List of retrieved IPs\n","items":{"$ref":"#/types/scaleway:index/getLbIpsIp:getLbIpsIp"},"type":"array"},"organizationId":{"description":"The ID of the Organization the Load Balancer is associated with.\n","type":"string"},"projectId":{"description":"The ID of the Project the Load Balancer is associated with.\n","type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"zone":{"description":"The zone of the Load Balancer.\n","type":"string"}},"required":["ips","organizationId","projectId","id"],"type":"object"}},"scaleway:index/getLbRoute:getLbRoute":{"deprecationMessage":"scaleway.index/getlbroute.getLbRoute has been deprecated in favor of scaleway.loadbalancers/getroute.getRoute","description":"Get information about Scaleway Load Balancer routes.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-routes/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-route).\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 ip01 = new scaleway.loadbalancers.Ip(\"ip01\", {});\nconst lb01 = new scaleway.loadbalancers.LoadBalancer(\"lb01\", {\n    ipId: ip01.id,\n    name: \"test-lb\",\n    type: \"lb-s\",\n});\nconst bkd01 = new scaleway.loadbalancers.Backend(\"bkd01\", {\n    lbId: lb01.id,\n    forwardProtocol: \"tcp\",\n    forwardPort: 80,\n    proxyProtocol: \"none\",\n});\nconst frt01 = new scaleway.loadbalancers.Frontend(\"frt01\", {\n    lbId: lb01.id,\n    backendId: bkd01.id,\n    inboundPort: 80,\n});\nconst rt01 = new scaleway.loadbalancers.Route(\"rt01\", {\n    frontendId: frt01.id,\n    backendId: bkd01.id,\n    matchSni: \"sni.scaleway.com\",\n});\nconst byID = scaleway.loadbalancers.getRouteOutput({\n    routeId: rt01.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nip01 = scaleway.loadbalancers.Ip(\"ip01\")\nlb01 = scaleway.loadbalancers.LoadBalancer(\"lb01\",\n    ip_id=ip01.id,\n    name=\"test-lb\",\n    type=\"lb-s\")\nbkd01 = scaleway.loadbalancers.Backend(\"bkd01\",\n    lb_id=lb01.id,\n    forward_protocol=\"tcp\",\n    forward_port=80,\n    proxy_protocol=\"none\")\nfrt01 = scaleway.loadbalancers.Frontend(\"frt01\",\n    lb_id=lb01.id,\n    backend_id=bkd01.id,\n    inbound_port=80)\nrt01 = scaleway.loadbalancers.Route(\"rt01\",\n    frontend_id=frt01.id,\n    backend_id=bkd01.id,\n    match_sni=\"sni.scaleway.com\")\nby_id = scaleway.loadbalancers.get_route_output(route_id=rt01.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 ip01 = new Scaleway.Loadbalancers.Ip(\"ip01\");\n\n    var lb01 = new Scaleway.Loadbalancers.LoadBalancer(\"lb01\", new()\n    {\n        IpId = ip01.Id,\n        Name = \"test-lb\",\n        Type = \"lb-s\",\n    });\n\n    var bkd01 = new Scaleway.Loadbalancers.Backend(\"bkd01\", new()\n    {\n        LbId = lb01.Id,\n        ForwardProtocol = \"tcp\",\n        ForwardPort = 80,\n        ProxyProtocol = \"none\",\n    });\n\n    var frt01 = new Scaleway.Loadbalancers.Frontend(\"frt01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = bkd01.Id,\n        InboundPort = 80,\n    });\n\n    var rt01 = new Scaleway.Loadbalancers.Route(\"rt01\", new()\n    {\n        FrontendId = frt01.Id,\n        BackendId = bkd01.Id,\n        MatchSni = \"sni.scaleway.com\",\n    });\n\n    var byID = Scaleway.Loadbalancers.GetRoute.Invoke(new()\n    {\n        RouteId = rt01.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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip01, err := loadbalancers.NewIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb01, err := loadbalancers.NewLoadBalancer(ctx, \"lb01\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: ip01.ID(),\n\t\t\tName: pulumi.String(\"test-lb\"),\n\t\t\tType: pulumi.String(\"lb-s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbkd01, err := loadbalancers.NewBackend(ctx, \"bkd01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb01.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"tcp\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrt01, err := loadbalancers.NewFrontend(ctx, \"frt01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        lb01.ID(),\n\t\t\tBackendId:   bkd01.ID(),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trt01, err := loadbalancers.NewRoute(ctx, \"rt01\", \u0026loadbalancers.RouteArgs{\n\t\t\tFrontendId: frt01.ID(),\n\t\t\tBackendId:  bkd01.ID(),\n\t\t\tMatchSni:   pulumi.String(\"sni.scaleway.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = loadbalancers.LookupRouteOutput(ctx, loadbalancers.GetRouteOutputArgs{\n\t\t\tRouteId: rt01.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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.Route;\nimport com.pulumi.scaleway.loadbalancers.RouteArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetRouteArgs;\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 ip01 = new Ip(\"ip01\");\n\n        var lb01 = new LoadBalancer(\"lb01\", LoadBalancerArgs.builder()\n            .ipId(ip01.id())\n            .name(\"test-lb\")\n            .type(\"lb-s\")\n            .build());\n\n        var bkd01 = new Backend(\"bkd01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .forwardProtocol(\"tcp\")\n            .forwardPort(80)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var frt01 = new Frontend(\"frt01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(bkd01.id())\n            .inboundPort(80)\n            .build());\n\n        var rt01 = new Route(\"rt01\", RouteArgs.builder()\n            .frontendId(frt01.id())\n            .backendId(bkd01.id())\n            .matchSni(\"sni.scaleway.com\")\n            .build());\n\n        final var byID = LoadbalancersFunctions.getRoute(GetRouteArgs.builder()\n            .routeId(rt01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip01:\n    type: scaleway:loadbalancers:Ip\n  lb01:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipId: ${ip01.id}\n      name: test-lb\n      type: lb-s\n  bkd01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      forwardProtocol: tcp\n      forwardPort: 80\n      proxyProtocol: none\n  frt01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${bkd01.id}\n      inboundPort: 80\n  rt01:\n    type: scaleway:loadbalancers:Route\n    properties:\n      frontendId: ${frt01.id}\n      backendId: ${bkd01.id}\n      matchSni: sni.scaleway.com\nvariables:\n  byID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getRoute\n      arguments:\n        routeId: ${rt01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLbRoute.\n","properties":{"routeId":{"type":"string","description":"The route ID.\n"}},"type":"object","required":["routeId"]},"outputs":{"description":"A collection of values returned by getLbRoute.\n","properties":{"backendId":{"type":"string"},"createdAt":{"type":"string"},"frontendId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"matchHostHeader":{"type":"string"},"matchPathBegin":{"type":"string"},"matchSni":{"type":"string"},"matchSubdomains":{"type":"boolean"},"routeId":{"type":"string"},"updatedAt":{"type":"string"}},"required":["backendId","createdAt","frontendId","matchHostHeader","matchPathBegin","matchSni","matchSubdomains","routeId","updatedAt","id"],"type":"object"}},"scaleway:index/getLbRoutes:getLbRoutes":{"deprecationMessage":"scaleway.index/getlbroutes.getLbRoutes has been deprecated in favor of scaleway.loadbalancers/getroutes.getRoutes","description":"Gets information about multiple Load Balancer routes.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-routes/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-route).\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\n// Find routes that share the same frontend ID\nconst byFrontendID = scaleway.loadbalancers.getRoutes({\n    frontendId: frt01.id,\n});\n// Find routes by frontend ID and zone\nconst myKey = scaleway.loadbalancers.getRoutes({\n    frontendId: \"11111111-1111-1111-1111-111111111111\",\n    zone: \"fr-par-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Find routes that share the same frontend ID\nby_frontend_id = scaleway.loadbalancers.get_routes(frontend_id=frt01[\"id\"])\n# Find routes by frontend ID and zone\nmy_key = scaleway.loadbalancers.get_routes(frontend_id=\"11111111-1111-1111-1111-111111111111\",\n    zone=\"fr-par-2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Find routes that share the same frontend ID\n    var byFrontendID = Scaleway.Loadbalancers.GetRoutes.Invoke(new()\n    {\n        FrontendId = frt01.Id,\n    });\n\n    // Find routes by frontend ID and zone\n    var myKey = Scaleway.Loadbalancers.GetRoutes.Invoke(new()\n    {\n        FrontendId = \"11111111-1111-1111-1111-111111111111\",\n        Zone = \"fr-par-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find routes that share the same frontend ID\n\t\t_, err := loadbalancers.GetRoutes(ctx, \u0026loadbalancers.GetRoutesArgs{\n\t\t\tFrontendId: pulumi.StringRef(frt01.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find routes by frontend ID and zone\n\t\t_, err = loadbalancers.GetRoutes(ctx, \u0026loadbalancers.GetRoutesArgs{\n\t\t\tFrontendId: pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\tZone:       pulumi.StringRef(\"fr-par-2\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetRoutesArgs;\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        // Find routes that share the same frontend ID\n        final var byFrontendID = LoadbalancersFunctions.getRoutes(GetRoutesArgs.builder()\n            .frontendId(frt01.id())\n            .build());\n\n        // Find routes by frontend ID and zone\n        final var myKey = LoadbalancersFunctions.getRoutes(GetRoutesArgs.builder()\n            .frontendId(\"11111111-1111-1111-1111-111111111111\")\n            .zone(\"fr-par-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Find routes that share the same frontend ID\n  byFrontendID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getRoutes\n      arguments:\n        frontendId: ${frt01.id}\n  # Find routes by frontend ID and zone\n  myKey:\n    fn::invoke:\n      function: scaleway:loadbalancers:getRoutes\n      arguments:\n        frontendId: 11111111-1111-1111-1111-111111111111\n        zone: fr-par-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLbRoutes.\n","properties":{"frontendId":{"type":"string","description":"The frontend ID (the origin of the redirection), to filter for. Routes with a matching frontend ID are listed.\n"},"projectId":{"type":"string","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the routes exist.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getLbRoutes.\n","properties":{"frontendId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"routes":{"description":"List of retrieved routes\n","items":{"$ref":"#/types/scaleway:index/getLbRoutesRoute:getLbRoutesRoute"},"type":"array"},"zone":{"type":"string"}},"required":["organizationId","projectId","routes","id"],"type":"object"}},"scaleway:index/getLbs:getLbs":{"deprecationMessage":"scaleway.index/getlbs.getLbs has been deprecated in favor of scaleway.loadbalancers/getloadbalancers.getLoadBalancers","description":"Gets information about multiple Load Balancers.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/concepts/#load-balancers) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-list-load-balancers).\n\n","inputs":{"description":"A collection of arguments for invoking getLbs.\n","properties":{"name":{"type":"string","description":"The Load Balancer name to filter for. Load Balancers with a matching name are listed.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. Load Balancers with these exact tags are listed.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancers exist.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getLbs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lbs":{"description":"List of retrieved Load Balancers\n","items":{"$ref":"#/types/scaleway:index/getLbsLb:getLbsLb"},"type":"array"},"name":{"description":"The name of the Load Balancer.\n","type":"string"},"organizationId":{"description":"The ID of the Organization the Load Balancer is associated with.\n","type":"string"},"projectId":{"description":"The ID of the Project the Load Balancer is associated with.\n","type":"string"},"tags":{"description":"The tags associated with the Load Balancer.\n","items":{"type":"string"},"type":"array"},"zone":{"description":"The zone of the Load Balancer.\n","type":"string"}},"required":["lbs","organizationId","projectId","id"],"type":"object"}},"scaleway:index/getLoadbalancer:getLoadbalancer":{"deprecationMessage":"scaleway.index/getloadbalancer.getLoadbalancer has been deprecated in favor of scaleway.loadbalancers/getloadbalancer.getLoadBalancer","description":"Gets information about a Load Balancer.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/concepts/#load-balancers) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-list-load-balancers).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by name\nconst byName = scaleway.loadbalancers.getLoadBalancer({\n    name: \"foobar\",\n});\n// Get info by ID\nconst byId = scaleway.loadbalancers.getLoadBalancer({\n    lbId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nby_name = scaleway.loadbalancers.get_load_balancer(name=\"foobar\")\n# Get info by ID\nby_id = scaleway.loadbalancers.get_load_balancer(lb_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    // Get info by name\n    var byName = Scaleway.Loadbalancers.GetLoadBalancer.Invoke(new()\n    {\n        Name = \"foobar\",\n    });\n\n    // Get info by ID\n    var byId = Scaleway.Loadbalancers.GetLoadBalancer.Invoke(new()\n    {\n        LbId = \"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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := loadbalancers.LookupLoadBalancer(ctx, \u0026loadbalancers.LookupLoadBalancerArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by ID\n\t\t_, err = loadbalancers.LookupLoadBalancer(ctx, \u0026loadbalancers.LookupLoadBalancerArgs{\n\t\t\tLbId: 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.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetLoadBalancerArgs;\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        // Get info by name\n        final var byName = LoadbalancersFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n        // Get info by ID\n        final var byId = LoadbalancersFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()\n            .lbId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  byName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getLoadBalancer\n      arguments:\n        name: foobar\n  # Get info by ID\n  byId:\n    fn::invoke:\n      function: scaleway:loadbalancers:getLoadBalancer\n      arguments:\n        lbId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLoadbalancer.\n","properties":{"lbId":{"type":"string"},"name":{"type":"string","description":"The Load Balancer name.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n"},"releaseIp":{"type":"boolean"},"zone":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancer exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLoadbalancer.\n","properties":{"assignFlexibleIp":{"type":"boolean"},"assignFlexibleIpv6":{"type":"boolean"},"description":{"type":"string"},"externalPrivateNetworks":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipAddress":{"description":"The Load Balancer public IP address.\n","type":"string"},"ipId":{"type":"string"},"ipIds":{"items":{"type":"string"},"type":"array"},"ipv6Address":{"type":"string"},"lbId":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"privateIps":{"items":{"$ref":"#/types/scaleway:index/getLoadbalancerPrivateIp:getLoadbalancerPrivateIp"},"type":"array"},"privateNetworks":{"items":{"$ref":"#/types/scaleway:index/getLoadbalancerPrivateNetwork:getLoadbalancerPrivateNetwork"},"type":"array"},"projectId":{"type":"string"},"region":{"type":"string"},"releaseIp":{"type":"boolean"},"sslCompatibilityLevel":{"type":"string"},"tags":{"description":"The tags associated with the Load Balancer.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The Load Balancer type.\n","type":"string"},"zone":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancer exists.\n","type":"string"}},"required":["assignFlexibleIp","assignFlexibleIpv6","description","externalPrivateNetworks","ipAddress","ipId","ipIds","ipv6Address","organizationId","privateIps","privateNetworks","region","sslCompatibilityLevel","tags","type","id"],"type":"object"}},"scaleway:index/getLoadbalancerCertificate:getLoadbalancerCertificate":{"deprecationMessage":"scaleway.index/getloadbalancercertificate.getLoadbalancerCertificate has been deprecated in favor of scaleway.loadbalancers/getcertificate.getCertificate","description":"Get information about Scaleway Load Balancer certificates.\n\nThis data source can prove useful when a module accepts a Load Balancer certificate as an input variable and needs to, for example, determine the security of a certificate for the frontend associated with your domain.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/add-certificate/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-certificate).\n\n## Examples\n\n### Let's Encrypt\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\nimport * as std from \"@pulumi/std\";\n\nconst main = new scaleway.loadbalancers.Ip(\"main\", {});\nconst mainLoadBalancer = new scaleway.loadbalancers.LoadBalancer(\"main\", {\n    ipId: main.id,\n    name: \"data-test-lb-cert\",\n    type: \"LB-S\",\n});\nconst mainCertificate = new scaleway.loadbalancers.Certificate(\"main\", {\n    lbId: mainLoadBalancer.id,\n    name: \"data-test-lb-cert\",\n    letsencrypt: {\n        commonName: pulumi.all([mainLoadBalancer.ipAddress, mainLoadBalancer.region]).apply(([ipAddress, region]) =\u003e `${std.index.replace({\n            text: ipAddress,\n            search: \".\",\n            replace: \"-\",\n        }).result}.lb.${region}.scw.cloud`),\n    },\n});\nconst byID = scaleway.loadbalancers.getCertificateOutput({\n    certificateId: mainCertificate.id,\n});\nconst byName = scaleway.loadbalancers.getCertificateOutput({\n    name: mainCertificate.name,\n    lbId: mainLoadBalancer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumi_std as std\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.loadbalancers.Ip(\"main\")\nmain_load_balancer = scaleway.loadbalancers.LoadBalancer(\"main\",\n    ip_id=main.id,\n    name=\"data-test-lb-cert\",\n    type=\"LB-S\")\nmain_certificate = scaleway.loadbalancers.Certificate(\"main\",\n    lb_id=main_load_balancer.id,\n    name=\"data-test-lb-cert\",\n    letsencrypt={\n        \"common_name\": pulumi.Output.all(\n            ip_address=main_load_balancer.ip_address,\n            region=main_load_balancer.region\n).apply(lambda resolved_outputs: f\"{std.index.replace(text=resolved_outputs['ip_address'],\n            search='.',\n            replace='-')['result']}.lb.{resolved_outputs['region']}.scw.cloud\")\n,\n    })\nby_id = scaleway.loadbalancers.get_certificate_output(certificate_id=main_certificate.id)\nby_name = scaleway.loadbalancers.get_certificate_output(name=main_certificate.name,\n    lb_id=main_load_balancer.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Loadbalancers.Ip(\"main\");\n\n    var mainLoadBalancer = new Scaleway.Loadbalancers.LoadBalancer(\"main\", new()\n    {\n        IpId = main.Id,\n        Name = \"data-test-lb-cert\",\n        Type = \"LB-S\",\n    });\n\n    var mainCertificate = new Scaleway.Loadbalancers.Certificate(\"main\", new()\n    {\n        LbId = mainLoadBalancer.Id,\n        Name = \"data-test-lb-cert\",\n        Letsencrypt = new Scaleway.Loadbalancers.Inputs.CertificateLetsencryptArgs\n        {\n            CommonName = Output.Tuple(mainLoadBalancer.IpAddress, mainLoadBalancer.Region).Apply(values =\u003e\n            {\n                var ipAddress = values.Item1;\n                var region = values.Item2;\n                return $\"{Std.Index.Replace.Invoke(new()\n                {\n                    Text = ipAddress,\n                    Search = \".\",\n                    Replace = \"-\",\n                }).Result}.lb.{region}.scw.cloud\";\n            }),\n        },\n    });\n\n    var byID = Scaleway.Loadbalancers.GetCertificate.Invoke(new()\n    {\n        CertificateId = mainCertificate.Id,\n    });\n\n    var byName = Scaleway.Loadbalancers.GetCertificate.Invoke(new()\n    {\n        Name = mainCertificate.Name,\n        LbId = mainLoadBalancer.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nmain, err := loadbalancers.NewIp(ctx, \"main\", nil)\nif err != nil {\nreturn err\n}\nmainLoadBalancer, err := loadbalancers.NewLoadBalancer(ctx, \"main\", \u0026loadbalancers.LoadBalancerArgs{\nIpId: main.ID(),\nName: pulumi.String(\"data-test-lb-cert\"),\nType: pulumi.String(\"LB-S\"),\n})\nif err != nil {\nreturn err\n}\ninvokeReplace, err := std.Replace(ctx, map[string]interface{}{\n\"text\": ipAddress,\n\"search\": \".\",\n\"replace\": \"-\",\n}, nil)\nif err != nil {\nreturn err\n}\nmainCertificate, err := loadbalancers.NewCertificate(ctx, \"main\", \u0026loadbalancers.CertificateArgs{\nLbId: mainLoadBalancer.ID(),\nName: pulumi.String(\"data-test-lb-cert\"),\nLetsencrypt: \u0026loadbalancers.CertificateLetsencryptArgs{\nCommonName: pulumi.All(mainLoadBalancer.IpAddress,mainLoadBalancer.Region).ApplyT(func(_args []interface{}) (string, error) {\nipAddress := _args[0].(string)\nregion := _args[1].(string)\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),\n},\n})\nif err != nil {\nreturn err\n}\n_ = loadbalancers.LookupCertificateOutput(ctx, loadbalancers.GetCertificateOutputArgs{\nCertificateId: mainCertificate.ID(),\n}, nil);\n_ = loadbalancers.LookupCertificateOutput(ctx, loadbalancers.GetCertificateOutputArgs{\nName: mainCertificate.Name,\nLbId: mainLoadBalancer.ID(),\n}, nil);\nreturn nil\n})\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Certificate;\nimport com.pulumi.scaleway.loadbalancers.CertificateArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.CertificateLetsencryptArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.scaleway.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetCertificateArgs;\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 Ip(\"main\");\n\n        var mainLoadBalancer = new LoadBalancer(\"mainLoadBalancer\", LoadBalancerArgs.builder()\n            .ipId(main.id())\n            .name(\"data-test-lb-cert\")\n            .type(\"LB-S\")\n            .build());\n\n        var mainCertificate = new Certificate(\"mainCertificate\", CertificateArgs.builder()\n            .lbId(mainLoadBalancer.id())\n            .name(\"data-test-lb-cert\")\n            .letsencrypt(CertificateLetsencryptArgs.builder()\n                .commonName(Output.tuple(mainLoadBalancer.ipAddress(), mainLoadBalancer.region()).applyValue(values -\u003e {\n                    var ipAddress = values.t1;\n                    var region = values.t2;\n                    return String.format(\"%s.lb.%s.scw.cloud\", StdFunctions.replace(Map.ofEntries(\n                        Map.entry(\"text\", ipAddress),\n                        Map.entry(\"search\", \".\"),\n                        Map.entry(\"replace\", \"-\")\n                    )).result(),region);\n                }))\n                .build())\n            .build());\n\n        final var byID = LoadbalancersFunctions.getCertificate(GetCertificateArgs.builder()\n            .certificateId(mainCertificate.id())\n            .build());\n\n        final var byName = LoadbalancersFunctions.getCertificate(GetCertificateArgs.builder()\n            .name(mainCertificate.name())\n            .lbId(mainLoadBalancer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:loadbalancers:Ip\n  mainLoadBalancer:\n    type: scaleway:loadbalancers:LoadBalancer\n    name: main\n    properties:\n      ipId: ${main.id}\n      name: data-test-lb-cert\n      type: LB-S\n  mainCertificate:\n    type: scaleway:loadbalancers:Certificate\n    name: main\n    properties:\n      lbId: ${mainLoadBalancer.id}\n      name: data-test-lb-cert\n      letsencrypt:\n        commonName:\n          fn::join:\n            - \"\"\n            - - fn::invoke:\n                  function: std:replace\n                  arguments:\n                    text: ${mainLoadBalancer.ipAddress}\n                    search: .\n                    replace: '-'\n                  return: result\n              - .lb.\n              - ${mainLoadBalancer.region}\n              - .scw.cloud\nvariables:\n  byID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getCertificate\n      arguments:\n        certificateId: ${mainCertificate.id}\n  byName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getCertificate\n      arguments:\n        name: ${mainCertificate.name}\n        lbId: ${mainLoadBalancer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLoadbalancerCertificate.\n","properties":{"certificateId":{"type":"string","description":"The certificate ID.\n- Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`certificateId`\" pulumi-lang-dotnet=\"`CertificateId`\" pulumi-lang-go=\"`certificateId`\" pulumi-lang-python=\"`certificate_id`\" pulumi-lang-yaml=\"`certificateId`\" pulumi-lang-java=\"`certificateId`\"\u003e`certificate_id`\u003c/span\u003e should be specified.\n"},"lbId":{"type":"string","description":"The Load Balancer ID this certificate is attached to.\n"},"name":{"type":"string","description":"The name of the Load Balancer certificate.\n- When using a certificate \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e you should specify the `lb-id`\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLoadbalancerCertificate.\n","properties":{"certificateId":{"type":"string"},"commonName":{"type":"string"},"customCertificates":{"items":{"$ref":"#/types/scaleway:index/getLoadbalancerCertificateCustomCertificate:getLoadbalancerCertificateCustomCertificate"},"type":"array"},"fingerprint":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lbId":{"type":"string"},"letsencrypts":{"items":{"$ref":"#/types/scaleway:index/getLoadbalancerCertificateLetsencrypt:getLoadbalancerCertificateLetsencrypt"},"type":"array"},"name":{"type":"string"},"notValidAfter":{"type":"string"},"notValidBefore":{"type":"string"},"status":{"type":"string"},"subjectAlternativeNames":{"items":{"type":"string"},"type":"array"}},"required":["commonName","customCertificates","fingerprint","letsencrypts","notValidAfter","notValidBefore","status","subjectAlternativeNames","id"],"type":"object"}},"scaleway:index/getLoadbalancerIp:getLoadbalancerIp":{"deprecationMessage":"scaleway.index/getloadbalancerip.getLoadbalancerIp has been deprecated in favor of scaleway.loadbalancers/getip.getIp","description":"Gets information about a Load Balancer IP address.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-flex-ips/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-ip-addresses-list-ip-addresses).\n\n","inputs":{"description":"A collection of arguments for invoking getLoadbalancerIp.\n","properties":{"ipAddress":{"type":"string","description":"The IP address.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e should be specified.\n"},"ipId":{"type":"string","description":"The IP ID.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer IP is associated with.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP was reserved.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLoadbalancerIp.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipAddress":{"type":"string"},"ipId":{"type":"string"},"isIpv6":{"type":"boolean"},"lbId":{"description":"The ID of the associated Load Balancer, if any\n","type":"string"},"organizationId":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the Organization the Load Balancer IP is associated with.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"reverse":{"description":"The reverse domain associated with this IP.\n","type":"string"},"tags":{"description":"The tags associated with this IP.\n","items":{"type":"string"},"type":"array"},"zone":{"type":"string"}},"required":["isIpv6","lbId","organizationId","region","reverse","tags","id"],"type":"object"}},"scaleway:index/getMarketplaceImage:getMarketplaceImage":{"description":"Gets local image ID of an image from its label name.\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 myImage = scaleway.getMarketplaceImage({\n    label: \"ubuntu_jammy\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nmy_image = scaleway.get_marketplace_image(label=\"ubuntu_jammy\")\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 myImage = Scaleway.GetMarketplaceImage.Invoke(new()\n    {\n        Label = \"ubuntu_jammy\",\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.GetMarketplaceImage(ctx, \u0026scaleway.GetMarketplaceImageArgs{\n\t\t\tLabel: \"ubuntu_jammy\",\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.GetMarketplaceImageArgs;\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 myImage = ScalewayFunctions.getMarketplaceImage(GetMarketplaceImageArgs.builder()\n            .label(\"ubuntu_jammy\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myImage:\n    fn::invoke:\n      function: scaleway:getMarketplaceImage\n      arguments:\n        label: ubuntu_jammy\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMarketplaceImage.\n","properties":{"imageType":{"type":"string","description":"The local image type, \u003cspan pulumi-lang-nodejs=\"`instanceLocal`\" pulumi-lang-dotnet=\"`InstanceLocal`\" pulumi-lang-go=\"`instanceLocal`\" pulumi-lang-python=\"`instance_local`\" pulumi-lang-yaml=\"`instanceLocal`\" pulumi-lang-java=\"`instanceLocal`\"\u003e`instance_local`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceSbs`\" pulumi-lang-dotnet=\"`InstanceSbs`\" pulumi-lang-go=\"`instanceSbs`\" pulumi-lang-python=\"`instance_sbs`\" pulumi-lang-yaml=\"`instanceSbs`\" pulumi-lang-java=\"`instanceSbs`\"\u003e`instance_sbs`\u003c/span\u003e.\n"},"instanceType":{"type":"string","description":"The instance type the image is compatible with.\nYou find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).\n"},"label":{"type":"string","description":"Exact label of the desired image. You can use [this endpoint](https://www.scaleway.com/en/developers/api/marketplace/#path-marketplace-images-list-marketplace-images)\nto find the right \u003cspan pulumi-lang-nodejs=\"`label`\" pulumi-lang-dotnet=\"`Label`\" pulumi-lang-go=\"`label`\" pulumi-lang-python=\"`label`\" pulumi-lang-yaml=\"`label`\" pulumi-lang-java=\"`label`\"\u003e`label`\u003c/span\u003e.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the image exists.\n","willReplaceOnChanges":true}},"type":"object","required":["label"]},"outputs":{"description":"A collection of values returned by getMarketplaceImage.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imageType":{"type":"string"},"instanceType":{"type":"string"},"label":{"type":"string"},"zone":{"type":"string"}},"required":["label","id"],"type":"object"}},"scaleway:index/getMnqSns:getMnqSns":{"deprecationMessage":"scaleway.index/getmnqsns.getMnqSns has been deprecated in favor of scaleway.mnq/getsns.getSns","description":"Gets information about SNS for a Project\n\n## Examples\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// For default project\nconst main = scaleway.mnq.getSns({});\n// For specific project\nconst forProject = scaleway.mnq.getSns({\n    projectId: mainScalewayAccountProject.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# For default project\nmain = scaleway.mnq.get_sns()\n# For specific project\nfor_project = scaleway.mnq.get_sns(project_id=main_scaleway_account_project[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // For default project\n    var main = Scaleway.Mnq.GetSns.Invoke();\n\n    // For specific project\n    var forProject = Scaleway.Mnq.GetSns.Invoke(new()\n    {\n        ProjectId = mainScalewayAccountProject.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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// For default project\n\t\t_, err := mnq.LookupSns(ctx, \u0026mnq.LookupSnsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// For specific project\n\t\t_, err = mnq.LookupSns(ctx, \u0026mnq.LookupSnsArgs{\n\t\t\tProjectId: pulumi.StringRef(mainScalewayAccountProject.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.mnq.MnqFunctions;\nimport com.pulumi.scaleway.mnq.inputs.GetSnsArgs;\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        // For default project\n        final var main = MnqFunctions.getSns(GetSnsArgs.builder()\n            .build());\n\n        // For specific project\n        final var forProject = MnqFunctions.getSns(GetSnsArgs.builder()\n            .projectId(mainScalewayAccountProject.id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # For default project\n  main:\n    fn::invoke:\n      function: scaleway:mnq:getSns\n      arguments: {}\n  # For specific project\n  forProject:\n    fn::invoke:\n      function: scaleway:mnq:getSns\n      arguments:\n        projectId: ${mainScalewayAccountProject.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMnqSns.\n","properties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which sns is enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which sns is enabled.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMnqSns.\n","properties":{"endpoint":{"description":"The endpoint of the SNS service for this Project.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"}},"required":["endpoint","id"],"type":"object"}},"scaleway:index/getMnqSqs:getMnqSqs":{"deprecationMessage":"scaleway.index/getmnqsqs.getMnqSqs has been deprecated in favor of scaleway.mnq/getsqs.getSqs","description":"Gets information about SQS for a Project\n\n## Examples\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// For default project\nconst main = scaleway.mnq.getSqs({});\n// For specific project\nconst forProject = scaleway.mnq.getSqs({\n    projectId: mainScalewayAccountProject.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# For default project\nmain = scaleway.mnq.get_sqs()\n# For specific project\nfor_project = scaleway.mnq.get_sqs(project_id=main_scaleway_account_project[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // For default project\n    var main = Scaleway.Mnq.GetSqs.Invoke();\n\n    // For specific project\n    var forProject = Scaleway.Mnq.GetSqs.Invoke(new()\n    {\n        ProjectId = mainScalewayAccountProject.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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// For default project\n\t\t_, err := mnq.LookupSqs(ctx, \u0026mnq.LookupSqsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// For specific project\n\t\t_, err = mnq.LookupSqs(ctx, \u0026mnq.LookupSqsArgs{\n\t\t\tProjectId: pulumi.StringRef(mainScalewayAccountProject.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.mnq.MnqFunctions;\nimport com.pulumi.scaleway.mnq.inputs.GetSqsArgs;\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        // For default project\n        final var main = MnqFunctions.getSqs(GetSqsArgs.builder()\n            .build());\n\n        // For specific project\n        final var forProject = MnqFunctions.getSqs(GetSqsArgs.builder()\n            .projectId(mainScalewayAccountProject.id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # For default project\n  main:\n    fn::invoke:\n      function: scaleway:mnq:getSqs\n      arguments: {}\n  # For specific project\n  forProject:\n    fn::invoke:\n      function: scaleway:mnq:getSqs\n      arguments:\n        projectId: ${mainScalewayAccountProject.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMnqSqs.\n","properties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS is enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SQS is enabled.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getMnqSqs.\n","properties":{"endpoint":{"description":"The endpoint of the SQS service for this Project.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"}},"required":["endpoint","id"],"type":"object"}},"scaleway:index/getMongoDbInstance:getMongoDbInstance":{"deprecationMessage":"scaleway.index/getmongodbinstance.getMongoDbInstance has been deprecated in favor of scaleway.mongodb/getinstance.getInstance","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: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e.\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 \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) 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.","type":"string"},"instanceId":{"type":"string"},"isSnapshotScheduleEnabled":{"type":"boolean"},"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"},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"integer"},"privateIps":{"items":{"$ref":"#/types/scaleway:index/getMongoDbInstancePrivateIp:getMongoDbInstancePrivateIp"},"type":"array"},"privateNetworks":{"items":{"$ref":"#/types/scaleway:index/getMongoDbInstancePrivateNetwork:getMongoDbInstancePrivateNetwork"},"type":"array"},"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"},"snapshotScheduleFrequencyHours":{"type":"integer"},"snapshotScheduleRetentionDays":{"type":"integer"},"tags":{"description":"A list of tags attached to the MongoDB® instance.\n","items":{"type":"string"},"type":"array"},"tlsCertificate":{"type":"string"},"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","isSnapshotScheduleEnabled","nodeNumber","nodeType","password","passwordWo","passwordWoVersion","privateIps","privateNetworks","publicNetworks","settings","snapshotId","snapshotScheduleFrequencyHours","snapshotScheduleRetentionDays","tags","tlsCertificate","updatedAt","userName","version","volumeSizeInGb","volumeType","id"],"type":"object"}},"scaleway:index/getObjectBucket:getObjectBucket":{"deprecationMessage":"scaleway.index/getobjectbucket.getObjectBucket has been deprecated in favor of scaleway.object/getbucket.getBucket","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.Bucket`\" pulumi-lang-dotnet=\"`scaleway.object.Bucket`\" pulumi-lang-go=\"`object.Bucket`\" pulumi-lang-python=\"`object.Bucket`\" pulumi-lang-yaml=\"`scaleway.object.Bucket`\" pulumi-lang-java=\"`scaleway.object.Bucket`\"\u003e`scaleway.object.Bucket`\u003c/span\u003e 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/object-storage/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 \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.object.Bucket(\"main\", {\n    name: \"bucket.test.com\",\n    tags: {\n        foo: \"bar\",\n    },\n});\nconst selected = scaleway.object.getBucketOutput({\n    name: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.object.Bucket(\"main\",\n    name=\"bucket.test.com\",\n    tags={\n        \"foo\": \"bar\",\n    })\nselected = scaleway.object.get_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.Object.Bucket(\"main\", new()\n    {\n        Name = \"bucket.test.com\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n    var selected = Scaleway.Object.GetBucket.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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\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_ = object.LookupBucketOutput(ctx, object.GetBucketOutputArgs{\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.ObjectFunctions;\nimport com.pulumi.scaleway.object.inputs.GetBucketArgs;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"bucket.test.com\")\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n        final var selected = ObjectFunctions.getBucket(GetBucketArgs.builder()\n            .name(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\n    properties:\n      name: bucket.test.com\n      tags:\n        foo: bar\nvariables:\n  selected:\n    fn::invoke:\n      function: scaleway:object:getBucket\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 \"@pulumiverse/scaleway\";\n\nconst selected = scaleway.object.getBucket({\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.object.get_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.Object.GetBucket.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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.LookupBucket(ctx, \u0026object.LookupBucketArgs{\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.object.ObjectFunctions;\nimport com.pulumi.scaleway.object.inputs.GetBucketArgs;\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 = ObjectFunctions.getBucket(GetBucketArgs.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:object:getBucket\n      arguments:\n        name: bucket.test.com\n        projectId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getObjectBucket.\n","properties":{"name":{"type":"string"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project with which the bucket is associated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the bucket exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getObjectBucket.\n","properties":{"acl":{"type":"string"},"apiEndpoint":{"type":"string"},"corsRules":{"items":{"$ref":"#/types/scaleway:index/getObjectBucketCorsRule:getObjectBucketCorsRule"},"type":"array"},"endpoint":{"description":"The endpoint URL of the bucket\n","type":"string"},"forceDestroy":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lifecycleRules":{"items":{"$ref":"#/types/scaleway:index/getObjectBucketLifecycleRule:getObjectBucketLifecycleRule"},"type":"array"},"name":{"type":"string"},"objectLockEnabled":{"type":"boolean"},"projectId":{"type":"string"},"region":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"versionings":{"items":{"$ref":"#/types/scaleway:index/getObjectBucketVersioning:getObjectBucketVersioning"},"type":"array"}},"required":["acl","apiEndpoint","corsRules","endpoint","forceDestroy","lifecycleRules","objectLockEnabled","tags","versionings","id"],"type":"object"}},"scaleway:index/getObjectBucketPolicy:getObjectBucketPolicy":{"deprecationMessage":"scaleway.index/getobjectbucketpolicy.getObjectBucketPolicy has been deprecated in favor of scaleway.object/getbucketpolicy.getBucketPolicy","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.BucketPolicy`\" pulumi-lang-dotnet=\"`scaleway.object.BucketPolicy`\" pulumi-lang-go=\"`object.BucketPolicy`\" pulumi-lang-python=\"`object.BucketPolicy`\" pulumi-lang-yaml=\"`scaleway.object.BucketPolicy`\" pulumi-lang-java=\"`scaleway.object.BucketPolicy`\"\u003e`scaleway.object.BucketPolicy`\u003c/span\u003e data source is used to retrieve information about the bucket policy of an Object Storage bucket.\n\nRefer to the Object Storage [documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/bucket-policy/) for more information.\n\n## Retrieve the bucket policy of a bucket\n\nThe following command allows you to retrieve a bucket policy by its bucket.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = scaleway.object.getBucketPolicy({\n    bucket: \"bucket.test.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nmain = scaleway.object.get_bucket_policy(bucket=\"bucket.test.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = Scaleway.Object.GetBucketPolicy.Invoke(new()\n    {\n        Bucket = \"bucket.test.com\",\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.LookupBucketPolicy(ctx, \u0026object.LookupBucketPolicyArgs{\n\t\t\tBucket: \"bucket.test.com\",\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.object.ObjectFunctions;\nimport com.pulumi.scaleway.object.inputs.GetBucketPolicyArgs;\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 = ObjectFunctions.getBucketPolicy(GetBucketPolicyArgs.builder()\n            .bucket(\"bucket.test.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  main:\n    fn::invoke:\n      function: scaleway:object:getBucketPolicy\n      arguments:\n        bucket: bucket.test.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getObjectBucketPolicy.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n"},"projectId":{"type":"string"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Object Storage exists.\n"}},"type":"object","required":["bucket"]},"outputs":{"description":"A collection of values returned by getObjectBucketPolicy.\n","properties":{"bucket":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"policy":{"description":"The content of the bucket policy in JSON format.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"}},"required":["bucket","policy","id"],"type":"object"}},"scaleway:index/getRedisCluster:getRedisCluster":{"deprecationMessage":"scaleway.index/getrediscluster.getRedisCluster has been deprecated in favor of scaleway.redis/getcluster.getCluster","description":"Gets information about a Redis™ cluster.\n\nFor further information refer to the Managed Database for Redis™ [API documentation](https://developers.scaleway.com/en/products/redis/api/v1alpha1/#clusters-a85816).\n\n","inputs":{"description":"A collection of arguments for invoking getRedisCluster.\n","properties":{"clusterId":{"type":"string","description":"The Redis cluster ID.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the Redis cluster.\n"},"projectId":{"type":"string","description":"The ID of the project the Redis cluster is associated with.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The zone in which the server exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRedisCluster.\n","properties":{"acls":{"description":"List of acl rules.\n","items":{"$ref":"#/types/scaleway:index/getRedisClusterAcl:getRedisClusterAcl"},"type":"array"},"certificate":{"description":"The PEM of the certificate used by redis, only when \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e is true.\n","type":"string"},"clusterId":{"type":"string"},"clusterSize":{"description":"The number of nodes in the Redis Cluster.\n","type":"integer"},"createdAt":{"description":"The date and time of creation of the Redis Cluster.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"nodeType":{"description":"The type of Redis Cluster (e.g. `RED1-M`).\n","type":"string"},"password":{"description":"Password of the first user of the Redis Cluster.\n","type":"string"},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"integer"},"privateIps":{"items":{"$ref":"#/types/scaleway:index/getRedisClusterPrivateIp:getRedisClusterPrivateIp"},"type":"array"},"privateNetworks":{"description":"List of private networks endpoints of the Redis Cluster.\n","items":{"$ref":"#/types/scaleway:index/getRedisClusterPrivateNetwork:getRedisClusterPrivateNetwork"},"type":"array"},"projectId":{"type":"string"},"publicNetworks":{"description":"Public network details.\n","items":{"$ref":"#/types/scaleway:index/getRedisClusterPublicNetwork:getRedisClusterPublicNetwork"},"type":"array"},"settings":{"additionalProperties":{"type":"string"},"description":"Map of settings for redis cluster.\n","type":"object"},"tags":{"description":"The tags associated with the Redis Cluster.\n","items":{"type":"string"},"type":"array"},"tlsEnabled":{"description":"Whether TLS is enabled or not.\n","type":"boolean"},"updatedAt":{"description":"The date and time of the last update of the Redis Cluster.\n","type":"string"},"userName":{"description":"The first user of the Redis Cluster.\n","type":"string"},"version":{"description":"Redis's Cluster version (e.g. `6.2.7`).\n","type":"string"},"zone":{"type":"string"}},"required":["acls","certificate","clusterSize","createdAt","nodeType","password","passwordWo","passwordWoVersion","privateIps","privateNetworks","publicNetworks","settings","tags","tlsEnabled","updatedAt","userName","version","id"],"type":"object"}},"scaleway:index/getRegistryImage:getRegistryImage":{"deprecationMessage":"scaleway.index/getregistryimage.getRegistryImage has been deprecated in favor of scaleway.registry/getimage.getImage","description":"Gets information about a Container Registry image.\n\n","inputs":{"description":"A collection of arguments for invoking getRegistryImage.\n","properties":{"imageId":{"type":"string","description":"The image ID.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The image name.\n"},"namespaceId":{"type":"string","description":"The namespace ID in which the image is.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the image is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the image exists.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the registry image\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRegistryImage.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imageId":{"type":"string"},"name":{"type":"string"},"namespaceId":{"type":"string"},"organizationId":{"description":"The organization ID the image is associated with.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"size":{"description":"The size of the registry image.\n","type":"integer"},"tags":{"description":"The tags associated with the registry image\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"The date the image of the last update\n","type":"string"},"visibility":{"description":"The privacy policy of the registry image.\n","type":"string"}},"required":["namespaceId","organizationId","projectId","size","tags","updatedAt","visibility","id"],"type":"object"}},"scaleway:index/getRegistryImageTag:getRegistryImageTag":{"deprecationMessage":"scaleway.index/getregistryimagetag.getRegistryImageTag has been deprecated in favor of scaleway.registry/getimagetag.getImageTag","description":"Gets information about a specific tag of a Container Registry image.\n\n","inputs":{"description":"A collection of arguments for invoking getRegistryImageTag.\n","properties":{"imageId":{"type":"string","description":"The ID of the registry image.\n"},"name":{"type":"string","description":"The name of the registry image tag.\n"},"projectId":{"type":"string","description":"The ID of the project the image tag is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region in which the registry image tag exists.\n","willReplaceOnChanges":true},"tagId":{"type":"string","description":"The ID of the registry image tag.\n"}},"type":"object","required":["imageId"]},"outputs":{"description":"A collection of values returned by getRegistryImageTag.\n","properties":{"createdAt":{"description":"The date and time when the registry image tag was created.\n","type":"string"},"digest":{"description":"Hash of the tag content. Several tags of the same image may have the same digest.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imageId":{"type":"string"},"name":{"type":"string"},"organizationId":{"description":"The organization ID the image tag is associated with.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"status":{"description":"The status of the registry image tag.\n","type":"string"},"tagId":{"type":"string"},"updatedAt":{"description":"The date and time of the last update to the registry image tag.\n","type":"string"}},"required":["createdAt","digest","imageId","organizationId","projectId","status","updatedAt","id"],"type":"object"}},"scaleway:index/getRegistryNamespace:getRegistryNamespace":{"deprecationMessage":"scaleway.index/getregistrynamespace.getRegistryNamespace has been deprecated in favor of scaleway.registry/getnamespace.getNamespace","description":"Gets information about a registry namespace.\n\n","inputs":{"description":"A collection of arguments for invoking getRegistryNamespace.\n","properties":{"name":{"type":"string","description":"The namespace name.\n"},"namespaceId":{"type":"string","description":"The namespace id.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the namespace is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the namespace exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRegistryNamespace.\n","properties":{"description":{"type":"string"},"endpoint":{"description":"The endpoint of the Registry Namespace.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isPublic":{"description":"The Namespace Privacy Policy: whether or not the images are public.\n","type":"boolean"},"name":{"type":"string"},"namespaceId":{"type":"string"},"organizationId":{"description":"The organization ID the namespace is associated with.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"}},"required":["description","endpoint","isPublic","organizationId","id"],"type":"object"}},"scaleway:index/getSecret:getSecret":{"deprecationMessage":"scaleway.index/getsecret.getSecret has been deprecated in favor of scaleway.secrets/getsecret.getSecret","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.secrets.Secret`\" pulumi-lang-dotnet=\"`scaleway.secrets.Secret`\" pulumi-lang-go=\"`secrets.Secret`\" pulumi-lang-python=\"`secrets.Secret`\" pulumi-lang-yaml=\"`scaleway.secrets.Secret`\" pulumi-lang-java=\"`scaleway.secrets.Secret`\"\u003e`scaleway.secrets.Secret`\u003c/span\u003e data source is used to get information about a specific secret in Scaleway's Secret Manager.\n\nRefer to the Secret Manager [product documentation](https://www.scaleway.com/en/docs/identity-and-access-management/secret-manager/) and [API documentation](https://www.scaleway.com/en/developers/api/secret-manager/) for more information.\n\n## Example Usage\n\n### Create a secret and get its information\n\nThe following commands allow you to:\n\n- create a secret named \u003cspan pulumi-lang-nodejs=\"`foo`\" pulumi-lang-dotnet=\"`Foo`\" pulumi-lang-go=\"`foo`\" pulumi-lang-python=\"`foo`\" pulumi-lang-yaml=\"`foo`\" pulumi-lang-java=\"`foo`\"\u003e`foo`\u003c/span\u003e with the description \u003cspan pulumi-lang-nodejs=\"`barr`\" pulumi-lang-dotnet=\"`Barr`\" pulumi-lang-go=\"`barr`\" pulumi-lang-python=\"`barr`\" pulumi-lang-yaml=\"`barr`\" pulumi-lang-java=\"`barr`\"\u003e`barr`\u003c/span\u003e\n- retrieve the secret's information using the secret's ID\n- retrieve the secret's information using the secret's name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Create a secret\nconst main = new scaleway.secrets.Secret(\"main\", {\n    name: \"foo\",\n    description: \"barr\",\n});\n// Get the secret information specified by the secret ID\nconst mySecret = scaleway.secrets.getSecret({\n    secretId: \"11111111-1111-1111-1111-111111111111\",\n});\n// Get the secret information specified by the secret name\nconst byName = scaleway.secrets.getSecret({\n    name: \"your_secret_name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Create a secret\nmain = scaleway.secrets.Secret(\"main\",\n    name=\"foo\",\n    description=\"barr\")\n# Get the secret information specified by the secret ID\nmy_secret = scaleway.secrets.get_secret(secret_id=\"11111111-1111-1111-1111-111111111111\")\n# Get the secret information specified by the secret name\nby_name = scaleway.secrets.get_secret(name=\"your_secret_name\")\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    // Create a secret\n    var main = new Scaleway.Secrets.Secret(\"main\", new()\n    {\n        Name = \"foo\",\n        Description = \"barr\",\n    });\n\n    // Get the secret information specified by the secret ID\n    var mySecret = Scaleway.Secrets.GetSecret.Invoke(new()\n    {\n        SecretId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    // Get the secret information specified by the secret name\n    var byName = Scaleway.Secrets.GetSecret.Invoke(new()\n    {\n        Name = \"your_secret_name\",\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/secrets\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a secret\n\t\t_, err := secrets.NewSecret(ctx, \"main\", \u0026secrets.SecretArgs{\n\t\t\tName:        pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"barr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get the secret information specified by the secret ID\n\t\t_, err = secrets.LookupSecret(ctx, \u0026secrets.LookupSecretArgs{\n\t\t\tSecretId: 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\t// Get the secret information specified by the secret name\n\t\t_, err = secrets.LookupSecret(ctx, \u0026secrets.LookupSecretArgs{\n\t\t\tName: pulumi.StringRef(\"your_secret_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.secrets.Secret;\nimport com.pulumi.scaleway.secrets.SecretArgs;\nimport com.pulumi.scaleway.secrets.SecretsFunctions;\nimport com.pulumi.scaleway.secrets.inputs.GetSecretArgs;\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        // Create a secret\n        var main = new Secret(\"main\", SecretArgs.builder()\n            .name(\"foo\")\n            .description(\"barr\")\n            .build());\n\n        // Get the secret information specified by the secret ID\n        final var mySecret = SecretsFunctions.getSecret(GetSecretArgs.builder()\n            .secretId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        // Get the secret information specified by the secret name\n        final var byName = SecretsFunctions.getSecret(GetSecretArgs.builder()\n            .name(\"your_secret_name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a secret\n  main:\n    type: scaleway:secrets:Secret\n    properties:\n      name: foo\n      description: barr\nvariables:\n  # Get the secret information specified by the secret ID\n  mySecret:\n    fn::invoke:\n      function: scaleway:secrets:getSecret\n      arguments:\n        secretId: 11111111-1111-1111-1111-111111111111\n  # Get the secret information specified by the secret name\n  byName:\n    fn::invoke:\n      function: scaleway:secrets:getSecret\n      arguments:\n        name: your_secret_name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecret.\n","properties":{"name":{"type":"string","description":"The name of the secret.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e should be specified.\n"},"organizationId":{"type":"string","description":"The ID of the Scaleway Organization the Project is associated with. If no default \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e is set, it must be set explicitly in this data source.\n"},"path":{"type":"string","description":"The path of the secret.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"). The ID of the\nProject the secret is associated with.\n"},"region":{"type":"string","description":"). The region in which the secret exists.\n"},"secretId":{"type":"string","description":"The ID of the secret.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSecret.\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"ephemeralPolicies":{"items":{"$ref":"#/types/scaleway:index/getSecretEphemeralPolicy:getSecretEphemeralPolicy"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"path":{"type":"string"},"projectId":{"type":"string"},"protected":{"type":"boolean"},"region":{"type":"string"},"secretId":{"type":"string"},"status":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"},"updatedAt":{"type":"string"},"versionCount":{"type":"integer"},"versions":{"items":{"$ref":"#/types/scaleway:index/getSecretVersion:getSecretVersion"},"type":"array"}},"required":["createdAt","description","ephemeralPolicies","organizationId","protected","status","tags","type","updatedAt","versionCount","versions","id"],"type":"object"}},"scaleway:index/getSecretVersion:getSecretVersion":{"deprecationMessage":"scaleway.index/getsecretversion.getSecretVersion has been deprecated in favor of scaleway.secrets/getversion.getVersion","description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.secrets.Version`\" pulumi-lang-dotnet=\"`scaleway.secrets.Version`\" pulumi-lang-go=\"`secrets.Version`\" pulumi-lang-python=\"`secrets.Version`\" pulumi-lang-yaml=\"`scaleway.secrets.Version`\" pulumi-lang-java=\"`scaleway.secrets.Version`\"\u003e`scaleway.secrets.Version`\u003c/span\u003e data source is used to get information about a specific secret version stored in Scaleway Secret Manager.\n\nRefer to the Secret Manager [product documentation](https://www.scaleway.com/en/docs/identity-and-access-management/secret-manager/) and [API documentation](https://www.scaleway.com/en/developers/api/secret-manager/) for more information.\n\n## Example Usage\n\n### Use Secret Manager\n\nThe following commands allow you to:\n\n- create a secret named \u003cspan pulumi-lang-nodejs=\"`fooii`\" pulumi-lang-dotnet=\"`Fooii`\" pulumi-lang-go=\"`fooii`\" pulumi-lang-python=\"`fooii`\" pulumi-lang-yaml=\"`fooii`\" pulumi-lang-java=\"`fooii`\"\u003e`fooii`\u003c/span\u003e\n- create a new version of \u003cspan pulumi-lang-nodejs=\"`fooii`\" pulumi-lang-dotnet=\"`Fooii`\" pulumi-lang-go=\"`fooii`\" pulumi-lang-python=\"`fooii`\" pulumi-lang-yaml=\"`fooii`\" pulumi-lang-java=\"`fooii`\"\u003e`fooii`\u003c/span\u003e containing data (\u003cspan pulumi-lang-nodejs=\"`yourSecret`\" pulumi-lang-dotnet=\"`YourSecret`\" pulumi-lang-go=\"`yourSecret`\" pulumi-lang-python=\"`your_secret`\" pulumi-lang-yaml=\"`yourSecret`\" pulumi-lang-java=\"`yourSecret`\"\u003e`your_secret`\u003c/span\u003e)\n- retrieve the secret version specified by the secret ID and the desired version\n- retrieve the secret version specified by the secret name and the desired version\n\nThe output blocks display the sensitive data contained in your secret version.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Create a secret named fooii\nconst main = new scaleway.secrets.Secret(\"main\", {\n    name: \"fooii\",\n    description: \"barr\",\n});\n// Create a version of fooii containing data\nconst mainVersion = new scaleway.secrets.Version(\"main\", {\n    description: \"your description\",\n    secretId: main.id,\n    data: \"your_secret\",\n});\n// Retrieve the secret version specified by the secret ID and the desired version\nconst dataBySecretId = scaleway.secrets.getVersionOutput({\n    secretId: main.id,\n    revision: \"1\",\n});\n// Retrieve the secret version specified by the secret name and the desired version\nconst dataBySecretName = scaleway.secrets.getVersionOutput({\n    secretName: main.name,\n    revision: \"1\",\n});\nexport const scalewaySecretAccessPayload = dataBySecretName.apply(dataBySecretName =\u003e dataBySecretName.data);\nexport const scalewaySecretAccessPayloadById = dataBySecretId.apply(dataBySecretId =\u003e dataBySecretId.data);\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Create a secret named fooii\nmain = scaleway.secrets.Secret(\"main\",\n    name=\"fooii\",\n    description=\"barr\")\n# Create a version of fooii containing data\nmain_version = scaleway.secrets.Version(\"main\",\n    description=\"your description\",\n    secret_id=main.id,\n    data=\"your_secret\")\n# Retrieve the secret version specified by the secret ID and the desired version\ndata_by_secret_id = scaleway.secrets.get_version_output(secret_id=main.id,\n    revision=\"1\")\n# Retrieve the secret version specified by the secret name and the desired version\ndata_by_secret_name = scaleway.secrets.get_version_output(secret_name=main.name,\n    revision=\"1\")\npulumi.export(\"scalewaySecretAccessPayload\", data_by_secret_name.data)\npulumi.export(\"scalewaySecretAccessPayloadById\", data_by_secret_id.data)\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    // Create a secret named fooii\n    var main = new Scaleway.Secrets.Secret(\"main\", new()\n    {\n        Name = \"fooii\",\n        Description = \"barr\",\n    });\n\n    // Create a version of fooii containing data\n    var mainVersion = new Scaleway.Secrets.Version(\"main\", new()\n    {\n        Description = \"your description\",\n        SecretId = main.Id,\n        Data = \"your_secret\",\n    });\n\n    // Retrieve the secret version specified by the secret ID and the desired version\n    var dataBySecretId = Scaleway.Secrets.GetVersion.Invoke(new()\n    {\n        SecretId = main.Id,\n        Revision = \"1\",\n    });\n\n    // Retrieve the secret version specified by the secret name and the desired version\n    var dataBySecretName = Scaleway.Secrets.GetVersion.Invoke(new()\n    {\n        SecretName = main.Name,\n        Revision = \"1\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"scalewaySecretAccessPayload\"] = dataBySecretName.Apply(getVersionResult =\u003e getVersionResult.Data),\n        [\"scalewaySecretAccessPayloadById\"] = dataBySecretId.Apply(getVersionResult =\u003e getVersionResult.Data),\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/secrets\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a secret named fooii\n\t\tmain, err := secrets.NewSecret(ctx, \"main\", \u0026secrets.SecretArgs{\n\t\t\tName:        pulumi.String(\"fooii\"),\n\t\t\tDescription: pulumi.String(\"barr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a version of fooii containing data\n\t\t_, err = secrets.NewVersion(ctx, \"main\", \u0026secrets.VersionArgs{\n\t\t\tDescription: pulumi.String(\"your description\"),\n\t\t\tSecretId:    main.ID(),\n\t\t\tData:        pulumi.String(\"your_secret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Retrieve the secret version specified by the secret ID and the desired version\n\t\tdataBySecretId := secrets.LookupVersionOutput(ctx, secrets.GetVersionOutputArgs{\n\t\t\tSecretId: main.ID(),\n\t\t\tRevision: pulumi.String(\"1\"),\n\t\t}, nil)\n\t\t// Retrieve the secret version specified by the secret name and the desired version\n\t\tdataBySecretName := secrets.LookupVersionOutput(ctx, secrets.GetVersionOutputArgs{\n\t\t\tSecretName: main.Name,\n\t\t\tRevision:   pulumi.String(\"1\"),\n\t\t}, nil)\n\t\tctx.Export(\"scalewaySecretAccessPayload\", dataBySecretName.ApplyT(func(dataBySecretName secrets.GetVersionResult) (*string, error) {\n\t\t\treturn \u0026dataBySecretName.Data, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"scalewaySecretAccessPayloadById\", dataBySecretId.ApplyT(func(dataBySecretId secrets.GetVersionResult) (*string, error) {\n\t\t\treturn \u0026dataBySecretId.Data, nil\n\t\t}).(pulumi.StringPtrOutput))\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.secrets.Secret;\nimport com.pulumi.scaleway.secrets.SecretArgs;\nimport com.pulumi.scaleway.secrets.Version;\nimport com.pulumi.scaleway.secrets.VersionArgs;\nimport com.pulumi.scaleway.secrets.SecretsFunctions;\nimport com.pulumi.scaleway.secrets.inputs.GetVersionArgs;\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        // Create a secret named fooii\n        var main = new Secret(\"main\", SecretArgs.builder()\n            .name(\"fooii\")\n            .description(\"barr\")\n            .build());\n\n        // Create a version of fooii containing data\n        var mainVersion = new Version(\"mainVersion\", VersionArgs.builder()\n            .description(\"your description\")\n            .secretId(main.id())\n            .data(\"your_secret\")\n            .build());\n\n        // Retrieve the secret version specified by the secret ID and the desired version\n        final var dataBySecretId = SecretsFunctions.getVersion(GetVersionArgs.builder()\n            .secretId(main.id())\n            .revision(\"1\")\n            .build());\n\n        // Retrieve the secret version specified by the secret name and the desired version\n        final var dataBySecretName = SecretsFunctions.getVersion(GetVersionArgs.builder()\n            .secretName(main.name())\n            .revision(\"1\")\n            .build());\n\n        ctx.export(\"scalewaySecretAccessPayload\", dataBySecretName.applyValue(_dataBySecretName -\u003e _dataBySecretName.data()));\n        ctx.export(\"scalewaySecretAccessPayloadById\", dataBySecretId.applyValue(_dataBySecretId -\u003e _dataBySecretId.data()));\n    }\n}\n```\n```yaml\nresources:\n  # Create a secret named fooii\n  main:\n    type: scaleway:secrets:Secret\n    properties:\n      name: fooii\n      description: barr\n  # Create a version of fooii containing data\n  mainVersion:\n    type: scaleway:secrets:Version\n    name: main\n    properties:\n      description: your description\n      secretId: ${main.id}\n      data: your_secret\nvariables:\n  # Retrieve the secret version specified by the secret ID and the desired version\n  dataBySecretId:\n    fn::invoke:\n      function: scaleway:secrets:getVersion\n      arguments:\n        secretId: ${main.id}\n        revision: '1'\n  # Retrieve the secret version specified by the secret name and the desired version\n  dataBySecretName:\n    fn::invoke:\n      function: scaleway:secrets:getVersion\n      arguments:\n        secretName: ${main.name}\n        revision: '1'\noutputs:\n  # Display sensitive data\n  scalewaySecretAccessPayload: ${dataBySecretName.data}\n  # Display sensitive data\n  scalewaySecretAccessPayloadById: ${dataBySecretId.data}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Data\n\nNote: This data source provides you with access to the secret payload, which is encoded in base64.\n\nKeep in mind that this is a sensitive attribute. For more information,\nsee Sensitive Data in State.\n\n\u003e **Important:**  This property is sensitive and will not be displayed in the pulumi preview, for security reasons.\n","inputs":{"description":"A collection of arguments for invoking getSecretVersion.\n","properties":{"organizationId":{"type":"string"},"projectId":{"type":"string","description":"The ID of the Scaleway Project associated with the secret version.\n"},"region":{"type":"string"},"revision":{"type":"string","description":"The revision for this secret version. Refer to alternative values (ex: \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e) in the [API documentation](https://www.scaleway.com/en/developers/api/secret-manager/#path-secret-versions-access-a-secrets-version-using-the-secrets-id)\n"},"secretId":{"type":"string","description":"The ID of the secret associated with the secret version. Only one of \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretName`\" pulumi-lang-dotnet=\"`SecretName`\" pulumi-lang-go=\"`secretName`\" pulumi-lang-python=\"`secret_name`\" pulumi-lang-yaml=\"`secretName`\" pulumi-lang-java=\"`secretName`\"\u003e`secret_name`\u003c/span\u003e should be specified.\n"},"secretName":{"type":"string","description":"The name of the secret associated with the secret version.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretName`\" pulumi-lang-dotnet=\"`SecretName`\" pulumi-lang-go=\"`secretName`\" pulumi-lang-python=\"`secret_name`\" pulumi-lang-yaml=\"`secretName`\" pulumi-lang-java=\"`secretName`\"\u003e`secret_name`\u003c/span\u003e should be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSecretVersion.\n","properties":{"createdAt":{"description":"The date and time of the secret version's creation in RFC 3339 format.\n","type":"string"},"data":{"description":"The data payload of the secret version. This is a sensitive attribute containing the secret value, encoded in base64. Learn more in the data section.\n","secret":true,"type":"string"},"dataWo":{"type":"string"},"dataWoVersion":{"type":"integer"},"description":{"description":"(Optional) The description of the secret version (e.g. `my-new-description`).\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"revision":{"type":"string"},"secretId":{"type":"string"},"secretName":{"type":"string"},"status":{"description":"The status of the secret version.\n","type":"string"},"updatedAt":{"description":"The date and time of the secret version's last update in RFC 3339 format.\n","type":"string"}},"required":["createdAt","data","dataWo","dataWoVersion","description","organizationId","status","updatedAt","id"],"type":"object"}},"scaleway:index/getTemDomain:getTemDomain":{"deprecationMessage":"scaleway.index/gettemdomain.getTemDomain has been deprecated in favor of scaleway.tem/getdomain.getDomain","description":"Gets information about a transactional email domain.\n\n","inputs":{"description":"A collection of arguments for invoking getTemDomain.\n","properties":{"domainId":{"type":"string","description":"The domain id.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`domainId`\" pulumi-lang-dotnet=\"`DomainId`\" pulumi-lang-go=\"`domainId`\" pulumi-lang-python=\"`domain_id`\" pulumi-lang-yaml=\"`domainId`\" pulumi-lang-java=\"`domainId`\"\u003e`domain_id`\u003c/span\u003e should be specified.\n"},"name":{"type":"string","description":"The domain name.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`domainId`\" pulumi-lang-dotnet=\"`DomainId`\" pulumi-lang-go=\"`domainId`\" pulumi-lang-python=\"`domain_id`\" pulumi-lang-yaml=\"`domainId`\" pulumi-lang-java=\"`domainId`\"\u003e`domain_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the domain is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the domain exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTemDomain.\n","properties":{"acceptTos":{"type":"boolean"},"autoconfig":{"type":"boolean"},"createdAt":{"type":"string"},"dkimConfig":{"type":"string"},"dkimName":{"type":"string"},"dmarcConfig":{"type":"string"},"dmarcName":{"type":"string"},"domainId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lastError":{"type":"string"},"lastValidAt":{"type":"string"},"mxBlackhole":{"type":"string"},"mxConfig":{"type":"string"},"name":{"type":"string"},"nextCheckAt":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"reputations":{"items":{"$ref":"#/types/scaleway:index/getTemDomainReputation:getTemDomainReputation"},"type":"array"},"revokedAt":{"type":"string"},"smtpHost":{"type":"string"},"smtpPort":{"type":"integer"},"smtpPortAlternative":{"type":"integer"},"smtpPortUnsecure":{"type":"integer"},"smtpsAuthUser":{"type":"string"},"smtpsPort":{"type":"integer"},"smtpsPortAlternative":{"type":"integer"},"spfConfig":{"type":"string"},"spfValue":{"type":"string"},"status":{"type":"string"}},"required":["acceptTos","autoconfig","createdAt","dkimConfig","dkimName","dmarcConfig","dmarcName","lastError","lastValidAt","mxBlackhole","mxConfig","nextCheckAt","reputations","revokedAt","smtpHost","smtpPort","smtpPortAlternative","smtpPortUnsecure","smtpsAuthUser","smtpsPort","smtpsPortAlternative","spfConfig","spfValue","status","id"],"type":"object"}},"scaleway:index/getVpc:getVpc":{"deprecationMessage":"scaleway.index/getvpc.getVpc has been deprecated in favor of scaleway.network/getvpc.getVpc","description":"Gets information about a Scaleway Virtual Private Cloud.\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\n// Get info by name\nconst byName = scaleway.network.getVpc({\n    name: \"foobar\",\n});\n// Get info by ID\nconst byId = scaleway.network.getVpc({\n    vpcId: \"11111111-1111-1111-1111-111111111111\",\n});\n// Get default VPC info\nconst _default = scaleway.network.getVpc({\n    isDefault: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nby_name = scaleway.network.get_vpc(name=\"foobar\")\n# Get info by ID\nby_id = scaleway.network.get_vpc(vpc_id=\"11111111-1111-1111-1111-111111111111\")\n# Get default VPC info\ndefault = scaleway.network.get_vpc(is_default=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by name\n    var byName = Scaleway.Network.GetVpc.Invoke(new()\n    {\n        Name = \"foobar\",\n    });\n\n    // Get info by ID\n    var byId = Scaleway.Network.GetVpc.Invoke(new()\n    {\n        VpcId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    // Get default VPC info\n    var @default = Scaleway.Network.GetVpc.Invoke(new()\n    {\n        IsDefault = 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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := network.LookupVpc(ctx, \u0026network.LookupVpcArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by ID\n\t\t_, err = network.LookupVpc(ctx, \u0026network.LookupVpcArgs{\n\t\t\tVpcId: 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\t// Get default VPC info\n\t\t_, err = network.LookupVpc(ctx, \u0026network.LookupVpcArgs{\n\t\t\tIsDefault: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetVpcArgs;\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        // Get info by name\n        final var byName = NetworkFunctions.getVpc(GetVpcArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n        // Get info by ID\n        final var byId = NetworkFunctions.getVpc(GetVpcArgs.builder()\n            .vpcId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        // Get default VPC info\n        final var default = NetworkFunctions.getVpc(GetVpcArgs.builder()\n            .isDefault(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  byName:\n    fn::invoke:\n      function: scaleway:network:getVpc\n      arguments:\n        name: foobar\n  # Get info by ID\n  byId:\n    fn::invoke:\n      function: scaleway:network:getVpc\n      arguments:\n        vpcId: 11111111-1111-1111-1111-111111111111\n  # Get default VPC info\n  default:\n    fn::invoke:\n      function: scaleway:network:getVpc\n      arguments:\n        isDefault: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpc.\n","properties":{"isDefault":{"type":"boolean","description":"Whether the targeted VPC is the default VPC.\n"},"name":{"type":"string","description":"Name of the VPC. A maximum of one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e should be specified.\n"},"organizationId":{"type":"string","description":"The ID of the Organization the VPC is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the VPC is associated with.\n"},"region":{"type":"string"},"vpcId":{"type":"string","description":"ID of the VPC. A maximum of one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpc.\n","properties":{"createdAt":{"type":"string"},"enableCustomRoutesPropagation":{"type":"boolean"},"enableRouting":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isDefault":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"vpcId":{"type":"string"}},"required":["createdAt","enableCustomRoutesPropagation","enableRouting","organizationId","tags","updatedAt","id"],"type":"object"}},"scaleway:index/getVpcGatewayNetwork:getVpcGatewayNetwork":{"deprecationMessage":"scaleway.index/getvpcgatewaynetwork.getVpcGatewayNetwork has been deprecated in favor of scaleway.network/getgatewaynetwork.getGatewayNetwork","description":"Gets information about a GatewayNetwork (a connection between a Public Gateway and a Private Network).\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.network.GatewayNetwork(\"main\", {\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n    dhcpId: dhcp01.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n});\nconst byId = scaleway.network.getGatewayNetworkOutput({\n    gatewayNetworkId: main.id,\n});\nconst byGatewayAndPn = scaleway.network.getGatewayNetwork({\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=pg01[\"id\"],\n    private_network_id=pn01[\"id\"],\n    dhcp_id=dhcp01[\"id\"],\n    cleanup_dhcp=True,\n    enable_masquerade=True)\nby_id = scaleway.network.get_gateway_network_output(gateway_network_id=main.id)\nby_gateway_and_pn = scaleway.network.get_gateway_network(gateway_id=pg01[\"id\"],\n    private_network_id=pn01[\"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.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.Id,\n        DhcpId = dhcp01.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    });\n\n    var byId = Scaleway.Network.GetGatewayNetwork.Invoke(new()\n    {\n        GatewayNetworkId = main.Id,\n    });\n\n    var byGatewayAndPn = Scaleway.Network.GetGatewayNetwork.Invoke(new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        pulumi.Any(pg01.Id),\n\t\t\tPrivateNetworkId: pulumi.Any(pn01.Id),\n\t\t\tDhcpId:           pulumi.Any(dhcp01.Id),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupGatewayNetworkOutput(ctx, network.GetGatewayNetworkOutputArgs{\n\t\t\tGatewayNetworkId: main.ID(),\n\t\t}, nil)\n\t\t_, err = network.LookupGatewayNetwork(ctx, \u0026network.LookupGatewayNetworkArgs{\n\t\t\tGatewayId:        pulumi.StringRef(pg01.Id),\n\t\t\tPrivateNetworkId: pulumi.StringRef(pn01.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetGatewayNetworkArgs;\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 GatewayNetwork(\"main\", GatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .dhcpId(dhcp01.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build());\n\n        final var byId = NetworkFunctions.getGatewayNetwork(GetGatewayNetworkArgs.builder()\n            .gatewayNetworkId(main.id())\n            .build());\n\n        final var byGatewayAndPn = NetworkFunctions.getGatewayNetwork(GetGatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:GatewayNetwork\n    properties:\n      gatewayId: ${pg01.id}\n      privateNetworkId: ${pn01.id}\n      dhcpId: ${dhcp01.id}\n      cleanupDhcp: true\n      enableMasquerade: true\nvariables:\n  byId:\n    fn::invoke:\n      function: scaleway:network:getGatewayNetwork\n      arguments:\n        gatewayNetworkId: ${main.id}\n  byGatewayAndPn:\n    fn::invoke:\n      function: scaleway:network:getGatewayNetwork\n      arguments:\n        gatewayId: ${pg01.id}\n        privateNetworkId: ${pn01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcGatewayNetwork.\n","properties":{"dhcpId":{"type":"string"},"enableMasquerade":{"type":"boolean"},"gatewayId":{"type":"string"},"gatewayNetworkId":{"type":"string","description":"ID of the GatewayNetwork.\n"},"privateNetworkId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcGatewayNetwork.\n","properties":{"cleanupDhcp":{"type":"boolean"},"createdAt":{"type":"string"},"dhcpId":{"type":"string"},"enableDhcp":{"type":"boolean"},"enableMasquerade":{"type":"boolean"},"gatewayId":{"type":"string"},"gatewayNetworkId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipamConfigs":{"items":{"$ref":"#/types/scaleway:index/getVpcGatewayNetworkIpamConfig:getVpcGatewayNetworkIpamConfig"},"type":"array"},"macAddress":{"type":"string"},"privateIps":{"items":{"$ref":"#/types/scaleway:index/getVpcGatewayNetworkPrivateIp:getVpcGatewayNetworkPrivateIp"},"type":"array"},"privateNetworkId":{"type":"string"},"staticAddress":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"},"zone":{"type":"string"}},"required":["cleanupDhcp","createdAt","enableDhcp","ipamConfigs","macAddress","privateIps","staticAddress","status","updatedAt","zone","id"],"type":"object"}},"scaleway:index/getVpcPrivateNetwork:getVpcPrivateNetwork":{"deprecationMessage":"scaleway.index/getvpcprivatenetwork.getVpcPrivateNetwork has been deprecated in favor of scaleway.network/getprivatenetwork.getPrivateNetwork","description":"Gets information about a Private Network.\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\n// Get info by name\nconst myName = scaleway.network.getPrivateNetwork({\n    name: \"foobar\",\n});\n// Get info by name and VPC ID\nconst myNameAndVpcId = scaleway.network.getPrivateNetwork({\n    name: \"foobar\",\n    vpcId: \"11111111-1111-1111-1111-111111111111\",\n});\n// Get info by name in a specific region\nconst myNameAndRegion = scaleway.network.getPrivateNetwork({\n    name: \"foobar\",\n    region: \"nl-ams\",\n});\n// Get info by Private Network ID\nconst myId = scaleway.network.getPrivateNetwork({\n    privateNetworkId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nmy_name = scaleway.network.get_private_network(name=\"foobar\")\n# Get info by name and VPC ID\nmy_name_and_vpc_id = scaleway.network.get_private_network(name=\"foobar\",\n    vpc_id=\"11111111-1111-1111-1111-111111111111\")\n# Get info by name in a specific region\nmy_name_and_region = scaleway.network.get_private_network(name=\"foobar\",\n    region=\"nl-ams\")\n# Get info by Private Network ID\nmy_id = scaleway.network.get_private_network(private_network_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    // Get info by name\n    var myName = Scaleway.Network.GetPrivateNetwork.Invoke(new()\n    {\n        Name = \"foobar\",\n    });\n\n    // Get info by name and VPC ID\n    var myNameAndVpcId = Scaleway.Network.GetPrivateNetwork.Invoke(new()\n    {\n        Name = \"foobar\",\n        VpcId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    // Get info by name in a specific region\n    var myNameAndRegion = Scaleway.Network.GetPrivateNetwork.Invoke(new()\n    {\n        Name = \"foobar\",\n        Region = \"nl-ams\",\n    });\n\n    // Get info by Private Network ID\n    var myId = Scaleway.Network.GetPrivateNetwork.Invoke(new()\n    {\n        PrivateNetworkId = \"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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := network.LookupPrivateNetwork(ctx, \u0026network.LookupPrivateNetworkArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by name and VPC ID\n\t\t_, err = network.LookupPrivateNetwork(ctx, \u0026network.LookupPrivateNetworkArgs{\n\t\t\tName:  pulumi.StringRef(\"foobar\"),\n\t\t\tVpcId: 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\t// Get info by name in a specific region\n\t\t_, err = network.LookupPrivateNetwork(ctx, \u0026network.LookupPrivateNetworkArgs{\n\t\t\tName:   pulumi.StringRef(\"foobar\"),\n\t\t\tRegion: pulumi.StringRef(\"nl-ams\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by Private Network ID\n\t\t_, err = network.LookupPrivateNetwork(ctx, \u0026network.LookupPrivateNetworkArgs{\n\t\t\tPrivateNetworkId: 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.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPrivateNetworkArgs;\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        // Get info by name\n        final var myName = NetworkFunctions.getPrivateNetwork(GetPrivateNetworkArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n        // Get info by name and VPC ID\n        final var myNameAndVpcId = NetworkFunctions.getPrivateNetwork(GetPrivateNetworkArgs.builder()\n            .name(\"foobar\")\n            .vpcId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        // Get info by name in a specific region\n        final var myNameAndRegion = NetworkFunctions.getPrivateNetwork(GetPrivateNetworkArgs.builder()\n            .name(\"foobar\")\n            .region(\"nl-ams\")\n            .build());\n\n        // Get info by Private Network ID\n        final var myId = NetworkFunctions.getPrivateNetwork(GetPrivateNetworkArgs.builder()\n            .privateNetworkId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  myName:\n    fn::invoke:\n      function: scaleway:network:getPrivateNetwork\n      arguments:\n        name: foobar\n  # Get info by name and VPC ID\n  myNameAndVpcId:\n    fn::invoke:\n      function: scaleway:network:getPrivateNetwork\n      arguments:\n        name: foobar\n        vpcId: 11111111-1111-1111-1111-111111111111\n  # Get info by name in a specific region\n  myNameAndRegion:\n    fn::invoke:\n      function: scaleway:network:getPrivateNetwork\n      arguments:\n        name: foobar\n        region: nl-ams\n  # Get info by Private Network ID\n  myId:\n    fn::invoke:\n      function: scaleway:network:getPrivateNetwork\n      arguments:\n        privateNetworkId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcPrivateNetwork.\n","properties":{"name":{"type":"string","description":"Name of the Private Network. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e.\n"},"privateNetworkId":{"type":"string","description":"ID of the Private Network. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the Project the Private Network is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Private Network exists.\n"},"vpcId":{"type":"string","description":"ID of the VPC the Private Network is in. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcPrivateNetwork.\n","properties":{"createdAt":{"type":"string"},"enableDefaultRoutePropagation":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipv4Subnets":{"description":"The IPv4 subnet associated with the Private Network.\n","items":{"$ref":"#/types/scaleway:index/getVpcPrivateNetworkIpv4Subnet:getVpcPrivateNetworkIpv4Subnet"},"type":"array"},"ipv6Subnets":{"description":"The IPv6 subnets associated with the Private Network.\n","items":{"$ref":"#/types/scaleway:index/getVpcPrivateNetworkIpv6Subnet:getVpcPrivateNetworkIpv6Subnet"},"type":"array"},"isRegional":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"privateNetworkId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"vpcId":{"type":"string"},"zone":{"type":"string"}},"required":["createdAt","enableDefaultRoutePropagation","ipv4Subnets","ipv6Subnets","isRegional","organizationId","tags","updatedAt","zone","id"],"type":"object"}},"scaleway:index/getVpcPublicGateway:getVpcPublicGateway":{"deprecationMessage":"scaleway.index/getvpcpublicgateway.getVpcPublicGateway has been deprecated in favor of scaleway.network/getpublicgateway.getPublicGateway","description":"Gets information about a Public Gateway.\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.network.PublicGateway(\"main\", {\n    name: \"demo\",\n    type: \"VPC-GW-S\",\n    zone: \"nl-ams-1\",\n});\nconst pgTestByName = scaleway.network.getPublicGatewayOutput({\n    name: main.name,\n    zone: \"nl-ams-1\",\n});\nconst pgTestById = scaleway.network.getPublicGatewayOutput({\n    publicGatewayId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGateway(\"main\",\n    name=\"demo\",\n    type=\"VPC-GW-S\",\n    zone=\"nl-ams-1\")\npg_test_by_name = scaleway.network.get_public_gateway_output(name=main.name,\n    zone=\"nl-ams-1\")\npg_test_by_id = scaleway.network.get_public_gateway_output(public_gateway_id=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.Network.PublicGateway(\"main\", new()\n    {\n        Name = \"demo\",\n        Type = \"VPC-GW-S\",\n        Zone = \"nl-ams-1\",\n    });\n\n    var pgTestByName = Scaleway.Network.GetPublicGateway.Invoke(new()\n    {\n        Name = main.Name,\n        Zone = \"nl-ams-1\",\n    });\n\n    var pgTestById = Scaleway.Network.GetPublicGateway.Invoke(new()\n    {\n        PublicGatewayId = 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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPublicGateway(ctx, \"main\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"demo\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tZone: pulumi.String(\"nl-ams-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupPublicGatewayOutput(ctx, network.GetPublicGatewayOutputArgs{\n\t\t\tName: main.Name,\n\t\t\tZone: pulumi.String(\"nl-ams-1\"),\n\t\t}, nil)\n\t\t_ = network.LookupPublicGatewayOutput(ctx, network.GetPublicGatewayOutputArgs{\n\t\t\tPublicGatewayId: 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.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayArgs;\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 PublicGateway(\"main\", PublicGatewayArgs.builder()\n            .name(\"demo\")\n            .type(\"VPC-GW-S\")\n            .zone(\"nl-ams-1\")\n            .build());\n\n        final var pgTestByName = NetworkFunctions.getPublicGateway(GetPublicGatewayArgs.builder()\n            .name(main.name())\n            .zone(\"nl-ams-1\")\n            .build());\n\n        final var pgTestById = NetworkFunctions.getPublicGateway(GetPublicGatewayArgs.builder()\n            .publicGatewayId(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: demo\n      type: VPC-GW-S\n      zone: nl-ams-1\nvariables:\n  pgTestByName:\n    fn::invoke:\n      function: scaleway:network:getPublicGateway\n      arguments:\n        name: ${main.name}\n        zone: nl-ams-1\n  pgTestById:\n    fn::invoke:\n      function: scaleway:network:getPublicGateway\n      arguments:\n        publicGatewayId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcPublicGateway.\n","properties":{"name":{"type":"string","description":"Exact name of the Public Gateway.\n"},"projectId":{"type":"string","description":"The ID of the Project the Public Gateway is associated with.\n"},"publicGatewayId":{"type":"string"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The Public Gateway's zone.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcPublicGateway.\n","properties":{"allowedIpRanges":{"items":{"type":"string"},"type":"array"},"bandwidth":{"type":"integer"},"bastionEnabled":{"type":"boolean"},"bastionPort":{"type":"integer"},"createdAt":{"type":"string"},"enableSmtp":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipId":{"type":"string"},"moveToIpam":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"publicGatewayId":{"type":"string"},"refreshSshKeys":{"type":"string"},"status":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"},"updatedAt":{"type":"string"},"upstreamDnsServers":{"items":{"type":"string"},"type":"array"},"zone":{"type":"string"}},"required":["allowedIpRanges","bandwidth","bastionEnabled","bastionPort","createdAt","enableSmtp","ipId","moveToIpam","organizationId","refreshSshKeys","status","tags","type","updatedAt","upstreamDnsServers","id"],"type":"object"}},"scaleway:index/getVpcPublicGatewayDhcp:getVpcPublicGatewayDhcp":{"deprecationMessage":"scaleway.index/getvpcpublicgatewaydhcp.getVpcPublicGatewayDhcp has been deprecated in favor of scaleway.network/getpublicgatewaydhcp.getPublicGatewayDhcp","description":"\u003e **Important:**  The data source \u003cspan pulumi-lang-nodejs=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-dotnet=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-go=\"`network.PublicGatewayDhcp`\" pulumi-lang-python=\"`network.PublicGatewayDhcp`\" pulumi-lang-yaml=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-java=\"`scaleway.network.PublicGatewayDhcp`\"\u003e`scaleway.network.PublicGatewayDhcp`\u003c/span\u003e has been deprecated and will no longer be supported.\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.\nFor more information, please refer to the dedicated guide.\n\nGets information about a Public Gateway DHCP configuration.\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.network.PublicGatewayDhcp(\"main\", {subnet: \"192.168.0.0/24\"});\nconst dhcpById = scaleway.network.getPublicGatewayDhcpOutput({\n    dhcpId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGatewayDhcp(\"main\", subnet=\"192.168.0.0/24\")\ndhcp_by_id = scaleway.network.get_public_gateway_dhcp_output(dhcp_id=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.Network.PublicGatewayDhcp(\"main\", new()\n    {\n        Subnet = \"192.168.0.0/24\",\n    });\n\n    var dhcpById = Scaleway.Network.GetPublicGatewayDhcp.Invoke(new()\n    {\n        DhcpId = 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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPublicGatewayDhcp(ctx, \"main\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupPublicGatewayDhcpOutput(ctx, network.GetPublicGatewayDhcpOutputArgs{\n\t\t\tDhcpId: 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.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayDhcpArgs;\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 PublicGatewayDhcp(\"main\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.0.0/24\")\n            .build());\n\n        final var dhcpById = NetworkFunctions.getPublicGatewayDhcp(GetPublicGatewayDhcpArgs.builder()\n            .dhcpId(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGatewayDhcp\n    properties:\n      subnet: 192.168.0.0/24\nvariables:\n  dhcpById:\n    fn::invoke:\n      function: scaleway:network:getPublicGatewayDhcp\n      arguments:\n        dhcpId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcPublicGatewayDhcp.\n","properties":{"dhcpId":{"type":"string"}},"type":"object","required":["dhcpId"]},"outputs":{"description":"A collection of values returned by getVpcPublicGatewayDhcp.\n","properties":{"address":{"type":"string"},"createdAt":{"type":"string"},"dhcpId":{"type":"string"},"dnsLocalName":{"type":"string"},"dnsSearches":{"items":{"type":"string"},"type":"array"},"dnsServersOverrides":{"items":{"type":"string"},"type":"array"},"enableDynamic":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"poolHigh":{"type":"string"},"poolLow":{"type":"string"},"projectId":{"type":"string"},"pushDefaultRoute":{"type":"boolean"},"pushDnsServer":{"type":"boolean"},"rebindTimer":{"type":"integer"},"renewTimer":{"type":"integer"},"subnet":{"type":"string"},"updatedAt":{"type":"string"},"validLifetime":{"type":"integer"},"zone":{"type":"string"}},"required":["address","createdAt","dhcpId","dnsLocalName","dnsSearches","dnsServersOverrides","enableDynamic","organizationId","poolHigh","poolLow","projectId","pushDefaultRoute","pushDnsServer","rebindTimer","renewTimer","subnet","updatedAt","validLifetime","zone","id"],"type":"object"}},"scaleway:index/getVpcPublicGatewayDhcpReservation:getVpcPublicGatewayDhcpReservation":{"deprecationMessage":"scaleway.index/getvpcpublicgatewaydhcpreservation.getVpcPublicGatewayDhcpReservation has been deprecated in favor of scaleway.network/getpublicgatewaydhcpreservation.getPublicGatewayDhcpReservation","description":"\u003e **Important:**  The data source \u003cspan pulumi-lang-nodejs=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-dotnet=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-go=\"`network.PublicGatewayDhcpReservation`\" pulumi-lang-python=\"`network.PublicGatewayDhcpReservation`\" pulumi-lang-yaml=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-java=\"`scaleway.network.PublicGatewayDhcpReservation`\"\u003e`scaleway.network.PublicGatewayDhcpReservation`\u003c/span\u003e has been deprecated and will no longer be supported.\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.\nYou can use IPAM to manage your IPs. For more information, please refer to the dedicated guide.\n\nGets information about a DHCP entry. For further information, please see the\n[API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-dhcp-entries-list-dhcp-entries).\n\n## Example Dynamic\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.network.PrivateNetwork(\"main\", {});\nconst mainServer = new scaleway.instance.Server(\"main\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    zone: \"fr-par-1\",\n});\nconst mainPrivateNic = new scaleway.instance.PrivateNic(\"main\", {\n    serverId: mainServer.id,\n    privateNetworkId: main.id,\n});\nconst mainPublicGatewayIp = new scaleway.network.PublicGatewayIp(\"main\", {});\nconst mainPublicGatewayDhcp = new scaleway.network.PublicGatewayDhcp(\"main\", {subnet: \"192.168.1.0/24\"});\nconst mainPublicGateway = new scaleway.network.PublicGateway(\"main\", {\n    name: \"foobar\",\n    type: \"VPC-GW-S\",\n    ipId: mainPublicGatewayIp.id,\n});\nconst mainGatewayNetwork = new scaleway.network.GatewayNetwork(\"main\", {\n    gatewayId: mainPublicGateway.id,\n    privateNetworkId: main.id,\n    dhcpId: mainPublicGatewayDhcp.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n});\n//# Retrieve the dynamic entries generated by mac address \u0026 gateway network\nconst byMacAddressAndGwNetwork = scaleway.network.getPublicGatewayDhcpReservationOutput({\n    macAddress: mainPrivateNic.macAddress,\n    gatewayNetworkId: mainGatewayNetwork.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PrivateNetwork(\"main\")\nmain_server = scaleway.instance.Server(\"main\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    zone=\"fr-par-1\")\nmain_private_nic = scaleway.instance.PrivateNic(\"main\",\n    server_id=main_server.id,\n    private_network_id=main.id)\nmain_public_gateway_ip = scaleway.network.PublicGatewayIp(\"main\")\nmain_public_gateway_dhcp = scaleway.network.PublicGatewayDhcp(\"main\", subnet=\"192.168.1.0/24\")\nmain_public_gateway = scaleway.network.PublicGateway(\"main\",\n    name=\"foobar\",\n    type=\"VPC-GW-S\",\n    ip_id=main_public_gateway_ip.id)\nmain_gateway_network = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=main_public_gateway.id,\n    private_network_id=main.id,\n    dhcp_id=main_public_gateway_dhcp.id,\n    cleanup_dhcp=True,\n    enable_masquerade=True)\n## Retrieve the dynamic entries generated by mac address \u0026 gateway network\nby_mac_address_and_gw_network = scaleway.network.get_public_gateway_dhcp_reservation_output(mac_address=main_private_nic.mac_address,\n    gateway_network_id=main_gateway_network.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.Network.PrivateNetwork(\"main\");\n\n    var mainServer = new Scaleway.Instance.Server(\"main\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        Zone = \"fr-par-1\",\n    });\n\n    var mainPrivateNic = new Scaleway.Instance.PrivateNic(\"main\", new()\n    {\n        ServerId = mainServer.Id,\n        PrivateNetworkId = main.Id,\n    });\n\n    var mainPublicGatewayIp = new Scaleway.Network.PublicGatewayIp(\"main\");\n\n    var mainPublicGatewayDhcp = new Scaleway.Network.PublicGatewayDhcp(\"main\", new()\n    {\n        Subnet = \"192.168.1.0/24\",\n    });\n\n    var mainPublicGateway = new Scaleway.Network.PublicGateway(\"main\", new()\n    {\n        Name = \"foobar\",\n        Type = \"VPC-GW-S\",\n        IpId = mainPublicGatewayIp.Id,\n    });\n\n    var mainGatewayNetwork = new Scaleway.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = mainPublicGateway.Id,\n        PrivateNetworkId = main.Id,\n        DhcpId = mainPublicGatewayDhcp.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    });\n\n    //# Retrieve the dynamic entries generated by mac address \u0026 gateway network\n    var byMacAddressAndGwNetwork = Scaleway.Network.GetPublicGatewayDhcpReservation.Invoke(new()\n    {\n        MacAddress = mainPrivateNic.MacAddress,\n        GatewayNetworkId = mainGatewayNetwork.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPrivateNetwork(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainServer, err := instance.NewServer(ctx, \"main\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tZone:  pulumi.String(\"fr-par-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPrivateNic, err := instance.NewPrivateNic(ctx, \"main\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         mainServer.ID(),\n\t\t\tPrivateNetworkId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayIp, err := network.NewPublicGatewayIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayDhcp, err := network.NewPublicGatewayDhcp(ctx, \"main\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGateway, err := network.NewPublicGateway(ctx, \"main\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: mainPublicGatewayIp.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainGatewayNetwork, err := network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        mainPublicGateway.ID(),\n\t\t\tPrivateNetworkId: main.ID(),\n\t\t\tDhcpId:           mainPublicGatewayDhcp.ID(),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// # Retrieve the dynamic entries generated by mac address \u0026 gateway network\n\t\t_ = network.LookupPublicGatewayDhcpReservationOutput(ctx, network.GetPublicGatewayDhcpReservationOutputArgs{\n\t\t\tMacAddress:       mainPrivateNic.MacAddress,\n\t\t\tGatewayNetworkId: mainGatewayNetwork.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.network.PrivateNetwork;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayDhcpReservationArgs;\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 PrivateNetwork(\"main\");\n\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .zone(\"fr-par-1\")\n            .build());\n\n        var mainPrivateNic = new PrivateNic(\"mainPrivateNic\", PrivateNicArgs.builder()\n            .serverId(mainServer.id())\n            .privateNetworkId(main.id())\n            .build());\n\n        var mainPublicGatewayIp = new PublicGatewayIp(\"mainPublicGatewayIp\");\n\n        var mainPublicGatewayDhcp = new PublicGatewayDhcp(\"mainPublicGatewayDhcp\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.1.0/24\")\n            .build());\n\n        var mainPublicGateway = new PublicGateway(\"mainPublicGateway\", PublicGatewayArgs.builder()\n            .name(\"foobar\")\n            .type(\"VPC-GW-S\")\n            .ipId(mainPublicGatewayIp.id())\n            .build());\n\n        var mainGatewayNetwork = new GatewayNetwork(\"mainGatewayNetwork\", GatewayNetworkArgs.builder()\n            .gatewayId(mainPublicGateway.id())\n            .privateNetworkId(main.id())\n            .dhcpId(mainPublicGatewayDhcp.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build());\n\n        //# Retrieve the dynamic entries generated by mac address \u0026 gateway network\n        final var byMacAddressAndGwNetwork = NetworkFunctions.getPublicGatewayDhcpReservation(GetPublicGatewayDhcpReservationArgs.builder()\n            .macAddress(mainPrivateNic.macAddress())\n            .gatewayNetworkId(mainGatewayNetwork.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PrivateNetwork\n  mainServer:\n    type: scaleway:instance:Server\n    name: main\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      zone: fr-par-1\n  mainPrivateNic:\n    type: scaleway:instance:PrivateNic\n    name: main\n    properties:\n      serverId: ${mainServer.id}\n      privateNetworkId: ${main.id}\n  mainPublicGatewayIp:\n    type: scaleway:network:PublicGatewayIp\n    name: main\n  mainPublicGatewayDhcp:\n    type: scaleway:network:PublicGatewayDhcp\n    name: main\n    properties:\n      subnet: 192.168.1.0/24\n  mainPublicGateway:\n    type: scaleway:network:PublicGateway\n    name: main\n    properties:\n      name: foobar\n      type: VPC-GW-S\n      ipId: ${mainPublicGatewayIp.id}\n  mainGatewayNetwork:\n    type: scaleway:network:GatewayNetwork\n    name: main\n    properties:\n      gatewayId: ${mainPublicGateway.id}\n      privateNetworkId: ${main.id}\n      dhcpId: ${mainPublicGatewayDhcp.id}\n      cleanupDhcp: true\n      enableMasquerade: true\nvariables:\n  ## Retrieve the dynamic entries generated by mac address \u0026 gateway network\n  byMacAddressAndGwNetwork:\n    fn::invoke:\n      function: scaleway:network:getPublicGatewayDhcpReservation\n      arguments:\n        macAddress: ${mainPrivateNic.macAddress}\n        gatewayNetworkId: ${mainGatewayNetwork.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example Static and PAT Rule\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.network.PrivateNetwork(\"main\", {});\nconst mainSecurityGroup = new scaleway.instance.SecurityGroup(\"main\", {\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n    inboundRules: [{\n        action: \"accept\",\n        port: 22,\n    }],\n});\nconst mainServer = new scaleway.instance.Server(\"main\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    zone: \"fr-par-1\",\n    securityGroupId: mainSecurityGroup.id,\n});\nconst mainPrivateNic = new scaleway.instance.PrivateNic(\"main\", {\n    serverId: mainServer.id,\n    privateNetworkId: main.id,\n});\nconst mainPublicGatewayIp = new scaleway.network.PublicGatewayIp(\"main\", {});\nconst mainPublicGatewayDhcp = new scaleway.network.PublicGatewayDhcp(\"main\", {subnet: \"192.168.1.0/24\"});\nconst mainPublicGateway = new scaleway.network.PublicGateway(\"main\", {\n    name: \"foobar\",\n    type: \"VPC-GW-S\",\n    ipId: mainPublicGatewayIp.id,\n});\nconst mainGatewayNetwork = new scaleway.network.GatewayNetwork(\"main\", {\n    gatewayId: mainPublicGateway.id,\n    privateNetworkId: main.id,\n    dhcpId: mainPublicGatewayDhcp.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n});\nconst mainPublicGatewayDhcpReservation = new scaleway.network.PublicGatewayDhcpReservation(\"main\", {\n    gatewayNetworkId: mainGatewayNetwork.id,\n    macAddress: mainPrivateNic.macAddress,\n    ipAddress: \"192.168.1.4\",\n});\n//## VPC PAT RULE\nconst mainPublicGatewayPatRule = new scaleway.network.PublicGatewayPatRule(\"main\", {\n    gatewayId: mainPublicGateway.id,\n    privateIp: mainPublicGatewayDhcpReservation.ipAddress,\n    privatePort: 22,\n    publicPort: 2222,\n    protocol: \"tcp\",\n});\nconst byId = scaleway.network.getPublicGatewayDhcpReservationOutput({\n    reservationId: mainPublicGatewayDhcpReservation.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PrivateNetwork(\"main\")\nmain_security_group = scaleway.instance.SecurityGroup(\"main\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\",\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"port\": 22,\n    }])\nmain_server = scaleway.instance.Server(\"main\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    zone=\"fr-par-1\",\n    security_group_id=main_security_group.id)\nmain_private_nic = scaleway.instance.PrivateNic(\"main\",\n    server_id=main_server.id,\n    private_network_id=main.id)\nmain_public_gateway_ip = scaleway.network.PublicGatewayIp(\"main\")\nmain_public_gateway_dhcp = scaleway.network.PublicGatewayDhcp(\"main\", subnet=\"192.168.1.0/24\")\nmain_public_gateway = scaleway.network.PublicGateway(\"main\",\n    name=\"foobar\",\n    type=\"VPC-GW-S\",\n    ip_id=main_public_gateway_ip.id)\nmain_gateway_network = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=main_public_gateway.id,\n    private_network_id=main.id,\n    dhcp_id=main_public_gateway_dhcp.id,\n    cleanup_dhcp=True,\n    enable_masquerade=True)\nmain_public_gateway_dhcp_reservation = scaleway.network.PublicGatewayDhcpReservation(\"main\",\n    gateway_network_id=main_gateway_network.id,\n    mac_address=main_private_nic.mac_address,\n    ip_address=\"192.168.1.4\")\n### VPC PAT RULE\nmain_public_gateway_pat_rule = scaleway.network.PublicGatewayPatRule(\"main\",\n    gateway_id=main_public_gateway.id,\n    private_ip=main_public_gateway_dhcp_reservation.ip_address,\n    private_port=22,\n    public_port=2222,\n    protocol=\"tcp\")\nby_id = scaleway.network.get_public_gateway_dhcp_reservation_output(reservation_id=main_public_gateway_dhcp_reservation.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.Network.PrivateNetwork(\"main\");\n\n    var mainSecurityGroup = new Scaleway.Instance.SecurityGroup(\"main\", new()\n    {\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n        InboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 22,\n            },\n        },\n    });\n\n    var mainServer = new Scaleway.Instance.Server(\"main\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        Zone = \"fr-par-1\",\n        SecurityGroupId = mainSecurityGroup.Id,\n    });\n\n    var mainPrivateNic = new Scaleway.Instance.PrivateNic(\"main\", new()\n    {\n        ServerId = mainServer.Id,\n        PrivateNetworkId = main.Id,\n    });\n\n    var mainPublicGatewayIp = new Scaleway.Network.PublicGatewayIp(\"main\");\n\n    var mainPublicGatewayDhcp = new Scaleway.Network.PublicGatewayDhcp(\"main\", new()\n    {\n        Subnet = \"192.168.1.0/24\",\n    });\n\n    var mainPublicGateway = new Scaleway.Network.PublicGateway(\"main\", new()\n    {\n        Name = \"foobar\",\n        Type = \"VPC-GW-S\",\n        IpId = mainPublicGatewayIp.Id,\n    });\n\n    var mainGatewayNetwork = new Scaleway.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = mainPublicGateway.Id,\n        PrivateNetworkId = main.Id,\n        DhcpId = mainPublicGatewayDhcp.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    });\n\n    var mainPublicGatewayDhcpReservation = new Scaleway.Network.PublicGatewayDhcpReservation(\"main\", new()\n    {\n        GatewayNetworkId = mainGatewayNetwork.Id,\n        MacAddress = mainPrivateNic.MacAddress,\n        IpAddress = \"192.168.1.4\",\n    });\n\n    //## VPC PAT RULE\n    var mainPublicGatewayPatRule = new Scaleway.Network.PublicGatewayPatRule(\"main\", new()\n    {\n        GatewayId = mainPublicGateway.Id,\n        PrivateIp = mainPublicGatewayDhcpReservation.IpAddress,\n        PrivatePort = 22,\n        PublicPort = 2222,\n        Protocol = \"tcp\",\n    });\n\n    var byId = Scaleway.Network.GetPublicGatewayDhcpReservation.Invoke(new()\n    {\n        ReservationId = mainPublicGatewayDhcpReservation.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPrivateNetwork(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSecurityGroup, err := instance.NewSecurityGroup(ctx, \"main\", \u0026instance.SecurityGroupArgs{\n\t\t\tInboundDefaultPolicy:  pulumi.String(\"drop\"),\n\t\t\tOutboundDefaultPolicy: pulumi.String(\"accept\"),\n\t\t\tInboundRules: instance.SecurityGroupInboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"accept\"),\n\t\t\t\t\tPort:   pulumi.Int(22),\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\tmainServer, err := instance.NewServer(ctx, \"main\", \u0026instance.ServerArgs{\n\t\t\tImage:           pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:            pulumi.String(\"DEV1-S\"),\n\t\t\tZone:            pulumi.String(\"fr-par-1\"),\n\t\t\tSecurityGroupId: mainSecurityGroup.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPrivateNic, err := instance.NewPrivateNic(ctx, \"main\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         mainServer.ID(),\n\t\t\tPrivateNetworkId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayIp, err := network.NewPublicGatewayIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayDhcp, err := network.NewPublicGatewayDhcp(ctx, \"main\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGateway, err := network.NewPublicGateway(ctx, \"main\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: mainPublicGatewayIp.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainGatewayNetwork, err := network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        mainPublicGateway.ID(),\n\t\t\tPrivateNetworkId: main.ID(),\n\t\t\tDhcpId:           mainPublicGatewayDhcp.ID(),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayDhcpReservation, err := network.NewPublicGatewayDhcpReservation(ctx, \"main\", \u0026network.PublicGatewayDhcpReservationArgs{\n\t\t\tGatewayNetworkId: mainGatewayNetwork.ID(),\n\t\t\tMacAddress:       mainPrivateNic.MacAddress,\n\t\t\tIpAddress:        pulumi.String(\"192.168.1.4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## VPC PAT RULE\n\t\t_, err = network.NewPublicGatewayPatRule(ctx, \"main\", \u0026network.PublicGatewayPatRuleArgs{\n\t\t\tGatewayId:   mainPublicGateway.ID(),\n\t\t\tPrivateIp:   mainPublicGatewayDhcpReservation.IpAddress,\n\t\t\tPrivatePort: pulumi.Int(22),\n\t\t\tPublicPort:  pulumi.Int(2222),\n\t\t\tProtocol:    pulumi.String(\"tcp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupPublicGatewayDhcpReservationOutput(ctx, network.GetPublicGatewayDhcpReservationOutputArgs{\n\t\t\tReservationId: mainPublicGatewayDhcpReservation.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.network.PrivateNetwork;\nimport com.pulumi.scaleway.instance.SecurityGroup;\nimport com.pulumi.scaleway.instance.SecurityGroupArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupInboundRuleArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservation;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservationArgs;\nimport com.pulumi.scaleway.network.PublicGatewayPatRule;\nimport com.pulumi.scaleway.network.PublicGatewayPatRuleArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayDhcpReservationArgs;\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 PrivateNetwork(\"main\");\n\n        var mainSecurityGroup = new SecurityGroup(\"mainSecurityGroup\", SecurityGroupArgs.builder()\n            .inboundDefaultPolicy(\"drop\")\n            .outboundDefaultPolicy(\"accept\")\n            .inboundRules(SecurityGroupInboundRuleArgs.builder()\n                .action(\"accept\")\n                .port(22)\n                .build())\n            .build());\n\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .zone(\"fr-par-1\")\n            .securityGroupId(mainSecurityGroup.id())\n            .build());\n\n        var mainPrivateNic = new PrivateNic(\"mainPrivateNic\", PrivateNicArgs.builder()\n            .serverId(mainServer.id())\n            .privateNetworkId(main.id())\n            .build());\n\n        var mainPublicGatewayIp = new PublicGatewayIp(\"mainPublicGatewayIp\");\n\n        var mainPublicGatewayDhcp = new PublicGatewayDhcp(\"mainPublicGatewayDhcp\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.1.0/24\")\n            .build());\n\n        var mainPublicGateway = new PublicGateway(\"mainPublicGateway\", PublicGatewayArgs.builder()\n            .name(\"foobar\")\n            .type(\"VPC-GW-S\")\n            .ipId(mainPublicGatewayIp.id())\n            .build());\n\n        var mainGatewayNetwork = new GatewayNetwork(\"mainGatewayNetwork\", GatewayNetworkArgs.builder()\n            .gatewayId(mainPublicGateway.id())\n            .privateNetworkId(main.id())\n            .dhcpId(mainPublicGatewayDhcp.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build());\n\n        var mainPublicGatewayDhcpReservation = new PublicGatewayDhcpReservation(\"mainPublicGatewayDhcpReservation\", PublicGatewayDhcpReservationArgs.builder()\n            .gatewayNetworkId(mainGatewayNetwork.id())\n            .macAddress(mainPrivateNic.macAddress())\n            .ipAddress(\"192.168.1.4\")\n            .build());\n\n        //## VPC PAT RULE\n        var mainPublicGatewayPatRule = new PublicGatewayPatRule(\"mainPublicGatewayPatRule\", PublicGatewayPatRuleArgs.builder()\n            .gatewayId(mainPublicGateway.id())\n            .privateIp(mainPublicGatewayDhcpReservation.ipAddress())\n            .privatePort(22)\n            .publicPort(2222)\n            .protocol(\"tcp\")\n            .build());\n\n        final var byId = NetworkFunctions.getPublicGatewayDhcpReservation(GetPublicGatewayDhcpReservationArgs.builder()\n            .reservationId(mainPublicGatewayDhcpReservation.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PrivateNetwork\n  mainSecurityGroup:\n    type: scaleway:instance:SecurityGroup\n    name: main\n    properties:\n      inboundDefaultPolicy: drop\n      outboundDefaultPolicy: accept\n      inboundRules:\n        - action: accept\n          port: '22'\n  mainServer:\n    type: scaleway:instance:Server\n    name: main\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      zone: fr-par-1\n      securityGroupId: ${mainSecurityGroup.id}\n  mainPrivateNic:\n    type: scaleway:instance:PrivateNic\n    name: main\n    properties:\n      serverId: ${mainServer.id}\n      privateNetworkId: ${main.id}\n  mainPublicGatewayIp:\n    type: scaleway:network:PublicGatewayIp\n    name: main\n  mainPublicGatewayDhcp:\n    type: scaleway:network:PublicGatewayDhcp\n    name: main\n    properties:\n      subnet: 192.168.1.0/24\n  mainPublicGateway:\n    type: scaleway:network:PublicGateway\n    name: main\n    properties:\n      name: foobar\n      type: VPC-GW-S\n      ipId: ${mainPublicGatewayIp.id}\n  mainGatewayNetwork:\n    type: scaleway:network:GatewayNetwork\n    name: main\n    properties:\n      gatewayId: ${mainPublicGateway.id}\n      privateNetworkId: ${main.id}\n      dhcpId: ${mainPublicGatewayDhcp.id}\n      cleanupDhcp: true\n      enableMasquerade: true\n  mainPublicGatewayDhcpReservation:\n    type: scaleway:network:PublicGatewayDhcpReservation\n    name: main\n    properties:\n      gatewayNetworkId: ${mainGatewayNetwork.id}\n      macAddress: ${mainPrivateNic.macAddress}\n      ipAddress: 192.168.1.4\n  ### VPC PAT RULE\n  mainPublicGatewayPatRule:\n    type: scaleway:network:PublicGatewayPatRule\n    name: main\n    properties:\n      gatewayId: ${mainPublicGateway.id}\n      privateIp: ${mainPublicGatewayDhcpReservation.ipAddress}\n      privatePort: 22\n      publicPort: 2222\n      protocol: tcp\nvariables:\n  byId:\n    fn::invoke:\n      function: scaleway:network:getPublicGatewayDhcpReservation\n      arguments:\n        reservationId: ${mainPublicGatewayDhcpReservation.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcPublicGatewayDhcpReservation.\n","properties":{"gatewayNetworkId":{"type":"string","description":"The ID of the owning GatewayNetwork.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`reservationId`\" pulumi-lang-dotnet=\"`ReservationId`\" pulumi-lang-go=\"`reservationId`\" pulumi-lang-python=\"`reservation_id`\" pulumi-lang-yaml=\"`reservationId`\" pulumi-lang-java=\"`reservationId`\"\u003e`reservation_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`macAddress`\" pulumi-lang-dotnet=\"`MacAddress`\" pulumi-lang-go=\"`macAddress`\" pulumi-lang-python=\"`mac_address`\" pulumi-lang-yaml=\"`macAddress`\" pulumi-lang-java=\"`macAddress`\"\u003e`mac_address`\u003c/span\u003e with \u003cspan pulumi-lang-nodejs=\"`gatewayNetworkId`\" pulumi-lang-dotnet=\"`GatewayNetworkId`\" pulumi-lang-go=\"`gatewayNetworkId`\" pulumi-lang-python=\"`gateway_network_id`\" pulumi-lang-yaml=\"`gatewayNetworkId`\" pulumi-lang-java=\"`gatewayNetworkId`\"\u003e`gateway_network_id`\u003c/span\u003e should be specified.\n"},"macAddress":{"type":"string","description":"The MAC address of the reservation to retrieve.\n"},"reservationId":{"type":"string","description":"The ID of the reservation (DHCP entry) to retrieve.\n"},"waitForDhcp":{"type":"boolean","description":"Whether to wait for \u003cspan pulumi-lang-nodejs=\"`macAddress`\" pulumi-lang-dotnet=\"`MacAddress`\" pulumi-lang-go=\"`macAddress`\" pulumi-lang-python=\"`mac_address`\" pulumi-lang-yaml=\"`macAddress`\" pulumi-lang-java=\"`macAddress`\"\u003e`mac_address`\u003c/span\u003e to exist in DHCP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e). The zone in which the reservation exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcPublicGatewayDhcpReservation.\n","properties":{"createdAt":{"type":"string"},"gatewayNetworkId":{"type":"string"},"hostname":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipAddress":{"type":"string"},"macAddress":{"type":"string"},"reservationId":{"type":"string"},"type":{"type":"string"},"updatedAt":{"type":"string"},"waitForDhcp":{"type":"boolean"},"zone":{"type":"string"}},"required":["createdAt","hostname","ipAddress","type","updatedAt","id"],"type":"object"}},"scaleway:index/getVpcPublicGatewayIp:getVpcPublicGatewayIp":{"deprecationMessage":"scaleway.index/getvpcpublicgatewayip.getVpcPublicGatewayIp has been deprecated in favor of scaleway.network/getpublicgatewayip.getPublicGatewayIp","description":"Gets information about a Public Gateway public flexible IP address.\n\nFor further information, please see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-ips-list-ips).\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.network.PublicGatewayIp(\"main\", {});\nconst ipById = scaleway.network.getPublicGatewayIpOutput({\n    ipId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGatewayIp(\"main\")\nip_by_id = scaleway.network.get_public_gateway_ip_output(ip_id=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.Network.PublicGatewayIp(\"main\");\n\n    var ipById = Scaleway.Network.GetPublicGatewayIp.Invoke(new()\n    {\n        IpId = 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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPublicGatewayIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupPublicGatewayIpOutput(ctx, network.GetPublicGatewayIpOutputArgs{\n\t\t\tIpId: 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.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayIpArgs;\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 PublicGatewayIp(\"main\");\n\n        final var ipById = NetworkFunctions.getPublicGatewayIp(GetPublicGatewayIpArgs.builder()\n            .ipId(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGatewayIp\nvariables:\n  ipById:\n    fn::invoke:\n      function: scaleway:network:getPublicGatewayIp\n      arguments:\n        ipId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcPublicGatewayIp.\n","properties":{"ipId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcPublicGatewayIp.\n","properties":{"address":{"type":"string"},"createdAt":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipId":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"reverse":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"zone":{"type":"string"}},"required":["address","createdAt","organizationId","projectId","reverse","tags","updatedAt","zone","id"],"type":"object"}},"scaleway:index/getVpcPublicPatRule:getVpcPublicPatRule":{"deprecationMessage":"scaleway.index/getvpcpublicpatrule.getVpcPublicPatRule has been deprecated in favor of scaleway.network/getpublicgatewaypatrule.getPublicGatewayPatRule","description":"Gets information about a Public Gateway PAT rule. For further information, please see the\n[API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-pat-rules-list-pat-rules).\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 sg01 = new scaleway.instance.SecurityGroup(\"sg01\", {\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n    inboundRules: [{\n        action: \"accept\",\n        port: 22,\n        protocol: \"TCP\",\n    }],\n});\nconst srv01 = new scaleway.instance.Server(\"srv01\", {\n    name: \"my-server\",\n    type: \"PLAY2-NANO\",\n    image: \"ubuntu_jammy\",\n    securityGroupId: sg01.id,\n});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {name: \"my-pn\"});\nconst pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    serverId: srv01.id,\n    privateNetworkId: pn01.id,\n});\nconst dhcp01 = new scaleway.network.PublicGatewayDhcp(\"dhcp01\", {subnet: \"192.168.0.0/24\"});\nconst ip01 = new scaleway.network.PublicGatewayIp(\"ip01\", {});\nconst pg01 = new scaleway.network.PublicGateway(\"pg01\", {\n    name: \"my-pg\",\n    type: \"VPC-GW-S\",\n    ipId: ip01.id,\n});\nconst gn01 = new scaleway.network.GatewayNetwork(\"gn01\", {\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n    dhcpId: dhcp01.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n});\nconst rsv01 = new scaleway.network.PublicGatewayDhcpReservation(\"rsv01\", {\n    gatewayNetworkId: gn01.id,\n    macAddress: pnic01.macAddress,\n    ipAddress: \"192.168.0.7\",\n});\nconst pat01 = new scaleway.network.PublicGatewayPatRule(\"pat01\", {\n    gatewayId: pg01.id,\n    privateIp: rsv01.ipAddress,\n    privatePort: 22,\n    publicPort: 2202,\n    protocol: \"tcp\",\n});\nconst main = scaleway.network.getPublicGatewayPatRuleOutput({\n    patRuleId: pat01.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nsg01 = scaleway.instance.SecurityGroup(\"sg01\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\",\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"port\": 22,\n        \"protocol\": \"TCP\",\n    }])\nsrv01 = scaleway.instance.Server(\"srv01\",\n    name=\"my-server\",\n    type=\"PLAY2-NANO\",\n    image=\"ubuntu_jammy\",\n    security_group_id=sg01.id)\npn01 = scaleway.network.PrivateNetwork(\"pn01\", name=\"my-pn\")\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    server_id=srv01.id,\n    private_network_id=pn01.id)\ndhcp01 = scaleway.network.PublicGatewayDhcp(\"dhcp01\", subnet=\"192.168.0.0/24\")\nip01 = scaleway.network.PublicGatewayIp(\"ip01\")\npg01 = scaleway.network.PublicGateway(\"pg01\",\n    name=\"my-pg\",\n    type=\"VPC-GW-S\",\n    ip_id=ip01.id)\ngn01 = scaleway.network.GatewayNetwork(\"gn01\",\n    gateway_id=pg01.id,\n    private_network_id=pn01.id,\n    dhcp_id=dhcp01.id,\n    cleanup_dhcp=True,\n    enable_masquerade=True)\nrsv01 = scaleway.network.PublicGatewayDhcpReservation(\"rsv01\",\n    gateway_network_id=gn01.id,\n    mac_address=pnic01.mac_address,\n    ip_address=\"192.168.0.7\")\npat01 = scaleway.network.PublicGatewayPatRule(\"pat01\",\n    gateway_id=pg01.id,\n    private_ip=rsv01.ip_address,\n    private_port=22,\n    public_port=2202,\n    protocol=\"tcp\")\nmain = scaleway.network.get_public_gateway_pat_rule_output(pat_rule_id=pat01.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 sg01 = new Scaleway.Instance.SecurityGroup(\"sg01\", new()\n    {\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n        InboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 22,\n                Protocol = \"TCP\",\n            },\n        },\n    });\n\n    var srv01 = new Scaleway.Instance.Server(\"srv01\", new()\n    {\n        Name = \"my-server\",\n        Type = \"PLAY2-NANO\",\n        Image = \"ubuntu_jammy\",\n        SecurityGroupId = sg01.Id,\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"my-pn\",\n    });\n\n    var pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        ServerId = srv01.Id,\n        PrivateNetworkId = pn01.Id,\n    });\n\n    var dhcp01 = new Scaleway.Network.PublicGatewayDhcp(\"dhcp01\", new()\n    {\n        Subnet = \"192.168.0.0/24\",\n    });\n\n    var ip01 = new Scaleway.Network.PublicGatewayIp(\"ip01\");\n\n    var pg01 = new Scaleway.Network.PublicGateway(\"pg01\", new()\n    {\n        Name = \"my-pg\",\n        Type = \"VPC-GW-S\",\n        IpId = ip01.Id,\n    });\n\n    var gn01 = new Scaleway.Network.GatewayNetwork(\"gn01\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.Id,\n        DhcpId = dhcp01.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    });\n\n    var rsv01 = new Scaleway.Network.PublicGatewayDhcpReservation(\"rsv01\", new()\n    {\n        GatewayNetworkId = gn01.Id,\n        MacAddress = pnic01.MacAddress,\n        IpAddress = \"192.168.0.7\",\n    });\n\n    var pat01 = new Scaleway.Network.PublicGatewayPatRule(\"pat01\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateIp = rsv01.IpAddress,\n        PrivatePort = 22,\n        PublicPort = 2202,\n        Protocol = \"tcp\",\n    });\n\n    var main = Scaleway.Network.GetPublicGatewayPatRule.Invoke(new()\n    {\n        PatRuleId = pat01.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsg01, err := instance.NewSecurityGroup(ctx, \"sg01\", \u0026instance.SecurityGroupArgs{\n\t\t\tInboundDefaultPolicy:  pulumi.String(\"drop\"),\n\t\t\tOutboundDefaultPolicy: pulumi.String(\"accept\"),\n\t\t\tInboundRules: instance.SecurityGroupInboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction:   pulumi.String(\"accept\"),\n\t\t\t\t\tPort:     pulumi.Int(22),\n\t\t\t\t\tProtocol: pulumi.String(\"TCP\"),\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\tsrv01, err := instance.NewServer(ctx, \"srv01\", \u0026instance.ServerArgs{\n\t\t\tName:            pulumi.String(\"my-server\"),\n\t\t\tType:            pulumi.String(\"PLAY2-NANO\"),\n\t\t\tImage:           pulumi.String(\"ubuntu_jammy\"),\n\t\t\tSecurityGroupId: sg01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"my-pn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpnic01, err := instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         srv01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdhcp01, err := network.NewPublicGatewayDhcp(ctx, \"dhcp01\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tip01, err := network.NewPublicGatewayIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpg01, err := network.NewPublicGateway(ctx, \"pg01\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"my-pg\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: ip01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgn01, err := network.NewGatewayNetwork(ctx, \"gn01\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        pg01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tDhcpId:           dhcp01.ID(),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trsv01, err := network.NewPublicGatewayDhcpReservation(ctx, \"rsv01\", \u0026network.PublicGatewayDhcpReservationArgs{\n\t\t\tGatewayNetworkId: gn01.ID(),\n\t\t\tMacAddress:       pnic01.MacAddress,\n\t\t\tIpAddress:        pulumi.String(\"192.168.0.7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpat01, err := network.NewPublicGatewayPatRule(ctx, \"pat01\", \u0026network.PublicGatewayPatRuleArgs{\n\t\t\tGatewayId:   pg01.ID(),\n\t\t\tPrivateIp:   rsv01.IpAddress,\n\t\t\tPrivatePort: pulumi.Int(22),\n\t\t\tPublicPort:  pulumi.Int(2202),\n\t\t\tProtocol:    pulumi.String(\"tcp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupPublicGatewayPatRuleOutput(ctx, network.GetPublicGatewayPatRuleOutputArgs{\n\t\t\tPatRuleId: pat01.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.instance.SecurityGroup;\nimport com.pulumi.scaleway.instance.SecurityGroupArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupInboundRuleArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservation;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservationArgs;\nimport com.pulumi.scaleway.network.PublicGatewayPatRule;\nimport com.pulumi.scaleway.network.PublicGatewayPatRuleArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayPatRuleArgs;\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 sg01 = new SecurityGroup(\"sg01\", SecurityGroupArgs.builder()\n            .inboundDefaultPolicy(\"drop\")\n            .outboundDefaultPolicy(\"accept\")\n            .inboundRules(SecurityGroupInboundRuleArgs.builder()\n                .action(\"accept\")\n                .port(22)\n                .protocol(\"TCP\")\n                .build())\n            .build());\n\n        var srv01 = new Server(\"srv01\", ServerArgs.builder()\n            .name(\"my-server\")\n            .type(\"PLAY2-NANO\")\n            .image(\"ubuntu_jammy\")\n            .securityGroupId(sg01.id())\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"my-pn\")\n            .build());\n\n        var pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .serverId(srv01.id())\n            .privateNetworkId(pn01.id())\n            .build());\n\n        var dhcp01 = new PublicGatewayDhcp(\"dhcp01\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.0.0/24\")\n            .build());\n\n        var ip01 = new PublicGatewayIp(\"ip01\");\n\n        var pg01 = new PublicGateway(\"pg01\", PublicGatewayArgs.builder()\n            .name(\"my-pg\")\n            .type(\"VPC-GW-S\")\n            .ipId(ip01.id())\n            .build());\n\n        var gn01 = new GatewayNetwork(\"gn01\", GatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .dhcpId(dhcp01.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build());\n\n        var rsv01 = new PublicGatewayDhcpReservation(\"rsv01\", PublicGatewayDhcpReservationArgs.builder()\n            .gatewayNetworkId(gn01.id())\n            .macAddress(pnic01.macAddress())\n            .ipAddress(\"192.168.0.7\")\n            .build());\n\n        var pat01 = new PublicGatewayPatRule(\"pat01\", PublicGatewayPatRuleArgs.builder()\n            .gatewayId(pg01.id())\n            .privateIp(rsv01.ipAddress())\n            .privatePort(22)\n            .publicPort(2202)\n            .protocol(\"tcp\")\n            .build());\n\n        final var main = NetworkFunctions.getPublicGatewayPatRule(GetPublicGatewayPatRuleArgs.builder()\n            .patRuleId(pat01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sg01:\n    type: scaleway:instance:SecurityGroup\n    properties:\n      inboundDefaultPolicy: drop\n      outboundDefaultPolicy: accept\n      inboundRules:\n        - action: accept\n          port: 22\n          protocol: TCP\n  srv01:\n    type: scaleway:instance:Server\n    properties:\n      name: my-server\n      type: PLAY2-NANO\n      image: ubuntu_jammy\n      securityGroupId: ${sg01.id}\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      serverId: ${srv01.id}\n      privateNetworkId: ${pn01.id}\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: my-pn\n  dhcp01:\n    type: scaleway:network:PublicGatewayDhcp\n    properties:\n      subnet: 192.168.0.0/24\n  ip01:\n    type: scaleway:network:PublicGatewayIp\n  pg01:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: my-pg\n      type: VPC-GW-S\n      ipId: ${ip01.id}\n  gn01:\n    type: scaleway:network:GatewayNetwork\n    properties:\n      gatewayId: ${pg01.id}\n      privateNetworkId: ${pn01.id}\n      dhcpId: ${dhcp01.id}\n      cleanupDhcp: true\n      enableMasquerade: true\n  rsv01:\n    type: scaleway:network:PublicGatewayDhcpReservation\n    properties:\n      gatewayNetworkId: ${gn01.id}\n      macAddress: ${pnic01.macAddress}\n      ipAddress: 192.168.0.7\n  pat01:\n    type: scaleway:network:PublicGatewayPatRule\n    properties:\n      gatewayId: ${pg01.id}\n      privateIp: ${rsv01.ipAddress}\n      privatePort: 22\n      publicPort: 2202\n      protocol: tcp\nvariables:\n  main:\n    fn::invoke:\n      function: scaleway:network:getPublicGatewayPatRule\n      arguments:\n        patRuleId: ${pat01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpcPublicPatRule.\n","properties":{"patRuleId":{"type":"string","description":"The ID of the PAT rule to retrieve\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe rule exists.\n"}},"type":"object","required":["patRuleId"]},"outputs":{"description":"A collection of values returned by getVpcPublicPatRule.\n","properties":{"createdAt":{"type":"string"},"gatewayId":{"description":"The ID of the Public Gateway.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"patRuleId":{"type":"string"},"privateIp":{"description":"The private IP address to forward data to.\n","type":"string"},"privatePort":{"description":"The private port to translate to.\n","type":"integer"},"protocol":{"description":"The protocol the rule should apply to. Possible values are \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n","type":"string"},"publicPort":{"description":"The public port to listen on.\n","type":"integer"},"updatedAt":{"type":"string"},"zone":{"type":"string"}},"required":["createdAt","gatewayId","organizationId","patRuleId","privateIp","privatePort","protocol","publicPort","updatedAt","id"],"type":"object"}},"scaleway:index/getVpcRoutes:getVpcRoutes":{"deprecationMessage":"scaleway.index/getvpcroutes.getVpcRoutes has been deprecated in favor of scaleway.network/getroutes.getRoutes","description":"Gets information about multiple VPC routes.\n\n","inputs":{"description":"A collection of arguments for invoking getVpcRoutes.\n","properties":{"isIpv6":{"type":"boolean","description":"Routes with an IPv6 destination will be listed.\n"},"nexthopPrivateNetworkId":{"type":"string","description":"The next hop private network ID to filter for. routes with a similar next hop private network ID are listed.\n"},"nexthopResourceId":{"type":"string","description":"The next hop resource ID to filter for. routes with a similar next hop resource ID are listed.\n"},"nexthopResourceType":{"type":"string","description":"The next hop resource type to filter for. routes with a similar next hop resource type are listed.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the routes exist.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. routes with these exact tags are listed.\n"},"vpcId":{"type":"string","description":"The VPC ID to filter for. routes with a similar VPC ID are listed.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcRoutes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isIpv6":{"type":"boolean"},"nexthopPrivateNetworkId":{"type":"string"},"nexthopResourceId":{"type":"string"},"nexthopResourceType":{"type":"string"},"region":{"type":"string"},"routes":{"description":"List of retrieved routes\n","items":{"$ref":"#/types/scaleway:index/getVpcRoutesRoute:getVpcRoutesRoute"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"vpcId":{"type":"string"}},"required":["routes","id"],"type":"object"}},"scaleway:index/getVpcs:getVpcs":{"deprecationMessage":"scaleway.index/getvpcs.getVpcs has been deprecated in favor of scaleway.network/getvpcs.getVpcs","description":"Gets information about multiple Virtual Private Clouds.\n\n","inputs":{"description":"A collection of arguments for invoking getVpcs.\n","properties":{"name":{"type":"string","description":"The VPC name to filter for. VPCs with a similar name are listed.\n"},"projectId":{"type":"string","description":"The ID of the Project the VPC is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the VPCs exist.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. VPCs with these exact tags are listed.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The Organization ID the VPC is associated with.\n","type":"string"},"projectId":{"description":"The ID of the Project the VPC is associated with.\n","type":"string"},"region":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"vpcs":{"description":"List of retrieved VPCs\n","items":{"$ref":"#/types/scaleway:index/getVpcsVpc:getVpcsVpc"},"type":"array"}},"required":["organizationId","projectId","vpcs","id"],"type":"object"}},"scaleway:index/getWebHostOffer:getWebHostOffer":{"deprecationMessage":"scaleway.index/getwebhostoffer.getWebHostOffer has been deprecated in favor of scaleway.hosting/getoffer.getOffer","description":"Gets information about a webhosting offer.\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\n// Get info by offer name\nconst byName = scaleway.hosting.getOffer({\n    name: \"performance\",\n    controlPanel: \"Cpanel\",\n});\n// Get info by offer id\nconst byId = scaleway.hosting.getOffer({\n    offerId: \"de2426b4-a9e9-11ec-b909-0242ac120002\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by offer name\nby_name = scaleway.hosting.get_offer(name=\"performance\",\n    control_panel=\"Cpanel\")\n# Get info by offer id\nby_id = scaleway.hosting.get_offer(offer_id=\"de2426b4-a9e9-11ec-b909-0242ac120002\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by offer name\n    var byName = Scaleway.Hosting.GetOffer.Invoke(new()\n    {\n        Name = \"performance\",\n        ControlPanel = \"Cpanel\",\n    });\n\n    // Get info by offer id\n    var byId = Scaleway.Hosting.GetOffer.Invoke(new()\n    {\n        OfferId = \"de2426b4-a9e9-11ec-b909-0242ac120002\",\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/hosting\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by offer name\n\t\t_, err := hosting.GetOffer(ctx, \u0026hosting.GetOfferArgs{\n\t\t\tName:         pulumi.StringRef(\"performance\"),\n\t\t\tControlPanel: pulumi.StringRef(\"Cpanel\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by offer id\n\t\t_, err = hosting.GetOffer(ctx, \u0026hosting.GetOfferArgs{\n\t\t\tOfferId: pulumi.StringRef(\"de2426b4-a9e9-11ec-b909-0242ac120002\"),\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.hosting.HostingFunctions;\nimport com.pulumi.scaleway.hosting.inputs.GetOfferArgs;\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        // Get info by offer name\n        final var byName = HostingFunctions.getOffer(GetOfferArgs.builder()\n            .name(\"performance\")\n            .controlPanel(\"Cpanel\")\n            .build());\n\n        // Get info by offer id\n        final var byId = HostingFunctions.getOffer(GetOfferArgs.builder()\n            .offerId(\"de2426b4-a9e9-11ec-b909-0242ac120002\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by offer name\n  byName:\n    fn::invoke:\n      function: scaleway:hosting:getOffer\n      arguments:\n        name: performance\n        controlPanel: Cpanel\n  # Get info by offer id\n  byId:\n    fn::invoke:\n      function: scaleway:hosting:getOffer\n      arguments:\n        offerId: de2426b4-a9e9-11ec-b909-0242ac120002\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWebHostOffer.\n","properties":{"controlPanel":{"type":"string","description":"Name of the control panel (Cpanel or Plesk). This argument is only used when \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e is not specified.\n"},"name":{"type":"string","description":"The offer name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"offerId":{"type":"string","description":"The offer id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`offerId`\" pulumi-lang-dotnet=\"`OfferId`\" pulumi-lang-go=\"`offerId`\" pulumi-lang-python=\"`offer_id`\" pulumi-lang-yaml=\"`offerId`\" pulumi-lang-java=\"`offerId`\"\u003e`offer_id`\u003c/span\u003e should be specified.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which offer exists.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getWebHostOffer.\n","properties":{"billingOperationPath":{"description":"The billing operation identifier for the option.\n","type":"string"},"controlPanel":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the option.\n","type":"string"},"offerId":{"type":"string"},"offers":{"description":"The detailed offer of the hosting.\n","items":{"$ref":"#/types/scaleway:index/getWebHostOfferOffer:getWebHostOfferOffer"},"type":"array"},"price":{"description":"The offer price.\n","type":"string"},"products":{"deprecationMessage":"The product field is deprecated. Please use the offer field instead.","description":"(deprecated) The offer product.\n","items":{"$ref":"#/types/scaleway:index/getWebHostOfferProduct:getWebHostOfferProduct"},"type":"array"},"region":{"type":"string"}},"required":["billingOperationPath","offers","price","products","id"],"type":"object"}},"scaleway:index/getWebhosting:getWebhosting":{"deprecationMessage":"scaleway.index/getwebhosting.getWebhosting has been deprecated in favor of scaleway.hosting/gethosting.getHosting","description":"Gets information about a webhosting.\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\n// Get info by offer domain\nconst byDomain = scaleway.hosting.getHosting({\n    domain: \"foobar.com\",\n});\n// Get info by id\nconst byId = scaleway.hosting.getHosting({\n    webhostingId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by offer domain\nby_domain = scaleway.hosting.get_hosting(domain=\"foobar.com\")\n# Get info by id\nby_id = scaleway.hosting.get_hosting(webhosting_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    // Get info by offer domain\n    var byDomain = Scaleway.Hosting.GetHosting.Invoke(new()\n    {\n        Domain = \"foobar.com\",\n    });\n\n    // Get info by id\n    var byId = Scaleway.Hosting.GetHosting.Invoke(new()\n    {\n        WebhostingId = \"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/hosting\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by offer domain\n\t\t_, err := hosting.LookupHosting(ctx, \u0026hosting.LookupHostingArgs{\n\t\t\tDomain: pulumi.StringRef(\"foobar.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by id\n\t\t_, err = hosting.LookupHosting(ctx, \u0026hosting.LookupHostingArgs{\n\t\t\tWebhostingId: 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.hosting.HostingFunctions;\nimport com.pulumi.scaleway.hosting.inputs.GetHostingArgs;\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        // Get info by offer domain\n        final var byDomain = HostingFunctions.getHosting(GetHostingArgs.builder()\n            .domain(\"foobar.com\")\n            .build());\n\n        // Get info by id\n        final var byId = HostingFunctions.getHosting(GetHostingArgs.builder()\n            .webhostingId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by offer domain\n  byDomain:\n    fn::invoke:\n      function: scaleway:hosting:getHosting\n      arguments:\n        domain: foobar.com\n  # Get info by id\n  byId:\n    fn::invoke:\n      function: scaleway:hosting:getHosting\n      arguments:\n        webhostingId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getWebhosting.\n","properties":{"domain":{"type":"string","description":"The hosting domain name. Only one of \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`webhostingId`\" pulumi-lang-dotnet=\"`WebhostingId`\" pulumi-lang-go=\"`webhostingId`\" pulumi-lang-python=\"`webhosting_id`\" pulumi-lang-yaml=\"`webhostingId`\" pulumi-lang-java=\"`webhostingId`\"\u003e`webhosting_id`\u003c/span\u003e should be specified.\n"},"organizationId":{"type":"string","description":"The ID of the organization the hosting is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the hosting is associated with.\n"},"webhostingId":{"type":"string","description":"The hosting id. Only one of \u003cspan pulumi-lang-nodejs=\"`domain`\" pulumi-lang-dotnet=\"`Domain`\" pulumi-lang-go=\"`domain`\" pulumi-lang-python=\"`domain`\" pulumi-lang-yaml=\"`domain`\" pulumi-lang-java=\"`domain`\"\u003e`domain`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`webhostingId`\" pulumi-lang-dotnet=\"`WebhostingId`\" pulumi-lang-go=\"`webhostingId`\" pulumi-lang-python=\"`webhosting_id`\" pulumi-lang-yaml=\"`webhostingId`\" pulumi-lang-java=\"`webhostingId`\"\u003e`webhosting_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getWebhosting.\n","properties":{"cpanelUrls":{"items":{"$ref":"#/types/scaleway:index/getWebhostingCpanelUrl:getWebhostingCpanelUrl"},"type":"array"},"createdAt":{"type":"string"},"dnsStatus":{"type":"string"},"domain":{"type":"string"},"email":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"nameServers":{"items":{"$ref":"#/types/scaleway:index/getWebhostingNameServer:getWebhostingNameServer"},"type":"array"},"offerId":{"type":"string"},"offerName":{"type":"string"},"optionIds":{"items":{"type":"string"},"type":"array"},"options":{"items":{"$ref":"#/types/scaleway:index/getWebhostingOption:getWebhostingOption"},"type":"array"},"organizationId":{"type":"string"},"platformHostname":{"type":"string"},"platformNumber":{"type":"integer"},"projectId":{"type":"string"},"records":{"items":{"$ref":"#/types/scaleway:index/getWebhostingRecord:getWebhostingRecord"},"type":"array"},"region":{"type":"string"},"status":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"username":{"type":"string"},"webhostingId":{"type":"string"}},"required":["cpanelUrls","createdAt","dnsStatus","email","nameServers","offerId","offerName","optionIds","options","organizationId","platformHostname","platformNumber","records","region","status","tags","updatedAt","username","id"],"type":"object"}},"scaleway:inference/getModel:getModel":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.inference.Model`\" pulumi-lang-dotnet=\"`scaleway.inference.Model`\" pulumi-lang-go=\"`inference.Model`\" pulumi-lang-python=\"`inference.Model`\" pulumi-lang-yaml=\"`scaleway.inference.Model`\" pulumi-lang-java=\"`scaleway.inference.Model`\"\u003e`scaleway.inference.Model`\u003c/span\u003e data source allows you to retrieve information about an inference model available in the Scaleway Inference API, either by providing the model's \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or its \u003cspan pulumi-lang-nodejs=\"`modelId`\" pulumi-lang-dotnet=\"`ModelId`\" pulumi-lang-go=\"`modelId`\" pulumi-lang-python=\"`model_id`\" pulumi-lang-yaml=\"`modelId`\" pulumi-lang-java=\"`modelId`\"\u003e`model_id`\u003c/span\u003e.\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 myModel = scaleway.inference.getModel({\n    name: \"meta/llama-3.1-8b-instruct:fp8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nmy_model = scaleway.inference.get_model(name=\"meta/llama-3.1-8b-instruct:fp8\")\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 myModel = Scaleway.Inference.GetModel.Invoke(new()\n    {\n        Name = \"meta/llama-3.1-8b-instruct:fp8\",\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/inference\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := inference.LookupModel(ctx, \u0026inference.LookupModelArgs{\n\t\t\tName: pulumi.StringRef(\"meta/llama-3.1-8b-instruct:fp8\"),\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.inference.InferenceFunctions;\nimport com.pulumi.scaleway.inference.inputs.GetModelArgs;\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 myModel = InferenceFunctions.getModel(GetModelArgs.builder()\n            .name(\"meta/llama-3.1-8b-instruct:fp8\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  myModel:\n    fn::invoke:\n      function: scaleway:inference:getModel\n      arguments:\n        name: meta/llama-3.1-8b-instruct:fp8\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getModel.\n","properties":{"modelId":{"type":"string","description":"The ID of the model to retrieve. Must be a valid UUID with locality (i.e., Scaleway's zoned UUID format).\n"},"name":{"type":"string","description":"The fully qualified name of the model to look up (e.g., \"meta/llama-3.1-8b-instruct:fp8\"). The provider will search for a model with an exact name match in the selected region and project.\n"},"url":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getModel.\n","properties":{"createdAt":{"type":"string"},"description":{"description":"A textual description of the model (if available).\n","type":"string"},"hasEula":{"description":"Whether the model requires end-user license agreement acceptance before use.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"modelId":{"type":"string"},"name":{"type":"string"},"nodesSupports":{"description":"List of supported node types and their quantization options. Each entry contains:\n","items":{"$ref":"#/types/scaleway:inference/getModelNodesSupport:getModelNodesSupport"},"type":"array"},"parameterSizeBits":{"description":"Size, in bits, of the model parameters.\n","type":"integer"},"projectId":{"type":"string"},"region":{"type":"string"},"secret":{"type":"string"},"secretWo":{"type":"string"},"secretWoVersion":{"type":"integer"},"sizeBytes":{"description":"Total size, in bytes, of the model archive.\n","type":"integer"},"status":{"description":"The current status of the model (e.g., ready, error, etc.).\n","type":"string"},"tags":{"description":"Tags associated with the model.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"url":{"type":"string"}},"required":["createdAt","description","hasEula","nodesSupports","parameterSizeBits","projectId","region","secret","secretWo","secretWoVersion","sizeBytes","status","tags","updatedAt","id"],"type":"object"}},"scaleway:instance/getImage:getImage":{"description":"Gets information about an instance image.\n\n","inputs":{"description":"A collection of arguments for invoking getImage.\n","properties":{"architecture":{"type":"string","description":"The architecture the image is compatible with. Possible values are: \u003cspan pulumi-lang-nodejs=\"`x8664`\" pulumi-lang-dotnet=\"`X8664`\" pulumi-lang-go=\"`x8664`\" pulumi-lang-python=\"`x86_64`\" pulumi-lang-yaml=\"`x8664`\" pulumi-lang-java=\"`x8664`\"\u003e`x86_64`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`arm`\" pulumi-lang-dotnet=\"`Arm`\" pulumi-lang-go=\"`arm`\" pulumi-lang-python=\"`arm`\" pulumi-lang-yaml=\"`arm`\" pulumi-lang-java=\"`arm`\"\u003e`arm`\u003c/span\u003e.\n"},"imageId":{"type":"string","description":"The image id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e should be specified.\n"},"latest":{"type":"boolean","description":"Use the latest image ID.\n"},"name":{"type":"string","description":"The image name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the image is associated with.\n","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the image exists.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getImage.\n","properties":{"additionalVolumeIds":{"description":"IDs of the additional volumes in this image.\n","items":{"type":"string"},"type":"array"},"architecture":{"type":"string"},"creationDate":{"description":"Date of the image creation.\n","type":"string"},"defaultBootscriptId":{"description":"ID of the default bootscript for this image.\n","type":"string"},"fromServerId":{"description":"ID of the server the image if based from.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imageId":{"type":"string"},"latest":{"type":"boolean"},"modificationDate":{"description":"Date of image latest update.\n","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The ID of the organization the image is associated with.\n","type":"string"},"projectId":{"description":"The ID of the project the image is associated with.\n","type":"string"},"public":{"description":"Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e if the image is public.\n","type":"boolean"},"rootVolumeId":{"description":"ID of the root volume in this image.\n","type":"string"},"state":{"description":"State of the image. Possible values are: \u003cspan pulumi-lang-nodejs=\"`available`\" pulumi-lang-dotnet=\"`Available`\" pulumi-lang-go=\"`available`\" pulumi-lang-python=\"`available`\" pulumi-lang-yaml=\"`available`\" pulumi-lang-java=\"`available`\"\u003e`available`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`creating`\" pulumi-lang-dotnet=\"`Creating`\" pulumi-lang-go=\"`creating`\" pulumi-lang-python=\"`creating`\" pulumi-lang-yaml=\"`creating`\" pulumi-lang-java=\"`creating`\"\u003e`creating`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`error`\" pulumi-lang-dotnet=\"`Error`\" pulumi-lang-go=\"`error`\" pulumi-lang-python=\"`error`\" pulumi-lang-yaml=\"`error`\" pulumi-lang-java=\"`error`\"\u003e`error`\u003c/span\u003e.\n","type":"string"},"zone":{"type":"string"}},"required":["additionalVolumeIds","creationDate","defaultBootscriptId","fromServerId","modificationDate","organizationId","projectId","public","rootVolumeId","state","id"],"type":"object"}},"scaleway:instance/getIp:getIp":{"description":"Gets information about an instance IP.\n\n","inputs":{"description":"A collection of arguments for invoking getIp.\n","properties":{"address":{"type":"string","description":"The IPv4 address to retrieve\nOnly one of \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e should be specified.\n"},"id":{"type":"string","description":"The ID of the IP address to retrieve\nOnly one of \u003cspan pulumi-lang-nodejs=\"`address`\" pulumi-lang-dotnet=\"`Address`\" pulumi-lang-go=\"`address`\" pulumi-lang-python=\"`address`\" pulumi-lang-yaml=\"`address`\" pulumi-lang-java=\"`address`\"\u003e`address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the IP is associated with.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP should be reserved.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIp.\n","properties":{"address":{"description":"The IP address.\n","type":"string"},"id":{"description":"The ID of the IP.\n","type":"string"},"organizationId":{"description":"The organization ID the IP is associated with.\n","type":"string"},"prefix":{"description":"The IP Prefix.\n","type":"string"},"projectId":{"type":"string"},"reverse":{"description":"The reverse dns attached to this IP\n","type":"string"},"serverId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"description":"The type of the IP\n","type":"string"},"zone":{"type":"string"}},"required":["organizationId","prefix","reverse","serverId","tags","type"],"type":"object"}},"scaleway:instance/getPlacementGroup:getPlacementGroup":{"description":"Gets information about a Security Group.\n\n","inputs":{"description":"A collection of arguments for invoking getPlacementGroup.\n","properties":{"name":{"type":"string","description":"The placement group name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`placementGroupId`\" pulumi-lang-dotnet=\"`PlacementGroupId`\" pulumi-lang-go=\"`placementGroupId`\" pulumi-lang-python=\"`placement_group_id`\" pulumi-lang-yaml=\"`placementGroupId`\" pulumi-lang-java=\"`placementGroupId`\"\u003e`placement_group_id`\u003c/span\u003e should be specified.\n"},"placementGroupId":{"type":"string","description":"The placement group id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`placementGroupId`\" pulumi-lang-dotnet=\"`PlacementGroupId`\" pulumi-lang-go=\"`placementGroupId`\" pulumi-lang-python=\"`placement_group_id`\" pulumi-lang-yaml=\"`placementGroupId`\" pulumi-lang-java=\"`placementGroupId`\"\u003e`placement_group_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the placement group is associated with.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the placement group exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPlacementGroup.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The organization ID the placement group is associated with.\n","type":"string"},"placementGroupId":{"type":"string"},"policyMode":{"description":"The [policy mode](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) of the placement group.\n","type":"string"},"policyRespected":{"description":"Is true when the policy is respected.\n","type":"boolean"},"policyType":{"description":"The [policy type](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) of the placement group.\n","type":"string"},"projectId":{"type":"string"},"tags":{"description":"A list of tags to apply to the placement group.\n","items":{"type":"string"},"type":"array"},"zone":{"type":"string"}},"required":["organizationId","policyMode","policyRespected","policyType","projectId","tags","id"],"type":"object"}},"scaleway:instance/getPrivateNic:getPrivateNic":{"description":"Gets information about an instance private NIC.\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 byNicId = scaleway.instance.getPrivateNic({\n    serverId: \"11111111-1111-1111-1111-111111111111\",\n    privateNicId: \"11111111-1111-1111-1111-111111111111\",\n});\nconst byPnId = scaleway.instance.getPrivateNic({\n    serverId: \"11111111-1111-1111-1111-111111111111\",\n    privateNetworkId: \"11111111-1111-1111-1111-111111111111\",\n});\nconst byTags = scaleway.instance.getPrivateNic({\n    serverId: \"11111111-1111-1111-1111-111111111111\",\n    tags: [\"mytag\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nby_nic_id = scaleway.instance.get_private_nic(server_id=\"11111111-1111-1111-1111-111111111111\",\n    private_nic_id=\"11111111-1111-1111-1111-111111111111\")\nby_pn_id = scaleway.instance.get_private_nic(server_id=\"11111111-1111-1111-1111-111111111111\",\n    private_network_id=\"11111111-1111-1111-1111-111111111111\")\nby_tags = scaleway.instance.get_private_nic(server_id=\"11111111-1111-1111-1111-111111111111\",\n    tags=[\"mytag\"])\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 byNicId = Scaleway.Instance.GetPrivateNic.Invoke(new()\n    {\n        ServerId = \"11111111-1111-1111-1111-111111111111\",\n        PrivateNicId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    var byPnId = Scaleway.Instance.GetPrivateNic.Invoke(new()\n    {\n        ServerId = \"11111111-1111-1111-1111-111111111111\",\n        PrivateNetworkId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    var byTags = Scaleway.Instance.GetPrivateNic.Invoke(new()\n    {\n        ServerId = \"11111111-1111-1111-1111-111111111111\",\n        Tags = new[]\n        {\n            \"mytag\",\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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.LookupPrivateNic(ctx, \u0026instance.LookupPrivateNicArgs{\n\t\t\tServerId:     \"11111111-1111-1111-1111-111111111111\",\n\t\t\tPrivateNicId: 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\t_, err = instance.LookupPrivateNic(ctx, \u0026instance.LookupPrivateNicArgs{\n\t\t\tServerId:         \"11111111-1111-1111-1111-111111111111\",\n\t\t\tPrivateNetworkId: 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\t_, err = instance.LookupPrivateNic(ctx, \u0026instance.LookupPrivateNicArgs{\n\t\t\tServerId: \"11111111-1111-1111-1111-111111111111\",\n\t\t\tTags: []string{\n\t\t\t\t\"mytag\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.instance.InstanceFunctions;\nimport com.pulumi.scaleway.instance.inputs.GetPrivateNicArgs;\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 byNicId = InstanceFunctions.getPrivateNic(GetPrivateNicArgs.builder()\n            .serverId(\"11111111-1111-1111-1111-111111111111\")\n            .privateNicId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        final var byPnId = InstanceFunctions.getPrivateNic(GetPrivateNicArgs.builder()\n            .serverId(\"11111111-1111-1111-1111-111111111111\")\n            .privateNetworkId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        final var byTags = InstanceFunctions.getPrivateNic(GetPrivateNicArgs.builder()\n            .serverId(\"11111111-1111-1111-1111-111111111111\")\n            .tags(\"mytag\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  byNicId:\n    fn::invoke:\n      function: scaleway:instance:getPrivateNic\n      arguments:\n        serverId: 11111111-1111-1111-1111-111111111111\n        privateNicId: 11111111-1111-1111-1111-111111111111\n  byPnId:\n    fn::invoke:\n      function: scaleway:instance:getPrivateNic\n      arguments:\n        serverId: 11111111-1111-1111-1111-111111111111\n        privateNetworkId: 11111111-1111-1111-1111-111111111111\n  byTags:\n    fn::invoke:\n      function: scaleway:instance:getPrivateNic\n      arguments:\n        serverId: 11111111-1111-1111-1111-111111111111\n        tags:\n          - mytag\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivateNic.\n","properties":{"privateNetworkId":{"type":"string","description":"The ID of the private network\nOnly one of \u003cspan pulumi-lang-nodejs=\"`privateNicId`\" pulumi-lang-dotnet=\"`PrivateNicId`\" pulumi-lang-go=\"`privateNicId`\" pulumi-lang-python=\"`private_nic_id`\" pulumi-lang-yaml=\"`privateNicId`\" pulumi-lang-java=\"`privateNicId`\"\u003e`private_nic_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e should be specified.\n"},"privateNicId":{"type":"string","description":"The ID of the instance server private nic\nOnly one of \u003cspan pulumi-lang-nodejs=\"`privateNicId`\" pulumi-lang-dotnet=\"`PrivateNicId`\" pulumi-lang-go=\"`privateNicId`\" pulumi-lang-python=\"`private_nic_id`\" pulumi-lang-yaml=\"`privateNicId`\" pulumi-lang-java=\"`privateNicId`\"\u003e`private_nic_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e should be specified.\n"},"serverId":{"type":"string","description":"The server's id\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the private NIC.\nAs datasource only returns one private NIC, the search with given tags must return only one result\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the private nic exists.\n"}},"type":"object","required":["serverId"]},"outputs":{"description":"A collection of values returned by getPrivateNic.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipIds":{"items":{"type":"string"},"type":"array"},"ipamIpIds":{"items":{"type":"string"},"type":"array"},"macAddress":{"type":"string"},"privateIps":{"items":{"$ref":"#/types/scaleway:instance/getPrivateNicPrivateIp:getPrivateNicPrivateIp"},"type":"array"},"privateNetworkId":{"type":"string"},"privateNicId":{"type":"string"},"serverId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"zone":{"type":"string"}},"required":["ipIds","ipamIpIds","macAddress","privateIps","serverId","id"],"type":"object"}},"scaleway:instance/getSecurityGroup:getSecurityGroup":{"description":"Gets information about a Security Group.\n\n","inputs":{"description":"A collection of arguments for invoking getSecurityGroup.\n","properties":{"name":{"type":"string","description":"The security group name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the security group is associated with.\n"},"securityGroupId":{"type":"string","description":"The security group id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`securityGroupId`\" pulumi-lang-dotnet=\"`SecurityGroupId`\" pulumi-lang-go=\"`securityGroupId`\" pulumi-lang-python=\"`security_group_id`\" pulumi-lang-yaml=\"`securityGroupId`\" pulumi-lang-java=\"`securityGroupId`\"\u003e`security_group_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the security group exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSecurityGroup.\n","properties":{"description":{"type":"string"},"enableDefaultSecurity":{"type":"boolean"},"externalRules":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"inboundDefaultPolicy":{"description":"The default policy on incoming traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n","type":"string"},"inboundRules":{"description":"A list of inbound rule to add to the security group. (Structure is documented below.)\n","items":{"$ref":"#/types/scaleway:instance/getSecurityGroupInboundRule:getSecurityGroupInboundRule"},"type":"array"},"name":{"type":"string"},"organizationId":{"description":"The ID of the organization the security group is associated with.\n","type":"string"},"outboundDefaultPolicy":{"description":"The default policy on outgoing traffic. Possible values are: \u003cspan pulumi-lang-nodejs=\"`accept`\" pulumi-lang-dotnet=\"`Accept`\" pulumi-lang-go=\"`accept`\" pulumi-lang-python=\"`accept`\" pulumi-lang-yaml=\"`accept`\" pulumi-lang-java=\"`accept`\"\u003e`accept`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`drop`\" pulumi-lang-dotnet=\"`Drop`\" pulumi-lang-go=\"`drop`\" pulumi-lang-python=\"`drop`\" pulumi-lang-yaml=\"`drop`\" pulumi-lang-java=\"`drop`\"\u003e`drop`\u003c/span\u003e.\n","type":"string"},"outboundRules":{"description":"A list of outbound rule to add to the security group. (Structure is documented below.)\n","items":{"$ref":"#/types/scaleway:instance/getSecurityGroupOutboundRule:getSecurityGroupOutboundRule"},"type":"array"},"projectId":{"type":"string"},"securityGroupId":{"type":"string"},"stateful":{"type":"boolean"},"tags":{"items":{"type":"string"},"type":"array"},"zone":{"type":"string"}},"required":["description","enableDefaultSecurity","externalRules","inboundDefaultPolicy","inboundRules","organizationId","outboundDefaultPolicy","outboundRules","stateful","tags","id"],"type":"object"}},"scaleway:instance/getServer:getServer":{"description":"Gets information about an instance server.\n\n","inputs":{"description":"A collection of arguments for invoking getServer.\n","properties":{"name":{"type":"string","description":"The server name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`serverId`\" pulumi-lang-dotnet=\"`ServerId`\" pulumi-lang-go=\"`serverId`\" pulumi-lang-python=\"`server_id`\" pulumi-lang-yaml=\"`serverId`\" pulumi-lang-java=\"`serverId`\"\u003e`server_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the instance server is associated with.\n"},"serverId":{"type":"string","description":"The server id. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`serverId`\" pulumi-lang-dotnet=\"`ServerId`\" pulumi-lang-go=\"`serverId`\" pulumi-lang-python=\"`server_id`\" pulumi-lang-yaml=\"`serverId`\" pulumi-lang-java=\"`serverId`\"\u003e`server_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the server exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getServer.\n","properties":{"additionalVolumeIds":{"description":"The [additional volumes](https://developers.scaleway.com/en/products/instance/api/#volumes-7e8a39)\nattached to the server.\n","items":{"type":"string"},"type":"array"},"adminPasswordEncryptionSshKeyId":{"type":"string"},"bootType":{"type":"string"},"bootscriptId":{"type":"string"},"cloudInit":{"description":"The cloud init script associated with this server.\n","type":"string"},"enableDynamicIp":{"description":"True if dynamic IP in enable on the server.\n","type":"boolean"},"filesystems":{"items":{"$ref":"#/types/scaleway:instance/getServerFilesystem:getServerFilesystem"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"image":{"description":"The UUID and the label of the base image used by the server.\n","type":"string"},"ipId":{"type":"string"},"ipIds":{"items":{"type":"string"},"type":"array"},"name":{"type":"string"},"organizationId":{"description":"The ID of the organization the server is associated with.\n","type":"string"},"placementGroupId":{"description":"The [placement group](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) the server is attached to.\n","type":"string"},"placementGroupPolicyRespected":{"description":"True when the placement group policy is respected.\n","type":"boolean"},"privateIps":{"description":"The list of private IPs of the server.\n","items":{"$ref":"#/types/scaleway:instance/getServerPrivateIp:getServerPrivateIp"},"type":"array"},"privateNetworks":{"items":{"$ref":"#/types/scaleway:instance/getServerPrivateNetwork:getServerPrivateNetwork"},"type":"array"},"projectId":{"type":"string"},"protected":{"type":"boolean"},"publicIps":{"description":"The list of public IPs of the server\n","items":{"$ref":"#/types/scaleway:instance/getServerPublicIp:getServerPublicIp"},"type":"array"},"replaceOnTypeChange":{"type":"boolean"},"rootVolumes":{"items":{"$ref":"#/types/scaleway:instance/getServerRootVolume:getServerRootVolume"},"type":"array"},"securityGroupId":{"description":"The [security group](https://developers.scaleway.com/en/products/instance/api/#security-groups-8d7f89) the server is attached to.\n","type":"string"},"serverId":{"type":"string"},"state":{"description":"The state of the server. Possible values are: \u003cspan pulumi-lang-nodejs=\"`started`\" pulumi-lang-dotnet=\"`Started`\" pulumi-lang-go=\"`started`\" pulumi-lang-python=\"`started`\" pulumi-lang-yaml=\"`started`\" pulumi-lang-java=\"`started`\"\u003e`started`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`stopped`\" pulumi-lang-dotnet=\"`Stopped`\" pulumi-lang-go=\"`stopped`\" pulumi-lang-python=\"`stopped`\" pulumi-lang-yaml=\"`stopped`\" pulumi-lang-java=\"`stopped`\"\u003e`stopped`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`standby`\" pulumi-lang-dotnet=\"`Standby`\" pulumi-lang-go=\"`standby`\" pulumi-lang-python=\"`standby`\" pulumi-lang-yaml=\"`standby`\" pulumi-lang-java=\"`standby`\"\u003e`standby`\u003c/span\u003e.\n","type":"string"},"tags":{"description":"The tags associated with the server.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The commercial type of the server.\nYou find all the available types on the [pricing page](https://www.scaleway.com/en/pricing/).\n","type":"string"},"userData":{"additionalProperties":{"type":"string"},"description":"The user data associated with the server.\n","type":"object"},"zone":{"type":"string"}},"required":["additionalVolumeIds","adminPasswordEncryptionSshKeyId","bootType","bootscriptId","cloudInit","enableDynamicIp","filesystems","image","ipId","ipIds","organizationId","placementGroupId","placementGroupPolicyRespected","privateIps","privateNetworks","protected","publicIps","replaceOnTypeChange","rootVolumes","securityGroupId","state","tags","type","userData","id"],"type":"object"}},"scaleway:instance/getServerType:getServerType":{"description":"Gets information about a server type.\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 pro2_s = scaleway.instance.getServerType({\n    name: \"PRO2-S\",\n    zone: \"nl-ams-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\npro2_s = scaleway.instance.get_server_type(name=\"PRO2-S\",\n    zone=\"nl-ams-1\")\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 pro2_s = Scaleway.Instance.GetServerType.Invoke(new()\n    {\n        Name = \"PRO2-S\",\n        Zone = \"nl-ams-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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := instance.GetServerType(ctx, \u0026instance.GetServerTypeArgs{\n\t\t\tName: \"PRO2-S\",\n\t\t\tZone: pulumi.StringRef(\"nl-ams-1\"),\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.instance.InstanceFunctions;\nimport com.pulumi.scaleway.instance.inputs.GetServerTypeArgs;\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 pro2-s = InstanceFunctions.getServerType(GetServerTypeArgs.builder()\n            .name(\"PRO2-S\")\n            .zone(\"nl-ams-1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  pro2-s:\n    fn::invoke:\n      function: scaleway:instance:getServerType\n      arguments:\n        name: PRO2-S\n        zone: nl-ams-1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerType.\n","properties":{"name":{"type":"string","description":"The name of the server type.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone of the server type (to check the availability of the server type for example).\n","willReplaceOnChanges":true}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getServerType.\n","properties":{"arch":{"description":"The architecture of the server type.\n","type":"string"},"availability":{"description":"Whether the server type is available in the zone.\n","type":"string"},"capabilities":{"description":"The specific capabilities of the server type.\n","items":{"$ref":"#/types/scaleway:instance/getServerTypeCapability:getServerTypeCapability"},"type":"array"},"cpu":{"description":"The number of CPU cores of the server type.\n","type":"integer"},"endOfService":{"description":"Whether the server type will soon reach End Of Service.\n","type":"boolean"},"gpu":{"description":"The number of GPUs of the server type.\n","type":"integer"},"hourlyPrice":{"description":"The hourly price of the server type (in euros).\n","type":"number"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"networks":{"description":"The network specifications of the server type.\n","items":{"$ref":"#/types/scaleway:instance/getServerTypeNetwork:getServerTypeNetwork"},"type":"array"},"ram":{"description":"The amount of RAM of the server type (in bytes).\n","type":"integer"},"volumes":{"description":"The specifications of volumes allowed for the server type.\n","items":{"$ref":"#/types/scaleway:instance/getServerTypeVolume:getServerTypeVolume"},"type":"array"},"zone":{"type":"string"}},"required":["arch","availability","capabilities","cpu","endOfService","gpu","hourlyPrice","name","networks","ram","volumes","id"],"type":"object"}},"scaleway:instance/getServers:getServers":{"description":"Gets information about multiple instance servers.\n\n## Examples\n\n","inputs":{"description":"A collection of arguments for invoking getServers.\n","properties":{"name":{"type":"string","description":"The server name used as filter. Servers with a name like it are listed.\n"},"projectId":{"type":"string","description":"The ID of the project the server is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. Servers with these exact tags are listed.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which servers exist.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getServers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the server.\n","type":"string"},"organizationId":{"description":"The organization ID the server is associated with.\n","type":"string"},"projectId":{"description":"The ID of the project the server is associated with.\n","type":"string"},"servers":{"description":"List of found servers\n","items":{"$ref":"#/types/scaleway:instance/getServersServer:getServersServer"},"type":"array"},"tags":{"description":"The tags associated with the server.\n","items":{"type":"string"},"type":"array"},"zone":{"description":"The zone in which the server is.\n","type":"string"}},"required":["organizationId","projectId","servers","id"],"type":"object"}},"scaleway:instance/getSnapshot:getSnapshot":{"description":"Gets information about an instance snapshot.\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\n// Get info by snapshot name\nconst byName = scaleway.instance.getSnapshot({\n    name: \"my-snapshot-name\",\n});\n// Get info by snapshot ID\nconst byId = scaleway.instance.getSnapshot({\n    snapshotId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by snapshot name\nby_name = scaleway.instance.get_snapshot(name=\"my-snapshot-name\")\n# Get info by snapshot ID\nby_id = scaleway.instance.get_snapshot(snapshot_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    // Get info by snapshot name\n    var byName = Scaleway.Instance.GetSnapshot.Invoke(new()\n    {\n        Name = \"my-snapshot-name\",\n    });\n\n    // Get info by snapshot ID\n    var byId = Scaleway.Instance.GetSnapshot.Invoke(new()\n    {\n        SnapshotId = \"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/instance\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by snapshot name\n\t\t_, err := instance.LookupSnapshot(ctx, \u0026instance.LookupSnapshotArgs{\n\t\t\tName: pulumi.StringRef(\"my-snapshot-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by snapshot ID\n\t\t_, err = instance.LookupSnapshot(ctx, \u0026instance.LookupSnapshotArgs{\n\t\t\tSnapshotId: 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.instance.InstanceFunctions;\nimport com.pulumi.scaleway.instance.inputs.GetSnapshotArgs;\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        // Get info by snapshot name\n        final var byName = InstanceFunctions.getSnapshot(GetSnapshotArgs.builder()\n            .name(\"my-snapshot-name\")\n            .build());\n\n        // Get info by snapshot ID\n        final var byId = InstanceFunctions.getSnapshot(GetSnapshotArgs.builder()\n            .snapshotId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by snapshot name\n  byName:\n    fn::invoke:\n      function: scaleway:instance:getSnapshot\n      arguments:\n        name: my-snapshot-name\n  # Get info by snapshot ID\n  byId:\n    fn::invoke:\n      function: scaleway:instance:getSnapshot\n      arguments:\n        snapshotId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSnapshot.\n","properties":{"name":{"type":"string","description":"The snapshot name.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the snapshot is associated with.\n"},"snapshotId":{"type":"string","description":"The snapshot id.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`snapshotId`\" pulumi-lang-dotnet=\"`SnapshotId`\" pulumi-lang-go=\"`snapshotId`\" pulumi-lang-python=\"`snapshot_id`\" pulumi-lang-yaml=\"`snapshotId`\" pulumi-lang-java=\"`snapshotId`\"\u003e`snapshot_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the snapshot exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSnapshot.\n","properties":{"createdAt":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imports":{"items":{"$ref":"#/types/scaleway:instance/getSnapshotImport:getSnapshotImport"},"type":"array"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"sizeInGb":{"type":"integer"},"snapshotId":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"},"volumeId":{"type":"string"},"zone":{"type":"string"}},"required":["createdAt","imports","organizationId","sizeInGb","tags","type","volumeId","id"],"type":"object"}},"scaleway:instance/getVolume:getVolume":{"description":"Gets information about an instance volume.\n\n","inputs":{"description":"A collection of arguments for invoking getVolume.\n","properties":{"name":{"type":"string","description":"The volume name.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`volumeId`\" pulumi-lang-dotnet=\"`VolumeId`\" pulumi-lang-go=\"`volumeId`\" pulumi-lang-python=\"`volume_id`\" pulumi-lang-yaml=\"`volumeId`\" pulumi-lang-java=\"`volumeId`\"\u003e`volume_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the volume is associated with.\n"},"volumeId":{"type":"string","description":"The volume id.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`volumeId`\" pulumi-lang-dotnet=\"`VolumeId`\" pulumi-lang-go=\"`volumeId`\" pulumi-lang-python=\"`volume_id`\" pulumi-lang-yaml=\"`volumeId`\" pulumi-lang-java=\"`volumeId`\"\u003e`volume_id`\u003c/span\u003e should be specified.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the volume exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVolume.\n","properties":{"fromSnapshotId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"migrateToSbs":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"description":"The ID of the organization the volume is associated with.\n","type":"string"},"projectId":{"type":"string"},"serverId":{"type":"string"},"sizeInGb":{"type":"integer"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"},"volumeId":{"type":"string"},"zone":{"type":"string"}},"required":["fromSnapshotId","migrateToSbs","organizationId","serverId","sizeInGb","tags","type","id"],"type":"object"}},"scaleway:iot/getDevice:getDevice":{"description":"Gets information about an IOT Device.\n\n","inputs":{"description":"A collection of arguments for invoking getDevice.\n","properties":{"deviceId":{"type":"string","description":"The device ID.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`deviceId`\" pulumi-lang-dotnet=\"`DeviceId`\" pulumi-lang-go=\"`deviceId`\" pulumi-lang-python=\"`device_id`\" pulumi-lang-yaml=\"`deviceId`\" pulumi-lang-java=\"`deviceId`\"\u003e`device_id`\u003c/span\u003e should be specified.\n"},"hubId":{"type":"string","description":"The hub ID.\n"},"name":{"type":"string","description":"The name of the Hub.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`deviceId`\" pulumi-lang-dotnet=\"`DeviceId`\" pulumi-lang-go=\"`deviceId`\" pulumi-lang-python=\"`device_id`\" pulumi-lang-yaml=\"`deviceId`\" pulumi-lang-java=\"`deviceId`\"\u003e`device_id`\u003c/span\u003e should be specified.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the hub exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDevice.\n","properties":{"allowInsecure":{"type":"boolean"},"allowMultipleConnections":{"type":"boolean"},"certificates":{"items":{"$ref":"#/types/scaleway:iot/getDeviceCertificate:getDeviceCertificate"},"type":"array"},"createdAt":{"type":"string"},"description":{"type":"string"},"deviceId":{"type":"string"},"hubId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isConnected":{"type":"boolean"},"lastActivityAt":{"type":"string"},"messageFilters":{"items":{"$ref":"#/types/scaleway:iot/getDeviceMessageFilter:getDeviceMessageFilter"},"type":"array"},"name":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"}},"required":["allowInsecure","allowMultipleConnections","certificates","createdAt","description","hubId","isConnected","lastActivityAt","messageFilters","status","updatedAt","id"],"type":"object"}},"scaleway:iot/getHub:getHub":{"description":"Gets information about an IOT Hub.\n\n","inputs":{"description":"A collection of arguments for invoking getHub.\n","properties":{"hubId":{"type":"string","description":"The Hub ID.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`hubId`\" pulumi-lang-dotnet=\"`HubId`\" pulumi-lang-go=\"`hubId`\" pulumi-lang-python=\"`hub_id`\" pulumi-lang-yaml=\"`hubId`\" pulumi-lang-java=\"`hubId`\"\u003e`hub_id`\u003c/span\u003e should be specified.\n"},"name":{"type":"string","description":"The name of the Hub.\nOnly one of the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`hubId`\" pulumi-lang-dotnet=\"`HubId`\" pulumi-lang-go=\"`hubId`\" pulumi-lang-python=\"`hub_id`\" pulumi-lang-yaml=\"`hubId`\" pulumi-lang-java=\"`hubId`\"\u003e`hub_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the hub is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the hub exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getHub.\n","properties":{"connectedDeviceCount":{"type":"integer"},"createdAt":{"type":"string"},"deviceAutoProvisioning":{"type":"boolean"},"deviceCount":{"type":"integer"},"disableEvents":{"type":"boolean"},"enabled":{"type":"boolean"},"endpoint":{"type":"string"},"eventsTopicPrefix":{"type":"string"},"hubCa":{"type":"string"},"hubCaChallenge":{"type":"string"},"hubId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"mqttCa":{"type":"string"},"mqttCaUrl":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"productPlan":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"}},"required":["connectedDeviceCount","createdAt","deviceAutoProvisioning","deviceCount","disableEvents","enabled","endpoint","eventsTopicPrefix","hubCa","hubCaChallenge","mqttCa","mqttCaUrl","organizationId","productPlan","status","updatedAt","id"],"type":"object"}},"scaleway:ipam/getIp:getIp":{"description":"Gets information about IP addresses managed by Scaleway's IP Address Management (IPAM) service. IPAM is used for the DHCP bundled with VPC Private Networks.\n\nFor more information about IPAM, see the main [documentation](https://www.scaleway.com/en/docs/vpc/concepts/#ipam).\n\n## Examples\n\n### IPAM IP ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by ipam ip id\nconst byId = scaleway.ipam.getIp({\n    ipamIpId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by ipam ip id\nby_id = scaleway.ipam.get_ip(ipam_ip_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    // Get info by ipam ip id\n    var byId = Scaleway.Ipam.GetIp.Invoke(new()\n    {\n        IpamIpId = \"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/ipam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by ipam ip id\n\t\t_, err := ipam.LookupIp(ctx, \u0026ipam.LookupIpArgs{\n\t\t\tIpamIpId: 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.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpArgs;\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        // Get info by ipam ip id\n        final var byId = IpamFunctions.getIp(GetIpArgs.builder()\n            .ipamIpId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by ipam ip id\n  byId:\n    fn::invoke:\n      function: scaleway:ipam:getIp\n      arguments:\n        ipamIpId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Instance Private Network IP\n\nGet an Instance's IP on a Private Network.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Connect your instance to a private network using a private nic.\nconst nic = new scaleway.instance.PrivateNic(\"nic\", {\n    serverId: server.id,\n    privateNetworkId: pn.id,\n});\n// Find server private IPv4 using private-nic mac address\nconst byMac = scaleway.ipam.getIpOutput({\n    macAddress: nic.macAddress,\n    type: \"ipv4\",\n});\n// Find server private IPv4 using private-nic id\nconst byId = scaleway.ipam.getIpOutput({\n    resource: {\n        id: nic.id,\n        type: \"instance_private_nic\",\n    },\n    type: \"ipv4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Connect your instance to a private network using a private nic.\nnic = scaleway.instance.PrivateNic(\"nic\",\n    server_id=server[\"id\"],\n    private_network_id=pn[\"id\"])\n# Find server private IPv4 using private-nic mac address\nby_mac = scaleway.ipam.get_ip_output(mac_address=nic.mac_address,\n    type=\"ipv4\")\n# Find server private IPv4 using private-nic id\nby_id = scaleway.ipam.get_ip_output(resource={\n        \"id\": nic.id,\n        \"type\": \"instance_private_nic\",\n    },\n    type=\"ipv4\")\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    // Connect your instance to a private network using a private nic.\n    var nic = new Scaleway.Instance.PrivateNic(\"nic\", new()\n    {\n        ServerId = server.Id,\n        PrivateNetworkId = pn.Id,\n    });\n\n    // Find server private IPv4 using private-nic mac address\n    var byMac = Scaleway.Ipam.GetIp.Invoke(new()\n    {\n        MacAddress = nic.MacAddress,\n        Type = \"ipv4\",\n    });\n\n    // Find server private IPv4 using private-nic id\n    var byId = Scaleway.Ipam.GetIp.Invoke(new()\n    {\n        Resource = new Scaleway.Ipam.Inputs.GetIpResourceInputArgs\n        {\n            Id = nic.Id,\n            Type = \"instance_private_nic\",\n        },\n        Type = \"ipv4\",\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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/ipam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Connect your instance to a private network using a private nic.\n\t\tnic, err := instance.NewPrivateNic(ctx, \"nic\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         pulumi.Any(server.Id),\n\t\t\tPrivateNetworkId: pulumi.Any(pn.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find server private IPv4 using private-nic mac address\n\t\t_ = ipam.LookupIpOutput(ctx, ipam.GetIpOutputArgs{\n\t\t\tMacAddress: nic.MacAddress,\n\t\t\tType:       pulumi.String(\"ipv4\"),\n\t\t}, nil)\n\t\t// Find server private IPv4 using private-nic id\n\t\t_ = ipam.LookupIpOutput(ctx, ipam.GetIpOutputArgs{\n\t\t\tResource: \u0026ipam.GetIpResourceArgs{\n\t\t\t\tId:   nic.ID(),\n\t\t\t\tType: pulumi.String(\"instance_private_nic\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"ipv4\"),\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.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpArgs;\nimport com.pulumi.scaleway.ipam.inputs.GetIpResourceArgs;\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        // Connect your instance to a private network using a private nic.\n        var nic = new PrivateNic(\"nic\", PrivateNicArgs.builder()\n            .serverId(server.id())\n            .privateNetworkId(pn.id())\n            .build());\n\n        // Find server private IPv4 using private-nic mac address\n        final var byMac = IpamFunctions.getIp(GetIpArgs.builder()\n            .macAddress(nic.macAddress())\n            .type(\"ipv4\")\n            .build());\n\n        // Find server private IPv4 using private-nic id\n        final var byId = IpamFunctions.getIp(GetIpArgs.builder()\n            .resource(GetIpResourceArgs.builder()\n                .id(nic.id())\n                .type(\"instance_private_nic\")\n                .build())\n            .type(\"ipv4\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Connect your instance to a private network using a private nic.\n  nic:\n    type: scaleway:instance:PrivateNic\n    properties:\n      serverId: ${server.id}\n      privateNetworkId: ${pn.id}\nvariables:\n  # Find server private IPv4 using private-nic mac address\n  byMac:\n    fn::invoke:\n      function: scaleway:ipam:getIp\n      arguments:\n        macAddress: ${nic.macAddress}\n        type: ipv4\n  # Find server private IPv4 using private-nic id\n  byId:\n    fn::invoke:\n      function: scaleway:ipam:getIp\n      arguments:\n        resource:\n          id: ${nic.id}\n          type: instance_private_nic\n        type: ipv4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### RDB instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Find the private IPv4 using resource name\nconst pn = new scaleway.network.PrivateNetwork(\"pn\", {});\nconst main = new scaleway.databases.Instance(\"main\", {\n    name: \"test-rdb\",\n    nodeType: \"DB-DEV-S\",\n    engine: \"PostgreSQL-15\",\n    isHaCluster: true,\n    disableBackup: true,\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    privateNetwork: {\n        pnId: pn.id,\n    },\n});\nconst byName = scaleway.ipam.getIpOutput({\n    resource: {\n        name: main.name,\n        type: \"rdb_instance\",\n    },\n    type: \"ipv4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Find the private IPv4 using resource name\npn = scaleway.network.PrivateNetwork(\"pn\")\nmain = scaleway.databases.Instance(\"main\",\n    name=\"test-rdb\",\n    node_type=\"DB-DEV-S\",\n    engine=\"PostgreSQL-15\",\n    is_ha_cluster=True,\n    disable_backup=True,\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    private_network={\n        \"pn_id\": pn.id,\n    })\nby_name = scaleway.ipam.get_ip_output(resource={\n        \"name\": main.name,\n        \"type\": \"rdb_instance\",\n    },\n    type=\"ipv4\")\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    // Find the private IPv4 using resource name\n    var pn = new Scaleway.Network.PrivateNetwork(\"pn\");\n\n    var main = new Scaleway.Databases.Instance(\"main\", new()\n    {\n        Name = \"test-rdb\",\n        NodeType = \"DB-DEV-S\",\n        Engine = \"PostgreSQL-15\",\n        IsHaCluster = true,\n        DisableBackup = true,\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        PrivateNetwork = new Scaleway.Databases.Inputs.InstancePrivateNetworkArgs\n        {\n            PnId = pn.Id,\n        },\n    });\n\n    var byName = Scaleway.Ipam.GetIp.Invoke(new()\n    {\n        Resource = new Scaleway.Ipam.Inputs.GetIpResourceInputArgs\n        {\n            Name = main.Name,\n            Type = \"rdb_instance\",\n        },\n        Type = \"ipv4\",\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/databases\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find the private IPv4 using resource name\n\t\tpn, err := network.NewPrivateNetwork(ctx, \"pn\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmain, err := databases.NewInstance(ctx, \"main\", \u0026databases.InstanceArgs{\n\t\t\tName:          pulumi.String(\"test-rdb\"),\n\t\t\tNodeType:      pulumi.String(\"DB-DEV-S\"),\n\t\t\tEngine:        pulumi.String(\"PostgreSQL-15\"),\n\t\t\tIsHaCluster:   pulumi.Bool(true),\n\t\t\tDisableBackup: pulumi.Bool(true),\n\t\t\tUserName:      pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:      pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tPrivateNetwork: \u0026databases.InstancePrivateNetworkArgs{\n\t\t\t\tPnId: pn.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = ipam.LookupIpOutput(ctx, ipam.GetIpOutputArgs{\n\t\t\tResource: \u0026ipam.GetIpResourceArgs{\n\t\t\t\tName: main.Name,\n\t\t\t\tType: pulumi.String(\"rdb_instance\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"ipv4\"),\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.network.PrivateNetwork;\nimport com.pulumi.scaleway.databases.Instance;\nimport com.pulumi.scaleway.databases.InstanceArgs;\nimport com.pulumi.scaleway.databases.inputs.InstancePrivateNetworkArgs;\nimport com.pulumi.scaleway.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpArgs;\nimport com.pulumi.scaleway.ipam.inputs.GetIpResourceArgs;\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        // Find the private IPv4 using resource name\n        var pn = new PrivateNetwork(\"pn\");\n\n        var main = new Instance(\"main\", InstanceArgs.builder()\n            .name(\"test-rdb\")\n            .nodeType(\"DB-DEV-S\")\n            .engine(\"PostgreSQL-15\")\n            .isHaCluster(true)\n            .disableBackup(true)\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .privateNetwork(InstancePrivateNetworkArgs.builder()\n                .pnId(pn.id())\n                .build())\n            .build());\n\n        final var byName = IpamFunctions.getIp(GetIpArgs.builder()\n            .resource(GetIpResourceArgs.builder()\n                .name(main.name())\n                .type(\"rdb_instance\")\n                .build())\n            .type(\"ipv4\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Find the private IPv4 using resource name\n  pn:\n    type: scaleway:network:PrivateNetwork\n  main:\n    type: scaleway:databases:Instance\n    properties:\n      name: test-rdb\n      nodeType: DB-DEV-S\n      engine: PostgreSQL-15\n      isHaCluster: true\n      disableBackup: true\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      privateNetwork:\n        pnId: ${pn.id}\nvariables:\n  byName:\n    fn::invoke:\n      function: scaleway:ipam:getIp\n      arguments:\n        resource:\n          name: ${main.name}\n          type: rdb_instance\n        type: ipv4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIp.\n","properties":{"attached":{"type":"boolean","description":"Defines whether to filter only for IPs which are attached to a resource. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\n"},"ipamIpId":{"type":"string","description":"The IPAM IP ID. Cannot be used with any other arguments.\n"},"macAddress":{"type":"string","description":"The MAC address linked to the IP. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network the IP belongs to. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the IP is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the IP exists.\n","willReplaceOnChanges":true},"resource":{"$ref":"#/types/scaleway:ipam/getIpResource:getIpResource","description":"Filter by resource ID, type or name. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\nIf specified, \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is required, and at least one of \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e must be set.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the IP. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\nAs datasource only returns one IP, the search with given tags must return only one result.\n"},"type":{"type":"string","description":"The type of IP to search for (\u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e). Cannot be used with \u003cspan pulumi-lang-nodejs=\"`ipamIpId`\" pulumi-lang-dotnet=\"`IpamIpId`\" pulumi-lang-go=\"`ipamIpId`\" pulumi-lang-python=\"`ipam_ip_id`\" pulumi-lang-yaml=\"`ipamIpId`\" pulumi-lang-java=\"`ipamIpId`\"\u003e`ipam_ip_id`\u003c/span\u003e.\n"},"zonal":{"type":"string","description":"Only IPs that are zonal, and in this zone, will be returned.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getIp.\n","properties":{"address":{"description":"The IP address.\n","type":"string"},"addressCidr":{"description":"the IP address in CIDR notation.\n","type":"string"},"attached":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipamIpId":{"type":"string"},"macAddress":{"type":"string"},"organizationId":{"type":"string"},"privateNetworkId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"resource":{"$ref":"#/types/scaleway:ipam/getIpResource:getIpResource"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"},"zonal":{"type":"string"}},"required":["address","addressCidr","organizationId","projectId","id"],"type":"object"}},"scaleway:ipam/getIps:getIps":{"description":"Gets information about multiple IP addresses managed by Scaleway's IP Address Management (IPAM) service.\n\nFor more information about IPAM, see the main [documentation](https://www.scaleway.com/en/docs/vpc/concepts/#ipam).\n\n## Examples\n\n### By tag\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst byTag = scaleway.ipam.getIps({\n    tags: [\"tag\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nby_tag = scaleway.ipam.get_ips(tags=[\"tag\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var byTag = Scaleway.Ipam.GetIps.Invoke(new()\n    {\n        Tags = new[]\n        {\n            \"tag\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/ipam\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ipam.GetIps(ctx, \u0026ipam.GetIpsArgs{\n\t\t\tTags: []string{\n\t\t\t\t\"tag\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpsArgs;\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 byTag = IpamFunctions.getIps(GetIpsArgs.builder()\n            .tags(\"tag\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  byTag:\n    fn::invoke:\n      function: scaleway:ipam:getIps\n      arguments:\n        tags:\n          - tag\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### By type and 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.network.Vpc(\"vpc01\", {name: \"my vpc\"});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {\n    vpcId: vpc01.id,\n    ipv4Subnet: {\n        subnet: \"172.16.32.0/22\",\n    },\n});\nconst redis01 = new scaleway.redis.Cluster(\"redis01\", {\n    name: \"my_redis_cluster\",\n    version: \"7.0.5\",\n    nodeType: \"RED1-XS\",\n    userName: \"my_initial_user\",\n    password: \"thiZ_is_v\u0026ry_s3cret\",\n    clusterSize: 3,\n    privateNetworks: [{\n        id: pn01.id,\n    }],\n});\nconst byTypeAndResource = scaleway.ipam.getIpsOutput({\n    type: \"ipv4\",\n    resource: {\n        id: redis01.id,\n        type: \"redis_cluster\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nvpc01 = scaleway.network.Vpc(\"vpc01\", name=\"my vpc\")\npn01 = scaleway.network.PrivateNetwork(\"pn01\",\n    vpc_id=vpc01.id,\n    ipv4_subnet={\n        \"subnet\": \"172.16.32.0/22\",\n    })\nredis01 = scaleway.redis.Cluster(\"redis01\",\n    name=\"my_redis_cluster\",\n    version=\"7.0.5\",\n    node_type=\"RED1-XS\",\n    user_name=\"my_initial_user\",\n    password=\"thiZ_is_v\u0026ry_s3cret\",\n    cluster_size=3,\n    private_networks=[{\n        \"id\": pn01.id,\n    }])\nby_type_and_resource = scaleway.ipam.get_ips_output(type=\"ipv4\",\n    resource={\n        \"id\": redis01.id,\n        \"type\": \"redis_cluster\",\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.Network.Vpc(\"vpc01\", new()\n    {\n        Name = \"my vpc\",\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        VpcId = vpc01.Id,\n        Ipv4Subnet = new Scaleway.Network.Inputs.PrivateNetworkIpv4SubnetArgs\n        {\n            Subnet = \"172.16.32.0/22\",\n        },\n    });\n\n    var redis01 = new Scaleway.Redis.Cluster(\"redis01\", new()\n    {\n        Name = \"my_redis_cluster\",\n        Version = \"7.0.5\",\n        NodeType = \"RED1-XS\",\n        UserName = \"my_initial_user\",\n        Password = \"thiZ_is_v\u0026ry_s3cret\",\n        ClusterSize = 3,\n        PrivateNetworks = new[]\n        {\n            new Scaleway.Redis.Inputs.ClusterPrivateNetworkArgs\n            {\n                Id = pn01.Id,\n            },\n        },\n    });\n\n    var byTypeAndResource = Scaleway.Ipam.GetIps.Invoke(new()\n    {\n        Type = \"ipv4\",\n        Resource = new Scaleway.Ipam.Inputs.GetIpsResourceInputArgs\n        {\n            Id = redis01.Id,\n            Type = \"redis_cluster\",\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/ipam\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/redis\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvpc01, err := network.NewVpc(ctx, \"vpc01\", \u0026network.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 := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tVpcId: vpc01.ID(),\n\t\t\tIpv4Subnet: \u0026network.PrivateNetworkIpv4SubnetArgs{\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\tredis01, err := redis.NewCluster(ctx, \"redis01\", \u0026redis.ClusterArgs{\n\t\t\tName:        pulumi.String(\"my_redis_cluster\"),\n\t\t\tVersion:     pulumi.String(\"7.0.5\"),\n\t\t\tNodeType:    pulumi.String(\"RED1-XS\"),\n\t\t\tUserName:    pulumi.String(\"my_initial_user\"),\n\t\t\tPassword:    pulumi.String(\"thiZ_is_v\u0026ry_s3cret\"),\n\t\t\tClusterSize: pulumi.Int(3),\n\t\t\tPrivateNetworks: redis.ClusterPrivateNetworkArray{\n\t\t\t\t\u0026redis.ClusterPrivateNetworkArgs{\n\t\t\t\t\tId: 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_ = ipam.GetIpsOutput(ctx, ipam.GetIpsOutputArgs{\n\t\t\tType: pulumi.String(\"ipv4\"),\n\t\t\tResource: \u0026ipam.GetIpsResourceArgs{\n\t\t\t\tId:   redis01.ID(),\n\t\t\t\tType: pulumi.String(\"redis_cluster\"),\n\t\t\t},\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.network.Vpc;\nimport com.pulumi.scaleway.network.VpcArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.network.inputs.PrivateNetworkIpv4SubnetArgs;\nimport com.pulumi.scaleway.redis.Cluster;\nimport com.pulumi.scaleway.redis.ClusterArgs;\nimport com.pulumi.scaleway.redis.inputs.ClusterPrivateNetworkArgs;\nimport com.pulumi.scaleway.ipam.IpamFunctions;\nimport com.pulumi.scaleway.ipam.inputs.GetIpsArgs;\nimport com.pulumi.scaleway.ipam.inputs.GetIpsResourceArgs;\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 PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .vpcId(vpc01.id())\n            .ipv4Subnet(PrivateNetworkIpv4SubnetArgs.builder()\n                .subnet(\"172.16.32.0/22\")\n                .build())\n            .build());\n\n        var redis01 = new Cluster(\"redis01\", ClusterArgs.builder()\n            .name(\"my_redis_cluster\")\n            .version(\"7.0.5\")\n            .nodeType(\"RED1-XS\")\n            .userName(\"my_initial_user\")\n            .password(\"thiZ_is_v\u0026ry_s3cret\")\n            .clusterSize(3)\n            .privateNetworks(ClusterPrivateNetworkArgs.builder()\n                .id(pn01.id())\n                .build())\n            .build());\n\n        final var byTypeAndResource = IpamFunctions.getIps(GetIpsArgs.builder()\n            .type(\"ipv4\")\n            .resource(GetIpsResourceArgs.builder()\n                .id(redis01.id())\n                .type(\"redis_cluster\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  vpc01:\n    type: scaleway:network:Vpc\n    properties:\n      name: my vpc\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      vpcId: ${vpc01.id}\n      ipv4Subnet:\n        subnet: 172.16.32.0/22\n  redis01:\n    type: scaleway:redis:Cluster\n    properties:\n      name: my_redis_cluster\n      version: 7.0.5\n      nodeType: RED1-XS\n      userName: my_initial_user\n      password: thiZ_is_v\u0026ry_s3cret\n      clusterSize: 3\n      privateNetworks:\n        - id: ${pn01.id}\nvariables:\n  byTypeAndResource:\n    fn::invoke:\n      function: scaleway:ipam:getIps\n      arguments:\n        type: ipv4\n        resource:\n          id: ${redis01.id}\n          type: redis_cluster\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getIps.\n","properties":{"attached":{"type":"boolean","description":"Defines whether to filter only for IPs which are attached to a resource.\n"},"macAddress":{"type":"string","description":"The linked MAC address to filter for.\n"},"privateNetworkId":{"type":"string","description":"The ID of the Private Network to filter for.\n"},"projectId":{"type":"string","description":"The ID of the Project to filter for.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region to filter for.\n","willReplaceOnChanges":true},"resource":{"$ref":"#/types/scaleway:ipam/getIpsResource:getIpsResource","description":"Filter for a resource attached to the IP, using resource ID, type or name.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"The IP tags to filter for.\n"},"type":{"type":"string","description":"The type of IP to filter for (\u003cspan pulumi-lang-nodejs=\"`ipv4`\" pulumi-lang-dotnet=\"`Ipv4`\" pulumi-lang-go=\"`ipv4`\" pulumi-lang-python=\"`ipv4`\" pulumi-lang-yaml=\"`ipv4`\" pulumi-lang-java=\"`ipv4`\"\u003e`ipv4`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipv6`\" pulumi-lang-dotnet=\"`Ipv6`\" pulumi-lang-go=\"`ipv6`\" pulumi-lang-python=\"`ipv6`\" pulumi-lang-yaml=\"`ipv6`\" pulumi-lang-java=\"`ipv6`\"\u003e`ipv6`\u003c/span\u003e).\n"},"zonal":{"type":"string","description":"Only IPs that are zonal, and in this zone, will be returned.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIps.\n","properties":{"attached":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ips":{"description":"List of found IPs.\n","items":{"$ref":"#/types/scaleway:ipam/getIpsIp:getIpsIp"},"type":"array"},"macAddress":{"description":"The associated MAC address.\n","type":"string"},"organizationId":{"type":"string"},"privateNetworkId":{"type":"string"},"projectId":{"description":"The ID of the Project the resource is associated with.\n","type":"string"},"region":{"description":"The region of the IP.\n","type":"string"},"resource":{"$ref":"#/types/scaleway:ipam/getIpsResource:getIpsResource","description":"The list of public IPs attached to the resource.\n"},"tags":{"description":"The tags associated with the IP.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The type of resource.\n","type":"string"},"zonal":{"type":"string"}},"required":["ips","organizationId","projectId","id"],"type":"object"}},"scaleway:kafka/getCluster:getCluster":{"inputs":{"description":"A collection of arguments for invoking getCluster.\n","properties":{"clusterId":{"type":"string","description":"The ID of the Kafka cluster\n"},"name":{"type":"string","description":"Name of the Kafka cluster\n"},"projectId":{"type":"string","description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to\n"},"region":{"type":"string","description":"The region you want to attach the resource to\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCluster.\n","properties":{"clusterId":{"description":"The ID of the Kafka cluster\n","type":"string"},"createdAt":{"description":"Date and time of cluster creation (RFC 3339 format)\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"Name of the Kafka cluster\n","type":"string"},"nodeAmount":{"description":"Number of nodes in the cluster\n","type":"integer"},"nodeType":{"description":"Node type to use for the cluster\n","type":"string"},"password":{"description":"Password for the Kafka user\n","type":"string"},"privateNetworks":{"description":"Private network to expose your Kafka cluster\n","items":{"$ref":"#/types/scaleway:kafka/getClusterPrivateNetwork:getClusterPrivateNetwork"},"type":"array"},"projectId":{"description":"The\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eyou want to attach the resource to\n","type":"string"},"publicNetworks":{"description":"Public endpoint configuration\n","items":{"$ref":"#/types/scaleway:kafka/getClusterPublicNetwork:getClusterPublicNetwork"},"type":"array"},"region":{"description":"The region you want to attach the resource to\n","type":"string"},"status":{"description":"The status of the cluster\n","type":"string"},"tags":{"description":"List of tags to apply\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"Date and time of cluster last update (RFC 3339 format)\n","type":"string"},"userName":{"description":"Username for the Kafka user\n","type":"string"},"version":{"description":"Kafka version to use\n","type":"string"},"volumeSizeInGb":{"description":"Volume size in GB\n","type":"integer"},"volumeType":{"description":"Type of volume where data is stored\n","type":"string"}},"required":["createdAt","nodeAmount","nodeType","password","privateNetworks","publicNetworks","status","tags","updatedAt","userName","version","volumeSizeInGb","volumeType","id"],"type":"object"}},"scaleway:keymanager/getKey:getKey":{"description":"Gets information about a Key Manager Key. For more information, refer to the [Key Manager API documentation](https://www.scaleway.com/en/developers/api/key-manager/#path-keys-get-key-metadata).\n\n## Example Usage\n\n### Create a key and get its information\n\nThe following commands allow you to:\n\n- create a key named `my-kms-key`\n- retrieve the key's information using the key's ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Create a key\nconst symmetric = new scaleway.keymanager.Key(\"symmetric\", {\n    name: \"my-kms-key\",\n    region: \"fr-par\",\n    projectId: \"your-project-id\",\n    usage: \"symmetric_encryption\",\n    algorithm: \"aes_256_gcm\",\n    description: \"Key for encrypting secrets\",\n    tags: [\n        \"env:prod\",\n        \"kms\",\n    ],\n    unprotected: true,\n    rotationPolicy: {\n        rotationPeriod: \"720h\",\n    },\n});\n// Get the key information by its ID\nconst byID = scaleway.keymanager.getKey({\n    keyId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Create a key\nsymmetric = scaleway.keymanager.Key(\"symmetric\",\n    name=\"my-kms-key\",\n    region=\"fr-par\",\n    project_id=\"your-project-id\",\n    usage=\"symmetric_encryption\",\n    algorithm=\"aes_256_gcm\",\n    description=\"Key for encrypting secrets\",\n    tags=[\n        \"env:prod\",\n        \"kms\",\n    ],\n    unprotected=True,\n    rotation_policy={\n        \"rotation_period\": \"720h\",\n    })\n# Get the key information by its ID\nby_id = scaleway.keymanager.get_key(key_id=\"11111111-1111-1111-1111-111111111111\")\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    // Create a key\n    var symmetric = new Scaleway.Keymanager.Key(\"symmetric\", new()\n    {\n        Name = \"my-kms-key\",\n        Region = \"fr-par\",\n        ProjectId = \"your-project-id\",\n        Usage = \"symmetric_encryption\",\n        Algorithm = \"aes_256_gcm\",\n        Description = \"Key for encrypting secrets\",\n        Tags = new[]\n        {\n            \"env:prod\",\n            \"kms\",\n        },\n        Unprotected = true,\n        RotationPolicy = new Scaleway.Keymanager.Inputs.KeyRotationPolicyArgs\n        {\n            RotationPeriod = \"720h\",\n        },\n    });\n\n    // Get the key information by its ID\n    var byID = Scaleway.Keymanager.GetKey.Invoke(new()\n    {\n        KeyId = \"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/keymanager\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a key\n\t\t_, err := keymanager.NewKey(ctx, \"symmetric\", \u0026keymanager.KeyArgs{\n\t\t\tName:        pulumi.String(\"my-kms-key\"),\n\t\t\tRegion:      pulumi.String(\"fr-par\"),\n\t\t\tProjectId:   pulumi.String(\"your-project-id\"),\n\t\t\tUsage:       pulumi.String(\"symmetric_encryption\"),\n\t\t\tAlgorithm:   pulumi.String(\"aes_256_gcm\"),\n\t\t\tDescription: pulumi.String(\"Key for encrypting secrets\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"env:prod\"),\n\t\t\t\tpulumi.String(\"kms\"),\n\t\t\t},\n\t\t\tUnprotected: pulumi.Bool(true),\n\t\t\tRotationPolicy: \u0026keymanager.KeyRotationPolicyArgs{\n\t\t\t\tRotationPeriod: pulumi.String(\"720h\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get the key information by its ID\n\t\t_, err = keymanager.LookupKey(ctx, \u0026keymanager.LookupKeyArgs{\n\t\t\tKeyId: \"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.keymanager.Key;\nimport com.pulumi.scaleway.keymanager.KeyArgs;\nimport com.pulumi.scaleway.keymanager.inputs.KeyRotationPolicyArgs;\nimport com.pulumi.scaleway.keymanager.KeymanagerFunctions;\nimport com.pulumi.scaleway.keymanager.inputs.GetKeyArgs;\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        // Create a key\n        var symmetric = new Key(\"symmetric\", KeyArgs.builder()\n            .name(\"my-kms-key\")\n            .region(\"fr-par\")\n            .projectId(\"your-project-id\")\n            .usage(\"symmetric_encryption\")\n            .algorithm(\"aes_256_gcm\")\n            .description(\"Key for encrypting secrets\")\n            .tags(            \n                \"env:prod\",\n                \"kms\")\n            .unprotected(true)\n            .rotationPolicy(KeyRotationPolicyArgs.builder()\n                .rotationPeriod(\"720h\")\n                .build())\n            .build());\n\n        // Get the key information by its ID\n        final var byID = KeymanagerFunctions.getKey(GetKeyArgs.builder()\n            .keyId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a key\n  symmetric:\n    type: scaleway:keymanager:Key\n    properties:\n      name: my-kms-key\n      region: fr-par\n      projectId: your-project-id\n      usage: symmetric_encryption\n      algorithm: aes_256_gcm\n      description: Key for encrypting secrets\n      tags:\n        - env:prod\n        - kms\n      unprotected: true\n      rotationPolicy:\n        rotationPeriod: 720h\nvariables:\n  # Get the key information by its ID\n  byID:\n    fn::invoke:\n      function: scaleway:keymanager:getKey\n      arguments:\n        keyId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getKey.\n","properties":{"keyId":{"type":"string","description":"ID of the key to target. Can be a plain UUID or a regional ID.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the key was created.\n"}},"type":"object","required":["keyId"]},"outputs":{"description":"A collection of values returned by getKey.\n","properties":{"algorithm":{"type":"string"},"createdAt":{"type":"string"},"description":{"type":"string"},"id":{"type":"string"},"keyId":{"type":"string"},"locked":{"type":"boolean"},"name":{"type":"string"},"origin":{"type":"string"},"projectId":{"type":"string"},"protected":{"type":"boolean"},"region":{"type":"string"},"rotatedAt":{"type":"string"},"rotationCount":{"type":"integer"},"rotationPolicies":{"items":{"$ref":"#/types/scaleway:keymanager/getKeyRotationPolicy:getKeyRotationPolicy"},"type":"array"},"state":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"unprotected":{"type":"boolean"},"updatedAt":{"type":"string"},"usage":{"type":"string"}},"required":["algorithm","createdAt","description","id","keyId","locked","name","origin","projectId","protected","rotatedAt","rotationCount","rotationPolicies","state","tags","unprotected","updatedAt","usage"],"type":"object"}},"scaleway:keymanager/getVerify:getVerify":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.keymanager.getVerify`\" pulumi-lang-dotnet=\"`scaleway.keymanager.getVerify`\" pulumi-lang-go=\"`keymanager.getVerify`\" pulumi-lang-python=\"`keymanager_get_verify`\" pulumi-lang-yaml=\"`scaleway.keymanager.getVerify`\" pulumi-lang-java=\"`scaleway.keymanager.getVerify`\"\u003e`scaleway.keymanager.getVerify`\u003c/span\u003e data source is used to verify a message signature against a message digest with a given key. The key must have its usage set to asymmetric_signing. The message digest must be generated using the same digest algorithm that is defined in the key's algorithm configuration, and encoded as a base64 string.\n\nRefer to the Key Manager [documentation](https://www.scaleway.com/en/docs/key-manager/) and [API documentation](https://www.scaleway.com/en/developers/api/key-manager/) for more information.\n\n\n","inputs":{"description":"A collection of arguments for invoking getVerify.\n","properties":{"digest":{"type":"string","description":"Digest of the original signed message. Must be generated using the same algorithm specified in the key’s configuration, and encoded as a base64 string.\n"},"keyId":{"type":"string","description":"ID of the key to use for signature verification. Can be a plain UUID or a regional ID.\n"},"region":{"type":"string","description":"The region of the key. If not set, the region is derived from the\u003cspan pulumi-lang-nodejs=\" keyId \" pulumi-lang-dotnet=\" KeyId \" pulumi-lang-go=\" keyId \" pulumi-lang-python=\" key_id \" pulumi-lang-yaml=\" keyId \" pulumi-lang-java=\" keyId \"\u003e key_id \u003c/span\u003ewhen possible or from the provider \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e configuration.\n"},"signature":{"type":"string","description":"The message signature to verify, encoded as a base64 string.\n"}},"type":"object","required":["digest","keyId","signature"]},"outputs":{"description":"A collection of values returned by getVerify.\n","properties":{"digest":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"keyId":{"type":"string"},"region":{"type":"string"},"signature":{"type":"string"},"valid":{"type":"boolean"}},"required":["digest","keyId","signature","valid","id"],"type":"object"}},"scaleway:kubernetes/getCluster:getCluster":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-dotnet=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-go=\"`kubernetes.Cluster`\" pulumi-lang-python=\"`kubernetes.Cluster`\" pulumi-lang-yaml=\"`scaleway.kubernetes.Cluster`\" pulumi-lang-java=\"`scaleway.kubernetes.Cluster`\"\u003e`scaleway.kubernetes.Cluster`\u003c/span\u003e data source is used to retrieve information about a Kubernetes Cluster.\n\nRefer to the Kubernetes [documentation](https://www.scaleway.com/en/docs/compute/kubernetes/) and [API documentation](https://www.scaleway.com/en/developers/api/kubernetes/) for more information.\n\n\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\n// Get info by cluster id\nconst myKey = scaleway.kubernetes.getCluster({\n    clusterId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by cluster id\nmy_key = scaleway.kubernetes.get_cluster(cluster_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    // Get info by cluster id\n    var myKey = Scaleway.Kubernetes.GetCluster.Invoke(new()\n    {\n        ClusterId = \"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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by cluster id\n\t\t_, err := kubernetes.LookupCluster(ctx, \u0026kubernetes.LookupClusterArgs{\n\t\t\tClusterId: 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.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetClusterArgs;\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        // Get info by cluster id\n        final var myKey = KubernetesFunctions.getCluster(GetClusterArgs.builder()\n            .clusterId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by cluster id\n  myKey:\n    fn::invoke:\n      function: scaleway:kubernetes:getCluster\n      arguments:\n        clusterId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by cluster name\nconst myKey = scaleway.kubernetes.getCluster({\n    name: \"my-cluster-name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by cluster name\nmy_key = scaleway.kubernetes.get_cluster(name=\"my-cluster-name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by cluster name\n    var myKey = Scaleway.Kubernetes.GetCluster.Invoke(new()\n    {\n        Name = \"my-cluster-name\",\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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by cluster name\n\t\t_, err := kubernetes.LookupCluster(ctx, \u0026kubernetes.LookupClusterArgs{\n\t\t\tName: pulumi.StringRef(\"my-cluster-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetClusterArgs;\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        // Get info by cluster name\n        final var myKey = KubernetesFunctions.getCluster(GetClusterArgs.builder()\n            .name(\"my-cluster-name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by cluster name\n  myKey:\n    fn::invoke:\n      function: scaleway:kubernetes:getCluster\n      arguments:\n        name: my-cluster-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCluster.\n","properties":{"clusterId":{"type":"string","description":"The cluster ID. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e should be specified.\n"},"name":{"type":"string","description":"The cluster name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the project the cluster is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the cluster exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCluster.\n","properties":{"admissionPlugins":{"description":"The list of [admission plugins](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/) enabled on the cluster.\n","items":{"type":"string"},"type":"array"},"apiserverCertSans":{"items":{"type":"string"},"type":"array"},"apiserverUrl":{"description":"The URL of the Kubernetes API server.\n","type":"string"},"autoUpgrades":{"description":"The auto upgrade configuration.\n","items":{"$ref":"#/types/scaleway:kubernetes/getClusterAutoUpgrade:getClusterAutoUpgrade"},"type":"array"},"autoscalerConfigs":{"description":"The configuration options for the [Kubernetes cluster autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler).\n","items":{"$ref":"#/types/scaleway:kubernetes/getClusterAutoscalerConfig:getClusterAutoscalerConfig"},"type":"array"},"clusterId":{"type":"string"},"cni":{"description":"The Container Network Interface (CNI) for the Kubernetes cluster.\n","type":"string"},"createdAt":{"description":"The creation date of the cluster.\n","type":"string"},"description":{"description":"A description for the Kubernetes cluster.\n","type":"string"},"featureGates":{"description":"The list of [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) enabled on the cluster.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"kubeconfigs":{"items":{"$ref":"#/types/scaleway:kubernetes/getClusterKubeconfig:getClusterKubeconfig"},"type":"array"},"name":{"type":"string"},"openIdConnectConfigs":{"items":{"$ref":"#/types/scaleway:kubernetes/getClusterOpenIdConnectConfig:getClusterOpenIdConnectConfig"},"type":"array"},"organizationId":{"description":"The ID of the organization the cluster is associated with.\n","type":"string"},"podCidr":{"type":"string"},"privateNetworkId":{"description":"The ID of the private network of the cluster.\n","type":"string"},"projectId":{"type":"string"},"region":{"description":"The region in which the cluster is.\n","type":"string"},"serviceCidr":{"type":"string"},"serviceDnsIp":{"type":"string"},"status":{"description":"The status of the Kubernetes cluster.\n","type":"string"},"tags":{"description":"The tags associated with the Kubernetes cluster.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the Kubernetes cluster.\n","type":"string"},"updatedAt":{"description":"The last update date of the cluster.\n","type":"string"},"upgradeAvailable":{"description":"True if a newer Kubernetes version is available.\n","type":"boolean"},"version":{"description":"The version of the Kubernetes cluster.\n","type":"string"},"wildcardDns":{"description":"The DNS wildcard that points to all ready nodes.\n","type":"string"}},"required":["admissionPlugins","apiserverCertSans","apiserverUrl","autoUpgrades","autoscalerConfigs","cni","createdAt","description","featureGates","kubeconfigs","openIdConnectConfigs","organizationId","podCidr","privateNetworkId","serviceCidr","serviceDnsIp","status","tags","type","updatedAt","upgradeAvailable","version","wildcardDns","id"],"type":"object"}},"scaleway:kubernetes/getPool:getPool":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.kubernetes.Pool`\" pulumi-lang-dotnet=\"`scaleway.kubernetes.Pool`\" pulumi-lang-go=\"`kubernetes.Pool`\" pulumi-lang-python=\"`kubernetes.Pool`\" pulumi-lang-yaml=\"`scaleway.kubernetes.Pool`\" pulumi-lang-java=\"`scaleway.kubernetes.Pool`\"\u003e`scaleway.kubernetes.Pool`\u003c/span\u003e data source is used to retrieve information about a Kubernetes Cluster's Pool.\n\nRefer to the Kubernetes [documentation](https://www.scaleway.com/en/docs/compute/kubernetes/) and [API documentation](https://www.scaleway.com/en/developers/api/kubernetes/) for more information.\n\n\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\n// Get info by pool id\nconst myKey = scaleway.kubernetes.getPool({\n    poolId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by pool id\nmy_key = scaleway.kubernetes.get_pool(pool_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    // Get info by pool id\n    var myKey = Scaleway.Kubernetes.GetPool.Invoke(new()\n    {\n        PoolId = \"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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by pool id\n\t\t_, err := kubernetes.LookupPool(ctx, \u0026kubernetes.LookupPoolArgs{\n\t\t\tPoolId: 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.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetPoolArgs;\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        // Get info by pool id\n        final var myKey = KubernetesFunctions.getPool(GetPoolArgs.builder()\n            .poolId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by pool id\n  myKey:\n    fn::invoke:\n      function: scaleway:kubernetes:getPool\n      arguments:\n        poolId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by pool name (need cluster_id)\nconst myKey = scaleway.kubernetes.getPool({\n    name: \"my-pool-name\",\n    clusterId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by pool name (need cluster_id)\nmy_key = scaleway.kubernetes.get_pool(name=\"my-pool-name\",\n    cluster_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    // Get info by pool name (need cluster_id)\n    var myKey = Scaleway.Kubernetes.GetPool.Invoke(new()\n    {\n        Name = \"my-pool-name\",\n        ClusterId = \"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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by pool name (need cluster_id)\n\t\t_, err := kubernetes.LookupPool(ctx, \u0026kubernetes.LookupPoolArgs{\n\t\t\tName:      pulumi.StringRef(\"my-pool-name\"),\n\t\t\tClusterId: 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.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetPoolArgs;\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        // Get info by pool name (need cluster_id)\n        final var myKey = KubernetesFunctions.getPool(GetPoolArgs.builder()\n            .name(\"my-pool-name\")\n            .clusterId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by pool name (need cluster_id)\n  myKey:\n    fn::invoke:\n      function: scaleway:kubernetes:getPool\n      arguments:\n        name: my-pool-name\n        clusterId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPool.\n","properties":{"clusterId":{"type":"string","description":"The cluster ID. Required when \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e is set.\n"},"name":{"type":"string","description":"The pool name. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`poolId`\" pulumi-lang-dotnet=\"`PoolId`\" pulumi-lang-go=\"`poolId`\" pulumi-lang-python=\"`pool_id`\" pulumi-lang-yaml=\"`poolId`\" pulumi-lang-java=\"`poolId`\"\u003e`pool_id`\u003c/span\u003e should be specified. \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e should be specified with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"poolId":{"type":"string","description":"The pool's ID. Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`poolId`\" pulumi-lang-dotnet=\"`PoolId`\" pulumi-lang-go=\"`poolId`\" pulumi-lang-python=\"`pool_id`\" pulumi-lang-yaml=\"`poolId`\" pulumi-lang-java=\"`poolId`\"\u003e`pool_id`\u003c/span\u003e should be specified.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the pool exists.\n"},"size":{"type":"integer","description":"The size of the pool.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPool.\n","properties":{"autohealing":{"description":"True if the autohealing feature is enabled for this pool.\n","type":"boolean"},"autoscaling":{"description":"True if the autoscaling feature is enabled for this pool.\n","type":"boolean"},"clusterId":{"type":"string"},"containerRuntime":{"description":"The container runtime of the pool.\n","type":"string"},"createdAt":{"description":"The creation date of the pool.\n","type":"string"},"currentSize":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"kubeletArgs":{"additionalProperties":{"type":"string"},"type":"object"},"maxSize":{"description":"The maximum size of the pool, used by the autoscaling feature.\n","type":"integer"},"minSize":{"description":"The minimum size of the pool, used by the autoscaling feature.\n","type":"integer"},"name":{"description":"The name of the node.\n","type":"string"},"nodeType":{"description":"The commercial type of the pool instances.\n","type":"string"},"nodes":{"description":"(List of) The nodes in the default pool.\n","items":{"$ref":"#/types/scaleway:kubernetes/getPoolNode:getPoolNode"},"type":"array"},"placementGroupId":{"description":"[placement group](https://developers.scaleway.com/en/products/instance/api/#placement-groups-d8f653) the nodes of the pool are attached to.\n","type":"string"},"poolId":{"type":"string"},"publicIpDisabled":{"type":"boolean"},"region":{"type":"string"},"rootVolumeSizeInGb":{"type":"integer"},"rootVolumeType":{"type":"string"},"securityGroupId":{"type":"string"},"size":{"description":"The size of the pool.\n","type":"integer"},"status":{"description":"The status of the node.\n","type":"string"},"tags":{"description":"The tags associated with the pool.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"The last update date of the pool.\n","type":"string"},"upgradePolicies":{"items":{"$ref":"#/types/scaleway:kubernetes/getPoolUpgradePolicy:getPoolUpgradePolicy"},"type":"array"},"version":{"description":"The version of the pool.\n","type":"string"},"waitForPoolReady":{"type":"boolean"},"zone":{"type":"string"}},"required":["autohealing","autoscaling","containerRuntime","createdAt","currentSize","kubeletArgs","maxSize","minSize","nodeType","nodes","placementGroupId","publicIpDisabled","rootVolumeSizeInGb","rootVolumeType","securityGroupId","status","tags","updatedAt","upgradePolicies","version","waitForPoolReady","zone","id"],"type":"object"}},"scaleway:kubernetes/getVersion:getVersion":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.kubernetes.getVersion`\" pulumi-lang-dotnet=\"`scaleway.kubernetes.getVersion`\" pulumi-lang-go=\"`kubernetes.getVersion`\" pulumi-lang-python=\"`kubernetes_get_version`\" pulumi-lang-yaml=\"`scaleway.kubernetes.getVersion`\" pulumi-lang-java=\"`scaleway.kubernetes.getVersion`\"\u003e`scaleway.kubernetes.getVersion`\u003c/span\u003e data source is used to retrieve information about a Kubernetes version.\n\nRefer to the Kubernetes [documentation](https://www.scaleway.com/en/docs/compute/kubernetes/) and [API documentation](https://www.scaleway.com/en/developers/api/kubernetes/) for more information.\n\nYou can also use the [scaleway-cli](https://github.com/scaleway/scaleway-cli) with `scw k8s version list` to list all available versions.\n\n\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\n// Use the latest version\nconst latest = scaleway.kubernetes.getVersion({\n    name: \"latest\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Use the latest version\nlatest = scaleway.kubernetes.get_version(name=\"latest\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Use the latest version\n    var latest = Scaleway.Kubernetes.GetVersion.Invoke(new()\n    {\n        Name = \"latest\",\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/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Use the latest version\n\t\t_, err := kubernetes.GetVersion(ctx, \u0026kubernetes.GetVersionArgs{\n\t\t\tName: \"latest\",\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.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetVersionArgs;\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        // Use the latest version\n        final var latest = KubernetesFunctions.getVersion(GetVersionArgs.builder()\n            .name(\"latest\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Use the latest version\n  latest:\n    fn::invoke:\n      function: scaleway:kubernetes:getVersion\n      arguments:\n        name: latest\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Use a specific version\nconst byName = scaleway.kubernetes.getVersion({\n    name: \"1.26.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Use a specific version\nby_name = scaleway.kubernetes.get_version(name=\"1.26.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Use a specific version\n    var byName = Scaleway.Kubernetes.GetVersion.Invoke(new()\n    {\n        Name = \"1.26.0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Use a specific version\n\t\t_, err := kubernetes.GetVersion(ctx, \u0026kubernetes.GetVersionArgs{\n\t\t\tName: \"1.26.0\",\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.kubernetes.KubernetesFunctions;\nimport com.pulumi.scaleway.kubernetes.inputs.GetVersionArgs;\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        // Use a specific version\n        final var byName = KubernetesFunctions.getVersion(GetVersionArgs.builder()\n            .name(\"1.26.0\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Use a specific version\n  byName:\n    fn::invoke:\n      function: scaleway:kubernetes:getVersion\n      arguments:\n        name: 1.26.0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVersion.\n","properties":{"name":{"type":"string","description":"The name of the Kubernetes version.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the version exists.\n","willReplaceOnChanges":true}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getVersion.\n","properties":{"availableCnis":{"description":"The list of supported Container Network Interface (CNI) plugins for this version.\n","items":{"type":"string"},"type":"array"},"availableContainerRuntimes":{"description":"The list of supported container runtimes for this version.\n","items":{"type":"string"},"type":"array"},"availableFeatureGates":{"description":"The list of supported feature gates for this version.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"majorMinorOnly":{"type":"string"},"name":{"type":"string"},"region":{"type":"string"}},"required":["availableCnis","availableContainerRuntimes","availableFeatureGates","majorMinorOnly","name","id"],"type":"object"}},"scaleway:loadbalancers/getAcls:getAcls":{"description":"Gets information about multiple Load Balancer ACLs.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/acls/) or [API reference](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-acls-get-an-acl).\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\n// Find acls that share the same frontend ID\nconst byFrontID = scaleway.loadbalancers.getAcls({\n    frontendId: frt01.id,\n});\n// Find acls by frontend ID and name\nconst byFrontIDAndName = scaleway.loadbalancers.getAcls({\n    frontendId: frt01.id,\n    name: \"tf-acls-datasource\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Find acls that share the same frontend ID\nby_front_id = scaleway.loadbalancers.get_acls(frontend_id=frt01[\"id\"])\n# Find acls by frontend ID and name\nby_front_id_and_name = scaleway.loadbalancers.get_acls(frontend_id=frt01[\"id\"],\n    name=\"tf-acls-datasource\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Find acls that share the same frontend ID\n    var byFrontID = Scaleway.Loadbalancers.GetAcls.Invoke(new()\n    {\n        FrontendId = frt01.Id,\n    });\n\n    // Find acls by frontend ID and name\n    var byFrontIDAndName = Scaleway.Loadbalancers.GetAcls.Invoke(new()\n    {\n        FrontendId = frt01.Id,\n        Name = \"tf-acls-datasource\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find acls that share the same frontend ID\n\t\t_, err := loadbalancers.GetAcls(ctx, \u0026loadbalancers.GetAclsArgs{\n\t\t\tFrontendId: frt01.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find acls by frontend ID and name\n\t\t_, err = loadbalancers.GetAcls(ctx, \u0026loadbalancers.GetAclsArgs{\n\t\t\tFrontendId: frt01.Id,\n\t\t\tName:       pulumi.StringRef(\"tf-acls-datasource\"),\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.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetAclsArgs;\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        // Find acls that share the same frontend ID\n        final var byFrontID = LoadbalancersFunctions.getAcls(GetAclsArgs.builder()\n            .frontendId(frt01.id())\n            .build());\n\n        // Find acls by frontend ID and name\n        final var byFrontIDAndName = LoadbalancersFunctions.getAcls(GetAclsArgs.builder()\n            .frontendId(frt01.id())\n            .name(\"tf-acls-datasource\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Find acls that share the same frontend ID\n  byFrontID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getAcls\n      arguments:\n        frontendId: ${frt01.id}\n  # Find acls by frontend ID and name\n  byFrontIDAndName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getAcls\n      arguments:\n        frontendId: ${frt01.id}\n        name: tf-acls-datasource\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAcls.\n","properties":{"frontendId":{"type":"string","description":"The frontend ID this ACL is attached to. ACLs with a matching frontend ID are listed.\n\u003e **Important:** LB frontend IDs are zoned, which means they are of the form `{zone}/{id}`, e.g. `fr-par-1/11111111-1111-1111-1111-111111111111`\n"},"name":{"type":"string","description":"The ACL name to filter for. ACLs with a matching name are listed.\n"},"projectId":{"type":"string","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the ACLs exist.\n","willReplaceOnChanges":true}},"type":"object","required":["frontendId"]},"outputs":{"description":"A collection of values returned by getAcls.\n","properties":{"acls":{"description":"List of retrieved ACLs\n","items":{"$ref":"#/types/scaleway:loadbalancers/getAclsAcl:getAclsAcl"},"type":"array"},"frontendId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"zone":{"type":"string"}},"required":["acls","frontendId","organizationId","projectId","id"],"type":"object"}},"scaleway:loadbalancers/getBackend:getBackend":{"description":"Get information about Scaleway Load Balancer backends.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-backends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-backends).\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.loadbalancers.Ip(\"main\", {});\nconst mainLoadBalancer = new scaleway.loadbalancers.LoadBalancer(\"main\", {\n    ipId: main.id,\n    name: \"data-test-lb-backend\",\n    type: \"LB-S\",\n});\nconst mainBackend = new scaleway.loadbalancers.Backend(\"main\", {\n    lbId: mainLoadBalancer.id,\n    name: \"backend01\",\n    forwardProtocol: \"http\",\n    forwardPort: 80,\n});\nconst byID = scaleway.loadbalancers.getBackendOutput({\n    backendId: mainBackend.id,\n});\nconst byName = scaleway.loadbalancers.getBackendOutput({\n    name: mainBackend.name,\n    lbId: mainLoadBalancer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.loadbalancers.Ip(\"main\")\nmain_load_balancer = scaleway.loadbalancers.LoadBalancer(\"main\",\n    ip_id=main.id,\n    name=\"data-test-lb-backend\",\n    type=\"LB-S\")\nmain_backend = scaleway.loadbalancers.Backend(\"main\",\n    lb_id=main_load_balancer.id,\n    name=\"backend01\",\n    forward_protocol=\"http\",\n    forward_port=80)\nby_id = scaleway.loadbalancers.get_backend_output(backend_id=main_backend.id)\nby_name = scaleway.loadbalancers.get_backend_output(name=main_backend.name,\n    lb_id=main_load_balancer.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.Loadbalancers.Ip(\"main\");\n\n    var mainLoadBalancer = new Scaleway.Loadbalancers.LoadBalancer(\"main\", new()\n    {\n        IpId = main.Id,\n        Name = \"data-test-lb-backend\",\n        Type = \"LB-S\",\n    });\n\n    var mainBackend = new Scaleway.Loadbalancers.Backend(\"main\", new()\n    {\n        LbId = mainLoadBalancer.Id,\n        Name = \"backend01\",\n        ForwardProtocol = \"http\",\n        ForwardPort = 80,\n    });\n\n    var byID = Scaleway.Loadbalancers.GetBackend.Invoke(new()\n    {\n        BackendId = mainBackend.Id,\n    });\n\n    var byName = Scaleway.Loadbalancers.GetBackend.Invoke(new()\n    {\n        Name = mainBackend.Name,\n        LbId = mainLoadBalancer.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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := loadbalancers.NewIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainLoadBalancer, err := loadbalancers.NewLoadBalancer(ctx, \"main\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: main.ID(),\n\t\t\tName: pulumi.String(\"data-test-lb-backend\"),\n\t\t\tType: pulumi.String(\"LB-S\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainBackend, err := loadbalancers.NewBackend(ctx, \"main\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            mainLoadBalancer.ID(),\n\t\t\tName:            pulumi.String(\"backend01\"),\n\t\t\tForwardProtocol: pulumi.String(\"http\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = loadbalancers.LookupBackendOutput(ctx, loadbalancers.GetBackendOutputArgs{\n\t\t\tBackendId: mainBackend.ID(),\n\t\t}, nil)\n\t\t_ = loadbalancers.LookupBackendOutput(ctx, loadbalancers.GetBackendOutputArgs{\n\t\t\tName: mainBackend.Name,\n\t\t\tLbId: mainLoadBalancer.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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetBackendArgs;\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 Ip(\"main\");\n\n        var mainLoadBalancer = new LoadBalancer(\"mainLoadBalancer\", LoadBalancerArgs.builder()\n            .ipId(main.id())\n            .name(\"data-test-lb-backend\")\n            .type(\"LB-S\")\n            .build());\n\n        var mainBackend = new Backend(\"mainBackend\", BackendArgs.builder()\n            .lbId(mainLoadBalancer.id())\n            .name(\"backend01\")\n            .forwardProtocol(\"http\")\n            .forwardPort(80)\n            .build());\n\n        final var byID = LoadbalancersFunctions.getBackend(GetBackendArgs.builder()\n            .backendId(mainBackend.id())\n            .build());\n\n        final var byName = LoadbalancersFunctions.getBackend(GetBackendArgs.builder()\n            .name(mainBackend.name())\n            .lbId(mainLoadBalancer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:loadbalancers:Ip\n  mainLoadBalancer:\n    type: scaleway:loadbalancers:LoadBalancer\n    name: main\n    properties:\n      ipId: ${main.id}\n      name: data-test-lb-backend\n      type: LB-S\n  mainBackend:\n    type: scaleway:loadbalancers:Backend\n    name: main\n    properties:\n      lbId: ${mainLoadBalancer.id}\n      name: backend01\n      forwardProtocol: http\n      forwardPort: '80'\nvariables:\n  byID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getBackend\n      arguments:\n        backendId: ${mainBackend.id}\n  byName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getBackend\n      arguments:\n        name: ${mainBackend.name}\n        lbId: ${mainLoadBalancer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBackend.\n","properties":{"backendId":{"type":"string","description":"The backend ID.\n- Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`backendId`\" pulumi-lang-dotnet=\"`BackendId`\" pulumi-lang-go=\"`backendId`\" pulumi-lang-python=\"`backend_id`\" pulumi-lang-yaml=\"`backendId`\" pulumi-lang-java=\"`backendId`\"\u003e`backend_id`\u003c/span\u003e should be specified.\n"},"lbId":{"type":"string","description":"Load Balancer ID this backend is attached to.\n"},"name":{"type":"string","description":"The name of the backend.\n- When using \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e you should specify the `lb-id`\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBackend.\n","properties":{"backendId":{"type":"string"},"failoverHost":{"type":"string"},"forwardPort":{"type":"integer"},"forwardPortAlgorithm":{"type":"string"},"forwardProtocol":{"type":"string"},"healthCheckDelay":{"type":"string"},"healthCheckHttp":{"items":{"$ref":"#/types/scaleway:loadbalancers/getBackendHealthCheckHttp:getBackendHealthCheckHttp"},"type":"array"},"healthCheckHttps":{"items":{"$ref":"#/types/scaleway:loadbalancers/getBackendHealthCheckHttp:getBackendHealthCheckHttp"},"type":"array"},"healthCheckMaxRetries":{"type":"integer"},"healthCheckPort":{"type":"integer"},"healthCheckSendProxy":{"type":"boolean"},"healthCheckTcps":{"items":{"$ref":"#/types/scaleway:loadbalancers/getBackendHealthCheckTcp:getBackendHealthCheckTcp"},"type":"array"},"healthCheckTimeout":{"type":"string"},"healthCheckTransientDelay":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ignoreSslServerVerify":{"type":"boolean"},"lbId":{"type":"string"},"maxConnections":{"type":"integer"},"maxRetries":{"type":"integer"},"name":{"type":"string"},"onMarkedDownAction":{"type":"string"},"proxyProtocol":{"type":"string"},"redispatchAttemptCount":{"type":"integer"},"sendProxyV2":{"type":"boolean"},"serverIps":{"items":{"type":"string"},"type":"array"},"sslBridging":{"type":"boolean"},"stickySessions":{"type":"string"},"stickySessionsCookieName":{"type":"string"},"timeoutConnect":{"type":"string"},"timeoutQueue":{"type":"string"},"timeoutServer":{"type":"string"},"timeoutTunnel":{"type":"string"}},"required":["failoverHost","forwardPort","forwardPortAlgorithm","forwardProtocol","healthCheckDelay","healthCheckHttp","healthCheckHttps","healthCheckMaxRetries","healthCheckPort","healthCheckSendProxy","healthCheckTcps","healthCheckTimeout","healthCheckTransientDelay","ignoreSslServerVerify","maxConnections","maxRetries","onMarkedDownAction","proxyProtocol","redispatchAttemptCount","sendProxyV2","serverIps","sslBridging","stickySessions","stickySessionsCookieName","timeoutConnect","timeoutQueue","timeoutServer","timeoutTunnel","id"],"type":"object"}},"scaleway:loadbalancers/getBackends:getBackends":{"description":"Gets information about multiple Load Balancer Backends.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-backends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-backends).\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\n// Find backends that share the same LB ID\nconst byLBID = scaleway.loadbalancers.getBackends({\n    lbId: lb01.id,\n});\n// Find backends by LB ID and name\nconst byLBIDAndName = scaleway.loadbalancers.getBackends({\n    lbId: lb01.id,\n    name: \"tf-backend-datasource\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Find backends that share the same LB ID\nby_lbid = scaleway.loadbalancers.get_backends(lb_id=lb01[\"id\"])\n# Find backends by LB ID and name\nby_lbid_and_name = scaleway.loadbalancers.get_backends(lb_id=lb01[\"id\"],\n    name=\"tf-backend-datasource\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Find backends that share the same LB ID\n    var byLBID = Scaleway.Loadbalancers.GetBackends.Invoke(new()\n    {\n        LbId = lb01.Id,\n    });\n\n    // Find backends by LB ID and name\n    var byLBIDAndName = Scaleway.Loadbalancers.GetBackends.Invoke(new()\n    {\n        LbId = lb01.Id,\n        Name = \"tf-backend-datasource\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find backends that share the same LB ID\n\t\t_, err := loadbalancers.GetBackends(ctx, \u0026loadbalancers.GetBackendsArgs{\n\t\t\tLbId: lb01.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find backends by LB ID and name\n\t\t_, err = loadbalancers.GetBackends(ctx, \u0026loadbalancers.GetBackendsArgs{\n\t\t\tLbId: lb01.Id,\n\t\t\tName: pulumi.StringRef(\"tf-backend-datasource\"),\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.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetBackendsArgs;\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        // Find backends that share the same LB ID\n        final var byLBID = LoadbalancersFunctions.getBackends(GetBackendsArgs.builder()\n            .lbId(lb01.id())\n            .build());\n\n        // Find backends by LB ID and name\n        final var byLBIDAndName = LoadbalancersFunctions.getBackends(GetBackendsArgs.builder()\n            .lbId(lb01.id())\n            .name(\"tf-backend-datasource\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Find backends that share the same LB ID\n  byLBID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getBackends\n      arguments:\n        lbId: ${lb01.id}\n  # Find backends by LB ID and name\n  byLBIDAndName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getBackends\n      arguments:\n        lbId: ${lb01.id}\n        name: tf-backend-datasource\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBackends.\n","properties":{"lbId":{"type":"string","description":"The Load Balancer ID this backend is attached to. Backends with a matching ID are listed.\n"},"name":{"type":"string","description":"The backend name to filter for. Backends with a matching name are listed.\n"},"projectId":{"type":"string","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which backends exist.\n","willReplaceOnChanges":true}},"type":"object","required":["lbId"]},"outputs":{"description":"A collection of values returned by getBackends.\n","properties":{"backends":{"description":"List of retrieved backends\n","items":{"$ref":"#/types/scaleway:loadbalancers/getBackendsBackend:getBackendsBackend"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lbId":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"zone":{"type":"string"}},"required":["backends","lbId","organizationId","projectId","id"],"type":"object"}},"scaleway:loadbalancers/getCertificate:getCertificate":{"description":"Get information about Scaleway Load Balancer certificates.\n\nThis data source can prove useful when a module accepts a Load Balancer certificate as an input variable and needs to, for example, determine the security of a certificate for the frontend associated with your domain.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/add-certificate/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-certificate).\n\n## Examples\n\n### Let's Encrypt\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\nimport * as std from \"@pulumi/std\";\n\nconst main = new scaleway.loadbalancers.Ip(\"main\", {});\nconst mainLoadBalancer = new scaleway.loadbalancers.LoadBalancer(\"main\", {\n    ipId: main.id,\n    name: \"data-test-lb-cert\",\n    type: \"LB-S\",\n});\nconst mainCertificate = new scaleway.loadbalancers.Certificate(\"main\", {\n    lbId: mainLoadBalancer.id,\n    name: \"data-test-lb-cert\",\n    letsencrypt: {\n        commonName: pulumi.all([mainLoadBalancer.ipAddress, mainLoadBalancer.region]).apply(([ipAddress, region]) =\u003e `${std.index.replace({\n            text: ipAddress,\n            search: \".\",\n            replace: \"-\",\n        }).result}.lb.${region}.scw.cloud`),\n    },\n});\nconst byID = scaleway.loadbalancers.getCertificateOutput({\n    certificateId: mainCertificate.id,\n});\nconst byName = scaleway.loadbalancers.getCertificateOutput({\n    name: mainCertificate.name,\n    lbId: mainLoadBalancer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumi_std as std\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.loadbalancers.Ip(\"main\")\nmain_load_balancer = scaleway.loadbalancers.LoadBalancer(\"main\",\n    ip_id=main.id,\n    name=\"data-test-lb-cert\",\n    type=\"LB-S\")\nmain_certificate = scaleway.loadbalancers.Certificate(\"main\",\n    lb_id=main_load_balancer.id,\n    name=\"data-test-lb-cert\",\n    letsencrypt={\n        \"common_name\": pulumi.Output.all(\n            ip_address=main_load_balancer.ip_address,\n            region=main_load_balancer.region\n).apply(lambda resolved_outputs: f\"{std.index.replace(text=resolved_outputs['ip_address'],\n            search='.',\n            replace='-')['result']}.lb.{resolved_outputs['region']}.scw.cloud\")\n,\n    })\nby_id = scaleway.loadbalancers.get_certificate_output(certificate_id=main_certificate.id)\nby_name = scaleway.loadbalancers.get_certificate_output(name=main_certificate.name,\n    lb_id=main_load_balancer.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\nusing Scaleway = Pulumiverse.Scaleway;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Scaleway.Loadbalancers.Ip(\"main\");\n\n    var mainLoadBalancer = new Scaleway.Loadbalancers.LoadBalancer(\"main\", new()\n    {\n        IpId = main.Id,\n        Name = \"data-test-lb-cert\",\n        Type = \"LB-S\",\n    });\n\n    var mainCertificate = new Scaleway.Loadbalancers.Certificate(\"main\", new()\n    {\n        LbId = mainLoadBalancer.Id,\n        Name = \"data-test-lb-cert\",\n        Letsencrypt = new Scaleway.Loadbalancers.Inputs.CertificateLetsencryptArgs\n        {\n            CommonName = Output.Tuple(mainLoadBalancer.IpAddress, mainLoadBalancer.Region).Apply(values =\u003e\n            {\n                var ipAddress = values.Item1;\n                var region = values.Item2;\n                return $\"{Std.Index.Replace.Invoke(new()\n                {\n                    Text = ipAddress,\n                    Search = \".\",\n                    Replace = \"-\",\n                }).Result}.lb.{region}.scw.cloud\";\n            }),\n        },\n    });\n\n    var byID = Scaleway.Loadbalancers.GetCertificate.Invoke(new()\n    {\n        CertificateId = mainCertificate.Id,\n    });\n\n    var byName = Scaleway.Loadbalancers.GetCertificate.Invoke(new()\n    {\n        Name = mainCertificate.Name,\n        LbId = mainLoadBalancer.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nmain, err := loadbalancers.NewIp(ctx, \"main\", nil)\nif err != nil {\nreturn err\n}\nmainLoadBalancer, err := loadbalancers.NewLoadBalancer(ctx, \"main\", \u0026loadbalancers.LoadBalancerArgs{\nIpId: main.ID(),\nName: pulumi.String(\"data-test-lb-cert\"),\nType: pulumi.String(\"LB-S\"),\n})\nif err != nil {\nreturn err\n}\ninvokeReplace, err := std.Replace(ctx, map[string]interface{}{\n\"text\": ipAddress,\n\"search\": \".\",\n\"replace\": \"-\",\n}, nil)\nif err != nil {\nreturn err\n}\nmainCertificate, err := loadbalancers.NewCertificate(ctx, \"main\", \u0026loadbalancers.CertificateArgs{\nLbId: mainLoadBalancer.ID(),\nName: pulumi.String(\"data-test-lb-cert\"),\nLetsencrypt: \u0026loadbalancers.CertificateLetsencryptArgs{\nCommonName: pulumi.All(mainLoadBalancer.IpAddress,mainLoadBalancer.Region).ApplyT(func(_args []interface{}) (string, error) {\nipAddress := _args[0].(string)\nregion := _args[1].(string)\n%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),\n},\n})\nif err != nil {\nreturn err\n}\n_ = loadbalancers.LookupCertificateOutput(ctx, loadbalancers.GetCertificateOutputArgs{\nCertificateId: mainCertificate.ID(),\n}, nil);\n_ = loadbalancers.LookupCertificateOutput(ctx, loadbalancers.GetCertificateOutputArgs{\nName: mainCertificate.Name,\nLbId: mainLoadBalancer.ID(),\n}, nil);\nreturn nil\n})\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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Certificate;\nimport com.pulumi.scaleway.loadbalancers.CertificateArgs;\nimport com.pulumi.scaleway.loadbalancers.inputs.CertificateLetsencryptArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.scaleway.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetCertificateArgs;\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 Ip(\"main\");\n\n        var mainLoadBalancer = new LoadBalancer(\"mainLoadBalancer\", LoadBalancerArgs.builder()\n            .ipId(main.id())\n            .name(\"data-test-lb-cert\")\n            .type(\"LB-S\")\n            .build());\n\n        var mainCertificate = new Certificate(\"mainCertificate\", CertificateArgs.builder()\n            .lbId(mainLoadBalancer.id())\n            .name(\"data-test-lb-cert\")\n            .letsencrypt(CertificateLetsencryptArgs.builder()\n                .commonName(Output.tuple(mainLoadBalancer.ipAddress(), mainLoadBalancer.region()).applyValue(values -\u003e {\n                    var ipAddress = values.t1;\n                    var region = values.t2;\n                    return String.format(\"%s.lb.%s.scw.cloud\", StdFunctions.replace(Map.ofEntries(\n                        Map.entry(\"text\", ipAddress),\n                        Map.entry(\"search\", \".\"),\n                        Map.entry(\"replace\", \"-\")\n                    )).result(),region);\n                }))\n                .build())\n            .build());\n\n        final var byID = LoadbalancersFunctions.getCertificate(GetCertificateArgs.builder()\n            .certificateId(mainCertificate.id())\n            .build());\n\n        final var byName = LoadbalancersFunctions.getCertificate(GetCertificateArgs.builder()\n            .name(mainCertificate.name())\n            .lbId(mainLoadBalancer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:loadbalancers:Ip\n  mainLoadBalancer:\n    type: scaleway:loadbalancers:LoadBalancer\n    name: main\n    properties:\n      ipId: ${main.id}\n      name: data-test-lb-cert\n      type: LB-S\n  mainCertificate:\n    type: scaleway:loadbalancers:Certificate\n    name: main\n    properties:\n      lbId: ${mainLoadBalancer.id}\n      name: data-test-lb-cert\n      letsencrypt:\n        commonName:\n          fn::join:\n            - \"\"\n            - - fn::invoke:\n                  function: std:replace\n                  arguments:\n                    text: ${mainLoadBalancer.ipAddress}\n                    search: .\n                    replace: '-'\n                  return: result\n              - .lb.\n              - ${mainLoadBalancer.region}\n              - .scw.cloud\nvariables:\n  byID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getCertificate\n      arguments:\n        certificateId: ${mainCertificate.id}\n  byName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getCertificate\n      arguments:\n        name: ${mainCertificate.name}\n        lbId: ${mainLoadBalancer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCertificate.\n","properties":{"certificateId":{"type":"string","description":"The certificate ID.\n- Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`certificateId`\" pulumi-lang-dotnet=\"`CertificateId`\" pulumi-lang-go=\"`certificateId`\" pulumi-lang-python=\"`certificate_id`\" pulumi-lang-yaml=\"`certificateId`\" pulumi-lang-java=\"`certificateId`\"\u003e`certificate_id`\u003c/span\u003e should be specified.\n"},"lbId":{"type":"string","description":"The Load Balancer ID this certificate is attached to.\n"},"name":{"type":"string","description":"The name of the Load Balancer certificate.\n- When using a certificate \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e you should specify the `lb-id`\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCertificate.\n","properties":{"certificateId":{"type":"string"},"commonName":{"type":"string"},"customCertificates":{"items":{"$ref":"#/types/scaleway:loadbalancers/getCertificateCustomCertificate:getCertificateCustomCertificate"},"type":"array"},"fingerprint":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lbId":{"type":"string"},"letsencrypts":{"items":{"$ref":"#/types/scaleway:loadbalancers/getCertificateLetsencrypt:getCertificateLetsencrypt"},"type":"array"},"name":{"type":"string"},"notValidAfter":{"type":"string"},"notValidBefore":{"type":"string"},"status":{"type":"string"},"subjectAlternativeNames":{"items":{"type":"string"},"type":"array"}},"required":["commonName","customCertificates","fingerprint","letsencrypts","notValidAfter","notValidBefore","status","subjectAlternativeNames","id"],"type":"object"}},"scaleway:loadbalancers/getFrontend:getFrontend":{"description":"Get information about Scaleway Load Balancer frontends.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-frontends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-frontends).\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 ip01 = new scaleway.loadbalancers.Ip(\"ip01\", {});\nconst lb01 = new scaleway.loadbalancers.LoadBalancer(\"lb01\", {\n    ipId: ip01.id,\n    name: \"test-lb\",\n    type: \"lb-s\",\n});\nconst bkd01 = new scaleway.loadbalancers.Backend(\"bkd01\", {\n    lbId: lb01.id,\n    forwardProtocol: \"tcp\",\n    forwardPort: 80,\n    proxyProtocol: \"none\",\n});\nconst frt01 = new scaleway.loadbalancers.Frontend(\"frt01\", {\n    lbId: lb01.id,\n    backendId: bkd01.id,\n    inboundPort: 80,\n});\nconst byID = scaleway.loadbalancers.getFrontendOutput({\n    frontendId: frt01.id,\n});\nconst byName = scaleway.loadbalancers.getFrontendOutput({\n    name: frt01.name,\n    lbId: lb01.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nip01 = scaleway.loadbalancers.Ip(\"ip01\")\nlb01 = scaleway.loadbalancers.LoadBalancer(\"lb01\",\n    ip_id=ip01.id,\n    name=\"test-lb\",\n    type=\"lb-s\")\nbkd01 = scaleway.loadbalancers.Backend(\"bkd01\",\n    lb_id=lb01.id,\n    forward_protocol=\"tcp\",\n    forward_port=80,\n    proxy_protocol=\"none\")\nfrt01 = scaleway.loadbalancers.Frontend(\"frt01\",\n    lb_id=lb01.id,\n    backend_id=bkd01.id,\n    inbound_port=80)\nby_id = scaleway.loadbalancers.get_frontend_output(frontend_id=frt01.id)\nby_name = scaleway.loadbalancers.get_frontend_output(name=frt01.name,\n    lb_id=lb01.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 ip01 = new Scaleway.Loadbalancers.Ip(\"ip01\");\n\n    var lb01 = new Scaleway.Loadbalancers.LoadBalancer(\"lb01\", new()\n    {\n        IpId = ip01.Id,\n        Name = \"test-lb\",\n        Type = \"lb-s\",\n    });\n\n    var bkd01 = new Scaleway.Loadbalancers.Backend(\"bkd01\", new()\n    {\n        LbId = lb01.Id,\n        ForwardProtocol = \"tcp\",\n        ForwardPort = 80,\n        ProxyProtocol = \"none\",\n    });\n\n    var frt01 = new Scaleway.Loadbalancers.Frontend(\"frt01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = bkd01.Id,\n        InboundPort = 80,\n    });\n\n    var byID = Scaleway.Loadbalancers.GetFrontend.Invoke(new()\n    {\n        FrontendId = frt01.Id,\n    });\n\n    var byName = Scaleway.Loadbalancers.GetFrontend.Invoke(new()\n    {\n        Name = frt01.Name,\n        LbId = lb01.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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip01, err := loadbalancers.NewIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb01, err := loadbalancers.NewLoadBalancer(ctx, \"lb01\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: ip01.ID(),\n\t\t\tName: pulumi.String(\"test-lb\"),\n\t\t\tType: pulumi.String(\"lb-s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbkd01, err := loadbalancers.NewBackend(ctx, \"bkd01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb01.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"tcp\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrt01, err := loadbalancers.NewFrontend(ctx, \"frt01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        lb01.ID(),\n\t\t\tBackendId:   bkd01.ID(),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = loadbalancers.LookupFrontendOutput(ctx, loadbalancers.GetFrontendOutputArgs{\n\t\t\tFrontendId: frt01.ID(),\n\t\t}, nil)\n\t\t_ = loadbalancers.LookupFrontendOutput(ctx, loadbalancers.GetFrontendOutputArgs{\n\t\t\tName: frt01.Name,\n\t\t\tLbId: lb01.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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetFrontendArgs;\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 ip01 = new Ip(\"ip01\");\n\n        var lb01 = new LoadBalancer(\"lb01\", LoadBalancerArgs.builder()\n            .ipId(ip01.id())\n            .name(\"test-lb\")\n            .type(\"lb-s\")\n            .build());\n\n        var bkd01 = new Backend(\"bkd01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .forwardProtocol(\"tcp\")\n            .forwardPort(80)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var frt01 = new Frontend(\"frt01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(bkd01.id())\n            .inboundPort(80)\n            .build());\n\n        final var byID = LoadbalancersFunctions.getFrontend(GetFrontendArgs.builder()\n            .frontendId(frt01.id())\n            .build());\n\n        final var byName = LoadbalancersFunctions.getFrontend(GetFrontendArgs.builder()\n            .name(frt01.name())\n            .lbId(lb01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip01:\n    type: scaleway:loadbalancers:Ip\n  lb01:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipId: ${ip01.id}\n      name: test-lb\n      type: lb-s\n  bkd01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      forwardProtocol: tcp\n      forwardPort: 80\n      proxyProtocol: none\n  frt01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${bkd01.id}\n      inboundPort: 80\nvariables:\n  byID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getFrontend\n      arguments:\n        frontendId: ${frt01.id}\n  byName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getFrontend\n      arguments:\n        name: ${frt01.name}\n        lbId: ${lb01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFrontend.\n","properties":{"frontendId":{"type":"string","description":"The frontend ID.\n- Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`frontendId`\" pulumi-lang-dotnet=\"`FrontendId`\" pulumi-lang-go=\"`frontendId`\" pulumi-lang-python=\"`frontend_id`\" pulumi-lang-yaml=\"`frontendId`\" pulumi-lang-java=\"`frontendId`\"\u003e`frontend_id`\u003c/span\u003e should be specified.\n"},"lbId":{"type":"string","description":"The Load Balancer ID this frontend is attached to.\n"},"name":{"type":"string","description":"The name of the frontend.\n- When using the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e you should specify the `lb-id`\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFrontend.\n","properties":{"acls":{"items":{"$ref":"#/types/scaleway:loadbalancers/getFrontendAcl:getFrontendAcl"},"type":"array"},"backendId":{"type":"string"},"certificateId":{"type":"string"},"certificateIds":{"items":{"type":"string"},"type":"array"},"connectionRateLimit":{"type":"integer"},"createdAt":{"type":"string"},"enableAccessLogs":{"type":"boolean"},"enableHttp3":{"type":"boolean"},"externalAcls":{"type":"boolean"},"frontendId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"inboundPort":{"type":"integer"},"lbId":{"type":"string"},"name":{"type":"string"},"timeoutClient":{"type":"string"},"updatedAt":{"type":"string"}},"required":["acls","backendId","certificateId","certificateIds","connectionRateLimit","createdAt","enableAccessLogs","enableHttp3","externalAcls","inboundPort","timeoutClient","updatedAt","id"],"type":"object"}},"scaleway:loadbalancers/getFrontends:getFrontends":{"description":"Gets information about multiple Load Balancer frontends.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/reference-content/configuring-frontends/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-frontends).\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\n// Find frontends that share the same LB ID\nconst byLBID = scaleway.loadbalancers.getFrontends({\n    lbId: lb01.id,\n});\n// Find frontends by LB ID and name\nconst byLBIDAndName = scaleway.loadbalancers.getFrontends({\n    lbId: lb01.id,\n    name: \"tf-frontend-datasource\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Find frontends that share the same LB ID\nby_lbid = scaleway.loadbalancers.get_frontends(lb_id=lb01[\"id\"])\n# Find frontends by LB ID and name\nby_lbid_and_name = scaleway.loadbalancers.get_frontends(lb_id=lb01[\"id\"],\n    name=\"tf-frontend-datasource\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Find frontends that share the same LB ID\n    var byLBID = Scaleway.Loadbalancers.GetFrontends.Invoke(new()\n    {\n        LbId = lb01.Id,\n    });\n\n    // Find frontends by LB ID and name\n    var byLBIDAndName = Scaleway.Loadbalancers.GetFrontends.Invoke(new()\n    {\n        LbId = lb01.Id,\n        Name = \"tf-frontend-datasource\",\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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find frontends that share the same LB ID\n\t\t_, err := loadbalancers.GetFrontends(ctx, \u0026loadbalancers.GetFrontendsArgs{\n\t\t\tLbId: lb01.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find frontends by LB ID and name\n\t\t_, err = loadbalancers.GetFrontends(ctx, \u0026loadbalancers.GetFrontendsArgs{\n\t\t\tLbId: lb01.Id,\n\t\t\tName: pulumi.StringRef(\"tf-frontend-datasource\"),\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.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetFrontendsArgs;\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        // Find frontends that share the same LB ID\n        final var byLBID = LoadbalancersFunctions.getFrontends(GetFrontendsArgs.builder()\n            .lbId(lb01.id())\n            .build());\n\n        // Find frontends by LB ID and name\n        final var byLBIDAndName = LoadbalancersFunctions.getFrontends(GetFrontendsArgs.builder()\n            .lbId(lb01.id())\n            .name(\"tf-frontend-datasource\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Find frontends that share the same LB ID\n  byLBID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getFrontends\n      arguments:\n        lbId: ${lb01.id}\n  # Find frontends by LB ID and name\n  byLBIDAndName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getFrontends\n      arguments:\n        lbId: ${lb01.id}\n        name: tf-frontend-datasource\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFrontends.\n","properties":{"lbId":{"type":"string","description":"The Load Balancer ID this frontend is attached to. Frontends with a matching ID are listed.\n"},"name":{"type":"string","description":"The frontend name to filter for. Frontends with a matching name are listed.\n"},"projectId":{"type":"string","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the frontends exist.\n","willReplaceOnChanges":true}},"type":"object","required":["lbId"]},"outputs":{"description":"A collection of values returned by getFrontends.\n","properties":{"frontends":{"description":"List of retrieved frontends\n","items":{"$ref":"#/types/scaleway:loadbalancers/getFrontendsFrontend:getFrontendsFrontend"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lbId":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"zone":{"type":"string"}},"required":["frontends","lbId","organizationId","projectId","id"],"type":"object"}},"scaleway:loadbalancers/getIp:getIp":{"description":"Gets information about a Load Balancer IP address.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-flex-ips/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-ip-addresses-list-ip-addresses).\n\n","inputs":{"description":"A collection of arguments for invoking getIp.\n","properties":{"ipAddress":{"type":"string","description":"The IP address.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e should be specified.\n"},"ipId":{"type":"string","description":"The IP ID.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipId`\" pulumi-lang-dotnet=\"`IpId`\" pulumi-lang-go=\"`ipId`\" pulumi-lang-python=\"`ip_id`\" pulumi-lang-yaml=\"`ipId`\" pulumi-lang-java=\"`ipId`\"\u003e`ip_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer IP is associated with.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IP was reserved.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIp.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipAddress":{"type":"string"},"ipId":{"type":"string"},"isIpv6":{"type":"boolean"},"lbId":{"description":"The ID of the associated Load Balancer, if any\n","type":"string"},"organizationId":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e) The ID of the Organization the Load Balancer IP is associated with.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"reverse":{"description":"The reverse domain associated with this IP.\n","type":"string"},"tags":{"description":"The tags associated with this IP.\n","items":{"type":"string"},"type":"array"},"zone":{"type":"string"}},"required":["isIpv6","lbId","organizationId","region","reverse","tags","id"],"type":"object"}},"scaleway:loadbalancers/getIps:getIps":{"description":"Gets information about multiple Load Balancer IP addresses.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-flex-ips/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-ip-addresses-list-ip-addresses).\n\n","inputs":{"description":"A collection of arguments for invoking getIps.\n","properties":{"ipCidrRange":{"type":"string","description":"The IP CIDR range to filter for. IPs within a matching CIDR block are listed.\n"},"ipType":{"type":"string","description":"The IP type used as a filter.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags used as filter. IPs with these exact tags are listed.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the IPs exist.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getIps.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipCidrRange":{"type":"string"},"ipType":{"type":"string"},"ips":{"description":"List of retrieved IPs\n","items":{"$ref":"#/types/scaleway:loadbalancers/getIpsIp:getIpsIp"},"type":"array"},"organizationId":{"description":"The ID of the Organization the Load Balancer is associated with.\n","type":"string"},"projectId":{"description":"The ID of the Project the Load Balancer is associated with.\n","type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"zone":{"description":"The zone of the Load Balancer.\n","type":"string"}},"required":["ips","organizationId","projectId","id"],"type":"object"}},"scaleway:loadbalancers/getLoadBalancer:getLoadBalancer":{"description":"Gets information about a Load Balancer.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/concepts/#load-balancers) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-list-load-balancers).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by name\nconst byName = scaleway.loadbalancers.getLoadBalancer({\n    name: \"foobar\",\n});\n// Get info by ID\nconst byId = scaleway.loadbalancers.getLoadBalancer({\n    lbId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nby_name = scaleway.loadbalancers.get_load_balancer(name=\"foobar\")\n# Get info by ID\nby_id = scaleway.loadbalancers.get_load_balancer(lb_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    // Get info by name\n    var byName = Scaleway.Loadbalancers.GetLoadBalancer.Invoke(new()\n    {\n        Name = \"foobar\",\n    });\n\n    // Get info by ID\n    var byId = Scaleway.Loadbalancers.GetLoadBalancer.Invoke(new()\n    {\n        LbId = \"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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := loadbalancers.LookupLoadBalancer(ctx, \u0026loadbalancers.LookupLoadBalancerArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by ID\n\t\t_, err = loadbalancers.LookupLoadBalancer(ctx, \u0026loadbalancers.LookupLoadBalancerArgs{\n\t\t\tLbId: 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.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetLoadBalancerArgs;\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        // Get info by name\n        final var byName = LoadbalancersFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n        // Get info by ID\n        final var byId = LoadbalancersFunctions.getLoadBalancer(GetLoadBalancerArgs.builder()\n            .lbId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  byName:\n    fn::invoke:\n      function: scaleway:loadbalancers:getLoadBalancer\n      arguments:\n        name: foobar\n  # Get info by ID\n  byId:\n    fn::invoke:\n      function: scaleway:loadbalancers:getLoadBalancer\n      arguments:\n        lbId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLoadBalancer.\n","properties":{"lbId":{"type":"string"},"name":{"type":"string","description":"The Load Balancer name.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n"},"releaseIp":{"type":"boolean"},"zone":{"type":"string","description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancer exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLoadBalancer.\n","properties":{"assignFlexibleIp":{"type":"boolean"},"assignFlexibleIpv6":{"type":"boolean"},"description":{"type":"string"},"externalPrivateNetworks":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipAddress":{"description":"The Load Balancer public IP address.\n","type":"string"},"ipId":{"type":"string"},"ipIds":{"items":{"type":"string"},"type":"array"},"ipv6Address":{"type":"string"},"lbId":{"type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"privateIps":{"items":{"$ref":"#/types/scaleway:loadbalancers/getLoadBalancerPrivateIp:getLoadBalancerPrivateIp"},"type":"array"},"privateNetworks":{"items":{"$ref":"#/types/scaleway:loadbalancers/getLoadBalancerPrivateNetwork:getLoadBalancerPrivateNetwork"},"type":"array"},"projectId":{"type":"string"},"region":{"type":"string"},"releaseIp":{"type":"boolean"},"sslCompatibilityLevel":{"type":"string"},"tags":{"description":"The tags associated with the Load Balancer.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The Load Balancer type.\n","type":"string"},"zone":{"description":"(Defaults to provider \u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancer exists.\n","type":"string"}},"required":["assignFlexibleIp","assignFlexibleIpv6","description","externalPrivateNetworks","ipAddress","ipId","ipIds","ipv6Address","organizationId","privateIps","privateNetworks","region","sslCompatibilityLevel","tags","type","id"],"type":"object"}},"scaleway:loadbalancers/getLoadBalancers:getLoadBalancers":{"description":"Gets information about multiple Load Balancers.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/concepts/#load-balancers) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-load-balancer-list-load-balancers).\n\n","inputs":{"description":"A collection of arguments for invoking getLoadBalancers.\n","properties":{"name":{"type":"string","description":"The Load Balancer name to filter for. Load Balancers with a matching name are listed.\n"},"projectId":{"type":"string","description":"The ID of the Project the Load Balancer is associated with.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. Load Balancers with these exact tags are listed.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the Load Balancers exist.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getLoadBalancers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lbs":{"description":"List of retrieved Load Balancers\n","items":{"$ref":"#/types/scaleway:loadbalancers/getLoadBalancersLb:getLoadBalancersLb"},"type":"array"},"name":{"description":"The name of the Load Balancer.\n","type":"string"},"organizationId":{"description":"The ID of the Organization the Load Balancer is associated with.\n","type":"string"},"projectId":{"description":"The ID of the Project the Load Balancer is associated with.\n","type":"string"},"tags":{"description":"The tags associated with the Load Balancer.\n","items":{"type":"string"},"type":"array"},"zone":{"description":"The zone of the Load Balancer.\n","type":"string"}},"required":["lbs","organizationId","projectId","id"],"type":"object"}},"scaleway:loadbalancers/getRoute:getRoute":{"description":"Get information about Scaleway Load Balancer routes.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-routes/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-route).\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 ip01 = new scaleway.loadbalancers.Ip(\"ip01\", {});\nconst lb01 = new scaleway.loadbalancers.LoadBalancer(\"lb01\", {\n    ipId: ip01.id,\n    name: \"test-lb\",\n    type: \"lb-s\",\n});\nconst bkd01 = new scaleway.loadbalancers.Backend(\"bkd01\", {\n    lbId: lb01.id,\n    forwardProtocol: \"tcp\",\n    forwardPort: 80,\n    proxyProtocol: \"none\",\n});\nconst frt01 = new scaleway.loadbalancers.Frontend(\"frt01\", {\n    lbId: lb01.id,\n    backendId: bkd01.id,\n    inboundPort: 80,\n});\nconst rt01 = new scaleway.loadbalancers.Route(\"rt01\", {\n    frontendId: frt01.id,\n    backendId: bkd01.id,\n    matchSni: \"sni.scaleway.com\",\n});\nconst byID = scaleway.loadbalancers.getRouteOutput({\n    routeId: rt01.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nip01 = scaleway.loadbalancers.Ip(\"ip01\")\nlb01 = scaleway.loadbalancers.LoadBalancer(\"lb01\",\n    ip_id=ip01.id,\n    name=\"test-lb\",\n    type=\"lb-s\")\nbkd01 = scaleway.loadbalancers.Backend(\"bkd01\",\n    lb_id=lb01.id,\n    forward_protocol=\"tcp\",\n    forward_port=80,\n    proxy_protocol=\"none\")\nfrt01 = scaleway.loadbalancers.Frontend(\"frt01\",\n    lb_id=lb01.id,\n    backend_id=bkd01.id,\n    inbound_port=80)\nrt01 = scaleway.loadbalancers.Route(\"rt01\",\n    frontend_id=frt01.id,\n    backend_id=bkd01.id,\n    match_sni=\"sni.scaleway.com\")\nby_id = scaleway.loadbalancers.get_route_output(route_id=rt01.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 ip01 = new Scaleway.Loadbalancers.Ip(\"ip01\");\n\n    var lb01 = new Scaleway.Loadbalancers.LoadBalancer(\"lb01\", new()\n    {\n        IpId = ip01.Id,\n        Name = \"test-lb\",\n        Type = \"lb-s\",\n    });\n\n    var bkd01 = new Scaleway.Loadbalancers.Backend(\"bkd01\", new()\n    {\n        LbId = lb01.Id,\n        ForwardProtocol = \"tcp\",\n        ForwardPort = 80,\n        ProxyProtocol = \"none\",\n    });\n\n    var frt01 = new Scaleway.Loadbalancers.Frontend(\"frt01\", new()\n    {\n        LbId = lb01.Id,\n        BackendId = bkd01.Id,\n        InboundPort = 80,\n    });\n\n    var rt01 = new Scaleway.Loadbalancers.Route(\"rt01\", new()\n    {\n        FrontendId = frt01.Id,\n        BackendId = bkd01.Id,\n        MatchSni = \"sni.scaleway.com\",\n    });\n\n    var byID = Scaleway.Loadbalancers.GetRoute.Invoke(new()\n    {\n        RouteId = rt01.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/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tip01, err := loadbalancers.NewIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlb01, err := loadbalancers.NewLoadBalancer(ctx, \"lb01\", \u0026loadbalancers.LoadBalancerArgs{\n\t\t\tIpId: ip01.ID(),\n\t\t\tName: pulumi.String(\"test-lb\"),\n\t\t\tType: pulumi.String(\"lb-s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbkd01, err := loadbalancers.NewBackend(ctx, \"bkd01\", \u0026loadbalancers.BackendArgs{\n\t\t\tLbId:            lb01.ID(),\n\t\t\tForwardProtocol: pulumi.String(\"tcp\"),\n\t\t\tForwardPort:     pulumi.Int(80),\n\t\t\tProxyProtocol:   pulumi.String(\"none\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfrt01, err := loadbalancers.NewFrontend(ctx, \"frt01\", \u0026loadbalancers.FrontendArgs{\n\t\t\tLbId:        lb01.ID(),\n\t\t\tBackendId:   bkd01.ID(),\n\t\t\tInboundPort: pulumi.Int(80),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trt01, err := loadbalancers.NewRoute(ctx, \"rt01\", \u0026loadbalancers.RouteArgs{\n\t\t\tFrontendId: frt01.ID(),\n\t\t\tBackendId:  bkd01.ID(),\n\t\t\tMatchSni:   pulumi.String(\"sni.scaleway.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = loadbalancers.LookupRouteOutput(ctx, loadbalancers.GetRouteOutputArgs{\n\t\t\tRouteId: rt01.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.loadbalancers.Ip;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancer;\nimport com.pulumi.scaleway.loadbalancers.LoadBalancerArgs;\nimport com.pulumi.scaleway.loadbalancers.Backend;\nimport com.pulumi.scaleway.loadbalancers.BackendArgs;\nimport com.pulumi.scaleway.loadbalancers.Frontend;\nimport com.pulumi.scaleway.loadbalancers.FrontendArgs;\nimport com.pulumi.scaleway.loadbalancers.Route;\nimport com.pulumi.scaleway.loadbalancers.RouteArgs;\nimport com.pulumi.scaleway.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetRouteArgs;\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 ip01 = new Ip(\"ip01\");\n\n        var lb01 = new LoadBalancer(\"lb01\", LoadBalancerArgs.builder()\n            .ipId(ip01.id())\n            .name(\"test-lb\")\n            .type(\"lb-s\")\n            .build());\n\n        var bkd01 = new Backend(\"bkd01\", BackendArgs.builder()\n            .lbId(lb01.id())\n            .forwardProtocol(\"tcp\")\n            .forwardPort(80)\n            .proxyProtocol(\"none\")\n            .build());\n\n        var frt01 = new Frontend(\"frt01\", FrontendArgs.builder()\n            .lbId(lb01.id())\n            .backendId(bkd01.id())\n            .inboundPort(80)\n            .build());\n\n        var rt01 = new Route(\"rt01\", RouteArgs.builder()\n            .frontendId(frt01.id())\n            .backendId(bkd01.id())\n            .matchSni(\"sni.scaleway.com\")\n            .build());\n\n        final var byID = LoadbalancersFunctions.getRoute(GetRouteArgs.builder()\n            .routeId(rt01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip01:\n    type: scaleway:loadbalancers:Ip\n  lb01:\n    type: scaleway:loadbalancers:LoadBalancer\n    properties:\n      ipId: ${ip01.id}\n      name: test-lb\n      type: lb-s\n  bkd01:\n    type: scaleway:loadbalancers:Backend\n    properties:\n      lbId: ${lb01.id}\n      forwardProtocol: tcp\n      forwardPort: 80\n      proxyProtocol: none\n  frt01:\n    type: scaleway:loadbalancers:Frontend\n    properties:\n      lbId: ${lb01.id}\n      backendId: ${bkd01.id}\n      inboundPort: 80\n  rt01:\n    type: scaleway:loadbalancers:Route\n    properties:\n      frontendId: ${frt01.id}\n      backendId: ${bkd01.id}\n      matchSni: sni.scaleway.com\nvariables:\n  byID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getRoute\n      arguments:\n        routeId: ${rt01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRoute.\n","properties":{"routeId":{"type":"string","description":"The route ID.\n"}},"type":"object","required":["routeId"]},"outputs":{"description":"A collection of values returned by getRoute.\n","properties":{"backendId":{"type":"string"},"createdAt":{"type":"string"},"frontendId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"matchHostHeader":{"type":"string"},"matchPathBegin":{"type":"string"},"matchSni":{"type":"string"},"matchSubdomains":{"type":"boolean"},"routeId":{"type":"string"},"updatedAt":{"type":"string"}},"required":["backendId","createdAt","frontendId","matchHostHeader","matchPathBegin","matchSni","matchSubdomains","routeId","updatedAt","id"],"type":"object"}},"scaleway:loadbalancers/getRoutes:getRoutes":{"description":"Gets information about multiple Load Balancer routes.\n\nFor more information, see the [main documentation](https://www.scaleway.com/en/docs/load-balancer/how-to/create-manage-routes/) or [API documentation](https://www.scaleway.com/en/developers/api/load-balancer/zoned-api/#path-route).\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\n// Find routes that share the same frontend ID\nconst byFrontendID = scaleway.loadbalancers.getRoutes({\n    frontendId: frt01.id,\n});\n// Find routes by frontend ID and zone\nconst myKey = scaleway.loadbalancers.getRoutes({\n    frontendId: \"11111111-1111-1111-1111-111111111111\",\n    zone: \"fr-par-2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Find routes that share the same frontend ID\nby_frontend_id = scaleway.loadbalancers.get_routes(frontend_id=frt01[\"id\"])\n# Find routes by frontend ID and zone\nmy_key = scaleway.loadbalancers.get_routes(frontend_id=\"11111111-1111-1111-1111-111111111111\",\n    zone=\"fr-par-2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Find routes that share the same frontend ID\n    var byFrontendID = Scaleway.Loadbalancers.GetRoutes.Invoke(new()\n    {\n        FrontendId = frt01.Id,\n    });\n\n    // Find routes by frontend ID and zone\n    var myKey = Scaleway.Loadbalancers.GetRoutes.Invoke(new()\n    {\n        FrontendId = \"11111111-1111-1111-1111-111111111111\",\n        Zone = \"fr-par-2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/loadbalancers\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Find routes that share the same frontend ID\n\t\t_, err := loadbalancers.GetRoutes(ctx, \u0026loadbalancers.GetRoutesArgs{\n\t\t\tFrontendId: pulumi.StringRef(frt01.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Find routes by frontend ID and zone\n\t\t_, err = loadbalancers.GetRoutes(ctx, \u0026loadbalancers.GetRoutesArgs{\n\t\t\tFrontendId: pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\tZone:       pulumi.StringRef(\"fr-par-2\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.loadbalancers.LoadbalancersFunctions;\nimport com.pulumi.scaleway.loadbalancers.inputs.GetRoutesArgs;\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        // Find routes that share the same frontend ID\n        final var byFrontendID = LoadbalancersFunctions.getRoutes(GetRoutesArgs.builder()\n            .frontendId(frt01.id())\n            .build());\n\n        // Find routes by frontend ID and zone\n        final var myKey = LoadbalancersFunctions.getRoutes(GetRoutesArgs.builder()\n            .frontendId(\"11111111-1111-1111-1111-111111111111\")\n            .zone(\"fr-par-2\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Find routes that share the same frontend ID\n  byFrontendID:\n    fn::invoke:\n      function: scaleway:loadbalancers:getRoutes\n      arguments:\n        frontendId: ${frt01.id}\n  # Find routes by frontend ID and zone\n  myKey:\n    fn::invoke:\n      function: scaleway:loadbalancers:getRoutes\n      arguments:\n        frontendId: 11111111-1111-1111-1111-111111111111\n        zone: fr-par-2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRoutes.\n","properties":{"frontendId":{"type":"string","description":"The frontend ID (the origin of the redirection), to filter for. Routes with a matching frontend ID are listed.\n"},"projectId":{"type":"string","willReplaceOnChanges":true},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which the routes exist.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getRoutes.\n","properties":{"frontendId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"routes":{"description":"List of retrieved routes\n","items":{"$ref":"#/types/scaleway:loadbalancers/getRoutesRoute:getRoutesRoute"},"type":"array"},"zone":{"type":"string"}},"required":["organizationId","projectId","routes","id"],"type":"object"}},"scaleway:mnq/getSns:getSns":{"description":"Gets information about SNS for a Project\n\n## Examples\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// For default project\nconst main = scaleway.mnq.getSns({});\n// For specific project\nconst forProject = scaleway.mnq.getSns({\n    projectId: mainScalewayAccountProject.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# For default project\nmain = scaleway.mnq.get_sns()\n# For specific project\nfor_project = scaleway.mnq.get_sns(project_id=main_scaleway_account_project[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // For default project\n    var main = Scaleway.Mnq.GetSns.Invoke();\n\n    // For specific project\n    var forProject = Scaleway.Mnq.GetSns.Invoke(new()\n    {\n        ProjectId = mainScalewayAccountProject.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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// For default project\n\t\t_, err := mnq.LookupSns(ctx, \u0026mnq.LookupSnsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// For specific project\n\t\t_, err = mnq.LookupSns(ctx, \u0026mnq.LookupSnsArgs{\n\t\t\tProjectId: pulumi.StringRef(mainScalewayAccountProject.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.mnq.MnqFunctions;\nimport com.pulumi.scaleway.mnq.inputs.GetSnsArgs;\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        // For default project\n        final var main = MnqFunctions.getSns(GetSnsArgs.builder()\n            .build());\n\n        // For specific project\n        final var forProject = MnqFunctions.getSns(GetSnsArgs.builder()\n            .projectId(mainScalewayAccountProject.id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # For default project\n  main:\n    fn::invoke:\n      function: scaleway:mnq:getSns\n      arguments: {}\n  # For specific project\n  forProject:\n    fn::invoke:\n      function: scaleway:mnq:getSns\n      arguments:\n        projectId: ${mainScalewayAccountProject.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSns.\n","properties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which sns is enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which sns is enabled.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSns.\n","properties":{"endpoint":{"description":"The endpoint of the SNS service for this Project.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"}},"required":["endpoint","id"],"type":"object"}},"scaleway:mnq/getSqs:getSqs":{"description":"Gets information about SQS for a Project\n\n## Examples\n\n### Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// For default project\nconst main = scaleway.mnq.getSqs({});\n// For specific project\nconst forProject = scaleway.mnq.getSqs({\n    projectId: mainScalewayAccountProject.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# For default project\nmain = scaleway.mnq.get_sqs()\n# For specific project\nfor_project = scaleway.mnq.get_sqs(project_id=main_scaleway_account_project[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // For default project\n    var main = Scaleway.Mnq.GetSqs.Invoke();\n\n    // For specific project\n    var forProject = Scaleway.Mnq.GetSqs.Invoke(new()\n    {\n        ProjectId = mainScalewayAccountProject.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/mnq\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// For default project\n\t\t_, err := mnq.LookupSqs(ctx, \u0026mnq.LookupSqsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// For specific project\n\t\t_, err = mnq.LookupSqs(ctx, \u0026mnq.LookupSqsArgs{\n\t\t\tProjectId: pulumi.StringRef(mainScalewayAccountProject.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.mnq.MnqFunctions;\nimport com.pulumi.scaleway.mnq.inputs.GetSqsArgs;\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        // For default project\n        final var main = MnqFunctions.getSqs(GetSqsArgs.builder()\n            .build());\n\n        // For specific project\n        final var forProject = MnqFunctions.getSqs(GetSqsArgs.builder()\n            .projectId(mainScalewayAccountProject.id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # For default project\n  main:\n    fn::invoke:\n      function: scaleway:mnq:getSqs\n      arguments: {}\n  # For specific project\n  forProject:\n    fn::invoke:\n      function: scaleway:mnq:getSqs\n      arguments:\n        projectId: ${mainScalewayAccountProject.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSqs.\n","properties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project in which SQS is enabled.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which SQS is enabled.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSqs.\n","properties":{"endpoint":{"description":"The endpoint of the SQS service for this Project.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"}},"required":["endpoint","id"],"type":"object"}},"scaleway:mongodb/getInstance:getInstance":{"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 getInstance.\n","properties":{"instanceId":{"type":"string","description":"The MongoDB® instance ID.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceId`\" pulumi-lang-dotnet=\"`InstanceId`\" pulumi-lang-go=\"`instanceId`\" pulumi-lang-python=\"`instance_id`\" pulumi-lang-yaml=\"`instanceId`\" pulumi-lang-java=\"`instanceId`\"\u003e`instance_id`\u003c/span\u003e.\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 \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the MongoDB® Instance exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstance.\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.","type":"string"},"instanceId":{"type":"string"},"isSnapshotScheduleEnabled":{"type":"boolean"},"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"},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"integer"},"privateIps":{"items":{"$ref":"#/types/scaleway:mongodb/getInstancePrivateIp:getInstancePrivateIp"},"type":"array"},"privateNetworks":{"items":{"$ref":"#/types/scaleway:mongodb/getInstancePrivateNetwork:getInstancePrivateNetwork"},"type":"array"},"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:mongodb/getInstancePublicNetwork:getInstancePublicNetwork"},"type":"array"},"region":{"type":"string"},"settings":{"additionalProperties":{"type":"string"},"type":"object"},"snapshotId":{"type":"string"},"snapshotScheduleFrequencyHours":{"type":"integer"},"snapshotScheduleRetentionDays":{"type":"integer"},"tags":{"description":"A list of tags attached to the MongoDB® instance.\n","items":{"type":"string"},"type":"array"},"tlsCertificate":{"type":"string"},"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","isSnapshotScheduleEnabled","nodeNumber","nodeType","password","passwordWo","passwordWoVersion","privateIps","privateNetworks","publicNetworks","settings","snapshotId","snapshotScheduleFrequencyHours","snapshotScheduleRetentionDays","tags","tlsCertificate","updatedAt","userName","version","volumeSizeInGb","volumeType","id"],"type":"object"}},"scaleway:network/getGatewayNetwork:getGatewayNetwork":{"description":"Gets information about a GatewayNetwork (a connection between a Public Gateway and a Private Network).\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.network.GatewayNetwork(\"main\", {\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n    dhcpId: dhcp01.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n});\nconst byId = scaleway.network.getGatewayNetworkOutput({\n    gatewayNetworkId: main.id,\n});\nconst byGatewayAndPn = scaleway.network.getGatewayNetwork({\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=pg01[\"id\"],\n    private_network_id=pn01[\"id\"],\n    dhcp_id=dhcp01[\"id\"],\n    cleanup_dhcp=True,\n    enable_masquerade=True)\nby_id = scaleway.network.get_gateway_network_output(gateway_network_id=main.id)\nby_gateway_and_pn = scaleway.network.get_gateway_network(gateway_id=pg01[\"id\"],\n    private_network_id=pn01[\"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.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.Id,\n        DhcpId = dhcp01.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    });\n\n    var byId = Scaleway.Network.GetGatewayNetwork.Invoke(new()\n    {\n        GatewayNetworkId = main.Id,\n    });\n\n    var byGatewayAndPn = Scaleway.Network.GetGatewayNetwork.Invoke(new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        pulumi.Any(pg01.Id),\n\t\t\tPrivateNetworkId: pulumi.Any(pn01.Id),\n\t\t\tDhcpId:           pulumi.Any(dhcp01.Id),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupGatewayNetworkOutput(ctx, network.GetGatewayNetworkOutputArgs{\n\t\t\tGatewayNetworkId: main.ID(),\n\t\t}, nil)\n\t\t_, err = network.LookupGatewayNetwork(ctx, \u0026network.LookupGatewayNetworkArgs{\n\t\t\tGatewayId:        pulumi.StringRef(pg01.Id),\n\t\t\tPrivateNetworkId: pulumi.StringRef(pn01.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetGatewayNetworkArgs;\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 GatewayNetwork(\"main\", GatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .dhcpId(dhcp01.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build());\n\n        final var byId = NetworkFunctions.getGatewayNetwork(GetGatewayNetworkArgs.builder()\n            .gatewayNetworkId(main.id())\n            .build());\n\n        final var byGatewayAndPn = NetworkFunctions.getGatewayNetwork(GetGatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:GatewayNetwork\n    properties:\n      gatewayId: ${pg01.id}\n      privateNetworkId: ${pn01.id}\n      dhcpId: ${dhcp01.id}\n      cleanupDhcp: true\n      enableMasquerade: true\nvariables:\n  byId:\n    fn::invoke:\n      function: scaleway:network:getGatewayNetwork\n      arguments:\n        gatewayNetworkId: ${main.id}\n  byGatewayAndPn:\n    fn::invoke:\n      function: scaleway:network:getGatewayNetwork\n      arguments:\n        gatewayId: ${pg01.id}\n        privateNetworkId: ${pn01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGatewayNetwork.\n","properties":{"dhcpId":{"type":"string"},"enableMasquerade":{"type":"boolean"},"gatewayId":{"type":"string"},"gatewayNetworkId":{"type":"string","description":"ID of the GatewayNetwork.\n"},"privateNetworkId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGatewayNetwork.\n","properties":{"cleanupDhcp":{"type":"boolean"},"createdAt":{"type":"string"},"dhcpId":{"type":"string"},"enableDhcp":{"type":"boolean"},"enableMasquerade":{"type":"boolean"},"gatewayId":{"type":"string"},"gatewayNetworkId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipamConfigs":{"items":{"$ref":"#/types/scaleway:network/getGatewayNetworkIpamConfig:getGatewayNetworkIpamConfig"},"type":"array"},"macAddress":{"type":"string"},"privateIps":{"items":{"$ref":"#/types/scaleway:network/getGatewayNetworkPrivateIp:getGatewayNetworkPrivateIp"},"type":"array"},"privateNetworkId":{"type":"string"},"staticAddress":{"type":"string"},"status":{"type":"string"},"updatedAt":{"type":"string"},"zone":{"type":"string"}},"required":["cleanupDhcp","createdAt","enableDhcp","ipamConfigs","macAddress","privateIps","staticAddress","status","updatedAt","zone","id"],"type":"object"}},"scaleway:network/getPrivateNetwork:getPrivateNetwork":{"description":"Gets information about a Private Network.\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\n// Get info by name\nconst myName = scaleway.network.getPrivateNetwork({\n    name: \"foobar\",\n});\n// Get info by name and VPC ID\nconst myNameAndVpcId = scaleway.network.getPrivateNetwork({\n    name: \"foobar\",\n    vpcId: \"11111111-1111-1111-1111-111111111111\",\n});\n// Get info by name in a specific region\nconst myNameAndRegion = scaleway.network.getPrivateNetwork({\n    name: \"foobar\",\n    region: \"nl-ams\",\n});\n// Get info by Private Network ID\nconst myId = scaleway.network.getPrivateNetwork({\n    privateNetworkId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nmy_name = scaleway.network.get_private_network(name=\"foobar\")\n# Get info by name and VPC ID\nmy_name_and_vpc_id = scaleway.network.get_private_network(name=\"foobar\",\n    vpc_id=\"11111111-1111-1111-1111-111111111111\")\n# Get info by name in a specific region\nmy_name_and_region = scaleway.network.get_private_network(name=\"foobar\",\n    region=\"nl-ams\")\n# Get info by Private Network ID\nmy_id = scaleway.network.get_private_network(private_network_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    // Get info by name\n    var myName = Scaleway.Network.GetPrivateNetwork.Invoke(new()\n    {\n        Name = \"foobar\",\n    });\n\n    // Get info by name and VPC ID\n    var myNameAndVpcId = Scaleway.Network.GetPrivateNetwork.Invoke(new()\n    {\n        Name = \"foobar\",\n        VpcId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    // Get info by name in a specific region\n    var myNameAndRegion = Scaleway.Network.GetPrivateNetwork.Invoke(new()\n    {\n        Name = \"foobar\",\n        Region = \"nl-ams\",\n    });\n\n    // Get info by Private Network ID\n    var myId = Scaleway.Network.GetPrivateNetwork.Invoke(new()\n    {\n        PrivateNetworkId = \"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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := network.LookupPrivateNetwork(ctx, \u0026network.LookupPrivateNetworkArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by name and VPC ID\n\t\t_, err = network.LookupPrivateNetwork(ctx, \u0026network.LookupPrivateNetworkArgs{\n\t\t\tName:  pulumi.StringRef(\"foobar\"),\n\t\t\tVpcId: 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\t// Get info by name in a specific region\n\t\t_, err = network.LookupPrivateNetwork(ctx, \u0026network.LookupPrivateNetworkArgs{\n\t\t\tName:   pulumi.StringRef(\"foobar\"),\n\t\t\tRegion: pulumi.StringRef(\"nl-ams\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by Private Network ID\n\t\t_, err = network.LookupPrivateNetwork(ctx, \u0026network.LookupPrivateNetworkArgs{\n\t\t\tPrivateNetworkId: 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.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPrivateNetworkArgs;\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        // Get info by name\n        final var myName = NetworkFunctions.getPrivateNetwork(GetPrivateNetworkArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n        // Get info by name and VPC ID\n        final var myNameAndVpcId = NetworkFunctions.getPrivateNetwork(GetPrivateNetworkArgs.builder()\n            .name(\"foobar\")\n            .vpcId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        // Get info by name in a specific region\n        final var myNameAndRegion = NetworkFunctions.getPrivateNetwork(GetPrivateNetworkArgs.builder()\n            .name(\"foobar\")\n            .region(\"nl-ams\")\n            .build());\n\n        // Get info by Private Network ID\n        final var myId = NetworkFunctions.getPrivateNetwork(GetPrivateNetworkArgs.builder()\n            .privateNetworkId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  myName:\n    fn::invoke:\n      function: scaleway:network:getPrivateNetwork\n      arguments:\n        name: foobar\n  # Get info by name and VPC ID\n  myNameAndVpcId:\n    fn::invoke:\n      function: scaleway:network:getPrivateNetwork\n      arguments:\n        name: foobar\n        vpcId: 11111111-1111-1111-1111-111111111111\n  # Get info by name in a specific region\n  myNameAndRegion:\n    fn::invoke:\n      function: scaleway:network:getPrivateNetwork\n      arguments:\n        name: foobar\n        region: nl-ams\n  # Get info by Private Network ID\n  myId:\n    fn::invoke:\n      function: scaleway:network:getPrivateNetwork\n      arguments:\n        privateNetworkId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivateNetwork.\n","properties":{"name":{"type":"string","description":"Name of the Private Network. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e.\n"},"privateNetworkId":{"type":"string","description":"ID of the Private Network. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the Project the Private Network is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Private Network exists.\n"},"vpcId":{"type":"string","description":"ID of the VPC the Private Network is in. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`privateNetworkId`\" pulumi-lang-dotnet=\"`PrivateNetworkId`\" pulumi-lang-go=\"`privateNetworkId`\" pulumi-lang-python=\"`private_network_id`\" pulumi-lang-yaml=\"`privateNetworkId`\" pulumi-lang-java=\"`privateNetworkId`\"\u003e`private_network_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPrivateNetwork.\n","properties":{"createdAt":{"type":"string"},"enableDefaultRoutePropagation":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipv4Subnets":{"description":"The IPv4 subnet associated with the Private Network.\n","items":{"$ref":"#/types/scaleway:network/getPrivateNetworkIpv4Subnet:getPrivateNetworkIpv4Subnet"},"type":"array"},"ipv6Subnets":{"description":"The IPv6 subnets associated with the Private Network.\n","items":{"$ref":"#/types/scaleway:network/getPrivateNetworkIpv6Subnet:getPrivateNetworkIpv6Subnet"},"type":"array"},"isRegional":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"privateNetworkId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"vpcId":{"type":"string"},"zone":{"type":"string"}},"required":["createdAt","enableDefaultRoutePropagation","ipv4Subnets","ipv6Subnets","isRegional","organizationId","tags","updatedAt","zone","id"],"type":"object"}},"scaleway:network/getPublicGateway:getPublicGateway":{"description":"Gets information about a Public Gateway.\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.network.PublicGateway(\"main\", {\n    name: \"demo\",\n    type: \"VPC-GW-S\",\n    zone: \"nl-ams-1\",\n});\nconst pgTestByName = scaleway.network.getPublicGatewayOutput({\n    name: main.name,\n    zone: \"nl-ams-1\",\n});\nconst pgTestById = scaleway.network.getPublicGatewayOutput({\n    publicGatewayId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGateway(\"main\",\n    name=\"demo\",\n    type=\"VPC-GW-S\",\n    zone=\"nl-ams-1\")\npg_test_by_name = scaleway.network.get_public_gateway_output(name=main.name,\n    zone=\"nl-ams-1\")\npg_test_by_id = scaleway.network.get_public_gateway_output(public_gateway_id=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.Network.PublicGateway(\"main\", new()\n    {\n        Name = \"demo\",\n        Type = \"VPC-GW-S\",\n        Zone = \"nl-ams-1\",\n    });\n\n    var pgTestByName = Scaleway.Network.GetPublicGateway.Invoke(new()\n    {\n        Name = main.Name,\n        Zone = \"nl-ams-1\",\n    });\n\n    var pgTestById = Scaleway.Network.GetPublicGateway.Invoke(new()\n    {\n        PublicGatewayId = 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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPublicGateway(ctx, \"main\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"demo\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tZone: pulumi.String(\"nl-ams-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupPublicGatewayOutput(ctx, network.GetPublicGatewayOutputArgs{\n\t\t\tName: main.Name,\n\t\t\tZone: pulumi.String(\"nl-ams-1\"),\n\t\t}, nil)\n\t\t_ = network.LookupPublicGatewayOutput(ctx, network.GetPublicGatewayOutputArgs{\n\t\t\tPublicGatewayId: 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.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayArgs;\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 PublicGateway(\"main\", PublicGatewayArgs.builder()\n            .name(\"demo\")\n            .type(\"VPC-GW-S\")\n            .zone(\"nl-ams-1\")\n            .build());\n\n        final var pgTestByName = NetworkFunctions.getPublicGateway(GetPublicGatewayArgs.builder()\n            .name(main.name())\n            .zone(\"nl-ams-1\")\n            .build());\n\n        final var pgTestById = NetworkFunctions.getPublicGateway(GetPublicGatewayArgs.builder()\n            .publicGatewayId(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: demo\n      type: VPC-GW-S\n      zone: nl-ams-1\nvariables:\n  pgTestByName:\n    fn::invoke:\n      function: scaleway:network:getPublicGateway\n      arguments:\n        name: ${main.name}\n        zone: nl-ams-1\n  pgTestById:\n    fn::invoke:\n      function: scaleway:network:getPublicGateway\n      arguments:\n        publicGatewayId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPublicGateway.\n","properties":{"name":{"type":"string","description":"Exact name of the Public Gateway.\n"},"projectId":{"type":"string","description":"The ID of the Project the Public Gateway is associated with.\n"},"publicGatewayId":{"type":"string"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The Public Gateway's zone.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPublicGateway.\n","properties":{"allowedIpRanges":{"items":{"type":"string"},"type":"array"},"bandwidth":{"type":"integer"},"bastionEnabled":{"type":"boolean"},"bastionPort":{"type":"integer"},"createdAt":{"type":"string"},"enableSmtp":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipId":{"type":"string"},"moveToIpam":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"publicGatewayId":{"type":"string"},"refreshSshKeys":{"type":"string"},"status":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"},"updatedAt":{"type":"string"},"upstreamDnsServers":{"items":{"type":"string"},"type":"array"},"zone":{"type":"string"}},"required":["allowedIpRanges","bandwidth","bastionEnabled","bastionPort","createdAt","enableSmtp","ipId","moveToIpam","organizationId","refreshSshKeys","status","tags","type","updatedAt","upstreamDnsServers","id"],"type":"object"}},"scaleway:network/getPublicGatewayDhcp:getPublicGatewayDhcp":{"description":"\u003e **Important:**  The data source \u003cspan pulumi-lang-nodejs=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-dotnet=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-go=\"`network.PublicGatewayDhcp`\" pulumi-lang-python=\"`network.PublicGatewayDhcp`\" pulumi-lang-yaml=\"`scaleway.network.PublicGatewayDhcp`\" pulumi-lang-java=\"`scaleway.network.PublicGatewayDhcp`\"\u003e`scaleway.network.PublicGatewayDhcp`\u003c/span\u003e has been deprecated and will no longer be supported.\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.\nFor more information, please refer to the dedicated guide.\n\nGets information about a Public Gateway DHCP configuration.\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.network.PublicGatewayDhcp(\"main\", {subnet: \"192.168.0.0/24\"});\nconst dhcpById = scaleway.network.getPublicGatewayDhcpOutput({\n    dhcpId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGatewayDhcp(\"main\", subnet=\"192.168.0.0/24\")\ndhcp_by_id = scaleway.network.get_public_gateway_dhcp_output(dhcp_id=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.Network.PublicGatewayDhcp(\"main\", new()\n    {\n        Subnet = \"192.168.0.0/24\",\n    });\n\n    var dhcpById = Scaleway.Network.GetPublicGatewayDhcp.Invoke(new()\n    {\n        DhcpId = 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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPublicGatewayDhcp(ctx, \"main\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupPublicGatewayDhcpOutput(ctx, network.GetPublicGatewayDhcpOutputArgs{\n\t\t\tDhcpId: 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.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayDhcpArgs;\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 PublicGatewayDhcp(\"main\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.0.0/24\")\n            .build());\n\n        final var dhcpById = NetworkFunctions.getPublicGatewayDhcp(GetPublicGatewayDhcpArgs.builder()\n            .dhcpId(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGatewayDhcp\n    properties:\n      subnet: 192.168.0.0/24\nvariables:\n  dhcpById:\n    fn::invoke:\n      function: scaleway:network:getPublicGatewayDhcp\n      arguments:\n        dhcpId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPublicGatewayDhcp.\n","properties":{"dhcpId":{"type":"string"}},"type":"object","required":["dhcpId"]},"outputs":{"description":"A collection of values returned by getPublicGatewayDhcp.\n","properties":{"address":{"type":"string"},"createdAt":{"type":"string"},"dhcpId":{"type":"string"},"dnsLocalName":{"type":"string"},"dnsSearches":{"items":{"type":"string"},"type":"array"},"dnsServersOverrides":{"items":{"type":"string"},"type":"array"},"enableDynamic":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"poolHigh":{"type":"string"},"poolLow":{"type":"string"},"projectId":{"type":"string"},"pushDefaultRoute":{"type":"boolean"},"pushDnsServer":{"type":"boolean"},"rebindTimer":{"type":"integer"},"renewTimer":{"type":"integer"},"subnet":{"type":"string"},"updatedAt":{"type":"string"},"validLifetime":{"type":"integer"},"zone":{"type":"string"}},"required":["address","createdAt","dhcpId","dnsLocalName","dnsSearches","dnsServersOverrides","enableDynamic","organizationId","poolHigh","poolLow","projectId","pushDefaultRoute","pushDnsServer","rebindTimer","renewTimer","subnet","updatedAt","validLifetime","zone","id"],"type":"object"}},"scaleway:network/getPublicGatewayDhcpReservation:getPublicGatewayDhcpReservation":{"description":"\u003e **Important:**  The data source \u003cspan pulumi-lang-nodejs=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-dotnet=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-go=\"`network.PublicGatewayDhcpReservation`\" pulumi-lang-python=\"`network.PublicGatewayDhcpReservation`\" pulumi-lang-yaml=\"`scaleway.network.PublicGatewayDhcpReservation`\" pulumi-lang-java=\"`scaleway.network.PublicGatewayDhcpReservation`\"\u003e`scaleway.network.PublicGatewayDhcpReservation`\u003c/span\u003e has been deprecated and will no longer be supported.\nIn 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed.\nYou can use IPAM to manage your IPs. For more information, please refer to the dedicated guide.\n\nGets information about a DHCP entry. For further information, please see the\n[API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-dhcp-entries-list-dhcp-entries).\n\n## Example Dynamic\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.network.PrivateNetwork(\"main\", {});\nconst mainServer = new scaleway.instance.Server(\"main\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    zone: \"fr-par-1\",\n});\nconst mainPrivateNic = new scaleway.instance.PrivateNic(\"main\", {\n    serverId: mainServer.id,\n    privateNetworkId: main.id,\n});\nconst mainPublicGatewayIp = new scaleway.network.PublicGatewayIp(\"main\", {});\nconst mainPublicGatewayDhcp = new scaleway.network.PublicGatewayDhcp(\"main\", {subnet: \"192.168.1.0/24\"});\nconst mainPublicGateway = new scaleway.network.PublicGateway(\"main\", {\n    name: \"foobar\",\n    type: \"VPC-GW-S\",\n    ipId: mainPublicGatewayIp.id,\n});\nconst mainGatewayNetwork = new scaleway.network.GatewayNetwork(\"main\", {\n    gatewayId: mainPublicGateway.id,\n    privateNetworkId: main.id,\n    dhcpId: mainPublicGatewayDhcp.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n});\n//# Retrieve the dynamic entries generated by mac address \u0026 gateway network\nconst byMacAddressAndGwNetwork = scaleway.network.getPublicGatewayDhcpReservationOutput({\n    macAddress: mainPrivateNic.macAddress,\n    gatewayNetworkId: mainGatewayNetwork.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PrivateNetwork(\"main\")\nmain_server = scaleway.instance.Server(\"main\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    zone=\"fr-par-1\")\nmain_private_nic = scaleway.instance.PrivateNic(\"main\",\n    server_id=main_server.id,\n    private_network_id=main.id)\nmain_public_gateway_ip = scaleway.network.PublicGatewayIp(\"main\")\nmain_public_gateway_dhcp = scaleway.network.PublicGatewayDhcp(\"main\", subnet=\"192.168.1.0/24\")\nmain_public_gateway = scaleway.network.PublicGateway(\"main\",\n    name=\"foobar\",\n    type=\"VPC-GW-S\",\n    ip_id=main_public_gateway_ip.id)\nmain_gateway_network = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=main_public_gateway.id,\n    private_network_id=main.id,\n    dhcp_id=main_public_gateway_dhcp.id,\n    cleanup_dhcp=True,\n    enable_masquerade=True)\n## Retrieve the dynamic entries generated by mac address \u0026 gateway network\nby_mac_address_and_gw_network = scaleway.network.get_public_gateway_dhcp_reservation_output(mac_address=main_private_nic.mac_address,\n    gateway_network_id=main_gateway_network.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.Network.PrivateNetwork(\"main\");\n\n    var mainServer = new Scaleway.Instance.Server(\"main\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        Zone = \"fr-par-1\",\n    });\n\n    var mainPrivateNic = new Scaleway.Instance.PrivateNic(\"main\", new()\n    {\n        ServerId = mainServer.Id,\n        PrivateNetworkId = main.Id,\n    });\n\n    var mainPublicGatewayIp = new Scaleway.Network.PublicGatewayIp(\"main\");\n\n    var mainPublicGatewayDhcp = new Scaleway.Network.PublicGatewayDhcp(\"main\", new()\n    {\n        Subnet = \"192.168.1.0/24\",\n    });\n\n    var mainPublicGateway = new Scaleway.Network.PublicGateway(\"main\", new()\n    {\n        Name = \"foobar\",\n        Type = \"VPC-GW-S\",\n        IpId = mainPublicGatewayIp.Id,\n    });\n\n    var mainGatewayNetwork = new Scaleway.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = mainPublicGateway.Id,\n        PrivateNetworkId = main.Id,\n        DhcpId = mainPublicGatewayDhcp.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    });\n\n    //# Retrieve the dynamic entries generated by mac address \u0026 gateway network\n    var byMacAddressAndGwNetwork = Scaleway.Network.GetPublicGatewayDhcpReservation.Invoke(new()\n    {\n        MacAddress = mainPrivateNic.MacAddress,\n        GatewayNetworkId = mainGatewayNetwork.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPrivateNetwork(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainServer, err := instance.NewServer(ctx, \"main\", \u0026instance.ServerArgs{\n\t\t\tImage: pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:  pulumi.String(\"DEV1-S\"),\n\t\t\tZone:  pulumi.String(\"fr-par-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPrivateNic, err := instance.NewPrivateNic(ctx, \"main\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         mainServer.ID(),\n\t\t\tPrivateNetworkId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayIp, err := network.NewPublicGatewayIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayDhcp, err := network.NewPublicGatewayDhcp(ctx, \"main\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGateway, err := network.NewPublicGateway(ctx, \"main\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: mainPublicGatewayIp.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainGatewayNetwork, err := network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        mainPublicGateway.ID(),\n\t\t\tPrivateNetworkId: main.ID(),\n\t\t\tDhcpId:           mainPublicGatewayDhcp.ID(),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// # Retrieve the dynamic entries generated by mac address \u0026 gateway network\n\t\t_ = network.LookupPublicGatewayDhcpReservationOutput(ctx, network.GetPublicGatewayDhcpReservationOutputArgs{\n\t\t\tMacAddress:       mainPrivateNic.MacAddress,\n\t\t\tGatewayNetworkId: mainGatewayNetwork.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.network.PrivateNetwork;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayDhcpReservationArgs;\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 PrivateNetwork(\"main\");\n\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .zone(\"fr-par-1\")\n            .build());\n\n        var mainPrivateNic = new PrivateNic(\"mainPrivateNic\", PrivateNicArgs.builder()\n            .serverId(mainServer.id())\n            .privateNetworkId(main.id())\n            .build());\n\n        var mainPublicGatewayIp = new PublicGatewayIp(\"mainPublicGatewayIp\");\n\n        var mainPublicGatewayDhcp = new PublicGatewayDhcp(\"mainPublicGatewayDhcp\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.1.0/24\")\n            .build());\n\n        var mainPublicGateway = new PublicGateway(\"mainPublicGateway\", PublicGatewayArgs.builder()\n            .name(\"foobar\")\n            .type(\"VPC-GW-S\")\n            .ipId(mainPublicGatewayIp.id())\n            .build());\n\n        var mainGatewayNetwork = new GatewayNetwork(\"mainGatewayNetwork\", GatewayNetworkArgs.builder()\n            .gatewayId(mainPublicGateway.id())\n            .privateNetworkId(main.id())\n            .dhcpId(mainPublicGatewayDhcp.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build());\n\n        //# Retrieve the dynamic entries generated by mac address \u0026 gateway network\n        final var byMacAddressAndGwNetwork = NetworkFunctions.getPublicGatewayDhcpReservation(GetPublicGatewayDhcpReservationArgs.builder()\n            .macAddress(mainPrivateNic.macAddress())\n            .gatewayNetworkId(mainGatewayNetwork.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PrivateNetwork\n  mainServer:\n    type: scaleway:instance:Server\n    name: main\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      zone: fr-par-1\n  mainPrivateNic:\n    type: scaleway:instance:PrivateNic\n    name: main\n    properties:\n      serverId: ${mainServer.id}\n      privateNetworkId: ${main.id}\n  mainPublicGatewayIp:\n    type: scaleway:network:PublicGatewayIp\n    name: main\n  mainPublicGatewayDhcp:\n    type: scaleway:network:PublicGatewayDhcp\n    name: main\n    properties:\n      subnet: 192.168.1.0/24\n  mainPublicGateway:\n    type: scaleway:network:PublicGateway\n    name: main\n    properties:\n      name: foobar\n      type: VPC-GW-S\n      ipId: ${mainPublicGatewayIp.id}\n  mainGatewayNetwork:\n    type: scaleway:network:GatewayNetwork\n    name: main\n    properties:\n      gatewayId: ${mainPublicGateway.id}\n      privateNetworkId: ${main.id}\n      dhcpId: ${mainPublicGatewayDhcp.id}\n      cleanupDhcp: true\n      enableMasquerade: true\nvariables:\n  ## Retrieve the dynamic entries generated by mac address \u0026 gateway network\n  byMacAddressAndGwNetwork:\n    fn::invoke:\n      function: scaleway:network:getPublicGatewayDhcpReservation\n      arguments:\n        macAddress: ${mainPrivateNic.macAddress}\n        gatewayNetworkId: ${mainGatewayNetwork.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example Static and PAT Rule\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.network.PrivateNetwork(\"main\", {});\nconst mainSecurityGroup = new scaleway.instance.SecurityGroup(\"main\", {\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n    inboundRules: [{\n        action: \"accept\",\n        port: 22,\n    }],\n});\nconst mainServer = new scaleway.instance.Server(\"main\", {\n    image: \"ubuntu_jammy\",\n    type: \"DEV1-S\",\n    zone: \"fr-par-1\",\n    securityGroupId: mainSecurityGroup.id,\n});\nconst mainPrivateNic = new scaleway.instance.PrivateNic(\"main\", {\n    serverId: mainServer.id,\n    privateNetworkId: main.id,\n});\nconst mainPublicGatewayIp = new scaleway.network.PublicGatewayIp(\"main\", {});\nconst mainPublicGatewayDhcp = new scaleway.network.PublicGatewayDhcp(\"main\", {subnet: \"192.168.1.0/24\"});\nconst mainPublicGateway = new scaleway.network.PublicGateway(\"main\", {\n    name: \"foobar\",\n    type: \"VPC-GW-S\",\n    ipId: mainPublicGatewayIp.id,\n});\nconst mainGatewayNetwork = new scaleway.network.GatewayNetwork(\"main\", {\n    gatewayId: mainPublicGateway.id,\n    privateNetworkId: main.id,\n    dhcpId: mainPublicGatewayDhcp.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n});\nconst mainPublicGatewayDhcpReservation = new scaleway.network.PublicGatewayDhcpReservation(\"main\", {\n    gatewayNetworkId: mainGatewayNetwork.id,\n    macAddress: mainPrivateNic.macAddress,\n    ipAddress: \"192.168.1.4\",\n});\n//## VPC PAT RULE\nconst mainPublicGatewayPatRule = new scaleway.network.PublicGatewayPatRule(\"main\", {\n    gatewayId: mainPublicGateway.id,\n    privateIp: mainPublicGatewayDhcpReservation.ipAddress,\n    privatePort: 22,\n    publicPort: 2222,\n    protocol: \"tcp\",\n});\nconst byId = scaleway.network.getPublicGatewayDhcpReservationOutput({\n    reservationId: mainPublicGatewayDhcpReservation.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PrivateNetwork(\"main\")\nmain_security_group = scaleway.instance.SecurityGroup(\"main\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\",\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"port\": 22,\n    }])\nmain_server = scaleway.instance.Server(\"main\",\n    image=\"ubuntu_jammy\",\n    type=\"DEV1-S\",\n    zone=\"fr-par-1\",\n    security_group_id=main_security_group.id)\nmain_private_nic = scaleway.instance.PrivateNic(\"main\",\n    server_id=main_server.id,\n    private_network_id=main.id)\nmain_public_gateway_ip = scaleway.network.PublicGatewayIp(\"main\")\nmain_public_gateway_dhcp = scaleway.network.PublicGatewayDhcp(\"main\", subnet=\"192.168.1.0/24\")\nmain_public_gateway = scaleway.network.PublicGateway(\"main\",\n    name=\"foobar\",\n    type=\"VPC-GW-S\",\n    ip_id=main_public_gateway_ip.id)\nmain_gateway_network = scaleway.network.GatewayNetwork(\"main\",\n    gateway_id=main_public_gateway.id,\n    private_network_id=main.id,\n    dhcp_id=main_public_gateway_dhcp.id,\n    cleanup_dhcp=True,\n    enable_masquerade=True)\nmain_public_gateway_dhcp_reservation = scaleway.network.PublicGatewayDhcpReservation(\"main\",\n    gateway_network_id=main_gateway_network.id,\n    mac_address=main_private_nic.mac_address,\n    ip_address=\"192.168.1.4\")\n### VPC PAT RULE\nmain_public_gateway_pat_rule = scaleway.network.PublicGatewayPatRule(\"main\",\n    gateway_id=main_public_gateway.id,\n    private_ip=main_public_gateway_dhcp_reservation.ip_address,\n    private_port=22,\n    public_port=2222,\n    protocol=\"tcp\")\nby_id = scaleway.network.get_public_gateway_dhcp_reservation_output(reservation_id=main_public_gateway_dhcp_reservation.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.Network.PrivateNetwork(\"main\");\n\n    var mainSecurityGroup = new Scaleway.Instance.SecurityGroup(\"main\", new()\n    {\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n        InboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 22,\n            },\n        },\n    });\n\n    var mainServer = new Scaleway.Instance.Server(\"main\", new()\n    {\n        Image = \"ubuntu_jammy\",\n        Type = \"DEV1-S\",\n        Zone = \"fr-par-1\",\n        SecurityGroupId = mainSecurityGroup.Id,\n    });\n\n    var mainPrivateNic = new Scaleway.Instance.PrivateNic(\"main\", new()\n    {\n        ServerId = mainServer.Id,\n        PrivateNetworkId = main.Id,\n    });\n\n    var mainPublicGatewayIp = new Scaleway.Network.PublicGatewayIp(\"main\");\n\n    var mainPublicGatewayDhcp = new Scaleway.Network.PublicGatewayDhcp(\"main\", new()\n    {\n        Subnet = \"192.168.1.0/24\",\n    });\n\n    var mainPublicGateway = new Scaleway.Network.PublicGateway(\"main\", new()\n    {\n        Name = \"foobar\",\n        Type = \"VPC-GW-S\",\n        IpId = mainPublicGatewayIp.Id,\n    });\n\n    var mainGatewayNetwork = new Scaleway.Network.GatewayNetwork(\"main\", new()\n    {\n        GatewayId = mainPublicGateway.Id,\n        PrivateNetworkId = main.Id,\n        DhcpId = mainPublicGatewayDhcp.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    });\n\n    var mainPublicGatewayDhcpReservation = new Scaleway.Network.PublicGatewayDhcpReservation(\"main\", new()\n    {\n        GatewayNetworkId = mainGatewayNetwork.Id,\n        MacAddress = mainPrivateNic.MacAddress,\n        IpAddress = \"192.168.1.4\",\n    });\n\n    //## VPC PAT RULE\n    var mainPublicGatewayPatRule = new Scaleway.Network.PublicGatewayPatRule(\"main\", new()\n    {\n        GatewayId = mainPublicGateway.Id,\n        PrivateIp = mainPublicGatewayDhcpReservation.IpAddress,\n        PrivatePort = 22,\n        PublicPort = 2222,\n        Protocol = \"tcp\",\n    });\n\n    var byId = Scaleway.Network.GetPublicGatewayDhcpReservation.Invoke(new()\n    {\n        ReservationId = mainPublicGatewayDhcpReservation.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPrivateNetwork(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainSecurityGroup, err := instance.NewSecurityGroup(ctx, \"main\", \u0026instance.SecurityGroupArgs{\n\t\t\tInboundDefaultPolicy:  pulumi.String(\"drop\"),\n\t\t\tOutboundDefaultPolicy: pulumi.String(\"accept\"),\n\t\t\tInboundRules: instance.SecurityGroupInboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction: pulumi.String(\"accept\"),\n\t\t\t\t\tPort:   pulumi.Int(22),\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\tmainServer, err := instance.NewServer(ctx, \"main\", \u0026instance.ServerArgs{\n\t\t\tImage:           pulumi.String(\"ubuntu_jammy\"),\n\t\t\tType:            pulumi.String(\"DEV1-S\"),\n\t\t\tZone:            pulumi.String(\"fr-par-1\"),\n\t\t\tSecurityGroupId: mainSecurityGroup.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPrivateNic, err := instance.NewPrivateNic(ctx, \"main\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         mainServer.ID(),\n\t\t\tPrivateNetworkId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayIp, err := network.NewPublicGatewayIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayDhcp, err := network.NewPublicGatewayDhcp(ctx, \"main\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGateway, err := network.NewPublicGateway(ctx, \"main\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"foobar\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: mainPublicGatewayIp.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainGatewayNetwork, err := network.NewGatewayNetwork(ctx, \"main\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        mainPublicGateway.ID(),\n\t\t\tPrivateNetworkId: main.ID(),\n\t\t\tDhcpId:           mainPublicGatewayDhcp.ID(),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainPublicGatewayDhcpReservation, err := network.NewPublicGatewayDhcpReservation(ctx, \"main\", \u0026network.PublicGatewayDhcpReservationArgs{\n\t\t\tGatewayNetworkId: mainGatewayNetwork.ID(),\n\t\t\tMacAddress:       mainPrivateNic.MacAddress,\n\t\t\tIpAddress:        pulumi.String(\"192.168.1.4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ## VPC PAT RULE\n\t\t_, err = network.NewPublicGatewayPatRule(ctx, \"main\", \u0026network.PublicGatewayPatRuleArgs{\n\t\t\tGatewayId:   mainPublicGateway.ID(),\n\t\t\tPrivateIp:   mainPublicGatewayDhcpReservation.IpAddress,\n\t\t\tPrivatePort: pulumi.Int(22),\n\t\t\tPublicPort:  pulumi.Int(2222),\n\t\t\tProtocol:    pulumi.String(\"tcp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupPublicGatewayDhcpReservationOutput(ctx, network.GetPublicGatewayDhcpReservationOutputArgs{\n\t\t\tReservationId: mainPublicGatewayDhcpReservation.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.network.PrivateNetwork;\nimport com.pulumi.scaleway.instance.SecurityGroup;\nimport com.pulumi.scaleway.instance.SecurityGroupArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupInboundRuleArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservation;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservationArgs;\nimport com.pulumi.scaleway.network.PublicGatewayPatRule;\nimport com.pulumi.scaleway.network.PublicGatewayPatRuleArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayDhcpReservationArgs;\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 PrivateNetwork(\"main\");\n\n        var mainSecurityGroup = new SecurityGroup(\"mainSecurityGroup\", SecurityGroupArgs.builder()\n            .inboundDefaultPolicy(\"drop\")\n            .outboundDefaultPolicy(\"accept\")\n            .inboundRules(SecurityGroupInboundRuleArgs.builder()\n                .action(\"accept\")\n                .port(22)\n                .build())\n            .build());\n\n        var mainServer = new Server(\"mainServer\", ServerArgs.builder()\n            .image(\"ubuntu_jammy\")\n            .type(\"DEV1-S\")\n            .zone(\"fr-par-1\")\n            .securityGroupId(mainSecurityGroup.id())\n            .build());\n\n        var mainPrivateNic = new PrivateNic(\"mainPrivateNic\", PrivateNicArgs.builder()\n            .serverId(mainServer.id())\n            .privateNetworkId(main.id())\n            .build());\n\n        var mainPublicGatewayIp = new PublicGatewayIp(\"mainPublicGatewayIp\");\n\n        var mainPublicGatewayDhcp = new PublicGatewayDhcp(\"mainPublicGatewayDhcp\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.1.0/24\")\n            .build());\n\n        var mainPublicGateway = new PublicGateway(\"mainPublicGateway\", PublicGatewayArgs.builder()\n            .name(\"foobar\")\n            .type(\"VPC-GW-S\")\n            .ipId(mainPublicGatewayIp.id())\n            .build());\n\n        var mainGatewayNetwork = new GatewayNetwork(\"mainGatewayNetwork\", GatewayNetworkArgs.builder()\n            .gatewayId(mainPublicGateway.id())\n            .privateNetworkId(main.id())\n            .dhcpId(mainPublicGatewayDhcp.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build());\n\n        var mainPublicGatewayDhcpReservation = new PublicGatewayDhcpReservation(\"mainPublicGatewayDhcpReservation\", PublicGatewayDhcpReservationArgs.builder()\n            .gatewayNetworkId(mainGatewayNetwork.id())\n            .macAddress(mainPrivateNic.macAddress())\n            .ipAddress(\"192.168.1.4\")\n            .build());\n\n        //## VPC PAT RULE\n        var mainPublicGatewayPatRule = new PublicGatewayPatRule(\"mainPublicGatewayPatRule\", PublicGatewayPatRuleArgs.builder()\n            .gatewayId(mainPublicGateway.id())\n            .privateIp(mainPublicGatewayDhcpReservation.ipAddress())\n            .privatePort(22)\n            .publicPort(2222)\n            .protocol(\"tcp\")\n            .build());\n\n        final var byId = NetworkFunctions.getPublicGatewayDhcpReservation(GetPublicGatewayDhcpReservationArgs.builder()\n            .reservationId(mainPublicGatewayDhcpReservation.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PrivateNetwork\n  mainSecurityGroup:\n    type: scaleway:instance:SecurityGroup\n    name: main\n    properties:\n      inboundDefaultPolicy: drop\n      outboundDefaultPolicy: accept\n      inboundRules:\n        - action: accept\n          port: '22'\n  mainServer:\n    type: scaleway:instance:Server\n    name: main\n    properties:\n      image: ubuntu_jammy\n      type: DEV1-S\n      zone: fr-par-1\n      securityGroupId: ${mainSecurityGroup.id}\n  mainPrivateNic:\n    type: scaleway:instance:PrivateNic\n    name: main\n    properties:\n      serverId: ${mainServer.id}\n      privateNetworkId: ${main.id}\n  mainPublicGatewayIp:\n    type: scaleway:network:PublicGatewayIp\n    name: main\n  mainPublicGatewayDhcp:\n    type: scaleway:network:PublicGatewayDhcp\n    name: main\n    properties:\n      subnet: 192.168.1.0/24\n  mainPublicGateway:\n    type: scaleway:network:PublicGateway\n    name: main\n    properties:\n      name: foobar\n      type: VPC-GW-S\n      ipId: ${mainPublicGatewayIp.id}\n  mainGatewayNetwork:\n    type: scaleway:network:GatewayNetwork\n    name: main\n    properties:\n      gatewayId: ${mainPublicGateway.id}\n      privateNetworkId: ${main.id}\n      dhcpId: ${mainPublicGatewayDhcp.id}\n      cleanupDhcp: true\n      enableMasquerade: true\n  mainPublicGatewayDhcpReservation:\n    type: scaleway:network:PublicGatewayDhcpReservation\n    name: main\n    properties:\n      gatewayNetworkId: ${mainGatewayNetwork.id}\n      macAddress: ${mainPrivateNic.macAddress}\n      ipAddress: 192.168.1.4\n  ### VPC PAT RULE\n  mainPublicGatewayPatRule:\n    type: scaleway:network:PublicGatewayPatRule\n    name: main\n    properties:\n      gatewayId: ${mainPublicGateway.id}\n      privateIp: ${mainPublicGatewayDhcpReservation.ipAddress}\n      privatePort: 22\n      publicPort: 2222\n      protocol: tcp\nvariables:\n  byId:\n    fn::invoke:\n      function: scaleway:network:getPublicGatewayDhcpReservation\n      arguments:\n        reservationId: ${mainPublicGatewayDhcpReservation.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPublicGatewayDhcpReservation.\n","properties":{"gatewayNetworkId":{"type":"string","description":"The ID of the owning GatewayNetwork.\n\n\u003e Only one of \u003cspan pulumi-lang-nodejs=\"`reservationId`\" pulumi-lang-dotnet=\"`ReservationId`\" pulumi-lang-go=\"`reservationId`\" pulumi-lang-python=\"`reservation_id`\" pulumi-lang-yaml=\"`reservationId`\" pulumi-lang-java=\"`reservationId`\"\u003e`reservation_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`macAddress`\" pulumi-lang-dotnet=\"`MacAddress`\" pulumi-lang-go=\"`macAddress`\" pulumi-lang-python=\"`mac_address`\" pulumi-lang-yaml=\"`macAddress`\" pulumi-lang-java=\"`macAddress`\"\u003e`mac_address`\u003c/span\u003e with \u003cspan pulumi-lang-nodejs=\"`gatewayNetworkId`\" pulumi-lang-dotnet=\"`GatewayNetworkId`\" pulumi-lang-go=\"`gatewayNetworkId`\" pulumi-lang-python=\"`gateway_network_id`\" pulumi-lang-yaml=\"`gatewayNetworkId`\" pulumi-lang-java=\"`gatewayNetworkId`\"\u003e`gateway_network_id`\u003c/span\u003e should be specified.\n"},"macAddress":{"type":"string","description":"The MAC address of the reservation to retrieve.\n"},"reservationId":{"type":"string","description":"The ID of the reservation (DHCP entry) to retrieve.\n"},"waitForDhcp":{"type":"boolean","description":"Whether to wait for \u003cspan pulumi-lang-nodejs=\"`macAddress`\" pulumi-lang-dotnet=\"`MacAddress`\" pulumi-lang-go=\"`macAddress`\" pulumi-lang-python=\"`mac_address`\" pulumi-lang-yaml=\"`macAddress`\" pulumi-lang-java=\"`macAddress`\"\u003e`mac_address`\u003c/span\u003e to exist in DHCP.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e). The zone in which the reservation exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPublicGatewayDhcpReservation.\n","properties":{"createdAt":{"type":"string"},"gatewayNetworkId":{"type":"string"},"hostname":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipAddress":{"type":"string"},"macAddress":{"type":"string"},"reservationId":{"type":"string"},"type":{"type":"string"},"updatedAt":{"type":"string"},"waitForDhcp":{"type":"boolean"},"zone":{"type":"string"}},"required":["createdAt","hostname","ipAddress","type","updatedAt","id"],"type":"object"}},"scaleway:network/getPublicGatewayIp:getPublicGatewayIp":{"description":"Gets information about a Public Gateway public flexible IP address.\n\nFor further information, please see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-ips-list-ips).\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.network.PublicGatewayIp(\"main\", {});\nconst ipById = scaleway.network.getPublicGatewayIpOutput({\n    ipId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.network.PublicGatewayIp(\"main\")\nip_by_id = scaleway.network.get_public_gateway_ip_output(ip_id=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.Network.PublicGatewayIp(\"main\");\n\n    var ipById = Scaleway.Network.GetPublicGatewayIp.Invoke(new()\n    {\n        IpId = 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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := network.NewPublicGatewayIp(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupPublicGatewayIpOutput(ctx, network.GetPublicGatewayIpOutputArgs{\n\t\t\tIpId: 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.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayIpArgs;\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 PublicGatewayIp(\"main\");\n\n        final var ipById = NetworkFunctions.getPublicGatewayIp(GetPublicGatewayIpArgs.builder()\n            .ipId(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:network:PublicGatewayIp\nvariables:\n  ipById:\n    fn::invoke:\n      function: scaleway:network:getPublicGatewayIp\n      arguments:\n        ipId: ${main.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPublicGatewayIp.\n","properties":{"ipId":{"type":"string"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPublicGatewayIp.\n","properties":{"address":{"type":"string"},"createdAt":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipId":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"reverse":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"zone":{"type":"string"}},"required":["address","createdAt","organizationId","projectId","reverse","tags","updatedAt","zone","id"],"type":"object"}},"scaleway:network/getPublicGatewayPatRule:getPublicGatewayPatRule":{"description":"Gets information about a Public Gateway PAT rule. For further information, please see the\n[API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-pat-rules-list-pat-rules).\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 sg01 = new scaleway.instance.SecurityGroup(\"sg01\", {\n    inboundDefaultPolicy: \"drop\",\n    outboundDefaultPolicy: \"accept\",\n    inboundRules: [{\n        action: \"accept\",\n        port: 22,\n        protocol: \"TCP\",\n    }],\n});\nconst srv01 = new scaleway.instance.Server(\"srv01\", {\n    name: \"my-server\",\n    type: \"PLAY2-NANO\",\n    image: \"ubuntu_jammy\",\n    securityGroupId: sg01.id,\n});\nconst pn01 = new scaleway.network.PrivateNetwork(\"pn01\", {name: \"my-pn\"});\nconst pnic01 = new scaleway.instance.PrivateNic(\"pnic01\", {\n    serverId: srv01.id,\n    privateNetworkId: pn01.id,\n});\nconst dhcp01 = new scaleway.network.PublicGatewayDhcp(\"dhcp01\", {subnet: \"192.168.0.0/24\"});\nconst ip01 = new scaleway.network.PublicGatewayIp(\"ip01\", {});\nconst pg01 = new scaleway.network.PublicGateway(\"pg01\", {\n    name: \"my-pg\",\n    type: \"VPC-GW-S\",\n    ipId: ip01.id,\n});\nconst gn01 = new scaleway.network.GatewayNetwork(\"gn01\", {\n    gatewayId: pg01.id,\n    privateNetworkId: pn01.id,\n    dhcpId: dhcp01.id,\n    cleanupDhcp: true,\n    enableMasquerade: true,\n});\nconst rsv01 = new scaleway.network.PublicGatewayDhcpReservation(\"rsv01\", {\n    gatewayNetworkId: gn01.id,\n    macAddress: pnic01.macAddress,\n    ipAddress: \"192.168.0.7\",\n});\nconst pat01 = new scaleway.network.PublicGatewayPatRule(\"pat01\", {\n    gatewayId: pg01.id,\n    privateIp: rsv01.ipAddress,\n    privatePort: 22,\n    publicPort: 2202,\n    protocol: \"tcp\",\n});\nconst main = scaleway.network.getPublicGatewayPatRuleOutput({\n    patRuleId: pat01.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nsg01 = scaleway.instance.SecurityGroup(\"sg01\",\n    inbound_default_policy=\"drop\",\n    outbound_default_policy=\"accept\",\n    inbound_rules=[{\n        \"action\": \"accept\",\n        \"port\": 22,\n        \"protocol\": \"TCP\",\n    }])\nsrv01 = scaleway.instance.Server(\"srv01\",\n    name=\"my-server\",\n    type=\"PLAY2-NANO\",\n    image=\"ubuntu_jammy\",\n    security_group_id=sg01.id)\npn01 = scaleway.network.PrivateNetwork(\"pn01\", name=\"my-pn\")\npnic01 = scaleway.instance.PrivateNic(\"pnic01\",\n    server_id=srv01.id,\n    private_network_id=pn01.id)\ndhcp01 = scaleway.network.PublicGatewayDhcp(\"dhcp01\", subnet=\"192.168.0.0/24\")\nip01 = scaleway.network.PublicGatewayIp(\"ip01\")\npg01 = scaleway.network.PublicGateway(\"pg01\",\n    name=\"my-pg\",\n    type=\"VPC-GW-S\",\n    ip_id=ip01.id)\ngn01 = scaleway.network.GatewayNetwork(\"gn01\",\n    gateway_id=pg01.id,\n    private_network_id=pn01.id,\n    dhcp_id=dhcp01.id,\n    cleanup_dhcp=True,\n    enable_masquerade=True)\nrsv01 = scaleway.network.PublicGatewayDhcpReservation(\"rsv01\",\n    gateway_network_id=gn01.id,\n    mac_address=pnic01.mac_address,\n    ip_address=\"192.168.0.7\")\npat01 = scaleway.network.PublicGatewayPatRule(\"pat01\",\n    gateway_id=pg01.id,\n    private_ip=rsv01.ip_address,\n    private_port=22,\n    public_port=2202,\n    protocol=\"tcp\")\nmain = scaleway.network.get_public_gateway_pat_rule_output(pat_rule_id=pat01.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 sg01 = new Scaleway.Instance.SecurityGroup(\"sg01\", new()\n    {\n        InboundDefaultPolicy = \"drop\",\n        OutboundDefaultPolicy = \"accept\",\n        InboundRules = new[]\n        {\n            new Scaleway.Instance.Inputs.SecurityGroupInboundRuleArgs\n            {\n                Action = \"accept\",\n                Port = 22,\n                Protocol = \"TCP\",\n            },\n        },\n    });\n\n    var srv01 = new Scaleway.Instance.Server(\"srv01\", new()\n    {\n        Name = \"my-server\",\n        Type = \"PLAY2-NANO\",\n        Image = \"ubuntu_jammy\",\n        SecurityGroupId = sg01.Id,\n    });\n\n    var pn01 = new Scaleway.Network.PrivateNetwork(\"pn01\", new()\n    {\n        Name = \"my-pn\",\n    });\n\n    var pnic01 = new Scaleway.Instance.PrivateNic(\"pnic01\", new()\n    {\n        ServerId = srv01.Id,\n        PrivateNetworkId = pn01.Id,\n    });\n\n    var dhcp01 = new Scaleway.Network.PublicGatewayDhcp(\"dhcp01\", new()\n    {\n        Subnet = \"192.168.0.0/24\",\n    });\n\n    var ip01 = new Scaleway.Network.PublicGatewayIp(\"ip01\");\n\n    var pg01 = new Scaleway.Network.PublicGateway(\"pg01\", new()\n    {\n        Name = \"my-pg\",\n        Type = \"VPC-GW-S\",\n        IpId = ip01.Id,\n    });\n\n    var gn01 = new Scaleway.Network.GatewayNetwork(\"gn01\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateNetworkId = pn01.Id,\n        DhcpId = dhcp01.Id,\n        CleanupDhcp = true,\n        EnableMasquerade = true,\n    });\n\n    var rsv01 = new Scaleway.Network.PublicGatewayDhcpReservation(\"rsv01\", new()\n    {\n        GatewayNetworkId = gn01.Id,\n        MacAddress = pnic01.MacAddress,\n        IpAddress = \"192.168.0.7\",\n    });\n\n    var pat01 = new Scaleway.Network.PublicGatewayPatRule(\"pat01\", new()\n    {\n        GatewayId = pg01.Id,\n        PrivateIp = rsv01.IpAddress,\n        PrivatePort = 22,\n        PublicPort = 2202,\n        Protocol = \"tcp\",\n    });\n\n    var main = Scaleway.Network.GetPublicGatewayPatRule.Invoke(new()\n    {\n        PatRuleId = pat01.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/instance\"\n\t\"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsg01, err := instance.NewSecurityGroup(ctx, \"sg01\", \u0026instance.SecurityGroupArgs{\n\t\t\tInboundDefaultPolicy:  pulumi.String(\"drop\"),\n\t\t\tOutboundDefaultPolicy: pulumi.String(\"accept\"),\n\t\t\tInboundRules: instance.SecurityGroupInboundRuleArray{\n\t\t\t\t\u0026instance.SecurityGroupInboundRuleArgs{\n\t\t\t\t\tAction:   pulumi.String(\"accept\"),\n\t\t\t\t\tPort:     pulumi.Int(22),\n\t\t\t\t\tProtocol: pulumi.String(\"TCP\"),\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\tsrv01, err := instance.NewServer(ctx, \"srv01\", \u0026instance.ServerArgs{\n\t\t\tName:            pulumi.String(\"my-server\"),\n\t\t\tType:            pulumi.String(\"PLAY2-NANO\"),\n\t\t\tImage:           pulumi.String(\"ubuntu_jammy\"),\n\t\t\tSecurityGroupId: sg01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpn01, err := network.NewPrivateNetwork(ctx, \"pn01\", \u0026network.PrivateNetworkArgs{\n\t\t\tName: pulumi.String(\"my-pn\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpnic01, err := instance.NewPrivateNic(ctx, \"pnic01\", \u0026instance.PrivateNicArgs{\n\t\t\tServerId:         srv01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdhcp01, err := network.NewPublicGatewayDhcp(ctx, \"dhcp01\", \u0026network.PublicGatewayDhcpArgs{\n\t\t\tSubnet: pulumi.String(\"192.168.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tip01, err := network.NewPublicGatewayIp(ctx, \"ip01\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpg01, err := network.NewPublicGateway(ctx, \"pg01\", \u0026network.PublicGatewayArgs{\n\t\t\tName: pulumi.String(\"my-pg\"),\n\t\t\tType: pulumi.String(\"VPC-GW-S\"),\n\t\t\tIpId: ip01.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgn01, err := network.NewGatewayNetwork(ctx, \"gn01\", \u0026network.GatewayNetworkArgs{\n\t\t\tGatewayId:        pg01.ID(),\n\t\t\tPrivateNetworkId: pn01.ID(),\n\t\t\tDhcpId:           dhcp01.ID(),\n\t\t\tCleanupDhcp:      pulumi.Bool(true),\n\t\t\tEnableMasquerade: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trsv01, err := network.NewPublicGatewayDhcpReservation(ctx, \"rsv01\", \u0026network.PublicGatewayDhcpReservationArgs{\n\t\t\tGatewayNetworkId: gn01.ID(),\n\t\t\tMacAddress:       pnic01.MacAddress,\n\t\t\tIpAddress:        pulumi.String(\"192.168.0.7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpat01, err := network.NewPublicGatewayPatRule(ctx, \"pat01\", \u0026network.PublicGatewayPatRuleArgs{\n\t\t\tGatewayId:   pg01.ID(),\n\t\t\tPrivateIp:   rsv01.IpAddress,\n\t\t\tPrivatePort: pulumi.Int(22),\n\t\t\tPublicPort:  pulumi.Int(2202),\n\t\t\tProtocol:    pulumi.String(\"tcp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = network.LookupPublicGatewayPatRuleOutput(ctx, network.GetPublicGatewayPatRuleOutputArgs{\n\t\t\tPatRuleId: pat01.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.instance.SecurityGroup;\nimport com.pulumi.scaleway.instance.SecurityGroupArgs;\nimport com.pulumi.scaleway.instance.inputs.SecurityGroupInboundRuleArgs;\nimport com.pulumi.scaleway.instance.Server;\nimport com.pulumi.scaleway.instance.ServerArgs;\nimport com.pulumi.scaleway.network.PrivateNetwork;\nimport com.pulumi.scaleway.network.PrivateNetworkArgs;\nimport com.pulumi.scaleway.instance.PrivateNic;\nimport com.pulumi.scaleway.instance.PrivateNicArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcp;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpArgs;\nimport com.pulumi.scaleway.network.PublicGatewayIp;\nimport com.pulumi.scaleway.network.PublicGateway;\nimport com.pulumi.scaleway.network.PublicGatewayArgs;\nimport com.pulumi.scaleway.network.GatewayNetwork;\nimport com.pulumi.scaleway.network.GatewayNetworkArgs;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservation;\nimport com.pulumi.scaleway.network.PublicGatewayDhcpReservationArgs;\nimport com.pulumi.scaleway.network.PublicGatewayPatRule;\nimport com.pulumi.scaleway.network.PublicGatewayPatRuleArgs;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetPublicGatewayPatRuleArgs;\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 sg01 = new SecurityGroup(\"sg01\", SecurityGroupArgs.builder()\n            .inboundDefaultPolicy(\"drop\")\n            .outboundDefaultPolicy(\"accept\")\n            .inboundRules(SecurityGroupInboundRuleArgs.builder()\n                .action(\"accept\")\n                .port(22)\n                .protocol(\"TCP\")\n                .build())\n            .build());\n\n        var srv01 = new Server(\"srv01\", ServerArgs.builder()\n            .name(\"my-server\")\n            .type(\"PLAY2-NANO\")\n            .image(\"ubuntu_jammy\")\n            .securityGroupId(sg01.id())\n            .build());\n\n        var pn01 = new PrivateNetwork(\"pn01\", PrivateNetworkArgs.builder()\n            .name(\"my-pn\")\n            .build());\n\n        var pnic01 = new PrivateNic(\"pnic01\", PrivateNicArgs.builder()\n            .serverId(srv01.id())\n            .privateNetworkId(pn01.id())\n            .build());\n\n        var dhcp01 = new PublicGatewayDhcp(\"dhcp01\", PublicGatewayDhcpArgs.builder()\n            .subnet(\"192.168.0.0/24\")\n            .build());\n\n        var ip01 = new PublicGatewayIp(\"ip01\");\n\n        var pg01 = new PublicGateway(\"pg01\", PublicGatewayArgs.builder()\n            .name(\"my-pg\")\n            .type(\"VPC-GW-S\")\n            .ipId(ip01.id())\n            .build());\n\n        var gn01 = new GatewayNetwork(\"gn01\", GatewayNetworkArgs.builder()\n            .gatewayId(pg01.id())\n            .privateNetworkId(pn01.id())\n            .dhcpId(dhcp01.id())\n            .cleanupDhcp(true)\n            .enableMasquerade(true)\n            .build());\n\n        var rsv01 = new PublicGatewayDhcpReservation(\"rsv01\", PublicGatewayDhcpReservationArgs.builder()\n            .gatewayNetworkId(gn01.id())\n            .macAddress(pnic01.macAddress())\n            .ipAddress(\"192.168.0.7\")\n            .build());\n\n        var pat01 = new PublicGatewayPatRule(\"pat01\", PublicGatewayPatRuleArgs.builder()\n            .gatewayId(pg01.id())\n            .privateIp(rsv01.ipAddress())\n            .privatePort(22)\n            .publicPort(2202)\n            .protocol(\"tcp\")\n            .build());\n\n        final var main = NetworkFunctions.getPublicGatewayPatRule(GetPublicGatewayPatRuleArgs.builder()\n            .patRuleId(pat01.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  sg01:\n    type: scaleway:instance:SecurityGroup\n    properties:\n      inboundDefaultPolicy: drop\n      outboundDefaultPolicy: accept\n      inboundRules:\n        - action: accept\n          port: 22\n          protocol: TCP\n  srv01:\n    type: scaleway:instance:Server\n    properties:\n      name: my-server\n      type: PLAY2-NANO\n      image: ubuntu_jammy\n      securityGroupId: ${sg01.id}\n  pnic01:\n    type: scaleway:instance:PrivateNic\n    properties:\n      serverId: ${srv01.id}\n      privateNetworkId: ${pn01.id}\n  pn01:\n    type: scaleway:network:PrivateNetwork\n    properties:\n      name: my-pn\n  dhcp01:\n    type: scaleway:network:PublicGatewayDhcp\n    properties:\n      subnet: 192.168.0.0/24\n  ip01:\n    type: scaleway:network:PublicGatewayIp\n  pg01:\n    type: scaleway:network:PublicGateway\n    properties:\n      name: my-pg\n      type: VPC-GW-S\n      ipId: ${ip01.id}\n  gn01:\n    type: scaleway:network:GatewayNetwork\n    properties:\n      gatewayId: ${pg01.id}\n      privateNetworkId: ${pn01.id}\n      dhcpId: ${dhcp01.id}\n      cleanupDhcp: true\n      enableMasquerade: true\n  rsv01:\n    type: scaleway:network:PublicGatewayDhcpReservation\n    properties:\n      gatewayNetworkId: ${gn01.id}\n      macAddress: ${pnic01.macAddress}\n      ipAddress: 192.168.0.7\n  pat01:\n    type: scaleway:network:PublicGatewayPatRule\n    properties:\n      gatewayId: ${pg01.id}\n      privateIp: ${rsv01.ipAddress}\n      privatePort: 22\n      publicPort: 2202\n      protocol: tcp\nvariables:\n  main:\n    fn::invoke:\n      function: scaleway:network:getPublicGatewayPatRule\n      arguments:\n        patRuleId: ${pat01.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPublicGatewayPatRule.\n","properties":{"patRuleId":{"type":"string","description":"The ID of the PAT rule to retrieve\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`zone`\" pulumi-lang-dotnet=\"`Zone`\" pulumi-lang-go=\"`zone`\" pulumi-lang-python=\"`zone`\" pulumi-lang-yaml=\"`zone`\" pulumi-lang-java=\"`zone`\"\u003e`zone`\u003c/span\u003e) The zone in which\nthe rule exists.\n"}},"type":"object","required":["patRuleId"]},"outputs":{"description":"A collection of values returned by getPublicGatewayPatRule.\n","properties":{"createdAt":{"type":"string"},"gatewayId":{"description":"The ID of the Public Gateway.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"patRuleId":{"type":"string"},"privateIp":{"description":"The private IP address to forward data to.\n","type":"string"},"privatePort":{"description":"The private port to translate to.\n","type":"integer"},"protocol":{"description":"The protocol the rule should apply to. Possible values are \u003cspan pulumi-lang-nodejs=\"`both`\" pulumi-lang-dotnet=\"`Both`\" pulumi-lang-go=\"`both`\" pulumi-lang-python=\"`both`\" pulumi-lang-yaml=\"`both`\" pulumi-lang-java=\"`both`\"\u003e`both`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`tcp`\" pulumi-lang-dotnet=\"`Tcp`\" pulumi-lang-go=\"`tcp`\" pulumi-lang-python=\"`tcp`\" pulumi-lang-yaml=\"`tcp`\" pulumi-lang-java=\"`tcp`\"\u003e`tcp`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`udp`\" pulumi-lang-dotnet=\"`Udp`\" pulumi-lang-go=\"`udp`\" pulumi-lang-python=\"`udp`\" pulumi-lang-yaml=\"`udp`\" pulumi-lang-java=\"`udp`\"\u003e`udp`\u003c/span\u003e.\n","type":"string"},"publicPort":{"description":"The public port to listen on.\n","type":"integer"},"updatedAt":{"type":"string"},"zone":{"type":"string"}},"required":["createdAt","gatewayId","organizationId","patRuleId","privateIp","privatePort","protocol","publicPort","updatedAt","id"],"type":"object"}},"scaleway:network/getRoutes:getRoutes":{"description":"Gets information about multiple VPC routes.\n\n","inputs":{"description":"A collection of arguments for invoking getRoutes.\n","properties":{"isIpv6":{"type":"boolean","description":"Routes with an IPv6 destination will be listed.\n"},"nexthopPrivateNetworkId":{"type":"string","description":"The next hop private network ID to filter for. routes with a similar next hop private network ID are listed.\n"},"nexthopResourceId":{"type":"string","description":"The next hop resource ID to filter for. routes with a similar next hop resource ID are listed.\n"},"nexthopResourceType":{"type":"string","description":"The next hop resource type to filter for. routes with a similar next hop resource type are listed.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the routes exist.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. routes with these exact tags are listed.\n"},"vpcId":{"type":"string","description":"The VPC ID to filter for. routes with a similar VPC ID are listed.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRoutes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isIpv6":{"type":"boolean"},"nexthopPrivateNetworkId":{"type":"string"},"nexthopResourceId":{"type":"string"},"nexthopResourceType":{"type":"string"},"region":{"type":"string"},"routes":{"description":"List of retrieved routes\n","items":{"$ref":"#/types/scaleway:network/getRoutesRoute:getRoutesRoute"},"type":"array"},"tags":{"items":{"type":"string"},"type":"array"},"vpcId":{"type":"string"}},"required":["routes","id"],"type":"object"}},"scaleway:network/getVpc:getVpc":{"description":"Gets information about a Scaleway Virtual Private Cloud.\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\n// Get info by name\nconst byName = scaleway.network.getVpc({\n    name: \"foobar\",\n});\n// Get info by ID\nconst byId = scaleway.network.getVpc({\n    vpcId: \"11111111-1111-1111-1111-111111111111\",\n});\n// Get default VPC info\nconst _default = scaleway.network.getVpc({\n    isDefault: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nby_name = scaleway.network.get_vpc(name=\"foobar\")\n# Get info by ID\nby_id = scaleway.network.get_vpc(vpc_id=\"11111111-1111-1111-1111-111111111111\")\n# Get default VPC info\ndefault = scaleway.network.get_vpc(is_default=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by name\n    var byName = Scaleway.Network.GetVpc.Invoke(new()\n    {\n        Name = \"foobar\",\n    });\n\n    // Get info by ID\n    var byId = Scaleway.Network.GetVpc.Invoke(new()\n    {\n        VpcId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    // Get default VPC info\n    var @default = Scaleway.Network.GetVpc.Invoke(new()\n    {\n        IsDefault = 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/network\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := network.LookupVpc(ctx, \u0026network.LookupVpcArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get info by ID\n\t\t_, err = network.LookupVpc(ctx, \u0026network.LookupVpcArgs{\n\t\t\tVpcId: 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\t// Get default VPC info\n\t\t_, err = network.LookupVpc(ctx, \u0026network.LookupVpcArgs{\n\t\t\tIsDefault: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.network.NetworkFunctions;\nimport com.pulumi.scaleway.network.inputs.GetVpcArgs;\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        // Get info by name\n        final var byName = NetworkFunctions.getVpc(GetVpcArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n        // Get info by ID\n        final var byId = NetworkFunctions.getVpc(GetVpcArgs.builder()\n            .vpcId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        // Get default VPC info\n        final var default = NetworkFunctions.getVpc(GetVpcArgs.builder()\n            .isDefault(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  byName:\n    fn::invoke:\n      function: scaleway:network:getVpc\n      arguments:\n        name: foobar\n  # Get info by ID\n  byId:\n    fn::invoke:\n      function: scaleway:network:getVpc\n      arguments:\n        vpcId: 11111111-1111-1111-1111-111111111111\n  # Get default VPC info\n  default:\n    fn::invoke:\n      function: scaleway:network:getVpc\n      arguments:\n        isDefault: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getVpc.\n","properties":{"isDefault":{"type":"boolean","description":"Whether the targeted VPC is the default VPC.\n"},"name":{"type":"string","description":"Name of the VPC. A maximum of one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e should be specified.\n"},"organizationId":{"type":"string","description":"The ID of the Organization the VPC is associated with.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the Project the VPC is associated with.\n"},"region":{"type":"string"},"vpcId":{"type":"string","description":"ID of the VPC. A maximum of one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vpcId`\" pulumi-lang-dotnet=\"`VpcId`\" pulumi-lang-go=\"`vpcId`\" pulumi-lang-python=\"`vpc_id`\" pulumi-lang-yaml=\"`vpcId`\" pulumi-lang-java=\"`vpcId`\"\u003e`vpc_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpc.\n","properties":{"createdAt":{"type":"string"},"enableCustomRoutesPropagation":{"type":"boolean"},"enableRouting":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isDefault":{"type":"boolean"},"name":{"type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"updatedAt":{"type":"string"},"vpcId":{"type":"string"}},"required":["createdAt","enableCustomRoutesPropagation","enableRouting","organizationId","tags","updatedAt","id"],"type":"object"}},"scaleway:network/getVpcs:getVpcs":{"description":"Gets information about multiple Virtual Private Clouds.\n\n","inputs":{"description":"A collection of arguments for invoking getVpcs.\n","properties":{"name":{"type":"string","description":"The VPC name to filter for. VPCs with a similar name are listed.\n"},"projectId":{"type":"string","description":"The ID of the Project the VPC is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e). The region in which the VPCs exist.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags to filter for. VPCs with these exact tags are listed.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVpcs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The Organization ID the VPC is associated with.\n","type":"string"},"projectId":{"description":"The ID of the Project the VPC is associated with.\n","type":"string"},"region":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"vpcs":{"description":"List of retrieved VPCs\n","items":{"$ref":"#/types/scaleway:network/getVpcsVpc:getVpcsVpc"},"type":"array"}},"required":["organizationId","projectId","vpcs","id"],"type":"object"}},"scaleway:object/get:get":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.Item`\" pulumi-lang-dotnet=\"`scaleway.object.Item`\" pulumi-lang-go=\"`object.Item`\" pulumi-lang-python=\"`object.Item`\" pulumi-lang-yaml=\"`scaleway.object.Item`\" pulumi-lang-java=\"`scaleway.object.Item`\"\u003e`scaleway.object.Item`\u003c/span\u003e data source is used to retrieve information about an Object Storage object.\n\nRefer to the Object Storage [documentation](https://www.scaleway.com/en/docs/object-storage/how-to/create-a-bucket/) for more information.\n\n## Retrieve an Object Storage object\n\nThe following example demonstrates how to retrieve metadata about an object stored in a bucket:\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.object.Bucket(\"main\", {name: \"bucket.test.com\"});\nconst example = new scaleway.object.Item(\"example\", {\n    bucket: main.name,\n    key: \"example.txt\",\n    content: \"Hello world!\",\n});\nconst selected = scaleway.object.getOutput({\n    bucket: example.bucket,\n    key: example.key,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.object.Bucket(\"main\", name=\"bucket.test.com\")\nexample = scaleway.object.Item(\"example\",\n    bucket=main.name,\n    key=\"example.txt\",\n    content=\"Hello world!\")\nselected = scaleway.object.get_output(bucket=example.bucket,\n    key=example.key)\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.Object.Bucket(\"main\", new()\n    {\n        Name = \"bucket.test.com\",\n    });\n\n    var example = new Scaleway.Object.Item(\"example\", new()\n    {\n        Bucket = main.Name,\n        Key = \"example.txt\",\n        Content = \"Hello world!\",\n    });\n\n    var selected = Scaleway.Object.Get.Invoke(new()\n    {\n        Bucket = example.Bucket,\n        Key = example.Key,\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\n\t\t\tName: pulumi.String(\"bucket.test.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := object.NewItem(ctx, \"example\", \u0026object.ItemArgs{\n\t\t\tBucket:  main.Name,\n\t\t\tKey:     pulumi.String(\"example.txt\"),\n\t\t\tContent: pulumi.String(\"Hello world!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = object.GetOutput(ctx, object.GetOutputArgs{\n\t\t\tBucket: example.Bucket,\n\t\t\tKey:    example.Key,\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.Item;\nimport com.pulumi.scaleway.object.ItemArgs;\nimport com.pulumi.scaleway.object.ObjectFunctions;\nimport com.pulumi.scaleway.object.inputs.GetArgs;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"bucket.test.com\")\n            .build());\n\n        var example = new Item(\"example\", ItemArgs.builder()\n            .bucket(main.name())\n            .key(\"example.txt\")\n            .content(\"Hello world!\")\n            .build());\n\n        final var selected = ObjectFunctions.get(GetArgs.builder()\n            .bucket(example.bucket())\n            .key(example.key())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\n    properties:\n      name: bucket.test.com\n  example:\n    type: scaleway:object:Item\n    properties:\n      bucket: ${main.name}\n      key: example.txt\n      content: Hello world!\nvariables:\n  selected:\n    fn::invoke:\n      function: scaleway:object:get\n      arguments:\n        bucket: ${example.bucket}\n        key: ${example.key}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking get.\n","properties":{"bucket":{"type":"string"},"key":{"type":"string","description":"The key (path or filename) of the object within the bucket.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project with which the bucket is associated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the bucket exists.\n"}},"type":"object","required":["bucket","key"]},"outputs":{"description":"A collection of values returned by get.\n","properties":{"bucket":{"type":"string"},"content":{"type":"string"},"contentBase64":{"type":"string"},"contentType":{"type":"string"},"file":{"type":"string"},"hash":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"key":{"type":"string"},"metadata":{"additionalProperties":{"type":"string"},"type":"object"},"projectId":{"type":"string"},"region":{"type":"string"},"sseCustomerKey":{"type":"string"},"storageClass":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"visibility":{"type":"string"}},"required":["bucket","content","contentBase64","contentType","file","hash","key","metadata","sseCustomerKey","storageClass","tags","visibility","id"],"type":"object"}},"scaleway:object/getBucket:getBucket":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.Bucket`\" pulumi-lang-dotnet=\"`scaleway.object.Bucket`\" pulumi-lang-go=\"`object.Bucket`\" pulumi-lang-python=\"`object.Bucket`\" pulumi-lang-yaml=\"`scaleway.object.Bucket`\" pulumi-lang-java=\"`scaleway.object.Bucket`\"\u003e`scaleway.object.Bucket`\u003c/span\u003e 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/object-storage/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 \"@pulumiverse/scaleway\";\n\nconst main = new scaleway.object.Bucket(\"main\", {\n    name: \"bucket.test.com\",\n    tags: {\n        foo: \"bar\",\n    },\n});\nconst selected = scaleway.object.getBucketOutput({\n    name: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nmain = scaleway.object.Bucket(\"main\",\n    name=\"bucket.test.com\",\n    tags={\n        \"foo\": \"bar\",\n    })\nselected = scaleway.object.get_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.Object.Bucket(\"main\", new()\n    {\n        Name = \"bucket.test.com\",\n        Tags = \n        {\n            { \"foo\", \"bar\" },\n        },\n    });\n\n    var selected = Scaleway.Object.GetBucket.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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := object.NewBucket(ctx, \"main\", \u0026object.BucketArgs{\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_ = object.LookupBucketOutput(ctx, object.GetBucketOutputArgs{\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.object.Bucket;\nimport com.pulumi.scaleway.object.BucketArgs;\nimport com.pulumi.scaleway.object.ObjectFunctions;\nimport com.pulumi.scaleway.object.inputs.GetBucketArgs;\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 Bucket(\"main\", BucketArgs.builder()\n            .name(\"bucket.test.com\")\n            .tags(Map.of(\"foo\", \"bar\"))\n            .build());\n\n        final var selected = ObjectFunctions.getBucket(GetBucketArgs.builder()\n            .name(main.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: scaleway:object:Bucket\n    properties:\n      name: bucket.test.com\n      tags:\n        foo: bar\nvariables:\n  selected:\n    fn::invoke:\n      function: scaleway:object:getBucket\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 \"@pulumiverse/scaleway\";\n\nconst selected = scaleway.object.getBucket({\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.object.get_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.Object.GetBucket.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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.LookupBucket(ctx, \u0026object.LookupBucketArgs{\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.object.ObjectFunctions;\nimport com.pulumi.scaleway.object.inputs.GetBucketArgs;\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 = ObjectFunctions.getBucket(GetBucketArgs.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:object:getBucket\n      arguments:\n        name: bucket.test.com\n        projectId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBucket.\n","properties":{"name":{"type":"string"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project with which the bucket is associated.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the bucket exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getBucket.\n","properties":{"acl":{"type":"string"},"apiEndpoint":{"type":"string"},"corsRules":{"items":{"$ref":"#/types/scaleway:object/getBucketCorsRule:getBucketCorsRule"},"type":"array"},"endpoint":{"description":"The endpoint URL of the bucket\n","type":"string"},"forceDestroy":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lifecycleRules":{"items":{"$ref":"#/types/scaleway:object/getBucketLifecycleRule:getBucketLifecycleRule"},"type":"array"},"name":{"type":"string"},"objectLockEnabled":{"type":"boolean"},"projectId":{"type":"string"},"region":{"type":"string"},"tags":{"additionalProperties":{"type":"string"},"type":"object"},"versionings":{"items":{"$ref":"#/types/scaleway:object/getBucketVersioning:getBucketVersioning"},"type":"array"}},"required":["acl","apiEndpoint","corsRules","endpoint","forceDestroy","lifecycleRules","objectLockEnabled","tags","versionings","id"],"type":"object"}},"scaleway:object/getBucketPolicy:getBucketPolicy":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.object.BucketPolicy`\" pulumi-lang-dotnet=\"`scaleway.object.BucketPolicy`\" pulumi-lang-go=\"`object.BucketPolicy`\" pulumi-lang-python=\"`object.BucketPolicy`\" pulumi-lang-yaml=\"`scaleway.object.BucketPolicy`\" pulumi-lang-java=\"`scaleway.object.BucketPolicy`\"\u003e`scaleway.object.BucketPolicy`\u003c/span\u003e data source is used to retrieve information about the bucket policy of an Object Storage bucket.\n\nRefer to the Object Storage [documentation](https://www.scaleway.com/en/docs/object-storage/api-cli/bucket-policy/) for more information.\n\n## Retrieve the bucket policy of a bucket\n\nThe following command allows you to retrieve a bucket policy by its bucket.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = scaleway.object.getBucketPolicy({\n    bucket: \"bucket.test.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nmain = scaleway.object.get_bucket_policy(bucket=\"bucket.test.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = Scaleway.Object.GetBucketPolicy.Invoke(new()\n    {\n        Bucket = \"bucket.test.com\",\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/object\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := object.LookupBucketPolicy(ctx, \u0026object.LookupBucketPolicyArgs{\n\t\t\tBucket: \"bucket.test.com\",\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.object.ObjectFunctions;\nimport com.pulumi.scaleway.object.inputs.GetBucketPolicyArgs;\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 = ObjectFunctions.getBucketPolicy(GetBucketPolicyArgs.builder()\n            .bucket(\"bucket.test.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  main:\n    fn::invoke:\n      function: scaleway:object:getBucketPolicy\n      arguments:\n        bucket: bucket.test.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBucketPolicy.\n","properties":{"bucket":{"type":"string","description":"The name of the bucket.\n"},"projectId":{"type":"string"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the Object Storage exists.\n"}},"type":"object","required":["bucket"]},"outputs":{"description":"A collection of values returned by getBucketPolicy.\n","properties":{"bucket":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"policy":{"description":"The content of the bucket policy in JSON format.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"}},"required":["bucket","policy","id"],"type":"object"}},"scaleway:observability/getGrafana:getGrafana":{"inputs":{"description":"A collection of arguments for invoking getGrafana.\n","properties":{"projectId":{"type":"string","description":"The ID of the project the Grafana instance is associated with. If not provided, the default project configured in the provider is used.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGrafana.\n","properties":{"grafanaUrl":{"description":"The URL to access the Grafana dashboard. Use your Scaleway IAM credentials to authenticate.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"}},"required":["grafanaUrl","projectId","id"],"type":"object"}},"scaleway:observability/getInstance:getInstance":{"description":"\u003e **Important:**  The data source \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Cockpit`\" pulumi-lang-dotnet=\"`scaleway.observability.Cockpit`\" pulumi-lang-go=\"`observability.Cockpit`\" pulumi-lang-python=\"`observability.Cockpit`\" pulumi-lang-yaml=\"`scaleway.observability.Cockpit`\" pulumi-lang-java=\"`scaleway.observability.Cockpit`\"\u003e`scaleway.observability.Cockpit`\u003c/span\u003e has been deprecated and will no longer be supported. Instead, use resource \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Cockpit`\" pulumi-lang-dotnet=\"`scaleway.observability.Cockpit`\" pulumi-lang-go=\"`observability.Cockpit`\" pulumi-lang-python=\"`observability.Cockpit`\" pulumi-lang-yaml=\"`scaleway.observability.Cockpit`\" pulumi-lang-java=\"`scaleway.observability.Cockpit`\"\u003e`scaleway.observability.Cockpit`\u003c/span\u003e.\n\n\u003e **Note:**\nAs of April 2024, Cockpit has introduced [regionalization](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#region) to offer more flexibility and resilience.\nIf you have created customized dashboards with data for your Scaleway resources before April 2024, you will need to update your queries in Grafana, with the new regionalized data sources.\n\nThe \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Cockpit`\" pulumi-lang-dotnet=\"`scaleway.observability.Cockpit`\" pulumi-lang-go=\"`observability.Cockpit`\" pulumi-lang-python=\"`observability.Cockpit`\" pulumi-lang-yaml=\"`scaleway.observability.Cockpit`\" pulumi-lang-java=\"`scaleway.observability.Cockpit`\"\u003e`scaleway.observability.Cockpit`\u003c/span\u003e data source is used to retrieve information about a Scaleway Cockpit associated with a given Project. This can be the default Project or a specific Project identified by its ID.\n\nRefer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.\n\n## Retrieve a Cockpit\n\nThe following commands allow you to:\n\n- get information on the Cockpit associated with your Scaleway default Project\n- get information on the Cockpit associated with a specific Scaleway Project\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get the default Project's Cockpit\nconst main = scaleway.observability.getInstance({});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get the default Project's Cockpit\nmain = scaleway.observability.get_instance()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get the default Project's Cockpit\n    var main = Scaleway.Observability.GetInstance.Invoke();\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get the default Project's Cockpit\n\t\t_, err := observability.GetInstance(ctx, \u0026observability.GetInstanceArgs{}, 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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetInstanceArgs;\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        // Get the default Project's Cockpit\n        final var main = ObservabilityFunctions.getInstance(GetInstanceArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get the default Project's Cockpit\n  main:\n    fn::invoke:\n      function: scaleway:observability:getInstance\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get a specific Project's Cockpit\nconst main = scaleway.observability.getInstance({\n    projectId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get a specific Project's Cockpit\nmain = scaleway.observability.get_instance(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    // Get a specific Project's Cockpit\n    var main = Scaleway.Observability.GetInstance.Invoke(new()\n    {\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get a specific Project's Cockpit\n\t\t_, err := observability.GetInstance(ctx, \u0026observability.GetInstanceArgs{\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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetInstanceArgs;\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        // Get a specific Project's Cockpit\n        final var main = ObservabilityFunctions.getInstance(GetInstanceArgs.builder()\n            .projectId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get a specific Project's Cockpit\n  main:\n    fn::invoke:\n      function: scaleway:observability:getInstance\n      arguments:\n        projectId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getInstance.\n","properties":{"projectId":{"type":"string","description":"Specifies the ID of the Scaleway Project that the Cockpit is associated with. If not specified, it defaults to the Project ID specified in the provider configuration.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getInstance.\n","properties":{"endpoints":{"description":"(Deprecated) A list of [endpoints](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#endpoints) related to Cockpit, each with specific URLs:\n","items":{"$ref":"#/types/scaleway:observability/getInstanceEndpoint:getInstanceEndpoint"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"plan":{"deprecationMessage":"The 'plan' attribute is deprecated and will be removed in a future version. Any changes to this attribute will have no effect.","type":"string"},"planId":{"description":"(Deprecated) ID of the current pricing plan\n","type":"string"},"projectId":{"type":"string"},"pushUrls":{"items":{"$ref":"#/types/scaleway:observability/getInstancePushUrl:getInstancePushUrl"},"type":"array"}},"required":["endpoints","plan","planId","pushUrls","id"],"type":"object"}},"scaleway:observability/getPreconfiguredAlert:getPreconfiguredAlert":{"description":"Gets information about preconfigured alert rules available in Scaleway Cockpit.\n\nPreconfigured alerts are ready-to-use alert rules that monitor common metrics for Scaleway services.\nYou can enable these alerts in your Alert Manager using the \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.AlertManager`\" pulumi-lang-dotnet=\"`scaleway.observability.AlertManager`\" pulumi-lang-go=\"`observability.AlertManager`\" pulumi-lang-python=\"`observability.AlertManager`\" pulumi-lang-yaml=\"`scaleway.observability.AlertManager`\" pulumi-lang-java=\"`scaleway.observability.AlertManager`\"\u003e`scaleway.observability.AlertManager`\u003c/span\u003e resource.\n\nFor more information, refer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api).\n\n## Example Usage\n\n### Basic usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst main = scaleway.observability.getPreconfiguredAlert({\n    projectId: project.id,\n});\nexport const availableAlerts = main.then(main =\u003e main.alerts);\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nmain = scaleway.observability.get_preconfigured_alert(project_id=project[\"id\"])\npulumi.export(\"availableAlerts\", main.alerts)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = Scaleway.Observability.GetPreconfiguredAlert.Invoke(new()\n    {\n        ProjectId = project.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"availableAlerts\"] = main.Apply(getPreconfiguredAlertResult =\u003e getPreconfiguredAlertResult.Alerts),\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := observability.GetPreconfiguredAlert(ctx, \u0026observability.GetPreconfiguredAlertArgs{\n\t\t\tProjectId: pulumi.StringRef(project.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"availableAlerts\", main.Alerts)\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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetPreconfiguredAlertArgs;\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 = ObservabilityFunctions.getPreconfiguredAlert(GetPreconfiguredAlertArgs.builder()\n            .projectId(project.id())\n            .build());\n\n        ctx.export(\"availableAlerts\", main.alerts());\n    }\n}\n```\n```yaml\nvariables:\n  main:\n    fn::invoke:\n      function: scaleway:observability:getPreconfiguredAlert\n      arguments:\n        projectId: ${project.id}\noutputs:\n  availableAlerts: ${main.alerts}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter by status\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst enabled = scaleway.observability.getPreconfiguredAlert({\n    projectId: project.id,\n    ruleStatus: \"enabled\",\n});\nconst disabled = scaleway.observability.getPreconfiguredAlert({\n    projectId: project.id,\n    ruleStatus: \"disabled\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nenabled = scaleway.observability.get_preconfigured_alert(project_id=project[\"id\"],\n    rule_status=\"enabled\")\ndisabled = scaleway.observability.get_preconfigured_alert(project_id=project[\"id\"],\n    rule_status=\"disabled\")\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 enabled = Scaleway.Observability.GetPreconfiguredAlert.Invoke(new()\n    {\n        ProjectId = project.Id,\n        RuleStatus = \"enabled\",\n    });\n\n    var disabled = Scaleway.Observability.GetPreconfiguredAlert.Invoke(new()\n    {\n        ProjectId = project.Id,\n        RuleStatus = \"disabled\",\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := observability.GetPreconfiguredAlert(ctx, \u0026observability.GetPreconfiguredAlertArgs{\n\t\t\tProjectId:  pulumi.StringRef(project.Id),\n\t\t\tRuleStatus: pulumi.StringRef(\"enabled\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = observability.GetPreconfiguredAlert(ctx, \u0026observability.GetPreconfiguredAlertArgs{\n\t\t\tProjectId:  pulumi.StringRef(project.Id),\n\t\t\tRuleStatus: pulumi.StringRef(\"disabled\"),\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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetPreconfiguredAlertArgs;\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 enabled = ObservabilityFunctions.getPreconfiguredAlert(GetPreconfiguredAlertArgs.builder()\n            .projectId(project.id())\n            .ruleStatus(\"enabled\")\n            .build());\n\n        final var disabled = ObservabilityFunctions.getPreconfiguredAlert(GetPreconfiguredAlertArgs.builder()\n            .projectId(project.id())\n            .ruleStatus(\"disabled\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  enabled:\n    fn::invoke:\n      function: scaleway:observability:getPreconfiguredAlert\n      arguments:\n        projectId: ${project.id}\n        ruleStatus: enabled\n  disabled:\n    fn::invoke:\n      function: scaleway:observability:getPreconfiguredAlert\n      arguments:\n        projectId: ${project.id}\n        ruleStatus: disabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Use with Alert Manager\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst project = new scaleway.account.Project(\"project\", {name: \"my-observability-project\"});\nconst main = new scaleway.observability.Cockpit(\"main\", {projectId: project.id});\nconst all = scaleway.observability.getPreconfiguredAlertOutput({\n    projectId: main.projectId,\n});\nconst mainAlertManager = new scaleway.observability.AlertManager(\"main\", {\n    projectId: main.projectId,\n    preconfiguredAlertIds: all.apply(all =\u003e .filter(alert =\u003e alert.productName == \"instance\" \u0026\u0026 alert.ruleStatus == \"disabled\").map(alert =\u003e (alert.preconfiguredRuleId))),\n    contactPoints: [{\n        email: \"alerts@example.com\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\nproject = scaleway.account.Project(\"project\", name=\"my-observability-project\")\nmain = scaleway.observability.Cockpit(\"main\", project_id=project.id)\nall = scaleway.observability.get_preconfigured_alert_output(project_id=main.project_id)\nmain_alert_manager = scaleway.observability.AlertManager(\"main\",\n    project_id=main.project_id,\n    preconfigured_alert_ids=all.apply(lambda all: [alert.preconfigured_rule_id for alert in all.alerts if alert.product_name == \"instance\" and alert.rule_status == \"disabled\"]),\n    contact_points=[{\n        \"email\": \"alerts@example.com\",\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 project = new Scaleway.Account.Project(\"project\", new()\n    {\n        Name = \"my-observability-project\",\n    });\n\n    var main = new Scaleway.Observability.Cockpit(\"main\", new()\n    {\n        ProjectId = project.Id,\n    });\n\n    var all = Scaleway.Observability.GetPreconfiguredAlert.Invoke(new()\n    {\n        ProjectId = main.ProjectId,\n    });\n\n    var mainAlertManager = new Scaleway.Observability.AlertManager(\"main\", new()\n    {\n        ProjectId = main.ProjectId,\n        PreconfiguredAlertIds = .Where(alert =\u003e alert.ProductName == \"instance\" \u0026\u0026 alert.RuleStatus == \"disabled\").Select(alert =\u003e \n        {\n            return alert.PreconfiguredRuleId;\n        }).ToList(),\n        ContactPoints = new[]\n        {\n            new Scaleway.Observability.Inputs.AlertManagerContactPointArgs\n            {\n                Email = \"alerts@example.com\",\n            },\n        },\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPreconfiguredAlert.\n","properties":{"dataSourceId":{"type":"string","description":"Filter alerts by data source ID.\n"},"projectId":{"type":"string","description":"The ID of the project the alerts are associated with. If not provided, the default project configured in the provider is used.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region in which the alerts exist.\n","willReplaceOnChanges":true},"ruleStatus":{"type":"string","description":"Filter alerts by rule status. Valid values are \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPreconfiguredAlert.\n","properties":{"alerts":{"description":"List of preconfigured alerts. Each alert contains:\n","items":{"$ref":"#/types/scaleway:observability/getPreconfiguredAlertAlert:getPreconfiguredAlertAlert"},"type":"array"},"dataSourceId":{"description":"ID of the data source containing the alert rule.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"ruleStatus":{"description":"Status of the alert rule (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`enabling`\" pulumi-lang-dotnet=\"`Enabling`\" pulumi-lang-go=\"`enabling`\" pulumi-lang-python=\"`enabling`\" pulumi-lang-yaml=\"`enabling`\" pulumi-lang-java=\"`enabling`\"\u003e`enabling`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabling`\" pulumi-lang-dotnet=\"`Disabling`\" pulumi-lang-go=\"`disabling`\" pulumi-lang-python=\"`disabling`\" pulumi-lang-yaml=\"`disabling`\" pulumi-lang-java=\"`disabling`\"\u003e`disabling`\u003c/span\u003e).\n","type":"string"}},"required":["alerts","projectId","id"],"type":"object"}},"scaleway:observability/getSource:getSource":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.observability.Source`\" pulumi-lang-dotnet=\"`scaleway.observability.Source`\" pulumi-lang-go=\"`observability.Source`\" pulumi-lang-python=\"`observability.Source`\" pulumi-lang-yaml=\"`scaleway.observability.Source`\" pulumi-lang-java=\"`scaleway.observability.Source`\"\u003e`scaleway.observability.Source`\u003c/span\u003e data source allows you to retrieve information about a specific [data source](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-sources) in Scaleway's Cockpit.\n\nRefer to Cockpit's [product documentation](https://www.scaleway.com/en/docs/observability/cockpit/concepts/) and [API documentation](https://www.scaleway.com/en/developers/api/cockpit/regional-api) for more information.\n\n## Example Usage\n\n### Retrieve a specific data source by ID\n\nThe following example retrieves a Cockpit data source by its unique ID.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst example = scaleway.observability.getSource({\n    id: \"fr-par/11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nexample = scaleway.observability.get_source(id=\"fr-par/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 example = Scaleway.Observability.GetSource.Invoke(new()\n    {\n        Id = \"fr-par/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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := observability.LookupSource(ctx, \u0026observability.LookupSourceArgs{\n\t\t\tId: pulumi.StringRef(\"fr-par/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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetSourceArgs;\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 example = ObservabilityFunctions.getSource(GetSourceArgs.builder()\n            .id(\"fr-par/11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: scaleway:observability:getSource\n      arguments:\n        id: fr-par/11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Retrieve a data source by filters\n\nYou can also retrieve a data source by specifying filtering criteria such as \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst filtered = scaleway.observability.getSource({\n    projectId: \"11111111-1111-1111-1111-111111111111\",\n    region: \"fr-par\",\n    name: \"my-data-source\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nfiltered = scaleway.observability.get_source(project_id=\"11111111-1111-1111-1111-111111111111\",\n    region=\"fr-par\",\n    name=\"my-data-source\")\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 filtered = Scaleway.Observability.GetSource.Invoke(new()\n    {\n        ProjectId = \"11111111-1111-1111-1111-111111111111\",\n        Region = \"fr-par\",\n        Name = \"my-data-source\",\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := observability.LookupSource(ctx, \u0026observability.LookupSourceArgs{\n\t\t\tProjectId: pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\tRegion:    pulumi.StringRef(\"fr-par\"),\n\t\t\tName:      pulumi.StringRef(\"my-data-source\"),\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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetSourceArgs;\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 filtered = ObservabilityFunctions.getSource(GetSourceArgs.builder()\n            .projectId(\"11111111-1111-1111-1111-111111111111\")\n            .region(\"fr-par\")\n            .name(\"my-data-source\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  filtered:\n    fn::invoke:\n      function: scaleway:observability:getSource\n      arguments:\n        projectId: 11111111-1111-1111-1111-111111111111\n        region: fr-par\n        name: my-data-source\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSource.\n","properties":{"id":{"type":"string","description":"The unique identifier of the Cockpit data source in the `{region}/{id}` format. If specified, other filters are ignored.\n"},"name":{"type":"string","description":"The name of the data source.\n"},"origin":{"type":"string","description":"The origin of the data source. Possible values are:\n"},"projectId":{"type":"string","description":"The ID of the Project the data source is associated with. Defaults to the Project ID specified in the provider configuration.\n"},"region":{"type":"string","description":"The region where the data source is located. Defaults to the region specified in the provider configuration.\n"},"type":{"type":"string","description":"The [type](https://www.scaleway.com/en/docs/observability/cockpit/concepts/#data-types) of data source. Possible values are: \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logs`\" pulumi-lang-dotnet=\"`Logs`\" pulumi-lang-go=\"`logs`\" pulumi-lang-python=\"`logs`\" pulumi-lang-yaml=\"`logs`\" pulumi-lang-java=\"`logs`\"\u003e`logs`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`traces`\" pulumi-lang-dotnet=\"`Traces`\" pulumi-lang-go=\"`traces`\" pulumi-lang-python=\"`traces`\" pulumi-lang-yaml=\"`traces`\" pulumi-lang-java=\"`traces`\"\u003e`traces`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSource.\n","properties":{"createdAt":{"description":"The date and time the data source was created (in RFC 3339 format).\n","type":"string"},"id":{"description":"The unique identifier of the data source in the `{region}/{id}` format.\n","type":"string"},"name":{"type":"string"},"origin":{"description":"The origin of the data source.\n","type":"string"},"projectId":{"type":"string"},"pushUrl":{"type":"string"},"region":{"type":"string"},"retentionDays":{"description":"The number of days the data is retained in the data source.\n","type":"integer"},"synchronizedWithGrafana":{"description":"Indicates whether the data source is synchronized with Grafana.\n","type":"boolean"},"type":{"type":"string"},"updatedAt":{"description":"The date and time the data source was last updated (in RFC 3339 format).\n","type":"string"},"url":{"description":"The URL of the Cockpit data source.\n","type":"string"}},"required":["createdAt","pushUrl","retentionDays","synchronizedWithGrafana","updatedAt","url"],"type":"object"}},"scaleway:observability/getSources:getSources":{"description":"Gets information about multiple Cockpit data sources.\n\n## Example Usage\n\n### List all sources in a project\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst all = scaleway.observability.getSources({\n    projectId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nall = scaleway.observability.get_sources(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 all = Scaleway.Observability.GetSources.Invoke(new()\n    {\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := observability.GetSources(ctx, \u0026observability.GetSourcesArgs{\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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetSourcesArgs;\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 all = ObservabilityFunctions.getSources(GetSourcesArgs.builder()\n            .projectId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  all:\n    fn::invoke:\n      function: scaleway:observability:getSources\n      arguments:\n        projectId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter sources by type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst metrics = scaleway.observability.getSources({\n    projectId: \"11111111-1111-1111-1111-111111111111\",\n    type: \"metrics\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nmetrics = scaleway.observability.get_sources(project_id=\"11111111-1111-1111-1111-111111111111\",\n    type=\"metrics\")\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 metrics = Scaleway.Observability.GetSources.Invoke(new()\n    {\n        ProjectId = \"11111111-1111-1111-1111-111111111111\",\n        Type = \"metrics\",\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := observability.GetSources(ctx, \u0026observability.GetSourcesArgs{\n\t\t\tProjectId: pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\tType:      pulumi.StringRef(\"metrics\"),\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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetSourcesArgs;\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 metrics = ObservabilityFunctions.getSources(GetSourcesArgs.builder()\n            .projectId(\"11111111-1111-1111-1111-111111111111\")\n            .type(\"metrics\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  metrics:\n    fn::invoke:\n      function: scaleway:observability:getSources\n      arguments:\n        projectId: 11111111-1111-1111-1111-111111111111\n        type: metrics\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter sources by name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst mySources = scaleway.observability.getSources({\n    projectId: \"11111111-1111-1111-1111-111111111111\",\n    name: \"my-data-source\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\nmy_sources = scaleway.observability.get_sources(project_id=\"11111111-1111-1111-1111-111111111111\",\n    name=\"my-data-source\")\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 mySources = Scaleway.Observability.GetSources.Invoke(new()\n    {\n        ProjectId = \"11111111-1111-1111-1111-111111111111\",\n        Name = \"my-data-source\",\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := observability.GetSources(ctx, \u0026observability.GetSourcesArgs{\n\t\t\tProjectId: pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\tName:      pulumi.StringRef(\"my-data-source\"),\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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetSourcesArgs;\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 mySources = ObservabilityFunctions.getSources(GetSourcesArgs.builder()\n            .projectId(\"11111111-1111-1111-1111-111111111111\")\n            .name(\"my-data-source\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  mySources:\n    fn::invoke:\n      function: scaleway:observability:getSources\n      arguments:\n        projectId: 11111111-1111-1111-1111-111111111111\n        name: my-data-source\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Filter sources by origin\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst custom = scaleway.observability.getSources({\n    projectId: \"11111111-1111-1111-1111-111111111111\",\n    origin: \"custom\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\ncustom = scaleway.observability.get_sources(project_id=\"11111111-1111-1111-1111-111111111111\",\n    origin=\"custom\")\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 custom = Scaleway.Observability.GetSources.Invoke(new()\n    {\n        ProjectId = \"11111111-1111-1111-1111-111111111111\",\n        Origin = \"custom\",\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := observability.GetSources(ctx, \u0026observability.GetSourcesArgs{\n\t\t\tProjectId: pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\tOrigin:    pulumi.StringRef(\"custom\"),\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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetSourcesArgs;\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 custom = ObservabilityFunctions.getSources(GetSourcesArgs.builder()\n            .projectId(\"11111111-1111-1111-1111-111111111111\")\n            .origin(\"custom\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  custom:\n    fn::invoke:\n      function: scaleway:observability:getSources\n      arguments:\n        projectId: 11111111-1111-1111-1111-111111111111\n        origin: custom\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### List default Scaleway sources\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\nconst _default = scaleway.observability.getSources({\n    projectId: \"11111111-1111-1111-1111-111111111111\",\n    origin: \"scaleway\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\ndefault = scaleway.observability.get_sources(project_id=\"11111111-1111-1111-1111-111111111111\",\n    origin=\"scaleway\")\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 @default = Scaleway.Observability.GetSources.Invoke(new()\n    {\n        ProjectId = \"11111111-1111-1111-1111-111111111111\",\n        Origin = \"scaleway\",\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/observability\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := observability.GetSources(ctx, \u0026observability.GetSourcesArgs{\n\t\t\tProjectId: pulumi.StringRef(\"11111111-1111-1111-1111-111111111111\"),\n\t\t\tOrigin:    pulumi.StringRef(\"scaleway\"),\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.observability.ObservabilityFunctions;\nimport com.pulumi.scaleway.observability.inputs.GetSourcesArgs;\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 default = ObservabilityFunctions.getSources(GetSourcesArgs.builder()\n            .projectId(\"11111111-1111-1111-1111-111111111111\")\n            .origin(\"scaleway\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  default:\n    fn::invoke:\n      function: scaleway:observability:getSources\n      arguments:\n        projectId: 11111111-1111-1111-1111-111111111111\n        origin: scaleway\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSources.\n","properties":{"name":{"type":"string","description":"Filter sources by name.\n"},"origin":{"type":"string","description":"Filter sources by origin. Possible values are: \u003cspan pulumi-lang-nodejs=\"`scaleway`\" pulumi-lang-dotnet=\"`Scaleway`\" pulumi-lang-go=\"`scaleway`\" pulumi-lang-python=\"`scaleway`\" pulumi-lang-yaml=\"`scaleway`\" pulumi-lang-java=\"`scaleway`\"\u003e`scaleway`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The project ID the cockpit sources are associated with.\n"},"region":{"type":"string","description":"The region in which the cockpit sources are located.\n"},"type":{"type":"string","description":"Filter sources by type. Possible values are: \u003cspan pulumi-lang-nodejs=\"`metrics`\" pulumi-lang-dotnet=\"`Metrics`\" pulumi-lang-go=\"`metrics`\" pulumi-lang-python=\"`metrics`\" pulumi-lang-yaml=\"`metrics`\" pulumi-lang-java=\"`metrics`\"\u003e`metrics`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`logs`\" pulumi-lang-dotnet=\"`Logs`\" pulumi-lang-go=\"`logs`\" pulumi-lang-python=\"`logs`\" pulumi-lang-yaml=\"`logs`\" pulumi-lang-java=\"`logs`\"\u003e`logs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`traces`\" pulumi-lang-dotnet=\"`Traces`\" pulumi-lang-go=\"`traces`\" pulumi-lang-python=\"`traces`\" pulumi-lang-yaml=\"`traces`\" pulumi-lang-java=\"`traces`\"\u003e`traces`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSources.\n","properties":{"createdAt":{"description":"The date and time of the creation of the cockpit datasource.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"Name of the datasource.\n","type":"string"},"origin":{"description":"The origin of the datasource.\n","type":"string"},"projectId":{"description":"The project ID of the data source.\n","type":"string"},"pushUrl":{"description":"The URL endpoint used for pushing data to the cockpit data source.\n","type":"string"},"region":{"description":"The region of the data source.\n","type":"string"},"retentionDays":{"description":"The number of days to retain data.\n","type":"integer"},"sources":{"description":"List of cockpit sources.\n","items":{"$ref":"#/types/scaleway:observability/getSourcesSource:getSourcesSource"},"type":"array"},"synchronizedWithGrafana":{"description":"Indicates whether the data source is synchronized with Grafana.\n","type":"boolean"},"type":{"description":"The type of the datasource.\n","type":"string"},"updatedAt":{"description":"The date and time of the last update of the cockpit datasource.\n","type":"string"},"url":{"description":"The URL of the datasource.\n","type":"string"}},"required":["createdAt","pushUrl","retentionDays","sources","synchronizedWithGrafana","updatedAt","url","id"],"type":"object"}},"scaleway:redis/getCluster:getCluster":{"description":"Gets information about a Redis™ cluster.\n\nFor further information refer to the Managed Database for Redis™ [API documentation](https://developers.scaleway.com/en/products/redis/api/v1alpha1/#clusters-a85816).\n\n","inputs":{"description":"A collection of arguments for invoking getCluster.\n","properties":{"clusterId":{"type":"string","description":"The Redis cluster ID.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`clusterId`\" pulumi-lang-dotnet=\"`ClusterId`\" pulumi-lang-go=\"`clusterId`\" pulumi-lang-python=\"`cluster_id`\" pulumi-lang-yaml=\"`clusterId`\" pulumi-lang-java=\"`clusterId`\"\u003e`cluster_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the Redis cluster.\n"},"projectId":{"type":"string","description":"The ID of the project the Redis cluster is associated with.\n"},"zone":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The zone in which the server exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCluster.\n","properties":{"acls":{"description":"List of acl rules.\n","items":{"$ref":"#/types/scaleway:redis/getClusterAcl:getClusterAcl"},"type":"array"},"certificate":{"description":"The PEM of the certificate used by redis, only when \u003cspan pulumi-lang-nodejs=\"`tlsEnabled`\" pulumi-lang-dotnet=\"`TlsEnabled`\" pulumi-lang-go=\"`tlsEnabled`\" pulumi-lang-python=\"`tls_enabled`\" pulumi-lang-yaml=\"`tlsEnabled`\" pulumi-lang-java=\"`tlsEnabled`\"\u003e`tls_enabled`\u003c/span\u003e is true.\n","type":"string"},"clusterId":{"type":"string"},"clusterSize":{"description":"The number of nodes in the Redis Cluster.\n","type":"integer"},"createdAt":{"description":"The date and time of creation of the Redis Cluster.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"nodeType":{"description":"The type of Redis Cluster (e.g. `RED1-M`).\n","type":"string"},"password":{"description":"Password of the first user of the Redis Cluster.\n","type":"string"},"passwordWo":{"type":"string"},"passwordWoVersion":{"type":"integer"},"privateIps":{"items":{"$ref":"#/types/scaleway:redis/getClusterPrivateIp:getClusterPrivateIp"},"type":"array"},"privateNetworks":{"description":"List of private networks endpoints of the Redis Cluster.\n","items":{"$ref":"#/types/scaleway:redis/getClusterPrivateNetwork:getClusterPrivateNetwork"},"type":"array"},"projectId":{"type":"string"},"publicNetworks":{"description":"Public network details.\n","items":{"$ref":"#/types/scaleway:redis/getClusterPublicNetwork:getClusterPublicNetwork"},"type":"array"},"settings":{"additionalProperties":{"type":"string"},"description":"Map of settings for redis cluster.\n","type":"object"},"tags":{"description":"The tags associated with the Redis Cluster.\n","items":{"type":"string"},"type":"array"},"tlsEnabled":{"description":"Whether TLS is enabled or not.\n","type":"boolean"},"updatedAt":{"description":"The date and time of the last update of the Redis Cluster.\n","type":"string"},"userName":{"description":"The first user of the Redis Cluster.\n","type":"string"},"version":{"description":"Redis's Cluster version (e.g. `6.2.7`).\n","type":"string"},"zone":{"type":"string"}},"required":["acls","certificate","clusterSize","createdAt","nodeType","password","passwordWo","passwordWoVersion","privateIps","privateNetworks","publicNetworks","settings","tags","tlsEnabled","updatedAt","userName","version","id"],"type":"object"}},"scaleway:registry/getImage:getImage":{"description":"Gets information about a Container Registry image.\n\n","inputs":{"description":"A collection of arguments for invoking getImage.\n","properties":{"imageId":{"type":"string","description":"The image ID.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The image name.\n"},"namespaceId":{"type":"string","description":"The namespace ID in which the image is.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the image is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the image exists.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"The tags associated with the registry image\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getImage.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imageId":{"type":"string"},"name":{"type":"string"},"namespaceId":{"type":"string"},"organizationId":{"description":"The organization ID the image is associated with.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"size":{"description":"The size of the registry image.\n","type":"integer"},"tags":{"description":"The tags associated with the registry image\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"The date the image of the last update\n","type":"string"},"visibility":{"description":"The privacy policy of the registry image.\n","type":"string"}},"required":["namespaceId","organizationId","projectId","size","tags","updatedAt","visibility","id"],"type":"object"}},"scaleway:registry/getImageTag:getImageTag":{"description":"Gets information about a specific tag of a Container Registry image.\n\n","inputs":{"description":"A collection of arguments for invoking getImageTag.\n","properties":{"imageId":{"type":"string","description":"The ID of the registry image.\n"},"name":{"type":"string","description":"The name of the registry image tag.\n"},"projectId":{"type":"string","description":"The ID of the project the image tag is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"The region in which the registry image tag exists.\n","willReplaceOnChanges":true},"tagId":{"type":"string","description":"The ID of the registry image tag.\n"}},"type":"object","required":["imageId"]},"outputs":{"description":"A collection of values returned by getImageTag.\n","properties":{"createdAt":{"description":"The date and time when the registry image tag was created.\n","type":"string"},"digest":{"description":"Hash of the tag content. Several tags of the same image may have the same digest.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"imageId":{"type":"string"},"name":{"type":"string"},"organizationId":{"description":"The organization ID the image tag is associated with.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"status":{"description":"The status of the registry image tag.\n","type":"string"},"tagId":{"type":"string"},"updatedAt":{"description":"The date and time of the last update to the registry image tag.\n","type":"string"}},"required":["createdAt","digest","imageId","organizationId","projectId","status","updatedAt","id"],"type":"object"}},"scaleway:registry/getNamespace:getNamespace":{"description":"Gets information about a registry namespace.\n\n","inputs":{"description":"A collection of arguments for invoking getNamespace.\n","properties":{"name":{"type":"string","description":"The namespace name.\n"},"namespaceId":{"type":"string","description":"The namespace id.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`imageId`\" pulumi-lang-dotnet=\"`ImageId`\" pulumi-lang-go=\"`imageId`\" pulumi-lang-python=\"`image_id`\" pulumi-lang-yaml=\"`imageId`\" pulumi-lang-java=\"`imageId`\"\u003e`image_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the namespace is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the namespace exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getNamespace.\n","properties":{"description":{"type":"string"},"endpoint":{"description":"The endpoint of the Registry Namespace.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isPublic":{"description":"The Namespace Privacy Policy: whether or not the images are public.\n","type":"boolean"},"name":{"type":"string"},"namespaceId":{"type":"string"},"organizationId":{"description":"The organization ID the namespace is associated with.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"}},"required":["description","endpoint","isPublic","organizationId","id"],"type":"object"}},"scaleway:s2svpn/getConnection:getConnection":{"description":"For further information refer to the Site-to-Site VPN [API documentation](https://www.scaleway.com/en/developers/api/site-to-site-vpn/).\n\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\n// Get info by connection ID\nconst myConnection = scaleway.s2svpn.getConnection({\n    connectionId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by connection ID\nmy_connection = scaleway.s2svpn.get_connection(connection_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    // Get info by connection ID\n    var myConnection = Scaleway.S2svpn.GetConnection.Invoke(new()\n    {\n        ConnectionId = \"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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by connection ID\n\t\t_, err := s2svpn.LookupConnection(ctx, \u0026s2svpn.LookupConnectionArgs{\n\t\t\tConnectionId: 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.s2svpn.S2svpnFunctions;\nimport com.pulumi.scaleway.s2svpn.inputs.GetConnectionArgs;\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        // Get info by connection ID\n        final var myConnection = S2svpnFunctions.getConnection(GetConnectionArgs.builder()\n            .connectionId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by connection ID\n  myConnection:\n    fn::invoke:\n      function: scaleway:s2svpn:getConnection\n      arguments:\n        connectionId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by name\nconst myConnection = scaleway.s2svpn.getConnection({\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nmy_connection = scaleway.s2svpn.get_connection(name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by name\n    var myConnection = Scaleway.S2svpn.GetConnection.Invoke(new()\n    {\n        Name = \"foobar\",\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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := s2svpn.LookupConnection(ctx, \u0026s2svpn.LookupConnectionArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.s2svpn.S2svpnFunctions;\nimport com.pulumi.scaleway.s2svpn.inputs.GetConnectionArgs;\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        // Get info by name\n        final var myConnection = S2svpnFunctions.getConnection(GetConnectionArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  myConnection:\n    fn::invoke:\n      function: scaleway:s2svpn:getConnection\n      arguments:\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getConnection.\n","properties":{"connectionId":{"type":"string","description":"The connection ID.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`connectionId`\" pulumi-lang-dotnet=\"`ConnectionId`\" pulumi-lang-go=\"`connectionId`\" pulumi-lang-python=\"`connection_id`\" pulumi-lang-yaml=\"`connectionId`\" pulumi-lang-java=\"`connectionId`\"\u003e`connection_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the connection.\n"},"projectId":{"type":"string","description":"The ID of the project the connection is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the connection exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getConnection.\n","properties":{"bgpConfigIpv4s":{"description":"The BGP IPv4 configuration.\n","items":{"$ref":"#/types/scaleway:s2svpn/getConnectionBgpConfigIpv4:getConnectionBgpConfigIpv4"},"type":"array"},"bgpConfigIpv6s":{"description":"The BGP IPv6 configuration.\n","items":{"$ref":"#/types/scaleway:s2svpn/getConnectionBgpConfigIpv6:getConnectionBgpConfigIpv6"},"type":"array"},"bgpSessionIpv4s":{"description":"The BGP IPv4 session information.\n","items":{"$ref":"#/types/scaleway:s2svpn/getConnectionBgpSessionIpv4:getConnectionBgpSessionIpv4"},"type":"array"},"bgpSessionIpv6s":{"description":"The BGP IPv6 session information.\n","items":{"$ref":"#/types/scaleway:s2svpn/getConnectionBgpSessionIpv6:getConnectionBgpSessionIpv6"},"type":"array"},"bgpStatusIpv4":{"description":"The status of the BGP IPv4 session.\n","type":"string"},"bgpStatusIpv6":{"description":"The status of the BGP IPv6 session.\n","type":"string"},"connectionId":{"type":"string"},"createdAt":{"description":"The date and time of creation of the connection.\n","type":"string"},"customerGatewayId":{"description":"The ID of the customer gateway attached to the connection.\n","type":"string"},"enableRoutePropagation":{"description":"Whether route propagation is enabled.\n","type":"boolean"},"espCiphers":{"description":"The ESP ciphers configuration.\n","items":{"$ref":"#/types/scaleway:s2svpn/getConnectionEspCipher:getConnectionEspCipher"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ikev2Ciphers":{"description":"The IKEv2 ciphers configuration.\n","items":{"$ref":"#/types/scaleway:s2svpn/getConnectionIkev2Cipher:getConnectionIkev2Cipher"},"type":"array"},"initiationPolicy":{"description":"Who initiates the IPSec tunnel.\n","type":"string"},"isIpv6":{"description":"Whether the IPSec tunnel uses IPv6.\n","type":"boolean"},"name":{"type":"string"},"organizationId":{"description":"The Organization ID the connection is associated with.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"routePropagationEnabled":{"description":"Whether route propagation is currently enabled.\n","type":"boolean"},"secretId":{"description":"The ID of the secret containing the pre-shared key (PSK).\n","type":"string"},"secretVersion":{"description":"The version of the secret containing the PSK.\n","type":"integer"},"status":{"description":"The status of the connection.\n","type":"string"},"tags":{"description":"The tags associated with the connection.\n","items":{"type":"string"},"type":"array"},"tunnelStatus":{"description":"The status of the IPSec tunnel.\n","type":"string"},"updatedAt":{"description":"The date and time of the last update of the connection.\n","type":"string"},"vpnGatewayId":{"description":"The ID of the VPN gateway attached to the connection.\n","type":"string"}},"required":["bgpConfigIpv4s","bgpConfigIpv6s","bgpSessionIpv4s","bgpSessionIpv6s","bgpStatusIpv4","bgpStatusIpv6","createdAt","customerGatewayId","enableRoutePropagation","espCiphers","ikev2Ciphers","initiationPolicy","isIpv6","organizationId","routePropagationEnabled","secretId","secretVersion","status","tags","tunnelStatus","updatedAt","vpnGatewayId","id"],"type":"object"}},"scaleway:s2svpn/getCustomerGateway:getCustomerGateway":{"description":"For further information refer to the Site-to-Site VPN [API documentation](https://www.scaleway.com/en/developers/api/site-to-site-vpn/).\n\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\n// Get info by gateway ID\nconst myGateway = scaleway.s2svpn.getCustomerGateway({\n    customerGatewayId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by gateway ID\nmy_gateway = scaleway.s2svpn.get_customer_gateway(customer_gateway_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    // Get info by gateway ID\n    var myGateway = Scaleway.S2svpn.GetCustomerGateway.Invoke(new()\n    {\n        CustomerGatewayId = \"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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by gateway ID\n\t\t_, err := s2svpn.LookupCustomerGateway(ctx, \u0026s2svpn.LookupCustomerGatewayArgs{\n\t\t\tCustomerGatewayId: 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.s2svpn.S2svpnFunctions;\nimport com.pulumi.scaleway.s2svpn.inputs.GetCustomerGatewayArgs;\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        // Get info by gateway ID\n        final var myGateway = S2svpnFunctions.getCustomerGateway(GetCustomerGatewayArgs.builder()\n            .customerGatewayId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by gateway ID\n  myGateway:\n    fn::invoke:\n      function: scaleway:s2svpn:getCustomerGateway\n      arguments:\n        customerGatewayId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by name\nconst myGateway = scaleway.s2svpn.getCustomerGateway({\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nmy_gateway = scaleway.s2svpn.get_customer_gateway(name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by name\n    var myGateway = Scaleway.S2svpn.GetCustomerGateway.Invoke(new()\n    {\n        Name = \"foobar\",\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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := s2svpn.LookupCustomerGateway(ctx, \u0026s2svpn.LookupCustomerGatewayArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.s2svpn.S2svpnFunctions;\nimport com.pulumi.scaleway.s2svpn.inputs.GetCustomerGatewayArgs;\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        // Get info by name\n        final var myGateway = S2svpnFunctions.getCustomerGateway(GetCustomerGatewayArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  myGateway:\n    fn::invoke:\n      function: scaleway:s2svpn:getCustomerGateway\n      arguments:\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomerGateway.\n","properties":{"customerGatewayId":{"type":"string","description":"The customer gateway ID.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`customerGatewayId`\" pulumi-lang-dotnet=\"`CustomerGatewayId`\" pulumi-lang-go=\"`customerGatewayId`\" pulumi-lang-python=\"`customer_gateway_id`\" pulumi-lang-yaml=\"`customerGatewayId`\" pulumi-lang-java=\"`customerGatewayId`\"\u003e`customer_gateway_id`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the customer gateway.\n"},"projectId":{"type":"string","description":"The ID of the project the customer gateway is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the customer gateway exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getCustomerGateway.\n","properties":{"asn":{"description":"The AS Number of the customer gateway.\n","type":"integer"},"createdAt":{"description":"The date and time of creation of the customer gateway.\n","type":"string"},"customerGatewayId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipv4Public":{"description":"The public IPv4 address of the customer gateway.\n","type":"string"},"ipv6Public":{"description":"The public IPv6 address of the customer gateway.\n","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The Organization ID the customer gateway is associated with.\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"tags":{"description":"The tags associated with the customer gateway.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"The date and time of the last update of the customer gateway.\n","type":"string"}},"required":["asn","createdAt","ipv4Public","ipv6Public","organizationId","tags","updatedAt","id"],"type":"object"}},"scaleway:s2svpn/getGateway:getGateway":{"description":"For further information refer to the Site-to-Site VPN [API documentation](https://www.scaleway.com/en/developers/api/site-to-site-vpn/).\n\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\n// Get info by gateway ID\nconst myGateway = scaleway.s2svpn.getGateway({\n    vpnGatewayId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by gateway ID\nmy_gateway = scaleway.s2svpn.get_gateway(vpn_gateway_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    // Get info by gateway ID\n    var myGateway = Scaleway.S2svpn.GetGateway.Invoke(new()\n    {\n        VpnGatewayId = \"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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by gateway ID\n\t\t_, err := s2svpn.LookupGateway(ctx, \u0026s2svpn.LookupGatewayArgs{\n\t\t\tVpnGatewayId: 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.s2svpn.S2svpnFunctions;\nimport com.pulumi.scaleway.s2svpn.inputs.GetGatewayArgs;\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        // Get info by gateway ID\n        final var myGateway = S2svpnFunctions.getGateway(GetGatewayArgs.builder()\n            .vpnGatewayId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by gateway ID\n  myGateway:\n    fn::invoke:\n      function: scaleway:s2svpn:getGateway\n      arguments:\n        vpnGatewayId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by name\nconst myGateway = scaleway.s2svpn.getGateway({\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nmy_gateway = scaleway.s2svpn.get_gateway(name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by name\n    var myGateway = Scaleway.S2svpn.GetGateway.Invoke(new()\n    {\n        Name = \"foobar\",\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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := s2svpn.LookupGateway(ctx, \u0026s2svpn.LookupGatewayArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.s2svpn.S2svpnFunctions;\nimport com.pulumi.scaleway.s2svpn.inputs.GetGatewayArgs;\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        // Get info by name\n        final var myGateway = S2svpnFunctions.getGateway(GetGatewayArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  myGateway:\n    fn::invoke:\n      function: scaleway:s2svpn:getGateway\n      arguments:\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGateway.\n","properties":{"name":{"type":"string","description":"The name of the VPN gateway.\n"},"projectId":{"type":"string","description":"The ID of the project the VPN gateway is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the VPN gateway exists.\n"},"vpnGatewayId":{"type":"string","description":"The VPN gateway ID.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`vpnGatewayId`\" pulumi-lang-dotnet=\"`VpnGatewayId`\" pulumi-lang-go=\"`vpnGatewayId`\" pulumi-lang-python=\"`vpn_gateway_id`\" pulumi-lang-yaml=\"`vpnGatewayId`\" pulumi-lang-java=\"`vpnGatewayId`\"\u003e`vpn_gateway_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGateway.\n","properties":{"asn":{"description":"The AS Number of the VPN gateway.\n","type":"integer"},"createdAt":{"description":"The date and time of creation of the VPN gateway.\n","type":"string"},"gatewayType":{"description":"The VPN gateway type (commercial offer type).\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipamPrivateIpv4Id":{"description":"The ID of the IPAM private IPv4 address attached to the VPN gateway.\n","type":"string"},"ipamPrivateIpv6Id":{"description":"The ID of the IPAM private IPv6 address attached to the VPN gateway.\n","type":"string"},"name":{"type":"string"},"organizationId":{"description":"The Organization ID the VPN gateway is associated with.\n","type":"string"},"privateNetworkId":{"description":"The ID of the Private Network attached to the VPN gateway.\n","type":"string"},"projectId":{"type":"string"},"publicConfigs":{"description":"The public endpoint configuration of the VPN gateway.\n","items":{"$ref":"#/types/scaleway:s2svpn/getGatewayPublicConfig:getGatewayPublicConfig"},"type":"array"},"region":{"type":"string"},"status":{"description":"The status of the VPN gateway.\n","type":"string"},"tags":{"description":"The tags associated with the VPN gateway.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"The date and time of the last update of the VPN gateway.\n","type":"string"},"vpnGatewayId":{"type":"string"},"zone":{"description":"The zone in which the VPN gateway is deployed.\n","type":"string"}},"required":["asn","createdAt","gatewayType","ipamPrivateIpv4Id","ipamPrivateIpv6Id","organizationId","privateNetworkId","publicConfigs","status","tags","updatedAt","zone","id"],"type":"object"}},"scaleway:s2svpn/getRoutingPolicy:getRoutingPolicy":{"description":"For further information refer to the Site-to-Site VPN [API documentation](https://www.scaleway.com/en/developers/api/site-to-site-vpn/).\n\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\n// Get info by routing policy ID\nconst myPolicy = scaleway.s2svpn.getRoutingPolicy({\n    routingPolicyId: \"11111111-1111-1111-1111-111111111111\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by routing policy ID\nmy_policy = scaleway.s2svpn.get_routing_policy(routing_policy_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    // Get info by routing policy ID\n    var myPolicy = Scaleway.S2svpn.GetRoutingPolicy.Invoke(new()\n    {\n        RoutingPolicyId = \"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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by routing policy ID\n\t\t_, err := s2svpn.LookupRoutingPolicy(ctx, \u0026s2svpn.LookupRoutingPolicyArgs{\n\t\t\tRoutingPolicyId: 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.s2svpn.S2svpnFunctions;\nimport com.pulumi.scaleway.s2svpn.inputs.GetRoutingPolicyArgs;\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        // Get info by routing policy ID\n        final var myPolicy = S2svpnFunctions.getRoutingPolicy(GetRoutingPolicyArgs.builder()\n            .routingPolicyId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by routing policy ID\n  myPolicy:\n    fn::invoke:\n      function: scaleway:s2svpn:getRoutingPolicy\n      arguments:\n        routingPolicyId: 11111111-1111-1111-1111-111111111111\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Get info by name\nconst myPolicy = scaleway.s2svpn.getRoutingPolicy({\n    name: \"foobar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Get info by name\nmy_policy = scaleway.s2svpn.get_routing_policy(name=\"foobar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Get info by name\n    var myPolicy = Scaleway.S2svpn.GetRoutingPolicy.Invoke(new()\n    {\n        Name = \"foobar\",\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/s2svpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Get info by name\n\t\t_, err := s2svpn.LookupRoutingPolicy(ctx, \u0026s2svpn.LookupRoutingPolicyArgs{\n\t\t\tName: pulumi.StringRef(\"foobar\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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.s2svpn.S2svpnFunctions;\nimport com.pulumi.scaleway.s2svpn.inputs.GetRoutingPolicyArgs;\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        // Get info by name\n        final var myPolicy = S2svpnFunctions.getRoutingPolicy(GetRoutingPolicyArgs.builder()\n            .name(\"foobar\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Get info by name\n  myPolicy:\n    fn::invoke:\n      function: scaleway:s2svpn:getRoutingPolicy\n      arguments:\n        name: foobar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRoutingPolicy.\n","properties":{"name":{"type":"string","description":"The name of the routing policy.\n"},"projectId":{"type":"string","description":"The ID of the project the routing policy is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the routing policy exists.\n"},"routingPolicyId":{"type":"string","description":"The routing policy ID.\n\n\u003e **Note** You must specify at least one: \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`routingPolicyId`\" pulumi-lang-dotnet=\"`RoutingPolicyId`\" pulumi-lang-go=\"`routingPolicyId`\" pulumi-lang-python=\"`routing_policy_id`\" pulumi-lang-yaml=\"`routingPolicyId`\" pulumi-lang-java=\"`routingPolicyId`\"\u003e`routing_policy_id`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRoutingPolicy.\n","properties":{"createdAt":{"description":"The date and time of creation of the routing policy.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isIpv6":{"description":"Whether the routing policy is for IPv6 prefixes.\n","type":"boolean"},"name":{"type":"string"},"organizationId":{"description":"The Organization ID the routing policy is associated with.\n","type":"string"},"prefixFilterIns":{"description":"List of IP prefixes accepted from the peer gateway.\n","items":{"type":"string"},"type":"array"},"prefixFilterOuts":{"description":"List of IP prefixes advertised to the peer gateway.\n","items":{"type":"string"},"type":"array"},"projectId":{"type":"string"},"region":{"type":"string"},"routingPolicyId":{"type":"string"},"tags":{"description":"The tags associated with the routing policy.\n","items":{"type":"string"},"type":"array"},"updatedAt":{"description":"The date and time of the last update of the routing policy.\n","type":"string"}},"required":["createdAt","isIpv6","organizationId","prefixFilterIns","prefixFilterOuts","tags","updatedAt","id"],"type":"object"}},"scaleway:secrets/getSecret:getSecret":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.secrets.Secret`\" pulumi-lang-dotnet=\"`scaleway.secrets.Secret`\" pulumi-lang-go=\"`secrets.Secret`\" pulumi-lang-python=\"`secrets.Secret`\" pulumi-lang-yaml=\"`scaleway.secrets.Secret`\" pulumi-lang-java=\"`scaleway.secrets.Secret`\"\u003e`scaleway.secrets.Secret`\u003c/span\u003e data source is used to get information about a specific secret in Scaleway's Secret Manager.\n\nRefer to the Secret Manager [product documentation](https://www.scaleway.com/en/docs/identity-and-access-management/secret-manager/) and [API documentation](https://www.scaleway.com/en/developers/api/secret-manager/) for more information.\n\n## Example Usage\n\n### Create a secret and get its information\n\nThe following commands allow you to:\n\n- create a secret named \u003cspan pulumi-lang-nodejs=\"`foo`\" pulumi-lang-dotnet=\"`Foo`\" pulumi-lang-go=\"`foo`\" pulumi-lang-python=\"`foo`\" pulumi-lang-yaml=\"`foo`\" pulumi-lang-java=\"`foo`\"\u003e`foo`\u003c/span\u003e with the description \u003cspan pulumi-lang-nodejs=\"`barr`\" pulumi-lang-dotnet=\"`Barr`\" pulumi-lang-go=\"`barr`\" pulumi-lang-python=\"`barr`\" pulumi-lang-yaml=\"`barr`\" pulumi-lang-java=\"`barr`\"\u003e`barr`\u003c/span\u003e\n- retrieve the secret's information using the secret's ID\n- retrieve the secret's information using the secret's name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Create a secret\nconst main = new scaleway.secrets.Secret(\"main\", {\n    name: \"foo\",\n    description: \"barr\",\n});\n// Get the secret information specified by the secret ID\nconst mySecret = scaleway.secrets.getSecret({\n    secretId: \"11111111-1111-1111-1111-111111111111\",\n});\n// Get the secret information specified by the secret name\nconst byName = scaleway.secrets.getSecret({\n    name: \"your_secret_name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Create a secret\nmain = scaleway.secrets.Secret(\"main\",\n    name=\"foo\",\n    description=\"barr\")\n# Get the secret information specified by the secret ID\nmy_secret = scaleway.secrets.get_secret(secret_id=\"11111111-1111-1111-1111-111111111111\")\n# Get the secret information specified by the secret name\nby_name = scaleway.secrets.get_secret(name=\"your_secret_name\")\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    // Create a secret\n    var main = new Scaleway.Secrets.Secret(\"main\", new()\n    {\n        Name = \"foo\",\n        Description = \"barr\",\n    });\n\n    // Get the secret information specified by the secret ID\n    var mySecret = Scaleway.Secrets.GetSecret.Invoke(new()\n    {\n        SecretId = \"11111111-1111-1111-1111-111111111111\",\n    });\n\n    // Get the secret information specified by the secret name\n    var byName = Scaleway.Secrets.GetSecret.Invoke(new()\n    {\n        Name = \"your_secret_name\",\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/secrets\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a secret\n\t\t_, err := secrets.NewSecret(ctx, \"main\", \u0026secrets.SecretArgs{\n\t\t\tName:        pulumi.String(\"foo\"),\n\t\t\tDescription: pulumi.String(\"barr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Get the secret information specified by the secret ID\n\t\t_, err = secrets.LookupSecret(ctx, \u0026secrets.LookupSecretArgs{\n\t\t\tSecretId: 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\t// Get the secret information specified by the secret name\n\t\t_, err = secrets.LookupSecret(ctx, \u0026secrets.LookupSecretArgs{\n\t\t\tName: pulumi.StringRef(\"your_secret_name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.scaleway.secrets.Secret;\nimport com.pulumi.scaleway.secrets.SecretArgs;\nimport com.pulumi.scaleway.secrets.SecretsFunctions;\nimport com.pulumi.scaleway.secrets.inputs.GetSecretArgs;\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        // Create a secret\n        var main = new Secret(\"main\", SecretArgs.builder()\n            .name(\"foo\")\n            .description(\"barr\")\n            .build());\n\n        // Get the secret information specified by the secret ID\n        final var mySecret = SecretsFunctions.getSecret(GetSecretArgs.builder()\n            .secretId(\"11111111-1111-1111-1111-111111111111\")\n            .build());\n\n        // Get the secret information specified by the secret name\n        final var byName = SecretsFunctions.getSecret(GetSecretArgs.builder()\n            .name(\"your_secret_name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a secret\n  main:\n    type: scaleway:secrets:Secret\n    properties:\n      name: foo\n      description: barr\nvariables:\n  # Get the secret information specified by the secret ID\n  mySecret:\n    fn::invoke:\n      function: scaleway:secrets:getSecret\n      arguments:\n        secretId: 11111111-1111-1111-1111-111111111111\n  # Get the secret information specified by the secret name\n  byName:\n    fn::invoke:\n      function: scaleway:secrets:getSecret\n      arguments:\n        name: your_secret_name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSecret.\n","properties":{"name":{"type":"string","description":"The name of the secret.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e should be specified.\n"},"organizationId":{"type":"string","description":"The ID of the Scaleway Organization the Project is associated with. If no default \u003cspan pulumi-lang-nodejs=\"`organizationId`\" pulumi-lang-dotnet=\"`OrganizationId`\" pulumi-lang-go=\"`organizationId`\" pulumi-lang-python=\"`organization_id`\" pulumi-lang-yaml=\"`organizationId`\" pulumi-lang-java=\"`organizationId`\"\u003e`organization_id`\u003c/span\u003e is set, it must be set explicitly in this data source.\n"},"path":{"type":"string","description":"The path of the secret.\nConflicts with \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"). The ID of the\nProject the secret is associated with.\n"},"region":{"type":"string","description":"). The region in which the secret exists.\n"},"secretId":{"type":"string","description":"The ID of the secret.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e should be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSecret.\n","properties":{"createdAt":{"type":"string"},"description":{"type":"string"},"ephemeralPolicies":{"items":{"$ref":"#/types/scaleway:secrets/getSecretEphemeralPolicy:getSecretEphemeralPolicy"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"organizationId":{"type":"string"},"path":{"type":"string"},"projectId":{"type":"string"},"protected":{"type":"boolean"},"region":{"type":"string"},"secretId":{"type":"string"},"status":{"type":"string"},"tags":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"},"updatedAt":{"type":"string"},"versionCount":{"type":"integer"},"versions":{"items":{"$ref":"#/types/scaleway:secrets/getSecretVersion:getSecretVersion"},"type":"array"}},"required":["createdAt","description","ephemeralPolicies","organizationId","protected","status","tags","type","updatedAt","versionCount","versions","id"],"type":"object"}},"scaleway:secrets/getVersion:getVersion":{"description":"The \u003cspan pulumi-lang-nodejs=\"`scaleway.secrets.Version`\" pulumi-lang-dotnet=\"`scaleway.secrets.Version`\" pulumi-lang-go=\"`secrets.Version`\" pulumi-lang-python=\"`secrets.Version`\" pulumi-lang-yaml=\"`scaleway.secrets.Version`\" pulumi-lang-java=\"`scaleway.secrets.Version`\"\u003e`scaleway.secrets.Version`\u003c/span\u003e data source is used to get information about a specific secret version stored in Scaleway Secret Manager.\n\nRefer to the Secret Manager [product documentation](https://www.scaleway.com/en/docs/identity-and-access-management/secret-manager/) and [API documentation](https://www.scaleway.com/en/developers/api/secret-manager/) for more information.\n\n## Example Usage\n\n### Use Secret Manager\n\nThe following commands allow you to:\n\n- create a secret named \u003cspan pulumi-lang-nodejs=\"`fooii`\" pulumi-lang-dotnet=\"`Fooii`\" pulumi-lang-go=\"`fooii`\" pulumi-lang-python=\"`fooii`\" pulumi-lang-yaml=\"`fooii`\" pulumi-lang-java=\"`fooii`\"\u003e`fooii`\u003c/span\u003e\n- create a new version of \u003cspan pulumi-lang-nodejs=\"`fooii`\" pulumi-lang-dotnet=\"`Fooii`\" pulumi-lang-go=\"`fooii`\" pulumi-lang-python=\"`fooii`\" pulumi-lang-yaml=\"`fooii`\" pulumi-lang-java=\"`fooii`\"\u003e`fooii`\u003c/span\u003e containing data (\u003cspan pulumi-lang-nodejs=\"`yourSecret`\" pulumi-lang-dotnet=\"`YourSecret`\" pulumi-lang-go=\"`yourSecret`\" pulumi-lang-python=\"`your_secret`\" pulumi-lang-yaml=\"`yourSecret`\" pulumi-lang-java=\"`yourSecret`\"\u003e`your_secret`\u003c/span\u003e)\n- retrieve the secret version specified by the secret ID and the desired version\n- retrieve the secret version specified by the secret name and the desired version\n\nThe output blocks display the sensitive data contained in your secret version.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as scaleway from \"@pulumiverse/scaleway\";\n\n// Create a secret named fooii\nconst main = new scaleway.secrets.Secret(\"main\", {\n    name: \"fooii\",\n    description: \"barr\",\n});\n// Create a version of fooii containing data\nconst mainVersion = new scaleway.secrets.Version(\"main\", {\n    description: \"your description\",\n    secretId: main.id,\n    data: \"your_secret\",\n});\n// Retrieve the secret version specified by the secret ID and the desired version\nconst dataBySecretId = scaleway.secrets.getVersionOutput({\n    secretId: main.id,\n    revision: \"1\",\n});\n// Retrieve the secret version specified by the secret name and the desired version\nconst dataBySecretName = scaleway.secrets.getVersionOutput({\n    secretName: main.name,\n    revision: \"1\",\n});\nexport const scalewaySecretAccessPayload = dataBySecretName.apply(dataBySecretName =\u003e dataBySecretName.data);\nexport const scalewaySecretAccessPayloadById = dataBySecretId.apply(dataBySecretId =\u003e dataBySecretId.data);\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\nimport pulumiverse_scaleway as scaleway\n\n# Create a secret named fooii\nmain = scaleway.secrets.Secret(\"main\",\n    name=\"fooii\",\n    description=\"barr\")\n# Create a version of fooii containing data\nmain_version = scaleway.secrets.Version(\"main\",\n    description=\"your description\",\n    secret_id=main.id,\n    data=\"your_secret\")\n# Retrieve the secret version specified by the secret ID and the desired version\ndata_by_secret_id = scaleway.secrets.get_version_output(secret_id=main.id,\n    revision=\"1\")\n# Retrieve the secret version specified by the secret name and the desired version\ndata_by_secret_name = scaleway.secrets.get_version_output(secret_name=main.name,\n    revision=\"1\")\npulumi.export(\"scalewaySecretAccessPayload\", data_by_secret_name.data)\npulumi.export(\"scalewaySecretAccessPayloadById\", data_by_secret_id.data)\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    // Create a secret named fooii\n    var main = new Scaleway.Secrets.Secret(\"main\", new()\n    {\n        Name = \"fooii\",\n        Description = \"barr\",\n    });\n\n    // Create a version of fooii containing data\n    var mainVersion = new Scaleway.Secrets.Version(\"main\", new()\n    {\n        Description = \"your description\",\n        SecretId = main.Id,\n        Data = \"your_secret\",\n    });\n\n    // Retrieve the secret version specified by the secret ID and the desired version\n    var dataBySecretId = Scaleway.Secrets.GetVersion.Invoke(new()\n    {\n        SecretId = main.Id,\n        Revision = \"1\",\n    });\n\n    // Retrieve the secret version specified by the secret name and the desired version\n    var dataBySecretName = Scaleway.Secrets.GetVersion.Invoke(new()\n    {\n        SecretName = main.Name,\n        Revision = \"1\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"scalewaySecretAccessPayload\"] = dataBySecretName.Apply(getVersionResult =\u003e getVersionResult.Data),\n        [\"scalewaySecretAccessPayloadById\"] = dataBySecretId.Apply(getVersionResult =\u003e getVersionResult.Data),\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/secrets\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a secret named fooii\n\t\tmain, err := secrets.NewSecret(ctx, \"main\", \u0026secrets.SecretArgs{\n\t\t\tName:        pulumi.String(\"fooii\"),\n\t\t\tDescription: pulumi.String(\"barr\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a version of fooii containing data\n\t\t_, err = secrets.NewVersion(ctx, \"main\", \u0026secrets.VersionArgs{\n\t\t\tDescription: pulumi.String(\"your description\"),\n\t\t\tSecretId:    main.ID(),\n\t\t\tData:        pulumi.String(\"your_secret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Retrieve the secret version specified by the secret ID and the desired version\n\t\tdataBySecretId := secrets.LookupVersionOutput(ctx, secrets.GetVersionOutputArgs{\n\t\t\tSecretId: main.ID(),\n\t\t\tRevision: pulumi.String(\"1\"),\n\t\t}, nil)\n\t\t// Retrieve the secret version specified by the secret name and the desired version\n\t\tdataBySecretName := secrets.LookupVersionOutput(ctx, secrets.GetVersionOutputArgs{\n\t\t\tSecretName: main.Name,\n\t\t\tRevision:   pulumi.String(\"1\"),\n\t\t}, nil)\n\t\tctx.Export(\"scalewaySecretAccessPayload\", dataBySecretName.ApplyT(func(dataBySecretName secrets.GetVersionResult) (*string, error) {\n\t\t\treturn \u0026dataBySecretName.Data, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"scalewaySecretAccessPayloadById\", dataBySecretId.ApplyT(func(dataBySecretId secrets.GetVersionResult) (*string, error) {\n\t\t\treturn \u0026dataBySecretId.Data, nil\n\t\t}).(pulumi.StringPtrOutput))\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.secrets.Secret;\nimport com.pulumi.scaleway.secrets.SecretArgs;\nimport com.pulumi.scaleway.secrets.Version;\nimport com.pulumi.scaleway.secrets.VersionArgs;\nimport com.pulumi.scaleway.secrets.SecretsFunctions;\nimport com.pulumi.scaleway.secrets.inputs.GetVersionArgs;\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        // Create a secret named fooii\n        var main = new Secret(\"main\", SecretArgs.builder()\n            .name(\"fooii\")\n            .description(\"barr\")\n            .build());\n\n        // Create a version of fooii containing data\n        var mainVersion = new Version(\"mainVersion\", VersionArgs.builder()\n            .description(\"your description\")\n            .secretId(main.id())\n            .data(\"your_secret\")\n            .build());\n\n        // Retrieve the secret version specified by the secret ID and the desired version\n        final var dataBySecretId = SecretsFunctions.getVersion(GetVersionArgs.builder()\n            .secretId(main.id())\n            .revision(\"1\")\n            .build());\n\n        // Retrieve the secret version specified by the secret name and the desired version\n        final var dataBySecretName = SecretsFunctions.getVersion(GetVersionArgs.builder()\n            .secretName(main.name())\n            .revision(\"1\")\n            .build());\n\n        ctx.export(\"scalewaySecretAccessPayload\", dataBySecretName.applyValue(_dataBySecretName -\u003e _dataBySecretName.data()));\n        ctx.export(\"scalewaySecretAccessPayloadById\", dataBySecretId.applyValue(_dataBySecretId -\u003e _dataBySecretId.data()));\n    }\n}\n```\n```yaml\nresources:\n  # Create a secret named fooii\n  main:\n    type: scaleway:secrets:Secret\n    properties:\n      name: fooii\n      description: barr\n  # Create a version of fooii containing data\n  mainVersion:\n    type: scaleway:secrets:Version\n    name: main\n    properties:\n      description: your description\n      secretId: ${main.id}\n      data: your_secret\nvariables:\n  # Retrieve the secret version specified by the secret ID and the desired version\n  dataBySecretId:\n    fn::invoke:\n      function: scaleway:secrets:getVersion\n      arguments:\n        secretId: ${main.id}\n        revision: '1'\n  # Retrieve the secret version specified by the secret name and the desired version\n  dataBySecretName:\n    fn::invoke:\n      function: scaleway:secrets:getVersion\n      arguments:\n        secretName: ${main.name}\n        revision: '1'\noutputs:\n  # Display sensitive data\n  scalewaySecretAccessPayload: ${dataBySecretName.data}\n  # Display sensitive data\n  scalewaySecretAccessPayloadById: ${dataBySecretId.data}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Data\n\nNote: This data source provides you with access to the secret payload, which is encoded in base64.\n\nKeep in mind that this is a sensitive attribute. For more information,\nsee Sensitive Data in State.\n\n\u003e **Important:**  This property is sensitive and will not be displayed in the pulumi preview, for security reasons.\n","inputs":{"description":"A collection of arguments for invoking getVersion.\n","properties":{"organizationId":{"type":"string"},"projectId":{"type":"string","description":"The ID of the Scaleway Project associated with the secret version.\n"},"region":{"type":"string"},"revision":{"type":"string","description":"The revision for this secret version. Refer to alternative values (ex: \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e) in the [API documentation](https://www.scaleway.com/en/developers/api/secret-manager/#path-secret-versions-access-a-secrets-version-using-the-secrets-id)\n"},"secretId":{"type":"string","description":"The ID of the secret associated with the secret version. Only one of \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretName`\" pulumi-lang-dotnet=\"`SecretName`\" pulumi-lang-go=\"`secretName`\" pulumi-lang-python=\"`secret_name`\" pulumi-lang-yaml=\"`secretName`\" pulumi-lang-java=\"`secretName`\"\u003e`secret_name`\u003c/span\u003e should be specified.\n"},"secretName":{"type":"string","description":"The name of the secret associated with the secret version.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`secretId`\" pulumi-lang-dotnet=\"`SecretId`\" pulumi-lang-go=\"`secretId`\" pulumi-lang-python=\"`secret_id`\" pulumi-lang-yaml=\"`secretId`\" pulumi-lang-java=\"`secretId`\"\u003e`secret_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretName`\" pulumi-lang-dotnet=\"`SecretName`\" pulumi-lang-go=\"`secretName`\" pulumi-lang-python=\"`secret_name`\" pulumi-lang-yaml=\"`secretName`\" pulumi-lang-java=\"`secretName`\"\u003e`secret_name`\u003c/span\u003e should be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getVersion.\n","properties":{"createdAt":{"description":"The date and time of the secret version's creation in RFC 3339 format.\n","type":"string"},"data":{"description":"The data payload of the secret version. This is a sensitive attribute containing the secret value, encoded in base64. Learn more in the data section.\n","secret":true,"type":"string"},"dataWo":{"type":"string"},"dataWoVersion":{"type":"integer"},"description":{"description":"(Optional) The description of the secret version (e.g. `my-new-description`).\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"organizationId":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"revision":{"type":"string"},"secretId":{"type":"string"},"secretName":{"type":"string"},"status":{"description":"The status of the secret version.\n","type":"string"},"updatedAt":{"description":"The date and time of the secret version's last update in RFC 3339 format.\n","type":"string"}},"required":["createdAt","data","dataWo","dataWoVersion","description","organizationId","status","updatedAt","id"],"type":"object"}},"scaleway:tem/getDomain:getDomain":{"description":"Gets information about a transactional email domain.\n\n","inputs":{"description":"A collection of arguments for invoking getDomain.\n","properties":{"domainId":{"type":"string","description":"The domain id.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`domainId`\" pulumi-lang-dotnet=\"`DomainId`\" pulumi-lang-go=\"`domainId`\" pulumi-lang-python=\"`domain_id`\" pulumi-lang-yaml=\"`domainId`\" pulumi-lang-java=\"`domainId`\"\u003e`domain_id`\u003c/span\u003e should be specified.\n"},"name":{"type":"string","description":"The domain name.\nOnly one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`domainId`\" pulumi-lang-dotnet=\"`DomainId`\" pulumi-lang-go=\"`domainId`\" pulumi-lang-python=\"`domain_id`\" pulumi-lang-yaml=\"`domainId`\" pulumi-lang-java=\"`domainId`\"\u003e`domain_id`\u003c/span\u003e should be specified.\n"},"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the domain is associated with.\n"},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region in which the domain exists.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getDomain.\n","properties":{"acceptTos":{"type":"boolean"},"autoconfig":{"type":"boolean"},"createdAt":{"type":"string"},"dkimConfig":{"type":"string"},"dkimName":{"type":"string"},"dmarcConfig":{"type":"string"},"dmarcName":{"type":"string"},"domainId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lastError":{"type":"string"},"lastValidAt":{"type":"string"},"mxBlackhole":{"type":"string"},"mxConfig":{"type":"string"},"name":{"type":"string"},"nextCheckAt":{"type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"reputations":{"items":{"$ref":"#/types/scaleway:tem/getDomainReputation:getDomainReputation"},"type":"array"},"revokedAt":{"type":"string"},"smtpHost":{"type":"string"},"smtpPort":{"type":"integer"},"smtpPortAlternative":{"type":"integer"},"smtpPortUnsecure":{"type":"integer"},"smtpsAuthUser":{"type":"string"},"smtpsPort":{"type":"integer"},"smtpsPortAlternative":{"type":"integer"},"spfConfig":{"type":"string"},"spfValue":{"type":"string"},"status":{"type":"string"}},"required":["acceptTos","autoconfig","createdAt","dkimConfig","dkimName","dmarcConfig","dmarcName","lastError","lastValidAt","mxBlackhole","mxConfig","nextCheckAt","reputations","revokedAt","smtpHost","smtpPort","smtpPortAlternative","smtpPortUnsecure","smtpsAuthUser","smtpsPort","smtpsPortAlternative","spfConfig","spfValue","status","id"],"type":"object"}},"scaleway:tem/getOfferSubscription:getOfferSubscription":{"description":"Gets information about a transactional email offer subscription.\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\n// Retrieve offer subscription information\nconst test = scaleway.tem.getOfferSubscription({});\n```\n```python\nimport pulumi\nimport pulumi_scaleway as scaleway\n\n# Retrieve offer subscription information\ntest = scaleway.tem.get_offer_subscription()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Scaleway = Pulumi.Scaleway;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Retrieve offer subscription information\n    var test = Scaleway.Tem.GetOfferSubscription.Invoke();\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/tem\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Retrieve offer subscription information\n\t\t_, err := tem.GetOfferSubscription(ctx, \u0026tem.GetOfferSubscriptionArgs{}, 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.tem.TemFunctions;\nimport com.pulumi.scaleway.tem.inputs.GetOfferSubscriptionArgs;\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        // Retrieve offer subscription information\n        final var test = TemFunctions.getOfferSubscription(GetOfferSubscriptionArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # Retrieve offer subscription information\n  test:\n    fn::invoke:\n      function: scaleway:tem:getOfferSubscription\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOfferSubscription.\n","properties":{"projectId":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e) The ID of the project the offer subscription is associated with.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"\u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e) The region where the offer subscription exists.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getOfferSubscription.\n","properties":{"cancellationAvailableAt":{"description":"The date and time when cancellation becomes available for the subscription.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"includedMonthlyEmails":{"description":"The number of emails included in the offer subscription per month.\n","type":"integer"},"maxCustomBlocklistsPerDomain":{"description":"The maximum number of custom blocklists that can be associated with the offer subscription per domain.\n","type":"integer"},"maxDedicatedIps":{"description":"The maximum number of dedicated IPs that can be associated with the offer subscription.\n","type":"integer"},"maxDomains":{"description":"The maximum number of domains that can be associated with the offer subscription.\n","type":"integer"},"maxWebhooksPerDomain":{"description":"The maximum number of webhooks that can be associated with the offer subscription per domain.\n","type":"integer"},"offerName":{"description":"The name of the offer associated with the subscription (e.g., \u003cspan pulumi-lang-nodejs=\"`scale`\" pulumi-lang-dotnet=\"`Scale`\" pulumi-lang-go=\"`scale`\" pulumi-lang-python=\"`scale`\" pulumi-lang-yaml=\"`scale`\" pulumi-lang-java=\"`scale`\"\u003e`scale`\u003c/span\u003e).\n","type":"string"},"projectId":{"type":"string"},"region":{"type":"string"},"sla":{"description":"The Service Level Agreement (SLA) percentage of the offer subscription.\n","type":"number"},"subscribedAt":{"description":"The date and time of the subscription.\n","type":"string"}},"required":["cancellationAvailableAt","includedMonthlyEmails","maxCustomBlocklistsPerDomain","maxDedicatedIps","maxDomains","maxWebhooksPerDomain","offerName","projectId","sla","subscribedAt","id"],"type":"object"}}}}