diff --git a/.pulumi-java-gen.version b/.pulumi-java-gen.version index 7092c7c4..d183d4ac 100644 --- a/.pulumi-java-gen.version +++ b/.pulumi-java-gen.version @@ -1 +1 @@ -0.15.0 \ No newline at end of file +0.16.0 \ No newline at end of file diff --git a/provider/cmd/pulumi-resource-ovh/bridge-metadata.json b/provider/cmd/pulumi-resource-ovh/bridge-metadata.json index e47ec925..ab1ab504 100644 --- a/provider/cmd/pulumi-resource-ovh/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-ovh/bridge-metadata.json @@ -48,12 +48,14 @@ "ovh:Dedicated/nasHAPartition:NasHAPartition": 0, "ovh:Dedicated/nasHAPartitionAccess:NasHAPartitionAccess": 0, "ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot": 0, + "ovh:Dedicated/server:Server": 1, "ovh:Dedicated/serverInstallTask:ServerInstallTask": 0, "ovh:Dedicated/serverNetworking:ServerNetworking": 0, "ovh:Dedicated/serverRebootTask:ServerRebootTask": 0, "ovh:Dedicated/serverUpdate:ServerUpdate": 0, "ovh:Domain/zone:Zone": 0, "ovh:Domain/zoneDNSSec:ZoneDNSSec": 1, + "ovh:Domain/zoneImport:ZoneImport": 1, "ovh:Domain/zoneRecord:ZoneRecord": 0, "ovh:Domain/zoneRedirection:ZoneRedirection": 0, "ovh:Hosting/privateDatabase:PrivateDatabase": 0, diff --git a/provider/cmd/pulumi-resource-ovh/schema.json b/provider/cmd/pulumi-resource-ovh/schema.json index 1bf53073..7b90d3f1 100644 --- a/provider/cmd/pulumi-resource-ovh/schema.json +++ b/provider/cmd/pulumi-resource-ovh/schema.json @@ -758,7 +758,7 @@ "items": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" } }, "description": "taints\n" @@ -1563,7 +1563,7 @@ "items": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" } }, "description": "taints\n" @@ -2219,6 +2219,61 @@ "inputSection" ] }, + "ovh:Dedicated/ServerDetails:ServerDetails": { + "properties": { + "customHostname": { + "type": "string", + "description": "Personnal hostname to use in server reinstallation\n" + }, + "diskGroupId": { + "type": "number", + "description": "Disk group id to process install on (only available for some templates)\n" + }, + "noRaid": { + "type": "boolean", + "description": "true if you want to install only on the first disk\n" + }, + "softRaidDevices": { + "type": "number", + "description": "Number of devices to use for system's software RAID\n" + } + }, + "type": "object" + }, + "ovh:Dedicated/ServerIam:ServerIam": { + "properties": { + "displayName": { + "type": "string", + "description": "Resource display name\n" + }, + "id": { + "type": "string", + "description": "Unique identifier of the resource in the IAM\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Resource tags. Tags that were internally computed are prefixed with `ovh:`\n" + }, + "urn": { + "type": "string", + "description": "URN of the private database, used when writing IAM policies\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "displayName", + "id", + "tags", + "urn" + ] + } + } + }, "ovh:Dedicated/ServerInstallTaskDetails:ServerInstallTaskDetails": { "properties": { "customHostname": { @@ -2236,16 +2291,6 @@ "description": "Set to true to disable RAID.\n", "willReplaceOnChanges": true }, - "postInstallationScriptLink": { - "type": "string", - "description": "Indicate the URL where your postinstall customisation script is located.\n", - "willReplaceOnChanges": true - }, - "postInstallationScriptReturn": { - "type": "string", - "description": "Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'.\n", - "willReplaceOnChanges": true - }, "softRaidDevices": { "type": "integer", "description": "soft raid devices.\n", @@ -2293,6 +2338,193 @@ "type" ] }, + "ovh:Dedicated/ServerOrder:ServerOrder": { + "properties": { + "date": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerOrderDetail:ServerOrderDetail" + }, + "description": "Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver\u0026branch=v1#post-/dedicated/server/-serviceName-/install/start)\n" + }, + "expirationDate": { + "type": "string" + }, + "orderId": { + "type": "number" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "date", + "details", + "expirationDate", + "orderId" + ] + } + } + }, + "ovh:Dedicated/ServerOrderDetail:ServerOrderDetail": { + "properties": { + "description": { + "type": "string" + }, + "detailType": { + "type": "string", + "description": "Product type of item in order\n" + }, + "domain": { + "type": "string" + }, + "orderDetailId": { + "type": "number" + }, + "quantity": { + "type": "string" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "description", + "detailType", + "domain", + "orderDetailId", + "quantity" + ] + } + } + }, + "ovh:Dedicated/ServerPlan:ServerPlan": { + "properties": { + "configurations": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerPlanConfiguration:ServerPlanConfiguration" + } + }, + "duration": { + "type": "string", + "description": "Duration selected for the purchase of the product\n" + }, + "itemId": { + "type": "number", + "description": "Cart item to be linked\n" + }, + "planCode": { + "type": "string", + "description": "Identifier of the option offer\n" + }, + "pricingMode": { + "type": "string", + "description": "Pricing mode selected for the purchase of the product\n" + }, + "quantity": { + "type": "number", + "description": "Quantity of product desired\n" + } + }, + "type": "object", + "required": [ + "duration", + "planCode", + "pricingMode" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "configurations", + "duration", + "planCode", + "pricingMode" + ] + } + } + }, + "ovh:Dedicated/ServerPlanConfiguration:ServerPlanConfiguration": { + "properties": { + "label": { + "type": "string", + "description": "Label for your configuration item\n" + }, + "value": { + "type": "string", + "description": "Value or resource URL on API.OVH.COM of your configuration item\n" + } + }, + "type": "object", + "required": [ + "label", + "value" + ] + }, + "ovh:Dedicated/ServerPlanOption:ServerPlanOption": { + "properties": { + "configurations": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerPlanOptionConfiguration:ServerPlanOptionConfiguration" + } + }, + "duration": { + "type": "string", + "description": "Duration selected for the purchase of the product\n" + }, + "planCode": { + "type": "string", + "description": "Identifier of the option offer\n" + }, + "pricingMode": { + "type": "string", + "description": "Pricing mode selected for the purchase of the product\n" + }, + "quantity": { + "type": "number", + "description": "Quantity of product desired\n" + } + }, + "type": "object", + "required": [ + "duration", + "planCode", + "pricingMode", + "quantity" + ] + }, + "ovh:Dedicated/ServerPlanOptionConfiguration:ServerPlanOptionConfiguration": { + "properties": { + "label": { + "type": "string", + "description": "Label for your configuration item\n" + }, + "value": { + "type": "string", + "description": "Value or resource URL on API.OVH.COM of your configuration item\n" + } + }, + "type": "object", + "required": [ + "label", + "value" + ] + }, + "ovh:Dedicated/ServerUserMetadata:ServerUserMetadata": { + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, "ovh:Dedicated/getServerSpecificationsHardwareDefaultHardwareRaidSize:getServerSpecificationsHardwareDefaultHardwareRaidSize": { "properties": { "unit": { @@ -4001,14 +4233,6 @@ "customHostname": { "type": "string", "description": "Set up the server using the provided hostname instead of the default hostname.\n" - }, - "postInstallationScriptLink": { - "type": "string", - "description": "Indicate the URL where your postinstall customisation script is located.\n" - }, - "postInstallationScriptReturn": { - "type": "string", - "description": "indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'.\n" } }, "type": "object" @@ -4057,21 +4281,11 @@ "customHostname": { "type": "string", "description": "Set up the server using the provided hostname instead of the default hostname.\n" - }, - "postInstallationScriptLink": { - "type": "string", - "description": "Indicate the URL where your postinstall customisation script is located.\n" - }, - "postInstallationScriptReturn": { - "type": "string", - "description": "Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'.\n" } }, "type": "object", "required": [ - "customHostname", - "postInstallationScriptLink", - "postInstallationScriptReturn" + "customHostname" ], "language": { "nodejs": { @@ -5211,10 +5425,6 @@ "type": "string", "description": "duration\n" }, - "itemId": { - "type": "number", - "description": "Cart item to be linked\n" - }, "planCode": { "type": "string", "description": "Plan code\n" @@ -5231,23 +5441,10 @@ "type": "object", "required": [ "duration", - "itemId", "planCode", "pricingMode", "quantity" - ], - "language": { - "nodejs": { - "requiredOutputs": [ - "configurations", - "duration", - "itemId", - "planCode", - "pricingMode", - "quantity" - ] - } - } + ] }, "ovh:Vps/VpsPlanOptionConfiguration:VpsPlanOptionConfiguration": { "properties": { @@ -6028,14 +6225,14 @@ } }, "ovh:CloudProject/containerRegistryIPRestrictionsManagement:ContainerRegistryIPRestrictionsManagement": { - "description": "Apply IP restrictions container registry associated with a public cloud project on Harbor UI and API.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst registry = ovh.CloudProject.getContainerRegistry({\n serviceName: \"XXXXXX\",\n registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nconst my_mgt_iprestrictions = new ovh.cloudproject.ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\", {\n serviceName: ovh_cloud_project_containerregistry.registry.service_name,\n registryId: ovh_cloud_project_containerregistry.registry.id,\n ipRestrictions: [{\n ip_block: \"xxx.xxx.xxx.xxx/xx\",\n description: \"xxxxxxx\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregistry = ovh.CloudProject.get_container_registry(service_name=\"XXXXXX\",\n registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\nmy_mgt_iprestrictions = ovh.cloud_project.ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\",\n service_name=ovh_cloud_project_containerregistry[\"registry\"][\"service_name\"],\n registry_id=ovh_cloud_project_containerregistry[\"registry\"][\"id\"],\n ip_restrictions=[{\n \"ip_block\": \"xxx.xxx.xxx.xxx/xx\",\n \"description\": \"xxxxxxx\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var registry = Ovh.CloudProject.GetContainerRegistry.Invoke(new()\n {\n ServiceName = \"XXXXXX\",\n RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n });\n\n var my_mgt_iprestrictions = new Ovh.CloudProject.ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\", new()\n {\n ServiceName = ovh_cloud_project_containerregistry.Registry.Service_name,\n RegistryId = ovh_cloud_project_containerregistry.Registry.Id,\n IpRestrictions = new[]\n {\n \n {\n { \"ip_block\", \"xxx.xxx.xxx.xxx/xx\" },\n { \"description\", \"xxxxxxx\" },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.GetContainerRegistry(ctx, \u0026cloudproject.GetContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewContainerRegistryIPRestrictionsManagement(ctx, \"my-mgt-iprestrictions\", \u0026CloudProject.ContainerRegistryIPRestrictionsManagementArgs{\n\t\t\tServiceName: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Service_name),\n\t\t\tRegistryId: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Id),\n\t\t\tIpRestrictions: pulumi.MapArray{\n\t\t\t\tpulumi.Map{\n\t\t\t\t\t\"ip_block\": pulumi.Any(\"xxx.xxx.xxx.xxx/xx\"),\n\t\t\t\t\t\"description\": pulumi.Any(\"xxxxxxx\"),\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.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryArgs;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsManagement;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsManagementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 registry = CloudProjectFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()\n .serviceName(\"XXXXXX\")\n .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n .build());\n\n var my_mgt_iprestrictions = new ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\", ContainerRegistryIPRestrictionsManagementArgs.builder()\n .serviceName(ovh_cloud_project_containerregistry.registry().service_name())\n .registryId(ovh_cloud_project_containerregistry.registry().id())\n .ipRestrictions(Map.ofEntries(\n Map.entry(\"ip_block\", \"xxx.xxx.xxx.xxx/xx\"),\n Map.entry(\"description\", \"xxxxxxx\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-mgt-iprestrictions:\n type: ovh:CloudProject:ContainerRegistryIPRestrictionsManagement\n properties:\n serviceName: ${ovh_cloud_project_containerregistry.registry.service_name}\n registryId: ${ovh_cloud_project_containerregistry.registry.id}\n ipRestrictions:\n - ip_block: xxx.xxx.xxx.xxx/xx\n description: xxxxxxx\nvariables:\n registry:\n fn::invoke:\n Function: ovh:CloudProject:getContainerRegistry\n Arguments:\n serviceName: XXXXXX\n registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Apply IP restrictions container registry associated with a public cloud project on Harbor UI and API.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst registry = ovh.CloudProject.getContainerRegistry({\n serviceName: \"XXXXXX\",\n registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nconst my_mgt_iprestrictions = new ovh.cloudproject.ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\", {\n serviceName: ovh_cloud_project_containerregistry.registry.service_name,\n registryId: ovh_cloud_project_containerregistry.registry.id,\n ipRestrictions: [{\n ip_block: \"xxx.xxx.xxx.xxx/xx\",\n description: \"xxxxxxx\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregistry = ovh.CloudProject.get_container_registry(service_name=\"XXXXXX\",\n registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\nmy_mgt_iprestrictions = ovh.cloud_project.ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\",\n service_name=ovh_cloud_project_containerregistry[\"registry\"][\"service_name\"],\n registry_id=ovh_cloud_project_containerregistry[\"registry\"][\"id\"],\n ip_restrictions=[{\n \"ip_block\": \"xxx.xxx.xxx.xxx/xx\",\n \"description\": \"xxxxxxx\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var registry = Ovh.CloudProject.GetContainerRegistry.Invoke(new()\n {\n ServiceName = \"XXXXXX\",\n RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n });\n\n var my_mgt_iprestrictions = new Ovh.CloudProject.ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\", new()\n {\n ServiceName = ovh_cloud_project_containerregistry.Registry.Service_name,\n RegistryId = ovh_cloud_project_containerregistry.Registry.Id,\n IpRestrictions = new[]\n {\n \n {\n { \"ip_block\", \"xxx.xxx.xxx.xxx/xx\" },\n { \"description\", \"xxxxxxx\" },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.GetContainerRegistry(ctx, \u0026cloudproject.GetContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewContainerRegistryIPRestrictionsManagement(ctx, \"my-mgt-iprestrictions\", \u0026CloudProject.ContainerRegistryIPRestrictionsManagementArgs{\n\t\t\tServiceName: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Service_name),\n\t\t\tRegistryId: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Id),\n\t\t\tIpRestrictions: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"ip_block\": pulumi.String(\"xxx.xxx.xxx.xxx/xx\"),\n\t\t\t\t\t\"description\": pulumi.String(\"xxxxxxx\"),\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.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryArgs;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsManagement;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsManagementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 registry = CloudProjectFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()\n .serviceName(\"XXXXXX\")\n .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n .build());\n\n var my_mgt_iprestrictions = new ContainerRegistryIPRestrictionsManagement(\"my-mgt-iprestrictions\", ContainerRegistryIPRestrictionsManagementArgs.builder()\n .serviceName(ovh_cloud_project_containerregistry.registry().service_name())\n .registryId(ovh_cloud_project_containerregistry.registry().id())\n .ipRestrictions(Map.ofEntries(\n Map.entry(\"ip_block\", \"xxx.xxx.xxx.xxx/xx\"),\n Map.entry(\"description\", \"xxxxxxx\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-mgt-iprestrictions:\n type: ovh:CloudProject:ContainerRegistryIPRestrictionsManagement\n properties:\n serviceName: ${ovh_cloud_project_containerregistry.registry.service_name}\n registryId: ${ovh_cloud_project_containerregistry.registry.id}\n ipRestrictions:\n - ip_block: xxx.xxx.xxx.xxx/xx\n description: xxxxxxx\nvariables:\n registry:\n fn::invoke:\n Function: ovh:CloudProject:getContainerRegistry\n Arguments:\n serviceName: XXXXXX\n registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "ipRestrictions": { "type": "array", "items": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" } }, "description": "IP restrictions applied on Harbor UI and API.\n" @@ -6060,7 +6257,7 @@ "items": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" } }, "description": "IP restrictions applied on Harbor UI and API.\n" @@ -6089,7 +6286,7 @@ "items": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" } }, "description": "IP restrictions applied on Harbor UI and API.\n" @@ -6109,14 +6306,14 @@ } }, "ovh:CloudProject/containerRegistryIPRestrictionsRegistry:ContainerRegistryIPRestrictionsRegistry": { - "description": "Apply IP restrictions container registry associated with a public cloud project on artifact manager component.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst registry = ovh.CloudProject.getContainerRegistry({\n serviceName: \"XXXXXX\",\n registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nconst my_registry_iprestrictions = new ovh.cloudproject.ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\", {\n serviceName: ovh_cloud_project_containerregistry.registry.service_name,\n registryId: ovh_cloud_project_containerregistry.registry.id,\n ipRestrictions: [{\n ip_block: \"xxx.xxx.xxx.xxx/xx\",\n description: \"xxxxxxx\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregistry = ovh.CloudProject.get_container_registry(service_name=\"XXXXXX\",\n registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\nmy_registry_iprestrictions = ovh.cloud_project.ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\",\n service_name=ovh_cloud_project_containerregistry[\"registry\"][\"service_name\"],\n registry_id=ovh_cloud_project_containerregistry[\"registry\"][\"id\"],\n ip_restrictions=[{\n \"ip_block\": \"xxx.xxx.xxx.xxx/xx\",\n \"description\": \"xxxxxxx\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var registry = Ovh.CloudProject.GetContainerRegistry.Invoke(new()\n {\n ServiceName = \"XXXXXX\",\n RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n });\n\n var my_registry_iprestrictions = new Ovh.CloudProject.ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\", new()\n {\n ServiceName = ovh_cloud_project_containerregistry.Registry.Service_name,\n RegistryId = ovh_cloud_project_containerregistry.Registry.Id,\n IpRestrictions = new[]\n {\n \n {\n { \"ip_block\", \"xxx.xxx.xxx.xxx/xx\" },\n { \"description\", \"xxxxxxx\" },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.GetContainerRegistry(ctx, \u0026cloudproject.GetContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewContainerRegistryIPRestrictionsRegistry(ctx, \"my-registry-iprestrictions\", \u0026CloudProject.ContainerRegistryIPRestrictionsRegistryArgs{\n\t\t\tServiceName: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Service_name),\n\t\t\tRegistryId: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Id),\n\t\t\tIpRestrictions: pulumi.MapArray{\n\t\t\t\tpulumi.Map{\n\t\t\t\t\t\"ip_block\": pulumi.Any(\"xxx.xxx.xxx.xxx/xx\"),\n\t\t\t\t\t\"description\": pulumi.Any(\"xxxxxxx\"),\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.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryArgs;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsRegistry;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 registry = CloudProjectFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()\n .serviceName(\"XXXXXX\")\n .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n .build());\n\n var my_registry_iprestrictions = new ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\", ContainerRegistryIPRestrictionsRegistryArgs.builder()\n .serviceName(ovh_cloud_project_containerregistry.registry().service_name())\n .registryId(ovh_cloud_project_containerregistry.registry().id())\n .ipRestrictions(Map.ofEntries(\n Map.entry(\"ip_block\", \"xxx.xxx.xxx.xxx/xx\"),\n Map.entry(\"description\", \"xxxxxxx\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-registry-iprestrictions:\n type: ovh:CloudProject:ContainerRegistryIPRestrictionsRegistry\n properties:\n serviceName: ${ovh_cloud_project_containerregistry.registry.service_name}\n registryId: ${ovh_cloud_project_containerregistry.registry.id}\n ipRestrictions:\n - ip_block: xxx.xxx.xxx.xxx/xx\n description: xxxxxxx\nvariables:\n registry:\n fn::invoke:\n Function: ovh:CloudProject:getContainerRegistry\n Arguments:\n serviceName: XXXXXX\n registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Apply IP restrictions container registry associated with a public cloud project on artifact manager component.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst registry = ovh.CloudProject.getContainerRegistry({\n serviceName: \"XXXXXX\",\n registryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n});\nconst my_registry_iprestrictions = new ovh.cloudproject.ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\", {\n serviceName: ovh_cloud_project_containerregistry.registry.service_name,\n registryId: ovh_cloud_project_containerregistry.registry.id,\n ipRestrictions: [{\n ip_block: \"xxx.xxx.xxx.xxx/xx\",\n description: \"xxxxxxx\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nregistry = ovh.CloudProject.get_container_registry(service_name=\"XXXXXX\",\n registry_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\nmy_registry_iprestrictions = ovh.cloud_project.ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\",\n service_name=ovh_cloud_project_containerregistry[\"registry\"][\"service_name\"],\n registry_id=ovh_cloud_project_containerregistry[\"registry\"][\"id\"],\n ip_restrictions=[{\n \"ip_block\": \"xxx.xxx.xxx.xxx/xx\",\n \"description\": \"xxxxxxx\",\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var registry = Ovh.CloudProject.GetContainerRegistry.Invoke(new()\n {\n ServiceName = \"XXXXXX\",\n RegistryId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n });\n\n var my_registry_iprestrictions = new Ovh.CloudProject.ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\", new()\n {\n ServiceName = ovh_cloud_project_containerregistry.Registry.Service_name,\n RegistryId = ovh_cloud_project_containerregistry.Registry.Id,\n IpRestrictions = new[]\n {\n \n {\n { \"ip_block\", \"xxx.xxx.xxx.xxx/xx\" },\n { \"description\", \"xxxxxxx\" },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.GetContainerRegistry(ctx, \u0026cloudproject.GetContainerRegistryArgs{\n\t\t\tServiceName: \"XXXXXX\",\n\t\t\tRegistryId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewContainerRegistryIPRestrictionsRegistry(ctx, \"my-registry-iprestrictions\", \u0026CloudProject.ContainerRegistryIPRestrictionsRegistryArgs{\n\t\t\tServiceName: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Service_name),\n\t\t\tRegistryId: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Id),\n\t\t\tIpRestrictions: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"ip_block\": pulumi.String(\"xxx.xxx.xxx.xxx/xx\"),\n\t\t\t\t\t\"description\": pulumi.String(\"xxxxxxx\"),\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.ovh.CloudProject.CloudProjectFunctions;\nimport com.pulumi.ovh.CloudProject.inputs.GetContainerRegistryArgs;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsRegistry;\nimport com.pulumi.ovh.CloudProject.ContainerRegistryIPRestrictionsRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 registry = CloudProjectFunctions.getContainerRegistry(GetContainerRegistryArgs.builder()\n .serviceName(\"XXXXXX\")\n .registryId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\")\n .build());\n\n var my_registry_iprestrictions = new ContainerRegistryIPRestrictionsRegistry(\"my-registry-iprestrictions\", ContainerRegistryIPRestrictionsRegistryArgs.builder()\n .serviceName(ovh_cloud_project_containerregistry.registry().service_name())\n .registryId(ovh_cloud_project_containerregistry.registry().id())\n .ipRestrictions(Map.ofEntries(\n Map.entry(\"ip_block\", \"xxx.xxx.xxx.xxx/xx\"),\n Map.entry(\"description\", \"xxxxxxx\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n my-registry-iprestrictions:\n type: ovh:CloudProject:ContainerRegistryIPRestrictionsRegistry\n properties:\n serviceName: ${ovh_cloud_project_containerregistry.registry.service_name}\n registryId: ${ovh_cloud_project_containerregistry.registry.id}\n ipRestrictions:\n - ip_block: xxx.xxx.xxx.xxx/xx\n description: xxxxxxx\nvariables:\n registry:\n fn::invoke:\n Function: ovh:CloudProject:getContainerRegistry\n Arguments:\n serviceName: XXXXXX\n registryId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "ipRestrictions": { "type": "array", "items": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" } }, "description": "IP restrictions applied on artifact manager component.\n" @@ -6141,7 +6338,7 @@ "items": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" } }, "description": "IP restrictions applied on artifact manager component.\n" @@ -6170,7 +6367,7 @@ "items": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" } }, "description": "IP restrictions applied on artifact manager component.\n" @@ -6487,7 +6684,7 @@ } }, "ovh:CloudProject/database:Database": { - "description": "## Example Usage\n\nMinimum settings for each engine (region choice is up to the user):\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst cassandradb = new ovh.cloudproject.Database(\"cassandradb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-cassandra\",\n engine: \"cassandra\",\n version: \"4.0\",\n plan: \"essential\",\n nodes: [\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst kafkadb = new ovh.cloudproject.Database(\"kafkadb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-kafka\",\n engine: \"kafka\",\n version: \"3.4\",\n plan: \"business\",\n kafkaRestApi: true,\n kafkaSchemaRegistry: true,\n nodes: [\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst m3db = new ovh.cloudproject.Database(\"m3db\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-m3db\",\n engine: \"m3db\",\n version: \"1.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-7\",\n});\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n version: \"5.0\",\n plan: \"discovery\",\n nodes: [{\n region: \"GRA\",\n }],\n flavor: \"db1-2\",\n});\nconst mysqldb = new ovh.cloudproject.Database(\"mysqldb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-mysql\",\n engine: \"mysql\",\n version: \"8\",\n plan: \"essential\",\n nodes: [{\n region: \"SBG\",\n }],\n flavor: \"db1-4\",\n advancedConfiguration: {\n \"mysql.sql_mode\": \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\",\n \"mysql.sql_require_primary_key\": \"true\",\n },\n});\nconst opensearchdb = new ovh.cloudproject.Database(\"opensearchdb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-opensearch\",\n engine: \"opensearch\",\n version: \"1\",\n plan: \"essential\",\n opensearchAclsEnabled: true,\n nodes: [{\n region: \"UK\",\n }],\n flavor: \"db1-4\",\n});\nconst pgsqldb = new ovh.cloudproject.Database(\"pgsqldb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-postgresql\",\n engine: \"postgresql\",\n version: \"14\",\n plan: \"essential\",\n nodes: [{\n region: \"WAW\",\n }],\n flavor: \"db1-4\",\n ipRestrictions: [\n {\n description: \"ip 1\",\n ip: \"178.97.6.0/24\",\n },\n {\n description: \"ip 2\",\n ip: \"178.97.7.0/24\",\n },\n ],\n});\nconst redisdb = new ovh.cloudproject.Database(\"redisdb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-redis\",\n engine: \"redis\",\n version: \"6.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-4\",\n});\nconst grafana = new ovh.cloudproject.Database(\"grafana\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-grafana\",\n engine: \"grafana\",\n version: \"9.1\",\n plan: \"essential\",\n nodes: [{\n region: \"GRA\",\n }],\n flavor: \"db1-4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncassandradb = ovh.cloud_project.Database(\"cassandradb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-cassandra\",\n engine=\"cassandra\",\n version=\"4.0\",\n plan=\"essential\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n ),\n ],\n flavor=\"db1-4\")\nkafkadb = ovh.cloud_project.Database(\"kafkadb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-kafka\",\n engine=\"kafka\",\n version=\"3.4\",\n plan=\"business\",\n kafka_rest_api=True,\n kafka_schema_registry=True,\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"DE\",\n ),\n ],\n flavor=\"db1-4\")\nm3db = ovh.cloud_project.Database(\"m3db\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-m3db\",\n engine=\"m3db\",\n version=\"1.2\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n )],\n flavor=\"db1-7\")\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n version=\"5.0\",\n plan=\"discovery\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n )],\n flavor=\"db1-2\")\nmysqldb = ovh.cloud_project.Database(\"mysqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mysql\",\n engine=\"mysql\",\n version=\"8\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"SBG\",\n )],\n flavor=\"db1-4\",\n advanced_configuration={\n \"mysql.sql_mode\": \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\",\n \"mysql.sql_require_primary_key\": \"true\",\n })\nopensearchdb = ovh.cloud_project.Database(\"opensearchdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-opensearch\",\n engine=\"opensearch\",\n version=\"1\",\n plan=\"essential\",\n opensearch_acls_enabled=True,\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"UK\",\n )],\n flavor=\"db1-4\")\npgsqldb = ovh.cloud_project.Database(\"pgsqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n version=\"14\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"WAW\",\n )],\n flavor=\"db1-4\",\n ip_restrictions=[\n ovh.cloud_project.DatabaseIpRestrictionArgs(\n description=\"ip 1\",\n ip=\"178.97.6.0/24\",\n ),\n ovh.cloud_project.DatabaseIpRestrictionArgs(\n description=\"ip 2\",\n ip=\"178.97.7.0/24\",\n ),\n ])\nredisdb = ovh.cloud_project.Database(\"redisdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-redis\",\n engine=\"redis\",\n version=\"6.2\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"BHS\",\n )],\n flavor=\"db1-4\")\ngrafana = ovh.cloud_project.Database(\"grafana\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-grafana\",\n engine=\"grafana\",\n version=\"9.1\",\n plan=\"essential\",\n nodes=[ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n )],\n flavor=\"db1-4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cassandradb = new Ovh.CloudProject.Database(\"cassandradb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-cassandra\",\n Engine = \"cassandra\",\n Version = \"4.0\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var kafkadb = new Ovh.CloudProject.Database(\"kafkadb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-kafka\",\n Engine = \"kafka\",\n Version = \"3.4\",\n Plan = \"business\",\n KafkaRestApi = true,\n KafkaSchemaRegistry = true,\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var m3db = new Ovh.CloudProject.Database(\"m3db\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-m3db\",\n Engine = \"m3db\",\n Version = \"1.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-7\",\n });\n\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Version = \"5.0\",\n Plan = \"discovery\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Flavor = \"db1-2\",\n });\n\n var mysqldb = new Ovh.CloudProject.Database(\"mysqldb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-mysql\",\n Engine = \"mysql\",\n Version = \"8\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"SBG\",\n },\n },\n Flavor = \"db1-4\",\n AdvancedConfiguration = \n {\n { \"mysql.sql_mode\", \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\" },\n { \"mysql.sql_require_primary_key\", \"true\" },\n },\n });\n\n var opensearchdb = new Ovh.CloudProject.Database(\"opensearchdb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-opensearch\",\n Engine = \"opensearch\",\n Version = \"1\",\n Plan = \"essential\",\n OpensearchAclsEnabled = true,\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"UK\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var pgsqldb = new Ovh.CloudProject.Database(\"pgsqldb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-postgresql\",\n Engine = \"postgresql\",\n Version = \"14\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"WAW\",\n },\n },\n Flavor = \"db1-4\",\n IpRestrictions = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseIpRestrictionArgs\n {\n Description = \"ip 1\",\n Ip = \"178.97.6.0/24\",\n },\n new Ovh.CloudProject.Inputs.DatabaseIpRestrictionArgs\n {\n Description = \"ip 2\",\n Ip = \"178.97.7.0/24\",\n },\n },\n });\n\n var redisdb = new Ovh.CloudProject.Database(\"redisdb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-redis\",\n Engine = \"redis\",\n Version = \"6.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var grafana = new Ovh.CloudProject.Database(\"grafana\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-grafana\",\n Engine = \"grafana\",\n Version = \"9.1\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"cassandradb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-cassandra\"),\n\t\t\tEngine: pulumi.String(\"cassandra\"),\n\t\t\tVersion: pulumi.String(\"4.0\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"kafkadb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-kafka\"),\n\t\t\tEngine: pulumi.String(\"kafka\"),\n\t\t\tVersion: pulumi.String(\"3.4\"),\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tKafkaRestApi: pulumi.Bool(true),\n\t\t\tKafkaSchemaRegistry: pulumi.Bool(true),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"m3db\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-m3db\"),\n\t\t\tEngine: pulumi.String(\"m3db\"),\n\t\t\tVersion: pulumi.String(\"1.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tVersion: pulumi.String(\"5.0\"),\n\t\t\tPlan: pulumi.String(\"discovery\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"mysqldb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-mysql\"),\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tVersion: pulumi.String(\"8\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t\tAdvancedConfiguration: pulumi.StringMap{\n\t\t\t\t\"mysql.sql_mode\": pulumi.String(\"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\"),\n\t\t\t\t\"mysql.sql_require_primary_key\": pulumi.String(\"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 = CloudProject.NewDatabase(ctx, \"opensearchdb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-opensearch\"),\n\t\t\tEngine: pulumi.String(\"opensearch\"),\n\t\t\tVersion: pulumi.String(\"1\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tOpensearchAclsEnabled: pulumi.Bool(true),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"UK\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"pgsqldb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-postgresql\"),\n\t\t\tEngine: pulumi.String(\"postgresql\"),\n\t\t\tVersion: pulumi.String(\"14\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"WAW\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t\tIpRestrictions: cloudproject.DatabaseIpRestrictionArray{\n\t\t\t\t\u0026cloudproject.DatabaseIpRestrictionArgs{\n\t\t\t\t\tDescription: pulumi.String(\"ip 1\"),\n\t\t\t\t\tIp: pulumi.String(\"178.97.6.0/24\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseIpRestrictionArgs{\n\t\t\t\t\tDescription: pulumi.String(\"ip 2\"),\n\t\t\t\t\tIp: pulumi.String(\"178.97.7.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 = CloudProject.NewDatabase(ctx, \"redisdb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-redis\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tVersion: pulumi.String(\"6.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"grafana\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-grafana\"),\n\t\t\tEngine: pulumi.String(\"grafana\"),\n\t\t\tVersion: pulumi.String(\"9.1\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseIpRestrictionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cassandradb = new Database(\"cassandradb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-cassandra\")\n .engine(\"cassandra\")\n .version(\"4.0\")\n .plan(\"essential\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var kafkadb = new Database(\"kafkadb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-kafka\")\n .engine(\"kafka\")\n .version(\"3.4\")\n .plan(\"business\")\n .kafkaRestApi(true)\n .kafkaSchemaRegistry(true)\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var m3db = new Database(\"m3db\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-m3db\")\n .engine(\"m3db\")\n .version(\"1.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-7\")\n .build());\n\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .version(\"5.0\")\n .plan(\"discovery\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .flavor(\"db1-2\")\n .build());\n\n var mysqldb = new Database(\"mysqldb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-mysql\")\n .engine(\"mysql\")\n .version(\"8\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"SBG\")\n .build())\n .flavor(\"db1-4\")\n .advancedConfiguration(Map.ofEntries(\n Map.entry(\"mysql.sql_mode\", \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\"),\n Map.entry(\"mysql.sql_require_primary_key\", \"true\")\n ))\n .build());\n\n var opensearchdb = new Database(\"opensearchdb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-opensearch\")\n .engine(\"opensearch\")\n .version(\"1\")\n .plan(\"essential\")\n .opensearchAclsEnabled(true)\n .nodes(DatabaseNodeArgs.builder()\n .region(\"UK\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var pgsqldb = new Database(\"pgsqldb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-postgresql\")\n .engine(\"postgresql\")\n .version(\"14\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"WAW\")\n .build())\n .flavor(\"db1-4\")\n .ipRestrictions( \n DatabaseIpRestrictionArgs.builder()\n .description(\"ip 1\")\n .ip(\"178.97.6.0/24\")\n .build(),\n DatabaseIpRestrictionArgs.builder()\n .description(\"ip 2\")\n .ip(\"178.97.7.0/24\")\n .build())\n .build());\n\n var redisdb = new Database(\"redisdb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-redis\")\n .engine(\"redis\")\n .version(\"6.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var grafana = new Database(\"grafana\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-grafana\")\n .engine(\"grafana\")\n .version(\"9.1\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cassandradb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-cassandra\n engine: cassandra\n version: '4.0'\n plan: essential\n nodes:\n - region: BHS\n - region: BHS\n - region: BHS\n flavor: db1-4\n kafkadb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-kafka\n engine: kafka\n version: '3.4'\n plan: business\n kafkaRestApi: true\n kafkaSchemaRegistry: true\n nodes:\n - region: DE\n - region: DE\n - region: DE\n flavor: db1-4\n m3db:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-m3db\n engine: m3db\n version: '1.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-7\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-mongodb\n engine: mongodb\n version: '5.0'\n plan: discovery\n nodes:\n - region: GRA\n flavor: db1-2\n mysqldb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-mysql\n engine: mysql\n version: '8'\n plan: essential\n nodes:\n - region: SBG\n flavor: db1-4\n advancedConfiguration:\n mysql.sql_mode: ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\n mysql.sql_require_primary_key: 'true'\n opensearchdb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-opensearch\n engine: opensearch\n version: '1'\n plan: essential\n opensearchAclsEnabled: true\n nodes:\n - region: UK\n flavor: db1-4\n pgsqldb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-postgresql\n engine: postgresql\n version: '14'\n plan: essential\n nodes:\n - region: WAW\n flavor: db1-4\n ipRestrictions:\n - description: ip 1\n ip: 178.97.6.0/24\n - description: ip 2\n ip: 178.97.7.0/24\n redisdb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-redis\n engine: redis\n version: '6.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-4\n grafana:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-grafana\n engine: grafana\n version: '9.1'\n plan: essential\n nodes:\n - region: GRA\n flavor: db1-4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo deploy a business PostgreSQL service with two nodes on public network:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst postgresql = new ovh.cloudproject.Database(\"postgresql\", {\n description: \"my-first-postgresql\",\n engine: \"postgresql\",\n flavor: \"db1-15\",\n nodes: [\n {\n region: \"GRA\",\n },\n {\n region: \"GRA\",\n },\n ],\n plan: \"business\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"14\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npostgresql = ovh.cloud_project.Database(\"postgresql\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n flavor=\"db1-15\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n region=\"GRA\",\n ),\n ],\n plan=\"business\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"14\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var postgresql = new Ovh.CloudProject.Database(\"postgresql\", new()\n {\n Description = \"my-first-postgresql\",\n Engine = \"postgresql\",\n Flavor = \"db1-15\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Plan = \"business\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"14\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"postgresql\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-postgresql\"),\n\t\t\tEngine: pulumi.String(\"postgresql\"),\n\t\t\tFlavor: pulumi.String(\"db1-15\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"14\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var postgresql = new Database(\"postgresql\", DatabaseArgs.builder()\n .description(\"my-first-postgresql\")\n .engine(\"postgresql\")\n .flavor(\"db1-15\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .plan(\"business\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"14\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n postgresql:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-postgresql\n engine: postgresql\n flavor: db1-15\n nodes:\n - region: GRA\n - region: GRA\n plan: business\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '14'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\nTo deploy an enterprise MongoDB service with three nodes on private network:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n flavor: \"db1-30\",\n nodes: [\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n ],\n plan: \"production\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"5.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n flavor=\"db1-30\",\n nodes=[\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ovh.cloud_project.DatabaseNodeArgs(\n network_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region=\"SBG\",\n subnet_id=\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n ),\n ],\n plan=\"production\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"5.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Flavor = \"db1-30\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n },\n Plan = \"production\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"5.0\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tFlavor: pulumi.String(\"db1-30\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"production\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"5.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.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder()\n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .flavor(\"db1-30\")\n .nodes( \n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build())\n .plan(\"production\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"5.0\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-mongodb\n engine: mongodb\n flavor: db1-30\n nodes:\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n plan: production\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '5.0'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id\n```\n\n", + "description": "## Example Usage\n\nMinimum settings for each engine (region choice is up to the user):\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst cassandradb = new ovh.cloudproject.Database(\"cassandradb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-cassandra\",\n engine: \"cassandra\",\n version: \"4.0\",\n plan: \"essential\",\n nodes: [\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n {\n region: \"BHS\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst kafkadb = new ovh.cloudproject.Database(\"kafkadb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-kafka\",\n engine: \"kafka\",\n version: \"3.4\",\n plan: \"business\",\n kafkaRestApi: true,\n kafkaSchemaRegistry: true,\n nodes: [\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n {\n region: \"DE\",\n },\n ],\n flavor: \"db1-4\",\n});\nconst m3db = new ovh.cloudproject.Database(\"m3db\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-m3db\",\n engine: \"m3db\",\n version: \"1.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-7\",\n});\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n version: \"5.0\",\n plan: \"discovery\",\n nodes: [{\n region: \"GRA\",\n }],\n flavor: \"db1-2\",\n});\nconst mysqldb = new ovh.cloudproject.Database(\"mysqldb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-mysql\",\n engine: \"mysql\",\n version: \"8\",\n plan: \"essential\",\n nodes: [{\n region: \"SBG\",\n }],\n flavor: \"db1-4\",\n advancedConfiguration: {\n \"mysql.sql_mode\": \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\",\n \"mysql.sql_require_primary_key\": \"true\",\n },\n});\nconst opensearchdb = new ovh.cloudproject.Database(\"opensearchdb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-opensearch\",\n engine: \"opensearch\",\n version: \"1\",\n plan: \"essential\",\n opensearchAclsEnabled: true,\n nodes: [{\n region: \"UK\",\n }],\n flavor: \"db1-4\",\n});\nconst pgsqldb = new ovh.cloudproject.Database(\"pgsqldb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-postgresql\",\n engine: \"postgresql\",\n version: \"14\",\n plan: \"essential\",\n nodes: [{\n region: \"WAW\",\n }],\n flavor: \"db1-4\",\n ipRestrictions: [\n {\n description: \"ip 1\",\n ip: \"178.97.6.0/24\",\n },\n {\n description: \"ip 2\",\n ip: \"178.97.7.0/24\",\n },\n ],\n});\nconst redisdb = new ovh.cloudproject.Database(\"redisdb\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-redis\",\n engine: \"redis\",\n version: \"6.2\",\n plan: \"essential\",\n nodes: [{\n region: \"BHS\",\n }],\n flavor: \"db1-4\",\n});\nconst grafana = new ovh.cloudproject.Database(\"grafana\", {\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description: \"my-first-grafana\",\n engine: \"grafana\",\n version: \"9.1\",\n plan: \"essential\",\n nodes: [{\n region: \"GRA\",\n }],\n flavor: \"db1-4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ncassandradb = ovh.cloud_project.Database(\"cassandradb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-cassandra\",\n engine=\"cassandra\",\n version=\"4.0\",\n plan=\"essential\",\n nodes=[\n {\n \"region\": \"BHS\",\n },\n {\n \"region\": \"BHS\",\n },\n {\n \"region\": \"BHS\",\n },\n ],\n flavor=\"db1-4\")\nkafkadb = ovh.cloud_project.Database(\"kafkadb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-kafka\",\n engine=\"kafka\",\n version=\"3.4\",\n plan=\"business\",\n kafka_rest_api=True,\n kafka_schema_registry=True,\n nodes=[\n {\n \"region\": \"DE\",\n },\n {\n \"region\": \"DE\",\n },\n {\n \"region\": \"DE\",\n },\n ],\n flavor=\"db1-4\")\nm3db = ovh.cloud_project.Database(\"m3db\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-m3db\",\n engine=\"m3db\",\n version=\"1.2\",\n plan=\"essential\",\n nodes=[{\n \"region\": \"BHS\",\n }],\n flavor=\"db1-7\")\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n version=\"5.0\",\n plan=\"discovery\",\n nodes=[{\n \"region\": \"GRA\",\n }],\n flavor=\"db1-2\")\nmysqldb = ovh.cloud_project.Database(\"mysqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-mysql\",\n engine=\"mysql\",\n version=\"8\",\n plan=\"essential\",\n nodes=[{\n \"region\": \"SBG\",\n }],\n flavor=\"db1-4\",\n advanced_configuration={\n \"mysql.sql_mode\": \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\",\n \"mysql.sql_require_primary_key\": \"true\",\n })\nopensearchdb = ovh.cloud_project.Database(\"opensearchdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-opensearch\",\n engine=\"opensearch\",\n version=\"1\",\n plan=\"essential\",\n opensearch_acls_enabled=True,\n nodes=[{\n \"region\": \"UK\",\n }],\n flavor=\"db1-4\")\npgsqldb = ovh.cloud_project.Database(\"pgsqldb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n version=\"14\",\n plan=\"essential\",\n nodes=[{\n \"region\": \"WAW\",\n }],\n flavor=\"db1-4\",\n ip_restrictions=[\n {\n \"description\": \"ip 1\",\n \"ip\": \"178.97.6.0/24\",\n },\n {\n \"description\": \"ip 2\",\n \"ip\": \"178.97.7.0/24\",\n },\n ])\nredisdb = ovh.cloud_project.Database(\"redisdb\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-redis\",\n engine=\"redis\",\n version=\"6.2\",\n plan=\"essential\",\n nodes=[{\n \"region\": \"BHS\",\n }],\n flavor=\"db1-4\")\ngrafana = ovh.cloud_project.Database(\"grafana\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n description=\"my-first-grafana\",\n engine=\"grafana\",\n version=\"9.1\",\n plan=\"essential\",\n nodes=[{\n \"region\": \"GRA\",\n }],\n flavor=\"db1-4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cassandradb = new Ovh.CloudProject.Database(\"cassandradb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-cassandra\",\n Engine = \"cassandra\",\n Version = \"4.0\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var kafkadb = new Ovh.CloudProject.Database(\"kafkadb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-kafka\",\n Engine = \"kafka\",\n Version = \"3.4\",\n Plan = \"business\",\n KafkaRestApi = true,\n KafkaSchemaRegistry = true,\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"DE\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var m3db = new Ovh.CloudProject.Database(\"m3db\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-m3db\",\n Engine = \"m3db\",\n Version = \"1.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-7\",\n });\n\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Version = \"5.0\",\n Plan = \"discovery\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Flavor = \"db1-2\",\n });\n\n var mysqldb = new Ovh.CloudProject.Database(\"mysqldb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-mysql\",\n Engine = \"mysql\",\n Version = \"8\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"SBG\",\n },\n },\n Flavor = \"db1-4\",\n AdvancedConfiguration = \n {\n { \"mysql.sql_mode\", \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\" },\n { \"mysql.sql_require_primary_key\", \"true\" },\n },\n });\n\n var opensearchdb = new Ovh.CloudProject.Database(\"opensearchdb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-opensearch\",\n Engine = \"opensearch\",\n Version = \"1\",\n Plan = \"essential\",\n OpensearchAclsEnabled = true,\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"UK\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var pgsqldb = new Ovh.CloudProject.Database(\"pgsqldb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-postgresql\",\n Engine = \"postgresql\",\n Version = \"14\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"WAW\",\n },\n },\n Flavor = \"db1-4\",\n IpRestrictions = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseIpRestrictionArgs\n {\n Description = \"ip 1\",\n Ip = \"178.97.6.0/24\",\n },\n new Ovh.CloudProject.Inputs.DatabaseIpRestrictionArgs\n {\n Description = \"ip 2\",\n Ip = \"178.97.7.0/24\",\n },\n },\n });\n\n var redisdb = new Ovh.CloudProject.Database(\"redisdb\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-redis\",\n Engine = \"redis\",\n Version = \"6.2\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"BHS\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n var grafana = new Ovh.CloudProject.Database(\"grafana\", new()\n {\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Description = \"my-first-grafana\",\n Engine = \"grafana\",\n Version = \"9.1\",\n Plan = \"essential\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Flavor = \"db1-4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"cassandradb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-cassandra\"),\n\t\t\tEngine: pulumi.String(\"cassandra\"),\n\t\t\tVersion: pulumi.String(\"4.0\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"kafkadb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-kafka\"),\n\t\t\tEngine: pulumi.String(\"kafka\"),\n\t\t\tVersion: pulumi.String(\"3.4\"),\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tKafkaRestApi: pulumi.Bool(true),\n\t\t\tKafkaSchemaRegistry: pulumi.Bool(true),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"DE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"m3db\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-m3db\"),\n\t\t\tEngine: pulumi.String(\"m3db\"),\n\t\t\tVersion: pulumi.String(\"1.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-7\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tVersion: pulumi.String(\"5.0\"),\n\t\t\tPlan: pulumi.String(\"discovery\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"mysqldb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-mysql\"),\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tVersion: pulumi.String(\"8\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t\tAdvancedConfiguration: pulumi.StringMap{\n\t\t\t\t\"mysql.sql_mode\": pulumi.String(\"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\"),\n\t\t\t\t\"mysql.sql_require_primary_key\": pulumi.String(\"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 = CloudProject.NewDatabase(ctx, \"opensearchdb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-opensearch\"),\n\t\t\tEngine: pulumi.String(\"opensearch\"),\n\t\t\tVersion: pulumi.String(\"1\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tOpensearchAclsEnabled: pulumi.Bool(true),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"UK\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"pgsqldb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-postgresql\"),\n\t\t\tEngine: pulumi.String(\"postgresql\"),\n\t\t\tVersion: pulumi.String(\"14\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"WAW\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t\tIpRestrictions: cloudproject.DatabaseIpRestrictionArray{\n\t\t\t\t\u0026cloudproject.DatabaseIpRestrictionArgs{\n\t\t\t\t\tDescription: pulumi.String(\"ip 1\"),\n\t\t\t\t\tIp: pulumi.String(\"178.97.6.0/24\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseIpRestrictionArgs{\n\t\t\t\t\tDescription: pulumi.String(\"ip 2\"),\n\t\t\t\t\tIp: pulumi.String(\"178.97.7.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 = CloudProject.NewDatabase(ctx, \"redisdb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-redis\"),\n\t\t\tEngine: pulumi.String(\"redis\"),\n\t\t\tVersion: pulumi.String(\"6.2\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"BHS\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = CloudProject.NewDatabase(ctx, \"grafana\", \u0026CloudProject.DatabaseArgs{\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tDescription: pulumi.String(\"my-first-grafana\"),\n\t\t\tEngine: pulumi.String(\"grafana\"),\n\t\t\tVersion: pulumi.String(\"9.1\"),\n\t\t\tPlan: pulumi.String(\"essential\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tFlavor: pulumi.String(\"db1-4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseIpRestrictionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cassandradb = new Database(\"cassandradb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-cassandra\")\n .engine(\"cassandra\")\n .version(\"4.0\")\n .plan(\"essential\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var kafkadb = new Database(\"kafkadb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-kafka\")\n .engine(\"kafka\")\n .version(\"3.4\")\n .plan(\"business\")\n .kafkaRestApi(true)\n .kafkaSchemaRegistry(true)\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"DE\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var m3db = new Database(\"m3db\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-m3db\")\n .engine(\"m3db\")\n .version(\"1.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-7\")\n .build());\n\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .version(\"5.0\")\n .plan(\"discovery\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .flavor(\"db1-2\")\n .build());\n\n var mysqldb = new Database(\"mysqldb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-mysql\")\n .engine(\"mysql\")\n .version(\"8\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"SBG\")\n .build())\n .flavor(\"db1-4\")\n .advancedConfiguration(Map.ofEntries(\n Map.entry(\"mysql.sql_mode\", \"ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\"),\n Map.entry(\"mysql.sql_require_primary_key\", \"true\")\n ))\n .build());\n\n var opensearchdb = new Database(\"opensearchdb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-opensearch\")\n .engine(\"opensearch\")\n .version(\"1\")\n .plan(\"essential\")\n .opensearchAclsEnabled(true)\n .nodes(DatabaseNodeArgs.builder()\n .region(\"UK\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var pgsqldb = new Database(\"pgsqldb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-postgresql\")\n .engine(\"postgresql\")\n .version(\"14\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"WAW\")\n .build())\n .flavor(\"db1-4\")\n .ipRestrictions( \n DatabaseIpRestrictionArgs.builder()\n .description(\"ip 1\")\n .ip(\"178.97.6.0/24\")\n .build(),\n DatabaseIpRestrictionArgs.builder()\n .description(\"ip 2\")\n .ip(\"178.97.7.0/24\")\n .build())\n .build());\n\n var redisdb = new Database(\"redisdb\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-redis\")\n .engine(\"redis\")\n .version(\"6.2\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"BHS\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n var grafana = new Database(\"grafana\", DatabaseArgs.builder()\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .description(\"my-first-grafana\")\n .engine(\"grafana\")\n .version(\"9.1\")\n .plan(\"essential\")\n .nodes(DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .flavor(\"db1-4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cassandradb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-cassandra\n engine: cassandra\n version: '4.0'\n plan: essential\n nodes:\n - region: BHS\n - region: BHS\n - region: BHS\n flavor: db1-4\n kafkadb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-kafka\n engine: kafka\n version: '3.4'\n plan: business\n kafkaRestApi: true\n kafkaSchemaRegistry: true\n nodes:\n - region: DE\n - region: DE\n - region: DE\n flavor: db1-4\n m3db:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-m3db\n engine: m3db\n version: '1.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-7\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-mongodb\n engine: mongodb\n version: '5.0'\n plan: discovery\n nodes:\n - region: GRA\n flavor: db1-2\n mysqldb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-mysql\n engine: mysql\n version: '8'\n plan: essential\n nodes:\n - region: SBG\n flavor: db1-4\n advancedConfiguration:\n mysql.sql_mode: ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES\n mysql.sql_require_primary_key: 'true'\n opensearchdb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-opensearch\n engine: opensearch\n version: '1'\n plan: essential\n opensearchAclsEnabled: true\n nodes:\n - region: UK\n flavor: db1-4\n pgsqldb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-postgresql\n engine: postgresql\n version: '14'\n plan: essential\n nodes:\n - region: WAW\n flavor: db1-4\n ipRestrictions:\n - description: ip 1\n ip: 178.97.6.0/24\n - description: ip 2\n ip: 178.97.7.0/24\n redisdb:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-redis\n engine: redis\n version: '6.2'\n plan: essential\n nodes:\n - region: BHS\n flavor: db1-4\n grafana:\n type: ovh:CloudProject:Database\n properties:\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n description: my-first-grafana\n engine: grafana\n version: '9.1'\n plan: essential\n nodes:\n - region: GRA\n flavor: db1-4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nTo deploy a business PostgreSQL service with two nodes on public network:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst postgresql = new ovh.cloudproject.Database(\"postgresql\", {\n description: \"my-first-postgresql\",\n engine: \"postgresql\",\n flavor: \"db1-15\",\n nodes: [\n {\n region: \"GRA\",\n },\n {\n region: \"GRA\",\n },\n ],\n plan: \"business\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"14\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npostgresql = ovh.cloud_project.Database(\"postgresql\",\n description=\"my-first-postgresql\",\n engine=\"postgresql\",\n flavor=\"db1-15\",\n nodes=[\n {\n \"region\": \"GRA\",\n },\n {\n \"region\": \"GRA\",\n },\n ],\n plan=\"business\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"14\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var postgresql = new Ovh.CloudProject.Database(\"postgresql\", new()\n {\n Description = \"my-first-postgresql\",\n Engine = \"postgresql\",\n Flavor = \"db1-15\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n Region = \"GRA\",\n },\n },\n Plan = \"business\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"14\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"postgresql\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-postgresql\"),\n\t\t\tEngine: pulumi.String(\"postgresql\"),\n\t\t\tFlavor: pulumi.String(\"db1-15\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tRegion: pulumi.String(\"GRA\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"business\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"14\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var postgresql = new Database(\"postgresql\", DatabaseArgs.builder()\n .description(\"my-first-postgresql\")\n .engine(\"postgresql\")\n .flavor(\"db1-15\")\n .nodes( \n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build(),\n DatabaseNodeArgs.builder()\n .region(\"GRA\")\n .build())\n .plan(\"business\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"14\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n postgresql:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-postgresql\n engine: postgresql\n flavor: db1-15\n nodes:\n - region: GRA\n - region: GRA\n plan: business\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '14'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\nTo deploy an enterprise MongoDB service with three nodes on private network:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst mongodb = new ovh.cloudproject.Database(\"mongodb\", {\n description: \"my-first-mongodb\",\n engine: \"mongodb\",\n flavor: \"db1-30\",\n nodes: [\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n networkId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n region: \"SBG\",\n subnetId: \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n ],\n plan: \"production\",\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version: \"5.0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmongodb = ovh.cloud_project.Database(\"mongodb\",\n description=\"my-first-mongodb\",\n engine=\"mongodb\",\n flavor=\"db1-30\",\n nodes=[\n {\n \"network_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n \"region\": \"SBG\",\n \"subnet_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n \"network_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n \"region\": \"SBG\",\n \"subnet_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n {\n \"network_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n \"region\": \"SBG\",\n \"subnet_id\": \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n ],\n plan=\"production\",\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n version=\"5.0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mongodb = new Ovh.CloudProject.Database(\"mongodb\", new()\n {\n Description = \"my-first-mongodb\",\n Engine = \"mongodb\",\n Flavor = \"db1-30\",\n Nodes = new[]\n {\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n new Ovh.CloudProject.Inputs.DatabaseNodeArgs\n {\n NetworkId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n Region = \"SBG\",\n SubnetId = \"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\",\n },\n },\n Plan = \"production\",\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Version = \"5.0\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewDatabase(ctx, \"mongodb\", \u0026CloudProject.DatabaseArgs{\n\t\t\tDescription: pulumi.String(\"my-first-mongodb\"),\n\t\t\tEngine: pulumi.String(\"mongodb\"),\n\t\t\tFlavor: pulumi.String(\"db1-30\"),\n\t\t\tNodes: cloudproject.DatabaseNodeArray{\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudproject.DatabaseNodeArgs{\n\t\t\t\t\tNetworkId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t\tRegion: pulumi.String(\"SBG\"),\n\t\t\t\t\tSubnetId: pulumi.String(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPlan: pulumi.String(\"production\"),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tVersion: pulumi.String(\"5.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.ovh.CloudProject.Database;\nimport com.pulumi.ovh.CloudProject.DatabaseArgs;\nimport com.pulumi.ovh.CloudProject.inputs.DatabaseNodeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var mongodb = new Database(\"mongodb\", DatabaseArgs.builder()\n .description(\"my-first-mongodb\")\n .engine(\"mongodb\")\n .flavor(\"db1-30\")\n .nodes( \n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build(),\n DatabaseNodeArgs.builder()\n .networkId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .region(\"SBG\")\n .subnetId(\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\")\n .build())\n .plan(\"production\")\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .version(\"5.0\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n mongodb:\n type: ovh:CloudProject:Database\n properties:\n description: my-first-mongodb\n engine: mongodb\n flavor: db1-30\n nodes:\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n - networkId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n region: SBG\n subnetId: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n plan: production\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n version: '5.0'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed database clusters can be imported using the `service_name`, `engine`, `id` of the cluster, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/database:Database my_database_cluster service_name/engine/id\n```\n\n", "properties": { "advancedConfiguration": { "type": "object", @@ -7537,7 +7734,7 @@ } }, "ovh:CloudProject/kubeNodePool:KubeNodePool": { - "description": "Creates a nodepool in a OVHcloud Managed Kubernetes Service cluster.\n\n## Example Usage\n\nCreate a simple node pool in your Kubernetes cluster:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst nodePool = new ovh.cloudproject.KubeNodePool(\"nodePool\", {\n desiredNodes: 3,\n flavorName: \"b2-7\",\n kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n maxNodes: 3,\n minNodes: 3,\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnode_pool = ovh.cloud_project.KubeNodePool(\"nodePool\",\n desired_nodes=3,\n flavor_name=\"b2-7\",\n kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n max_nodes=3,\n min_nodes=3,\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var nodePool = new Ovh.CloudProject.KubeNodePool(\"nodePool\", new()\n {\n DesiredNodes = 3,\n FlavorName = \"b2-7\",\n KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n MaxNodes = 3,\n MinNodes = 3,\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewKubeNodePool(ctx, \"nodePool\", \u0026CloudProject.KubeNodePoolArgs{\n\t\t\tDesiredNodes: pulumi.Int(3),\n\t\t\tFlavorName: pulumi.String(\"b2-7\"),\n\t\t\tKubeId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tMaxNodes: pulumi.Int(3),\n\t\t\tMinNodes: pulumi.Int(3),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.KubeNodePool;\nimport com.pulumi.ovh.CloudProject.KubeNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var nodePool = new KubeNodePool(\"nodePool\", KubeNodePoolArgs.builder()\n .desiredNodes(3)\n .flavorName(\"b2-7\")\n .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .maxNodes(3)\n .minNodes(3)\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n nodePool:\n type: ovh:CloudProject:KubeNodePool\n properties:\n desiredNodes: 3\n flavorName: b2-7\n kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n maxNodes: 3\n minNodes: 3\n # Warning: \"_\" char is not allowed!\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreate an advanced node pool in your Kubernetes cluster:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst pool = new ovh.cloudproject.KubeNodePool(\"pool\", {\n desiredNodes: 3,\n flavorName: \"b2-7\",\n kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n maxNodes: 3,\n minNodes: 3,\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n template: {\n metadata: {\n annotations: {\n k1: \"v1\",\n k2: \"v2\",\n },\n finalizers: [],\n labels: {\n k3: \"v3\",\n k4: \"v4\",\n },\n },\n spec: {\n taints: [{\n effect: \"PreferNoSchedule\",\n key: \"k\",\n value: \"v\",\n }],\n unschedulable: false,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npool = ovh.cloud_project.KubeNodePool(\"pool\",\n desired_nodes=3,\n flavor_name=\"b2-7\",\n kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n max_nodes=3,\n min_nodes=3,\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n template=ovh.cloud_project.KubeNodePoolTemplateArgs(\n metadata=ovh.cloud_project.KubeNodePoolTemplateMetadataArgs(\n annotations={\n \"k1\": \"v1\",\n \"k2\": \"v2\",\n },\n finalizers=[],\n labels={\n \"k3\": \"v3\",\n \"k4\": \"v4\",\n },\n ),\n spec=ovh.cloud_project.KubeNodePoolTemplateSpecArgs(\n taints=[{\n \"effect\": \"PreferNoSchedule\",\n \"key\": \"k\",\n \"value\": \"v\",\n }],\n unschedulable=False,\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pool = new Ovh.CloudProject.KubeNodePool(\"pool\", new()\n {\n DesiredNodes = 3,\n FlavorName = \"b2-7\",\n KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n MaxNodes = 3,\n MinNodes = 3,\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Template = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateArgs\n {\n Metadata = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateMetadataArgs\n {\n Annotations = \n {\n { \"k1\", \"v1\" },\n { \"k2\", \"v2\" },\n },\n Finalizers = new() { },\n Labels = \n {\n { \"k3\", \"v3\" },\n { \"k4\", \"v4\" },\n },\n },\n Spec = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateSpecArgs\n {\n Taints = new[]\n {\n \n {\n { \"effect\", \"PreferNoSchedule\" },\n { \"key\", \"k\" },\n { \"value\", \"v\" },\n },\n },\n Unschedulable = false,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewKubeNodePool(ctx, \"pool\", \u0026CloudProject.KubeNodePoolArgs{\n\t\t\tDesiredNodes: pulumi.Int(3),\n\t\t\tFlavorName: pulumi.String(\"b2-7\"),\n\t\t\tKubeId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tMaxNodes: pulumi.Int(3),\n\t\t\tMinNodes: pulumi.Int(3),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tTemplate: \u0026cloudproject.KubeNodePoolTemplateArgs{\n\t\t\t\tMetadata: \u0026cloudproject.KubeNodePoolTemplateMetadataArgs{\n\t\t\t\t\tAnnotations: pulumi.StringMap{\n\t\t\t\t\t\t\"k1\": pulumi.String(\"v1\"),\n\t\t\t\t\t\t\"k2\": pulumi.String(\"v2\"),\n\t\t\t\t\t},\n\t\t\t\t\tFinalizers: pulumi.StringArray{},\n\t\t\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\t\t\"k3\": pulumi.String(\"v3\"),\n\t\t\t\t\t\t\"k4\": pulumi.String(\"v4\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSpec: \u0026cloudproject.KubeNodePoolTemplateSpecArgs{\n\t\t\t\t\tTaints: pulumi.MapArray{\n\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\"effect\": pulumi.Any(\"PreferNoSchedule\"),\n\t\t\t\t\t\t\t\"key\": pulumi.Any(\"k\"),\n\t\t\t\t\t\t\t\"value\": pulumi.Any(\"v\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tUnschedulable: pulumi.Bool(false),\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.ovh.CloudProject.KubeNodePool;\nimport com.pulumi.ovh.CloudProject.KubeNodePoolArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateMetadataArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pool = new KubeNodePool(\"pool\", KubeNodePoolArgs.builder()\n .desiredNodes(3)\n .flavorName(\"b2-7\")\n .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .maxNodes(3)\n .minNodes(3)\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .template(KubeNodePoolTemplateArgs.builder()\n .metadata(KubeNodePoolTemplateMetadataArgs.builder()\n .annotations(Map.ofEntries(\n Map.entry(\"k1\", \"v1\"),\n Map.entry(\"k2\", \"v2\")\n ))\n .finalizers()\n .labels(Map.ofEntries(\n Map.entry(\"k3\", \"v3\"),\n Map.entry(\"k4\", \"v4\")\n ))\n .build())\n .spec(KubeNodePoolTemplateSpecArgs.builder()\n .taints(Map.ofEntries(\n Map.entry(\"effect\", \"PreferNoSchedule\"),\n Map.entry(\"key\", \"k\"),\n Map.entry(\"value\", \"v\")\n ))\n .unschedulable(false)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pool:\n type: ovh:CloudProject:KubeNodePool\n properties:\n desiredNodes: 3\n flavorName: b2-7\n kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n maxNodes: 3\n minNodes: 3\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n template:\n metadata:\n annotations:\n k1: v1\n k2: v2\n finalizers: []\n labels:\n k3: v3\n k4: v4\n spec:\n taints:\n - effect: PreferNoSchedule\n key: k\n value: v\n unschedulable: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Kubernetes Service cluster node pool can be imported using the `service_name`, the `id` of the cluster, and the `id` of the nodepool separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid\n```\n\n", + "description": "Creates a nodepool in a OVHcloud Managed Kubernetes Service cluster.\n\n## Example Usage\n\nCreate a simple node pool in your Kubernetes cluster:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst nodePool = new ovh.cloudproject.KubeNodePool(\"nodePool\", {\n desiredNodes: 3,\n flavorName: \"b2-7\",\n kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n maxNodes: 3,\n minNodes: 3,\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nnode_pool = ovh.cloud_project.KubeNodePool(\"nodePool\",\n desired_nodes=3,\n flavor_name=\"b2-7\",\n kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n max_nodes=3,\n min_nodes=3,\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var nodePool = new Ovh.CloudProject.KubeNodePool(\"nodePool\", new()\n {\n DesiredNodes = 3,\n FlavorName = \"b2-7\",\n KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n MaxNodes = 3,\n MinNodes = 3,\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewKubeNodePool(ctx, \"nodePool\", \u0026CloudProject.KubeNodePoolArgs{\n\t\t\tDesiredNodes: pulumi.Int(3),\n\t\t\tFlavorName: pulumi.String(\"b2-7\"),\n\t\t\tKubeId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tMaxNodes: pulumi.Int(3),\n\t\t\tMinNodes: pulumi.Int(3),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.CloudProject.KubeNodePool;\nimport com.pulumi.ovh.CloudProject.KubeNodePoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var nodePool = new KubeNodePool(\"nodePool\", KubeNodePoolArgs.builder()\n .desiredNodes(3)\n .flavorName(\"b2-7\")\n .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .maxNodes(3)\n .minNodes(3)\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n nodePool:\n type: ovh:CloudProject:KubeNodePool\n properties:\n desiredNodes: 3\n flavorName: b2-7\n kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n maxNodes: 3\n minNodes: 3\n # Warning: \"_\" char is not allowed!\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nCreate an advanced node pool in your Kubernetes cluster:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst pool = new ovh.cloudproject.KubeNodePool(\"pool\", {\n desiredNodes: 3,\n flavorName: \"b2-7\",\n kubeId: \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n maxNodes: 3,\n minNodes: 3,\n serviceName: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n template: {\n metadata: {\n annotations: {\n k1: \"v1\",\n k2: \"v2\",\n },\n finalizers: [],\n labels: {\n k3: \"v3\",\n k4: \"v4\",\n },\n },\n spec: {\n taints: [{\n effect: \"PreferNoSchedule\",\n key: \"k\",\n value: \"v\",\n }],\n unschedulable: false,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npool = ovh.cloud_project.KubeNodePool(\"pool\",\n desired_nodes=3,\n flavor_name=\"b2-7\",\n kube_id=\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n max_nodes=3,\n min_nodes=3,\n service_name=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n template={\n \"metadata\": {\n \"annotations\": {\n \"k1\": \"v1\",\n \"k2\": \"v2\",\n },\n \"finalizers\": [],\n \"labels\": {\n \"k3\": \"v3\",\n \"k4\": \"v4\",\n },\n },\n \"spec\": {\n \"taints\": [{\n \"effect\": \"PreferNoSchedule\",\n \"key\": \"k\",\n \"value\": \"v\",\n }],\n \"unschedulable\": False,\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pool = new Ovh.CloudProject.KubeNodePool(\"pool\", new()\n {\n DesiredNodes = 3,\n FlavorName = \"b2-7\",\n KubeId = \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\",\n MaxNodes = 3,\n MinNodes = 3,\n ServiceName = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n Template = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateArgs\n {\n Metadata = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateMetadataArgs\n {\n Annotations = \n {\n { \"k1\", \"v1\" },\n { \"k2\", \"v2\" },\n },\n Finalizers = new() { },\n Labels = \n {\n { \"k3\", \"v3\" },\n { \"k4\", \"v4\" },\n },\n },\n Spec = new Ovh.CloudProject.Inputs.KubeNodePoolTemplateSpecArgs\n {\n Taints = new[]\n {\n \n {\n { \"effect\", \"PreferNoSchedule\" },\n { \"key\", \"k\" },\n { \"value\", \"v\" },\n },\n },\n Unschedulable = false,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/CloudProject\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := CloudProject.NewKubeNodePool(ctx, \"pool\", \u0026CloudProject.KubeNodePoolArgs{\n\t\t\tDesiredNodes: pulumi.Int(3),\n\t\t\tFlavorName: pulumi.String(\"b2-7\"),\n\t\t\tKubeId: pulumi.String(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\"),\n\t\t\tMaxNodes: pulumi.Int(3),\n\t\t\tMinNodes: pulumi.Int(3),\n\t\t\tServiceName: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\tTemplate: \u0026cloudproject.KubeNodePoolTemplateArgs{\n\t\t\t\tMetadata: \u0026cloudproject.KubeNodePoolTemplateMetadataArgs{\n\t\t\t\t\tAnnotations: pulumi.StringMap{\n\t\t\t\t\t\t\"k1\": pulumi.String(\"v1\"),\n\t\t\t\t\t\t\"k2\": pulumi.String(\"v2\"),\n\t\t\t\t\t},\n\t\t\t\t\tFinalizers: pulumi.StringArray{},\n\t\t\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\t\t\"k3\": pulumi.String(\"v3\"),\n\t\t\t\t\t\t\"k4\": pulumi.String(\"v4\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSpec: \u0026cloudproject.KubeNodePoolTemplateSpecArgs{\n\t\t\t\t\tTaints: pulumi.StringMapArray{\n\t\t\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\t\t\"effect\": pulumi.String(\"PreferNoSchedule\"),\n\t\t\t\t\t\t\t\"key\": pulumi.String(\"k\"),\n\t\t\t\t\t\t\t\"value\": pulumi.String(\"v\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tUnschedulable: pulumi.Bool(false),\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.ovh.CloudProject.KubeNodePool;\nimport com.pulumi.ovh.CloudProject.KubeNodePoolArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateMetadataArgs;\nimport com.pulumi.ovh.CloudProject.inputs.KubeNodePoolTemplateSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pool = new KubeNodePool(\"pool\", KubeNodePoolArgs.builder()\n .desiredNodes(3)\n .flavorName(\"b2-7\")\n .kubeId(\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\")\n .maxNodes(3)\n .minNodes(3)\n .serviceName(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n .template(KubeNodePoolTemplateArgs.builder()\n .metadata(KubeNodePoolTemplateMetadataArgs.builder()\n .annotations(Map.ofEntries(\n Map.entry(\"k1\", \"v1\"),\n Map.entry(\"k2\", \"v2\")\n ))\n .finalizers()\n .labels(Map.ofEntries(\n Map.entry(\"k3\", \"v3\"),\n Map.entry(\"k4\", \"v4\")\n ))\n .build())\n .spec(KubeNodePoolTemplateSpecArgs.builder()\n .taints(Map.ofEntries(\n Map.entry(\"effect\", \"PreferNoSchedule\"),\n Map.entry(\"key\", \"k\"),\n Map.entry(\"value\", \"v\")\n ))\n .unschedulable(false)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n pool:\n type: ovh:CloudProject:KubeNodePool\n properties:\n desiredNodes: 3\n flavorName: b2-7\n kubeId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n maxNodes: 3\n minNodes: 3\n serviceName: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n template:\n metadata:\n annotations:\n k1: v1\n k2: v2\n finalizers: []\n labels:\n k3: v3\n k4: v4\n spec:\n taints:\n - effect: PreferNoSchedule\n key: k\n value: v\n unschedulable: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Managed Kubernetes Service cluster node pool can be imported using the `service_name`, the `id` of the cluster, and the `id` of the nodepool separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:CloudProject/kubeNodePool:KubeNodePool pool service_name/kube_id/poolid\n```\n\n", "properties": { "antiAffinity": { "type": "boolean", @@ -8925,7 +9122,7 @@ "openstackRc": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" }, "description": "a convenient map representing an openstack_rc file.\nNote: no password nor sensitive token is set in this map.\n" }, @@ -8983,7 +9180,7 @@ "openstackRc": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" }, "description": "a convenient map representing an openstack_rc file.\nNote: no password nor sensitive token is set in this map.\n" }, @@ -9022,7 +9219,7 @@ "openstackRc": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" }, "description": "a convenient map representing an openstack_rc file.\nNote: no password nor sensitive token is set in this map.\n" }, @@ -11458,7 +11655,7 @@ } }, "ovh:Dbaas/logsInput:LogsInput": { - "description": "Creates a dbaas logs input.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst logstash = ovh.Dbaas.getLogsInputEngine({\n name: \"logstash\",\n version: \"7.x\",\n});\nconst stream = new ovh.dbaas.LogsOutputGraylogStream(\"stream\", {\n serviceName: \"....\",\n title: \"my stream\",\n description: \"my graylog stream\",\n});\nconst input = new ovh.dbaas.LogsInput(\"input\", {\n serviceName: stream.serviceName,\n description: stream.description,\n title: stream.title,\n engineId: logstash.then(logstash =\u003e logstash.id),\n streamId: stream.id,\n allowedNetworks: [\"10.0.0.0/16\"],\n exposedPort: \"6154\",\n nbInstance: 2,\n configuration: {\n logstash: {\n inputSection: ` beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n ssl_key =\u003e \"/etc/ssl/private/server.key\"\n }\n`,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlogstash = ovh.Dbaas.get_logs_input_engine(name=\"logstash\",\n version=\"7.x\")\nstream = ovh.dbaas.LogsOutputGraylogStream(\"stream\",\n service_name=\"....\",\n title=\"my stream\",\n description=\"my graylog stream\")\ninput = ovh.dbaas.LogsInput(\"input\",\n service_name=stream.service_name,\n description=stream.description,\n title=stream.title,\n engine_id=logstash.id,\n stream_id=stream.id,\n allowed_networks=[\"10.0.0.0/16\"],\n exposed_port=\"6154\",\n nb_instance=2,\n configuration=ovh.dbaas.LogsInputConfigurationArgs(\n logstash=ovh.dbaas.LogsInputConfigurationLogstashArgs(\n input_section=\"\"\" beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n ssl_key =\u003e \"/etc/ssl/private/server.key\"\n }\n\"\"\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var logstash = Ovh.Dbaas.GetLogsInputEngine.Invoke(new()\n {\n Name = \"logstash\",\n Version = \"7.x\",\n });\n\n var stream = new Ovh.Dbaas.LogsOutputGraylogStream(\"stream\", new()\n {\n ServiceName = \"....\",\n Title = \"my stream\",\n Description = \"my graylog stream\",\n });\n\n var input = new Ovh.Dbaas.LogsInput(\"input\", new()\n {\n ServiceName = stream.ServiceName,\n Description = stream.Description,\n Title = stream.Title,\n EngineId = logstash.Apply(getLogsInputEngineResult =\u003e getLogsInputEngineResult.Id),\n StreamId = stream.Id,\n AllowedNetworks = new[]\n {\n \"10.0.0.0/16\",\n },\n ExposedPort = \"6154\",\n NbInstance = 2,\n Configuration = new Ovh.Dbaas.Inputs.LogsInputConfigurationArgs\n {\n Logstash = new Ovh.Dbaas.Inputs.LogsInputConfigurationLogstashArgs\n {\n InputSection = @\" beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"\"/etc/ssl/private/server.crt\"\"\n ssl_key =\u003e \"\"/etc/ssl/private/server.key\"\"\n }\n\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlogstash, err := Dbaas.GetLogsInputEngine(ctx, \u0026dbaas.GetLogsInputEngineArgs{\n\t\t\tName: pulumi.StringRef(\"logstash\"),\n\t\t\tVersion: pulumi.StringRef(\"7.x\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream, err := Dbaas.NewLogsOutputGraylogStream(ctx, \"stream\", \u0026Dbaas.LogsOutputGraylogStreamArgs{\n\t\t\tServiceName: pulumi.String(\"....\"),\n\t\t\tTitle: pulumi.String(\"my stream\"),\n\t\t\tDescription: pulumi.String(\"my graylog stream\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dbaas.NewLogsInput(ctx, \"input\", \u0026Dbaas.LogsInputArgs{\n\t\t\tServiceName: stream.ServiceName,\n\t\t\tDescription: stream.Description,\n\t\t\tTitle: stream.Title,\n\t\t\tEngineId: pulumi.String(logstash.Id),\n\t\t\tStreamId: stream.ID(),\n\t\t\tAllowedNetworks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tExposedPort: pulumi.String(\"6154\"),\n\t\t\tNbInstance: pulumi.Int(2),\n\t\t\tConfiguration: \u0026dbaas.LogsInputConfigurationArgs{\n\t\t\t\tLogstash: \u0026dbaas.LogsInputConfigurationLogstashArgs{\n\t\t\t\t\tInputSection: pulumi.String(` beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n ssl_key =\u003e \"/etc/ssl/private/server.key\"\n }\n`),\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.ovh.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsInputEngineArgs;\nimport com.pulumi.ovh.Dbaas.LogsOutputGraylogStream;\nimport com.pulumi.ovh.Dbaas.LogsOutputGraylogStreamArgs;\nimport com.pulumi.ovh.Dbaas.LogsInput;\nimport com.pulumi.ovh.Dbaas.LogsInputArgs;\nimport com.pulumi.ovh.Dbaas.inputs.LogsInputConfigurationArgs;\nimport com.pulumi.ovh.Dbaas.inputs.LogsInputConfigurationLogstashArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 logstash = DbaasFunctions.getLogsInputEngine(GetLogsInputEngineArgs.builder()\n .name(\"logstash\")\n .version(\"7.x\")\n .build());\n\n var stream = new LogsOutputGraylogStream(\"stream\", LogsOutputGraylogStreamArgs.builder()\n .serviceName(\"....\")\n .title(\"my stream\")\n .description(\"my graylog stream\")\n .build());\n\n var input = new LogsInput(\"input\", LogsInputArgs.builder()\n .serviceName(stream.serviceName())\n .description(stream.description())\n .title(stream.title())\n .engineId(logstash.applyValue(getLogsInputEngineResult -\u003e getLogsInputEngineResult.id()))\n .streamId(stream.id())\n .allowedNetworks(\"10.0.0.0/16\")\n .exposedPort(\"6154\")\n .nbInstance(2)\n .configuration(LogsInputConfigurationArgs.builder()\n .logstash(LogsInputConfigurationLogstashArgs.builder()\n .inputSection(\"\"\"\n beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n ssl_key =\u003e \"/etc/ssl/private/server.key\"\n }\n \"\"\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n stream:\n type: ovh:Dbaas:LogsOutputGraylogStream\n properties:\n serviceName: '....'\n title: my stream\n description: my graylog stream\n input:\n type: ovh:Dbaas:LogsInput\n properties:\n serviceName: ${stream.serviceName}\n description: ${stream.description}\n title: ${stream.title}\n engineId: ${logstash.id}\n streamId: ${stream.id}\n allowedNetworks:\n - 10.0.0.0/16\n exposedPort: '6154'\n nbInstance: 2\n configuration:\n logstash:\n inputSection: |2\n beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n ssl_key =\u003e \"/etc/ssl/private/server.key\"\n }\nvariables:\n logstash:\n fn::invoke:\n Function: ovh:Dbaas:getLogsInputEngine\n Arguments:\n name: logstash\n version: 7.x\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Creates a dbaas logs input.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst logstash = ovh.Dbaas.getLogsInputEngine({\n name: \"logstash\",\n version: \"7.x\",\n});\nconst stream = new ovh.dbaas.LogsOutputGraylogStream(\"stream\", {\n serviceName: \"....\",\n title: \"my stream\",\n description: \"my graylog stream\",\n});\nconst input = new ovh.dbaas.LogsInput(\"input\", {\n serviceName: stream.serviceName,\n description: stream.description,\n title: stream.title,\n engineId: logstash.then(logstash =\u003e logstash.id),\n streamId: stream.id,\n allowedNetworks: [\"10.0.0.0/16\"],\n exposedPort: \"6154\",\n nbInstance: 2,\n configuration: {\n logstash: {\n inputSection: ` beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n ssl_key =\u003e \"/etc/ssl/private/server.key\"\n }\n`,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nlogstash = ovh.Dbaas.get_logs_input_engine(name=\"logstash\",\n version=\"7.x\")\nstream = ovh.dbaas.LogsOutputGraylogStream(\"stream\",\n service_name=\"....\",\n title=\"my stream\",\n description=\"my graylog stream\")\ninput = ovh.dbaas.LogsInput(\"input\",\n service_name=stream.service_name,\n description=stream.description,\n title=stream.title,\n engine_id=logstash.id,\n stream_id=stream.id,\n allowed_networks=[\"10.0.0.0/16\"],\n exposed_port=\"6154\",\n nb_instance=2,\n configuration={\n \"logstash\": {\n \"input_section\": \"\"\" beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n ssl_key =\u003e \"/etc/ssl/private/server.key\"\n }\n\"\"\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var logstash = Ovh.Dbaas.GetLogsInputEngine.Invoke(new()\n {\n Name = \"logstash\",\n Version = \"7.x\",\n });\n\n var stream = new Ovh.Dbaas.LogsOutputGraylogStream(\"stream\", new()\n {\n ServiceName = \"....\",\n Title = \"my stream\",\n Description = \"my graylog stream\",\n });\n\n var input = new Ovh.Dbaas.LogsInput(\"input\", new()\n {\n ServiceName = stream.ServiceName,\n Description = stream.Description,\n Title = stream.Title,\n EngineId = logstash.Apply(getLogsInputEngineResult =\u003e getLogsInputEngineResult.Id),\n StreamId = stream.Id,\n AllowedNetworks = new[]\n {\n \"10.0.0.0/16\",\n },\n ExposedPort = \"6154\",\n NbInstance = 2,\n Configuration = new Ovh.Dbaas.Inputs.LogsInputConfigurationArgs\n {\n Logstash = new Ovh.Dbaas.Inputs.LogsInputConfigurationLogstashArgs\n {\n InputSection = @\" beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"\"/etc/ssl/private/server.crt\"\"\n ssl_key =\u003e \"\"/etc/ssl/private/server.key\"\"\n }\n\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dbaas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlogstash, err := Dbaas.GetLogsInputEngine(ctx, \u0026dbaas.GetLogsInputEngineArgs{\n\t\t\tName: pulumi.StringRef(\"logstash\"),\n\t\t\tVersion: pulumi.StringRef(\"7.x\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstream, err := Dbaas.NewLogsOutputGraylogStream(ctx, \"stream\", \u0026Dbaas.LogsOutputGraylogStreamArgs{\n\t\t\tServiceName: pulumi.String(\"....\"),\n\t\t\tTitle: pulumi.String(\"my stream\"),\n\t\t\tDescription: pulumi.String(\"my graylog stream\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dbaas.NewLogsInput(ctx, \"input\", \u0026Dbaas.LogsInputArgs{\n\t\t\tServiceName: stream.ServiceName,\n\t\t\tDescription: stream.Description,\n\t\t\tTitle: stream.Title,\n\t\t\tEngineId: pulumi.String(logstash.Id),\n\t\t\tStreamId: stream.ID(),\n\t\t\tAllowedNetworks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tExposedPort: pulumi.String(\"6154\"),\n\t\t\tNbInstance: pulumi.Int(2),\n\t\t\tConfiguration: \u0026dbaas.LogsInputConfigurationArgs{\n\t\t\t\tLogstash: \u0026dbaas.LogsInputConfigurationLogstashArgs{\n\t\t\t\t\tInputSection: pulumi.String(` beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n ssl_key =\u003e \"/etc/ssl/private/server.key\"\n }\n`),\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.ovh.Dbaas.DbaasFunctions;\nimport com.pulumi.ovh.Dbaas.inputs.GetLogsInputEngineArgs;\nimport com.pulumi.ovh.Dbaas.LogsOutputGraylogStream;\nimport com.pulumi.ovh.Dbaas.LogsOutputGraylogStreamArgs;\nimport com.pulumi.ovh.Dbaas.LogsInput;\nimport com.pulumi.ovh.Dbaas.LogsInputArgs;\nimport com.pulumi.ovh.Dbaas.inputs.LogsInputConfigurationArgs;\nimport com.pulumi.ovh.Dbaas.inputs.LogsInputConfigurationLogstashArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 logstash = DbaasFunctions.getLogsInputEngine(GetLogsInputEngineArgs.builder()\n .name(\"logstash\")\n .version(\"7.x\")\n .build());\n\n var stream = new LogsOutputGraylogStream(\"stream\", LogsOutputGraylogStreamArgs.builder()\n .serviceName(\"....\")\n .title(\"my stream\")\n .description(\"my graylog stream\")\n .build());\n\n var input = new LogsInput(\"input\", LogsInputArgs.builder()\n .serviceName(stream.serviceName())\n .description(stream.description())\n .title(stream.title())\n .engineId(logstash.applyValue(getLogsInputEngineResult -\u003e getLogsInputEngineResult.id()))\n .streamId(stream.id())\n .allowedNetworks(\"10.0.0.0/16\")\n .exposedPort(\"6154\")\n .nbInstance(2)\n .configuration(LogsInputConfigurationArgs.builder()\n .logstash(LogsInputConfigurationLogstashArgs.builder()\n .inputSection(\"\"\"\n beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n ssl_key =\u003e \"/etc/ssl/private/server.key\"\n }\n \"\"\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n stream:\n type: ovh:Dbaas:LogsOutputGraylogStream\n properties:\n serviceName: '....'\n title: my stream\n description: my graylog stream\n input:\n type: ovh:Dbaas:LogsInput\n properties:\n serviceName: ${stream.serviceName}\n description: ${stream.description}\n title: ${stream.title}\n engineId: ${logstash.id}\n streamId: ${stream.id}\n allowedNetworks:\n - 10.0.0.0/16\n exposedPort: '6154'\n nbInstance: 2\n configuration:\n logstash:\n inputSection: |2\n beats {\n port =\u003e 6514\n ssl =\u003e true\n ssl_certificate =\u003e \"/etc/ssl/private/server.crt\"\n ssl_key =\u003e \"/etc/ssl/private/server.key\"\n }\nvariables:\n logstash:\n fn::invoke:\n Function: ovh:Dbaas:getLogsInputEngine\n Arguments:\n name: logstash\n version: 7.x\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "allowedNetworks": { "type": "array", @@ -11467,6 +11664,10 @@ }, "description": "List of IP blocks\n" }, + "autoscale": { + "type": "boolean", + "description": "Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`)\n" + }, "configuration": { "$ref": "#/types/ovh:Dbaas/LogsInputConfiguration:LogsInputConfiguration", "description": "Input configuration\n" @@ -11475,6 +11676,10 @@ "type": "string", "description": "Input creation\n" }, + "currentNbInstance": { + "type": "integer", + "description": "Number of instance running (returned by the API)\n" + }, "description": { "type": "string", "description": "Input description\n" @@ -11499,9 +11704,17 @@ "type": "boolean", "description": "Indicate if input need to be restarted\n" }, + "maxScaleInstance": { + "type": "integer", + "description": "Maximum number of instances in auto-scaled mode\n" + }, + "minScaleInstance": { + "type": "integer", + "description": "Minimum number of instances in auto-scaled mode\n" + }, "nbInstance": { "type": "integer", - "description": "Number of instance running\n" + "description": "Number of instance running (input, mutually exclusive with parameter `autoscale`)\n" }, "publicAddress": { "type": "string", @@ -11537,13 +11750,13 @@ "allowedNetworks", "configuration", "createdAt", + "currentNbInstance", "description", "engineId", "exposedPort", "hostname", "inputId", "isRestartRequired", - "nbInstance", "publicAddress", "serviceName", "sslCertificate", @@ -11560,6 +11773,10 @@ }, "description": "List of IP blocks\n" }, + "autoscale": { + "type": "boolean", + "description": "Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`)\n" + }, "configuration": { "$ref": "#/types/ovh:Dbaas/LogsInputConfiguration:LogsInputConfiguration", "description": "Input configuration\n", @@ -11577,9 +11794,17 @@ "type": "string", "description": "Port\n" }, + "maxScaleInstance": { + "type": "integer", + "description": "Maximum number of instances in auto-scaled mode\n" + }, + "minScaleInstance": { + "type": "integer", + "description": "Minimum number of instances in auto-scaled mode\n" + }, "nbInstance": { "type": "integer", - "description": "Number of instance running\n" + "description": "Number of instance running (input, mutually exclusive with parameter `autoscale`)\n" }, "serviceName": { "type": "string", @@ -11613,6 +11838,10 @@ }, "description": "List of IP blocks\n" }, + "autoscale": { + "type": "boolean", + "description": "Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`)\n" + }, "configuration": { "$ref": "#/types/ovh:Dbaas/LogsInputConfiguration:LogsInputConfiguration", "description": "Input configuration\n", @@ -11622,6 +11851,10 @@ "type": "string", "description": "Input creation\n" }, + "currentNbInstance": { + "type": "integer", + "description": "Number of instance running (returned by the API)\n" + }, "description": { "type": "string", "description": "Input description\n" @@ -11646,9 +11879,17 @@ "type": "boolean", "description": "Indicate if input need to be restarted\n" }, + "maxScaleInstance": { + "type": "integer", + "description": "Maximum number of instances in auto-scaled mode\n" + }, + "minScaleInstance": { + "type": "integer", + "description": "Minimum number of instances in auto-scaled mode\n" + }, "nbInstance": { "type": "integer", - "description": "Number of instance running\n" + "description": "Number of instance running (input, mutually exclusive with parameter `autoscale`)\n" }, "publicAddress": { "type": "string", @@ -12433,8 +12674,411 @@ "type": "object" } }, + "ovh:Dedicated/server:Server": { + "description": "\n\n## Import\n\nDedicated servers can be imported using the `service_name`, e.g.:\n\nbash\n\n```sh\n$ pulumi import ovh:Dedicated/server:Server server service_name\n```\n\n", + "properties": { + "availabilityZone": { + "type": "string", + "description": "Dedicated AZ localisation\n" + }, + "bootId": { + "type": "number", + "description": "Boot id of the server\n" + }, + "bootScript": { + "type": "string", + "description": "Boot script of the server\n" + }, + "commercialRange": { + "type": "string", + "description": "Dedicated server commercial range\n" + }, + "datacenter": { + "type": "string", + "description": "Dedicated datacenter localisation (bhs1,bhs2,...)\n" + }, + "details": { + "$ref": "#/types/ovh:Dedicated/ServerDetails:ServerDetails", + "description": "A structure describing informations about installation custom\n" + }, + "displayName": { + "type": "string", + "description": "Resource display name\n" + }, + "iam": { + "$ref": "#/types/ovh:Dedicated/ServerIam:ServerIam", + "description": "IAM resource information\n" + }, + "ip": { + "type": "string", + "description": "Dedicated server ip (IPv4)\n" + }, + "linkSpeed": { + "type": "number", + "description": "Link speed of the server\n" + }, + "monitoring": { + "type": "boolean", + "description": "Icmp monitoring state\n" + }, + "name": { + "type": "string", + "description": "Dedicated server name\n" + }, + "newUpgradeSystem": { + "type": "boolean" + }, + "noIntervention": { + "type": "boolean", + "description": "Prevent datacenter intervention\n" + }, + "order": { + "$ref": "#/types/ovh:Dedicated/ServerOrder:ServerOrder", + "description": "Details about an Order\n" + }, + "os": { + "type": "string", + "description": "Operating system\n" + }, + "ovhSubsidiary": { + "type": "string", + "description": "OVH subsidiaries\n" + }, + "partitionSchemeName": { + "type": "string", + "description": "Partition scheme name\n" + }, + "planOptions": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerPlanOption:ServerPlanOption" + } + }, + "plans": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerPlan:ServerPlan" + } + }, + "powerState": { + "type": "string", + "description": "Power state of the server (poweron, poweroff)\n" + }, + "professionalUse": { + "type": "boolean", + "description": "Does this server have professional use option\n" + }, + "rack": { + "type": "string", + "description": "Rack id of the server\n" + }, + "region": { + "type": "string", + "description": "Dedicated region localisation\n" + }, + "rescueMail": { + "type": "string", + "description": "Rescue mail of the server\n" + }, + "rescueSshKey": { + "type": "string", + "description": "Public SSH Key used in the rescue mode\n" + }, + "reverse": { + "type": "string", + "description": "Dedicated server reverse\n" + }, + "rootDevice": { + "type": "string", + "description": "Root device of the server\n" + }, + "serverId": { + "type": "number", + "description": "Server id\n" + }, + "serviceName": { + "type": "string", + "description": "The service_name of your dedicated server\n" + }, + "state": { + "type": "string", + "description": "All states a Dedicated can be in (error, hacked, hackedBlocked, ok)\n" + }, + "supportLevel": { + "type": "string", + "description": "Dedicated server support level (critical, fastpath, gs, pro)\n" + }, + "templateName": { + "type": "string", + "description": "Template name\n" + }, + "userMetadatas": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerUserMetadata:ServerUserMetadata" + }, + "description": "Metadata\n" + } + }, + "required": [ + "availabilityZone", + "bootId", + "bootScript", + "commercialRange", + "datacenter", + "displayName", + "iam", + "ip", + "linkSpeed", + "monitoring", + "name", + "newUpgradeSystem", + "noIntervention", + "order", + "os", + "ovhSubsidiary", + "plans", + "planOptions", + "powerState", + "professionalUse", + "rack", + "region", + "rescueMail", + "rescueSshKey", + "reverse", + "rootDevice", + "serverId", + "serviceName", + "state", + "supportLevel" + ], + "inputProperties": { + "bootId": { + "type": "number", + "description": "Boot id of the server\n" + }, + "bootScript": { + "type": "string", + "description": "Boot script of the server\n" + }, + "details": { + "$ref": "#/types/ovh:Dedicated/ServerDetails:ServerDetails", + "description": "A structure describing informations about installation custom\n" + }, + "displayName": { + "type": "string", + "description": "Resource display name\n" + }, + "monitoring": { + "type": "boolean", + "description": "Icmp monitoring state\n" + }, + "noIntervention": { + "type": "boolean", + "description": "Prevent datacenter intervention\n" + }, + "ovhSubsidiary": { + "type": "string", + "description": "OVH subsidiaries\n" + }, + "partitionSchemeName": { + "type": "string", + "description": "Partition scheme name\n" + }, + "planOptions": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerPlanOption:ServerPlanOption" + } + }, + "plans": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerPlan:ServerPlan" + } + }, + "rescueMail": { + "type": "string", + "description": "Rescue mail of the server\n" + }, + "rescueSshKey": { + "type": "string", + "description": "Public SSH Key used in the rescue mode\n" + }, + "rootDevice": { + "type": "string", + "description": "Root device of the server\n" + }, + "state": { + "type": "string", + "description": "All states a Dedicated can be in (error, hacked, hackedBlocked, ok)\n" + }, + "templateName": { + "type": "string", + "description": "Template name\n" + }, + "userMetadatas": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerUserMetadata:ServerUserMetadata" + }, + "description": "Metadata\n" + } + }, + "requiredInputs": [ + "ovhSubsidiary" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Server resources.\n", + "properties": { + "availabilityZone": { + "type": "string", + "description": "Dedicated AZ localisation\n" + }, + "bootId": { + "type": "number", + "description": "Boot id of the server\n" + }, + "bootScript": { + "type": "string", + "description": "Boot script of the server\n" + }, + "commercialRange": { + "type": "string", + "description": "Dedicated server commercial range\n" + }, + "datacenter": { + "type": "string", + "description": "Dedicated datacenter localisation (bhs1,bhs2,...)\n" + }, + "details": { + "$ref": "#/types/ovh:Dedicated/ServerDetails:ServerDetails", + "description": "A structure describing informations about installation custom\n" + }, + "displayName": { + "type": "string", + "description": "Resource display name\n" + }, + "iam": { + "$ref": "#/types/ovh:Dedicated/ServerIam:ServerIam", + "description": "IAM resource information\n" + }, + "ip": { + "type": "string", + "description": "Dedicated server ip (IPv4)\n" + }, + "linkSpeed": { + "type": "number", + "description": "Link speed of the server\n" + }, + "monitoring": { + "type": "boolean", + "description": "Icmp monitoring state\n" + }, + "name": { + "type": "string", + "description": "Dedicated server name\n" + }, + "newUpgradeSystem": { + "type": "boolean" + }, + "noIntervention": { + "type": "boolean", + "description": "Prevent datacenter intervention\n" + }, + "order": { + "$ref": "#/types/ovh:Dedicated/ServerOrder:ServerOrder", + "description": "Details about an Order\n" + }, + "os": { + "type": "string", + "description": "Operating system\n" + }, + "ovhSubsidiary": { + "type": "string", + "description": "OVH subsidiaries\n" + }, + "partitionSchemeName": { + "type": "string", + "description": "Partition scheme name\n" + }, + "planOptions": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerPlanOption:ServerPlanOption" + } + }, + "plans": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerPlan:ServerPlan" + } + }, + "powerState": { + "type": "string", + "description": "Power state of the server (poweron, poweroff)\n" + }, + "professionalUse": { + "type": "boolean", + "description": "Does this server have professional use option\n" + }, + "rack": { + "type": "string", + "description": "Rack id of the server\n" + }, + "region": { + "type": "string", + "description": "Dedicated region localisation\n" + }, + "rescueMail": { + "type": "string", + "description": "Rescue mail of the server\n" + }, + "rescueSshKey": { + "type": "string", + "description": "Public SSH Key used in the rescue mode\n" + }, + "reverse": { + "type": "string", + "description": "Dedicated server reverse\n" + }, + "rootDevice": { + "type": "string", + "description": "Root device of the server\n" + }, + "serverId": { + "type": "number", + "description": "Server id\n" + }, + "serviceName": { + "type": "string", + "description": "The service_name of your dedicated server\n" + }, + "state": { + "type": "string", + "description": "All states a Dedicated can be in (error, hacked, hackedBlocked, ok)\n" + }, + "supportLevel": { + "type": "string", + "description": "Dedicated server support level (critical, fastpath, gs, pro)\n" + }, + "templateName": { + "type": "string", + "description": "Template name\n" + }, + "userMetadatas": { + "type": "array", + "items": { + "$ref": "#/types/ovh:Dedicated/ServerUserMetadata:ServerUserMetadata" + }, + "description": "Metadata\n" + } + }, + "type": "object" + } + }, "ovh:Dedicated/serverInstallTask:ServerInstallTask": { - "description": "## Example Usage\n\nUsing a custom template based on an OVHCloud template\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst debian = new ovh.me.InstallationTemplate(\"debian\", {\n baseTemplateName: \"debian12_64\",\n templateName: \"mydebian12\",\n customization: {\n postInstallationScriptLink: \"http://test\",\n postInstallationScriptReturn: \"ok\",\n },\n});\nconst serverInstall = new ovh.dedicated.ServerInstallTask(\"serverInstall\", {\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n templateName: debian.templateName,\n bootidOnDestroy: rescue.then(rescue =\u003e rescue.results?.[0]),\n details: {\n customHostname: \"mytest\",\n },\n userMetadatas: [{\n key: \"sshKey\",\n value: \"ssh-ed25519 AAAAC3...\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_type=\"rescue\")\ndebian = ovh.me.InstallationTemplate(\"debian\",\n base_template_name=\"debian12_64\",\n template_name=\"mydebian12\",\n customization=ovh.me.InstallationTemplateCustomizationArgs(\n post_installation_script_link=\"http://test\",\n post_installation_script_return=\"ok\",\n ))\nserver_install = ovh.dedicated.ServerInstallTask(\"serverInstall\",\n service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n template_name=debian.template_name,\n bootid_on_destroy=rescue.results[0],\n details=ovh.dedicated.ServerInstallTaskDetailsArgs(\n custom_hostname=\"mytest\",\n ),\n user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"sshKey\",\n value=\"ssh-ed25519 AAAAC3...\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootType = \"rescue\",\n });\n\n var debian = new Ovh.Me.InstallationTemplate(\"debian\", new()\n {\n BaseTemplateName = \"debian12_64\",\n TemplateName = \"mydebian12\",\n Customization = new Ovh.Me.Inputs.InstallationTemplateCustomizationArgs\n {\n PostInstallationScriptLink = \"http://test\",\n PostInstallationScriptReturn = \"ok\",\n },\n });\n\n var serverInstall = new Ovh.Dedicated.ServerInstallTask(\"serverInstall\", new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n TemplateName = debian.TemplateName,\n BootidOnDestroy = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs\n {\n CustomHostname = \"mytest\",\n },\n UserMetadatas = new[]\n {\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"sshKey\",\n Value = \"ssh-ed25519 AAAAC3...\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trescue, err := Dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType: pulumi.StringRef(\"rescue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdebian, err := Me.NewInstallationTemplate(ctx, \"debian\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"debian12_64\"),\n\t\t\tTemplateName: pulumi.String(\"mydebian12\"),\n\t\t\tCustomization: \u0026me.InstallationTemplateCustomizationArgs{\n\t\t\t\tPostInstallationScriptLink: pulumi.String(\"http://test\"),\n\t\t\t\tPostInstallationScriptReturn: pulumi.String(\"ok\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerInstallTask(ctx, \"serverInstall\", \u0026Dedicated.ServerInstallTaskArgs{\n\t\t\tServiceName: pulumi.String(\"nsxxxxxxx.ip-xx-xx-xx.eu\"),\n\t\t\tTemplateName: debian.TemplateName,\n\t\t\tBootidOnDestroy: pulumi.Int(rescue.Results[0]),\n\t\t\tDetails: \u0026dedicated.ServerInstallTaskDetailsArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t\tUserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"sshKey\"),\n\t\t\t\t\tValue: pulumi.String(\"ssh-ed25519 AAAAC3...\"),\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.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.inputs.InstallationTemplateCustomizationArgs;\nimport com.pulumi.ovh.Dedicated.ServerInstallTask;\nimport com.pulumi.ovh.Dedicated.ServerInstallTaskArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskDetailsArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskUserMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootType(\"rescue\")\n .build());\n\n var debian = new InstallationTemplate(\"debian\", InstallationTemplateArgs.builder()\n .baseTemplateName(\"debian12_64\")\n .templateName(\"mydebian12\")\n .customization(InstallationTemplateCustomizationArgs.builder()\n .postInstallationScriptLink(\"http://test\")\n .postInstallationScriptReturn(\"ok\")\n .build())\n .build());\n\n var serverInstall = new ServerInstallTask(\"serverInstall\", ServerInstallTaskArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .templateName(debian.templateName())\n .bootidOnDestroy(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .details(ServerInstallTaskDetailsArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .userMetadatas(ServerInstallTaskUserMetadataArgs.builder()\n .key(\"sshKey\")\n .value(\"ssh-ed25519 AAAAC3...\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n debian:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: debian12_64\n templateName: mydebian12\n customization:\n postInstallationScriptLink: http://test\n postInstallationScriptReturn: ok\n serverInstall:\n type: ovh:Dedicated:ServerInstallTask\n properties:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n templateName: ${debian.templateName}\n bootidOnDestroy: ${rescue.results[0]}\n details:\n customHostname: mytest\n userMetadatas:\n - key: sshKey\n value: ssh-ed25519 AAAAC3...\nvariables:\n rescue:\n fn::invoke:\n Function: ovh:Dedicated:getServerBoots\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootType: rescue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nUsing a BringYourOwnLinux (BYOLinux) template (with userMetadata)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst server = ovh.getServer({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n});\nconst rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst serverInstall = new ovh.dedicated.ServerInstallTask(\"serverInstall\", {\n serviceName: server.then(server =\u003e server.serviceName),\n templateName: \"byolinux_64\",\n bootidOnDestroy: rescue.then(rescue =\u003e rescue.results?.[0]),\n details: {\n customHostname: \"mytest\",\n },\n userMetadatas: [\n {\n key: \"imageURL\",\n value: \"https://myimage.qcow2\",\n },\n {\n key: \"imageType\",\n value: \"qcow2\",\n },\n {\n key: \"httpHeaders0Key\",\n value: \"Authorization\",\n },\n {\n key: \"httpHeaders0Value\",\n value: \"Basic bG9naW46xxxxxxx=\",\n },\n {\n key: \"imageChecksumType\",\n value: \"sha512\",\n },\n {\n key: \"imageCheckSum\",\n value: \"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\",\n },\n {\n key: \"configDriveUserData\",\n value: `#cloud-config\nssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n`,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nserver = ovh.get_server(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\")\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_type=\"rescue\")\nserver_install = ovh.dedicated.ServerInstallTask(\"serverInstall\",\n service_name=server.service_name,\n template_name=\"byolinux_64\",\n bootid_on_destroy=rescue.results[0],\n details=ovh.dedicated.ServerInstallTaskDetailsArgs(\n custom_hostname=\"mytest\",\n ),\n user_metadatas=[\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"imageURL\",\n value=\"https://myimage.qcow2\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"imageType\",\n value=\"qcow2\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"httpHeaders0Key\",\n value=\"Authorization\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"httpHeaders0Value\",\n value=\"Basic bG9naW46xxxxxxx=\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"imageChecksumType\",\n value=\"sha512\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"imageCheckSum\",\n value=\"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\",\n ),\n ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"configDriveUserData\",\n value=f\"\"\"#cloud-config\nssh_authorized_keys:\n - {data[\"ovh_me_ssh_key\"][\"mykey\"][\"key\"]}\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - {data[\"ovh_me_ssh_key\"][\"mykey\"][\"key\"]}\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n\"\"\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var server = Ovh.GetServer.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n });\n\n var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootType = \"rescue\",\n });\n\n var serverInstall = new Ovh.Dedicated.ServerInstallTask(\"serverInstall\", new()\n {\n ServiceName = server.Apply(getServerResult =\u003e getServerResult.ServiceName),\n TemplateName = \"byolinux_64\",\n BootidOnDestroy = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs\n {\n CustomHostname = \"mytest\",\n },\n UserMetadatas = new[]\n {\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageURL\",\n Value = \"https://myimage.qcow2\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageType\",\n Value = \"qcow2\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"httpHeaders0Key\",\n Value = \"Authorization\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"httpHeaders0Value\",\n Value = \"Basic bG9naW46xxxxxxx=\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageChecksumType\",\n Value = \"sha512\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageCheckSum\",\n Value = \"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"configDriveUserData\",\n Value = @$\"#cloud-config\nssh_authorized_keys:\n - {data.Ovh_me_ssh_key.Mykey.Key}\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - {data.Ovh_me_ssh_key.Mykey.Key}\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserver, err := ovh.GetServer(ctx, \u0026ovh.GetServerArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trescue, err := Dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType: pulumi.StringRef(\"rescue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerInstallTask(ctx, \"serverInstall\", \u0026Dedicated.ServerInstallTaskArgs{\n\t\t\tServiceName: pulumi.String(server.ServiceName),\n\t\t\tTemplateName: pulumi.String(\"byolinux_64\"),\n\t\t\tBootidOnDestroy: pulumi.Int(rescue.Results[0]),\n\t\t\tDetails: \u0026dedicated.ServerInstallTaskDetailsArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t\tUserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageURL\"),\n\t\t\t\t\tValue: pulumi.String(\"https://myimage.qcow2\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageType\"),\n\t\t\t\t\tValue: pulumi.String(\"qcow2\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"httpHeaders0Key\"),\n\t\t\t\t\tValue: pulumi.String(\"Authorization\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"httpHeaders0Value\"),\n\t\t\t\t\tValue: pulumi.String(\"Basic bG9naW46xxxxxxx=\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageChecksumType\"),\n\t\t\t\t\tValue: pulumi.String(\"sha512\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageCheckSum\"),\n\t\t\t\t\tValue: pulumi.String(\"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"configDriveUserData\"),\n\t\t\t\t\tValue: pulumi.String(fmt.Sprintf(`#cloud-config\nssh_authorized_keys:\n - %v\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - %v\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n`, data.Ovh_me_ssh_key.Mykey.Key, data.Ovh_me_ssh_key.Mykey.Key)),\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.ovh.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetServerArgs;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.pulumi.ovh.Dedicated.ServerInstallTask;\nimport com.pulumi.ovh.Dedicated.ServerInstallTaskArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskDetailsArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskUserMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 server = OvhFunctions.getServer(GetServerArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .build());\n\n final var rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootType(\"rescue\")\n .build());\n\n var serverInstall = new ServerInstallTask(\"serverInstall\", ServerInstallTaskArgs.builder()\n .serviceName(server.applyValue(getServerResult -\u003e getServerResult.serviceName()))\n .templateName(\"byolinux_64\")\n .bootidOnDestroy(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .details(ServerInstallTaskDetailsArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .userMetadatas( \n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageURL\")\n .value(\"https://myimage.qcow2\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageType\")\n .value(\"qcow2\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"httpHeaders0Key\")\n .value(\"Authorization\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"httpHeaders0Value\")\n .value(\"Basic bG9naW46xxxxxxx=\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageChecksumType\")\n .value(\"sha512\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageCheckSum\")\n .value(\"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"configDriveUserData\")\n .value(\"\"\"\n#cloud-config\nssh_authorized_keys:\n - %s\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - %s\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n\", data.ovh_me_ssh_key().mykey().key(),data.ovh_me_ssh_key().mykey().key()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n serverInstall:\n type: ovh:Dedicated:ServerInstallTask\n properties:\n serviceName: ${server.serviceName}\n templateName: byolinux_64\n bootidOnDestroy: ${rescue.results[0]}\n details:\n customHostname: mytest\n userMetadatas:\n - key: imageURL\n value: https://myimage.qcow2\n - key: imageType\n value: qcow2\n - key: httpHeaders0Key\n value: Authorization\n - key: httpHeaders0Value\n value: Basic bG9naW46xxxxxxx=\n - key: imageChecksumType\n value: sha512\n - key: imageCheckSum\n value: 047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\n - key: configDriveUserData\n value: |\n #cloud-config\n ssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\n\n users:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\n disable_root: false\n packages:\n - vim\n - tree\n final_message: The system is finally up, after $UPTIME seconds\nvariables:\n server:\n fn::invoke:\n Function: ovh:getServer\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n rescue:\n fn::invoke:\n Function: ovh:Dedicated:getServerBoots\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootType: rescue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nUsing a Microsoft Windows server OVHcloud template with a specific language\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst server = ovh.getServer({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n});\nconst rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst serverInstall = new ovh.dedicated.ServerInstallTask(\"serverInstall\", {\n serviceName: server.then(server =\u003e server.serviceName),\n templateName: \"win2019-std_64\",\n bootidOnDestroy: rescue.then(rescue =\u003e rescue.results?.[0]),\n details: {\n customHostname: \"mytest\",\n },\n userMetadatas: [{\n key: \"language\",\n value: \"fr-fr\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nserver = ovh.get_server(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\")\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_type=\"rescue\")\nserver_install = ovh.dedicated.ServerInstallTask(\"serverInstall\",\n service_name=server.service_name,\n template_name=\"win2019-std_64\",\n bootid_on_destroy=rescue.results[0],\n details=ovh.dedicated.ServerInstallTaskDetailsArgs(\n custom_hostname=\"mytest\",\n ),\n user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs(\n key=\"language\",\n value=\"fr-fr\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var server = Ovh.GetServer.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n });\n\n var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootType = \"rescue\",\n });\n\n var serverInstall = new Ovh.Dedicated.ServerInstallTask(\"serverInstall\", new()\n {\n ServiceName = server.Apply(getServerResult =\u003e getServerResult.ServiceName),\n TemplateName = \"win2019-std_64\",\n BootidOnDestroy = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs\n {\n CustomHostname = \"mytest\",\n },\n UserMetadatas = new[]\n {\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"language\",\n Value = \"fr-fr\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserver, err := ovh.GetServer(ctx, \u0026ovh.GetServerArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trescue, err := Dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType: pulumi.StringRef(\"rescue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerInstallTask(ctx, \"serverInstall\", \u0026Dedicated.ServerInstallTaskArgs{\n\t\t\tServiceName: pulumi.String(server.ServiceName),\n\t\t\tTemplateName: pulumi.String(\"win2019-std_64\"),\n\t\t\tBootidOnDestroy: pulumi.Int(rescue.Results[0]),\n\t\t\tDetails: \u0026dedicated.ServerInstallTaskDetailsArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t\tUserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"language\"),\n\t\t\t\t\tValue: pulumi.String(\"fr-fr\"),\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.ovh.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetServerArgs;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.pulumi.ovh.Dedicated.ServerInstallTask;\nimport com.pulumi.ovh.Dedicated.ServerInstallTaskArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskDetailsArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskUserMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 server = OvhFunctions.getServer(GetServerArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .build());\n\n final var rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootType(\"rescue\")\n .build());\n\n var serverInstall = new ServerInstallTask(\"serverInstall\", ServerInstallTaskArgs.builder()\n .serviceName(server.applyValue(getServerResult -\u003e getServerResult.serviceName()))\n .templateName(\"win2019-std_64\")\n .bootidOnDestroy(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .details(ServerInstallTaskDetailsArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .userMetadatas(ServerInstallTaskUserMetadataArgs.builder()\n .key(\"language\")\n .value(\"fr-fr\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n serverInstall:\n type: ovh:Dedicated:ServerInstallTask\n properties:\n serviceName: ${server.serviceName}\n templateName: win2019-std_64\n bootidOnDestroy: ${rescue.results[0]}\n details:\n customHostname: mytest\n userMetadatas:\n - key: language\n value: fr-fr\nvariables:\n server:\n fn::invoke:\n Function: ovh:getServer\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n rescue:\n fn::invoke:\n Function: ovh:Dedicated:getServerBoots\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootType: rescue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstallation task can be imported using the `service_name` (`nsXXXX.ip...`) of the baremetal server, the `template_name` used and ths `task_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345\n```\n\n", + "description": "## Example Usage\n\nUsing a custom template based on an OVHCloud template\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst debian = new ovh.me.InstallationTemplate(\"debian\", {\n baseTemplateName: \"debian12_64\",\n templateName: \"mydebian12\",\n customization: {\n customHostname: \"mytest\",\n },\n});\nconst serverInstall = new ovh.dedicated.ServerInstallTask(\"serverInstall\", {\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n templateName: debian.templateName,\n bootidOnDestroy: rescue.then(rescue =\u003e rescue.results?.[0]),\n details: {\n customHostname: \"mytest\",\n },\n userMetadatas: [\n {\n key: \"sshKey\",\n value: \"ssh-ed25519 AAAAC3...\",\n },\n {\n key: \"postInstallationScript\",\n value: `#!/bin/bash\n echo \"coucou postInstallationScript\" \u003e /opt/coucou\n cat /etc/machine-id \u003e\u003e /opt/coucou\n date \"+%Y-%m-%d %H:%M:%S\" --utc \u003e\u003e /opt/coucou\n`,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_type=\"rescue\")\ndebian = ovh.me.InstallationTemplate(\"debian\",\n base_template_name=\"debian12_64\",\n template_name=\"mydebian12\",\n customization={\n \"custom_hostname\": \"mytest\",\n })\nserver_install = ovh.dedicated.ServerInstallTask(\"serverInstall\",\n service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n template_name=debian.template_name,\n bootid_on_destroy=rescue.results[0],\n details={\n \"custom_hostname\": \"mytest\",\n },\n user_metadatas=[\n {\n \"key\": \"sshKey\",\n \"value\": \"ssh-ed25519 AAAAC3...\",\n },\n {\n \"key\": \"postInstallationScript\",\n \"value\": \"\"\"#!/bin/bash\n echo \"coucou postInstallationScript\" \u003e /opt/coucou\n cat /etc/machine-id \u003e\u003e /opt/coucou\n date \"+%Y-%m-%d %H:%M:%S\" --utc \u003e\u003e /opt/coucou\n\"\"\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootType = \"rescue\",\n });\n\n var debian = new Ovh.Me.InstallationTemplate(\"debian\", new()\n {\n BaseTemplateName = \"debian12_64\",\n TemplateName = \"mydebian12\",\n Customization = new Ovh.Me.Inputs.InstallationTemplateCustomizationArgs\n {\n CustomHostname = \"mytest\",\n },\n });\n\n var serverInstall = new Ovh.Dedicated.ServerInstallTask(\"serverInstall\", new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n TemplateName = debian.TemplateName,\n BootidOnDestroy = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs\n {\n CustomHostname = \"mytest\",\n },\n UserMetadatas = new[]\n {\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"sshKey\",\n Value = \"ssh-ed25519 AAAAC3...\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"postInstallationScript\",\n Value = @\"#!/bin/bash\n echo \"\"coucou postInstallationScript\"\" \u003e /opt/coucou\n cat /etc/machine-id \u003e\u003e /opt/coucou\n date \"\"+%Y-%m-%d %H:%M:%S\"\" --utc \u003e\u003e /opt/coucou\n\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trescue, err := Dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType: pulumi.StringRef(\"rescue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdebian, err := Me.NewInstallationTemplate(ctx, \"debian\", \u0026Me.InstallationTemplateArgs{\n\t\t\tBaseTemplateName: pulumi.String(\"debian12_64\"),\n\t\t\tTemplateName: pulumi.String(\"mydebian12\"),\n\t\t\tCustomization: \u0026me.InstallationTemplateCustomizationArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerInstallTask(ctx, \"serverInstall\", \u0026Dedicated.ServerInstallTaskArgs{\n\t\t\tServiceName: pulumi.String(\"nsxxxxxxx.ip-xx-xx-xx.eu\"),\n\t\t\tTemplateName: debian.TemplateName,\n\t\t\tBootidOnDestroy: pulumi.Int(rescue.Results[0]),\n\t\t\tDetails: \u0026dedicated.ServerInstallTaskDetailsArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t\tUserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"sshKey\"),\n\t\t\t\t\tValue: pulumi.String(\"ssh-ed25519 AAAAC3...\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"postInstallationScript\"),\n\t\t\t\t\tValue: pulumi.String(\"#!/bin/bash\\n echo \\\"coucou postInstallationScript\\\" \u003e /opt/coucou\\n cat /etc/machine-id \u003e\u003e /opt/coucou\\n date \\\"+%Y-%m-%d %H:%M:%S\\\" --utc \u003e\u003e /opt/coucou\\n\"),\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.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.pulumi.ovh.Me.InstallationTemplate;\nimport com.pulumi.ovh.Me.InstallationTemplateArgs;\nimport com.pulumi.ovh.Me.inputs.InstallationTemplateCustomizationArgs;\nimport com.pulumi.ovh.Dedicated.ServerInstallTask;\nimport com.pulumi.ovh.Dedicated.ServerInstallTaskArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskDetailsArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskUserMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootType(\"rescue\")\n .build());\n\n var debian = new InstallationTemplate(\"debian\", InstallationTemplateArgs.builder()\n .baseTemplateName(\"debian12_64\")\n .templateName(\"mydebian12\")\n .customization(InstallationTemplateCustomizationArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .build());\n\n var serverInstall = new ServerInstallTask(\"serverInstall\", ServerInstallTaskArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .templateName(debian.templateName())\n .bootidOnDestroy(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .details(ServerInstallTaskDetailsArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .userMetadatas( \n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"sshKey\")\n .value(\"ssh-ed25519 AAAAC3...\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"postInstallationScript\")\n .value(\"\"\"\n#!/bin/bash\n echo \"coucou postInstallationScript\" \u003e /opt/coucou\n cat /etc/machine-id \u003e\u003e /opt/coucou\n date \"+%Y-%m-%d %H:%M:%S\" --utc \u003e\u003e /opt/coucou\n \"\"\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n debian:\n type: ovh:Me:InstallationTemplate\n properties:\n baseTemplateName: debian12_64\n templateName: mydebian12\n customization:\n customHostname: mytest\n serverInstall:\n type: ovh:Dedicated:ServerInstallTask\n properties:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n templateName: ${debian.templateName}\n bootidOnDestroy: ${rescue.results[0]}\n details:\n customHostname: mytest\n userMetadatas:\n - key: sshKey\n value: ssh-ed25519 AAAAC3...\n - key: postInstallationScript\n value: |\n #!/bin/bash\n echo \"coucou postInstallationScript\" \u003e /opt/coucou\n cat /etc/machine-id \u003e\u003e /opt/coucou\n date \"+%Y-%m-%d %H:%M:%S\" --utc \u003e\u003e /opt/coucou\nvariables:\n rescue:\n fn::invoke:\n Function: ovh:Dedicated:getServerBoots\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootType: rescue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nUsing a BringYourOwnLinux (BYOLinux) template (with userMetadata)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst server = ovh.getServer({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n});\nconst rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst serverInstall = new ovh.dedicated.ServerInstallTask(\"serverInstall\", {\n serviceName: server.then(server =\u003e server.serviceName),\n templateName: \"byolinux_64\",\n bootidOnDestroy: rescue.then(rescue =\u003e rescue.results?.[0]),\n details: {\n customHostname: \"mytest\",\n },\n userMetadatas: [\n {\n key: \"imageURL\",\n value: \"https://myimage.qcow2\",\n },\n {\n key: \"imageType\",\n value: \"qcow2\",\n },\n {\n key: \"httpHeaders0Key\",\n value: \"Authorization\",\n },\n {\n key: \"httpHeaders0Value\",\n value: \"Basic bG9naW46xxxxxxx=\",\n },\n {\n key: \"imageChecksumType\",\n value: \"sha512\",\n },\n {\n key: \"imageCheckSum\",\n value: \"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\",\n },\n {\n key: \"configDriveUserData\",\n value: `#cloud-config\nssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n`,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nserver = ovh.get_server(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\")\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_type=\"rescue\")\nserver_install = ovh.dedicated.ServerInstallTask(\"serverInstall\",\n service_name=server.service_name,\n template_name=\"byolinux_64\",\n bootid_on_destroy=rescue.results[0],\n details={\n \"custom_hostname\": \"mytest\",\n },\n user_metadatas=[\n {\n \"key\": \"imageURL\",\n \"value\": \"https://myimage.qcow2\",\n },\n {\n \"key\": \"imageType\",\n \"value\": \"qcow2\",\n },\n {\n \"key\": \"httpHeaders0Key\",\n \"value\": \"Authorization\",\n },\n {\n \"key\": \"httpHeaders0Value\",\n \"value\": \"Basic bG9naW46xxxxxxx=\",\n },\n {\n \"key\": \"imageChecksumType\",\n \"value\": \"sha512\",\n },\n {\n \"key\": \"imageCheckSum\",\n \"value\": \"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\",\n },\n {\n \"key\": \"configDriveUserData\",\n \"value\": f\"\"\"#cloud-config\nssh_authorized_keys:\n - {data[\"ovh_me_ssh_key\"][\"mykey\"][\"key\"]}\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - {data[\"ovh_me_ssh_key\"][\"mykey\"][\"key\"]}\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n\"\"\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var server = Ovh.GetServer.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n });\n\n var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootType = \"rescue\",\n });\n\n var serverInstall = new Ovh.Dedicated.ServerInstallTask(\"serverInstall\", new()\n {\n ServiceName = server.Apply(getServerResult =\u003e getServerResult.ServiceName),\n TemplateName = \"byolinux_64\",\n BootidOnDestroy = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs\n {\n CustomHostname = \"mytest\",\n },\n UserMetadatas = new[]\n {\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageURL\",\n Value = \"https://myimage.qcow2\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageType\",\n Value = \"qcow2\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"httpHeaders0Key\",\n Value = \"Authorization\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"httpHeaders0Value\",\n Value = \"Basic bG9naW46xxxxxxx=\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageChecksumType\",\n Value = \"sha512\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"imageCheckSum\",\n Value = \"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"configDriveUserData\",\n Value = @$\"#cloud-config\nssh_authorized_keys:\n - {data.Ovh_me_ssh_key.Mykey.Key}\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - {data.Ovh_me_ssh_key.Mykey.Key}\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserver, err := ovh.GetServer(ctx, \u0026ovh.GetServerArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trescue, err := Dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType: pulumi.StringRef(\"rescue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerInstallTask(ctx, \"serverInstall\", \u0026Dedicated.ServerInstallTaskArgs{\n\t\t\tServiceName: pulumi.String(server.ServiceName),\n\t\t\tTemplateName: pulumi.String(\"byolinux_64\"),\n\t\t\tBootidOnDestroy: pulumi.Int(rescue.Results[0]),\n\t\t\tDetails: \u0026dedicated.ServerInstallTaskDetailsArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t\tUserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageURL\"),\n\t\t\t\t\tValue: pulumi.String(\"https://myimage.qcow2\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageType\"),\n\t\t\t\t\tValue: pulumi.String(\"qcow2\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"httpHeaders0Key\"),\n\t\t\t\t\tValue: pulumi.String(\"Authorization\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"httpHeaders0Value\"),\n\t\t\t\t\tValue: pulumi.String(\"Basic bG9naW46xxxxxxx=\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageChecksumType\"),\n\t\t\t\t\tValue: pulumi.String(\"sha512\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"imageCheckSum\"),\n\t\t\t\t\tValue: pulumi.String(\"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"configDriveUserData\"),\n\t\t\t\t\tValue: pulumi.Sprintf(`#cloud-config\nssh_authorized_keys:\n - %v\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - %v\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n`, data.Ovh_me_ssh_key.Mykey.Key, data.Ovh_me_ssh_key.Mykey.Key),\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.ovh.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetServerArgs;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.pulumi.ovh.Dedicated.ServerInstallTask;\nimport com.pulumi.ovh.Dedicated.ServerInstallTaskArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskDetailsArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskUserMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 server = OvhFunctions.getServer(GetServerArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .build());\n\n final var rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootType(\"rescue\")\n .build());\n\n var serverInstall = new ServerInstallTask(\"serverInstall\", ServerInstallTaskArgs.builder()\n .serviceName(server.applyValue(getServerResult -\u003e getServerResult.serviceName()))\n .templateName(\"byolinux_64\")\n .bootidOnDestroy(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .details(ServerInstallTaskDetailsArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .userMetadatas( \n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageURL\")\n .value(\"https://myimage.qcow2\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageType\")\n .value(\"qcow2\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"httpHeaders0Key\")\n .value(\"Authorization\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"httpHeaders0Value\")\n .value(\"Basic bG9naW46xxxxxxx=\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageChecksumType\")\n .value(\"sha512\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"imageCheckSum\")\n .value(\"047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"configDriveUserData\")\n .value(\"\"\"\n#cloud-config\nssh_authorized_keys:\n - %s\n\nusers:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - %s\ndisable_root: false\npackages:\n - vim\n - tree\nfinal_message: The system is finally up, after $UPTIME seconds\n\", data.ovh_me_ssh_key().mykey().key(),data.ovh_me_ssh_key().mykey().key()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n serverInstall:\n type: ovh:Dedicated:ServerInstallTask\n properties:\n serviceName: ${server.serviceName}\n templateName: byolinux_64\n bootidOnDestroy: ${rescue.results[0]}\n details:\n customHostname: mytest\n userMetadatas:\n - key: imageURL\n value: https://myimage.qcow2\n - key: imageType\n value: qcow2\n - key: httpHeaders0Key\n value: Authorization\n - key: httpHeaders0Value\n value: Basic bG9naW46xxxxxxx=\n - key: imageChecksumType\n value: sha512\n - key: imageCheckSum\n value: 047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225\n - key: configDriveUserData\n value: |\n #cloud-config\n ssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\n\n users:\n - name: patient0\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, sudo\n shell: /bin/bash\n lock_passwd: false\n ssh_authorized_keys:\n - ${data.ovh_me_ssh_key.mykey.key}\n disable_root: false\n packages:\n - vim\n - tree\n final_message: The system is finally up, after $UPTIME seconds\nvariables:\n server:\n fn::invoke:\n Function: ovh:getServer\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n rescue:\n fn::invoke:\n Function: ovh:Dedicated:getServerBoots\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootType: rescue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nUsing a Microsoft Windows server OVHcloud template with a specific language\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst server = ovh.getServer({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n});\nconst rescue = ovh.Dedicated.getServerBoots({\n serviceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n bootType: \"rescue\",\n});\nconst serverInstall = new ovh.dedicated.ServerInstallTask(\"serverInstall\", {\n serviceName: server.then(server =\u003e server.serviceName),\n templateName: \"win2019-std_64\",\n bootidOnDestroy: rescue.then(rescue =\u003e rescue.results?.[0]),\n details: {\n customHostname: \"mytest\",\n },\n userMetadatas: [\n {\n key: \"language\",\n value: \"fr-fr\",\n },\n {\n key: \"postInstallationScript\",\n value: `coucou postInstallationScriptPowerShell\" | Out-File -FilePath \"c:\\\\ovhupd\\\\script\\\\coucou.txt\"\n (Get-ItemProperty -LiteralPath \"Registry::HKLM\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\" -Name \"MachineGuid\").MachineGuid | Out-File -FilePath \"c:\\\\ovhupd\\\\script\\\\coucou.txt\" -Append\n (Get-Date).ToUniversalTime().ToString(\"yyyy-MM-dd HH:mm:ss\") | Out-File -FilePath \"c:\\\\ovhupd\\\\script\\\\coucou.txt\" -Append\n`,\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nserver = ovh.get_server(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\")\nrescue = ovh.Dedicated.get_server_boots(service_name=\"nsxxxxxxx.ip-xx-xx-xx.eu\",\n boot_type=\"rescue\")\nserver_install = ovh.dedicated.ServerInstallTask(\"serverInstall\",\n service_name=server.service_name,\n template_name=\"win2019-std_64\",\n bootid_on_destroy=rescue.results[0],\n details={\n \"custom_hostname\": \"mytest\",\n },\n user_metadatas=[\n {\n \"key\": \"language\",\n \"value\": \"fr-fr\",\n },\n {\n \"key\": \"postInstallationScript\",\n \"value\": \"\"\"coucou postInstallationScriptPowerShell\" | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\"\n (Get-ItemProperty -LiteralPath \"Registry::HKLM\\SOFTWARE\\Microsoft\\Cryptography\" -Name \"MachineGuid\").MachineGuid | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\" -Append\n (Get-Date).ToUniversalTime().ToString(\"yyyy-MM-dd HH:mm:ss\") | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\" -Append\n\"\"\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var server = Ovh.GetServer.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n });\n\n var rescue = Ovh.Dedicated.GetServerBoots.Invoke(new()\n {\n ServiceName = \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n BootType = \"rescue\",\n });\n\n var serverInstall = new Ovh.Dedicated.ServerInstallTask(\"serverInstall\", new()\n {\n ServiceName = server.Apply(getServerResult =\u003e getServerResult.ServiceName),\n TemplateName = \"win2019-std_64\",\n BootidOnDestroy = rescue.Apply(getServerBootsResult =\u003e getServerBootsResult.Results[0]),\n Details = new Ovh.Dedicated.Inputs.ServerInstallTaskDetailsArgs\n {\n CustomHostname = \"mytest\",\n },\n UserMetadatas = new[]\n {\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"language\",\n Value = \"fr-fr\",\n },\n new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs\n {\n Key = \"postInstallationScript\",\n Value = @\"coucou postInstallationScriptPowerShell\"\" | Out-File -FilePath \"\"c:\\ovhupd\\script\\coucou.txt\"\"\n (Get-ItemProperty -LiteralPath \"\"Registry::HKLM\\SOFTWARE\\Microsoft\\Cryptography\"\" -Name \"\"MachineGuid\"\").MachineGuid | Out-File -FilePath \"\"c:\\ovhupd\\script\\coucou.txt\"\" -Append\n (Get-Date).ToUniversalTime().ToString(\"\"yyyy-MM-dd HH:mm:ss\"\") | Out-File -FilePath \"\"c:\\ovhupd\\script\\coucou.txt\"\" -Append\n\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Dedicated\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserver, err := ovh.GetServer(ctx, \u0026ovh.GetServerArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trescue, err := Dedicated.GetServerBoots(ctx, \u0026dedicated.GetServerBootsArgs{\n\t\t\tServiceName: \"nsxxxxxxx.ip-xx-xx-xx.eu\",\n\t\t\tBootType: pulumi.StringRef(\"rescue\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Dedicated.NewServerInstallTask(ctx, \"serverInstall\", \u0026Dedicated.ServerInstallTaskArgs{\n\t\t\tServiceName: pulumi.String(server.ServiceName),\n\t\t\tTemplateName: pulumi.String(\"win2019-std_64\"),\n\t\t\tBootidOnDestroy: pulumi.Int(rescue.Results[0]),\n\t\t\tDetails: \u0026dedicated.ServerInstallTaskDetailsArgs{\n\t\t\t\tCustomHostname: pulumi.String(\"mytest\"),\n\t\t\t},\n\t\t\tUserMetadatas: dedicated.ServerInstallTaskUserMetadataArray{\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"language\"),\n\t\t\t\t\tValue: pulumi.String(\"fr-fr\"),\n\t\t\t\t},\n\t\t\t\t\u0026dedicated.ServerInstallTaskUserMetadataArgs{\n\t\t\t\t\tKey: pulumi.String(\"postInstallationScript\"),\n\t\t\t\t\tValue: pulumi.String(\"coucou postInstallationScriptPowerShell\\\" | Out-File -FilePath \\\"c:\\\\ovhupd\\\\script\\\\coucou.txt\\\"\\n (Get-ItemProperty -LiteralPath \\\"Registry::HKLM\\\\SOFTWARE\\\\Microsoft\\\\Cryptography\\\" -Name \\\"MachineGuid\\\").MachineGuid | Out-File -FilePath \\\"c:\\\\ovhupd\\\\script\\\\coucou.txt\\\" -Append\\n (Get-Date).ToUniversalTime().ToString(\\\"yyyy-MM-dd HH:mm:ss\\\") | Out-File -FilePath \\\"c:\\\\ovhupd\\\\script\\\\coucou.txt\\\" -Append\\n\"),\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.ovh.OvhFunctions;\nimport com.pulumi.ovh.inputs.GetServerArgs;\nimport com.pulumi.ovh.Dedicated.DedicatedFunctions;\nimport com.pulumi.ovh.Dedicated.inputs.GetServerBootsArgs;\nimport com.pulumi.ovh.Dedicated.ServerInstallTask;\nimport com.pulumi.ovh.Dedicated.ServerInstallTaskArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskDetailsArgs;\nimport com.pulumi.ovh.Dedicated.inputs.ServerInstallTaskUserMetadataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 server = OvhFunctions.getServer(GetServerArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .build());\n\n final var rescue = DedicatedFunctions.getServerBoots(GetServerBootsArgs.builder()\n .serviceName(\"nsxxxxxxx.ip-xx-xx-xx.eu\")\n .bootType(\"rescue\")\n .build());\n\n var serverInstall = new ServerInstallTask(\"serverInstall\", ServerInstallTaskArgs.builder()\n .serviceName(server.applyValue(getServerResult -\u003e getServerResult.serviceName()))\n .templateName(\"win2019-std_64\")\n .bootidOnDestroy(rescue.applyValue(getServerBootsResult -\u003e getServerBootsResult.results()[0]))\n .details(ServerInstallTaskDetailsArgs.builder()\n .customHostname(\"mytest\")\n .build())\n .userMetadatas( \n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"language\")\n .value(\"fr-fr\")\n .build(),\n ServerInstallTaskUserMetadataArgs.builder()\n .key(\"postInstallationScript\")\n .value(\"\"\"\ncoucou postInstallationScriptPowerShell\" | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\"\n (Get-ItemProperty -LiteralPath \"Registry::HKLM\\SOFTWARE\\Microsoft\\Cryptography\" -Name \"MachineGuid\").MachineGuid | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\" -Append\n (Get-Date).ToUniversalTime().ToString(\"yyyy-MM-dd HH:mm:ss\") | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\" -Append\n \"\"\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n serverInstall:\n type: ovh:Dedicated:ServerInstallTask\n properties:\n serviceName: ${server.serviceName}\n templateName: win2019-std_64\n bootidOnDestroy: ${rescue.results[0]}\n details:\n customHostname: mytest\n userMetadatas:\n - key: language\n value: fr-fr\n - key: postInstallationScript\n value: |\n coucou postInstallationScriptPowerShell\" | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\"\n (Get-ItemProperty -LiteralPath \"Registry::HKLM\\SOFTWARE\\Microsoft\\Cryptography\" -Name \"MachineGuid\").MachineGuid | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\" -Append\n (Get-Date).ToUniversalTime().ToString(\"yyyy-MM-dd HH:mm:ss\") | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\" -Append\nvariables:\n server:\n fn::invoke:\n Function: ovh:getServer\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n rescue:\n fn::invoke:\n Function: ovh:Dedicated:getServerBoots\n Arguments:\n serviceName: nsxxxxxxx.ip-xx-xx-xx.eu\n bootType: rescue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstallation task can be imported using the `service_name` (`nsXXXX.ip...`) of the baremetal server, the `template_name` used and ths `task_id`, separated by \"/\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Dedicated/serverInstallTask:ServerInstallTask ovh_dedicated_server_install_task nsXXXX.ipXXXX/template_name/12345\n```\n\n", "properties": { "bootidOnDestroy": { "type": "integer", @@ -12882,7 +13526,7 @@ } }, "ovh:Domain/zone:Zone": { - "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst zoneCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"dns\",\n planCode: \"zone\",\n}));\nconst zoneZone = new ovh.domain.Zone(\"zoneZone\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n plan: {\n duration: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.planCode),\n pricingMode: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.selectedPrices?.[0]?.pricingMode),\n configurations: [\n {\n label: \"zone\",\n value: \"myzone.mydomain.com\",\n },\n {\n label: \"template\",\n value: \"minimized\",\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\nzone_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"dns\",\n plan_code=\"zone\")\nzone_zone = ovh.domain.Zone(\"zoneZone\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n plan=ovh.domain.ZonePlanArgs(\n duration=zone_cart_product_plan.selected_prices[0].duration,\n plan_code=zone_cart_product_plan.plan_code,\n pricing_mode=zone_cart_product_plan.selected_prices[0].pricing_mode,\n configurations=[\n ovh.domain.ZonePlanConfigurationArgs(\n label=\"zone\",\n value=\"myzone.mydomain.com\",\n ),\n ovh.domain.ZonePlanConfigurationArgs(\n label=\"template\",\n value=\"minimized\",\n ),\n ],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var zoneCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"dns\",\n PlanCode = \"zone\",\n });\n\n var zoneZone = new Ovh.Domain.Zone(\"zoneZone\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Plan = new Ovh.Domain.Inputs.ZonePlanArgs\n {\n Duration = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n Configurations = new[]\n {\n new Ovh.Domain.Inputs.ZonePlanConfigurationArgs\n {\n Label = \"zone\",\n Value = \"myzone.mydomain.com\",\n },\n new Ovh.Domain.Inputs.ZonePlanConfigurationArgs\n {\n Label = \"template\",\n Value = \"minimized\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Domain\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzoneCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"dns\",\n\t\t\tPlanCode: \"zone\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Domain.NewZone(ctx, \"zoneZone\", \u0026Domain.ZoneArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tPlan: \u0026domain.ZonePlanArgs{\n\t\t\t\tDuration: pulumi.String(zoneCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(zoneCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(zoneCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: domain.ZonePlanConfigurationArray{\n\t\t\t\t\t\u0026domain.ZonePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"zone\"),\n\t\t\t\t\t\tValue: pulumi.String(\"myzone.mydomain.com\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026domain.ZonePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"template\"),\n\t\t\t\t\t\tValue: pulumi.String(\"minimized\"),\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.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Domain.Zone;\nimport com.pulumi.ovh.Domain.ZoneArgs;\nimport com.pulumi.ovh.Domain.inputs.ZonePlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var zoneCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"dns\")\n .planCode(\"zone\")\n .build());\n\n var zoneZone = new Zone(\"zoneZone\", ZoneArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .plan(ZonePlanArgs.builder()\n .duration(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .configurations( \n ZonePlanConfigurationArgs.builder()\n .label(\"zone\")\n .value(\"myzone.mydomain.com\")\n .build(),\n ZonePlanConfigurationArgs.builder()\n .label(\"template\")\n .value(\"minimized\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zoneZone:\n type: ovh:Domain:Zone\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n plan:\n duration: ${zoneCartProductPlan.selectedPrices[0].duration}\n planCode: ${zoneCartProductPlan.planCode}\n pricingMode: ${zoneCartProductPlan.selectedPrices[0].pricingMode}\n configurations:\n - label: zone\n value: myzone.mydomain.com\n - label: template\n value: minimized\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n zoneCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: dns\n planCode: zone\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nZone can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the zone. \n\nbash\n\n```sh\n$ pulumi import ovh:Domain/zone:Zone zone order_id\n```\n\n", + "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst zoneCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"dns\",\n planCode: \"zone\",\n}));\nconst zoneZone = new ovh.domain.Zone(\"zoneZone\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n plan: {\n duration: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.planCode),\n pricingMode: zoneCartProductPlan.then(zoneCartProductPlan =\u003e zoneCartProductPlan.selectedPrices?.[0]?.pricingMode),\n configurations: [\n {\n label: \"zone\",\n value: \"myzone.mydomain.com\",\n },\n {\n label: \"template\",\n value: \"minimized\",\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\nzone_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"dns\",\n plan_code=\"zone\")\nzone_zone = ovh.domain.Zone(\"zoneZone\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n plan={\n \"duration\": zone_cart_product_plan.selected_prices[0].duration,\n \"plan_code\": zone_cart_product_plan.plan_code,\n \"pricing_mode\": zone_cart_product_plan.selected_prices[0].pricing_mode,\n \"configurations\": [\n {\n \"label\": \"zone\",\n \"value\": \"myzone.mydomain.com\",\n },\n {\n \"label\": \"template\",\n \"value\": \"minimized\",\n },\n ],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var zoneCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"dns\",\n PlanCode = \"zone\",\n });\n\n var zoneZone = new Ovh.Domain.Zone(\"zoneZone\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Plan = new Ovh.Domain.Inputs.ZonePlanArgs\n {\n Duration = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = zoneCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n Configurations = new[]\n {\n new Ovh.Domain.Inputs.ZonePlanConfigurationArgs\n {\n Label = \"zone\",\n Value = \"myzone.mydomain.com\",\n },\n new Ovh.Domain.Inputs.ZonePlanConfigurationArgs\n {\n Label = \"template\",\n Value = \"minimized\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Domain\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tzoneCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"dns\",\n\t\t\tPlanCode: \"zone\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Domain.NewZone(ctx, \"zoneZone\", \u0026Domain.ZoneArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tPlan: \u0026domain.ZonePlanArgs{\n\t\t\t\tDuration: pulumi.String(zoneCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(zoneCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(zoneCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: domain.ZonePlanConfigurationArray{\n\t\t\t\t\t\u0026domain.ZonePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"zone\"),\n\t\t\t\t\t\tValue: pulumi.String(\"myzone.mydomain.com\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026domain.ZonePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"template\"),\n\t\t\t\t\t\tValue: pulumi.String(\"minimized\"),\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.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Domain.Zone;\nimport com.pulumi.ovh.Domain.ZoneArgs;\nimport com.pulumi.ovh.Domain.inputs.ZonePlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var zoneCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"dns\")\n .planCode(\"zone\")\n .build());\n\n var zoneZone = new Zone(\"zoneZone\", ZoneArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .plan(ZonePlanArgs.builder()\n .duration(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(zoneCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .configurations( \n ZonePlanConfigurationArgs.builder()\n .label(\"zone\")\n .value(\"myzone.mydomain.com\")\n .build(),\n ZonePlanConfigurationArgs.builder()\n .label(\"template\")\n .value(\"minimized\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n zoneZone:\n type: ovh:Domain:Zone\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n plan:\n duration: ${zoneCartProductPlan.selectedPrices[0].duration}\n planCode: ${zoneCartProductPlan.planCode}\n pricingMode: ${zoneCartProductPlan.selectedPrices[0].pricingMode}\n configurations:\n - label: zone\n value: myzone.mydomain.com\n - label: template\n value: minimized\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n zoneCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: dns\n planCode: zone\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nZone can be imported using the `order_id` that can be retrieved in the [order page](https://www.ovh.com/manager/#/dedicated/billing/orders/orders) at the creation time of the zone. \n\nbash\n\n```sh\n$ pulumi import ovh:Domain/zone:Zone zone order_id\n```\n\n", "properties": { "ZoneURN": { "type": "string" @@ -13090,6 +13734,60 @@ "type": "object" } }, + "ovh:Domain/zoneImport:ZoneImport": { + "description": "Handle a whole DNS zone using a zone file.\n\n\u003e __WARNING__ This resource and resource `ovh.Domain.ZoneRecord` should not be used together as `ovh.Domain.ZoneImport` controls the whole DNS zone at once.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as fs from \"fs\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst _import = new ovh.domain.ZoneImport(\"import\", {\n zoneName: \"mysite.ovh\",\n zoneFile: fs.readFileSync(\"./example.zone\", \"utf8\"),\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nimport_ = ovh.domain.ZoneImport(\"import\",\n zone_name=\"mysite.ovh\",\n zone_file=(lambda path: open(path).read())(\"./example.zone\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var import = new Ovh.Domain.ZoneImport(\"import\", new()\n {\n ZoneName = \"mysite.ovh\",\n ZoneFile = File.ReadAllText(\"./example.zone\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Domain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Domain.NewZoneImport(ctx, \"import\", \u0026Domain.ZoneImportArgs{\n\t\t\tZoneName: pulumi.String(\"mysite.ovh\"),\n\t\t\tZoneFile: pulumi.String(readFileOrPanic(\"./example.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.ovh.Domain.ZoneImport;\nimport com.pulumi.ovh.Domain.ZoneImportArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var import_ = new ZoneImport(\"import\", ZoneImportArgs.builder()\n .zoneName(\"mysite.ovh\")\n .zoneFile(Files.readString(Paths.get(\"./example.zone\")))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n import:\n type: ovh:Domain:ZoneImport\n properties:\n zoneName: mysite.ovh\n zoneFile:\n fn::readFile: ./example.zone\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "properties": { + "exportedContent": { + "type": "string", + "description": "Zone file exported from the API\n" + }, + "zoneFile": { + "type": "string", + "description": "Content of the zone file to import\n" + }, + "zoneName": { + "type": "string", + "description": "The name of the domain zone\n" + } + }, + "required": [ + "exportedContent", + "zoneFile", + "zoneName" + ], + "inputProperties": { + "zoneFile": { + "type": "string", + "description": "Content of the zone file to import\n" + }, + "zoneName": { + "type": "string", + "description": "The name of the domain zone\n" + } + }, + "requiredInputs": [ + "zoneFile", + "zoneName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ZoneImport resources.\n", + "properties": { + "exportedContent": { + "type": "string", + "description": "Zone file exported from the API\n" + }, + "zoneFile": { + "type": "string", + "description": "Content of the zone file to import\n" + }, + "zoneName": { + "type": "string", + "description": "The name of the domain zone\n" + } + }, + "type": "object" + } + }, "ovh:Domain/zoneRecord:ZoneRecord": { "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\n// Add a record to a sub-domain\nconst test = new ovh.domain.ZoneRecord(\"test\", {\n fieldtype: \"A\",\n subdomain: \"test\",\n target: \"0.0.0.0\",\n ttl: 3600,\n zone: \"testdemo.ovh\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\n# Add a record to a sub-domain\ntest = ovh.domain.ZoneRecord(\"test\",\n fieldtype=\"A\",\n subdomain=\"test\",\n target=\"0.0.0.0\",\n ttl=3600,\n zone=\"testdemo.ovh\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Add a record to a sub-domain\n var test = new Ovh.Domain.ZoneRecord(\"test\", new()\n {\n Fieldtype = \"A\",\n Subdomain = \"test\",\n Target = \"0.0.0.0\",\n Ttl = 3600,\n Zone = \"testdemo.ovh\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Domain\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Add a record to a sub-domain\n\t\t_, err := Domain.NewZoneRecord(ctx, \"test\", \u0026Domain.ZoneRecordArgs{\n\t\t\tFieldtype: pulumi.String(\"A\"),\n\t\t\tSubdomain: pulumi.String(\"test\"),\n\t\t\tTarget: pulumi.String(\"0.0.0.0\"),\n\t\t\tTtl: pulumi.Int(3600),\n\t\t\tZone: pulumi.String(\"testdemo.ovh\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Domain.ZoneRecord;\nimport com.pulumi.ovh.Domain.ZoneRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // Add a record to a sub-domain\n var test = new ZoneRecord(\"test\", ZoneRecordArgs.builder()\n .fieldtype(\"A\")\n .subdomain(\"test\")\n .target(\"0.0.0.0\")\n .ttl(3600)\n .zone(\"testdemo.ovh\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Add a record to a sub-domain\n test:\n type: ovh:Domain:ZoneRecord\n properties:\n fieldtype: A\n subdomain: test\n target: 0.0.0.0\n ttl: 3600\n zone: testdemo.ovh\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud domain zone record can be imported using the `id`, which can be retrieved by using [OVH API portal](https://api.ovh.com/console/#/domain/zone/%7BzoneName%7D/record~GET), and the `zone`, separated by \".\" E.g.,\n\nbash\n\n```sh\n$ pulumi import ovh:Domain/zoneRecord:ZoneRecord test id.zone\n```\n\n", "properties": { @@ -13287,7 +13985,7 @@ } }, "ovh:Hosting/privateDatabase:PrivateDatabase": { - "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst databaseCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"privateSQL\",\n planCode: \"private-sql-512-instance\",\n}));\nconst databasePrivateDatabase = new ovh.hosting.PrivateDatabase(\"databasePrivateDatabase\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n displayName: \"Postgresql-12\",\n plan: {\n duration: databaseCartProductPlan.then(databaseCartProductPlan =\u003e databaseCartProductPlan.prices?.[3]?.duration),\n planCode: databaseCartProductPlan.then(databaseCartProductPlan =\u003e databaseCartProductPlan.planCode),\n pricingMode: databaseCartProductPlan.then(databaseCartProductPlan =\u003e databaseCartProductPlan.selectedPrices?.[0]?.pricingMode),\n configurations: [\n {\n label: \"dc\",\n value: \"gra3\",\n },\n {\n label: \"engine\",\n value: \"postgresql_12\",\n },\n ],\n },\n});\nexport const privatedatabaseServiceName = databasePrivateDatabase.serviceName;\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\ndatabase_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"privateSQL\",\n plan_code=\"private-sql-512-instance\")\ndatabase_private_database = ovh.hosting.PrivateDatabase(\"databasePrivateDatabase\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n display_name=\"Postgresql-12\",\n plan=ovh.hosting.PrivateDatabasePlanArgs(\n duration=database_cart_product_plan.prices[3].duration,\n plan_code=database_cart_product_plan.plan_code,\n pricing_mode=database_cart_product_plan.selected_prices[0].pricing_mode,\n configurations=[\n ovh.hosting.PrivateDatabasePlanConfigurationArgs(\n label=\"dc\",\n value=\"gra3\",\n ),\n ovh.hosting.PrivateDatabasePlanConfigurationArgs(\n label=\"engine\",\n value=\"postgresql_12\",\n ),\n ],\n ))\npulumi.export(\"privatedatabaseServiceName\", database_private_database.service_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var databaseCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"privateSQL\",\n PlanCode = \"private-sql-512-instance\",\n });\n\n var databasePrivateDatabase = new Ovh.Hosting.PrivateDatabase(\"databasePrivateDatabase\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n DisplayName = \"Postgresql-12\",\n Plan = new Ovh.Hosting.Inputs.PrivateDatabasePlanArgs\n {\n Duration = databaseCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.Prices[3]?.Duration),\n PlanCode = databaseCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = databaseCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n Configurations = new[]\n {\n new Ovh.Hosting.Inputs.PrivateDatabasePlanConfigurationArgs\n {\n Label = \"dc\",\n Value = \"gra3\",\n },\n new Ovh.Hosting.Inputs.PrivateDatabasePlanConfigurationArgs\n {\n Label = \"engine\",\n Value = \"postgresql_12\",\n },\n },\n },\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"privatedatabaseServiceName\"] = databasePrivateDatabase.ServiceName,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Hosting\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdatabaseCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"privateSQL\",\n\t\t\tPlanCode: \"private-sql-512-instance\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdatabasePrivateDatabase, err := Hosting.NewPrivateDatabase(ctx, \"databasePrivateDatabase\", \u0026Hosting.PrivateDatabaseArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDisplayName: pulumi.String(\"Postgresql-12\"),\n\t\t\tPlan: \u0026hosting.PrivateDatabasePlanArgs{\n\t\t\t\tDuration: pulumi.String(databaseCartProductPlan.Prices[3].Duration),\n\t\t\t\tPlanCode: pulumi.String(databaseCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(databaseCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: hosting.PrivateDatabasePlanConfigurationArray{\n\t\t\t\t\t\u0026hosting.PrivateDatabasePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"dc\"),\n\t\t\t\t\t\tValue: pulumi.String(\"gra3\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026hosting.PrivateDatabasePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"engine\"),\n\t\t\t\t\t\tValue: pulumi.String(\"postgresql_12\"),\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\tctx.Export(\"privatedatabaseServiceName\", databasePrivateDatabase.ServiceName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Hosting.PrivateDatabase;\nimport com.pulumi.ovh.Hosting.PrivateDatabaseArgs;\nimport com.pulumi.ovh.Hosting.inputs.PrivateDatabasePlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var databaseCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"privateSQL\")\n .planCode(\"private-sql-512-instance\")\n .build());\n\n var databasePrivateDatabase = new PrivateDatabase(\"databasePrivateDatabase\", PrivateDatabaseArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .displayName(\"Postgresql-12\")\n .plan(PrivateDatabasePlanArgs.builder()\n .duration(databaseCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.prices()[3].duration()))\n .planCode(databaseCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(databaseCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .configurations( \n PrivateDatabasePlanConfigurationArgs.builder()\n .label(\"dc\")\n .value(\"gra3\")\n .build(),\n PrivateDatabasePlanConfigurationArgs.builder()\n .label(\"engine\")\n .value(\"postgresql_12\")\n .build())\n .build())\n .build());\n\n ctx.export(\"privatedatabaseServiceName\", databasePrivateDatabase.serviceName());\n }\n}\n```\n```yaml\nresources:\n databasePrivateDatabase:\n type: ovh:Hosting:PrivateDatabase\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n displayName: Postgresql-12\n plan:\n duration: ${databaseCartProductPlan.prices[3].duration}\n planCode: ${databaseCartProductPlan.planCode}\n pricingMode: ${databaseCartProductPlan.selectedPrices[0].pricingMode}\n configurations:\n - label: dc\n value: gra3\n - label: engine\n value: postgresql_12\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n databaseCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: privateSQL\n planCode: private-sql-512-instance\noutputs:\n privatedatabaseServiceName: ${databasePrivateDatabase.serviceName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Webhosting database can be imported using the `service_name`, E.g.,\n\n```sh\n$ pulumi import ovh:Hosting/privateDatabase:PrivateDatabase database service_name\n```\n", + "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst databaseCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"privateSQL\",\n planCode: \"private-sql-512-instance\",\n}));\nconst databasePrivateDatabase = new ovh.hosting.PrivateDatabase(\"databasePrivateDatabase\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n displayName: \"Postgresql-12\",\n plan: {\n duration: databaseCartProductPlan.then(databaseCartProductPlan =\u003e databaseCartProductPlan.prices?.[3]?.duration),\n planCode: databaseCartProductPlan.then(databaseCartProductPlan =\u003e databaseCartProductPlan.planCode),\n pricingMode: databaseCartProductPlan.then(databaseCartProductPlan =\u003e databaseCartProductPlan.selectedPrices?.[0]?.pricingMode),\n configurations: [\n {\n label: \"dc\",\n value: \"gra3\",\n },\n {\n label: \"engine\",\n value: \"postgresql_12\",\n },\n ],\n },\n});\nexport const privatedatabaseServiceName = databasePrivateDatabase.serviceName;\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\ndatabase_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"privateSQL\",\n plan_code=\"private-sql-512-instance\")\ndatabase_private_database = ovh.hosting.PrivateDatabase(\"databasePrivateDatabase\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n display_name=\"Postgresql-12\",\n plan={\n \"duration\": database_cart_product_plan.prices[3].duration,\n \"plan_code\": database_cart_product_plan.plan_code,\n \"pricing_mode\": database_cart_product_plan.selected_prices[0].pricing_mode,\n \"configurations\": [\n {\n \"label\": \"dc\",\n \"value\": \"gra3\",\n },\n {\n \"label\": \"engine\",\n \"value\": \"postgresql_12\",\n },\n ],\n })\npulumi.export(\"privatedatabaseServiceName\", database_private_database.service_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var databaseCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"privateSQL\",\n PlanCode = \"private-sql-512-instance\",\n });\n\n var databasePrivateDatabase = new Ovh.Hosting.PrivateDatabase(\"databasePrivateDatabase\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n DisplayName = \"Postgresql-12\",\n Plan = new Ovh.Hosting.Inputs.PrivateDatabasePlanArgs\n {\n Duration = databaseCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.Prices[3]?.Duration),\n PlanCode = databaseCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = databaseCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n Configurations = new[]\n {\n new Ovh.Hosting.Inputs.PrivateDatabasePlanConfigurationArgs\n {\n Label = \"dc\",\n Value = \"gra3\",\n },\n new Ovh.Hosting.Inputs.PrivateDatabasePlanConfigurationArgs\n {\n Label = \"engine\",\n Value = \"postgresql_12\",\n },\n },\n },\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"privatedatabaseServiceName\"] = databasePrivateDatabase.ServiceName,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Hosting\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdatabaseCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"privateSQL\",\n\t\t\tPlanCode: \"private-sql-512-instance\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdatabasePrivateDatabase, err := Hosting.NewPrivateDatabase(ctx, \"databasePrivateDatabase\", \u0026Hosting.PrivateDatabaseArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDisplayName: pulumi.String(\"Postgresql-12\"),\n\t\t\tPlan: \u0026hosting.PrivateDatabasePlanArgs{\n\t\t\t\tDuration: pulumi.String(databaseCartProductPlan.Prices[3].Duration),\n\t\t\t\tPlanCode: pulumi.String(databaseCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(databaseCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: hosting.PrivateDatabasePlanConfigurationArray{\n\t\t\t\t\t\u0026hosting.PrivateDatabasePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"dc\"),\n\t\t\t\t\t\tValue: pulumi.String(\"gra3\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026hosting.PrivateDatabasePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"engine\"),\n\t\t\t\t\t\tValue: pulumi.String(\"postgresql_12\"),\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\tctx.Export(\"privatedatabaseServiceName\", databasePrivateDatabase.ServiceName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Hosting.PrivateDatabase;\nimport com.pulumi.ovh.Hosting.PrivateDatabaseArgs;\nimport com.pulumi.ovh.Hosting.inputs.PrivateDatabasePlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var databaseCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"privateSQL\")\n .planCode(\"private-sql-512-instance\")\n .build());\n\n var databasePrivateDatabase = new PrivateDatabase(\"databasePrivateDatabase\", PrivateDatabaseArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .displayName(\"Postgresql-12\")\n .plan(PrivateDatabasePlanArgs.builder()\n .duration(databaseCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.prices()[3].duration()))\n .planCode(databaseCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(databaseCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .configurations( \n PrivateDatabasePlanConfigurationArgs.builder()\n .label(\"dc\")\n .value(\"gra3\")\n .build(),\n PrivateDatabasePlanConfigurationArgs.builder()\n .label(\"engine\")\n .value(\"postgresql_12\")\n .build())\n .build())\n .build());\n\n ctx.export(\"privatedatabaseServiceName\", databasePrivateDatabase.serviceName());\n }\n}\n```\n```yaml\nresources:\n databasePrivateDatabase:\n type: ovh:Hosting:PrivateDatabase\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n displayName: Postgresql-12\n plan:\n duration: ${databaseCartProductPlan.prices[3].duration}\n planCode: ${databaseCartProductPlan.planCode}\n pricingMode: ${databaseCartProductPlan.selectedPrices[0].pricingMode}\n configurations:\n - label: dc\n value: gra3\n - label: engine\n value: postgresql_12\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n databaseCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: privateSQL\n planCode: private-sql-512-instance\noutputs:\n privatedatabaseServiceName: ${databasePrivateDatabase.serviceName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOVHcloud Webhosting database can be imported using the `service_name`, E.g.,\n\n```sh\n$ pulumi import ovh:Hosting/privateDatabase:PrivateDatabase database service_name\n```\n", "properties": { "DatabaseURN": { "type": "string", @@ -14591,7 +15289,7 @@ } }, "ovh:Ip/ipService:IpService": { - "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = ovh.Order.getCart({\n ovhSubsidiary: \"fr\",\n});\nconst ipblockCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"ip\",\n planCode: \"ip-v4-s30-ripe\",\n}));\nconst ipblockIpService = new ovh.ip.IpService(\"ipblockIpService\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n description: \"my ip block\",\n plan: {\n duration: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.planCode),\n pricingMode: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.selectedPrices?.[0]?.pricingMode),\n configurations: [{\n label: \"country\",\n value: \"FR\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=\"fr\")\nipblock_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"ip\",\n plan_code=\"ip-v4-s30-ripe\")\nipblock_ip_service = ovh.ip.IpService(\"ipblockIpService\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n description=\"my ip block\",\n plan=ovh.ip.IpServicePlanArgs(\n duration=ipblock_cart_product_plan.selected_prices[0].duration,\n plan_code=ipblock_cart_product_plan.plan_code,\n pricing_mode=ipblock_cart_product_plan.selected_prices[0].pricing_mode,\n configurations=[ovh.ip.IpServicePlanConfigurationArgs(\n label=\"country\",\n value=\"FR\",\n )],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = \"fr\",\n });\n\n var ipblockCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"ip\",\n PlanCode = \"ip-v4-s30-ripe\",\n });\n\n var ipblockIpService = new Ovh.Ip.IpService(\"ipblockIpService\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Description = \"my ip block\",\n Plan = new Ovh.Ip.Inputs.IpServicePlanArgs\n {\n Duration = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n Configurations = new[]\n {\n new Ovh.Ip.Inputs.IpServicePlanConfigurationArgs\n {\n Label = \"country\",\n Value = \"FR\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: \"fr\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tipblockCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"ip\",\n\t\t\tPlanCode: \"ip-v4-s30-ripe\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Ip.NewIpService(ctx, \"ipblockIpService\", \u0026Ip.IpServiceArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDescription: pulumi.String(\"my ip block\"),\n\t\t\tPlan: \u0026ip.IpServicePlanArgs{\n\t\t\t\tDuration: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(ipblockCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: ip.IpServicePlanConfigurationArray{\n\t\t\t\t\t\u0026ip.IpServicePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"country\"),\n\t\t\t\t\t\tValue: pulumi.String(\"FR\"),\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.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Ip.IpService;\nimport com.pulumi.ovh.Ip.IpServiceArgs;\nimport com.pulumi.ovh.Ip.inputs.IpServicePlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(\"fr\")\n .build());\n\n final var ipblockCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"ip\")\n .planCode(\"ip-v4-s30-ripe\")\n .build());\n\n var ipblockIpService = new IpService(\"ipblockIpService\", IpServiceArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .description(\"my ip block\")\n .plan(IpServicePlanArgs.builder()\n .duration(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .configurations(IpServicePlanConfigurationArgs.builder()\n .label(\"country\")\n .value(\"FR\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ipblockIpService:\n type: ovh:Ip:IpService\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n description: my ip block\n plan:\n duration: ${ipblockCartProductPlan.selectedPrices[0].duration}\n planCode: ${ipblockCartProductPlan.planCode}\n pricingMode: ${ipblockCartProductPlan.selectedPrices[0].pricingMode}\n configurations:\n - label: country\n value: FR\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: fr\n ipblockCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: ip\n planCode: ip-v4-s30-ripe\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = ovh.Order.getCart({\n ovhSubsidiary: \"fr\",\n});\nconst ipblockCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"ip\",\n planCode: \"ip-v4-s30-ripe\",\n}));\nconst ipblockIpService = new ovh.ip.IpService(\"ipblockIpService\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n description: \"my ip block\",\n plan: {\n duration: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.planCode),\n pricingMode: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.selectedPrices?.[0]?.pricingMode),\n configurations: [{\n label: \"country\",\n value: \"FR\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=\"fr\")\nipblock_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"ip\",\n plan_code=\"ip-v4-s30-ripe\")\nipblock_ip_service = ovh.ip.IpService(\"ipblockIpService\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n description=\"my ip block\",\n plan={\n \"duration\": ipblock_cart_product_plan.selected_prices[0].duration,\n \"plan_code\": ipblock_cart_product_plan.plan_code,\n \"pricing_mode\": ipblock_cart_product_plan.selected_prices[0].pricing_mode,\n \"configurations\": [{\n \"label\": \"country\",\n \"value\": \"FR\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = \"fr\",\n });\n\n var ipblockCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"ip\",\n PlanCode = \"ip-v4-s30-ripe\",\n });\n\n var ipblockIpService = new Ovh.Ip.IpService(\"ipblockIpService\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Description = \"my ip block\",\n Plan = new Ovh.Ip.Inputs.IpServicePlanArgs\n {\n Duration = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n Configurations = new[]\n {\n new Ovh.Ip.Inputs.IpServicePlanConfigurationArgs\n {\n Label = \"country\",\n Value = \"FR\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: \"fr\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tipblockCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"ip\",\n\t\t\tPlanCode: \"ip-v4-s30-ripe\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Ip.NewIpService(ctx, \"ipblockIpService\", \u0026Ip.IpServiceArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDescription: pulumi.String(\"my ip block\"),\n\t\t\tPlan: \u0026ip.IpServicePlanArgs{\n\t\t\t\tDuration: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(ipblockCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: ip.IpServicePlanConfigurationArray{\n\t\t\t\t\t\u0026ip.IpServicePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"country\"),\n\t\t\t\t\t\tValue: pulumi.String(\"FR\"),\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.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Ip.IpService;\nimport com.pulumi.ovh.Ip.IpServiceArgs;\nimport com.pulumi.ovh.Ip.inputs.IpServicePlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(\"fr\")\n .build());\n\n final var ipblockCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"ip\")\n .planCode(\"ip-v4-s30-ripe\")\n .build());\n\n var ipblockIpService = new IpService(\"ipblockIpService\", IpServiceArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .description(\"my ip block\")\n .plan(IpServicePlanArgs.builder()\n .duration(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .configurations(IpServicePlanConfigurationArgs.builder()\n .label(\"country\")\n .value(\"FR\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ipblockIpService:\n type: ovh:Ip:IpService\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n description: my ip block\n plan:\n duration: ${ipblockCartProductPlan.selectedPrices[0].duration}\n planCode: ${ipblockCartProductPlan.planCode}\n pricingMode: ${ipblockCartProductPlan.selectedPrices[0].pricingMode}\n configurations:\n - label: country\n value: FR\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: fr\n ipblockCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: ip\n planCode: ip-v4-s30-ripe\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "canBeTerminated": { "type": "boolean", @@ -14860,7 +15558,7 @@ } }, "ovh:Ip/move:Move": { - "description": "Moves a given IP to a different service, or inversely, parks it if empty service is given\n\n## Move IP `1.2.3.4` to service loadbalancer-XXXXX\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst moveIpToLoadBalancerXxxxx = new ovh.ip.Move(\"moveIpToLoadBalancerXxxxx\", {\n ip: \"1.2.3.4\",\n routedTo: {\n serviceName: \"loadbalancer-XXXXX\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmove_ip_to_load_balancer_xxxxx = ovh.ip.Move(\"moveIpToLoadBalancerXxxxx\",\n ip=\"1.2.3.4\",\n routed_to=ovh.ip.MoveRoutedToArgs(\n service_name=\"loadbalancer-XXXXX\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var moveIpToLoadBalancerXxxxx = new Ovh.Ip.Move(\"moveIpToLoadBalancerXxxxx\", new()\n {\n Ip = \"1.2.3.4\",\n RoutedTo = new Ovh.Ip.Inputs.MoveRoutedToArgs\n {\n ServiceName = \"loadbalancer-XXXXX\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Ip.NewMove(ctx, \"moveIpToLoadBalancerXxxxx\", \u0026Ip.MoveArgs{\n\t\t\tIp: pulumi.String(\"1.2.3.4\"),\n\t\t\tRoutedTo: \u0026ip.MoveRoutedToArgs{\n\t\t\t\tServiceName: pulumi.String(\"loadbalancer-XXXXX\"),\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.ovh.Ip.Move;\nimport com.pulumi.ovh.Ip.MoveArgs;\nimport com.pulumi.ovh.Ip.inputs.MoveRoutedToArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var moveIpToLoadBalancerXxxxx = new Move(\"moveIpToLoadBalancerXxxxx\", MoveArgs.builder()\n .ip(\"1.2.3.4\")\n .routedTo(MoveRoutedToArgs.builder()\n .serviceName(\"loadbalancer-XXXXX\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n moveIpToLoadBalancerXxxxx:\n type: ovh:Ip:Move\n properties:\n ip: 1.2.3.4\n routedTo:\n serviceName: loadbalancer-XXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Park IP/Detach IP `1.2.3.4` from any service\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst parkIp = new ovh.ip.Move(\"parkIp\", {\n ip: \"1.2.3.4\",\n routedTo: {\n serviceName: \"\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npark_ip = ovh.ip.Move(\"parkIp\",\n ip=\"1.2.3.4\",\n routed_to=ovh.ip.MoveRoutedToArgs(\n service_name=\"\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var parkIp = new Ovh.Ip.Move(\"parkIp\", new()\n {\n Ip = \"1.2.3.4\",\n RoutedTo = new Ovh.Ip.Inputs.MoveRoutedToArgs\n {\n ServiceName = \"\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Ip.NewMove(ctx, \"parkIp\", \u0026Ip.MoveArgs{\n\t\t\tIp: pulumi.String(\"1.2.3.4\"),\n\t\t\tRoutedTo: \u0026ip.MoveRoutedToArgs{\n\t\t\t\tServiceName: pulumi.String(\"\"),\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.ovh.Ip.Move;\nimport com.pulumi.ovh.Ip.MoveArgs;\nimport com.pulumi.ovh.Ip.inputs.MoveRoutedToArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var parkIp = new Move(\"parkIp\", MoveArgs.builder()\n .ip(\"1.2.3.4\")\n .routedTo(MoveRoutedToArgs.builder()\n .serviceName(\"\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n parkIp:\n type: ovh:Ip:Move\n properties:\n ip: 1.2.3.4\n routedTo:\n serviceName:\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Moves a given IP to a different service, or inversely, parks it if empty service is given\n\n## Move IP `1.2.3.4` to service loadbalancer-XXXXX\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst moveIpToLoadBalancerXxxxx = new ovh.ip.Move(\"moveIpToLoadBalancerXxxxx\", {\n ip: \"1.2.3.4\",\n routedTo: {\n serviceName: \"loadbalancer-XXXXX\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmove_ip_to_load_balancer_xxxxx = ovh.ip.Move(\"moveIpToLoadBalancerXxxxx\",\n ip=\"1.2.3.4\",\n routed_to={\n \"service_name\": \"loadbalancer-XXXXX\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var moveIpToLoadBalancerXxxxx = new Ovh.Ip.Move(\"moveIpToLoadBalancerXxxxx\", new()\n {\n Ip = \"1.2.3.4\",\n RoutedTo = new Ovh.Ip.Inputs.MoveRoutedToArgs\n {\n ServiceName = \"loadbalancer-XXXXX\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Ip.NewMove(ctx, \"moveIpToLoadBalancerXxxxx\", \u0026Ip.MoveArgs{\n\t\t\tIp: pulumi.String(\"1.2.3.4\"),\n\t\t\tRoutedTo: \u0026ip.MoveRoutedToArgs{\n\t\t\t\tServiceName: pulumi.String(\"loadbalancer-XXXXX\"),\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.ovh.Ip.Move;\nimport com.pulumi.ovh.Ip.MoveArgs;\nimport com.pulumi.ovh.Ip.inputs.MoveRoutedToArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var moveIpToLoadBalancerXxxxx = new Move(\"moveIpToLoadBalancerXxxxx\", MoveArgs.builder()\n .ip(\"1.2.3.4\")\n .routedTo(MoveRoutedToArgs.builder()\n .serviceName(\"loadbalancer-XXXXX\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n moveIpToLoadBalancerXxxxx:\n type: ovh:Ip:Move\n properties:\n ip: 1.2.3.4\n routedTo:\n serviceName: loadbalancer-XXXXX\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Park IP/Detach IP `1.2.3.4` from any service\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst parkIp = new ovh.ip.Move(\"parkIp\", {\n ip: \"1.2.3.4\",\n routedTo: {\n serviceName: \"\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\npark_ip = ovh.ip.Move(\"parkIp\",\n ip=\"1.2.3.4\",\n routed_to={\n \"service_name\": \"\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var parkIp = new Ovh.Ip.Move(\"parkIp\", new()\n {\n Ip = \"1.2.3.4\",\n RoutedTo = new Ovh.Ip.Inputs.MoveRoutedToArgs\n {\n ServiceName = \"\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Ip.NewMove(ctx, \"parkIp\", \u0026Ip.MoveArgs{\n\t\t\tIp: pulumi.String(\"1.2.3.4\"),\n\t\t\tRoutedTo: \u0026ip.MoveRoutedToArgs{\n\t\t\t\tServiceName: pulumi.String(\"\"),\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.ovh.Ip.Move;\nimport com.pulumi.ovh.Ip.MoveArgs;\nimport com.pulumi.ovh.Ip.inputs.MoveRoutedToArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var parkIp = new Move(\"parkIp\", MoveArgs.builder()\n .ip(\"1.2.3.4\")\n .routedTo(MoveRoutedToArgs.builder()\n .serviceName(\"\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n parkIp:\n type: ovh:Ip:Move\n properties:\n ip: 1.2.3.4\n routedTo:\n serviceName:\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "canBeTerminated": { "type": "boolean", @@ -15050,7 +15748,7 @@ "properties": { "balance": { "type": "string", - "description": "Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`)\n" + "description": "Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`)\n" }, "displayName": { "type": "string", @@ -15088,7 +15786,7 @@ "inputProperties": { "balance": { "type": "string", - "description": "Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`)\n" + "description": "Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`)\n" }, "displayName": { "type": "string", @@ -15130,7 +15828,7 @@ "properties": { "balance": { "type": "string", - "description": "Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`)\n" + "description": "Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`)\n" }, "displayName": { "type": "string", @@ -15570,7 +16268,7 @@ } }, "ovh:IpLoadBalancing/httpRoute:HttpRoute": { - "description": "Manage HTTP route for a loadbalancer service\n\n## Example Usage\n\nRoute which redirect all url to https.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst httpsredirect = new ovh.iploadbalancing.HttpRoute(\"httpsredirect\", {\n action: {\n status: 302,\n target: \"https://${host}${path}${arguments}\",\n type: \"redirect\",\n },\n displayName: \"Redirect to HTTPS\",\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nhttpsredirect = ovh.ip_load_balancing.HttpRoute(\"httpsredirect\",\n action=ovh.ip_load_balancing.HttpRouteActionArgs(\n status=302,\n target=\"https://${host}${path}${arguments}\",\n type=\"redirect\",\n ),\n display_name=\"Redirect to HTTPS\",\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var httpsredirect = new Ovh.IpLoadBalancing.HttpRoute(\"httpsredirect\", new()\n {\n Action = new Ovh.IpLoadBalancing.Inputs.HttpRouteActionArgs\n {\n Status = 302,\n Target = \"https://${host}${path}${arguments}\",\n Type = \"redirect\",\n },\n DisplayName = \"Redirect to HTTPS\",\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n Weight = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := IpLoadBalancing.NewHttpRoute(ctx, \"httpsredirect\", \u0026IpLoadBalancing.HttpRouteArgs{\n\t\t\tAction: \u0026iploadbalancing.HttpRouteActionArgs{\n\t\t\t\tStatus: pulumi.Int(302),\n\t\t\t\tTarget: pulumi.String(\"https://${host}${path}${arguments}\"),\n\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t},\n\t\t\tDisplayName: pulumi.String(\"Redirect to HTTPS\"),\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tWeight: 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.ovh.IpLoadBalancing.HttpRoute;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.HttpRouteActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var httpsredirect = new HttpRoute(\"httpsredirect\", HttpRouteArgs.builder()\n .action(HttpRouteActionArgs.builder()\n .status(302)\n .target(\"https://${host}${path}${arguments}\")\n .type(\"redirect\")\n .build())\n .displayName(\"Redirect to HTTPS\")\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .weight(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n httpsredirect:\n type: ovh:IpLoadBalancing:HttpRoute\n properties:\n action:\n status: 302\n target: https://${host}${path}${arguments}\n type: redirect\n displayName: Redirect to HTTPS\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n weight: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nHTTP route can be imported using the following format `service_name` and the `id` of the route separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_http_route.httpsredirect service_name/route_id\n```\n", + "description": "Manage HTTP route for a loadbalancer service\n\n## Example Usage\n\nRoute which redirect all url to https.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst httpsredirect = new ovh.iploadbalancing.HttpRoute(\"httpsredirect\", {\n action: {\n status: 302,\n target: \"https://${host}${path}${arguments}\",\n type: \"redirect\",\n },\n displayName: \"Redirect to HTTPS\",\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nhttpsredirect = ovh.ip_load_balancing.HttpRoute(\"httpsredirect\",\n action={\n \"status\": 302,\n \"target\": \"https://${host}${path}${arguments}\",\n \"type\": \"redirect\",\n },\n display_name=\"Redirect to HTTPS\",\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var httpsredirect = new Ovh.IpLoadBalancing.HttpRoute(\"httpsredirect\", new()\n {\n Action = new Ovh.IpLoadBalancing.Inputs.HttpRouteActionArgs\n {\n Status = 302,\n Target = \"https://${host}${path}${arguments}\",\n Type = \"redirect\",\n },\n DisplayName = \"Redirect to HTTPS\",\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n Weight = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := IpLoadBalancing.NewHttpRoute(ctx, \"httpsredirect\", \u0026IpLoadBalancing.HttpRouteArgs{\n\t\t\tAction: \u0026iploadbalancing.HttpRouteActionArgs{\n\t\t\t\tStatus: pulumi.Int(302),\n\t\t\t\tTarget: pulumi.String(\"https://${host}${path}${arguments}\"),\n\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t},\n\t\t\tDisplayName: pulumi.String(\"Redirect to HTTPS\"),\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tWeight: 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.ovh.IpLoadBalancing.HttpRoute;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.HttpRouteActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var httpsredirect = new HttpRoute(\"httpsredirect\", HttpRouteArgs.builder()\n .action(HttpRouteActionArgs.builder()\n .status(302)\n .target(\"https://${host}${path}${arguments}\")\n .type(\"redirect\")\n .build())\n .displayName(\"Redirect to HTTPS\")\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .weight(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n httpsredirect:\n type: ovh:IpLoadBalancing:HttpRoute\n properties:\n action:\n status: 302\n target: https://${host}${path}${arguments}\n type: redirect\n displayName: Redirect to HTTPS\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n weight: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nHTTP route can be imported using the following format `service_name` and the `id` of the route separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_http_route.httpsredirect service_name/route_id\n```\n", "properties": { "action": { "$ref": "#/types/ovh:IpLoadBalancing/HttpRouteAction:HttpRouteAction", @@ -15679,7 +16377,7 @@ } }, "ovh:IpLoadBalancing/httpRouteRule:HttpRouteRule": { - "description": "Manage rules for HTTP route.\n\n## Example Usage\n\nRoute which redirect all URL to HTTPs for example.com (Vhost).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst httpsredirect = new ovh.iploadbalancing.HttpRoute(\"httpsredirect\", {\n action: {\n status: 302,\n target: \"https://${host}${path}${arguments}\",\n type: \"redirect\",\n },\n displayName: \"Redirect to HTTPS\",\n frontendId: 11111,\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight: 1,\n});\nconst examplerule = new ovh.iploadbalancing.HttpRouteRule(\"examplerule\", {\n displayName: \"Match example.com host\",\n field: \"host\",\n match: \"is\",\n negate: false,\n pattern: \"example.com\",\n routeId: httpsredirect.id,\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nhttpsredirect = ovh.ip_load_balancing.HttpRoute(\"httpsredirect\",\n action=ovh.ip_load_balancing.HttpRouteActionArgs(\n status=302,\n target=\"https://${host}${path}${arguments}\",\n type=\"redirect\",\n ),\n display_name=\"Redirect to HTTPS\",\n frontend_id=11111,\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight=1)\nexamplerule = ovh.ip_load_balancing.HttpRouteRule(\"examplerule\",\n display_name=\"Match example.com host\",\n field=\"host\",\n match=\"is\",\n negate=False,\n pattern=\"example.com\",\n route_id=httpsredirect.id,\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var httpsredirect = new Ovh.IpLoadBalancing.HttpRoute(\"httpsredirect\", new()\n {\n Action = new Ovh.IpLoadBalancing.Inputs.HttpRouteActionArgs\n {\n Status = 302,\n Target = \"https://${host}${path}${arguments}\",\n Type = \"redirect\",\n },\n DisplayName = \"Redirect to HTTPS\",\n FrontendId = 11111,\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n Weight = 1,\n });\n\n var examplerule = new Ovh.IpLoadBalancing.HttpRouteRule(\"examplerule\", new()\n {\n DisplayName = \"Match example.com host\",\n Field = \"host\",\n Match = \"is\",\n Negate = false,\n Pattern = \"example.com\",\n RouteId = httpsredirect.Id,\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thttpsredirect, err := IpLoadBalancing.NewHttpRoute(ctx, \"httpsredirect\", \u0026IpLoadBalancing.HttpRouteArgs{\n\t\t\tAction: \u0026iploadbalancing.HttpRouteActionArgs{\n\t\t\t\tStatus: pulumi.Int(302),\n\t\t\t\tTarget: pulumi.String(\"https://${host}${path}${arguments}\"),\n\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t},\n\t\t\tDisplayName: pulumi.String(\"Redirect to HTTPS\"),\n\t\t\tFrontendId: pulumi.Int(11111),\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tWeight: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewHttpRouteRule(ctx, \"examplerule\", \u0026IpLoadBalancing.HttpRouteRuleArgs{\n\t\t\tDisplayName: pulumi.String(\"Match example.com host\"),\n\t\t\tField: pulumi.String(\"host\"),\n\t\t\tMatch: pulumi.String(\"is\"),\n\t\t\tNegate: pulumi.Bool(false),\n\t\t\tPattern: pulumi.String(\"example.com\"),\n\t\t\tRouteId: httpsredirect.ID(),\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRoute;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.HttpRouteActionArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteRule;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var httpsredirect = new HttpRoute(\"httpsredirect\", HttpRouteArgs.builder()\n .action(HttpRouteActionArgs.builder()\n .status(302)\n .target(\"https://${host}${path}${arguments}\")\n .type(\"redirect\")\n .build())\n .displayName(\"Redirect to HTTPS\")\n .frontendId(11111)\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .weight(1)\n .build());\n\n var examplerule = new HttpRouteRule(\"examplerule\", HttpRouteRuleArgs.builder()\n .displayName(\"Match example.com host\")\n .field(\"host\")\n .match(\"is\")\n .negate(false)\n .pattern(\"example.com\")\n .routeId(httpsredirect.id())\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n httpsredirect:\n type: ovh:IpLoadBalancing:HttpRoute\n properties:\n action:\n status: 302\n target: https://${host}${path}${arguments}\n type: redirect\n displayName: Redirect to HTTPS\n frontendId: 11111\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n weight: 1\n examplerule:\n type: ovh:IpLoadBalancing:HttpRouteRule\n properties:\n displayName: Match example.com host\n field: host\n match: is\n negate: false\n pattern: example.com\n routeId: ${httpsredirect.id}\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nRule which match a specific header (same effect as the host match above).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst examplerule = new ovh.iploadbalancing.HttpRouteRule(\"examplerule\", {\n displayName: \"Match example.com Host header\",\n field: \"headers\",\n match: \"is\",\n negate: false,\n pattern: \"example.com\",\n routeId: ovh_iploadbalancing_http_route.httpsredirect.id,\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n subField: \"Host\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nexamplerule = ovh.ip_load_balancing.HttpRouteRule(\"examplerule\",\n display_name=\"Match example.com Host header\",\n field=\"headers\",\n match=\"is\",\n negate=False,\n pattern=\"example.com\",\n route_id=ovh_iploadbalancing_http_route[\"httpsredirect\"][\"id\"],\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n sub_field=\"Host\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var examplerule = new Ovh.IpLoadBalancing.HttpRouteRule(\"examplerule\", new()\n {\n DisplayName = \"Match example.com Host header\",\n Field = \"headers\",\n Match = \"is\",\n Negate = false,\n Pattern = \"example.com\",\n RouteId = ovh_iploadbalancing_http_route.Httpsredirect.Id,\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n SubField = \"Host\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := IpLoadBalancing.NewHttpRouteRule(ctx, \"examplerule\", \u0026IpLoadBalancing.HttpRouteRuleArgs{\n\t\t\tDisplayName: pulumi.String(\"Match example.com Host header\"),\n\t\t\tField: pulumi.String(\"headers\"),\n\t\t\tMatch: pulumi.String(\"is\"),\n\t\t\tNegate: pulumi.Bool(false),\n\t\t\tPattern: pulumi.String(\"example.com\"),\n\t\t\tRouteId: pulumi.Any(ovh_iploadbalancing_http_route.Httpsredirect.Id),\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tSubField: pulumi.String(\"Host\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteRule;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var examplerule = new HttpRouteRule(\"examplerule\", HttpRouteRuleArgs.builder()\n .displayName(\"Match example.com Host header\")\n .field(\"headers\")\n .match(\"is\")\n .negate(false)\n .pattern(\"example.com\")\n .routeId(ovh_iploadbalancing_http_route.httpsredirect().id())\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .subField(\"Host\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n examplerule:\n type: ovh:IpLoadBalancing:HttpRouteRule\n properties:\n displayName: Match example.com Host header\n field: headers\n match: is\n negate: false\n pattern: example.com\n routeId: ${ovh_iploadbalancing_http_route.httpsredirect.id}\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n subField: Host\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nHTTP route rule can be imported using the following format `service_name`, the `id` of the route and the `id` of the rule separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_http_route_rule.examplerule service_name/route_id/rule_id\n```\n", + "description": "Manage rules for HTTP route.\n\n## Example Usage\n\nRoute which redirect all URL to HTTPs for example.com (Vhost).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst httpsredirect = new ovh.iploadbalancing.HttpRoute(\"httpsredirect\", {\n action: {\n status: 302,\n target: \"https://${host}${path}${arguments}\",\n type: \"redirect\",\n },\n displayName: \"Redirect to HTTPS\",\n frontendId: 11111,\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight: 1,\n});\nconst examplerule = new ovh.iploadbalancing.HttpRouteRule(\"examplerule\", {\n displayName: \"Match example.com host\",\n field: \"host\",\n match: \"is\",\n negate: false,\n pattern: \"example.com\",\n routeId: httpsredirect.id,\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nhttpsredirect = ovh.ip_load_balancing.HttpRoute(\"httpsredirect\",\n action={\n \"status\": 302,\n \"target\": \"https://${host}${path}${arguments}\",\n \"type\": \"redirect\",\n },\n display_name=\"Redirect to HTTPS\",\n frontend_id=11111,\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight=1)\nexamplerule = ovh.ip_load_balancing.HttpRouteRule(\"examplerule\",\n display_name=\"Match example.com host\",\n field=\"host\",\n match=\"is\",\n negate=False,\n pattern=\"example.com\",\n route_id=httpsredirect.id,\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var httpsredirect = new Ovh.IpLoadBalancing.HttpRoute(\"httpsredirect\", new()\n {\n Action = new Ovh.IpLoadBalancing.Inputs.HttpRouteActionArgs\n {\n Status = 302,\n Target = \"https://${host}${path}${arguments}\",\n Type = \"redirect\",\n },\n DisplayName = \"Redirect to HTTPS\",\n FrontendId = 11111,\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n Weight = 1,\n });\n\n var examplerule = new Ovh.IpLoadBalancing.HttpRouteRule(\"examplerule\", new()\n {\n DisplayName = \"Match example.com host\",\n Field = \"host\",\n Match = \"is\",\n Negate = false,\n Pattern = \"example.com\",\n RouteId = httpsredirect.Id,\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thttpsredirect, err := IpLoadBalancing.NewHttpRoute(ctx, \"httpsredirect\", \u0026IpLoadBalancing.HttpRouteArgs{\n\t\t\tAction: \u0026iploadbalancing.HttpRouteActionArgs{\n\t\t\t\tStatus: pulumi.Int(302),\n\t\t\t\tTarget: pulumi.String(\"https://${host}${path}${arguments}\"),\n\t\t\t\tType: pulumi.String(\"redirect\"),\n\t\t\t},\n\t\t\tDisplayName: pulumi.String(\"Redirect to HTTPS\"),\n\t\t\tFrontendId: pulumi.Int(11111),\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tWeight: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewHttpRouteRule(ctx, \"examplerule\", \u0026IpLoadBalancing.HttpRouteRuleArgs{\n\t\t\tDisplayName: pulumi.String(\"Match example.com host\"),\n\t\t\tField: pulumi.String(\"host\"),\n\t\t\tMatch: pulumi.String(\"is\"),\n\t\t\tNegate: pulumi.Bool(false),\n\t\t\tPattern: pulumi.String(\"example.com\"),\n\t\t\tRouteId: httpsredirect.ID(),\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRoute;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.HttpRouteActionArgs;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteRule;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var httpsredirect = new HttpRoute(\"httpsredirect\", HttpRouteArgs.builder()\n .action(HttpRouteActionArgs.builder()\n .status(302)\n .target(\"https://${host}${path}${arguments}\")\n .type(\"redirect\")\n .build())\n .displayName(\"Redirect to HTTPS\")\n .frontendId(11111)\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .weight(1)\n .build());\n\n var examplerule = new HttpRouteRule(\"examplerule\", HttpRouteRuleArgs.builder()\n .displayName(\"Match example.com host\")\n .field(\"host\")\n .match(\"is\")\n .negate(false)\n .pattern(\"example.com\")\n .routeId(httpsredirect.id())\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n httpsredirect:\n type: ovh:IpLoadBalancing:HttpRoute\n properties:\n action:\n status: 302\n target: https://${host}${path}${arguments}\n type: redirect\n displayName: Redirect to HTTPS\n frontendId: 11111\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n weight: 1\n examplerule:\n type: ovh:IpLoadBalancing:HttpRouteRule\n properties:\n displayName: Match example.com host\n field: host\n match: is\n negate: false\n pattern: example.com\n routeId: ${httpsredirect.id}\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nRule which match a specific header (same effect as the host match above).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst examplerule = new ovh.iploadbalancing.HttpRouteRule(\"examplerule\", {\n displayName: \"Match example.com Host header\",\n field: \"headers\",\n match: \"is\",\n negate: false,\n pattern: \"example.com\",\n routeId: ovh_iploadbalancing_http_route.httpsredirect.id,\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n subField: \"Host\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nexamplerule = ovh.ip_load_balancing.HttpRouteRule(\"examplerule\",\n display_name=\"Match example.com Host header\",\n field=\"headers\",\n match=\"is\",\n negate=False,\n pattern=\"example.com\",\n route_id=ovh_iploadbalancing_http_route[\"httpsredirect\"][\"id\"],\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n sub_field=\"Host\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var examplerule = new Ovh.IpLoadBalancing.HttpRouteRule(\"examplerule\", new()\n {\n DisplayName = \"Match example.com Host header\",\n Field = \"headers\",\n Match = \"is\",\n Negate = false,\n Pattern = \"example.com\",\n RouteId = ovh_iploadbalancing_http_route.Httpsredirect.Id,\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n SubField = \"Host\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := IpLoadBalancing.NewHttpRouteRule(ctx, \"examplerule\", \u0026IpLoadBalancing.HttpRouteRuleArgs{\n\t\t\tDisplayName: pulumi.String(\"Match example.com Host header\"),\n\t\t\tField: pulumi.String(\"headers\"),\n\t\t\tMatch: pulumi.String(\"is\"),\n\t\t\tNegate: pulumi.Bool(false),\n\t\t\tPattern: pulumi.String(\"example.com\"),\n\t\t\tRouteId: pulumi.Any(ovh_iploadbalancing_http_route.Httpsredirect.Id),\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tSubField: pulumi.String(\"Host\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteRule;\nimport com.pulumi.ovh.IpLoadBalancing.HttpRouteRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var examplerule = new HttpRouteRule(\"examplerule\", HttpRouteRuleArgs.builder()\n .displayName(\"Match example.com Host header\")\n .field(\"headers\")\n .match(\"is\")\n .negate(false)\n .pattern(\"example.com\")\n .routeId(ovh_iploadbalancing_http_route.httpsredirect().id())\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .subField(\"Host\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n examplerule:\n type: ovh:IpLoadBalancing:HttpRouteRule\n properties:\n displayName: Match example.com Host header\n field: headers\n match: is\n negate: false\n pattern: example.com\n routeId: ${ovh_iploadbalancing_http_route.httpsredirect.id}\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n subField: Host\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nHTTP route rule can be imported using the following format `service_name`, the `id` of the route and the `id` of the rule separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_http_route_rule.examplerule service_name/route_id/rule_id\n```\n", "properties": { "displayName": { "type": "string", @@ -15805,7 +16503,7 @@ } }, "ovh:IpLoadBalancing/loadBalancer:LoadBalancer": { - "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst iplb = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"ipLoadbalancing\",\n planCode: \"iplb-lb1\",\n}));\nconst bhs = Promise.all([iplb, iplb, iplb, iplb]).then(([iplb, iplb1, iplb2, iplb3]) =\u003e ovh.Order.getCartProductOptionsPlan({\n cartId: iplb.cartId,\n priceCapacity: iplb1.priceCapacity,\n product: iplb2.product,\n planCode: iplb3.planCode,\n optionsPlanCode: \"iplb-zone-lb1-rbx\",\n}));\nconst iplb_lb1 = new ovh.iploadbalancing.LoadBalancer(\"iplb-lb1\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n displayName: \"my ip loadbalancing\",\n plan: {\n duration: iplb.then(iplb =\u003e iplb.selectedPrices?.[0]?.duration),\n planCode: iplb.then(iplb =\u003e iplb.planCode),\n pricingMode: iplb.then(iplb =\u003e iplb.selectedPrices?.[0]?.pricingMode),\n },\n planOptions: [{\n duration: bhs.then(bhs =\u003e bhs.selectedPrices?.[0]?.duration),\n planCode: bhs.then(bhs =\u003e bhs.planCode),\n pricingMode: bhs.then(bhs =\u003e bhs.selectedPrices?.[0]?.pricingMode),\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\niplb = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"ipLoadbalancing\",\n plan_code=\"iplb-lb1\")\nbhs = ovh.Order.get_cart_product_options_plan(cart_id=iplb.cart_id,\n price_capacity=iplb.price_capacity,\n product=iplb.product,\n plan_code=iplb.plan_code,\n options_plan_code=\"iplb-zone-lb1-rbx\")\niplb_lb1 = ovh.ip_load_balancing.LoadBalancer(\"iplb-lb1\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n display_name=\"my ip loadbalancing\",\n plan=ovh.ip_load_balancing.LoadBalancerPlanArgs(\n duration=iplb.selected_prices[0].duration,\n plan_code=iplb.plan_code,\n pricing_mode=iplb.selected_prices[0].pricing_mode,\n ),\n plan_options=[ovh.ip_load_balancing.LoadBalancerPlanOptionArgs(\n duration=bhs.selected_prices[0].duration,\n plan_code=bhs.plan_code,\n pricing_mode=bhs.selected_prices[0].pricing_mode,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var iplb = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"ipLoadbalancing\",\n PlanCode = \"iplb-lb1\",\n });\n\n var bhs = Ovh.Order.GetCartProductOptionsPlan.Invoke(new()\n {\n CartId = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.CartId),\n PriceCapacity = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PriceCapacity),\n Product = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.Product),\n PlanCode = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n OptionsPlanCode = \"iplb-zone-lb1-rbx\",\n });\n\n var iplb_lb1 = new Ovh.IpLoadBalancing.LoadBalancer(\"iplb-lb1\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n DisplayName = \"my ip loadbalancing\",\n Plan = new Ovh.IpLoadBalancing.Inputs.LoadBalancerPlanArgs\n {\n Duration = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n },\n PlanOptions = new[]\n {\n new Ovh.IpLoadBalancing.Inputs.LoadBalancerPlanOptionArgs\n {\n Duration = bhs.Apply(getCartProductOptionsPlanResult =\u003e getCartProductOptionsPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = bhs.Apply(getCartProductOptionsPlanResult =\u003e getCartProductOptionsPlanResult.PlanCode),\n PricingMode = bhs.Apply(getCartProductOptionsPlanResult =\u003e getCartProductOptionsPlanResult.SelectedPrices[0]?.PricingMode),\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tiplb, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"ipLoadbalancing\",\n\t\t\tPlanCode: \"iplb-lb1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbhs, err := Order.GetCartProductOptionsPlan(ctx, \u0026order.GetCartProductOptionsPlanArgs{\n\t\t\tCartId: iplb.CartId,\n\t\t\tPriceCapacity: iplb.PriceCapacity,\n\t\t\tProduct: iplb.Product,\n\t\t\tPlanCode: iplb.PlanCode,\n\t\t\tOptionsPlanCode: \"iplb-zone-lb1-rbx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewLoadBalancer(ctx, \"iplb-lb1\", \u0026IpLoadBalancing.LoadBalancerArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDisplayName: pulumi.String(\"my ip loadbalancing\"),\n\t\t\tPlan: \u0026iploadbalancing.LoadBalancerPlanArgs{\n\t\t\t\tDuration: pulumi.String(iplb.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(iplb.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(iplb.SelectedPrices[0].PricingMode),\n\t\t\t},\n\t\t\tPlanOptions: iploadbalancing.LoadBalancerPlanOptionArray{\n\t\t\t\t\u0026iploadbalancing.LoadBalancerPlanOptionArgs{\n\t\t\t\t\tDuration: pulumi.String(bhs.SelectedPrices[0].Duration),\n\t\t\t\t\tPlanCode: pulumi.String(bhs.PlanCode),\n\t\t\t\t\tPricingMode: pulumi.String(bhs.SelectedPrices[0].PricingMode),\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.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductOptionsPlanArgs;\nimport com.pulumi.ovh.IpLoadBalancing.LoadBalancer;\nimport com.pulumi.ovh.IpLoadBalancing.LoadBalancerArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.LoadBalancerPlanArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.LoadBalancerPlanOptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var iplb = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"ipLoadbalancing\")\n .planCode(\"iplb-lb1\")\n .build());\n\n final var bhs = OrderFunctions.getCartProductOptionsPlan(GetCartProductOptionsPlanArgs.builder()\n .cartId(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.cartId()))\n .priceCapacity(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.priceCapacity()))\n .product(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.product()))\n .planCode(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .optionsPlanCode(\"iplb-zone-lb1-rbx\")\n .build());\n\n var iplb_lb1 = new LoadBalancer(\"iplb-lb1\", LoadBalancerArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .displayName(\"my ip loadbalancing\")\n .plan(LoadBalancerPlanArgs.builder()\n .duration(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .build())\n .planOptions(LoadBalancerPlanOptionArgs.builder()\n .duration(bhs.applyValue(getCartProductOptionsPlanResult -\u003e getCartProductOptionsPlanResult.selectedPrices()[0].duration()))\n .planCode(bhs.applyValue(getCartProductOptionsPlanResult -\u003e getCartProductOptionsPlanResult.planCode()))\n .pricingMode(bhs.applyValue(getCartProductOptionsPlanResult -\u003e getCartProductOptionsPlanResult.selectedPrices()[0].pricingMode()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n iplb-lb1:\n type: ovh:IpLoadBalancing:LoadBalancer\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n displayName: my ip loadbalancing\n plan:\n duration: ${iplb.selectedPrices[0].duration}\n planCode: ${iplb.planCode}\n pricingMode: ${iplb.selectedPrices[0].pricingMode}\n planOptions:\n - duration: ${bhs.selectedPrices[0].duration}\n planCode: ${bhs.planCode}\n pricingMode: ${bhs.selectedPrices[0].pricingMode}\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n iplb:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: ipLoadbalancing\n planCode: iplb-lb1\n bhs:\n fn::invoke:\n Function: ovh:Order:getCartProductOptionsPlan\n Arguments:\n cartId: ${iplb.cartId}\n priceCapacity: ${iplb.priceCapacity}\n product: ${iplb.product}\n planCode: ${iplb.planCode}\n optionsPlanCode: iplb-zone-lb1-rbx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst iplb = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"ipLoadbalancing\",\n planCode: \"iplb-lb1\",\n}));\nconst bhs = Promise.all([iplb, iplb, iplb, iplb]).then(([iplb, iplb1, iplb2, iplb3]) =\u003e ovh.Order.getCartProductOptionsPlan({\n cartId: iplb.cartId,\n priceCapacity: iplb1.priceCapacity,\n product: iplb2.product,\n planCode: iplb3.planCode,\n optionsPlanCode: \"iplb-zone-lb1-rbx\",\n}));\nconst iplb_lb1 = new ovh.iploadbalancing.LoadBalancer(\"iplb-lb1\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n displayName: \"my ip loadbalancing\",\n plan: {\n duration: iplb.then(iplb =\u003e iplb.selectedPrices?.[0]?.duration),\n planCode: iplb.then(iplb =\u003e iplb.planCode),\n pricingMode: iplb.then(iplb =\u003e iplb.selectedPrices?.[0]?.pricingMode),\n },\n planOptions: [{\n duration: bhs.then(bhs =\u003e bhs.selectedPrices?.[0]?.duration),\n planCode: bhs.then(bhs =\u003e bhs.planCode),\n pricingMode: bhs.then(bhs =\u003e bhs.selectedPrices?.[0]?.pricingMode),\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\niplb = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"ipLoadbalancing\",\n plan_code=\"iplb-lb1\")\nbhs = ovh.Order.get_cart_product_options_plan(cart_id=iplb.cart_id,\n price_capacity=iplb.price_capacity,\n product=iplb.product,\n plan_code=iplb.plan_code,\n options_plan_code=\"iplb-zone-lb1-rbx\")\niplb_lb1 = ovh.ip_load_balancing.LoadBalancer(\"iplb-lb1\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n display_name=\"my ip loadbalancing\",\n plan={\n \"duration\": iplb.selected_prices[0].duration,\n \"plan_code\": iplb.plan_code,\n \"pricing_mode\": iplb.selected_prices[0].pricing_mode,\n },\n plan_options=[{\n \"duration\": bhs.selected_prices[0].duration,\n \"plan_code\": bhs.plan_code,\n \"pricing_mode\": bhs.selected_prices[0].pricing_mode,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var iplb = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"ipLoadbalancing\",\n PlanCode = \"iplb-lb1\",\n });\n\n var bhs = Ovh.Order.GetCartProductOptionsPlan.Invoke(new()\n {\n CartId = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.CartId),\n PriceCapacity = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PriceCapacity),\n Product = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.Product),\n PlanCode = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n OptionsPlanCode = \"iplb-zone-lb1-rbx\",\n });\n\n var iplb_lb1 = new Ovh.IpLoadBalancing.LoadBalancer(\"iplb-lb1\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n DisplayName = \"my ip loadbalancing\",\n Plan = new Ovh.IpLoadBalancing.Inputs.LoadBalancerPlanArgs\n {\n Duration = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = iplb.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n },\n PlanOptions = new[]\n {\n new Ovh.IpLoadBalancing.Inputs.LoadBalancerPlanOptionArgs\n {\n Duration = bhs.Apply(getCartProductOptionsPlanResult =\u003e getCartProductOptionsPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = bhs.Apply(getCartProductOptionsPlanResult =\u003e getCartProductOptionsPlanResult.PlanCode),\n PricingMode = bhs.Apply(getCartProductOptionsPlanResult =\u003e getCartProductOptionsPlanResult.SelectedPrices[0]?.PricingMode),\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tiplb, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"ipLoadbalancing\",\n\t\t\tPlanCode: \"iplb-lb1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbhs, err := Order.GetCartProductOptionsPlan(ctx, \u0026order.GetCartProductOptionsPlanArgs{\n\t\t\tCartId: iplb.CartId,\n\t\t\tPriceCapacity: iplb.PriceCapacity,\n\t\t\tProduct: iplb.Product,\n\t\t\tPlanCode: iplb.PlanCode,\n\t\t\tOptionsPlanCode: \"iplb-zone-lb1-rbx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewLoadBalancer(ctx, \"iplb-lb1\", \u0026IpLoadBalancing.LoadBalancerArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDisplayName: pulumi.String(\"my ip loadbalancing\"),\n\t\t\tPlan: \u0026iploadbalancing.LoadBalancerPlanArgs{\n\t\t\t\tDuration: pulumi.String(iplb.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(iplb.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(iplb.SelectedPrices[0].PricingMode),\n\t\t\t},\n\t\t\tPlanOptions: iploadbalancing.LoadBalancerPlanOptionArray{\n\t\t\t\t\u0026iploadbalancing.LoadBalancerPlanOptionArgs{\n\t\t\t\t\tDuration: pulumi.String(bhs.SelectedPrices[0].Duration),\n\t\t\t\t\tPlanCode: pulumi.String(bhs.PlanCode),\n\t\t\t\t\tPricingMode: pulumi.String(bhs.SelectedPrices[0].PricingMode),\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.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductOptionsPlanArgs;\nimport com.pulumi.ovh.IpLoadBalancing.LoadBalancer;\nimport com.pulumi.ovh.IpLoadBalancing.LoadBalancerArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.LoadBalancerPlanArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.LoadBalancerPlanOptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var iplb = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"ipLoadbalancing\")\n .planCode(\"iplb-lb1\")\n .build());\n\n final var bhs = OrderFunctions.getCartProductOptionsPlan(GetCartProductOptionsPlanArgs.builder()\n .cartId(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.cartId()))\n .priceCapacity(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.priceCapacity()))\n .product(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.product()))\n .planCode(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .optionsPlanCode(\"iplb-zone-lb1-rbx\")\n .build());\n\n var iplb_lb1 = new LoadBalancer(\"iplb-lb1\", LoadBalancerArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .displayName(\"my ip loadbalancing\")\n .plan(LoadBalancerPlanArgs.builder()\n .duration(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(iplb.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .build())\n .planOptions(LoadBalancerPlanOptionArgs.builder()\n .duration(bhs.applyValue(getCartProductOptionsPlanResult -\u003e getCartProductOptionsPlanResult.selectedPrices()[0].duration()))\n .planCode(bhs.applyValue(getCartProductOptionsPlanResult -\u003e getCartProductOptionsPlanResult.planCode()))\n .pricingMode(bhs.applyValue(getCartProductOptionsPlanResult -\u003e getCartProductOptionsPlanResult.selectedPrices()[0].pricingMode()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n iplb-lb1:\n type: ovh:IpLoadBalancing:LoadBalancer\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n displayName: my ip loadbalancing\n plan:\n duration: ${iplb.selectedPrices[0].duration}\n planCode: ${iplb.planCode}\n pricingMode: ${iplb.selectedPrices[0].pricingMode}\n planOptions:\n - duration: ${bhs.selectedPrices[0].duration}\n planCode: ${bhs.planCode}\n pricingMode: ${bhs.selectedPrices[0].pricingMode}\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n iplb:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: ipLoadbalancing\n planCode: iplb-lb1\n bhs:\n fn::invoke:\n Function: ovh:Order:getCartProductOptionsPlan\n Arguments:\n cartId: ${iplb.cartId}\n priceCapacity: ${iplb.priceCapacity}\n product: ${iplb.product}\n planCode: ${iplb.planCode}\n optionsPlanCode: iplb-zone-lb1-rbx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "LoadBalancerURN": { "type": "string", @@ -16613,7 +17311,7 @@ } }, "ovh:IpLoadBalancing/tcpRoute:TcpRoute": { - "description": "Manage TCP route for a loadbalancer service\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst tcpreject = new ovh.iploadbalancing.TcpRoute(\"tcpreject\", {\n action: {\n type: \"reject\",\n },\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ntcpreject = ovh.ip_load_balancing.TcpRoute(\"tcpreject\",\n action=ovh.ip_load_balancing.TcpRouteActionArgs(\n type=\"reject\",\n ),\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var tcpreject = new Ovh.IpLoadBalancing.TcpRoute(\"tcpreject\", new()\n {\n Action = new Ovh.IpLoadBalancing.Inputs.TcpRouteActionArgs\n {\n Type = \"reject\",\n },\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n Weight = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := IpLoadBalancing.NewTcpRoute(ctx, \"tcpreject\", \u0026IpLoadBalancing.TcpRouteArgs{\n\t\t\tAction: \u0026iploadbalancing.TcpRouteActionArgs{\n\t\t\t\tType: pulumi.String(\"reject\"),\n\t\t\t},\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tWeight: 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.ovh.IpLoadBalancing.TcpRoute;\nimport com.pulumi.ovh.IpLoadBalancing.TcpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.TcpRouteActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcpreject = new TcpRoute(\"tcpreject\", TcpRouteArgs.builder()\n .action(TcpRouteActionArgs.builder()\n .type(\"reject\")\n .build())\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .weight(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcpreject:\n type: ovh:IpLoadBalancing:TcpRoute\n properties:\n action:\n type: reject\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n weight: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nTCP route can be imported using the following format `service_name` and the `id` of the route separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_tcp_route.tcpreject service_name/route_id\n```\n", + "description": "Manage TCP route for a loadbalancer service\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst tcpreject = new ovh.iploadbalancing.TcpRoute(\"tcpreject\", {\n action: {\n type: \"reject\",\n },\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\ntcpreject = ovh.ip_load_balancing.TcpRoute(\"tcpreject\",\n action={\n \"type\": \"reject\",\n },\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var tcpreject = new Ovh.IpLoadBalancing.TcpRoute(\"tcpreject\", new()\n {\n Action = new Ovh.IpLoadBalancing.Inputs.TcpRouteActionArgs\n {\n Type = \"reject\",\n },\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n Weight = 1,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := IpLoadBalancing.NewTcpRoute(ctx, \"tcpreject\", \u0026IpLoadBalancing.TcpRouteArgs{\n\t\t\tAction: \u0026iploadbalancing.TcpRouteActionArgs{\n\t\t\t\tType: pulumi.String(\"reject\"),\n\t\t\t},\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tWeight: 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.ovh.IpLoadBalancing.TcpRoute;\nimport com.pulumi.ovh.IpLoadBalancing.TcpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.TcpRouteActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcpreject = new TcpRoute(\"tcpreject\", TcpRouteArgs.builder()\n .action(TcpRouteActionArgs.builder()\n .type(\"reject\")\n .build())\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .weight(1)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcpreject:\n type: ovh:IpLoadBalancing:TcpRoute\n properties:\n action:\n type: reject\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n weight: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nTCP route can be imported using the following format `service_name` and the `id` of the route separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_tcp_route.tcpreject service_name/route_id\n```\n", "properties": { "action": { "$ref": "#/types/ovh:IpLoadBalancing/TcpRouteAction:TcpRouteAction", @@ -16722,7 +17420,7 @@ } }, "ovh:IpLoadBalancing/tcpRouteRule:TcpRouteRule": { - "description": "Manage rules for TCP route.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst reject = new ovh.iploadbalancing.TcpRoute(\"reject\", {\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight: 1,\n frontendId: 11111,\n action: {\n type: \"reject\",\n },\n});\nconst examplerule = new ovh.iploadbalancing.TcpRouteRule(\"examplerule\", {\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n routeId: reject.id,\n displayName: \"Match example.com host\",\n field: \"sni\",\n match: \"is\",\n negate: false,\n pattern: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nreject = ovh.ip_load_balancing.TcpRoute(\"reject\",\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight=1,\n frontend_id=11111,\n action=ovh.ip_load_balancing.TcpRouteActionArgs(\n type=\"reject\",\n ))\nexamplerule = ovh.ip_load_balancing.TcpRouteRule(\"examplerule\",\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n route_id=reject.id,\n display_name=\"Match example.com host\",\n field=\"sni\",\n match=\"is\",\n negate=False,\n pattern=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var reject = new Ovh.IpLoadBalancing.TcpRoute(\"reject\", new()\n {\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n Weight = 1,\n FrontendId = 11111,\n Action = new Ovh.IpLoadBalancing.Inputs.TcpRouteActionArgs\n {\n Type = \"reject\",\n },\n });\n\n var examplerule = new Ovh.IpLoadBalancing.TcpRouteRule(\"examplerule\", new()\n {\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n RouteId = reject.Id,\n DisplayName = \"Match example.com host\",\n Field = \"sni\",\n Match = \"is\",\n Negate = false,\n Pattern = \"example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treject, err := IpLoadBalancing.NewTcpRoute(ctx, \"reject\", \u0026IpLoadBalancing.TcpRouteArgs{\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tWeight: pulumi.Int(1),\n\t\t\tFrontendId: pulumi.Int(11111),\n\t\t\tAction: \u0026iploadbalancing.TcpRouteActionArgs{\n\t\t\t\tType: pulumi.String(\"reject\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewTcpRouteRule(ctx, \"examplerule\", \u0026IpLoadBalancing.TcpRouteRuleArgs{\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tRouteId: reject.ID(),\n\t\t\tDisplayName: pulumi.String(\"Match example.com host\"),\n\t\t\tField: pulumi.String(\"sni\"),\n\t\t\tMatch: pulumi.String(\"is\"),\n\t\t\tNegate: pulumi.Bool(false),\n\t\t\tPattern: 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.ovh.IpLoadBalancing.TcpRoute;\nimport com.pulumi.ovh.IpLoadBalancing.TcpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.TcpRouteActionArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpRouteRule;\nimport com.pulumi.ovh.IpLoadBalancing.TcpRouteRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var reject = new TcpRoute(\"reject\", TcpRouteArgs.builder()\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .weight(1)\n .frontendId(11111)\n .action(TcpRouteActionArgs.builder()\n .type(\"reject\")\n .build())\n .build());\n\n var examplerule = new TcpRouteRule(\"examplerule\", TcpRouteRuleArgs.builder()\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .routeId(reject.id())\n .displayName(\"Match example.com host\")\n .field(\"sni\")\n .match(\"is\")\n .negate(false)\n .pattern(\"example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n reject:\n type: ovh:IpLoadBalancing:TcpRoute\n properties:\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n weight: 1\n frontendId: 11111\n action:\n type: reject\n examplerule:\n type: ovh:IpLoadBalancing:TcpRouteRule\n properties:\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n routeId: ${reject.id}\n displayName: Match example.com host\n field: sni\n match: is\n negate: false\n pattern: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nTCP route rule can be imported using the following format `service_name`, the `id` of the route and the `id` of the rule separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_tcp_route_rule.examplerule service_name/route_id/rule_id\n```\n", + "description": "Manage rules for TCP route.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\n\nconst reject = new ovh.iploadbalancing.TcpRoute(\"reject\", {\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight: 1,\n frontendId: 11111,\n action: {\n type: \"reject\",\n },\n});\nconst examplerule = new ovh.iploadbalancing.TcpRouteRule(\"examplerule\", {\n serviceName: \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n routeId: reject.id,\n displayName: \"Match example.com host\",\n field: \"sni\",\n match: \"is\",\n negate: false,\n pattern: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nreject = ovh.ip_load_balancing.TcpRoute(\"reject\",\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n weight=1,\n frontend_id=11111,\n action={\n \"type\": \"reject\",\n })\nexamplerule = ovh.ip_load_balancing.TcpRouteRule(\"examplerule\",\n service_name=\"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n route_id=reject.id,\n display_name=\"Match example.com host\",\n field=\"sni\",\n match=\"is\",\n negate=False,\n pattern=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var reject = new Ovh.IpLoadBalancing.TcpRoute(\"reject\", new()\n {\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n Weight = 1,\n FrontendId = 11111,\n Action = new Ovh.IpLoadBalancing.Inputs.TcpRouteActionArgs\n {\n Type = \"reject\",\n },\n });\n\n var examplerule = new Ovh.IpLoadBalancing.TcpRouteRule(\"examplerule\", new()\n {\n ServiceName = \"loadbalancer-xxxxxxxxxxxxxxxxxx\",\n RouteId = reject.Id,\n DisplayName = \"Match example.com host\",\n Field = \"sni\",\n Match = \"is\",\n Negate = false,\n Pattern = \"example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/IpLoadBalancing\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treject, err := IpLoadBalancing.NewTcpRoute(ctx, \"reject\", \u0026IpLoadBalancing.TcpRouteArgs{\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tWeight: pulumi.Int(1),\n\t\t\tFrontendId: pulumi.Int(11111),\n\t\t\tAction: \u0026iploadbalancing.TcpRouteActionArgs{\n\t\t\t\tType: pulumi.String(\"reject\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = IpLoadBalancing.NewTcpRouteRule(ctx, \"examplerule\", \u0026IpLoadBalancing.TcpRouteRuleArgs{\n\t\t\tServiceName: pulumi.String(\"loadbalancer-xxxxxxxxxxxxxxxxxx\"),\n\t\t\tRouteId: reject.ID(),\n\t\t\tDisplayName: pulumi.String(\"Match example.com host\"),\n\t\t\tField: pulumi.String(\"sni\"),\n\t\t\tMatch: pulumi.String(\"is\"),\n\t\t\tNegate: pulumi.Bool(false),\n\t\t\tPattern: 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.ovh.IpLoadBalancing.TcpRoute;\nimport com.pulumi.ovh.IpLoadBalancing.TcpRouteArgs;\nimport com.pulumi.ovh.IpLoadBalancing.inputs.TcpRouteActionArgs;\nimport com.pulumi.ovh.IpLoadBalancing.TcpRouteRule;\nimport com.pulumi.ovh.IpLoadBalancing.TcpRouteRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var reject = new TcpRoute(\"reject\", TcpRouteArgs.builder()\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .weight(1)\n .frontendId(11111)\n .action(TcpRouteActionArgs.builder()\n .type(\"reject\")\n .build())\n .build());\n\n var examplerule = new TcpRouteRule(\"examplerule\", TcpRouteRuleArgs.builder()\n .serviceName(\"loadbalancer-xxxxxxxxxxxxxxxxxx\")\n .routeId(reject.id())\n .displayName(\"Match example.com host\")\n .field(\"sni\")\n .match(\"is\")\n .negate(false)\n .pattern(\"example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n reject:\n type: ovh:IpLoadBalancing:TcpRoute\n properties:\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n weight: 1\n frontendId: 11111\n action:\n type: reject\n examplerule:\n type: ovh:IpLoadBalancing:TcpRouteRule\n properties:\n serviceName: loadbalancer-xxxxxxxxxxxxxxxxxx\n routeId: ${reject.id}\n displayName: Match example.com host\n field: sni\n match: is\n negate: false\n pattern: example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import \n\nTCP route rule can be imported using the following format `service_name`, the `id` of the route and the `id` of the rule separated by \"/\" e.g.\n\n```bash\n$ terraform import ovh_iploadbalancing_tcp_route_rule.examplerule service_name/route_id/rule_id\n```\n", "properties": { "displayName": { "type": "string", @@ -18356,7 +19054,7 @@ } }, "ovh:Vrack/ipAddress:IpAddress": { - "description": "Attach an IP block to a VRack.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst vrackCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"vrack\",\n planCode: \"vrack\",\n}));\nconst vrackVrack = new ovh.vrack.Vrack(\"vrackVrack\", {\n description: mycart.then(mycart =\u003e mycart.description),\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n plan: {\n duration: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.planCode),\n pricingMode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.pricingMode),\n },\n});\nconst ipblockCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"ip\",\n planCode: \"ip-v4-s30-ripe\",\n}));\nconst ipblockIpService = new ovh.ip.IpService(\"ipblockIpService\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n description: mycart.then(mycart =\u003e mycart.description),\n plan: {\n duration: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.planCode),\n pricingMode: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.selectedPrices?.[0]?.pricingMode),\n configurations: [{\n label: \"country\",\n value: \"FR\",\n }],\n },\n});\nconst vrackblock = new ovh.vrack.IpAddress(\"vrackblock\", {\n serviceName: vrackVrack.serviceName,\n block: ipblockIpService.ip,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\nvrack_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"vrack\",\n plan_code=\"vrack\")\nvrack_vrack = ovh.vrack.Vrack(\"vrackVrack\",\n description=mycart.description,\n ovh_subsidiary=mycart.ovh_subsidiary,\n plan=ovh.vrack.VrackPlanArgs(\n duration=vrack_cart_product_plan.selected_prices[0].duration,\n plan_code=vrack_cart_product_plan.plan_code,\n pricing_mode=vrack_cart_product_plan.selected_prices[0].pricing_mode,\n ))\nipblock_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"ip\",\n plan_code=\"ip-v4-s30-ripe\")\nipblock_ip_service = ovh.ip.IpService(\"ipblockIpService\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n description=mycart.description,\n plan=ovh.ip.IpServicePlanArgs(\n duration=ipblock_cart_product_plan.selected_prices[0].duration,\n plan_code=ipblock_cart_product_plan.plan_code,\n pricing_mode=ipblock_cart_product_plan.selected_prices[0].pricing_mode,\n configurations=[ovh.ip.IpServicePlanConfigurationArgs(\n label=\"country\",\n value=\"FR\",\n )],\n ))\nvrackblock = ovh.vrack.IpAddress(\"vrackblock\",\n service_name=vrack_vrack.service_name,\n block=ipblock_ip_service.ip)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var vrackCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"vrack\",\n PlanCode = \"vrack\",\n });\n\n var vrackVrack = new Ovh.Vrack.Vrack(\"vrackVrack\", new()\n {\n Description = mycart.Apply(getCartResult =\u003e getCartResult.Description),\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Plan = new Ovh.Vrack.Inputs.VrackPlanArgs\n {\n Duration = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n },\n });\n\n var ipblockCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"ip\",\n PlanCode = \"ip-v4-s30-ripe\",\n });\n\n var ipblockIpService = new Ovh.Ip.IpService(\"ipblockIpService\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Description = mycart.Apply(getCartResult =\u003e getCartResult.Description),\n Plan = new Ovh.Ip.Inputs.IpServicePlanArgs\n {\n Duration = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n Configurations = new[]\n {\n new Ovh.Ip.Inputs.IpServicePlanConfigurationArgs\n {\n Label = \"country\",\n Value = \"FR\",\n },\n },\n },\n });\n\n var vrackblock = new Ovh.Vrack.IpAddress(\"vrackblock\", new()\n {\n ServiceName = vrackVrack.ServiceName,\n Block = ipblockIpService.Ip,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Vrack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvrackCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"vrack\",\n\t\t\tPlanCode: \"vrack\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvrackVrack, err := Vrack.NewVrack(ctx, \"vrackVrack\", \u0026Vrack.VrackArgs{\n\t\t\tDescription: pulumi.String(mycart.Description),\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tPlan: \u0026vrack.VrackPlanArgs{\n\t\t\t\tDuration: pulumi.String(vrackCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(vrackCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(vrackCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tipblockCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"ip\",\n\t\t\tPlanCode: \"ip-v4-s30-ripe\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tipblockIpService, err := Ip.NewIpService(ctx, \"ipblockIpService\", \u0026Ip.IpServiceArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDescription: pulumi.String(mycart.Description),\n\t\t\tPlan: \u0026ip.IpServicePlanArgs{\n\t\t\t\tDuration: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(ipblockCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: ip.IpServicePlanConfigurationArray{\n\t\t\t\t\t\u0026ip.IpServicePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"country\"),\n\t\t\t\t\t\tValue: pulumi.String(\"FR\"),\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 = Vrack.NewIpAddress(ctx, \"vrackblock\", \u0026Vrack.IpAddressArgs{\n\t\t\tServiceName: vrackVrack.ServiceName,\n\t\t\tBlock: ipblockIpService.Ip,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Vrack.Vrack;\nimport com.pulumi.ovh.Vrack.VrackArgs;\nimport com.pulumi.ovh.Vrack.inputs.VrackPlanArgs;\nimport com.pulumi.ovh.Ip.IpService;\nimport com.pulumi.ovh.Ip.IpServiceArgs;\nimport com.pulumi.ovh.Ip.inputs.IpServicePlanArgs;\nimport com.pulumi.ovh.Vrack.IpAddress;\nimport com.pulumi.ovh.Vrack.IpAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var vrackCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"vrack\")\n .planCode(\"vrack\")\n .build());\n\n var vrackVrack = new Vrack(\"vrackVrack\", VrackArgs.builder()\n .description(mycart.applyValue(getCartResult -\u003e getCartResult.description()))\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .plan(VrackPlanArgs.builder()\n .duration(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .build())\n .build());\n\n final var ipblockCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"ip\")\n .planCode(\"ip-v4-s30-ripe\")\n .build());\n\n var ipblockIpService = new IpService(\"ipblockIpService\", IpServiceArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .description(mycart.applyValue(getCartResult -\u003e getCartResult.description()))\n .plan(IpServicePlanArgs.builder()\n .duration(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .configurations(IpServicePlanConfigurationArgs.builder()\n .label(\"country\")\n .value(\"FR\")\n .build())\n .build())\n .build());\n\n var vrackblock = new IpAddress(\"vrackblock\", IpAddressArgs.builder()\n .serviceName(vrackVrack.serviceName())\n .block(ipblockIpService.ip())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vrackVrack:\n type: ovh:Vrack:Vrack\n properties:\n description: ${mycart.description}\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n plan:\n duration: ${vrackCartProductPlan.selectedPrices[0].duration}\n planCode: ${vrackCartProductPlan.planCode}\n pricingMode: ${vrackCartProductPlan.selectedPrices[0].pricingMode}\n ipblockIpService:\n type: ovh:Ip:IpService\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n description: ${mycart.description}\n plan:\n duration: ${ipblockCartProductPlan.selectedPrices[0].duration}\n planCode: ${ipblockCartProductPlan.planCode}\n pricingMode: ${ipblockCartProductPlan.selectedPrices[0].pricingMode}\n configurations:\n - label: country\n value: FR\n vrackblock:\n type: ovh:Vrack:IpAddress\n properties:\n serviceName: ${vrackVrack.serviceName}\n block: ${ipblockIpService.ip}\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n vrackCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: vrack\n planCode: vrack\n ipblockCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: ip\n planCode: ip-v4-s30-ripe\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "description": "Attach an IP block to a VRack.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst vrackCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"vrack\",\n planCode: \"vrack\",\n}));\nconst vrackVrack = new ovh.vrack.Vrack(\"vrackVrack\", {\n description: mycart.then(mycart =\u003e mycart.description),\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n plan: {\n duration: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.planCode),\n pricingMode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.pricingMode),\n },\n});\nconst ipblockCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"ip\",\n planCode: \"ip-v4-s30-ripe\",\n}));\nconst ipblockIpService = new ovh.ip.IpService(\"ipblockIpService\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n description: mycart.then(mycart =\u003e mycart.description),\n plan: {\n duration: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.planCode),\n pricingMode: ipblockCartProductPlan.then(ipblockCartProductPlan =\u003e ipblockCartProductPlan.selectedPrices?.[0]?.pricingMode),\n configurations: [{\n label: \"country\",\n value: \"FR\",\n }],\n },\n});\nconst vrackblock = new ovh.vrack.IpAddress(\"vrackblock\", {\n serviceName: vrackVrack.serviceName,\n block: ipblockIpService.ip,\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\nvrack_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"vrack\",\n plan_code=\"vrack\")\nvrack_vrack = ovh.vrack.Vrack(\"vrackVrack\",\n description=mycart.description,\n ovh_subsidiary=mycart.ovh_subsidiary,\n plan={\n \"duration\": vrack_cart_product_plan.selected_prices[0].duration,\n \"plan_code\": vrack_cart_product_plan.plan_code,\n \"pricing_mode\": vrack_cart_product_plan.selected_prices[0].pricing_mode,\n })\nipblock_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"ip\",\n plan_code=\"ip-v4-s30-ripe\")\nipblock_ip_service = ovh.ip.IpService(\"ipblockIpService\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n description=mycart.description,\n plan={\n \"duration\": ipblock_cart_product_plan.selected_prices[0].duration,\n \"plan_code\": ipblock_cart_product_plan.plan_code,\n \"pricing_mode\": ipblock_cart_product_plan.selected_prices[0].pricing_mode,\n \"configurations\": [{\n \"label\": \"country\",\n \"value\": \"FR\",\n }],\n })\nvrackblock = ovh.vrack.IpAddress(\"vrackblock\",\n service_name=vrack_vrack.service_name,\n block=ipblock_ip_service.ip)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var vrackCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"vrack\",\n PlanCode = \"vrack\",\n });\n\n var vrackVrack = new Ovh.Vrack.Vrack(\"vrackVrack\", new()\n {\n Description = mycart.Apply(getCartResult =\u003e getCartResult.Description),\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Plan = new Ovh.Vrack.Inputs.VrackPlanArgs\n {\n Duration = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n },\n });\n\n var ipblockCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"ip\",\n PlanCode = \"ip-v4-s30-ripe\",\n });\n\n var ipblockIpService = new Ovh.Ip.IpService(\"ipblockIpService\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Description = mycart.Apply(getCartResult =\u003e getCartResult.Description),\n Plan = new Ovh.Ip.Inputs.IpServicePlanArgs\n {\n Duration = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = ipblockCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n Configurations = new[]\n {\n new Ovh.Ip.Inputs.IpServicePlanConfigurationArgs\n {\n Label = \"country\",\n Value = \"FR\",\n },\n },\n },\n });\n\n var vrackblock = new Ovh.Vrack.IpAddress(\"vrackblock\", new()\n {\n ServiceName = vrackVrack.ServiceName,\n Block = ipblockIpService.Ip,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Ip\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Vrack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvrackCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"vrack\",\n\t\t\tPlanCode: \"vrack\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvrackVrack, err := Vrack.NewVrack(ctx, \"vrackVrack\", \u0026Vrack.VrackArgs{\n\t\t\tDescription: pulumi.String(mycart.Description),\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tPlan: \u0026vrack.VrackPlanArgs{\n\t\t\t\tDuration: pulumi.String(vrackCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(vrackCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(vrackCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tipblockCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"ip\",\n\t\t\tPlanCode: \"ip-v4-s30-ripe\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tipblockIpService, err := Ip.NewIpService(ctx, \"ipblockIpService\", \u0026Ip.IpServiceArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDescription: pulumi.String(mycart.Description),\n\t\t\tPlan: \u0026ip.IpServicePlanArgs{\n\t\t\t\tDuration: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(ipblockCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(ipblockCartProductPlan.SelectedPrices[0].PricingMode),\n\t\t\t\tConfigurations: ip.IpServicePlanConfigurationArray{\n\t\t\t\t\t\u0026ip.IpServicePlanConfigurationArgs{\n\t\t\t\t\t\tLabel: pulumi.String(\"country\"),\n\t\t\t\t\t\tValue: pulumi.String(\"FR\"),\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 = Vrack.NewIpAddress(ctx, \"vrackblock\", \u0026Vrack.IpAddressArgs{\n\t\t\tServiceName: vrackVrack.ServiceName,\n\t\t\tBlock: ipblockIpService.Ip,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Vrack.Vrack;\nimport com.pulumi.ovh.Vrack.VrackArgs;\nimport com.pulumi.ovh.Vrack.inputs.VrackPlanArgs;\nimport com.pulumi.ovh.Ip.IpService;\nimport com.pulumi.ovh.Ip.IpServiceArgs;\nimport com.pulumi.ovh.Ip.inputs.IpServicePlanArgs;\nimport com.pulumi.ovh.Vrack.IpAddress;\nimport com.pulumi.ovh.Vrack.IpAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var vrackCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"vrack\")\n .planCode(\"vrack\")\n .build());\n\n var vrackVrack = new Vrack(\"vrackVrack\", VrackArgs.builder()\n .description(mycart.applyValue(getCartResult -\u003e getCartResult.description()))\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .plan(VrackPlanArgs.builder()\n .duration(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .build())\n .build());\n\n final var ipblockCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"ip\")\n .planCode(\"ip-v4-s30-ripe\")\n .build());\n\n var ipblockIpService = new IpService(\"ipblockIpService\", IpServiceArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .description(mycart.applyValue(getCartResult -\u003e getCartResult.description()))\n .plan(IpServicePlanArgs.builder()\n .duration(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(ipblockCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .configurations(IpServicePlanConfigurationArgs.builder()\n .label(\"country\")\n .value(\"FR\")\n .build())\n .build())\n .build());\n\n var vrackblock = new IpAddress(\"vrackblock\", IpAddressArgs.builder()\n .serviceName(vrackVrack.serviceName())\n .block(ipblockIpService.ip())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vrackVrack:\n type: ovh:Vrack:Vrack\n properties:\n description: ${mycart.description}\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n plan:\n duration: ${vrackCartProductPlan.selectedPrices[0].duration}\n planCode: ${vrackCartProductPlan.planCode}\n pricingMode: ${vrackCartProductPlan.selectedPrices[0].pricingMode}\n ipblockIpService:\n type: ovh:Ip:IpService\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n description: ${mycart.description}\n plan:\n duration: ${ipblockCartProductPlan.selectedPrices[0].duration}\n planCode: ${ipblockCartProductPlan.planCode}\n pricingMode: ${ipblockCartProductPlan.selectedPrices[0].pricingMode}\n configurations:\n - label: country\n value: FR\n vrackblock:\n type: ovh:Vrack:IpAddress\n properties:\n serviceName: ${vrackVrack.serviceName}\n block: ${ipblockIpService.ip}\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n vrackCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: vrack\n planCode: vrack\n ipblockCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: ip\n planCode: ip-v4-s30-ripe\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { "block": { "type": "string", @@ -18481,7 +19179,7 @@ } }, "ovh:Vrack/vrack:Vrack": { - "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst vrackCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"vrack\",\n planCode: \"vrack\",\n}));\nconst vrackVrack = new ovh.vrack.Vrack(\"vrackVrack\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n description: \"my vrack\",\n plan: {\n duration: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.planCode),\n pricingMode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.pricingMode),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\nvrack_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"vrack\",\n plan_code=\"vrack\")\nvrack_vrack = ovh.vrack.Vrack(\"vrackVrack\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n description=\"my vrack\",\n plan=ovh.vrack.VrackPlanArgs(\n duration=vrack_cart_product_plan.selected_prices[0].duration,\n plan_code=vrack_cart_product_plan.plan_code,\n pricing_mode=vrack_cart_product_plan.selected_prices[0].pricing_mode,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var vrackCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"vrack\",\n PlanCode = \"vrack\",\n });\n\n var vrackVrack = new Ovh.Vrack.Vrack(\"vrackVrack\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Description = \"my vrack\",\n Plan = new Ovh.Vrack.Inputs.VrackPlanArgs\n {\n Duration = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Vrack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvrackCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"vrack\",\n\t\t\tPlanCode: \"vrack\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Vrack.NewVrack(ctx, \"vrackVrack\", \u0026Vrack.VrackArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDescription: pulumi.String(\"my vrack\"),\n\t\t\tPlan: \u0026vrack.VrackPlanArgs{\n\t\t\t\tDuration: pulumi.String(vrackCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(vrackCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(vrackCartProductPlan.SelectedPrices[0].PricingMode),\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.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Vrack.Vrack;\nimport com.pulumi.ovh.Vrack.VrackArgs;\nimport com.pulumi.ovh.Vrack.inputs.VrackPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var vrackCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"vrack\")\n .planCode(\"vrack\")\n .build());\n\n var vrackVrack = new Vrack(\"vrackVrack\", VrackArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .description(\"my vrack\")\n .plan(VrackPlanArgs.builder()\n .duration(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vrackVrack:\n type: ovh:Vrack:Vrack\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n description: my vrack\n plan:\n duration: ${vrackCartProductPlan.selectedPrices[0].duration}\n planCode: ${vrackCartProductPlan.planCode}\n pricingMode: ${vrackCartProductPlan.selectedPrices[0].pricingMode}\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n vrackCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: vrack\n planCode: vrack\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nvRack can be imported using the `service_name`.\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/vrack:Vrack vrack service_name\n```\n\n", + "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as ovh from \"@ovhcloud/pulumi-ovh\";\nimport * as ovh from \"@pulumi/ovh\";\n\nconst myaccount = ovh.Me.getMe({});\nconst mycart = myaccount.then(myaccount =\u003e ovh.Order.getCart({\n ovhSubsidiary: myaccount.ovhSubsidiary,\n}));\nconst vrackCartProductPlan = mycart.then(mycart =\u003e ovh.Order.getCartProductPlan({\n cartId: mycart.id,\n priceCapacity: \"renew\",\n product: \"vrack\",\n planCode: \"vrack\",\n}));\nconst vrackVrack = new ovh.vrack.Vrack(\"vrackVrack\", {\n ovhSubsidiary: mycart.then(mycart =\u003e mycart.ovhSubsidiary),\n description: \"my vrack\",\n plan: {\n duration: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.duration),\n planCode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.planCode),\n pricingMode: vrackCartProductPlan.then(vrackCartProductPlan =\u003e vrackCartProductPlan.selectedPrices?.[0]?.pricingMode),\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_ovh as ovh\n\nmyaccount = ovh.Me.get_me()\nmycart = ovh.Order.get_cart(ovh_subsidiary=myaccount.ovh_subsidiary)\nvrack_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id,\n price_capacity=\"renew\",\n product=\"vrack\",\n plan_code=\"vrack\")\nvrack_vrack = ovh.vrack.Vrack(\"vrackVrack\",\n ovh_subsidiary=mycart.ovh_subsidiary,\n description=\"my vrack\",\n plan={\n \"duration\": vrack_cart_product_plan.selected_prices[0].duration,\n \"plan_code\": vrack_cart_product_plan.plan_code,\n \"pricing_mode\": vrack_cart_product_plan.selected_prices[0].pricing_mode,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Ovh = Pulumi.Ovh;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myaccount = Ovh.Me.GetMe.Invoke();\n\n var mycart = Ovh.Order.GetCart.Invoke(new()\n {\n OvhSubsidiary = myaccount.Apply(getMeResult =\u003e getMeResult.OvhSubsidiary),\n });\n\n var vrackCartProductPlan = Ovh.Order.GetCartProductPlan.Invoke(new()\n {\n CartId = mycart.Apply(getCartResult =\u003e getCartResult.Id),\n PriceCapacity = \"renew\",\n Product = \"vrack\",\n PlanCode = \"vrack\",\n });\n\n var vrackVrack = new Ovh.Vrack.Vrack(\"vrackVrack\", new()\n {\n OvhSubsidiary = mycart.Apply(getCartResult =\u003e getCartResult.OvhSubsidiary),\n Description = \"my vrack\",\n Plan = new Ovh.Vrack.Inputs.VrackPlanArgs\n {\n Duration = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.Duration),\n PlanCode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.PlanCode),\n PricingMode = vrackCartProductPlan.Apply(getCartProductPlanResult =\u003e getCartProductPlanResult.SelectedPrices[0]?.PricingMode),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Me\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Order\"\n\t\"github.com/ovh/pulumi-ovh/sdk/go/ovh/Vrack\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyaccount, err := Me.GetMe(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmycart, err := Order.GetCart(ctx, \u0026order.GetCartArgs{\n\t\t\tOvhSubsidiary: myaccount.OvhSubsidiary,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvrackCartProductPlan, err := Order.GetCartProductPlan(ctx, \u0026order.GetCartProductPlanArgs{\n\t\t\tCartId: mycart.Id,\n\t\t\tPriceCapacity: \"renew\",\n\t\t\tProduct: \"vrack\",\n\t\t\tPlanCode: \"vrack\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = Vrack.NewVrack(ctx, \"vrackVrack\", \u0026Vrack.VrackArgs{\n\t\t\tOvhSubsidiary: pulumi.String(mycart.OvhSubsidiary),\n\t\t\tDescription: pulumi.String(\"my vrack\"),\n\t\t\tPlan: \u0026vrack.VrackPlanArgs{\n\t\t\t\tDuration: pulumi.String(vrackCartProductPlan.SelectedPrices[0].Duration),\n\t\t\t\tPlanCode: pulumi.String(vrackCartProductPlan.PlanCode),\n\t\t\t\tPricingMode: pulumi.String(vrackCartProductPlan.SelectedPrices[0].PricingMode),\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.ovh.Me.MeFunctions;\nimport com.pulumi.ovh.Order.OrderFunctions;\nimport com.pulumi.ovh.Order.inputs.GetCartArgs;\nimport com.pulumi.ovh.Order.inputs.GetCartProductPlanArgs;\nimport com.pulumi.ovh.Vrack.Vrack;\nimport com.pulumi.ovh.Vrack.VrackArgs;\nimport com.pulumi.ovh.Vrack.inputs.VrackPlanArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myaccount = MeFunctions.getMe();\n\n final var mycart = OrderFunctions.getCart(GetCartArgs.builder()\n .ovhSubsidiary(myaccount.applyValue(getMeResult -\u003e getMeResult.ovhSubsidiary()))\n .build());\n\n final var vrackCartProductPlan = OrderFunctions.getCartProductPlan(GetCartProductPlanArgs.builder()\n .cartId(mycart.applyValue(getCartResult -\u003e getCartResult.id()))\n .priceCapacity(\"renew\")\n .product(\"vrack\")\n .planCode(\"vrack\")\n .build());\n\n var vrackVrack = new Vrack(\"vrackVrack\", VrackArgs.builder()\n .ovhSubsidiary(mycart.applyValue(getCartResult -\u003e getCartResult.ovhSubsidiary()))\n .description(\"my vrack\")\n .plan(VrackPlanArgs.builder()\n .duration(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].duration()))\n .planCode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.planCode()))\n .pricingMode(vrackCartProductPlan.applyValue(getCartProductPlanResult -\u003e getCartProductPlanResult.selectedPrices()[0].pricingMode()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vrackVrack:\n type: ovh:Vrack:Vrack\n properties:\n ovhSubsidiary: ${mycart.ovhSubsidiary}\n description: my vrack\n plan:\n duration: ${vrackCartProductPlan.selectedPrices[0].duration}\n planCode: ${vrackCartProductPlan.planCode}\n pricingMode: ${vrackCartProductPlan.selectedPrices[0].pricingMode}\nvariables:\n myaccount:\n fn::invoke:\n Function: ovh:Me:getMe\n Arguments: {}\n mycart:\n fn::invoke:\n Function: ovh:Order:getCart\n Arguments:\n ovhSubsidiary: ${myaccount.ovhSubsidiary}\n vrackCartProductPlan:\n fn::invoke:\n Function: ovh:Order:getCartProductPlan\n Arguments:\n cartId: ${mycart.id}\n priceCapacity: renew\n product: vrack\n planCode: vrack\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nvRack can be imported using the `service_name`.\n\nbash\n\n```sh\n$ pulumi import ovh:Vrack/vrack:Vrack vrack service_name\n```\n\n", "properties": { "VrackURN": { "type": "string", @@ -19042,7 +19740,7 @@ "items": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" } }, "description": "IP restrictions applied on Harbor UI and API.\n" @@ -19097,7 +19795,7 @@ "items": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" } }, "description": "IP restrictions applied on artifact manager component.\n" @@ -23626,7 +24324,7 @@ "properties": { "bootType": { "type": "string", - "description": "Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network)\n" + "description": "Filter the value of bootType property (harddisk, rescue, internal, network)\n" }, "kernel": { "type": "string", diff --git a/provider/go.mod b/provider/go.mod index 6deb6f85..e1925251 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -1,14 +1,16 @@ module github.com/ovh/pulumi-ovh/provider -go 1.21.12 +go 1.22 + +toolchain go1.22.7 replace github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240520223432-0c0bf0d65f10 require ( - github.com/ovh/terraform-provider-ovh v0.48.0 - github.com/pulumi/pulumi-terraform-bridge/pf v0.41.0 - github.com/pulumi/pulumi-terraform-bridge/v3 v3.88.0 - github.com/pulumi/pulumi/sdk/v3 v3.126.0 + github.com/ovh/terraform-provider-ovh v0.49.0 + github.com/pulumi/pulumi-terraform-bridge/pf v0.43.0 + github.com/pulumi/pulumi-terraform-bridge/v3 v3.90.0 + github.com/pulumi/pulumi/sdk/v3 v3.130.0 ) require ( @@ -178,10 +180,10 @@ require ( github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect github.com/pulumi/esc v0.9.1 // indirect github.com/pulumi/inflector v0.1.1 // indirect - github.com/pulumi/pulumi-java/pkg v0.11.0 // indirect + github.com/pulumi/pulumi-java/pkg v0.14.0 // indirect github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.8 // indirect - github.com/pulumi/pulumi-yaml v1.9.1 // indirect - github.com/pulumi/pulumi/pkg/v3 v3.126.0 // indirect + github.com/pulumi/pulumi-yaml v1.9.2 // indirect + github.com/pulumi/pulumi/pkg/v3 v3.130.0 // indirect github.com/pulumi/schema-tools v0.1.2 // indirect github.com/pulumi/terraform-diff-reader v0.0.2 // indirect github.com/rivo/uniseg v0.4.4 // indirect @@ -200,6 +202,7 @@ require ( github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.9.0 // indirect + github.com/teekennedy/goldmark-markdown v0.3.0 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect @@ -213,6 +216,7 @@ require ( github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/ybriffa/rfc3339 v0.0.0-20220203155318-1789e3fd6e70 // indirect + github.com/yuin/goldmark v1.7.4 // indirect github.com/zclconf/go-cty v1.14.3 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect @@ -223,14 +227,14 @@ require ( go.uber.org/atomic v1.9.0 // indirect gocloud.dev v0.37.0 // indirect gocloud.dev/secrets/hashivault v0.37.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect diff --git a/provider/go.sum b/provider/go.sum index 349309b7..f8bf78ca 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -1379,8 +1379,8 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -1881,8 +1881,8 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/ovh/go-ovh v1.6.0 h1:ixLOwxQdzYDx296sXcgS35TOPEahJkpjMGtzPadCjQI= github.com/ovh/go-ovh v1.6.0/go.mod h1:cTVDnl94z4tl8pP1uZ/8jlVxntjSIf09bNcQ5TJSC7c= -github.com/ovh/terraform-provider-ovh v0.48.0 h1:pFiW+ZdaBA7KLRkHHYo8FjwN2+Wome4tC83XE99ynQk= -github.com/ovh/terraform-provider-ovh v0.48.0/go.mod h1:9W2xVNvXTS4twSTs4VIQg489bahwSHGMIqYbYUrktOI= +github.com/ovh/terraform-provider-ovh v0.49.0 h1:7NXXgaGMA6cYEO/UiYzz27ve0fixgA0WjBmOSG8FE94= +github.com/ovh/terraform-provider-ovh v0.49.0/go.mod h1:9W2xVNvXTS4twSTs4VIQg489bahwSHGMIqYbYUrktOI= github.com/pgavlin/fx v0.1.6 h1:r9jEg69DhNoCd3Xh0+5mIbdbS3PqWrVWujkY76MFRTU= github.com/pgavlin/fx v0.1.6/go.mod h1:KWZJ6fqBBSh8GxHYqwYCf3rYE7Gp2p0N8tJp8xv9u9M= github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 h1:LoCV5cscNVWyK5ChN/uCoIFJz8jZD63VQiGJIRgr6uo= @@ -1922,20 +1922,20 @@ github.com/pulumi/inflector v0.1.1 h1:dvlxlWtXwOJTUUtcYDvwnl6Mpg33prhK+7mzeF+Sob github.com/pulumi/inflector v0.1.1/go.mod h1:HUFCjcPTz96YtTuUlwG3i3EZG4WlniBvR9bd+iJxCUY= github.com/pulumi/providertest v0.0.14 h1:5QlAPAAs82jkQraHsJvq1xgVfC7xtW8sFJwv2pHgxQ8= github.com/pulumi/providertest v0.0.14/go.mod h1:GcsqEGgSngwaNOD+kICJPIUQlnA911fGBU8HDlJvVL0= -github.com/pulumi/pulumi-java/pkg v0.11.0 h1:Jw9gBvyfmfOMq/EkYDm9+zGPxsDAA8jfeMpHmtZ+1oA= -github.com/pulumi/pulumi-java/pkg v0.11.0/go.mod h1:sXAk25P47AQVQL6ilAbFmRNgZykC7og/+87ihnqzFTc= -github.com/pulumi/pulumi-terraform-bridge/pf v0.41.0 h1:nSXm/mV699EtAXLoA/XrDkFyoyWPFyfcMqk/SGCuH2M= -github.com/pulumi/pulumi-terraform-bridge/pf v0.41.0/go.mod h1:vGN8Ab6u/dxRE1Byqo6dXQE/loVbe9hYqiiHqm00hV4= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.88.0 h1:0W2Y3Fk7VAWHpjD3FwzVnqWo7g1hD+96C0YDobMnvDU= -github.com/pulumi/pulumi-terraform-bridge/v3 v3.88.0/go.mod h1:QSDiqiCMMbfzrsp3oyRPWgSVE/dkVH5ujxoFappqjdo= +github.com/pulumi/pulumi-java/pkg v0.14.0 h1:CKL7lLF81Fq6VRhA5TNFsSMnHraTNCUzIhqCzYX8Wzk= +github.com/pulumi/pulumi-java/pkg v0.14.0/go.mod h1:VybuJMWJtJc9ZNbt1kcYH4TbpocMx9mEi7YWL2Co99c= +github.com/pulumi/pulumi-terraform-bridge/pf v0.43.0 h1:g15WgVKJBhFtzhLqOky6R77QIU3x4KkunrLHDSkK6CM= +github.com/pulumi/pulumi-terraform-bridge/pf v0.43.0/go.mod h1:xdU2rcUBjPX/alXMiywUK1GvN4goUHZxos8ZfT6sVXM= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.90.0 h1:e7xfYAiXCE8LCwfKvbGeNAjdPmKwPM3kavEXECt3wvs= +github.com/pulumi/pulumi-terraform-bridge/v3 v3.90.0/go.mod h1:dIVp4qG+GsUwmpz40L7Z+PZnzHf3cQq1CAFwhz++ris= github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.8 h1:mav2tSitA9BPJPLLahKgepHyYsMzwaTm4cvp0dcTMYw= github.com/pulumi/pulumi-terraform-bridge/x/muxer v0.0.8/go.mod h1:qUYk2c9i/yqMGNj9/bQyXpS39BxNDSXYjVN1njnq0zY= -github.com/pulumi/pulumi-yaml v1.9.1 h1:JPeI80M23SPactxgnCFS1casZlSr7ZhAXwSx4H55QQ4= -github.com/pulumi/pulumi-yaml v1.9.1/go.mod h1:OH0R34yJxA5u6zjYBN4JXcWoEvfkRoOVWi6viu8buoA= -github.com/pulumi/pulumi/pkg/v3 v3.126.0 h1:XaZU1ehjHN2I5ihkfwxK/UFMDiCDM9FSt2TBnbldAx4= -github.com/pulumi/pulumi/pkg/v3 v3.126.0/go.mod h1:1P4/oK9zceOJUm48QQl/TqjDN68lfsdnTR1FITTFddw= -github.com/pulumi/pulumi/sdk/v3 v3.126.0 h1:6GQVhwG2jgnG7wjRiWgrq0/sU39onctAiBcvTlqb20s= -github.com/pulumi/pulumi/sdk/v3 v3.126.0/go.mod h1:p1U24en3zt51agx+WlNboSOV8eLlPWYAkxMzVEXKbnY= +github.com/pulumi/pulumi-yaml v1.9.2 h1:BCUuRPA1USmFXrExiHRU8yJ+OiphLYnroPxKRgGCJrs= +github.com/pulumi/pulumi-yaml v1.9.2/go.mod h1:sIh/Oa/NLRGTojevh8D2/cPDPvo2j9iXegVDQIKKfw4= +github.com/pulumi/pulumi/pkg/v3 v3.130.0 h1:lS51XeCnhg72LXkMiw2FP1cGP+Y85wYD3quWhCPD5+M= +github.com/pulumi/pulumi/pkg/v3 v3.130.0/go.mod h1:jhZ1Ug5Rl1qivexgEWvmwSWYIT/jRnKSFhLwwv6PrZ0= +github.com/pulumi/pulumi/sdk/v3 v3.130.0 h1:gGJNd+akPqhZ+vrsZmAjSNJn6kGJkitjjkwrmIQMmn8= +github.com/pulumi/pulumi/sdk/v3 v3.130.0/go.mod h1:p1U24en3zt51agx+WlNboSOV8eLlPWYAkxMzVEXKbnY= github.com/pulumi/schema-tools v0.1.2 h1:Fd9xvUjgck4NA+7/jSk7InqCUT4Kj940+EcnbQKpfZo= github.com/pulumi/schema-tools v0.1.2/go.mod h1:62lgj52Tzq11eqWTIaKd+EVyYAu5dEcDJxMhTjvMO/k= github.com/pulumi/terraform-diff-reader v0.0.2 h1:kTE4nEXU3/SYXESvAIem+wyHMI3abqkI3OhJ0G04LLI= @@ -1944,6 +1944,8 @@ github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240520223432-0c0bf0d65f10 h1: github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20240520223432-0c0bf0d65f10/go.mod h1:H+8tjs9TjV2w57QFVSMBQacf8k/E1XwLXGCARgViC6A= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/rhysd/go-fakeio v1.0.0 h1:+TjiKCOs32dONY7DaoVz/VPOdvRkPfBkEyUDIpM8FQY= +github.com/rhysd/go-fakeio v1.0.0/go.mod h1:joYxF906trVwp2JLrE4jlN7A0z6wrz8O6o1UjarbFzE= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= @@ -2020,6 +2022,8 @@ github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/teekennedy/goldmark-markdown v0.3.0 h1:ik9/biVGCwGWFg8dQ3KVm2pQ/wiiG0whYiUcz9xH0W8= +github.com/teekennedy/goldmark-markdown v0.3.0/go.mod h1:kMhDz8La77A9UHvJGsxejd0QUflN9sS+QXCqnhmxmNo= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68= @@ -2057,6 +2061,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yuin/goldmark v1.7.4 h1:BDXOHExt+A7gwPCJgPIIq7ENvceR7we7rOS9TNoLZeg= +github.com/yuin/goldmark v1.7.4/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E= github.com/zclconf/go-cty v1.0.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zclconf/go-cty v1.1.0/go.mod h1:xnAOWiHeOqg2nWS62VtQ7pbOu17FtxJNW8RLEih+O3s= github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= @@ -2136,8 +2142,8 @@ golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2283,8 +2289,8 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2454,8 +2460,8 @@ golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -2476,8 +2482,8 @@ golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/provider/resources.go b/provider/resources.go index dc772af4..7d754a7c 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -231,7 +231,8 @@ func Provider() tfbridge.ProviderInfo { Tok: ovhResource(cloudProjectMod, "Gateway"), }, "ovh_cloud_project_gateway_interface": { - Tok: ovhResource(cloudProjectMod, "GatewayInterface"), + Tok: ovhResource(cloudProjectMod, "GatewayInterface"), + ComputeID: delegateID("id"), }, "ovh_cloud_project_kube": { Tok: ovhResource(cloudProjectMod, "Kube"), @@ -284,6 +285,10 @@ func Provider() tfbridge.ProviderInfo { "ovh_dedicated_nasha_partition_snapshot": { Tok: ovhResource(dedicatedMod, "NasHAPartitionSnapshot"), }, + "ovh_dedicated_server": { + Tok: ovhResource(dedicatedMod, "Server"), + ComputeID: delegateID("display_name"), + }, "ovh_dedicated_server_install_task": { Tok: ovhResource(dedicatedMod, "ServerInstallTask"), }, @@ -308,6 +313,10 @@ func Provider() tfbridge.ProviderInfo { Tok: ovhResource(domainMod, "ZoneDNSSec"), ComputeID: delegateID("zone_name"), }, + "ovh_domain_zone_import": { + Tok: ovhResource(domainMod, "ZoneImport"), + ComputeID: delegateID("zone_name"), + }, "ovh_domain_zone_record": { Tok: ovhResource(domainMod, "ZoneRecord"), }, diff --git a/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsManagement.cs b/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsManagement.cs index 6fd1f317..b2182029 100644 --- a/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsManagement.cs +++ b/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsManagement.cs @@ -52,7 +52,7 @@ public partial class ContainerRegistryIPRestrictionsManagement : global::Pulumi. /// IP restrictions applied on Harbor UI and API. /// [Output("ipRestrictions")] - public Output>> IpRestrictions { get; private set; } = null!; + public Output>> IpRestrictions { get; private set; } = null!; /// /// The id of the Managed Private Registry. @@ -114,14 +114,14 @@ public static ContainerRegistryIPRestrictionsManagement Get(string name, Input>? _ipRestrictions; + private InputList>? _ipRestrictions; /// /// IP restrictions applied on Harbor UI and API. /// - public InputList> IpRestrictions + public InputList> IpRestrictions { - get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); + get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); set => _ipRestrictions = value; } @@ -146,14 +146,14 @@ public ContainerRegistryIPRestrictionsManagementArgs() public sealed class ContainerRegistryIPRestrictionsManagementState : global::Pulumi.ResourceArgs { [Input("ipRestrictions")] - private InputList>? _ipRestrictions; + private InputList>? _ipRestrictions; /// /// IP restrictions applied on Harbor UI and API. /// - public InputList> IpRestrictions + public InputList> IpRestrictions { - get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); + get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); set => _ipRestrictions = value; } diff --git a/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsRegistry.cs b/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsRegistry.cs index 53b0c0c5..db236a34 100644 --- a/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsRegistry.cs +++ b/sdk/dotnet/CloudProject/ContainerRegistryIPRestrictionsRegistry.cs @@ -52,7 +52,7 @@ public partial class ContainerRegistryIPRestrictionsRegistry : global::Pulumi.Cu /// IP restrictions applied on artifact manager component. /// [Output("ipRestrictions")] - public Output>> IpRestrictions { get; private set; } = null!; + public Output>> IpRestrictions { get; private set; } = null!; /// /// The id of the Managed Private Registry. @@ -114,14 +114,14 @@ public static ContainerRegistryIPRestrictionsRegistry Get(string name, Input>? _ipRestrictions; + private InputList>? _ipRestrictions; /// /// IP restrictions applied on artifact manager component. /// - public InputList> IpRestrictions + public InputList> IpRestrictions { - get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); + get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); set => _ipRestrictions = value; } @@ -146,14 +146,14 @@ public ContainerRegistryIPRestrictionsRegistryArgs() public sealed class ContainerRegistryIPRestrictionsRegistryState : global::Pulumi.ResourceArgs { [Input("ipRestrictions")] - private InputList>? _ipRestrictions; + private InputList>? _ipRestrictions; /// /// IP restrictions applied on artifact manager component. /// - public InputList> IpRestrictions + public InputList> IpRestrictions { - get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); + get => _ipRestrictions ?? (_ipRestrictions = new InputList>()); set => _ipRestrictions = value; } diff --git a/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsManagement.cs b/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsManagement.cs index 42c63739..756b7511 100644 --- a/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsManagement.cs +++ b/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsManagement.cs @@ -76,7 +76,7 @@ public sealed class GetContainerRegistryIPRestrictionsManagementResult /// /// IP restrictions applied on Harbor UI and API. /// - public readonly ImmutableArray> IpRestrictions; + public readonly ImmutableArray> IpRestrictions; /// /// The ID of the Managed Private Registry. /// @@ -90,7 +90,7 @@ public sealed class GetContainerRegistryIPRestrictionsManagementResult private GetContainerRegistryIPRestrictionsManagementResult( string id, - ImmutableArray> ipRestrictions, + ImmutableArray> ipRestrictions, string registryId, diff --git a/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsRegistry.cs b/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsRegistry.cs index 8d3f10e9..26a28c64 100644 --- a/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsRegistry.cs +++ b/sdk/dotnet/CloudProject/GetContainerRegistryIPRestrictionsRegistry.cs @@ -76,7 +76,7 @@ public sealed class GetContainerRegistryIPRestrictionsRegistryResult /// /// IP restrictions applied on artifact manager component. /// - public readonly ImmutableArray> IpRestrictions; + public readonly ImmutableArray> IpRestrictions; /// /// The ID of the Managed Private Registry. /// @@ -90,7 +90,7 @@ public sealed class GetContainerRegistryIPRestrictionsRegistryResult private GetContainerRegistryIPRestrictionsRegistryResult( string id, - ImmutableArray> ipRestrictions, + ImmutableArray> ipRestrictions, string registryId, diff --git a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpec.cs b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpec.cs index a69ba815..5c417a27 100644 --- a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpec.cs +++ b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpec.cs @@ -13,14 +13,14 @@ namespace Pulumi.Ovh.CloudProject.Inputs public sealed class GetKubeNodePoolTemplateSpecArgs : global::Pulumi.InvokeArgs { [Input("taints")] - private List>? _taints; + private List>? _taints; /// /// taints /// - public List> Taints + public List> Taints { - get => _taints ?? (_taints = new List>()); + get => _taints ?? (_taints = new List>()); set => _taints = value; } diff --git a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpecArgs.cs b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpecArgs.cs index 511deba0..16af00f7 100644 --- a/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpecArgs.cs +++ b/sdk/dotnet/CloudProject/Inputs/GetKubeNodePoolTemplateSpecArgs.cs @@ -13,14 +13,14 @@ namespace Pulumi.Ovh.CloudProject.Inputs public sealed class GetKubeNodePoolTemplateSpecInputArgs : global::Pulumi.ResourceArgs { [Input("taints")] - private InputList>? _taints; + private InputList>? _taints; /// /// taints /// - public InputList> Taints + public InputList> Taints { - get => _taints ?? (_taints = new InputList>()); + get => _taints ?? (_taints = new InputList>()); set => _taints = value; } diff --git a/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecArgs.cs b/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecArgs.cs index 16ac403f..313a21f2 100644 --- a/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecArgs.cs +++ b/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecArgs.cs @@ -13,14 +13,14 @@ namespace Pulumi.Ovh.CloudProject.Inputs public sealed class KubeNodePoolTemplateSpecArgs : global::Pulumi.ResourceArgs { [Input("taints", required: true)] - private InputList>? _taints; + private InputList>? _taints; /// /// taints /// - public InputList> Taints + public InputList> Taints { - get => _taints ?? (_taints = new InputList>()); + get => _taints ?? (_taints = new InputList>()); set => _taints = value; } diff --git a/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecGetArgs.cs b/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecGetArgs.cs index 784e2935..63d52c35 100644 --- a/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecGetArgs.cs +++ b/sdk/dotnet/CloudProject/Inputs/KubeNodePoolTemplateSpecGetArgs.cs @@ -13,14 +13,14 @@ namespace Pulumi.Ovh.CloudProject.Inputs public sealed class KubeNodePoolTemplateSpecGetArgs : global::Pulumi.ResourceArgs { [Input("taints", required: true)] - private InputList>? _taints; + private InputList>? _taints; /// /// taints /// - public InputList> Taints + public InputList> Taints { - get => _taints ?? (_taints = new InputList>()); + get => _taints ?? (_taints = new InputList>()); set => _taints = value; } diff --git a/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateSpecResult.cs b/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateSpecResult.cs index 963ff3f1..e7ce25fd 100644 --- a/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateSpecResult.cs +++ b/sdk/dotnet/CloudProject/Outputs/GetKubeNodePoolTemplateSpecResult.cs @@ -16,7 +16,7 @@ public sealed class GetKubeNodePoolTemplateSpecResult /// /// taints /// - public readonly ImmutableArray> Taints; + public readonly ImmutableArray> Taints; /// /// unschedulable /// @@ -24,7 +24,7 @@ public sealed class GetKubeNodePoolTemplateSpecResult [OutputConstructor] private GetKubeNodePoolTemplateSpecResult( - ImmutableArray> taints, + ImmutableArray> taints, bool? unschedulable) { diff --git a/sdk/dotnet/CloudProject/Outputs/KubeNodePoolTemplateSpec.cs b/sdk/dotnet/CloudProject/Outputs/KubeNodePoolTemplateSpec.cs index 4622223b..550f7327 100644 --- a/sdk/dotnet/CloudProject/Outputs/KubeNodePoolTemplateSpec.cs +++ b/sdk/dotnet/CloudProject/Outputs/KubeNodePoolTemplateSpec.cs @@ -16,7 +16,7 @@ public sealed class KubeNodePoolTemplateSpec /// /// taints /// - public readonly ImmutableArray> Taints; + public readonly ImmutableArray> Taints; /// /// unschedulable /// @@ -24,7 +24,7 @@ public sealed class KubeNodePoolTemplateSpec [OutputConstructor] private KubeNodePoolTemplateSpec( - ImmutableArray> taints, + ImmutableArray> taints, bool unschedulable) { diff --git a/sdk/dotnet/CloudProject/User.cs b/sdk/dotnet/CloudProject/User.cs index 9db438ff..32e5a375 100644 --- a/sdk/dotnet/CloudProject/User.cs +++ b/sdk/dotnet/CloudProject/User.cs @@ -50,7 +50,7 @@ public partial class User : global::Pulumi.CustomResource /// Note: no password nor sensitive token is set in this map. /// [Output("openstackRc")] - public Output> OpenstackRc { get; private set; } = null!; + public Output> OpenstackRc { get; private set; } = null!; /// /// (Sensitive) the password generated for the user. The password can @@ -168,15 +168,15 @@ public sealed class UserArgs : global::Pulumi.ResourceArgs public Input? Description { get; set; } [Input("openstackRc")] - private InputMap? _openstackRc; + private InputMap? _openstackRc; /// /// a convenient map representing an openstack_rc file. /// Note: no password nor sensitive token is set in this map. /// - public InputMap OpenstackRc + public InputMap OpenstackRc { - get => _openstackRc ?? (_openstackRc = new InputMap()); + get => _openstackRc ?? (_openstackRc = new InputMap()); set => _openstackRc = value; } @@ -238,15 +238,15 @@ public sealed class UserState : global::Pulumi.ResourceArgs public Input? Description { get; set; } [Input("openstackRc")] - private InputMap? _openstackRc; + private InputMap? _openstackRc; /// /// a convenient map representing an openstack_rc file. /// Note: no password nor sensitive token is set in this map. /// - public InputMap OpenstackRc + public InputMap OpenstackRc { - get => _openstackRc ?? (_openstackRc = new InputMap()); + get => _openstackRc ?? (_openstackRc = new InputMap()); set => _openstackRc = value; } diff --git a/sdk/dotnet/Dbaas/LogsInput.cs b/sdk/dotnet/Dbaas/LogsInput.cs index fc527af2..7f1c5e96 100644 --- a/sdk/dotnet/Dbaas/LogsInput.cs +++ b/sdk/dotnet/Dbaas/LogsInput.cs @@ -75,6 +75,12 @@ public partial class LogsInput : global::Pulumi.CustomResource [Output("allowedNetworks")] public Output> AllowedNetworks { get; private set; } = null!; + /// + /// Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + /// + [Output("autoscale")] + public Output Autoscale { get; private set; } = null!; + /// /// Input configuration /// @@ -87,6 +93,12 @@ public partial class LogsInput : global::Pulumi.CustomResource [Output("createdAt")] public Output CreatedAt { get; private set; } = null!; + /// + /// Number of instance running (returned by the API) + /// + [Output("currentNbInstance")] + public Output CurrentNbInstance { get; private set; } = null!; + /// /// Input description /// @@ -124,10 +136,22 @@ public partial class LogsInput : global::Pulumi.CustomResource public Output IsRestartRequired { get; private set; } = null!; /// - /// Number of instance running + /// Maximum number of instances in auto-scaled mode + /// + [Output("maxScaleInstance")] + public Output MaxScaleInstance { get; private set; } = null!; + + /// + /// Minimum number of instances in auto-scaled mode + /// + [Output("minScaleInstance")] + public Output MinScaleInstance { get; private set; } = null!; + + /// + /// Number of instance running (input, mutually exclusive with parameter `autoscale`) /// [Output("nbInstance")] - public Output NbInstance { get; private set; } = null!; + public Output NbInstance { get; private set; } = null!; /// /// Input IP address @@ -234,6 +258,12 @@ public InputList AllowedNetworks set => _allowedNetworks = value; } + /// + /// Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + /// + [Input("autoscale")] + public Input? Autoscale { get; set; } + /// /// Input configuration /// @@ -259,7 +289,19 @@ public InputList AllowedNetworks public Input? ExposedPort { get; set; } /// - /// Number of instance running + /// Maximum number of instances in auto-scaled mode + /// + [Input("maxScaleInstance")] + public Input? MaxScaleInstance { get; set; } + + /// + /// Minimum number of instances in auto-scaled mode + /// + [Input("minScaleInstance")] + public Input? MinScaleInstance { get; set; } + + /// + /// Number of instance running (input, mutually exclusive with parameter `autoscale`) /// [Input("nbInstance")] public Input? NbInstance { get; set; } @@ -302,6 +344,12 @@ public InputList AllowedNetworks set => _allowedNetworks = value; } + /// + /// Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + /// + [Input("autoscale")] + public Input? Autoscale { get; set; } + /// /// Input configuration /// @@ -314,6 +362,12 @@ public InputList AllowedNetworks [Input("createdAt")] public Input? CreatedAt { get; set; } + /// + /// Number of instance running (returned by the API) + /// + [Input("currentNbInstance")] + public Input? CurrentNbInstance { get; set; } + /// /// Input description /// @@ -351,7 +405,19 @@ public InputList AllowedNetworks public Input? IsRestartRequired { get; set; } /// - /// Number of instance running + /// Maximum number of instances in auto-scaled mode + /// + [Input("maxScaleInstance")] + public Input? MaxScaleInstance { get; set; } + + /// + /// Minimum number of instances in auto-scaled mode + /// + [Input("minScaleInstance")] + public Input? MinScaleInstance { get; set; } + + /// + /// Number of instance running (input, mutually exclusive with parameter `autoscale`) /// [Input("nbInstance")] public Input? NbInstance { get; set; } diff --git a/sdk/dotnet/Dedicated/GetServerBoots.cs b/sdk/dotnet/Dedicated/GetServerBoots.cs index d0864680..3afbd705 100644 --- a/sdk/dotnet/Dedicated/GetServerBoots.cs +++ b/sdk/dotnet/Dedicated/GetServerBoots.cs @@ -66,7 +66,7 @@ public static Output Invoke(GetServerBootsInvokeArgs args, public sealed class GetServerBootsArgs : global::Pulumi.InvokeArgs { /// - /// Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + /// Filter the value of bootType property (harddisk, rescue, internal, network) /// [Input("bootType")] public string? BootType { get; set; } @@ -92,7 +92,7 @@ public GetServerBootsArgs() public sealed class GetServerBootsInvokeArgs : global::Pulumi.InvokeArgs { /// - /// Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + /// Filter the value of bootType property (harddisk, rescue, internal, network) /// [Input("bootType")] public Input? BootType { get; set; } diff --git a/sdk/dotnet/Dedicated/Inputs/ServerDetailsArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerDetailsArgs.cs new file mode 100644 index 00000000..d1e0fdad --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerDetailsArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerDetailsArgs : global::Pulumi.ResourceArgs + { + /// + /// Personnal hostname to use in server reinstallation + /// + [Input("customHostname")] + public Input? CustomHostname { get; set; } + + /// + /// Disk group id to process install on (only available for some templates) + /// + [Input("diskGroupId")] + public Input? DiskGroupId { get; set; } + + /// + /// true if you want to install only on the first disk + /// + [Input("noRaid")] + public Input? NoRaid { get; set; } + + /// + /// Number of devices to use for system's software RAID + /// + [Input("softRaidDevices")] + public Input? SoftRaidDevices { get; set; } + + public ServerDetailsArgs() + { + } + public static new ServerDetailsArgs Empty => new ServerDetailsArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerDetailsGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerDetailsGetArgs.cs new file mode 100644 index 00000000..ac9f638a --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerDetailsGetArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerDetailsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Personnal hostname to use in server reinstallation + /// + [Input("customHostname")] + public Input? CustomHostname { get; set; } + + /// + /// Disk group id to process install on (only available for some templates) + /// + [Input("diskGroupId")] + public Input? DiskGroupId { get; set; } + + /// + /// true if you want to install only on the first disk + /// + [Input("noRaid")] + public Input? NoRaid { get; set; } + + /// + /// Number of devices to use for system's software RAID + /// + [Input("softRaidDevices")] + public Input? SoftRaidDevices { get; set; } + + public ServerDetailsGetArgs() + { + } + public static new ServerDetailsGetArgs Empty => new ServerDetailsGetArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerIamArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerIamArgs.cs new file mode 100644 index 00000000..eb4db24f --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerIamArgs.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerIamArgs : global::Pulumi.ResourceArgs + { + /// + /// Resource display name + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// Unique identifier of the resource in the IAM + /// + [Input("id")] + public Input? Id { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Resource tags. Tags that were internally computed are prefixed with `ovh:` + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + /// + /// URN of the private database, used when writing IAM policies + /// + [Input("urn")] + public Input? Urn { get; set; } + + public ServerIamArgs() + { + } + public static new ServerIamArgs Empty => new ServerIamArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerIamGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerIamGetArgs.cs new file mode 100644 index 00000000..31c114cb --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerIamGetArgs.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerIamGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Resource display name + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// Unique identifier of the resource in the IAM + /// + [Input("id")] + public Input? Id { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Resource tags. Tags that were internally computed are prefixed with `ovh:` + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + /// + /// URN of the private database, used when writing IAM policies + /// + [Input("urn")] + public Input? Urn { get; set; } + + public ServerIamGetArgs() + { + } + public static new ServerIamGetArgs Empty => new ServerIamGetArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsArgs.cs index 3e9d3272..bb4f15d1 100644 --- a/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsArgs.cs +++ b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsArgs.cs @@ -30,18 +30,6 @@ public sealed class ServerInstallTaskDetailsArgs : global::Pulumi.ResourceArgs [Input("noRaid")] public Input? NoRaid { get; set; } - /// - /// Indicate the URL where your postinstall customisation script is located. - /// - [Input("postInstallationScriptLink")] - public Input? PostInstallationScriptLink { get; set; } - - /// - /// Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - /// - [Input("postInstallationScriptReturn")] - public Input? PostInstallationScriptReturn { get; set; } - /// /// soft raid devices. /// diff --git a/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsGetArgs.cs index c68f1755..87d9218c 100644 --- a/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsGetArgs.cs +++ b/sdk/dotnet/Dedicated/Inputs/ServerInstallTaskDetailsGetArgs.cs @@ -30,18 +30,6 @@ public sealed class ServerInstallTaskDetailsGetArgs : global::Pulumi.ResourceArg [Input("noRaid")] public Input? NoRaid { get; set; } - /// - /// Indicate the URL where your postinstall customisation script is located. - /// - [Input("postInstallationScriptLink")] - public Input? PostInstallationScriptLink { get; set; } - - /// - /// Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - /// - [Input("postInstallationScriptReturn")] - public Input? PostInstallationScriptReturn { get; set; } - /// /// soft raid devices. /// diff --git a/sdk/dotnet/Dedicated/Inputs/ServerOrderArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerOrderArgs.cs new file mode 100644 index 00000000..c6c1173e --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerOrderArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerOrderArgs : global::Pulumi.ResourceArgs + { + [Input("date")] + public Input? Date { get; set; } + + [Input("details")] + private InputList? _details; + + /// + /// Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + /// + public InputList Details + { + get => _details ?? (_details = new InputList()); + set => _details = value; + } + + [Input("expirationDate")] + public Input? ExpirationDate { get; set; } + + [Input("orderId")] + public Input? OrderId { get; set; } + + public ServerOrderArgs() + { + } + public static new ServerOrderArgs Empty => new ServerOrderArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerOrderDetailArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerOrderDetailArgs.cs new file mode 100644 index 00000000..8ef5e61a --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerOrderDetailArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerOrderDetailArgs : global::Pulumi.ResourceArgs + { + [Input("description")] + public Input? Description { get; set; } + + /// + /// Product type of item in order + /// + [Input("detailType")] + public Input? DetailType { get; set; } + + [Input("domain")] + public Input? Domain { get; set; } + + [Input("orderDetailId")] + public Input? OrderDetailId { get; set; } + + [Input("quantity")] + public Input? Quantity { get; set; } + + public ServerOrderDetailArgs() + { + } + public static new ServerOrderDetailArgs Empty => new ServerOrderDetailArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerOrderDetailGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerOrderDetailGetArgs.cs new file mode 100644 index 00000000..78451d88 --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerOrderDetailGetArgs.cs @@ -0,0 +1,38 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerOrderDetailGetArgs : global::Pulumi.ResourceArgs + { + [Input("description")] + public Input? Description { get; set; } + + /// + /// Product type of item in order + /// + [Input("detailType")] + public Input? DetailType { get; set; } + + [Input("domain")] + public Input? Domain { get; set; } + + [Input("orderDetailId")] + public Input? OrderDetailId { get; set; } + + [Input("quantity")] + public Input? Quantity { get; set; } + + public ServerOrderDetailGetArgs() + { + } + public static new ServerOrderDetailGetArgs Empty => new ServerOrderDetailGetArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerOrderGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerOrderGetArgs.cs new file mode 100644 index 00000000..f0db8d94 --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerOrderGetArgs.cs @@ -0,0 +1,41 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerOrderGetArgs : global::Pulumi.ResourceArgs + { + [Input("date")] + public Input? Date { get; set; } + + [Input("details")] + private InputList? _details; + + /// + /// Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + /// + public InputList Details + { + get => _details ?? (_details = new InputList()); + set => _details = value; + } + + [Input("expirationDate")] + public Input? ExpirationDate { get; set; } + + [Input("orderId")] + public Input? OrderId { get; set; } + + public ServerOrderGetArgs() + { + } + public static new ServerOrderGetArgs Empty => new ServerOrderGetArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerPlanArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerPlanArgs.cs new file mode 100644 index 00000000..fa03b5c1 --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerPlanArgs.cs @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerPlanArgs : global::Pulumi.ResourceArgs + { + [Input("configurations")] + private InputList? _configurations; + public InputList Configurations + { + get => _configurations ?? (_configurations = new InputList()); + set => _configurations = value; + } + + /// + /// Duration selected for the purchase of the product + /// + [Input("duration", required: true)] + public Input Duration { get; set; } = null!; + + /// + /// Cart item to be linked + /// + [Input("itemId")] + public Input? ItemId { get; set; } + + /// + /// Identifier of the option offer + /// + [Input("planCode", required: true)] + public Input PlanCode { get; set; } = null!; + + /// + /// Pricing mode selected for the purchase of the product + /// + [Input("pricingMode", required: true)] + public Input PricingMode { get; set; } = null!; + + /// + /// Quantity of product desired + /// + [Input("quantity")] + public Input? Quantity { get; set; } + + public ServerPlanArgs() + { + } + public static new ServerPlanArgs Empty => new ServerPlanArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerPlanConfigurationArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerPlanConfigurationArgs.cs new file mode 100644 index 00000000..9a6c669b --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerPlanConfigurationArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerPlanConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Label for your configuration item + /// + [Input("label", required: true)] + public Input Label { get; set; } = null!; + + /// + /// Value or resource URL on API.OVH.COM of your configuration item + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public ServerPlanConfigurationArgs() + { + } + public static new ServerPlanConfigurationArgs Empty => new ServerPlanConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerPlanConfigurationGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerPlanConfigurationGetArgs.cs new file mode 100644 index 00000000..cbdd4db9 --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerPlanConfigurationGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerPlanConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Label for your configuration item + /// + [Input("label", required: true)] + public Input Label { get; set; } = null!; + + /// + /// Value or resource URL on API.OVH.COM of your configuration item + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public ServerPlanConfigurationGetArgs() + { + } + public static new ServerPlanConfigurationGetArgs Empty => new ServerPlanConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerPlanGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerPlanGetArgs.cs new file mode 100644 index 00000000..b0bb8be5 --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerPlanGetArgs.cs @@ -0,0 +1,58 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerPlanGetArgs : global::Pulumi.ResourceArgs + { + [Input("configurations")] + private InputList? _configurations; + public InputList Configurations + { + get => _configurations ?? (_configurations = new InputList()); + set => _configurations = value; + } + + /// + /// Duration selected for the purchase of the product + /// + [Input("duration", required: true)] + public Input Duration { get; set; } = null!; + + /// + /// Cart item to be linked + /// + [Input("itemId")] + public Input? ItemId { get; set; } + + /// + /// Identifier of the option offer + /// + [Input("planCode", required: true)] + public Input PlanCode { get; set; } = null!; + + /// + /// Pricing mode selected for the purchase of the product + /// + [Input("pricingMode", required: true)] + public Input PricingMode { get; set; } = null!; + + /// + /// Quantity of product desired + /// + [Input("quantity")] + public Input? Quantity { get; set; } + + public ServerPlanGetArgs() + { + } + public static new ServerPlanGetArgs Empty => new ServerPlanGetArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionArgs.cs new file mode 100644 index 00000000..36999192 --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionArgs.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerPlanOptionArgs : global::Pulumi.ResourceArgs + { + [Input("configurations")] + private InputList? _configurations; + public InputList Configurations + { + get => _configurations ?? (_configurations = new InputList()); + set => _configurations = value; + } + + /// + /// Duration selected for the purchase of the product + /// + [Input("duration", required: true)] + public Input Duration { get; set; } = null!; + + /// + /// Identifier of the option offer + /// + [Input("planCode", required: true)] + public Input PlanCode { get; set; } = null!; + + /// + /// Pricing mode selected for the purchase of the product + /// + [Input("pricingMode", required: true)] + public Input PricingMode { get; set; } = null!; + + /// + /// Quantity of product desired + /// + [Input("quantity", required: true)] + public Input Quantity { get; set; } = null!; + + public ServerPlanOptionArgs() + { + } + public static new ServerPlanOptionArgs Empty => new ServerPlanOptionArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionConfigurationArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionConfigurationArgs.cs new file mode 100644 index 00000000..cb28ee81 --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionConfigurationArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerPlanOptionConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// Label for your configuration item + /// + [Input("label", required: true)] + public Input Label { get; set; } = null!; + + /// + /// Value or resource URL on API.OVH.COM of your configuration item + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public ServerPlanOptionConfigurationArgs() + { + } + public static new ServerPlanOptionConfigurationArgs Empty => new ServerPlanOptionConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionConfigurationGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionConfigurationGetArgs.cs new file mode 100644 index 00000000..bac388cd --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionConfigurationGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerPlanOptionConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Label for your configuration item + /// + [Input("label", required: true)] + public Input Label { get; set; } = null!; + + /// + /// Value or resource URL on API.OVH.COM of your configuration item + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public ServerPlanOptionConfigurationGetArgs() + { + } + public static new ServerPlanOptionConfigurationGetArgs Empty => new ServerPlanOptionConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionGetArgs.cs new file mode 100644 index 00000000..b6c70dda --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerPlanOptionGetArgs.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerPlanOptionGetArgs : global::Pulumi.ResourceArgs + { + [Input("configurations")] + private InputList? _configurations; + public InputList Configurations + { + get => _configurations ?? (_configurations = new InputList()); + set => _configurations = value; + } + + /// + /// Duration selected for the purchase of the product + /// + [Input("duration", required: true)] + public Input Duration { get; set; } = null!; + + /// + /// Identifier of the option offer + /// + [Input("planCode", required: true)] + public Input PlanCode { get; set; } = null!; + + /// + /// Pricing mode selected for the purchase of the product + /// + [Input("pricingMode", required: true)] + public Input PricingMode { get; set; } = null!; + + /// + /// Quantity of product desired + /// + [Input("quantity", required: true)] + public Input Quantity { get; set; } = null!; + + public ServerPlanOptionGetArgs() + { + } + public static new ServerPlanOptionGetArgs Empty => new ServerPlanOptionGetArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerUserMetadataArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerUserMetadataArgs.cs new file mode 100644 index 00000000..f947e7f5 --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerUserMetadataArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerUserMetadataArgs : global::Pulumi.ResourceArgs + { + [Input("key")] + public Input? Key { get; set; } + + [Input("value")] + public Input? Value { get; set; } + + public ServerUserMetadataArgs() + { + } + public static new ServerUserMetadataArgs Empty => new ServerUserMetadataArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Inputs/ServerUserMetadataGetArgs.cs b/sdk/dotnet/Dedicated/Inputs/ServerUserMetadataGetArgs.cs new file mode 100644 index 00000000..696ad924 --- /dev/null +++ b/sdk/dotnet/Dedicated/Inputs/ServerUserMetadataGetArgs.cs @@ -0,0 +1,26 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Inputs +{ + + public sealed class ServerUserMetadataGetArgs : global::Pulumi.ResourceArgs + { + [Input("key")] + public Input? Key { get; set; } + + [Input("value")] + public Input? Value { get; set; } + + public ServerUserMetadataGetArgs() + { + } + public static new ServerUserMetadataGetArgs Empty => new ServerUserMetadataGetArgs(); + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/ServerDetails.cs b/sdk/dotnet/Dedicated/Outputs/ServerDetails.cs new file mode 100644 index 00000000..69b75569 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/ServerDetails.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Outputs +{ + + [OutputType] + public sealed class ServerDetails + { + /// + /// Personnal hostname to use in server reinstallation + /// + public readonly string? CustomHostname; + /// + /// Disk group id to process install on (only available for some templates) + /// + public readonly double? DiskGroupId; + /// + /// true if you want to install only on the first disk + /// + public readonly bool? NoRaid; + /// + /// Number of devices to use for system's software RAID + /// + public readonly double? SoftRaidDevices; + + [OutputConstructor] + private ServerDetails( + string? customHostname, + + double? diskGroupId, + + bool? noRaid, + + double? softRaidDevices) + { + CustomHostname = customHostname; + DiskGroupId = diskGroupId; + NoRaid = noRaid; + SoftRaidDevices = softRaidDevices; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/ServerIam.cs b/sdk/dotnet/Dedicated/Outputs/ServerIam.cs new file mode 100644 index 00000000..5cfb883f --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/ServerIam.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Outputs +{ + + [OutputType] + public sealed class ServerIam + { + /// + /// Resource display name + /// + public readonly string? DisplayName; + /// + /// Unique identifier of the resource in the IAM + /// + public readonly string? Id; + /// + /// Resource tags. Tags that were internally computed are prefixed with `ovh:` + /// + public readonly ImmutableDictionary? Tags; + /// + /// URN of the private database, used when writing IAM policies + /// + public readonly string? Urn; + + [OutputConstructor] + private ServerIam( + string? displayName, + + string? id, + + ImmutableDictionary? tags, + + string? urn) + { + DisplayName = displayName; + Id = id; + Tags = tags; + Urn = urn; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/ServerInstallTaskDetails.cs b/sdk/dotnet/Dedicated/Outputs/ServerInstallTaskDetails.cs index 87c49c65..212efa3f 100644 --- a/sdk/dotnet/Dedicated/Outputs/ServerInstallTaskDetails.cs +++ b/sdk/dotnet/Dedicated/Outputs/ServerInstallTaskDetails.cs @@ -26,14 +26,6 @@ public sealed class ServerInstallTaskDetails /// public readonly bool? NoRaid; /// - /// Indicate the URL where your postinstall customisation script is located. - /// - public readonly string? PostInstallationScriptLink; - /// - /// Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - /// - public readonly string? PostInstallationScriptReturn; - /// /// soft raid devices. /// public readonly int? SoftRaidDevices; @@ -46,17 +38,11 @@ private ServerInstallTaskDetails( bool? noRaid, - string? postInstallationScriptLink, - - string? postInstallationScriptReturn, - int? softRaidDevices) { CustomHostname = customHostname; DiskGroupId = diskGroupId; NoRaid = noRaid; - PostInstallationScriptLink = postInstallationScriptLink; - PostInstallationScriptReturn = postInstallationScriptReturn; SoftRaidDevices = softRaidDevices; } } diff --git a/sdk/dotnet/Dedicated/Outputs/ServerOrder.cs b/sdk/dotnet/Dedicated/Outputs/ServerOrder.cs new file mode 100644 index 00000000..6da2f699 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/ServerOrder.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Outputs +{ + + [OutputType] + public sealed class ServerOrder + { + public readonly string? Date; + /// + /// Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + /// + public readonly ImmutableArray Details; + public readonly string? ExpirationDate; + public readonly double? OrderId; + + [OutputConstructor] + private ServerOrder( + string? date, + + ImmutableArray details, + + string? expirationDate, + + double? orderId) + { + Date = date; + Details = details; + ExpirationDate = expirationDate; + OrderId = orderId; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/ServerOrderDetail.cs b/sdk/dotnet/Dedicated/Outputs/ServerOrderDetail.cs new file mode 100644 index 00000000..fb3cd2b9 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/ServerOrderDetail.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Outputs +{ + + [OutputType] + public sealed class ServerOrderDetail + { + public readonly string? Description; + /// + /// Product type of item in order + /// + public readonly string? DetailType; + public readonly string? Domain; + public readonly double? OrderDetailId; + public readonly string? Quantity; + + [OutputConstructor] + private ServerOrderDetail( + string? description, + + string? detailType, + + string? domain, + + double? orderDetailId, + + string? quantity) + { + Description = description; + DetailType = detailType; + Domain = domain; + OrderDetailId = orderDetailId; + Quantity = quantity; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/ServerPlan.cs b/sdk/dotnet/Dedicated/Outputs/ServerPlan.cs new file mode 100644 index 00000000..4be325bf --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/ServerPlan.cs @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Outputs +{ + + [OutputType] + public sealed class ServerPlan + { + public readonly ImmutableArray Configurations; + /// + /// Duration selected for the purchase of the product + /// + public readonly string Duration; + /// + /// Cart item to be linked + /// + public readonly double? ItemId; + /// + /// Identifier of the option offer + /// + public readonly string PlanCode; + /// + /// Pricing mode selected for the purchase of the product + /// + public readonly string PricingMode; + /// + /// Quantity of product desired + /// + public readonly double? Quantity; + + [OutputConstructor] + private ServerPlan( + ImmutableArray configurations, + + string duration, + + double? itemId, + + string planCode, + + string pricingMode, + + double? quantity) + { + Configurations = configurations; + Duration = duration; + ItemId = itemId; + PlanCode = planCode; + PricingMode = pricingMode; + Quantity = quantity; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/ServerPlanConfiguration.cs b/sdk/dotnet/Dedicated/Outputs/ServerPlanConfiguration.cs new file mode 100644 index 00000000..a1001f30 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/ServerPlanConfiguration.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Outputs +{ + + [OutputType] + public sealed class ServerPlanConfiguration + { + /// + /// Label for your configuration item + /// + public readonly string Label; + /// + /// Value or resource URL on API.OVH.COM of your configuration item + /// + public readonly string Value; + + [OutputConstructor] + private ServerPlanConfiguration( + string label, + + string value) + { + Label = label; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/ServerPlanOption.cs b/sdk/dotnet/Dedicated/Outputs/ServerPlanOption.cs new file mode 100644 index 00000000..e459698b --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/ServerPlanOption.cs @@ -0,0 +1,53 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Outputs +{ + + [OutputType] + public sealed class ServerPlanOption + { + public readonly ImmutableArray Configurations; + /// + /// Duration selected for the purchase of the product + /// + public readonly string Duration; + /// + /// Identifier of the option offer + /// + public readonly string PlanCode; + /// + /// Pricing mode selected for the purchase of the product + /// + public readonly string PricingMode; + /// + /// Quantity of product desired + /// + public readonly double Quantity; + + [OutputConstructor] + private ServerPlanOption( + ImmutableArray configurations, + + string duration, + + string planCode, + + string pricingMode, + + double quantity) + { + Configurations = configurations; + Duration = duration; + PlanCode = planCode; + PricingMode = pricingMode; + Quantity = quantity; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/ServerPlanOptionConfiguration.cs b/sdk/dotnet/Dedicated/Outputs/ServerPlanOptionConfiguration.cs new file mode 100644 index 00000000..3bfe0b96 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/ServerPlanOptionConfiguration.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Outputs +{ + + [OutputType] + public sealed class ServerPlanOptionConfiguration + { + /// + /// Label for your configuration item + /// + public readonly string Label; + /// + /// Value or resource URL on API.OVH.COM of your configuration item + /// + public readonly string Value; + + [OutputConstructor] + private ServerPlanOptionConfiguration( + string label, + + string value) + { + Label = label; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Outputs/ServerUserMetadata.cs b/sdk/dotnet/Dedicated/Outputs/ServerUserMetadata.cs new file mode 100644 index 00000000..2bb82f52 --- /dev/null +++ b/sdk/dotnet/Dedicated/Outputs/ServerUserMetadata.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated.Outputs +{ + + [OutputType] + public sealed class ServerUserMetadata + { + public readonly string? Key; + public readonly string? Value; + + [OutputConstructor] + private ServerUserMetadata( + string? key, + + string? value) + { + Key = key; + Value = value; + } + } +} diff --git a/sdk/dotnet/Dedicated/Server.cs b/sdk/dotnet/Dedicated/Server.cs new file mode 100644 index 00000000..69c254c7 --- /dev/null +++ b/sdk/dotnet/Dedicated/Server.cs @@ -0,0 +1,598 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Dedicated +{ + /// + /// ## Import + /// + /// Dedicated servers can be imported using the `service_name`, e.g.: + /// + /// bash + /// + /// ```sh + /// $ pulumi import ovh:Dedicated/server:Server server service_name + /// ``` + /// + [OvhResourceType("ovh:Dedicated/server:Server")] + public partial class Server : global::Pulumi.CustomResource + { + /// + /// Dedicated AZ localisation + /// + [Output("availabilityZone")] + public Output AvailabilityZone { get; private set; } = null!; + + /// + /// Boot id of the server + /// + [Output("bootId")] + public Output BootId { get; private set; } = null!; + + /// + /// Boot script of the server + /// + [Output("bootScript")] + public Output BootScript { get; private set; } = null!; + + /// + /// Dedicated server commercial range + /// + [Output("commercialRange")] + public Output CommercialRange { get; private set; } = null!; + + /// + /// Dedicated datacenter localisation (bhs1,bhs2,...) + /// + [Output("datacenter")] + public Output Datacenter { get; private set; } = null!; + + /// + /// A structure describing informations about installation custom + /// + [Output("details")] + public Output Details { get; private set; } = null!; + + /// + /// Resource display name + /// + [Output("displayName")] + public Output DisplayName { get; private set; } = null!; + + /// + /// IAM resource information + /// + [Output("iam")] + public Output Iam { get; private set; } = null!; + + /// + /// Dedicated server ip (IPv4) + /// + [Output("ip")] + public Output Ip { get; private set; } = null!; + + /// + /// Link speed of the server + /// + [Output("linkSpeed")] + public Output LinkSpeed { get; private set; } = null!; + + /// + /// Icmp monitoring state + /// + [Output("monitoring")] + public Output Monitoring { get; private set; } = null!; + + /// + /// Dedicated server name + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + [Output("newUpgradeSystem")] + public Output NewUpgradeSystem { get; private set; } = null!; + + /// + /// Prevent datacenter intervention + /// + [Output("noIntervention")] + public Output NoIntervention { get; private set; } = null!; + + /// + /// Details about an Order + /// + [Output("order")] + public Output Order { get; private set; } = null!; + + /// + /// Operating system + /// + [Output("os")] + public Output Os { get; private set; } = null!; + + /// + /// OVH subsidiaries + /// + [Output("ovhSubsidiary")] + public Output OvhSubsidiary { get; private set; } = null!; + + /// + /// Partition scheme name + /// + [Output("partitionSchemeName")] + public Output PartitionSchemeName { get; private set; } = null!; + + [Output("planOptions")] + public Output> PlanOptions { get; private set; } = null!; + + [Output("plans")] + public Output> Plans { get; private set; } = null!; + + /// + /// Power state of the server (poweron, poweroff) + /// + [Output("powerState")] + public Output PowerState { get; private set; } = null!; + + /// + /// Does this server have professional use option + /// + [Output("professionalUse")] + public Output ProfessionalUse { get; private set; } = null!; + + /// + /// Rack id of the server + /// + [Output("rack")] + public Output Rack { get; private set; } = null!; + + /// + /// Dedicated region localisation + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + /// + /// Rescue mail of the server + /// + [Output("rescueMail")] + public Output RescueMail { get; private set; } = null!; + + /// + /// Public SSH Key used in the rescue mode + /// + [Output("rescueSshKey")] + public Output RescueSshKey { get; private set; } = null!; + + /// + /// Dedicated server reverse + /// + [Output("reverse")] + public Output Reverse { get; private set; } = null!; + + /// + /// Root device of the server + /// + [Output("rootDevice")] + public Output RootDevice { get; private set; } = null!; + + /// + /// Server id + /// + [Output("serverId")] + public Output ServerId { get; private set; } = null!; + + /// + /// The service_name of your dedicated server + /// + [Output("serviceName")] + public Output ServiceName { get; private set; } = null!; + + /// + /// All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + /// + [Output("state")] + public Output State { get; private set; } = null!; + + /// + /// Dedicated server support level (critical, fastpath, gs, pro) + /// + [Output("supportLevel")] + public Output SupportLevel { get; private set; } = null!; + + /// + /// Template name + /// + [Output("templateName")] + public Output TemplateName { get; private set; } = null!; + + /// + /// Metadata + /// + [Output("userMetadatas")] + public Output> UserMetadatas { get; private set; } = null!; + + + /// + /// Create a Server resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Server(string name, ServerArgs args, CustomResourceOptions? options = null) + : base("ovh:Dedicated/server:Server", name, args ?? new ServerArgs(), MakeResourceOptions(options, "")) + { + } + + private Server(string name, Input id, ServerState? state = null, CustomResourceOptions? options = null) + : base("ovh:Dedicated/server:Server", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/ovh/pulumi-ovh", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing Server resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static Server Get(string name, Input id, ServerState? state = null, CustomResourceOptions? options = null) + { + return new Server(name, id, state, options); + } + } + + public sealed class ServerArgs : global::Pulumi.ResourceArgs + { + /// + /// Boot id of the server + /// + [Input("bootId")] + public Input? BootId { get; set; } + + /// + /// Boot script of the server + /// + [Input("bootScript")] + public Input? BootScript { get; set; } + + /// + /// A structure describing informations about installation custom + /// + [Input("details")] + public Input? Details { get; set; } + + /// + /// Resource display name + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// Icmp monitoring state + /// + [Input("monitoring")] + public Input? Monitoring { get; set; } + + /// + /// Prevent datacenter intervention + /// + [Input("noIntervention")] + public Input? NoIntervention { get; set; } + + /// + /// OVH subsidiaries + /// + [Input("ovhSubsidiary", required: true)] + public Input OvhSubsidiary { get; set; } = null!; + + /// + /// Partition scheme name + /// + [Input("partitionSchemeName")] + public Input? PartitionSchemeName { get; set; } + + [Input("planOptions")] + private InputList? _planOptions; + public InputList PlanOptions + { + get => _planOptions ?? (_planOptions = new InputList()); + set => _planOptions = value; + } + + [Input("plans")] + private InputList? _plans; + public InputList Plans + { + get => _plans ?? (_plans = new InputList()); + set => _plans = value; + } + + /// + /// Rescue mail of the server + /// + [Input("rescueMail")] + public Input? RescueMail { get; set; } + + /// + /// Public SSH Key used in the rescue mode + /// + [Input("rescueSshKey")] + public Input? RescueSshKey { get; set; } + + /// + /// Root device of the server + /// + [Input("rootDevice")] + public Input? RootDevice { get; set; } + + /// + /// All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + /// + [Input("state")] + public Input? State { get; set; } + + /// + /// Template name + /// + [Input("templateName")] + public Input? TemplateName { get; set; } + + [Input("userMetadatas")] + private InputList? _userMetadatas; + + /// + /// Metadata + /// + public InputList UserMetadatas + { + get => _userMetadatas ?? (_userMetadatas = new InputList()); + set => _userMetadatas = value; + } + + public ServerArgs() + { + } + public static new ServerArgs Empty => new ServerArgs(); + } + + public sealed class ServerState : global::Pulumi.ResourceArgs + { + /// + /// Dedicated AZ localisation + /// + [Input("availabilityZone")] + public Input? AvailabilityZone { get; set; } + + /// + /// Boot id of the server + /// + [Input("bootId")] + public Input? BootId { get; set; } + + /// + /// Boot script of the server + /// + [Input("bootScript")] + public Input? BootScript { get; set; } + + /// + /// Dedicated server commercial range + /// + [Input("commercialRange")] + public Input? CommercialRange { get; set; } + + /// + /// Dedicated datacenter localisation (bhs1,bhs2,...) + /// + [Input("datacenter")] + public Input? Datacenter { get; set; } + + /// + /// A structure describing informations about installation custom + /// + [Input("details")] + public Input? Details { get; set; } + + /// + /// Resource display name + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// IAM resource information + /// + [Input("iam")] + public Input? Iam { get; set; } + + /// + /// Dedicated server ip (IPv4) + /// + [Input("ip")] + public Input? Ip { get; set; } + + /// + /// Link speed of the server + /// + [Input("linkSpeed")] + public Input? LinkSpeed { get; set; } + + /// + /// Icmp monitoring state + /// + [Input("monitoring")] + public Input? Monitoring { get; set; } + + /// + /// Dedicated server name + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("newUpgradeSystem")] + public Input? NewUpgradeSystem { get; set; } + + /// + /// Prevent datacenter intervention + /// + [Input("noIntervention")] + public Input? NoIntervention { get; set; } + + /// + /// Details about an Order + /// + [Input("order")] + public Input? Order { get; set; } + + /// + /// Operating system + /// + [Input("os")] + public Input? Os { get; set; } + + /// + /// OVH subsidiaries + /// + [Input("ovhSubsidiary")] + public Input? OvhSubsidiary { get; set; } + + /// + /// Partition scheme name + /// + [Input("partitionSchemeName")] + public Input? PartitionSchemeName { get; set; } + + [Input("planOptions")] + private InputList? _planOptions; + public InputList PlanOptions + { + get => _planOptions ?? (_planOptions = new InputList()); + set => _planOptions = value; + } + + [Input("plans")] + private InputList? _plans; + public InputList Plans + { + get => _plans ?? (_plans = new InputList()); + set => _plans = value; + } + + /// + /// Power state of the server (poweron, poweroff) + /// + [Input("powerState")] + public Input? PowerState { get; set; } + + /// + /// Does this server have professional use option + /// + [Input("professionalUse")] + public Input? ProfessionalUse { get; set; } + + /// + /// Rack id of the server + /// + [Input("rack")] + public Input? Rack { get; set; } + + /// + /// Dedicated region localisation + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// Rescue mail of the server + /// + [Input("rescueMail")] + public Input? RescueMail { get; set; } + + /// + /// Public SSH Key used in the rescue mode + /// + [Input("rescueSshKey")] + public Input? RescueSshKey { get; set; } + + /// + /// Dedicated server reverse + /// + [Input("reverse")] + public Input? Reverse { get; set; } + + /// + /// Root device of the server + /// + [Input("rootDevice")] + public Input? RootDevice { get; set; } + + /// + /// Server id + /// + [Input("serverId")] + public Input? ServerId { get; set; } + + /// + /// The service_name of your dedicated server + /// + [Input("serviceName")] + public Input? ServiceName { get; set; } + + /// + /// All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + /// + [Input("state")] + public Input? State { get; set; } + + /// + /// Dedicated server support level (critical, fastpath, gs, pro) + /// + [Input("supportLevel")] + public Input? SupportLevel { get; set; } + + /// + /// Template name + /// + [Input("templateName")] + public Input? TemplateName { get; set; } + + [Input("userMetadatas")] + private InputList? _userMetadatas; + + /// + /// Metadata + /// + public InputList UserMetadatas + { + get => _userMetadatas ?? (_userMetadatas = new InputList()); + set => _userMetadatas = value; + } + + public ServerState() + { + } + public static new ServerState Empty => new ServerState(); + } +} diff --git a/sdk/dotnet/Dedicated/ServerInstallTask.cs b/sdk/dotnet/Dedicated/ServerInstallTask.cs index 2a7ca46f..8498b483 100644 --- a/sdk/dotnet/Dedicated/ServerInstallTask.cs +++ b/sdk/dotnet/Dedicated/ServerInstallTask.cs @@ -33,8 +33,7 @@ namespace Pulumi.Ovh.Dedicated /// TemplateName = "mydebian12", /// Customization = new Ovh.Me.Inputs.InstallationTemplateCustomizationArgs /// { - /// PostInstallationScriptLink = "http://test", - /// PostInstallationScriptReturn = "ok", + /// CustomHostname = "mytest", /// }, /// }); /// @@ -54,6 +53,15 @@ namespace Pulumi.Ovh.Dedicated /// Key = "sshKey", /// Value = "ssh-ed25519 AAAAC3...", /// }, + /// new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs + /// { + /// Key = "postInstallationScript", + /// Value = @"#!/bin/bash + /// echo ""coucou postInstallationScript"" > /opt/coucou + /// cat /etc/machine-id >> /opt/coucou + /// date ""+%Y-%m-%d %H:%M:%S"" --utc >> /opt/coucou + /// ", + /// }, /// }, /// }); /// @@ -187,6 +195,14 @@ namespace Pulumi.Ovh.Dedicated /// Key = "language", /// Value = "fr-fr", /// }, + /// new Ovh.Dedicated.Inputs.ServerInstallTaskUserMetadataArgs + /// { + /// Key = "postInstallationScript", + /// Value = @"coucou postInstallationScriptPowerShell"" | Out-File -FilePath ""c:\ovhupd\script\coucou.txt"" + /// (Get-ItemProperty -LiteralPath ""Registry::HKLM\SOFTWARE\Microsoft\Cryptography"" -Name ""MachineGuid"").MachineGuid | Out-File -FilePath ""c:\ovhupd\script\coucou.txt"" -Append + /// (Get-Date).ToUniversalTime().ToString(""yyyy-MM-dd HH:mm:ss"") | Out-File -FilePath ""c:\ovhupd\script\coucou.txt"" -Append + /// ", + /// }, /// }, /// }); /// diff --git a/sdk/dotnet/Domain/ZoneImport.cs b/sdk/dotnet/Domain/ZoneImport.cs new file mode 100644 index 00000000..e02cc9a4 --- /dev/null +++ b/sdk/dotnet/Domain/ZoneImport.cs @@ -0,0 +1,148 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Ovh.Domain +{ + /// + /// Handle a whole DNS zone using a zone file. + /// + /// > __WARNING__ This resource and resource `ovh.Domain.ZoneRecord` should not be used together as `ovh.Domain.ZoneImport` controls the whole DNS zone at once. + /// + /// ## Example Usage + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.IO; + /// using System.Linq; + /// using Pulumi; + /// using Ovh = Pulumi.Ovh; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var import = new Ovh.Domain.ZoneImport("import", new() + /// { + /// ZoneName = "mysite.ovh", + /// ZoneFile = File.ReadAllText("./example.zone"), + /// }); + /// + /// }); + /// ``` + /// + [OvhResourceType("ovh:Domain/zoneImport:ZoneImport")] + public partial class ZoneImport : global::Pulumi.CustomResource + { + /// + /// Zone file exported from the API + /// + [Output("exportedContent")] + public Output ExportedContent { get; private set; } = null!; + + /// + /// Content of the zone file to import + /// + [Output("zoneFile")] + public Output ZoneFile { get; private set; } = null!; + + /// + /// The name of the domain zone + /// + [Output("zoneName")] + public Output ZoneName { get; private set; } = null!; + + + /// + /// Create a ZoneImport resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ZoneImport(string name, ZoneImportArgs args, CustomResourceOptions? options = null) + : base("ovh:Domain/zoneImport:ZoneImport", name, args ?? new ZoneImportArgs(), MakeResourceOptions(options, "")) + { + } + + private ZoneImport(string name, Input id, ZoneImportState? state = null, CustomResourceOptions? options = null) + : base("ovh:Domain/zoneImport:ZoneImport", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/ovh/pulumi-ovh", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ZoneImport resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ZoneImport Get(string name, Input id, ZoneImportState? state = null, CustomResourceOptions? options = null) + { + return new ZoneImport(name, id, state, options); + } + } + + public sealed class ZoneImportArgs : global::Pulumi.ResourceArgs + { + /// + /// Content of the zone file to import + /// + [Input("zoneFile", required: true)] + public Input ZoneFile { get; set; } = null!; + + /// + /// The name of the domain zone + /// + [Input("zoneName", required: true)] + public Input ZoneName { get; set; } = null!; + + public ZoneImportArgs() + { + } + public static new ZoneImportArgs Empty => new ZoneImportArgs(); + } + + public sealed class ZoneImportState : global::Pulumi.ResourceArgs + { + /// + /// Zone file exported from the API + /// + [Input("exportedContent")] + public Input? ExportedContent { get; set; } + + /// + /// Content of the zone file to import + /// + [Input("zoneFile")] + public Input? ZoneFile { get; set; } + + /// + /// The name of the domain zone + /// + [Input("zoneName")] + public Input? ZoneName { get; set; } + + public ZoneImportState() + { + } + public static new ZoneImportState Empty => new ZoneImportState(); + } +} diff --git a/sdk/dotnet/IpLoadBalancing/HttpFarm.cs b/sdk/dotnet/IpLoadBalancing/HttpFarm.cs index e11ba2a6..3b80833b 100644 --- a/sdk/dotnet/IpLoadBalancing/HttpFarm.cs +++ b/sdk/dotnet/IpLoadBalancing/HttpFarm.cs @@ -46,7 +46,7 @@ namespace Pulumi.Ovh.IpLoadBalancing public partial class HttpFarm : global::Pulumi.CustomResource { /// - /// Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + /// Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) /// [Output("balance")] public Output Balance { get; private set; } = null!; @@ -141,7 +141,7 @@ public static HttpFarm Get(string name, Input id, HttpFarmState? state = public sealed class HttpFarmArgs : global::Pulumi.ResourceArgs { /// - /// Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + /// Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) /// [Input("balance")] public Input? Balance { get; set; } @@ -197,7 +197,7 @@ public HttpFarmArgs() public sealed class HttpFarmState : global::Pulumi.ResourceArgs { /// - /// Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + /// Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) /// [Input("balance")] public Input? Balance { get; set; } diff --git a/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationArgs.cs b/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationArgs.cs index 202194d7..34437c19 100644 --- a/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationArgs.cs +++ b/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationArgs.cs @@ -18,18 +18,6 @@ public sealed class InstallationTemplateCustomizationArgs : global::Pulumi.Resou [Input("customHostname")] public Input? CustomHostname { get; set; } - /// - /// Indicate the URL where your postinstall customisation script is located. - /// - [Input("postInstallationScriptLink")] - public Input? PostInstallationScriptLink { get; set; } - - /// - /// indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - /// - [Input("postInstallationScriptReturn")] - public Input? PostInstallationScriptReturn { get; set; } - public InstallationTemplateCustomizationArgs() { } diff --git a/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationGetArgs.cs b/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationGetArgs.cs index 74cecd22..b64fa89a 100644 --- a/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationGetArgs.cs +++ b/sdk/dotnet/Me/Inputs/InstallationTemplateCustomizationGetArgs.cs @@ -18,18 +18,6 @@ public sealed class InstallationTemplateCustomizationGetArgs : global::Pulumi.Re [Input("customHostname")] public Input? CustomHostname { get; set; } - /// - /// Indicate the URL where your postinstall customisation script is located. - /// - [Input("postInstallationScriptLink")] - public Input? PostInstallationScriptLink { get; set; } - - /// - /// indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - /// - [Input("postInstallationScriptReturn")] - public Input? PostInstallationScriptReturn { get; set; } - public InstallationTemplateCustomizationGetArgs() { } diff --git a/sdk/dotnet/Me/Outputs/GetInstallationTemplateCustomizationResult.cs b/sdk/dotnet/Me/Outputs/GetInstallationTemplateCustomizationResult.cs index 6a2e0388..db548a67 100644 --- a/sdk/dotnet/Me/Outputs/GetInstallationTemplateCustomizationResult.cs +++ b/sdk/dotnet/Me/Outputs/GetInstallationTemplateCustomizationResult.cs @@ -17,26 +17,11 @@ public sealed class GetInstallationTemplateCustomizationResult /// Set up the server using the provided hostname instead of the default hostname. /// public readonly string CustomHostname; - /// - /// Indicate the URL where your postinstall customisation script is located. - /// - public readonly string PostInstallationScriptLink; - /// - /// Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - /// - public readonly string PostInstallationScriptReturn; [OutputConstructor] - private GetInstallationTemplateCustomizationResult( - string customHostname, - - string postInstallationScriptLink, - - string postInstallationScriptReturn) + private GetInstallationTemplateCustomizationResult(string customHostname) { CustomHostname = customHostname; - PostInstallationScriptLink = postInstallationScriptLink; - PostInstallationScriptReturn = postInstallationScriptReturn; } } } diff --git a/sdk/dotnet/Me/Outputs/InstallationTemplateCustomization.cs b/sdk/dotnet/Me/Outputs/InstallationTemplateCustomization.cs index 95189910..bbff5c75 100644 --- a/sdk/dotnet/Me/Outputs/InstallationTemplateCustomization.cs +++ b/sdk/dotnet/Me/Outputs/InstallationTemplateCustomization.cs @@ -17,26 +17,11 @@ public sealed class InstallationTemplateCustomization /// Set up the server using the provided hostname instead of the default hostname. /// public readonly string? CustomHostname; - /// - /// Indicate the URL where your postinstall customisation script is located. - /// - public readonly string? PostInstallationScriptLink; - /// - /// indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - /// - public readonly string? PostInstallationScriptReturn; [OutputConstructor] - private InstallationTemplateCustomization( - string? customHostname, - - string? postInstallationScriptLink, - - string? postInstallationScriptReturn) + private InstallationTemplateCustomization(string? customHostname) { CustomHostname = customHostname; - PostInstallationScriptLink = postInstallationScriptLink; - PostInstallationScriptReturn = postInstallationScriptReturn; } } } diff --git a/sdk/dotnet/Vps/Inputs/VpsPlanOptionArgs.cs b/sdk/dotnet/Vps/Inputs/VpsPlanOptionArgs.cs index 865f3696..fbe46fb5 100644 --- a/sdk/dotnet/Vps/Inputs/VpsPlanOptionArgs.cs +++ b/sdk/dotnet/Vps/Inputs/VpsPlanOptionArgs.cs @@ -30,12 +30,6 @@ public InputList Configurations [Input("duration", required: true)] public Input Duration { get; set; } = null!; - /// - /// Cart item to be linked - /// - [Input("itemId", required: true)] - public Input ItemId { get; set; } = null!; - /// /// Plan code /// diff --git a/sdk/dotnet/Vps/Inputs/VpsPlanOptionGetArgs.cs b/sdk/dotnet/Vps/Inputs/VpsPlanOptionGetArgs.cs index e6aaaad7..1c884611 100644 --- a/sdk/dotnet/Vps/Inputs/VpsPlanOptionGetArgs.cs +++ b/sdk/dotnet/Vps/Inputs/VpsPlanOptionGetArgs.cs @@ -30,12 +30,6 @@ public InputList Configurations [Input("duration", required: true)] public Input Duration { get; set; } = null!; - /// - /// Cart item to be linked - /// - [Input("itemId", required: true)] - public Input ItemId { get; set; } = null!; - /// /// Plan code /// diff --git a/sdk/dotnet/Vps/Outputs/VpsPlanOption.cs b/sdk/dotnet/Vps/Outputs/VpsPlanOption.cs index 64911631..9baf3465 100644 --- a/sdk/dotnet/Vps/Outputs/VpsPlanOption.cs +++ b/sdk/dotnet/Vps/Outputs/VpsPlanOption.cs @@ -22,10 +22,6 @@ public sealed class VpsPlanOption /// public readonly string Duration; /// - /// Cart item to be linked - /// - public readonly double ItemId; - /// /// Plan code /// public readonly string PlanCode; @@ -44,8 +40,6 @@ private VpsPlanOption( string duration, - double itemId, - string planCode, string pricingMode, @@ -54,7 +48,6 @@ private VpsPlanOption( { Configurations = configurations; Duration = duration; - ItemId = itemId; PlanCode = planCode; PricingMode = pricingMode; Quantity = quantity; diff --git a/sdk/go.mod b/sdk/go.mod index ab83d961..48e19f0a 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/blang/semver v3.5.1+incompatible - github.com/pulumi/pulumi/sdk/v3 v3.126.0 + github.com/pulumi/pulumi/sdk/v3 v3.130.0 ) require ( diff --git a/sdk/go.sum b/sdk/go.sum index 369c02c1..3cf84447 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -137,8 +137,8 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.9.1 h1:HH5eEv8sgyxSpY5a8yePyqFXzA8cvBvapfH8457+mIs= github.com/pulumi/esc v0.9.1/go.mod h1:oEJ6bOsjYlQUpjf70GiX+CXn3VBmpwFDxUTlmtUN84c= -github.com/pulumi/pulumi/sdk/v3 v3.126.0 h1:6GQVhwG2jgnG7wjRiWgrq0/sU39onctAiBcvTlqb20s= -github.com/pulumi/pulumi/sdk/v3 v3.126.0/go.mod h1:p1U24en3zt51agx+WlNboSOV8eLlPWYAkxMzVEXKbnY= +github.com/pulumi/pulumi/sdk/v3 v3.130.0 h1:gGJNd+akPqhZ+vrsZmAjSNJn6kGJkitjjkwrmIQMmn8= +github.com/pulumi/pulumi/sdk/v3 v3.130.0/go.mod h1:p1U24en3zt51agx+WlNboSOV8eLlPWYAkxMzVEXKbnY= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= diff --git a/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsManagement.go b/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsManagement.go index 038963ac..9c4c93ff 100644 --- a/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsManagement.go +++ b/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsManagement.go @@ -38,10 +38,10 @@ import ( // _, err = CloudProject.NewContainerRegistryIPRestrictionsManagement(ctx, "my-mgt-iprestrictions", &CloudProject.ContainerRegistryIPRestrictionsManagementArgs{ // ServiceName: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Service_name), // RegistryId: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Id), -// IpRestrictions: pulumi.MapArray{ -// pulumi.Map{ -// "ip_block": pulumi.Any("xxx.xxx.xxx.xxx/xx"), -// "description": pulumi.Any("xxxxxxx"), +// IpRestrictions: pulumi.StringMapArray{ +// pulumi.StringMap{ +// "ip_block": pulumi.String("xxx.xxx.xxx.xxx/xx"), +// "description": pulumi.String("xxxxxxx"), // }, // }, // }) @@ -57,7 +57,7 @@ type ContainerRegistryIPRestrictionsManagement struct { pulumi.CustomResourceState // IP restrictions applied on Harbor UI and API. - IpRestrictions pulumi.MapArrayOutput `pulumi:"ipRestrictions"` + IpRestrictions pulumi.StringMapArrayOutput `pulumi:"ipRestrictions"` // The id of the Managed Private Registry. RegistryId pulumi.StringOutput `pulumi:"registryId"` // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -104,7 +104,7 @@ func GetContainerRegistryIPRestrictionsManagement(ctx *pulumi.Context, // Input properties used for looking up and filtering ContainerRegistryIPRestrictionsManagement resources. type containerRegistryIPRestrictionsManagementState struct { // IP restrictions applied on Harbor UI and API. - IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + IpRestrictions []map[string]string `pulumi:"ipRestrictions"` // The id of the Managed Private Registry. RegistryId *string `pulumi:"registryId"` // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -113,7 +113,7 @@ type containerRegistryIPRestrictionsManagementState struct { type ContainerRegistryIPRestrictionsManagementState struct { // IP restrictions applied on Harbor UI and API. - IpRestrictions pulumi.MapArrayInput + IpRestrictions pulumi.StringMapArrayInput // The id of the Managed Private Registry. RegistryId pulumi.StringPtrInput // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -126,7 +126,7 @@ func (ContainerRegistryIPRestrictionsManagementState) ElementType() reflect.Type type containerRegistryIPRestrictionsManagementArgs struct { // IP restrictions applied on Harbor UI and API. - IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + IpRestrictions []map[string]string `pulumi:"ipRestrictions"` // The id of the Managed Private Registry. RegistryId string `pulumi:"registryId"` // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -136,7 +136,7 @@ type containerRegistryIPRestrictionsManagementArgs struct { // The set of arguments for constructing a ContainerRegistryIPRestrictionsManagement resource. type ContainerRegistryIPRestrictionsManagementArgs struct { // IP restrictions applied on Harbor UI and API. - IpRestrictions pulumi.MapArrayInput + IpRestrictions pulumi.StringMapArrayInput // The id of the Managed Private Registry. RegistryId pulumi.StringInput // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -231,8 +231,10 @@ func (o ContainerRegistryIPRestrictionsManagementOutput) ToContainerRegistryIPRe } // IP restrictions applied on Harbor UI and API. -func (o ContainerRegistryIPRestrictionsManagementOutput) IpRestrictions() pulumi.MapArrayOutput { - return o.ApplyT(func(v *ContainerRegistryIPRestrictionsManagement) pulumi.MapArrayOutput { return v.IpRestrictions }).(pulumi.MapArrayOutput) +func (o ContainerRegistryIPRestrictionsManagementOutput) IpRestrictions() pulumi.StringMapArrayOutput { + return o.ApplyT(func(v *ContainerRegistryIPRestrictionsManagement) pulumi.StringMapArrayOutput { + return v.IpRestrictions + }).(pulumi.StringMapArrayOutput) } // The id of the Managed Private Registry. diff --git a/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsRegistry.go b/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsRegistry.go index f2f87591..375503d2 100644 --- a/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsRegistry.go +++ b/sdk/go/ovh/cloudproject/containerRegistryIPRestrictionsRegistry.go @@ -38,10 +38,10 @@ import ( // _, err = CloudProject.NewContainerRegistryIPRestrictionsRegistry(ctx, "my-registry-iprestrictions", &CloudProject.ContainerRegistryIPRestrictionsRegistryArgs{ // ServiceName: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Service_name), // RegistryId: pulumi.Any(ovh_cloud_project_containerregistry.Registry.Id), -// IpRestrictions: pulumi.MapArray{ -// pulumi.Map{ -// "ip_block": pulumi.Any("xxx.xxx.xxx.xxx/xx"), -// "description": pulumi.Any("xxxxxxx"), +// IpRestrictions: pulumi.StringMapArray{ +// pulumi.StringMap{ +// "ip_block": pulumi.String("xxx.xxx.xxx.xxx/xx"), +// "description": pulumi.String("xxxxxxx"), // }, // }, // }) @@ -57,7 +57,7 @@ type ContainerRegistryIPRestrictionsRegistry struct { pulumi.CustomResourceState // IP restrictions applied on artifact manager component. - IpRestrictions pulumi.MapArrayOutput `pulumi:"ipRestrictions"` + IpRestrictions pulumi.StringMapArrayOutput `pulumi:"ipRestrictions"` // The id of the Managed Private Registry. RegistryId pulumi.StringOutput `pulumi:"registryId"` // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -104,7 +104,7 @@ func GetContainerRegistryIPRestrictionsRegistry(ctx *pulumi.Context, // Input properties used for looking up and filtering ContainerRegistryIPRestrictionsRegistry resources. type containerRegistryIPRestrictionsRegistryState struct { // IP restrictions applied on artifact manager component. - IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + IpRestrictions []map[string]string `pulumi:"ipRestrictions"` // The id of the Managed Private Registry. RegistryId *string `pulumi:"registryId"` // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -113,7 +113,7 @@ type containerRegistryIPRestrictionsRegistryState struct { type ContainerRegistryIPRestrictionsRegistryState struct { // IP restrictions applied on artifact manager component. - IpRestrictions pulumi.MapArrayInput + IpRestrictions pulumi.StringMapArrayInput // The id of the Managed Private Registry. RegistryId pulumi.StringPtrInput // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -126,7 +126,7 @@ func (ContainerRegistryIPRestrictionsRegistryState) ElementType() reflect.Type { type containerRegistryIPRestrictionsRegistryArgs struct { // IP restrictions applied on artifact manager component. - IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + IpRestrictions []map[string]string `pulumi:"ipRestrictions"` // The id of the Managed Private Registry. RegistryId string `pulumi:"registryId"` // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -136,7 +136,7 @@ type containerRegistryIPRestrictionsRegistryArgs struct { // The set of arguments for constructing a ContainerRegistryIPRestrictionsRegistry resource. type ContainerRegistryIPRestrictionsRegistryArgs struct { // IP restrictions applied on artifact manager component. - IpRestrictions pulumi.MapArrayInput + IpRestrictions pulumi.StringMapArrayInput // The id of the Managed Private Registry. RegistryId pulumi.StringInput // The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -231,8 +231,8 @@ func (o ContainerRegistryIPRestrictionsRegistryOutput) ToContainerRegistryIPRest } // IP restrictions applied on artifact manager component. -func (o ContainerRegistryIPRestrictionsRegistryOutput) IpRestrictions() pulumi.MapArrayOutput { - return o.ApplyT(func(v *ContainerRegistryIPRestrictionsRegistry) pulumi.MapArrayOutput { return v.IpRestrictions }).(pulumi.MapArrayOutput) +func (o ContainerRegistryIPRestrictionsRegistryOutput) IpRestrictions() pulumi.StringMapArrayOutput { + return o.ApplyT(func(v *ContainerRegistryIPRestrictionsRegistry) pulumi.StringMapArrayOutput { return v.IpRestrictions }).(pulumi.StringMapArrayOutput) } // The id of the Managed Private Registry. diff --git a/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsManagement.go b/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsManagement.go index 4c8890c6..709de773 100644 --- a/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsManagement.go +++ b/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsManagement.go @@ -35,7 +35,7 @@ type LookupContainerRegistryIPRestrictionsManagementResult struct { // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` // IP restrictions applied on Harbor UI and API. - IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + IpRestrictions []map[string]string `pulumi:"ipRestrictions"` // The ID of the Managed Private Registry. RegistryId string `pulumi:"registryId"` // The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -88,10 +88,10 @@ func (o LookupContainerRegistryIPRestrictionsManagementResultOutput) Id() pulumi } // IP restrictions applied on Harbor UI and API. -func (o LookupContainerRegistryIPRestrictionsManagementResultOutput) IpRestrictions() pulumi.MapArrayOutput { - return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsManagementResult) []map[string]interface{} { +func (o LookupContainerRegistryIPRestrictionsManagementResultOutput) IpRestrictions() pulumi.StringMapArrayOutput { + return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsManagementResult) []map[string]string { return v.IpRestrictions - }).(pulumi.MapArrayOutput) + }).(pulumi.StringMapArrayOutput) } // The ID of the Managed Private Registry. diff --git a/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsRegistry.go b/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsRegistry.go index 51a01aaf..2f746082 100644 --- a/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsRegistry.go +++ b/sdk/go/ovh/cloudproject/getContainerRegistryIPRestrictionsRegistry.go @@ -35,7 +35,7 @@ type LookupContainerRegistryIPRestrictionsRegistryResult struct { // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` // IP restrictions applied on artifact manager component. - IpRestrictions []map[string]interface{} `pulumi:"ipRestrictions"` + IpRestrictions []map[string]string `pulumi:"ipRestrictions"` // The ID of the Managed Private Registry. RegistryId string `pulumi:"registryId"` // The ID of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. @@ -88,10 +88,10 @@ func (o LookupContainerRegistryIPRestrictionsRegistryResultOutput) Id() pulumi.S } // IP restrictions applied on artifact manager component. -func (o LookupContainerRegistryIPRestrictionsRegistryResultOutput) IpRestrictions() pulumi.MapArrayOutput { - return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsRegistryResult) []map[string]interface{} { +func (o LookupContainerRegistryIPRestrictionsRegistryResultOutput) IpRestrictions() pulumi.StringMapArrayOutput { + return o.ApplyT(func(v LookupContainerRegistryIPRestrictionsRegistryResult) []map[string]string { return v.IpRestrictions - }).(pulumi.MapArrayOutput) + }).(pulumi.StringMapArrayOutput) } // The ID of the Managed Private Registry. diff --git a/sdk/go/ovh/cloudproject/kubeNodePool.go b/sdk/go/ovh/cloudproject/kubeNodePool.go index dd3204a3..58e6da87 100644 --- a/sdk/go/ovh/cloudproject/kubeNodePool.go +++ b/sdk/go/ovh/cloudproject/kubeNodePool.go @@ -81,11 +81,11 @@ import ( // }, // }, // Spec: &cloudproject.KubeNodePoolTemplateSpecArgs{ -// Taints: pulumi.MapArray{ -// pulumi.Map{ -// "effect": pulumi.Any("PreferNoSchedule"), -// "key": pulumi.Any("k"), -// "value": pulumi.Any("v"), +// Taints: pulumi.StringMapArray{ +// pulumi.StringMap{ +// "effect": pulumi.String("PreferNoSchedule"), +// "key": pulumi.String("k"), +// "value": pulumi.String("v"), // }, // }, // Unschedulable: pulumi.Bool(false), diff --git a/sdk/go/ovh/cloudproject/pulumiTypes.go b/sdk/go/ovh/cloudproject/pulumiTypes.go index af7161c9..c77ff3b5 100644 --- a/sdk/go/ovh/cloudproject/pulumiTypes.go +++ b/sdk/go/ovh/cloudproject/pulumiTypes.go @@ -2580,7 +2580,7 @@ func (o KubeNodePoolTemplateMetadataPtrOutput) Labels() pulumi.StringMapOutput { type KubeNodePoolTemplateSpec struct { // taints - Taints []map[string]interface{} `pulumi:"taints"` + Taints []map[string]string `pulumi:"taints"` // unschedulable Unschedulable bool `pulumi:"unschedulable"` } @@ -2598,7 +2598,7 @@ type KubeNodePoolTemplateSpecInput interface { type KubeNodePoolTemplateSpecArgs struct { // taints - Taints pulumi.MapArrayInput `pulumi:"taints"` + Taints pulumi.StringMapArrayInput `pulumi:"taints"` // unschedulable Unschedulable pulumi.BoolInput `pulumi:"unschedulable"` } @@ -2681,8 +2681,8 @@ func (o KubeNodePoolTemplateSpecOutput) ToKubeNodePoolTemplateSpecPtrOutputWithC } // taints -func (o KubeNodePoolTemplateSpecOutput) Taints() pulumi.MapArrayOutput { - return o.ApplyT(func(v KubeNodePoolTemplateSpec) []map[string]interface{} { return v.Taints }).(pulumi.MapArrayOutput) +func (o KubeNodePoolTemplateSpecOutput) Taints() pulumi.StringMapArrayOutput { + return o.ApplyT(func(v KubeNodePoolTemplateSpec) []map[string]string { return v.Taints }).(pulumi.StringMapArrayOutput) } // unschedulable @@ -2715,13 +2715,13 @@ func (o KubeNodePoolTemplateSpecPtrOutput) Elem() KubeNodePoolTemplateSpecOutput } // taints -func (o KubeNodePoolTemplateSpecPtrOutput) Taints() pulumi.MapArrayOutput { - return o.ApplyT(func(v *KubeNodePoolTemplateSpec) []map[string]interface{} { +func (o KubeNodePoolTemplateSpecPtrOutput) Taints() pulumi.StringMapArrayOutput { + return o.ApplyT(func(v *KubeNodePoolTemplateSpec) []map[string]string { if v == nil { return nil } return v.Taints - }).(pulumi.MapArrayOutput) + }).(pulumi.StringMapArrayOutput) } // unschedulable @@ -6592,7 +6592,7 @@ func (o GetKubeNodePoolTemplateMetadataPtrOutput) Labels() pulumi.StringMapOutpu type GetKubeNodePoolTemplateSpec struct { // taints - Taints []map[string]interface{} `pulumi:"taints"` + Taints []map[string]string `pulumi:"taints"` // unschedulable Unschedulable *bool `pulumi:"unschedulable"` } @@ -6610,7 +6610,7 @@ type GetKubeNodePoolTemplateSpecInput interface { type GetKubeNodePoolTemplateSpecArgs struct { // taints - Taints pulumi.MapArrayInput `pulumi:"taints"` + Taints pulumi.StringMapArrayInput `pulumi:"taints"` // unschedulable Unschedulable pulumi.BoolPtrInput `pulumi:"unschedulable"` } @@ -6693,8 +6693,8 @@ func (o GetKubeNodePoolTemplateSpecOutput) ToGetKubeNodePoolTemplateSpecPtrOutpu } // taints -func (o GetKubeNodePoolTemplateSpecOutput) Taints() pulumi.MapArrayOutput { - return o.ApplyT(func(v GetKubeNodePoolTemplateSpec) []map[string]interface{} { return v.Taints }).(pulumi.MapArrayOutput) +func (o GetKubeNodePoolTemplateSpecOutput) Taints() pulumi.StringMapArrayOutput { + return o.ApplyT(func(v GetKubeNodePoolTemplateSpec) []map[string]string { return v.Taints }).(pulumi.StringMapArrayOutput) } // unschedulable @@ -6727,13 +6727,13 @@ func (o GetKubeNodePoolTemplateSpecPtrOutput) Elem() GetKubeNodePoolTemplateSpec } // taints -func (o GetKubeNodePoolTemplateSpecPtrOutput) Taints() pulumi.MapArrayOutput { - return o.ApplyT(func(v *GetKubeNodePoolTemplateSpec) []map[string]interface{} { +func (o GetKubeNodePoolTemplateSpecPtrOutput) Taints() pulumi.StringMapArrayOutput { + return o.ApplyT(func(v *GetKubeNodePoolTemplateSpec) []map[string]string { if v == nil { return nil } return v.Taints - }).(pulumi.MapArrayOutput) + }).(pulumi.StringMapArrayOutput) } // unschedulable diff --git a/sdk/go/ovh/cloudproject/user.go b/sdk/go/ovh/cloudproject/user.go index 269f6cb6..ea789a80 100644 --- a/sdk/go/ovh/cloudproject/user.go +++ b/sdk/go/ovh/cloudproject/user.go @@ -48,7 +48,7 @@ type User struct { Description pulumi.StringPtrOutput `pulumi:"description"` // a convenient map representing an openstackRc file. // Note: no password nor sensitive token is set in this map. - OpenstackRc pulumi.MapOutput `pulumi:"openstackRc"` + OpenstackRc pulumi.StringMapOutput `pulumi:"openstackRc"` // (Sensitive) the password generated for the user. The password can // be used with the Openstack API. This attribute is sensitive and will only be // retrieve once during creation. @@ -124,7 +124,7 @@ type userState struct { Description *string `pulumi:"description"` // a convenient map representing an openstackRc file. // Note: no password nor sensitive token is set in this map. - OpenstackRc map[string]interface{} `pulumi:"openstackRc"` + OpenstackRc map[string]string `pulumi:"openstackRc"` // (Sensitive) the password generated for the user. The password can // be used with the Openstack API. This attribute is sensitive and will only be // retrieve once during creation. @@ -164,7 +164,7 @@ type UserState struct { Description pulumi.StringPtrInput // a convenient map representing an openstackRc file. // Note: no password nor sensitive token is set in this map. - OpenstackRc pulumi.MapInput + OpenstackRc pulumi.StringMapInput // (Sensitive) the password generated for the user. The password can // be used with the Openstack API. This attribute is sensitive and will only be // retrieve once during creation. @@ -206,7 +206,7 @@ type userArgs struct { Description *string `pulumi:"description"` // a convenient map representing an openstackRc file. // Note: no password nor sensitive token is set in this map. - OpenstackRc map[string]interface{} `pulumi:"openstackRc"` + OpenstackRc map[string]string `pulumi:"openstackRc"` // The name of a role. See `roleNames`. RoleName *string `pulumi:"roleName"` // A list of role names. Values can be: @@ -234,7 +234,7 @@ type UserArgs struct { Description pulumi.StringPtrInput // a convenient map representing an openstackRc file. // Note: no password nor sensitive token is set in this map. - OpenstackRc pulumi.MapInput + OpenstackRc pulumi.StringMapInput // The name of a role. See `roleNames`. RoleName pulumi.StringPtrInput // A list of role names. Values can be: @@ -355,8 +355,8 @@ func (o UserOutput) Description() pulumi.StringPtrOutput { // a convenient map representing an openstackRc file. // Note: no password nor sensitive token is set in this map. -func (o UserOutput) OpenstackRc() pulumi.MapOutput { - return o.ApplyT(func(v *User) pulumi.MapOutput { return v.OpenstackRc }).(pulumi.MapOutput) +func (o UserOutput) OpenstackRc() pulumi.StringMapOutput { + return o.ApplyT(func(v *User) pulumi.StringMapOutput { return v.OpenstackRc }).(pulumi.StringMapOutput) } // (Sensitive) the password generated for the user. The password can diff --git a/sdk/go/ovh/dbaas/logsInput.go b/sdk/go/ovh/dbaas/logsInput.go index c911bfc0..0fb6688a 100644 --- a/sdk/go/ovh/dbaas/logsInput.go +++ b/sdk/go/ovh/dbaas/logsInput.go @@ -81,10 +81,14 @@ type LogsInput struct { // List of IP blocks AllowedNetworks pulumi.StringArrayOutput `pulumi:"allowedNetworks"` + // Whether the workload is auto-scaled (mutually exclusive with parameter `nbInstance`) + Autoscale pulumi.BoolPtrOutput `pulumi:"autoscale"` // Input configuration Configuration LogsInputConfigurationOutput `pulumi:"configuration"` // Input creation CreatedAt pulumi.StringOutput `pulumi:"createdAt"` + // Number of instance running (returned by the API) + CurrentNbInstance pulumi.IntOutput `pulumi:"currentNbInstance"` // Input description Description pulumi.StringOutput `pulumi:"description"` // Input engine ID @@ -97,8 +101,12 @@ type LogsInput struct { InputId pulumi.StringOutput `pulumi:"inputId"` // Indicate if input need to be restarted IsRestartRequired pulumi.BoolOutput `pulumi:"isRestartRequired"` - // Number of instance running - NbInstance pulumi.IntOutput `pulumi:"nbInstance"` + // Maximum number of instances in auto-scaled mode + MaxScaleInstance pulumi.IntPtrOutput `pulumi:"maxScaleInstance"` + // Minimum number of instances in auto-scaled mode + MinScaleInstance pulumi.IntPtrOutput `pulumi:"minScaleInstance"` + // Number of instance running (input, mutually exclusive with parameter `autoscale`) + NbInstance pulumi.IntPtrOutput `pulumi:"nbInstance"` // Input IP address PublicAddress pulumi.StringOutput `pulumi:"publicAddress"` // service name @@ -169,10 +177,14 @@ func GetLogsInput(ctx *pulumi.Context, type logsInputState struct { // List of IP blocks AllowedNetworks []string `pulumi:"allowedNetworks"` + // Whether the workload is auto-scaled (mutually exclusive with parameter `nbInstance`) + Autoscale *bool `pulumi:"autoscale"` // Input configuration Configuration *LogsInputConfiguration `pulumi:"configuration"` // Input creation CreatedAt *string `pulumi:"createdAt"` + // Number of instance running (returned by the API) + CurrentNbInstance *int `pulumi:"currentNbInstance"` // Input description Description *string `pulumi:"description"` // Input engine ID @@ -185,7 +197,11 @@ type logsInputState struct { InputId *string `pulumi:"inputId"` // Indicate if input need to be restarted IsRestartRequired *bool `pulumi:"isRestartRequired"` - // Number of instance running + // Maximum number of instances in auto-scaled mode + MaxScaleInstance *int `pulumi:"maxScaleInstance"` + // Minimum number of instances in auto-scaled mode + MinScaleInstance *int `pulumi:"minScaleInstance"` + // Number of instance running (input, mutually exclusive with parameter `autoscale`) NbInstance *int `pulumi:"nbInstance"` // Input IP address PublicAddress *string `pulumi:"publicAddress"` @@ -206,10 +222,14 @@ type logsInputState struct { type LogsInputState struct { // List of IP blocks AllowedNetworks pulumi.StringArrayInput + // Whether the workload is auto-scaled (mutually exclusive with parameter `nbInstance`) + Autoscale pulumi.BoolPtrInput // Input configuration Configuration LogsInputConfigurationPtrInput // Input creation CreatedAt pulumi.StringPtrInput + // Number of instance running (returned by the API) + CurrentNbInstance pulumi.IntPtrInput // Input description Description pulumi.StringPtrInput // Input engine ID @@ -222,7 +242,11 @@ type LogsInputState struct { InputId pulumi.StringPtrInput // Indicate if input need to be restarted IsRestartRequired pulumi.BoolPtrInput - // Number of instance running + // Maximum number of instances in auto-scaled mode + MaxScaleInstance pulumi.IntPtrInput + // Minimum number of instances in auto-scaled mode + MinScaleInstance pulumi.IntPtrInput + // Number of instance running (input, mutually exclusive with parameter `autoscale`) NbInstance pulumi.IntPtrInput // Input IP address PublicAddress pulumi.StringPtrInput @@ -247,6 +271,8 @@ func (LogsInputState) ElementType() reflect.Type { type logsInputArgs struct { // List of IP blocks AllowedNetworks []string `pulumi:"allowedNetworks"` + // Whether the workload is auto-scaled (mutually exclusive with parameter `nbInstance`) + Autoscale *bool `pulumi:"autoscale"` // Input configuration Configuration LogsInputConfiguration `pulumi:"configuration"` // Input description @@ -255,7 +281,11 @@ type logsInputArgs struct { EngineId string `pulumi:"engineId"` // Port ExposedPort *string `pulumi:"exposedPort"` - // Number of instance running + // Maximum number of instances in auto-scaled mode + MaxScaleInstance *int `pulumi:"maxScaleInstance"` + // Minimum number of instances in auto-scaled mode + MinScaleInstance *int `pulumi:"minScaleInstance"` + // Number of instance running (input, mutually exclusive with parameter `autoscale`) NbInstance *int `pulumi:"nbInstance"` // service name ServiceName string `pulumi:"serviceName"` @@ -269,6 +299,8 @@ type logsInputArgs struct { type LogsInputArgs struct { // List of IP blocks AllowedNetworks pulumi.StringArrayInput + // Whether the workload is auto-scaled (mutually exclusive with parameter `nbInstance`) + Autoscale pulumi.BoolPtrInput // Input configuration Configuration LogsInputConfigurationInput // Input description @@ -277,7 +309,11 @@ type LogsInputArgs struct { EngineId pulumi.StringInput // Port ExposedPort pulumi.StringPtrInput - // Number of instance running + // Maximum number of instances in auto-scaled mode + MaxScaleInstance pulumi.IntPtrInput + // Minimum number of instances in auto-scaled mode + MinScaleInstance pulumi.IntPtrInput + // Number of instance running (input, mutually exclusive with parameter `autoscale`) NbInstance pulumi.IntPtrInput // service name ServiceName pulumi.StringInput @@ -379,6 +415,11 @@ func (o LogsInputOutput) AllowedNetworks() pulumi.StringArrayOutput { return o.ApplyT(func(v *LogsInput) pulumi.StringArrayOutput { return v.AllowedNetworks }).(pulumi.StringArrayOutput) } +// Whether the workload is auto-scaled (mutually exclusive with parameter `nbInstance`) +func (o LogsInputOutput) Autoscale() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LogsInput) pulumi.BoolPtrOutput { return v.Autoscale }).(pulumi.BoolPtrOutput) +} + // Input configuration func (o LogsInputOutput) Configuration() LogsInputConfigurationOutput { return o.ApplyT(func(v *LogsInput) LogsInputConfigurationOutput { return v.Configuration }).(LogsInputConfigurationOutput) @@ -389,6 +430,11 @@ func (o LogsInputOutput) CreatedAt() pulumi.StringOutput { return o.ApplyT(func(v *LogsInput) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) } +// Number of instance running (returned by the API) +func (o LogsInputOutput) CurrentNbInstance() pulumi.IntOutput { + return o.ApplyT(func(v *LogsInput) pulumi.IntOutput { return v.CurrentNbInstance }).(pulumi.IntOutput) +} + // Input description func (o LogsInputOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v *LogsInput) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput) @@ -419,9 +465,19 @@ func (o LogsInputOutput) IsRestartRequired() pulumi.BoolOutput { return o.ApplyT(func(v *LogsInput) pulumi.BoolOutput { return v.IsRestartRequired }).(pulumi.BoolOutput) } -// Number of instance running -func (o LogsInputOutput) NbInstance() pulumi.IntOutput { - return o.ApplyT(func(v *LogsInput) pulumi.IntOutput { return v.NbInstance }).(pulumi.IntOutput) +// Maximum number of instances in auto-scaled mode +func (o LogsInputOutput) MaxScaleInstance() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogsInput) pulumi.IntPtrOutput { return v.MaxScaleInstance }).(pulumi.IntPtrOutput) +} + +// Minimum number of instances in auto-scaled mode +func (o LogsInputOutput) MinScaleInstance() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogsInput) pulumi.IntPtrOutput { return v.MinScaleInstance }).(pulumi.IntPtrOutput) +} + +// Number of instance running (input, mutually exclusive with parameter `autoscale`) +func (o LogsInputOutput) NbInstance() pulumi.IntPtrOutput { + return o.ApplyT(func(v *LogsInput) pulumi.IntPtrOutput { return v.NbInstance }).(pulumi.IntPtrOutput) } // Input IP address diff --git a/sdk/go/ovh/dedicated/getServerBoots.go b/sdk/go/ovh/dedicated/getServerBoots.go index 4e70c302..2d6d763b 100644 --- a/sdk/go/ovh/dedicated/getServerBoots.go +++ b/sdk/go/ovh/dedicated/getServerBoots.go @@ -51,7 +51,7 @@ func GetServerBoots(ctx *pulumi.Context, args *GetServerBootsArgs, opts ...pulum // A collection of arguments for invoking getServerBoots. type GetServerBootsArgs struct { - // Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + // Filter the value of bootType property (harddisk, rescue, internal, network) BootType *string `pulumi:"bootType"` // Filter the value of kernel property (iPXE script name) Kernel *string `pulumi:"kernel"` @@ -85,7 +85,7 @@ func GetServerBootsOutput(ctx *pulumi.Context, args GetServerBootsOutputArgs, op // A collection of arguments for invoking getServerBoots. type GetServerBootsOutputArgs struct { - // Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + // Filter the value of bootType property (harddisk, rescue, internal, network) BootType pulumi.StringPtrInput `pulumi:"bootType"` // Filter the value of kernel property (iPXE script name) Kernel pulumi.StringPtrInput `pulumi:"kernel"` diff --git a/sdk/go/ovh/dedicated/init.go b/sdk/go/ovh/dedicated/init.go index 5921e7ba..d7ab76ff 100644 --- a/sdk/go/ovh/dedicated/init.go +++ b/sdk/go/ovh/dedicated/init.go @@ -29,6 +29,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &NasHAPartitionAccess{} case "ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot": r = &NasHAPartitionSnapshot{} + case "ovh:Dedicated/server:Server": + r = &Server{} case "ovh:Dedicated/serverInstallTask:ServerInstallTask": r = &ServerInstallTask{} case "ovh:Dedicated/serverNetworking:ServerNetworking": @@ -70,6 +72,11 @@ func init() { "Dedicated/nasHAPartitionSnapshot", &module{version}, ) + pulumi.RegisterResourceModule( + "ovh", + "Dedicated/server", + &module{version}, + ) pulumi.RegisterResourceModule( "ovh", "Dedicated/serverInstallTask", diff --git a/sdk/go/ovh/dedicated/pulumiTypes.go b/sdk/go/ovh/dedicated/pulumiTypes.go index 2b7c05ab..e8c209b8 100644 --- a/sdk/go/ovh/dedicated/pulumiTypes.go +++ b/sdk/go/ovh/dedicated/pulumiTypes.go @@ -13,6 +13,394 @@ import ( var _ = internal.GetEnvOrDefault +type ServerDetails struct { + // Personnal hostname to use in server reinstallation + CustomHostname *string `pulumi:"customHostname"` + // Disk group id to process install on (only available for some templates) + DiskGroupId *float64 `pulumi:"diskGroupId"` + // true if you want to install only on the first disk + NoRaid *bool `pulumi:"noRaid"` + // Number of devices to use for system's software RAID + SoftRaidDevices *float64 `pulumi:"softRaidDevices"` +} + +// ServerDetailsInput is an input type that accepts ServerDetailsArgs and ServerDetailsOutput values. +// You can construct a concrete instance of `ServerDetailsInput` via: +// +// ServerDetailsArgs{...} +type ServerDetailsInput interface { + pulumi.Input + + ToServerDetailsOutput() ServerDetailsOutput + ToServerDetailsOutputWithContext(context.Context) ServerDetailsOutput +} + +type ServerDetailsArgs struct { + // Personnal hostname to use in server reinstallation + CustomHostname pulumi.StringPtrInput `pulumi:"customHostname"` + // Disk group id to process install on (only available for some templates) + DiskGroupId pulumi.Float64PtrInput `pulumi:"diskGroupId"` + // true if you want to install only on the first disk + NoRaid pulumi.BoolPtrInput `pulumi:"noRaid"` + // Number of devices to use for system's software RAID + SoftRaidDevices pulumi.Float64PtrInput `pulumi:"softRaidDevices"` +} + +func (ServerDetailsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerDetails)(nil)).Elem() +} + +func (i ServerDetailsArgs) ToServerDetailsOutput() ServerDetailsOutput { + return i.ToServerDetailsOutputWithContext(context.Background()) +} + +func (i ServerDetailsArgs) ToServerDetailsOutputWithContext(ctx context.Context) ServerDetailsOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerDetailsOutput) +} + +func (i ServerDetailsArgs) ToServerDetailsPtrOutput() ServerDetailsPtrOutput { + return i.ToServerDetailsPtrOutputWithContext(context.Background()) +} + +func (i ServerDetailsArgs) ToServerDetailsPtrOutputWithContext(ctx context.Context) ServerDetailsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerDetailsOutput).ToServerDetailsPtrOutputWithContext(ctx) +} + +// ServerDetailsPtrInput is an input type that accepts ServerDetailsArgs, ServerDetailsPtr and ServerDetailsPtrOutput values. +// You can construct a concrete instance of `ServerDetailsPtrInput` via: +// +// ServerDetailsArgs{...} +// +// or: +// +// nil +type ServerDetailsPtrInput interface { + pulumi.Input + + ToServerDetailsPtrOutput() ServerDetailsPtrOutput + ToServerDetailsPtrOutputWithContext(context.Context) ServerDetailsPtrOutput +} + +type serverDetailsPtrType ServerDetailsArgs + +func ServerDetailsPtr(v *ServerDetailsArgs) ServerDetailsPtrInput { + return (*serverDetailsPtrType)(v) +} + +func (*serverDetailsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServerDetails)(nil)).Elem() +} + +func (i *serverDetailsPtrType) ToServerDetailsPtrOutput() ServerDetailsPtrOutput { + return i.ToServerDetailsPtrOutputWithContext(context.Background()) +} + +func (i *serverDetailsPtrType) ToServerDetailsPtrOutputWithContext(ctx context.Context) ServerDetailsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerDetailsPtrOutput) +} + +type ServerDetailsOutput struct{ *pulumi.OutputState } + +func (ServerDetailsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerDetails)(nil)).Elem() +} + +func (o ServerDetailsOutput) ToServerDetailsOutput() ServerDetailsOutput { + return o +} + +func (o ServerDetailsOutput) ToServerDetailsOutputWithContext(ctx context.Context) ServerDetailsOutput { + return o +} + +func (o ServerDetailsOutput) ToServerDetailsPtrOutput() ServerDetailsPtrOutput { + return o.ToServerDetailsPtrOutputWithContext(context.Background()) +} + +func (o ServerDetailsOutput) ToServerDetailsPtrOutputWithContext(ctx context.Context) ServerDetailsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServerDetails) *ServerDetails { + return &v + }).(ServerDetailsPtrOutput) +} + +// Personnal hostname to use in server reinstallation +func (o ServerDetailsOutput) CustomHostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerDetails) *string { return v.CustomHostname }).(pulumi.StringPtrOutput) +} + +// Disk group id to process install on (only available for some templates) +func (o ServerDetailsOutput) DiskGroupId() pulumi.Float64PtrOutput { + return o.ApplyT(func(v ServerDetails) *float64 { return v.DiskGroupId }).(pulumi.Float64PtrOutput) +} + +// true if you want to install only on the first disk +func (o ServerDetailsOutput) NoRaid() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ServerDetails) *bool { return v.NoRaid }).(pulumi.BoolPtrOutput) +} + +// Number of devices to use for system's software RAID +func (o ServerDetailsOutput) SoftRaidDevices() pulumi.Float64PtrOutput { + return o.ApplyT(func(v ServerDetails) *float64 { return v.SoftRaidDevices }).(pulumi.Float64PtrOutput) +} + +type ServerDetailsPtrOutput struct{ *pulumi.OutputState } + +func (ServerDetailsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServerDetails)(nil)).Elem() +} + +func (o ServerDetailsPtrOutput) ToServerDetailsPtrOutput() ServerDetailsPtrOutput { + return o +} + +func (o ServerDetailsPtrOutput) ToServerDetailsPtrOutputWithContext(ctx context.Context) ServerDetailsPtrOutput { + return o +} + +func (o ServerDetailsPtrOutput) Elem() ServerDetailsOutput { + return o.ApplyT(func(v *ServerDetails) ServerDetails { + if v != nil { + return *v + } + var ret ServerDetails + return ret + }).(ServerDetailsOutput) +} + +// Personnal hostname to use in server reinstallation +func (o ServerDetailsPtrOutput) CustomHostname() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerDetails) *string { + if v == nil { + return nil + } + return v.CustomHostname + }).(pulumi.StringPtrOutput) +} + +// Disk group id to process install on (only available for some templates) +func (o ServerDetailsPtrOutput) DiskGroupId() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *ServerDetails) *float64 { + if v == nil { + return nil + } + return v.DiskGroupId + }).(pulumi.Float64PtrOutput) +} + +// true if you want to install only on the first disk +func (o ServerDetailsPtrOutput) NoRaid() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ServerDetails) *bool { + if v == nil { + return nil + } + return v.NoRaid + }).(pulumi.BoolPtrOutput) +} + +// Number of devices to use for system's software RAID +func (o ServerDetailsPtrOutput) SoftRaidDevices() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *ServerDetails) *float64 { + if v == nil { + return nil + } + return v.SoftRaidDevices + }).(pulumi.Float64PtrOutput) +} + +type ServerIam struct { + // Resource display name + DisplayName *string `pulumi:"displayName"` + // Unique identifier of the resource in the IAM + Id *string `pulumi:"id"` + // Resource tags. Tags that were internally computed are prefixed with `ovh:` + Tags map[string]string `pulumi:"tags"` + // URN of the private database, used when writing IAM policies + Urn *string `pulumi:"urn"` +} + +// ServerIamInput is an input type that accepts ServerIamArgs and ServerIamOutput values. +// You can construct a concrete instance of `ServerIamInput` via: +// +// ServerIamArgs{...} +type ServerIamInput interface { + pulumi.Input + + ToServerIamOutput() ServerIamOutput + ToServerIamOutputWithContext(context.Context) ServerIamOutput +} + +type ServerIamArgs struct { + // Resource display name + DisplayName pulumi.StringPtrInput `pulumi:"displayName"` + // Unique identifier of the resource in the IAM + Id pulumi.StringPtrInput `pulumi:"id"` + // Resource tags. Tags that were internally computed are prefixed with `ovh:` + Tags pulumi.StringMapInput `pulumi:"tags"` + // URN of the private database, used when writing IAM policies + Urn pulumi.StringPtrInput `pulumi:"urn"` +} + +func (ServerIamArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerIam)(nil)).Elem() +} + +func (i ServerIamArgs) ToServerIamOutput() ServerIamOutput { + return i.ToServerIamOutputWithContext(context.Background()) +} + +func (i ServerIamArgs) ToServerIamOutputWithContext(ctx context.Context) ServerIamOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerIamOutput) +} + +func (i ServerIamArgs) ToServerIamPtrOutput() ServerIamPtrOutput { + return i.ToServerIamPtrOutputWithContext(context.Background()) +} + +func (i ServerIamArgs) ToServerIamPtrOutputWithContext(ctx context.Context) ServerIamPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerIamOutput).ToServerIamPtrOutputWithContext(ctx) +} + +// ServerIamPtrInput is an input type that accepts ServerIamArgs, ServerIamPtr and ServerIamPtrOutput values. +// You can construct a concrete instance of `ServerIamPtrInput` via: +// +// ServerIamArgs{...} +// +// or: +// +// nil +type ServerIamPtrInput interface { + pulumi.Input + + ToServerIamPtrOutput() ServerIamPtrOutput + ToServerIamPtrOutputWithContext(context.Context) ServerIamPtrOutput +} + +type serverIamPtrType ServerIamArgs + +func ServerIamPtr(v *ServerIamArgs) ServerIamPtrInput { + return (*serverIamPtrType)(v) +} + +func (*serverIamPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServerIam)(nil)).Elem() +} + +func (i *serverIamPtrType) ToServerIamPtrOutput() ServerIamPtrOutput { + return i.ToServerIamPtrOutputWithContext(context.Background()) +} + +func (i *serverIamPtrType) ToServerIamPtrOutputWithContext(ctx context.Context) ServerIamPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerIamPtrOutput) +} + +type ServerIamOutput struct{ *pulumi.OutputState } + +func (ServerIamOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerIam)(nil)).Elem() +} + +func (o ServerIamOutput) ToServerIamOutput() ServerIamOutput { + return o +} + +func (o ServerIamOutput) ToServerIamOutputWithContext(ctx context.Context) ServerIamOutput { + return o +} + +func (o ServerIamOutput) ToServerIamPtrOutput() ServerIamPtrOutput { + return o.ToServerIamPtrOutputWithContext(context.Background()) +} + +func (o ServerIamOutput) ToServerIamPtrOutputWithContext(ctx context.Context) ServerIamPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServerIam) *ServerIam { + return &v + }).(ServerIamPtrOutput) +} + +// Resource display name +func (o ServerIamOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerIam) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +// Unique identifier of the resource in the IAM +func (o ServerIamOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerIam) *string { return v.Id }).(pulumi.StringPtrOutput) +} + +// Resource tags. Tags that were internally computed are prefixed with `ovh:` +func (o ServerIamOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v ServerIam) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// URN of the private database, used when writing IAM policies +func (o ServerIamOutput) Urn() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerIam) *string { return v.Urn }).(pulumi.StringPtrOutput) +} + +type ServerIamPtrOutput struct{ *pulumi.OutputState } + +func (ServerIamPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServerIam)(nil)).Elem() +} + +func (o ServerIamPtrOutput) ToServerIamPtrOutput() ServerIamPtrOutput { + return o +} + +func (o ServerIamPtrOutput) ToServerIamPtrOutputWithContext(ctx context.Context) ServerIamPtrOutput { + return o +} + +func (o ServerIamPtrOutput) Elem() ServerIamOutput { + return o.ApplyT(func(v *ServerIam) ServerIam { + if v != nil { + return *v + } + var ret ServerIam + return ret + }).(ServerIamOutput) +} + +// Resource display name +func (o ServerIamPtrOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerIam) *string { + if v == nil { + return nil + } + return v.DisplayName + }).(pulumi.StringPtrOutput) +} + +// Unique identifier of the resource in the IAM +func (o ServerIamPtrOutput) Id() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerIam) *string { + if v == nil { + return nil + } + return v.Id + }).(pulumi.StringPtrOutput) +} + +// Resource tags. Tags that were internally computed are prefixed with `ovh:` +func (o ServerIamPtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *ServerIam) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// URN of the private database, used when writing IAM policies +func (o ServerIamPtrOutput) Urn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerIam) *string { + if v == nil { + return nil + } + return v.Urn + }).(pulumi.StringPtrOutput) +} + type ServerInstallTaskDetails struct { // Set up the server using the provided hostname instead of the default hostname. CustomHostname *string `pulumi:"customHostname"` @@ -20,10 +408,6 @@ type ServerInstallTaskDetails struct { DiskGroupId *int `pulumi:"diskGroupId"` // Set to true to disable RAID. NoRaid *bool `pulumi:"noRaid"` - // Indicate the URL where your postinstall customisation script is located. - PostInstallationScriptLink *string `pulumi:"postInstallationScriptLink"` - // Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - PostInstallationScriptReturn *string `pulumi:"postInstallationScriptReturn"` // soft raid devices. SoftRaidDevices *int `pulumi:"softRaidDevices"` } @@ -46,10 +430,6 @@ type ServerInstallTaskDetailsArgs struct { DiskGroupId pulumi.IntPtrInput `pulumi:"diskGroupId"` // Set to true to disable RAID. NoRaid pulumi.BoolPtrInput `pulumi:"noRaid"` - // Indicate the URL where your postinstall customisation script is located. - PostInstallationScriptLink pulumi.StringPtrInput `pulumi:"postInstallationScriptLink"` - // Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - PostInstallationScriptReturn pulumi.StringPtrInput `pulumi:"postInstallationScriptReturn"` // soft raid devices. SoftRaidDevices pulumi.IntPtrInput `pulumi:"softRaidDevices"` } @@ -146,16 +526,6 @@ func (o ServerInstallTaskDetailsOutput) NoRaid() pulumi.BoolPtrOutput { return o.ApplyT(func(v ServerInstallTaskDetails) *bool { return v.NoRaid }).(pulumi.BoolPtrOutput) } -// Indicate the URL where your postinstall customisation script is located. -func (o ServerInstallTaskDetailsOutput) PostInstallationScriptLink() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServerInstallTaskDetails) *string { return v.PostInstallationScriptLink }).(pulumi.StringPtrOutput) -} - -// Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. -func (o ServerInstallTaskDetailsOutput) PostInstallationScriptReturn() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServerInstallTaskDetails) *string { return v.PostInstallationScriptReturn }).(pulumi.StringPtrOutput) -} - // soft raid devices. func (o ServerInstallTaskDetailsOutput) SoftRaidDevices() pulumi.IntPtrOutput { return o.ApplyT(func(v ServerInstallTaskDetails) *int { return v.SoftRaidDevices }).(pulumi.IntPtrOutput) @@ -215,26 +585,6 @@ func (o ServerInstallTaskDetailsPtrOutput) NoRaid() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Indicate the URL where your postinstall customisation script is located. -func (o ServerInstallTaskDetailsPtrOutput) PostInstallationScriptLink() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ServerInstallTaskDetails) *string { - if v == nil { - return nil - } - return v.PostInstallationScriptLink - }).(pulumi.StringPtrOutput) -} - -// Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. -func (o ServerInstallTaskDetailsPtrOutput) PostInstallationScriptReturn() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ServerInstallTaskDetails) *string { - if v == nil { - return nil - } - return v.PostInstallationScriptReturn - }).(pulumi.StringPtrOutput) -} - // soft raid devices. func (o ServerInstallTaskDetailsPtrOutput) SoftRaidDevices() pulumi.IntPtrOutput { return o.ApplyT(func(v *ServerInstallTaskDetails) *int { @@ -457,6 +807,890 @@ func (o ServerNetworkingInterfaceArrayOutput) Index(i pulumi.IntInput) ServerNet }).(ServerNetworkingInterfaceOutput) } +type ServerOrder struct { + Date *string `pulumi:"date"` + // Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + Details []ServerOrderDetail `pulumi:"details"` + ExpirationDate *string `pulumi:"expirationDate"` + OrderId *float64 `pulumi:"orderId"` +} + +// ServerOrderInput is an input type that accepts ServerOrderArgs and ServerOrderOutput values. +// You can construct a concrete instance of `ServerOrderInput` via: +// +// ServerOrderArgs{...} +type ServerOrderInput interface { + pulumi.Input + + ToServerOrderOutput() ServerOrderOutput + ToServerOrderOutputWithContext(context.Context) ServerOrderOutput +} + +type ServerOrderArgs struct { + Date pulumi.StringPtrInput `pulumi:"date"` + // Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + Details ServerOrderDetailArrayInput `pulumi:"details"` + ExpirationDate pulumi.StringPtrInput `pulumi:"expirationDate"` + OrderId pulumi.Float64PtrInput `pulumi:"orderId"` +} + +func (ServerOrderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerOrder)(nil)).Elem() +} + +func (i ServerOrderArgs) ToServerOrderOutput() ServerOrderOutput { + return i.ToServerOrderOutputWithContext(context.Background()) +} + +func (i ServerOrderArgs) ToServerOrderOutputWithContext(ctx context.Context) ServerOrderOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerOrderOutput) +} + +func (i ServerOrderArgs) ToServerOrderPtrOutput() ServerOrderPtrOutput { + return i.ToServerOrderPtrOutputWithContext(context.Background()) +} + +func (i ServerOrderArgs) ToServerOrderPtrOutputWithContext(ctx context.Context) ServerOrderPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerOrderOutput).ToServerOrderPtrOutputWithContext(ctx) +} + +// ServerOrderPtrInput is an input type that accepts ServerOrderArgs, ServerOrderPtr and ServerOrderPtrOutput values. +// You can construct a concrete instance of `ServerOrderPtrInput` via: +// +// ServerOrderArgs{...} +// +// or: +// +// nil +type ServerOrderPtrInput interface { + pulumi.Input + + ToServerOrderPtrOutput() ServerOrderPtrOutput + ToServerOrderPtrOutputWithContext(context.Context) ServerOrderPtrOutput +} + +type serverOrderPtrType ServerOrderArgs + +func ServerOrderPtr(v *ServerOrderArgs) ServerOrderPtrInput { + return (*serverOrderPtrType)(v) +} + +func (*serverOrderPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ServerOrder)(nil)).Elem() +} + +func (i *serverOrderPtrType) ToServerOrderPtrOutput() ServerOrderPtrOutput { + return i.ToServerOrderPtrOutputWithContext(context.Background()) +} + +func (i *serverOrderPtrType) ToServerOrderPtrOutputWithContext(ctx context.Context) ServerOrderPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerOrderPtrOutput) +} + +type ServerOrderOutput struct{ *pulumi.OutputState } + +func (ServerOrderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerOrder)(nil)).Elem() +} + +func (o ServerOrderOutput) ToServerOrderOutput() ServerOrderOutput { + return o +} + +func (o ServerOrderOutput) ToServerOrderOutputWithContext(ctx context.Context) ServerOrderOutput { + return o +} + +func (o ServerOrderOutput) ToServerOrderPtrOutput() ServerOrderPtrOutput { + return o.ToServerOrderPtrOutputWithContext(context.Background()) +} + +func (o ServerOrderOutput) ToServerOrderPtrOutputWithContext(ctx context.Context) ServerOrderPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ServerOrder) *ServerOrder { + return &v + }).(ServerOrderPtrOutput) +} + +func (o ServerOrderOutput) Date() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerOrder) *string { return v.Date }).(pulumi.StringPtrOutput) +} + +// Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) +func (o ServerOrderOutput) Details() ServerOrderDetailArrayOutput { + return o.ApplyT(func(v ServerOrder) []ServerOrderDetail { return v.Details }).(ServerOrderDetailArrayOutput) +} + +func (o ServerOrderOutput) ExpirationDate() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerOrder) *string { return v.ExpirationDate }).(pulumi.StringPtrOutput) +} + +func (o ServerOrderOutput) OrderId() pulumi.Float64PtrOutput { + return o.ApplyT(func(v ServerOrder) *float64 { return v.OrderId }).(pulumi.Float64PtrOutput) +} + +type ServerOrderPtrOutput struct{ *pulumi.OutputState } + +func (ServerOrderPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ServerOrder)(nil)).Elem() +} + +func (o ServerOrderPtrOutput) ToServerOrderPtrOutput() ServerOrderPtrOutput { + return o +} + +func (o ServerOrderPtrOutput) ToServerOrderPtrOutputWithContext(ctx context.Context) ServerOrderPtrOutput { + return o +} + +func (o ServerOrderPtrOutput) Elem() ServerOrderOutput { + return o.ApplyT(func(v *ServerOrder) ServerOrder { + if v != nil { + return *v + } + var ret ServerOrder + return ret + }).(ServerOrderOutput) +} + +func (o ServerOrderPtrOutput) Date() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerOrder) *string { + if v == nil { + return nil + } + return v.Date + }).(pulumi.StringPtrOutput) +} + +// Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) +func (o ServerOrderPtrOutput) Details() ServerOrderDetailArrayOutput { + return o.ApplyT(func(v *ServerOrder) []ServerOrderDetail { + if v == nil { + return nil + } + return v.Details + }).(ServerOrderDetailArrayOutput) +} + +func (o ServerOrderPtrOutput) ExpirationDate() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServerOrder) *string { + if v == nil { + return nil + } + return v.ExpirationDate + }).(pulumi.StringPtrOutput) +} + +func (o ServerOrderPtrOutput) OrderId() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *ServerOrder) *float64 { + if v == nil { + return nil + } + return v.OrderId + }).(pulumi.Float64PtrOutput) +} + +type ServerOrderDetail struct { + Description *string `pulumi:"description"` + // Product type of item in order + DetailType *string `pulumi:"detailType"` + Domain *string `pulumi:"domain"` + OrderDetailId *float64 `pulumi:"orderDetailId"` + Quantity *string `pulumi:"quantity"` +} + +// ServerOrderDetailInput is an input type that accepts ServerOrderDetailArgs and ServerOrderDetailOutput values. +// You can construct a concrete instance of `ServerOrderDetailInput` via: +// +// ServerOrderDetailArgs{...} +type ServerOrderDetailInput interface { + pulumi.Input + + ToServerOrderDetailOutput() ServerOrderDetailOutput + ToServerOrderDetailOutputWithContext(context.Context) ServerOrderDetailOutput +} + +type ServerOrderDetailArgs struct { + Description pulumi.StringPtrInput `pulumi:"description"` + // Product type of item in order + DetailType pulumi.StringPtrInput `pulumi:"detailType"` + Domain pulumi.StringPtrInput `pulumi:"domain"` + OrderDetailId pulumi.Float64PtrInput `pulumi:"orderDetailId"` + Quantity pulumi.StringPtrInput `pulumi:"quantity"` +} + +func (ServerOrderDetailArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerOrderDetail)(nil)).Elem() +} + +func (i ServerOrderDetailArgs) ToServerOrderDetailOutput() ServerOrderDetailOutput { + return i.ToServerOrderDetailOutputWithContext(context.Background()) +} + +func (i ServerOrderDetailArgs) ToServerOrderDetailOutputWithContext(ctx context.Context) ServerOrderDetailOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerOrderDetailOutput) +} + +// ServerOrderDetailArrayInput is an input type that accepts ServerOrderDetailArray and ServerOrderDetailArrayOutput values. +// You can construct a concrete instance of `ServerOrderDetailArrayInput` via: +// +// ServerOrderDetailArray{ ServerOrderDetailArgs{...} } +type ServerOrderDetailArrayInput interface { + pulumi.Input + + ToServerOrderDetailArrayOutput() ServerOrderDetailArrayOutput + ToServerOrderDetailArrayOutputWithContext(context.Context) ServerOrderDetailArrayOutput +} + +type ServerOrderDetailArray []ServerOrderDetailInput + +func (ServerOrderDetailArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerOrderDetail)(nil)).Elem() +} + +func (i ServerOrderDetailArray) ToServerOrderDetailArrayOutput() ServerOrderDetailArrayOutput { + return i.ToServerOrderDetailArrayOutputWithContext(context.Background()) +} + +func (i ServerOrderDetailArray) ToServerOrderDetailArrayOutputWithContext(ctx context.Context) ServerOrderDetailArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerOrderDetailArrayOutput) +} + +type ServerOrderDetailOutput struct{ *pulumi.OutputState } + +func (ServerOrderDetailOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerOrderDetail)(nil)).Elem() +} + +func (o ServerOrderDetailOutput) ToServerOrderDetailOutput() ServerOrderDetailOutput { + return o +} + +func (o ServerOrderDetailOutput) ToServerOrderDetailOutputWithContext(ctx context.Context) ServerOrderDetailOutput { + return o +} + +func (o ServerOrderDetailOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerOrderDetail) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// Product type of item in order +func (o ServerOrderDetailOutput) DetailType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerOrderDetail) *string { return v.DetailType }).(pulumi.StringPtrOutput) +} + +func (o ServerOrderDetailOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerOrderDetail) *string { return v.Domain }).(pulumi.StringPtrOutput) +} + +func (o ServerOrderDetailOutput) OrderDetailId() pulumi.Float64PtrOutput { + return o.ApplyT(func(v ServerOrderDetail) *float64 { return v.OrderDetailId }).(pulumi.Float64PtrOutput) +} + +func (o ServerOrderDetailOutput) Quantity() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerOrderDetail) *string { return v.Quantity }).(pulumi.StringPtrOutput) +} + +type ServerOrderDetailArrayOutput struct{ *pulumi.OutputState } + +func (ServerOrderDetailArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerOrderDetail)(nil)).Elem() +} + +func (o ServerOrderDetailArrayOutput) ToServerOrderDetailArrayOutput() ServerOrderDetailArrayOutput { + return o +} + +func (o ServerOrderDetailArrayOutput) ToServerOrderDetailArrayOutputWithContext(ctx context.Context) ServerOrderDetailArrayOutput { + return o +} + +func (o ServerOrderDetailArrayOutput) Index(i pulumi.IntInput) ServerOrderDetailOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServerOrderDetail { + return vs[0].([]ServerOrderDetail)[vs[1].(int)] + }).(ServerOrderDetailOutput) +} + +type ServerPlan struct { + Configurations []ServerPlanConfiguration `pulumi:"configurations"` + // Duration selected for the purchase of the product + Duration string `pulumi:"duration"` + // Cart item to be linked + ItemId *float64 `pulumi:"itemId"` + // Identifier of the option offer + PlanCode string `pulumi:"planCode"` + // Pricing mode selected for the purchase of the product + PricingMode string `pulumi:"pricingMode"` + // Quantity of product desired + Quantity *float64 `pulumi:"quantity"` +} + +// ServerPlanInput is an input type that accepts ServerPlanArgs and ServerPlanOutput values. +// You can construct a concrete instance of `ServerPlanInput` via: +// +// ServerPlanArgs{...} +type ServerPlanInput interface { + pulumi.Input + + ToServerPlanOutput() ServerPlanOutput + ToServerPlanOutputWithContext(context.Context) ServerPlanOutput +} + +type ServerPlanArgs struct { + Configurations ServerPlanConfigurationArrayInput `pulumi:"configurations"` + // Duration selected for the purchase of the product + Duration pulumi.StringInput `pulumi:"duration"` + // Cart item to be linked + ItemId pulumi.Float64PtrInput `pulumi:"itemId"` + // Identifier of the option offer + PlanCode pulumi.StringInput `pulumi:"planCode"` + // Pricing mode selected for the purchase of the product + PricingMode pulumi.StringInput `pulumi:"pricingMode"` + // Quantity of product desired + Quantity pulumi.Float64PtrInput `pulumi:"quantity"` +} + +func (ServerPlanArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerPlan)(nil)).Elem() +} + +func (i ServerPlanArgs) ToServerPlanOutput() ServerPlanOutput { + return i.ToServerPlanOutputWithContext(context.Background()) +} + +func (i ServerPlanArgs) ToServerPlanOutputWithContext(ctx context.Context) ServerPlanOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerPlanOutput) +} + +// ServerPlanArrayInput is an input type that accepts ServerPlanArray and ServerPlanArrayOutput values. +// You can construct a concrete instance of `ServerPlanArrayInput` via: +// +// ServerPlanArray{ ServerPlanArgs{...} } +type ServerPlanArrayInput interface { + pulumi.Input + + ToServerPlanArrayOutput() ServerPlanArrayOutput + ToServerPlanArrayOutputWithContext(context.Context) ServerPlanArrayOutput +} + +type ServerPlanArray []ServerPlanInput + +func (ServerPlanArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerPlan)(nil)).Elem() +} + +func (i ServerPlanArray) ToServerPlanArrayOutput() ServerPlanArrayOutput { + return i.ToServerPlanArrayOutputWithContext(context.Background()) +} + +func (i ServerPlanArray) ToServerPlanArrayOutputWithContext(ctx context.Context) ServerPlanArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerPlanArrayOutput) +} + +type ServerPlanOutput struct{ *pulumi.OutputState } + +func (ServerPlanOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerPlan)(nil)).Elem() +} + +func (o ServerPlanOutput) ToServerPlanOutput() ServerPlanOutput { + return o +} + +func (o ServerPlanOutput) ToServerPlanOutputWithContext(ctx context.Context) ServerPlanOutput { + return o +} + +func (o ServerPlanOutput) Configurations() ServerPlanConfigurationArrayOutput { + return o.ApplyT(func(v ServerPlan) []ServerPlanConfiguration { return v.Configurations }).(ServerPlanConfigurationArrayOutput) +} + +// Duration selected for the purchase of the product +func (o ServerPlanOutput) Duration() pulumi.StringOutput { + return o.ApplyT(func(v ServerPlan) string { return v.Duration }).(pulumi.StringOutput) +} + +// Cart item to be linked +func (o ServerPlanOutput) ItemId() pulumi.Float64PtrOutput { + return o.ApplyT(func(v ServerPlan) *float64 { return v.ItemId }).(pulumi.Float64PtrOutput) +} + +// Identifier of the option offer +func (o ServerPlanOutput) PlanCode() pulumi.StringOutput { + return o.ApplyT(func(v ServerPlan) string { return v.PlanCode }).(pulumi.StringOutput) +} + +// Pricing mode selected for the purchase of the product +func (o ServerPlanOutput) PricingMode() pulumi.StringOutput { + return o.ApplyT(func(v ServerPlan) string { return v.PricingMode }).(pulumi.StringOutput) +} + +// Quantity of product desired +func (o ServerPlanOutput) Quantity() pulumi.Float64PtrOutput { + return o.ApplyT(func(v ServerPlan) *float64 { return v.Quantity }).(pulumi.Float64PtrOutput) +} + +type ServerPlanArrayOutput struct{ *pulumi.OutputState } + +func (ServerPlanArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerPlan)(nil)).Elem() +} + +func (o ServerPlanArrayOutput) ToServerPlanArrayOutput() ServerPlanArrayOutput { + return o +} + +func (o ServerPlanArrayOutput) ToServerPlanArrayOutputWithContext(ctx context.Context) ServerPlanArrayOutput { + return o +} + +func (o ServerPlanArrayOutput) Index(i pulumi.IntInput) ServerPlanOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServerPlan { + return vs[0].([]ServerPlan)[vs[1].(int)] + }).(ServerPlanOutput) +} + +type ServerPlanConfiguration struct { + // Label for your configuration item + Label string `pulumi:"label"` + // Value or resource URL on API.OVH.COM of your configuration item + Value string `pulumi:"value"` +} + +// ServerPlanConfigurationInput is an input type that accepts ServerPlanConfigurationArgs and ServerPlanConfigurationOutput values. +// You can construct a concrete instance of `ServerPlanConfigurationInput` via: +// +// ServerPlanConfigurationArgs{...} +type ServerPlanConfigurationInput interface { + pulumi.Input + + ToServerPlanConfigurationOutput() ServerPlanConfigurationOutput + ToServerPlanConfigurationOutputWithContext(context.Context) ServerPlanConfigurationOutput +} + +type ServerPlanConfigurationArgs struct { + // Label for your configuration item + Label pulumi.StringInput `pulumi:"label"` + // Value or resource URL on API.OVH.COM of your configuration item + Value pulumi.StringInput `pulumi:"value"` +} + +func (ServerPlanConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerPlanConfiguration)(nil)).Elem() +} + +func (i ServerPlanConfigurationArgs) ToServerPlanConfigurationOutput() ServerPlanConfigurationOutput { + return i.ToServerPlanConfigurationOutputWithContext(context.Background()) +} + +func (i ServerPlanConfigurationArgs) ToServerPlanConfigurationOutputWithContext(ctx context.Context) ServerPlanConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerPlanConfigurationOutput) +} + +// ServerPlanConfigurationArrayInput is an input type that accepts ServerPlanConfigurationArray and ServerPlanConfigurationArrayOutput values. +// You can construct a concrete instance of `ServerPlanConfigurationArrayInput` via: +// +// ServerPlanConfigurationArray{ ServerPlanConfigurationArgs{...} } +type ServerPlanConfigurationArrayInput interface { + pulumi.Input + + ToServerPlanConfigurationArrayOutput() ServerPlanConfigurationArrayOutput + ToServerPlanConfigurationArrayOutputWithContext(context.Context) ServerPlanConfigurationArrayOutput +} + +type ServerPlanConfigurationArray []ServerPlanConfigurationInput + +func (ServerPlanConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerPlanConfiguration)(nil)).Elem() +} + +func (i ServerPlanConfigurationArray) ToServerPlanConfigurationArrayOutput() ServerPlanConfigurationArrayOutput { + return i.ToServerPlanConfigurationArrayOutputWithContext(context.Background()) +} + +func (i ServerPlanConfigurationArray) ToServerPlanConfigurationArrayOutputWithContext(ctx context.Context) ServerPlanConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerPlanConfigurationArrayOutput) +} + +type ServerPlanConfigurationOutput struct{ *pulumi.OutputState } + +func (ServerPlanConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerPlanConfiguration)(nil)).Elem() +} + +func (o ServerPlanConfigurationOutput) ToServerPlanConfigurationOutput() ServerPlanConfigurationOutput { + return o +} + +func (o ServerPlanConfigurationOutput) ToServerPlanConfigurationOutputWithContext(ctx context.Context) ServerPlanConfigurationOutput { + return o +} + +// Label for your configuration item +func (o ServerPlanConfigurationOutput) Label() pulumi.StringOutput { + return o.ApplyT(func(v ServerPlanConfiguration) string { return v.Label }).(pulumi.StringOutput) +} + +// Value or resource URL on API.OVH.COM of your configuration item +func (o ServerPlanConfigurationOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ServerPlanConfiguration) string { return v.Value }).(pulumi.StringOutput) +} + +type ServerPlanConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (ServerPlanConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerPlanConfiguration)(nil)).Elem() +} + +func (o ServerPlanConfigurationArrayOutput) ToServerPlanConfigurationArrayOutput() ServerPlanConfigurationArrayOutput { + return o +} + +func (o ServerPlanConfigurationArrayOutput) ToServerPlanConfigurationArrayOutputWithContext(ctx context.Context) ServerPlanConfigurationArrayOutput { + return o +} + +func (o ServerPlanConfigurationArrayOutput) Index(i pulumi.IntInput) ServerPlanConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServerPlanConfiguration { + return vs[0].([]ServerPlanConfiguration)[vs[1].(int)] + }).(ServerPlanConfigurationOutput) +} + +type ServerPlanOption struct { + Configurations []ServerPlanOptionConfiguration `pulumi:"configurations"` + // Duration selected for the purchase of the product + Duration string `pulumi:"duration"` + // Identifier of the option offer + PlanCode string `pulumi:"planCode"` + // Pricing mode selected for the purchase of the product + PricingMode string `pulumi:"pricingMode"` + // Quantity of product desired + Quantity float64 `pulumi:"quantity"` +} + +// ServerPlanOptionInput is an input type that accepts ServerPlanOptionArgs and ServerPlanOptionOutput values. +// You can construct a concrete instance of `ServerPlanOptionInput` via: +// +// ServerPlanOptionArgs{...} +type ServerPlanOptionInput interface { + pulumi.Input + + ToServerPlanOptionOutput() ServerPlanOptionOutput + ToServerPlanOptionOutputWithContext(context.Context) ServerPlanOptionOutput +} + +type ServerPlanOptionArgs struct { + Configurations ServerPlanOptionConfigurationArrayInput `pulumi:"configurations"` + // Duration selected for the purchase of the product + Duration pulumi.StringInput `pulumi:"duration"` + // Identifier of the option offer + PlanCode pulumi.StringInput `pulumi:"planCode"` + // Pricing mode selected for the purchase of the product + PricingMode pulumi.StringInput `pulumi:"pricingMode"` + // Quantity of product desired + Quantity pulumi.Float64Input `pulumi:"quantity"` +} + +func (ServerPlanOptionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerPlanOption)(nil)).Elem() +} + +func (i ServerPlanOptionArgs) ToServerPlanOptionOutput() ServerPlanOptionOutput { + return i.ToServerPlanOptionOutputWithContext(context.Background()) +} + +func (i ServerPlanOptionArgs) ToServerPlanOptionOutputWithContext(ctx context.Context) ServerPlanOptionOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerPlanOptionOutput) +} + +// ServerPlanOptionArrayInput is an input type that accepts ServerPlanOptionArray and ServerPlanOptionArrayOutput values. +// You can construct a concrete instance of `ServerPlanOptionArrayInput` via: +// +// ServerPlanOptionArray{ ServerPlanOptionArgs{...} } +type ServerPlanOptionArrayInput interface { + pulumi.Input + + ToServerPlanOptionArrayOutput() ServerPlanOptionArrayOutput + ToServerPlanOptionArrayOutputWithContext(context.Context) ServerPlanOptionArrayOutput +} + +type ServerPlanOptionArray []ServerPlanOptionInput + +func (ServerPlanOptionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerPlanOption)(nil)).Elem() +} + +func (i ServerPlanOptionArray) ToServerPlanOptionArrayOutput() ServerPlanOptionArrayOutput { + return i.ToServerPlanOptionArrayOutputWithContext(context.Background()) +} + +func (i ServerPlanOptionArray) ToServerPlanOptionArrayOutputWithContext(ctx context.Context) ServerPlanOptionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerPlanOptionArrayOutput) +} + +type ServerPlanOptionOutput struct{ *pulumi.OutputState } + +func (ServerPlanOptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerPlanOption)(nil)).Elem() +} + +func (o ServerPlanOptionOutput) ToServerPlanOptionOutput() ServerPlanOptionOutput { + return o +} + +func (o ServerPlanOptionOutput) ToServerPlanOptionOutputWithContext(ctx context.Context) ServerPlanOptionOutput { + return o +} + +func (o ServerPlanOptionOutput) Configurations() ServerPlanOptionConfigurationArrayOutput { + return o.ApplyT(func(v ServerPlanOption) []ServerPlanOptionConfiguration { return v.Configurations }).(ServerPlanOptionConfigurationArrayOutput) +} + +// Duration selected for the purchase of the product +func (o ServerPlanOptionOutput) Duration() pulumi.StringOutput { + return o.ApplyT(func(v ServerPlanOption) string { return v.Duration }).(pulumi.StringOutput) +} + +// Identifier of the option offer +func (o ServerPlanOptionOutput) PlanCode() pulumi.StringOutput { + return o.ApplyT(func(v ServerPlanOption) string { return v.PlanCode }).(pulumi.StringOutput) +} + +// Pricing mode selected for the purchase of the product +func (o ServerPlanOptionOutput) PricingMode() pulumi.StringOutput { + return o.ApplyT(func(v ServerPlanOption) string { return v.PricingMode }).(pulumi.StringOutput) +} + +// Quantity of product desired +func (o ServerPlanOptionOutput) Quantity() pulumi.Float64Output { + return o.ApplyT(func(v ServerPlanOption) float64 { return v.Quantity }).(pulumi.Float64Output) +} + +type ServerPlanOptionArrayOutput struct{ *pulumi.OutputState } + +func (ServerPlanOptionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerPlanOption)(nil)).Elem() +} + +func (o ServerPlanOptionArrayOutput) ToServerPlanOptionArrayOutput() ServerPlanOptionArrayOutput { + return o +} + +func (o ServerPlanOptionArrayOutput) ToServerPlanOptionArrayOutputWithContext(ctx context.Context) ServerPlanOptionArrayOutput { + return o +} + +func (o ServerPlanOptionArrayOutput) Index(i pulumi.IntInput) ServerPlanOptionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServerPlanOption { + return vs[0].([]ServerPlanOption)[vs[1].(int)] + }).(ServerPlanOptionOutput) +} + +type ServerPlanOptionConfiguration struct { + // Label for your configuration item + Label string `pulumi:"label"` + // Value or resource URL on API.OVH.COM of your configuration item + Value string `pulumi:"value"` +} + +// ServerPlanOptionConfigurationInput is an input type that accepts ServerPlanOptionConfigurationArgs and ServerPlanOptionConfigurationOutput values. +// You can construct a concrete instance of `ServerPlanOptionConfigurationInput` via: +// +// ServerPlanOptionConfigurationArgs{...} +type ServerPlanOptionConfigurationInput interface { + pulumi.Input + + ToServerPlanOptionConfigurationOutput() ServerPlanOptionConfigurationOutput + ToServerPlanOptionConfigurationOutputWithContext(context.Context) ServerPlanOptionConfigurationOutput +} + +type ServerPlanOptionConfigurationArgs struct { + // Label for your configuration item + Label pulumi.StringInput `pulumi:"label"` + // Value or resource URL on API.OVH.COM of your configuration item + Value pulumi.StringInput `pulumi:"value"` +} + +func (ServerPlanOptionConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerPlanOptionConfiguration)(nil)).Elem() +} + +func (i ServerPlanOptionConfigurationArgs) ToServerPlanOptionConfigurationOutput() ServerPlanOptionConfigurationOutput { + return i.ToServerPlanOptionConfigurationOutputWithContext(context.Background()) +} + +func (i ServerPlanOptionConfigurationArgs) ToServerPlanOptionConfigurationOutputWithContext(ctx context.Context) ServerPlanOptionConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerPlanOptionConfigurationOutput) +} + +// ServerPlanOptionConfigurationArrayInput is an input type that accepts ServerPlanOptionConfigurationArray and ServerPlanOptionConfigurationArrayOutput values. +// You can construct a concrete instance of `ServerPlanOptionConfigurationArrayInput` via: +// +// ServerPlanOptionConfigurationArray{ ServerPlanOptionConfigurationArgs{...} } +type ServerPlanOptionConfigurationArrayInput interface { + pulumi.Input + + ToServerPlanOptionConfigurationArrayOutput() ServerPlanOptionConfigurationArrayOutput + ToServerPlanOptionConfigurationArrayOutputWithContext(context.Context) ServerPlanOptionConfigurationArrayOutput +} + +type ServerPlanOptionConfigurationArray []ServerPlanOptionConfigurationInput + +func (ServerPlanOptionConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerPlanOptionConfiguration)(nil)).Elem() +} + +func (i ServerPlanOptionConfigurationArray) ToServerPlanOptionConfigurationArrayOutput() ServerPlanOptionConfigurationArrayOutput { + return i.ToServerPlanOptionConfigurationArrayOutputWithContext(context.Background()) +} + +func (i ServerPlanOptionConfigurationArray) ToServerPlanOptionConfigurationArrayOutputWithContext(ctx context.Context) ServerPlanOptionConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerPlanOptionConfigurationArrayOutput) +} + +type ServerPlanOptionConfigurationOutput struct{ *pulumi.OutputState } + +func (ServerPlanOptionConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerPlanOptionConfiguration)(nil)).Elem() +} + +func (o ServerPlanOptionConfigurationOutput) ToServerPlanOptionConfigurationOutput() ServerPlanOptionConfigurationOutput { + return o +} + +func (o ServerPlanOptionConfigurationOutput) ToServerPlanOptionConfigurationOutputWithContext(ctx context.Context) ServerPlanOptionConfigurationOutput { + return o +} + +// Label for your configuration item +func (o ServerPlanOptionConfigurationOutput) Label() pulumi.StringOutput { + return o.ApplyT(func(v ServerPlanOptionConfiguration) string { return v.Label }).(pulumi.StringOutput) +} + +// Value or resource URL on API.OVH.COM of your configuration item +func (o ServerPlanOptionConfigurationOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v ServerPlanOptionConfiguration) string { return v.Value }).(pulumi.StringOutput) +} + +type ServerPlanOptionConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (ServerPlanOptionConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerPlanOptionConfiguration)(nil)).Elem() +} + +func (o ServerPlanOptionConfigurationArrayOutput) ToServerPlanOptionConfigurationArrayOutput() ServerPlanOptionConfigurationArrayOutput { + return o +} + +func (o ServerPlanOptionConfigurationArrayOutput) ToServerPlanOptionConfigurationArrayOutputWithContext(ctx context.Context) ServerPlanOptionConfigurationArrayOutput { + return o +} + +func (o ServerPlanOptionConfigurationArrayOutput) Index(i pulumi.IntInput) ServerPlanOptionConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServerPlanOptionConfiguration { + return vs[0].([]ServerPlanOptionConfiguration)[vs[1].(int)] + }).(ServerPlanOptionConfigurationOutput) +} + +type ServerUserMetadata struct { + Key *string `pulumi:"key"` + Value *string `pulumi:"value"` +} + +// ServerUserMetadataInput is an input type that accepts ServerUserMetadataArgs and ServerUserMetadataOutput values. +// You can construct a concrete instance of `ServerUserMetadataInput` via: +// +// ServerUserMetadataArgs{...} +type ServerUserMetadataInput interface { + pulumi.Input + + ToServerUserMetadataOutput() ServerUserMetadataOutput + ToServerUserMetadataOutputWithContext(context.Context) ServerUserMetadataOutput +} + +type ServerUserMetadataArgs struct { + Key pulumi.StringPtrInput `pulumi:"key"` + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (ServerUserMetadataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServerUserMetadata)(nil)).Elem() +} + +func (i ServerUserMetadataArgs) ToServerUserMetadataOutput() ServerUserMetadataOutput { + return i.ToServerUserMetadataOutputWithContext(context.Background()) +} + +func (i ServerUserMetadataArgs) ToServerUserMetadataOutputWithContext(ctx context.Context) ServerUserMetadataOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerUserMetadataOutput) +} + +// ServerUserMetadataArrayInput is an input type that accepts ServerUserMetadataArray and ServerUserMetadataArrayOutput values. +// You can construct a concrete instance of `ServerUserMetadataArrayInput` via: +// +// ServerUserMetadataArray{ ServerUserMetadataArgs{...} } +type ServerUserMetadataArrayInput interface { + pulumi.Input + + ToServerUserMetadataArrayOutput() ServerUserMetadataArrayOutput + ToServerUserMetadataArrayOutputWithContext(context.Context) ServerUserMetadataArrayOutput +} + +type ServerUserMetadataArray []ServerUserMetadataInput + +func (ServerUserMetadataArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerUserMetadata)(nil)).Elem() +} + +func (i ServerUserMetadataArray) ToServerUserMetadataArrayOutput() ServerUserMetadataArrayOutput { + return i.ToServerUserMetadataArrayOutputWithContext(context.Background()) +} + +func (i ServerUserMetadataArray) ToServerUserMetadataArrayOutputWithContext(ctx context.Context) ServerUserMetadataArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerUserMetadataArrayOutput) +} + +type ServerUserMetadataOutput struct{ *pulumi.OutputState } + +func (ServerUserMetadataOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServerUserMetadata)(nil)).Elem() +} + +func (o ServerUserMetadataOutput) ToServerUserMetadataOutput() ServerUserMetadataOutput { + return o +} + +func (o ServerUserMetadataOutput) ToServerUserMetadataOutputWithContext(ctx context.Context) ServerUserMetadataOutput { + return o +} + +func (o ServerUserMetadataOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerUserMetadata) *string { return v.Key }).(pulumi.StringPtrOutput) +} + +func (o ServerUserMetadataOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServerUserMetadata) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type ServerUserMetadataArrayOutput struct{ *pulumi.OutputState } + +func (ServerUserMetadataArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServerUserMetadata)(nil)).Elem() +} + +func (o ServerUserMetadataArrayOutput) ToServerUserMetadataArrayOutput() ServerUserMetadataArrayOutput { + return o +} + +func (o ServerUserMetadataArrayOutput) ToServerUserMetadataArrayOutputWithContext(ctx context.Context) ServerUserMetadataArrayOutput { + return o +} + +func (o ServerUserMetadataArrayOutput) Index(i pulumi.IntInput) ServerUserMetadataOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServerUserMetadata { + return vs[0].([]ServerUserMetadata)[vs[1].(int)] + }).(ServerUserMetadataOutput) +} + type GetServerSpecificationsHardwareDefaultHardwareRaidSize struct { Unit string `pulumi:"unit"` Value float64 `pulumi:"value"` @@ -2405,12 +3639,30 @@ func (o GetServerSpecificationsNetworkVrackBandwidthOutput) Value() pulumi.Float } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ServerDetailsInput)(nil)).Elem(), ServerDetailsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerDetailsPtrInput)(nil)).Elem(), ServerDetailsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerIamInput)(nil)).Elem(), ServerIamArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerIamPtrInput)(nil)).Elem(), ServerIamArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerInstallTaskDetailsInput)(nil)).Elem(), ServerInstallTaskDetailsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerInstallTaskDetailsPtrInput)(nil)).Elem(), ServerInstallTaskDetailsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerInstallTaskUserMetadataInput)(nil)).Elem(), ServerInstallTaskUserMetadataArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerInstallTaskUserMetadataArrayInput)(nil)).Elem(), ServerInstallTaskUserMetadataArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerNetworkingInterfaceInput)(nil)).Elem(), ServerNetworkingInterfaceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ServerNetworkingInterfaceArrayInput)(nil)).Elem(), ServerNetworkingInterfaceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerOrderInput)(nil)).Elem(), ServerOrderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerOrderPtrInput)(nil)).Elem(), ServerOrderArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerOrderDetailInput)(nil)).Elem(), ServerOrderDetailArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerOrderDetailArrayInput)(nil)).Elem(), ServerOrderDetailArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerPlanInput)(nil)).Elem(), ServerPlanArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerPlanArrayInput)(nil)).Elem(), ServerPlanArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerPlanConfigurationInput)(nil)).Elem(), ServerPlanConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerPlanConfigurationArrayInput)(nil)).Elem(), ServerPlanConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerPlanOptionInput)(nil)).Elem(), ServerPlanOptionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerPlanOptionArrayInput)(nil)).Elem(), ServerPlanOptionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerPlanOptionConfigurationInput)(nil)).Elem(), ServerPlanOptionConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerPlanOptionConfigurationArrayInput)(nil)).Elem(), ServerPlanOptionConfigurationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerUserMetadataInput)(nil)).Elem(), ServerUserMetadataArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerUserMetadataArrayInput)(nil)).Elem(), ServerUserMetadataArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareDefaultHardwareRaidSizeInput)(nil)).Elem(), GetServerSpecificationsHardwareDefaultHardwareRaidSizeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroupInput)(nil)).Elem(), GetServerSpecificationsHardwareDiskGroupArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsHardwareDiskGroupArrayInput)(nil)).Elem(), GetServerSpecificationsHardwareDiskGroupArray{}) @@ -2443,12 +3695,30 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkVmacInput)(nil)).Elem(), GetServerSpecificationsNetworkVmacArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkVrackInput)(nil)).Elem(), GetServerSpecificationsNetworkVrackArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetServerSpecificationsNetworkVrackBandwidthInput)(nil)).Elem(), GetServerSpecificationsNetworkVrackBandwidthArgs{}) + pulumi.RegisterOutputType(ServerDetailsOutput{}) + pulumi.RegisterOutputType(ServerDetailsPtrOutput{}) + pulumi.RegisterOutputType(ServerIamOutput{}) + pulumi.RegisterOutputType(ServerIamPtrOutput{}) pulumi.RegisterOutputType(ServerInstallTaskDetailsOutput{}) pulumi.RegisterOutputType(ServerInstallTaskDetailsPtrOutput{}) pulumi.RegisterOutputType(ServerInstallTaskUserMetadataOutput{}) pulumi.RegisterOutputType(ServerInstallTaskUserMetadataArrayOutput{}) pulumi.RegisterOutputType(ServerNetworkingInterfaceOutput{}) pulumi.RegisterOutputType(ServerNetworkingInterfaceArrayOutput{}) + pulumi.RegisterOutputType(ServerOrderOutput{}) + pulumi.RegisterOutputType(ServerOrderPtrOutput{}) + pulumi.RegisterOutputType(ServerOrderDetailOutput{}) + pulumi.RegisterOutputType(ServerOrderDetailArrayOutput{}) + pulumi.RegisterOutputType(ServerPlanOutput{}) + pulumi.RegisterOutputType(ServerPlanArrayOutput{}) + pulumi.RegisterOutputType(ServerPlanConfigurationOutput{}) + pulumi.RegisterOutputType(ServerPlanConfigurationArrayOutput{}) + pulumi.RegisterOutputType(ServerPlanOptionOutput{}) + pulumi.RegisterOutputType(ServerPlanOptionArrayOutput{}) + pulumi.RegisterOutputType(ServerPlanOptionConfigurationOutput{}) + pulumi.RegisterOutputType(ServerPlanOptionConfigurationArrayOutput{}) + pulumi.RegisterOutputType(ServerUserMetadataOutput{}) + pulumi.RegisterOutputType(ServerUserMetadataArrayOutput{}) pulumi.RegisterOutputType(GetServerSpecificationsHardwareDefaultHardwareRaidSizeOutput{}) pulumi.RegisterOutputType(GetServerSpecificationsHardwareDiskGroupOutput{}) pulumi.RegisterOutputType(GetServerSpecificationsHardwareDiskGroupArrayOutput{}) diff --git a/sdk/go/ovh/dedicated/server.go b/sdk/go/ovh/dedicated/server.go new file mode 100644 index 00000000..b358e28c --- /dev/null +++ b/sdk/go/ovh/dedicated/server.go @@ -0,0 +1,634 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dedicated + +import ( + "context" + "reflect" + + "errors" + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Import +// +// Dedicated servers can be imported using the `service_name`, e.g.: +// +// bash +// +// ```sh +// $ pulumi import ovh:Dedicated/server:Server server service_name +// ``` +type Server struct { + pulumi.CustomResourceState + + // Dedicated AZ localisation + AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"` + // Boot id of the server + BootId pulumi.Float64Output `pulumi:"bootId"` + // Boot script of the server + BootScript pulumi.StringOutput `pulumi:"bootScript"` + // Dedicated server commercial range + CommercialRange pulumi.StringOutput `pulumi:"commercialRange"` + // Dedicated datacenter localisation (bhs1,bhs2,...) + Datacenter pulumi.StringOutput `pulumi:"datacenter"` + // A structure describing informations about installation custom + Details ServerDetailsPtrOutput `pulumi:"details"` + // Resource display name + DisplayName pulumi.StringOutput `pulumi:"displayName"` + // IAM resource information + Iam ServerIamOutput `pulumi:"iam"` + // Dedicated server ip (IPv4) + Ip pulumi.StringOutput `pulumi:"ip"` + // Link speed of the server + LinkSpeed pulumi.Float64Output `pulumi:"linkSpeed"` + // Icmp monitoring state + Monitoring pulumi.BoolOutput `pulumi:"monitoring"` + // Dedicated server name + Name pulumi.StringOutput `pulumi:"name"` + NewUpgradeSystem pulumi.BoolOutput `pulumi:"newUpgradeSystem"` + // Prevent datacenter intervention + NoIntervention pulumi.BoolOutput `pulumi:"noIntervention"` + // Details about an Order + Order ServerOrderOutput `pulumi:"order"` + // Operating system + Os pulumi.StringOutput `pulumi:"os"` + // OVH subsidiaries + OvhSubsidiary pulumi.StringOutput `pulumi:"ovhSubsidiary"` + // Partition scheme name + PartitionSchemeName pulumi.StringPtrOutput `pulumi:"partitionSchemeName"` + PlanOptions ServerPlanOptionArrayOutput `pulumi:"planOptions"` + Plans ServerPlanArrayOutput `pulumi:"plans"` + // Power state of the server (poweron, poweroff) + PowerState pulumi.StringOutput `pulumi:"powerState"` + // Does this server have professional use option + ProfessionalUse pulumi.BoolOutput `pulumi:"professionalUse"` + // Rack id of the server + Rack pulumi.StringOutput `pulumi:"rack"` + // Dedicated region localisation + Region pulumi.StringOutput `pulumi:"region"` + // Rescue mail of the server + RescueMail pulumi.StringOutput `pulumi:"rescueMail"` + // Public SSH Key used in the rescue mode + RescueSshKey pulumi.StringOutput `pulumi:"rescueSshKey"` + // Dedicated server reverse + Reverse pulumi.StringOutput `pulumi:"reverse"` + // Root device of the server + RootDevice pulumi.StringOutput `pulumi:"rootDevice"` + // Server id + ServerId pulumi.Float64Output `pulumi:"serverId"` + // The serviceName of your dedicated server + ServiceName pulumi.StringOutput `pulumi:"serviceName"` + // All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + State pulumi.StringOutput `pulumi:"state"` + // Dedicated server support level (critical, fastpath, gs, pro) + SupportLevel pulumi.StringOutput `pulumi:"supportLevel"` + // Template name + TemplateName pulumi.StringPtrOutput `pulumi:"templateName"` + // Metadata + UserMetadatas ServerUserMetadataArrayOutput `pulumi:"userMetadatas"` +} + +// NewServer registers a new resource with the given unique name, arguments, and options. +func NewServer(ctx *pulumi.Context, + name string, args *ServerArgs, opts ...pulumi.ResourceOption) (*Server, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.OvhSubsidiary == nil { + return nil, errors.New("invalid value for required argument 'OvhSubsidiary'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Server + err := ctx.RegisterResource("ovh:Dedicated/server:Server", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetServer gets an existing Server resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetServer(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ServerState, opts ...pulumi.ResourceOption) (*Server, error) { + var resource Server + err := ctx.ReadResource("ovh:Dedicated/server:Server", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Server resources. +type serverState struct { + // Dedicated AZ localisation + AvailabilityZone *string `pulumi:"availabilityZone"` + // Boot id of the server + BootId *float64 `pulumi:"bootId"` + // Boot script of the server + BootScript *string `pulumi:"bootScript"` + // Dedicated server commercial range + CommercialRange *string `pulumi:"commercialRange"` + // Dedicated datacenter localisation (bhs1,bhs2,...) + Datacenter *string `pulumi:"datacenter"` + // A structure describing informations about installation custom + Details *ServerDetails `pulumi:"details"` + // Resource display name + DisplayName *string `pulumi:"displayName"` + // IAM resource information + Iam *ServerIam `pulumi:"iam"` + // Dedicated server ip (IPv4) + Ip *string `pulumi:"ip"` + // Link speed of the server + LinkSpeed *float64 `pulumi:"linkSpeed"` + // Icmp monitoring state + Monitoring *bool `pulumi:"monitoring"` + // Dedicated server name + Name *string `pulumi:"name"` + NewUpgradeSystem *bool `pulumi:"newUpgradeSystem"` + // Prevent datacenter intervention + NoIntervention *bool `pulumi:"noIntervention"` + // Details about an Order + Order *ServerOrder `pulumi:"order"` + // Operating system + Os *string `pulumi:"os"` + // OVH subsidiaries + OvhSubsidiary *string `pulumi:"ovhSubsidiary"` + // Partition scheme name + PartitionSchemeName *string `pulumi:"partitionSchemeName"` + PlanOptions []ServerPlanOption `pulumi:"planOptions"` + Plans []ServerPlan `pulumi:"plans"` + // Power state of the server (poweron, poweroff) + PowerState *string `pulumi:"powerState"` + // Does this server have professional use option + ProfessionalUse *bool `pulumi:"professionalUse"` + // Rack id of the server + Rack *string `pulumi:"rack"` + // Dedicated region localisation + Region *string `pulumi:"region"` + // Rescue mail of the server + RescueMail *string `pulumi:"rescueMail"` + // Public SSH Key used in the rescue mode + RescueSshKey *string `pulumi:"rescueSshKey"` + // Dedicated server reverse + Reverse *string `pulumi:"reverse"` + // Root device of the server + RootDevice *string `pulumi:"rootDevice"` + // Server id + ServerId *float64 `pulumi:"serverId"` + // The serviceName of your dedicated server + ServiceName *string `pulumi:"serviceName"` + // All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + State *string `pulumi:"state"` + // Dedicated server support level (critical, fastpath, gs, pro) + SupportLevel *string `pulumi:"supportLevel"` + // Template name + TemplateName *string `pulumi:"templateName"` + // Metadata + UserMetadatas []ServerUserMetadata `pulumi:"userMetadatas"` +} + +type ServerState struct { + // Dedicated AZ localisation + AvailabilityZone pulumi.StringPtrInput + // Boot id of the server + BootId pulumi.Float64PtrInput + // Boot script of the server + BootScript pulumi.StringPtrInput + // Dedicated server commercial range + CommercialRange pulumi.StringPtrInput + // Dedicated datacenter localisation (bhs1,bhs2,...) + Datacenter pulumi.StringPtrInput + // A structure describing informations about installation custom + Details ServerDetailsPtrInput + // Resource display name + DisplayName pulumi.StringPtrInput + // IAM resource information + Iam ServerIamPtrInput + // Dedicated server ip (IPv4) + Ip pulumi.StringPtrInput + // Link speed of the server + LinkSpeed pulumi.Float64PtrInput + // Icmp monitoring state + Monitoring pulumi.BoolPtrInput + // Dedicated server name + Name pulumi.StringPtrInput + NewUpgradeSystem pulumi.BoolPtrInput + // Prevent datacenter intervention + NoIntervention pulumi.BoolPtrInput + // Details about an Order + Order ServerOrderPtrInput + // Operating system + Os pulumi.StringPtrInput + // OVH subsidiaries + OvhSubsidiary pulumi.StringPtrInput + // Partition scheme name + PartitionSchemeName pulumi.StringPtrInput + PlanOptions ServerPlanOptionArrayInput + Plans ServerPlanArrayInput + // Power state of the server (poweron, poweroff) + PowerState pulumi.StringPtrInput + // Does this server have professional use option + ProfessionalUse pulumi.BoolPtrInput + // Rack id of the server + Rack pulumi.StringPtrInput + // Dedicated region localisation + Region pulumi.StringPtrInput + // Rescue mail of the server + RescueMail pulumi.StringPtrInput + // Public SSH Key used in the rescue mode + RescueSshKey pulumi.StringPtrInput + // Dedicated server reverse + Reverse pulumi.StringPtrInput + // Root device of the server + RootDevice pulumi.StringPtrInput + // Server id + ServerId pulumi.Float64PtrInput + // The serviceName of your dedicated server + ServiceName pulumi.StringPtrInput + // All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + State pulumi.StringPtrInput + // Dedicated server support level (critical, fastpath, gs, pro) + SupportLevel pulumi.StringPtrInput + // Template name + TemplateName pulumi.StringPtrInput + // Metadata + UserMetadatas ServerUserMetadataArrayInput +} + +func (ServerState) ElementType() reflect.Type { + return reflect.TypeOf((*serverState)(nil)).Elem() +} + +type serverArgs struct { + // Boot id of the server + BootId *float64 `pulumi:"bootId"` + // Boot script of the server + BootScript *string `pulumi:"bootScript"` + // A structure describing informations about installation custom + Details *ServerDetails `pulumi:"details"` + // Resource display name + DisplayName *string `pulumi:"displayName"` + // Icmp monitoring state + Monitoring *bool `pulumi:"monitoring"` + // Prevent datacenter intervention + NoIntervention *bool `pulumi:"noIntervention"` + // OVH subsidiaries + OvhSubsidiary string `pulumi:"ovhSubsidiary"` + // Partition scheme name + PartitionSchemeName *string `pulumi:"partitionSchemeName"` + PlanOptions []ServerPlanOption `pulumi:"planOptions"` + Plans []ServerPlan `pulumi:"plans"` + // Rescue mail of the server + RescueMail *string `pulumi:"rescueMail"` + // Public SSH Key used in the rescue mode + RescueSshKey *string `pulumi:"rescueSshKey"` + // Root device of the server + RootDevice *string `pulumi:"rootDevice"` + // All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + State *string `pulumi:"state"` + // Template name + TemplateName *string `pulumi:"templateName"` + // Metadata + UserMetadatas []ServerUserMetadata `pulumi:"userMetadatas"` +} + +// The set of arguments for constructing a Server resource. +type ServerArgs struct { + // Boot id of the server + BootId pulumi.Float64PtrInput + // Boot script of the server + BootScript pulumi.StringPtrInput + // A structure describing informations about installation custom + Details ServerDetailsPtrInput + // Resource display name + DisplayName pulumi.StringPtrInput + // Icmp monitoring state + Monitoring pulumi.BoolPtrInput + // Prevent datacenter intervention + NoIntervention pulumi.BoolPtrInput + // OVH subsidiaries + OvhSubsidiary pulumi.StringInput + // Partition scheme name + PartitionSchemeName pulumi.StringPtrInput + PlanOptions ServerPlanOptionArrayInput + Plans ServerPlanArrayInput + // Rescue mail of the server + RescueMail pulumi.StringPtrInput + // Public SSH Key used in the rescue mode + RescueSshKey pulumi.StringPtrInput + // Root device of the server + RootDevice pulumi.StringPtrInput + // All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + State pulumi.StringPtrInput + // Template name + TemplateName pulumi.StringPtrInput + // Metadata + UserMetadatas ServerUserMetadataArrayInput +} + +func (ServerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*serverArgs)(nil)).Elem() +} + +type ServerInput interface { + pulumi.Input + + ToServerOutput() ServerOutput + ToServerOutputWithContext(ctx context.Context) ServerOutput +} + +func (*Server) ElementType() reflect.Type { + return reflect.TypeOf((**Server)(nil)).Elem() +} + +func (i *Server) ToServerOutput() ServerOutput { + return i.ToServerOutputWithContext(context.Background()) +} + +func (i *Server) ToServerOutputWithContext(ctx context.Context) ServerOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerOutput) +} + +// ServerArrayInput is an input type that accepts ServerArray and ServerArrayOutput values. +// You can construct a concrete instance of `ServerArrayInput` via: +// +// ServerArray{ ServerArgs{...} } +type ServerArrayInput interface { + pulumi.Input + + ToServerArrayOutput() ServerArrayOutput + ToServerArrayOutputWithContext(context.Context) ServerArrayOutput +} + +type ServerArray []ServerInput + +func (ServerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Server)(nil)).Elem() +} + +func (i ServerArray) ToServerArrayOutput() ServerArrayOutput { + return i.ToServerArrayOutputWithContext(context.Background()) +} + +func (i ServerArray) ToServerArrayOutputWithContext(ctx context.Context) ServerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerArrayOutput) +} + +// ServerMapInput is an input type that accepts ServerMap and ServerMapOutput values. +// You can construct a concrete instance of `ServerMapInput` via: +// +// ServerMap{ "key": ServerArgs{...} } +type ServerMapInput interface { + pulumi.Input + + ToServerMapOutput() ServerMapOutput + ToServerMapOutputWithContext(context.Context) ServerMapOutput +} + +type ServerMap map[string]ServerInput + +func (ServerMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Server)(nil)).Elem() +} + +func (i ServerMap) ToServerMapOutput() ServerMapOutput { + return i.ToServerMapOutputWithContext(context.Background()) +} + +func (i ServerMap) ToServerMapOutputWithContext(ctx context.Context) ServerMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServerMapOutput) +} + +type ServerOutput struct{ *pulumi.OutputState } + +func (ServerOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Server)(nil)).Elem() +} + +func (o ServerOutput) ToServerOutput() ServerOutput { + return o +} + +func (o ServerOutput) ToServerOutputWithContext(ctx context.Context) ServerOutput { + return o +} + +// Dedicated AZ localisation +func (o ServerOutput) AvailabilityZone() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.AvailabilityZone }).(pulumi.StringOutput) +} + +// Boot id of the server +func (o ServerOutput) BootId() pulumi.Float64Output { + return o.ApplyT(func(v *Server) pulumi.Float64Output { return v.BootId }).(pulumi.Float64Output) +} + +// Boot script of the server +func (o ServerOutput) BootScript() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.BootScript }).(pulumi.StringOutput) +} + +// Dedicated server commercial range +func (o ServerOutput) CommercialRange() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.CommercialRange }).(pulumi.StringOutput) +} + +// Dedicated datacenter localisation (bhs1,bhs2,...) +func (o ServerOutput) Datacenter() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.Datacenter }).(pulumi.StringOutput) +} + +// A structure describing informations about installation custom +func (o ServerOutput) Details() ServerDetailsPtrOutput { + return o.ApplyT(func(v *Server) ServerDetailsPtrOutput { return v.Details }).(ServerDetailsPtrOutput) +} + +// Resource display name +func (o ServerOutput) DisplayName() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) +} + +// IAM resource information +func (o ServerOutput) Iam() ServerIamOutput { + return o.ApplyT(func(v *Server) ServerIamOutput { return v.Iam }).(ServerIamOutput) +} + +// Dedicated server ip (IPv4) +func (o ServerOutput) Ip() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.Ip }).(pulumi.StringOutput) +} + +// Link speed of the server +func (o ServerOutput) LinkSpeed() pulumi.Float64Output { + return o.ApplyT(func(v *Server) pulumi.Float64Output { return v.LinkSpeed }).(pulumi.Float64Output) +} + +// Icmp monitoring state +func (o ServerOutput) Monitoring() pulumi.BoolOutput { + return o.ApplyT(func(v *Server) pulumi.BoolOutput { return v.Monitoring }).(pulumi.BoolOutput) +} + +// Dedicated server name +func (o ServerOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func (o ServerOutput) NewUpgradeSystem() pulumi.BoolOutput { + return o.ApplyT(func(v *Server) pulumi.BoolOutput { return v.NewUpgradeSystem }).(pulumi.BoolOutput) +} + +// Prevent datacenter intervention +func (o ServerOutput) NoIntervention() pulumi.BoolOutput { + return o.ApplyT(func(v *Server) pulumi.BoolOutput { return v.NoIntervention }).(pulumi.BoolOutput) +} + +// Details about an Order +func (o ServerOutput) Order() ServerOrderOutput { + return o.ApplyT(func(v *Server) ServerOrderOutput { return v.Order }).(ServerOrderOutput) +} + +// Operating system +func (o ServerOutput) Os() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.Os }).(pulumi.StringOutput) +} + +// OVH subsidiaries +func (o ServerOutput) OvhSubsidiary() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.OvhSubsidiary }).(pulumi.StringOutput) +} + +// Partition scheme name +func (o ServerOutput) PartitionSchemeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.PartitionSchemeName }).(pulumi.StringPtrOutput) +} + +func (o ServerOutput) PlanOptions() ServerPlanOptionArrayOutput { + return o.ApplyT(func(v *Server) ServerPlanOptionArrayOutput { return v.PlanOptions }).(ServerPlanOptionArrayOutput) +} + +func (o ServerOutput) Plans() ServerPlanArrayOutput { + return o.ApplyT(func(v *Server) ServerPlanArrayOutput { return v.Plans }).(ServerPlanArrayOutput) +} + +// Power state of the server (poweron, poweroff) +func (o ServerOutput) PowerState() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.PowerState }).(pulumi.StringOutput) +} + +// Does this server have professional use option +func (o ServerOutput) ProfessionalUse() pulumi.BoolOutput { + return o.ApplyT(func(v *Server) pulumi.BoolOutput { return v.ProfessionalUse }).(pulumi.BoolOutput) +} + +// Rack id of the server +func (o ServerOutput) Rack() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.Rack }).(pulumi.StringOutput) +} + +// Dedicated region localisation +func (o ServerOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// Rescue mail of the server +func (o ServerOutput) RescueMail() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.RescueMail }).(pulumi.StringOutput) +} + +// Public SSH Key used in the rescue mode +func (o ServerOutput) RescueSshKey() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.RescueSshKey }).(pulumi.StringOutput) +} + +// Dedicated server reverse +func (o ServerOutput) Reverse() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.Reverse }).(pulumi.StringOutput) +} + +// Root device of the server +func (o ServerOutput) RootDevice() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.RootDevice }).(pulumi.StringOutput) +} + +// Server id +func (o ServerOutput) ServerId() pulumi.Float64Output { + return o.ApplyT(func(v *Server) pulumi.Float64Output { return v.ServerId }).(pulumi.Float64Output) +} + +// The serviceName of your dedicated server +func (o ServerOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.ServiceName }).(pulumi.StringOutput) +} + +// All states a Dedicated can be in (error, hacked, hackedBlocked, ok) +func (o ServerOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) +} + +// Dedicated server support level (critical, fastpath, gs, pro) +func (o ServerOutput) SupportLevel() pulumi.StringOutput { + return o.ApplyT(func(v *Server) pulumi.StringOutput { return v.SupportLevel }).(pulumi.StringOutput) +} + +// Template name +func (o ServerOutput) TemplateName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Server) pulumi.StringPtrOutput { return v.TemplateName }).(pulumi.StringPtrOutput) +} + +// Metadata +func (o ServerOutput) UserMetadatas() ServerUserMetadataArrayOutput { + return o.ApplyT(func(v *Server) ServerUserMetadataArrayOutput { return v.UserMetadatas }).(ServerUserMetadataArrayOutput) +} + +type ServerArrayOutput struct{ *pulumi.OutputState } + +func (ServerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Server)(nil)).Elem() +} + +func (o ServerArrayOutput) ToServerArrayOutput() ServerArrayOutput { + return o +} + +func (o ServerArrayOutput) ToServerArrayOutputWithContext(ctx context.Context) ServerArrayOutput { + return o +} + +func (o ServerArrayOutput) Index(i pulumi.IntInput) ServerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Server { + return vs[0].([]*Server)[vs[1].(int)] + }).(ServerOutput) +} + +type ServerMapOutput struct{ *pulumi.OutputState } + +func (ServerMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Server)(nil)).Elem() +} + +func (o ServerMapOutput) ToServerMapOutput() ServerMapOutput { + return o +} + +func (o ServerMapOutput) ToServerMapOutputWithContext(ctx context.Context) ServerMapOutput { + return o +} + +func (o ServerMapOutput) MapIndex(k pulumi.StringInput) ServerOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Server { + return vs[0].(map[string]*Server)[vs[1].(string)] + }).(ServerOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ServerInput)(nil)).Elem(), &Server{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerArrayInput)(nil)).Elem(), ServerArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ServerMapInput)(nil)).Elem(), ServerMap{}) + pulumi.RegisterOutputType(ServerOutput{}) + pulumi.RegisterOutputType(ServerArrayOutput{}) + pulumi.RegisterOutputType(ServerMapOutput{}) +} diff --git a/sdk/go/ovh/dedicated/serverInstallTask.go b/sdk/go/ovh/dedicated/serverInstallTask.go index ca4ef0b8..ea6dcda9 100644 --- a/sdk/go/ovh/dedicated/serverInstallTask.go +++ b/sdk/go/ovh/dedicated/serverInstallTask.go @@ -39,8 +39,7 @@ import ( // BaseTemplateName: pulumi.String("debian12_64"), // TemplateName: pulumi.String("mydebian12"), // Customization: &me.InstallationTemplateCustomizationArgs{ -// PostInstallationScriptLink: pulumi.String("http://test"), -// PostInstallationScriptReturn: pulumi.String("ok"), +// CustomHostname: pulumi.String("mytest"), // }, // }) // if err != nil { @@ -58,6 +57,10 @@ import ( // Key: pulumi.String("sshKey"), // Value: pulumi.String("ssh-ed25519 AAAAC3..."), // }, +// &dedicated.ServerInstallTaskUserMetadataArgs{ +// Key: pulumi.String("postInstallationScript"), +// Value: pulumi.String("#!/bin/bash\n echo \"coucou postInstallationScript\" > /opt/coucou\n cat /etc/machine-id >> /opt/coucou\n date \"+%Y-%m-%d %H:%M:%S\" --utc >> /opt/coucou\n"), +// }, // }, // }) // if err != nil { @@ -133,7 +136,7 @@ import ( // }, // &dedicated.ServerInstallTaskUserMetadataArgs{ // Key: pulumi.String("configDriveUserData"), -// Value: pulumi.String(fmt.Sprintf(`#cloud-config +// Value: pulumi.Sprintf(`#cloud-config // // ssh_authorized_keys: // - %v @@ -153,7 +156,7 @@ import ( // - tree // // final_message: The system is finally up, after $UPTIME seconds -// `, data.Ovh_me_ssh_key.Mykey.Key, data.Ovh_me_ssh_key.Mykey.Key)), +// `, data.Ovh_me_ssh_key.Mykey.Key, data.Ovh_me_ssh_key.Mykey.Key), // // }, // }, @@ -207,6 +210,10 @@ import ( // Key: pulumi.String("language"), // Value: pulumi.String("fr-fr"), // }, +// &dedicated.ServerInstallTaskUserMetadataArgs{ +// Key: pulumi.String("postInstallationScript"), +// Value: pulumi.String("coucou postInstallationScriptPowerShell\" | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\"\n (Get-ItemProperty -LiteralPath \"Registry::HKLM\\SOFTWARE\\Microsoft\\Cryptography\" -Name \"MachineGuid\").MachineGuid | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\" -Append\n (Get-Date).ToUniversalTime().ToString(\"yyyy-MM-dd HH:mm:ss\") | Out-File -FilePath \"c:\\ovhupd\\script\\coucou.txt\" -Append\n"), +// }, // }, // }) // if err != nil { diff --git a/sdk/go/ovh/domain/init.go b/sdk/go/ovh/domain/init.go index d277183d..5d15055b 100644 --- a/sdk/go/ovh/domain/init.go +++ b/sdk/go/ovh/domain/init.go @@ -25,6 +25,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Zone{} case "ovh:Domain/zoneDNSSec:ZoneDNSSec": r = &ZoneDNSSec{} + case "ovh:Domain/zoneImport:ZoneImport": + r = &ZoneImport{} case "ovh:Domain/zoneRecord:ZoneRecord": r = &ZoneRecord{} case "ovh:Domain/zoneRedirection:ZoneRedirection": @@ -52,6 +54,11 @@ func init() { "Domain/zoneDNSSec", &module{version}, ) + pulumi.RegisterResourceModule( + "ovh", + "Domain/zoneImport", + &module{version}, + ) pulumi.RegisterResourceModule( "ovh", "Domain/zoneRecord", diff --git a/sdk/go/ovh/domain/zoneImport.go b/sdk/go/ovh/domain/zoneImport.go new file mode 100644 index 00000000..2bdb7e98 --- /dev/null +++ b/sdk/go/ovh/domain/zoneImport.go @@ -0,0 +1,287 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package domain + +import ( + "context" + "reflect" + + "errors" + "github.com/ovh/pulumi-ovh/sdk/go/ovh/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Handle a whole DNS zone using a zone file. +// +// > __WARNING__ This resource and resource `Domain.ZoneRecord` should not be used together as `Domain.ZoneImport` controls the whole DNS zone at once. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "os" +// +// "github.com/ovh/pulumi-ovh/sdk/go/ovh/Domain" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func readFileOrPanic(path string) pulumi.StringPtrInput { +// data, err := os.ReadFile(path) +// if err != nil { +// panic(err.Error()) +// } +// return pulumi.String(string(data)) +// } +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Domain.NewZoneImport(ctx, "import", &Domain.ZoneImportArgs{ +// ZoneName: pulumi.String("mysite.ovh"), +// ZoneFile: pulumi.String(readFileOrPanic("./example.zone")), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +type ZoneImport struct { + pulumi.CustomResourceState + + // Zone file exported from the API + ExportedContent pulumi.StringOutput `pulumi:"exportedContent"` + // Content of the zone file to import + ZoneFile pulumi.StringOutput `pulumi:"zoneFile"` + // The name of the domain zone + ZoneName pulumi.StringOutput `pulumi:"zoneName"` +} + +// NewZoneImport registers a new resource with the given unique name, arguments, and options. +func NewZoneImport(ctx *pulumi.Context, + name string, args *ZoneImportArgs, opts ...pulumi.ResourceOption) (*ZoneImport, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ZoneFile == nil { + return nil, errors.New("invalid value for required argument 'ZoneFile'") + } + if args.ZoneName == nil { + return nil, errors.New("invalid value for required argument 'ZoneName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ZoneImport + err := ctx.RegisterResource("ovh:Domain/zoneImport:ZoneImport", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetZoneImport gets an existing ZoneImport resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetZoneImport(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ZoneImportState, opts ...pulumi.ResourceOption) (*ZoneImport, error) { + var resource ZoneImport + err := ctx.ReadResource("ovh:Domain/zoneImport:ZoneImport", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ZoneImport resources. +type zoneImportState struct { + // Zone file exported from the API + ExportedContent *string `pulumi:"exportedContent"` + // Content of the zone file to import + ZoneFile *string `pulumi:"zoneFile"` + // The name of the domain zone + ZoneName *string `pulumi:"zoneName"` +} + +type ZoneImportState struct { + // Zone file exported from the API + ExportedContent pulumi.StringPtrInput + // Content of the zone file to import + ZoneFile pulumi.StringPtrInput + // The name of the domain zone + ZoneName pulumi.StringPtrInput +} + +func (ZoneImportState) ElementType() reflect.Type { + return reflect.TypeOf((*zoneImportState)(nil)).Elem() +} + +type zoneImportArgs struct { + // Content of the zone file to import + ZoneFile string `pulumi:"zoneFile"` + // The name of the domain zone + ZoneName string `pulumi:"zoneName"` +} + +// The set of arguments for constructing a ZoneImport resource. +type ZoneImportArgs struct { + // Content of the zone file to import + ZoneFile pulumi.StringInput + // The name of the domain zone + ZoneName pulumi.StringInput +} + +func (ZoneImportArgs) ElementType() reflect.Type { + return reflect.TypeOf((*zoneImportArgs)(nil)).Elem() +} + +type ZoneImportInput interface { + pulumi.Input + + ToZoneImportOutput() ZoneImportOutput + ToZoneImportOutputWithContext(ctx context.Context) ZoneImportOutput +} + +func (*ZoneImport) ElementType() reflect.Type { + return reflect.TypeOf((**ZoneImport)(nil)).Elem() +} + +func (i *ZoneImport) ToZoneImportOutput() ZoneImportOutput { + return i.ToZoneImportOutputWithContext(context.Background()) +} + +func (i *ZoneImport) ToZoneImportOutputWithContext(ctx context.Context) ZoneImportOutput { + return pulumi.ToOutputWithContext(ctx, i).(ZoneImportOutput) +} + +// ZoneImportArrayInput is an input type that accepts ZoneImportArray and ZoneImportArrayOutput values. +// You can construct a concrete instance of `ZoneImportArrayInput` via: +// +// ZoneImportArray{ ZoneImportArgs{...} } +type ZoneImportArrayInput interface { + pulumi.Input + + ToZoneImportArrayOutput() ZoneImportArrayOutput + ToZoneImportArrayOutputWithContext(context.Context) ZoneImportArrayOutput +} + +type ZoneImportArray []ZoneImportInput + +func (ZoneImportArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ZoneImport)(nil)).Elem() +} + +func (i ZoneImportArray) ToZoneImportArrayOutput() ZoneImportArrayOutput { + return i.ToZoneImportArrayOutputWithContext(context.Background()) +} + +func (i ZoneImportArray) ToZoneImportArrayOutputWithContext(ctx context.Context) ZoneImportArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ZoneImportArrayOutput) +} + +// ZoneImportMapInput is an input type that accepts ZoneImportMap and ZoneImportMapOutput values. +// You can construct a concrete instance of `ZoneImportMapInput` via: +// +// ZoneImportMap{ "key": ZoneImportArgs{...} } +type ZoneImportMapInput interface { + pulumi.Input + + ToZoneImportMapOutput() ZoneImportMapOutput + ToZoneImportMapOutputWithContext(context.Context) ZoneImportMapOutput +} + +type ZoneImportMap map[string]ZoneImportInput + +func (ZoneImportMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ZoneImport)(nil)).Elem() +} + +func (i ZoneImportMap) ToZoneImportMapOutput() ZoneImportMapOutput { + return i.ToZoneImportMapOutputWithContext(context.Background()) +} + +func (i ZoneImportMap) ToZoneImportMapOutputWithContext(ctx context.Context) ZoneImportMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ZoneImportMapOutput) +} + +type ZoneImportOutput struct{ *pulumi.OutputState } + +func (ZoneImportOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ZoneImport)(nil)).Elem() +} + +func (o ZoneImportOutput) ToZoneImportOutput() ZoneImportOutput { + return o +} + +func (o ZoneImportOutput) ToZoneImportOutputWithContext(ctx context.Context) ZoneImportOutput { + return o +} + +// Zone file exported from the API +func (o ZoneImportOutput) ExportedContent() pulumi.StringOutput { + return o.ApplyT(func(v *ZoneImport) pulumi.StringOutput { return v.ExportedContent }).(pulumi.StringOutput) +} + +// Content of the zone file to import +func (o ZoneImportOutput) ZoneFile() pulumi.StringOutput { + return o.ApplyT(func(v *ZoneImport) pulumi.StringOutput { return v.ZoneFile }).(pulumi.StringOutput) +} + +// The name of the domain zone +func (o ZoneImportOutput) ZoneName() pulumi.StringOutput { + return o.ApplyT(func(v *ZoneImport) pulumi.StringOutput { return v.ZoneName }).(pulumi.StringOutput) +} + +type ZoneImportArrayOutput struct{ *pulumi.OutputState } + +func (ZoneImportArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ZoneImport)(nil)).Elem() +} + +func (o ZoneImportArrayOutput) ToZoneImportArrayOutput() ZoneImportArrayOutput { + return o +} + +func (o ZoneImportArrayOutput) ToZoneImportArrayOutputWithContext(ctx context.Context) ZoneImportArrayOutput { + return o +} + +func (o ZoneImportArrayOutput) Index(i pulumi.IntInput) ZoneImportOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ZoneImport { + return vs[0].([]*ZoneImport)[vs[1].(int)] + }).(ZoneImportOutput) +} + +type ZoneImportMapOutput struct{ *pulumi.OutputState } + +func (ZoneImportMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ZoneImport)(nil)).Elem() +} + +func (o ZoneImportMapOutput) ToZoneImportMapOutput() ZoneImportMapOutput { + return o +} + +func (o ZoneImportMapOutput) ToZoneImportMapOutputWithContext(ctx context.Context) ZoneImportMapOutput { + return o +} + +func (o ZoneImportMapOutput) MapIndex(k pulumi.StringInput) ZoneImportOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ZoneImport { + return vs[0].(map[string]*ZoneImport)[vs[1].(string)] + }).(ZoneImportOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ZoneImportInput)(nil)).Elem(), &ZoneImport{}) + pulumi.RegisterInputType(reflect.TypeOf((*ZoneImportArrayInput)(nil)).Elem(), ZoneImportArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ZoneImportMapInput)(nil)).Elem(), ZoneImportMap{}) + pulumi.RegisterOutputType(ZoneImportOutput{}) + pulumi.RegisterOutputType(ZoneImportArrayOutput{}) + pulumi.RegisterOutputType(ZoneImportMapOutput{}) +} diff --git a/sdk/go/ovh/iploadbalancing/httpFarm.go b/sdk/go/ovh/iploadbalancing/httpFarm.go index 0f38a234..e571396d 100644 --- a/sdk/go/ovh/iploadbalancing/httpFarm.go +++ b/sdk/go/ovh/iploadbalancing/httpFarm.go @@ -55,7 +55,7 @@ import ( type HttpFarm struct { pulumi.CustomResourceState - // Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + // Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) Balance pulumi.StringPtrOutput `pulumi:"balance"` // Readable label for loadbalancer farm DisplayName pulumi.StringPtrOutput `pulumi:"displayName"` @@ -109,7 +109,7 @@ func GetHttpFarm(ctx *pulumi.Context, // Input properties used for looking up and filtering HttpFarm resources. type httpFarmState struct { - // Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + // Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) Balance *string `pulumi:"balance"` // Readable label for loadbalancer farm DisplayName *string `pulumi:"displayName"` @@ -128,7 +128,7 @@ type httpFarmState struct { } type HttpFarmState struct { - // Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + // Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) Balance pulumi.StringPtrInput // Readable label for loadbalancer farm DisplayName pulumi.StringPtrInput @@ -151,7 +151,7 @@ func (HttpFarmState) ElementType() reflect.Type { } type httpFarmArgs struct { - // Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + // Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) Balance *string `pulumi:"balance"` // Readable label for loadbalancer farm DisplayName *string `pulumi:"displayName"` @@ -171,7 +171,7 @@ type httpFarmArgs struct { // The set of arguments for constructing a HttpFarm resource. type HttpFarmArgs struct { - // Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + // Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) Balance pulumi.StringPtrInput // Readable label for loadbalancer farm DisplayName pulumi.StringPtrInput @@ -276,7 +276,7 @@ func (o HttpFarmOutput) ToHttpFarmOutputWithContext(ctx context.Context) HttpFar return o } -// Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) +// Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) func (o HttpFarmOutput) Balance() pulumi.StringPtrOutput { return o.ApplyT(func(v *HttpFarm) pulumi.StringPtrOutput { return v.Balance }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/ovh/me/pulumiTypes.go b/sdk/go/ovh/me/pulumiTypes.go index 6d17072a..eb238409 100644 --- a/sdk/go/ovh/me/pulumiTypes.go +++ b/sdk/go/ovh/me/pulumiTypes.go @@ -16,10 +16,6 @@ var _ = internal.GetEnvOrDefault type InstallationTemplateCustomization struct { // Set up the server using the provided hostname instead of the default hostname. CustomHostname *string `pulumi:"customHostname"` - // Indicate the URL where your postinstall customisation script is located. - PostInstallationScriptLink *string `pulumi:"postInstallationScriptLink"` - // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - PostInstallationScriptReturn *string `pulumi:"postInstallationScriptReturn"` } // InstallationTemplateCustomizationInput is an input type that accepts InstallationTemplateCustomizationArgs and InstallationTemplateCustomizationOutput values. @@ -36,10 +32,6 @@ type InstallationTemplateCustomizationInput interface { type InstallationTemplateCustomizationArgs struct { // Set up the server using the provided hostname instead of the default hostname. CustomHostname pulumi.StringPtrInput `pulumi:"customHostname"` - // Indicate the URL where your postinstall customisation script is located. - PostInstallationScriptLink pulumi.StringPtrInput `pulumi:"postInstallationScriptLink"` - // indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - PostInstallationScriptReturn pulumi.StringPtrInput `pulumi:"postInstallationScriptReturn"` } func (InstallationTemplateCustomizationArgs) ElementType() reflect.Type { @@ -124,16 +116,6 @@ func (o InstallationTemplateCustomizationOutput) CustomHostname() pulumi.StringP return o.ApplyT(func(v InstallationTemplateCustomization) *string { return v.CustomHostname }).(pulumi.StringPtrOutput) } -// Indicate the URL where your postinstall customisation script is located. -func (o InstallationTemplateCustomizationOutput) PostInstallationScriptLink() pulumi.StringPtrOutput { - return o.ApplyT(func(v InstallationTemplateCustomization) *string { return v.PostInstallationScriptLink }).(pulumi.StringPtrOutput) -} - -// indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. -func (o InstallationTemplateCustomizationOutput) PostInstallationScriptReturn() pulumi.StringPtrOutput { - return o.ApplyT(func(v InstallationTemplateCustomization) *string { return v.PostInstallationScriptReturn }).(pulumi.StringPtrOutput) -} - type InstallationTemplateCustomizationPtrOutput struct{ *pulumi.OutputState } func (InstallationTemplateCustomizationPtrOutput) ElementType() reflect.Type { @@ -168,26 +150,6 @@ func (o InstallationTemplateCustomizationPtrOutput) CustomHostname() pulumi.Stri }).(pulumi.StringPtrOutput) } -// Indicate the URL where your postinstall customisation script is located. -func (o InstallationTemplateCustomizationPtrOutput) PostInstallationScriptLink() pulumi.StringPtrOutput { - return o.ApplyT(func(v *InstallationTemplateCustomization) *string { - if v == nil { - return nil - } - return v.PostInstallationScriptLink - }).(pulumi.StringPtrOutput) -} - -// indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. -func (o InstallationTemplateCustomizationPtrOutput) PostInstallationScriptReturn() pulumi.StringPtrOutput { - return o.ApplyT(func(v *InstallationTemplateCustomization) *string { - if v == nil { - return nil - } - return v.PostInstallationScriptReturn - }).(pulumi.StringPtrOutput) -} - type InstallationTemplateInputType struct { Default *string `pulumi:"default"` // information about this template. @@ -318,10 +280,6 @@ func (o InstallationTemplateInputTypeArrayOutput) Index(i pulumi.IntInput) Insta type GetInstallationTemplateCustomization struct { // Set up the server using the provided hostname instead of the default hostname. CustomHostname string `pulumi:"customHostname"` - // Indicate the URL where your postinstall customisation script is located. - PostInstallationScriptLink string `pulumi:"postInstallationScriptLink"` - // Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - PostInstallationScriptReturn string `pulumi:"postInstallationScriptReturn"` } // GetInstallationTemplateCustomizationInput is an input type that accepts GetInstallationTemplateCustomizationArgs and GetInstallationTemplateCustomizationOutput values. @@ -338,10 +296,6 @@ type GetInstallationTemplateCustomizationInput interface { type GetInstallationTemplateCustomizationArgs struct { // Set up the server using the provided hostname instead of the default hostname. CustomHostname pulumi.StringInput `pulumi:"customHostname"` - // Indicate the URL where your postinstall customisation script is located. - PostInstallationScriptLink pulumi.StringInput `pulumi:"postInstallationScriptLink"` - // Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - PostInstallationScriptReturn pulumi.StringInput `pulumi:"postInstallationScriptReturn"` } func (GetInstallationTemplateCustomizationArgs) ElementType() reflect.Type { @@ -400,16 +354,6 @@ func (o GetInstallationTemplateCustomizationOutput) CustomHostname() pulumi.Stri return o.ApplyT(func(v GetInstallationTemplateCustomization) string { return v.CustomHostname }).(pulumi.StringOutput) } -// Indicate the URL where your postinstall customisation script is located. -func (o GetInstallationTemplateCustomizationOutput) PostInstallationScriptLink() pulumi.StringOutput { - return o.ApplyT(func(v GetInstallationTemplateCustomization) string { return v.PostInstallationScriptLink }).(pulumi.StringOutput) -} - -// Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. -func (o GetInstallationTemplateCustomizationOutput) PostInstallationScriptReturn() pulumi.StringOutput { - return o.ApplyT(func(v GetInstallationTemplateCustomization) string { return v.PostInstallationScriptReturn }).(pulumi.StringOutput) -} - type GetInstallationTemplateCustomizationArrayOutput struct{ *pulumi.OutputState } func (GetInstallationTemplateCustomizationArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/ovh/vps/pulumiTypes.go b/sdk/go/ovh/vps/pulumiTypes.go index b170a0d6..76fab59a 100644 --- a/sdk/go/ovh/vps/pulumiTypes.go +++ b/sdk/go/ovh/vps/pulumiTypes.go @@ -1048,8 +1048,6 @@ type VpsPlanOption struct { Configurations []VpsPlanOptionConfiguration `pulumi:"configurations"` // duration Duration string `pulumi:"duration"` - // Cart item to be linked - ItemId float64 `pulumi:"itemId"` // Plan code PlanCode string `pulumi:"planCode"` // Pricing model identifier @@ -1074,8 +1072,6 @@ type VpsPlanOptionArgs struct { Configurations VpsPlanOptionConfigurationArrayInput `pulumi:"configurations"` // duration Duration pulumi.StringInput `pulumi:"duration"` - // Cart item to be linked - ItemId pulumi.Float64Input `pulumi:"itemId"` // Plan code PlanCode pulumi.StringInput `pulumi:"planCode"` // Pricing model identifier @@ -1145,11 +1141,6 @@ func (o VpsPlanOptionOutput) Duration() pulumi.StringOutput { return o.ApplyT(func(v VpsPlanOption) string { return v.Duration }).(pulumi.StringOutput) } -// Cart item to be linked -func (o VpsPlanOptionOutput) ItemId() pulumi.Float64Output { - return o.ApplyT(func(v VpsPlanOption) float64 { return v.ItemId }).(pulumi.Float64Output) -} - // Plan code func (o VpsPlanOptionOutput) PlanCode() pulumi.StringOutput { return o.ApplyT(func(v VpsPlanOption) string { return v.PlanCode }).(pulumi.StringOutput) diff --git a/sdk/java/build.gradle b/sdk/java/build.gradle index 69bc9fa1..9ff6a2ec 100644 --- a/sdk/java/build.gradle +++ b/sdk/java/build.gradle @@ -44,7 +44,7 @@ repositories { dependencies { implementation("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.gson:gson:2.8.9") - implementation("com.pulumi:pulumi:0.15.0") + implementation("com.pulumi:pulumi:0.16.0") } task sourcesJar(type: Jar) { diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsManagement.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsManagement.java index 721f2e32..b73550b3 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsManagement.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsManagement.java @@ -10,7 +10,6 @@ import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; import com.pulumi.core.internal.Codegen; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -73,14 +72,14 @@ public class ContainerRegistryIPRestrictionsManagement extends com.pulumi.resour * IP restrictions applied on Harbor UI and API. * */ - @Export(name="ipRestrictions", refs={List.class,Map.class,String.class,Object.class}, tree="[0,[1,2,3]]") - private Output>> ipRestrictions; + @Export(name="ipRestrictions", refs={List.class,Map.class,String.class}, tree="[0,[1,2,2]]") + private Output>> ipRestrictions; /** * @return IP restrictions applied on Harbor UI and API. * */ - public Output>> ipRestrictions() { + public Output>> ipRestrictions() { return this.ipRestrictions; } /** diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsManagementArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsManagementArgs.java index 9bcc17f4..229cda20 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsManagementArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsManagementArgs.java @@ -6,7 +6,6 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -22,13 +21,13 @@ public final class ContainerRegistryIPRestrictionsManagementArgs extends com.pul * */ @Import(name="ipRestrictions", required=true) - private Output>> ipRestrictions; + private Output>> ipRestrictions; /** * @return IP restrictions applied on Harbor UI and API. * */ - public Output>> ipRestrictions() { + public Output>> ipRestrictions() { return this.ipRestrictions; } @@ -94,7 +93,7 @@ public Builder(ContainerRegistryIPRestrictionsManagementArgs defaults) { * @return builder * */ - public Builder ipRestrictions(Output>> ipRestrictions) { + public Builder ipRestrictions(Output>> ipRestrictions) { $.ipRestrictions = ipRestrictions; return this; } @@ -105,7 +104,7 @@ public Builder ipRestrictions(Output>> ipRestrictions) { * @return builder * */ - public Builder ipRestrictions(List> ipRestrictions) { + public Builder ipRestrictions(List> ipRestrictions) { return ipRestrictions(Output.of(ipRestrictions)); } @@ -115,7 +114,7 @@ public Builder ipRestrictions(List> ipRestrictions) { * @return builder * */ - public Builder ipRestrictions(Map... ipRestrictions) { + public Builder ipRestrictions(Map... ipRestrictions) { return ipRestrictions(List.of(ipRestrictions)); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsRegistry.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsRegistry.java index ad54d2e1..0cf9812e 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsRegistry.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsRegistry.java @@ -10,7 +10,6 @@ import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; import com.pulumi.core.internal.Codegen; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -73,14 +72,14 @@ public class ContainerRegistryIPRestrictionsRegistry extends com.pulumi.resource * IP restrictions applied on artifact manager component. * */ - @Export(name="ipRestrictions", refs={List.class,Map.class,String.class,Object.class}, tree="[0,[1,2,3]]") - private Output>> ipRestrictions; + @Export(name="ipRestrictions", refs={List.class,Map.class,String.class}, tree="[0,[1,2,2]]") + private Output>> ipRestrictions; /** * @return IP restrictions applied on artifact manager component. * */ - public Output>> ipRestrictions() { + public Output>> ipRestrictions() { return this.ipRestrictions; } /** diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsRegistryArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsRegistryArgs.java index 56e8d3a3..31682dca 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsRegistryArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/ContainerRegistryIPRestrictionsRegistryArgs.java @@ -6,7 +6,6 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -22,13 +21,13 @@ public final class ContainerRegistryIPRestrictionsRegistryArgs extends com.pulum * */ @Import(name="ipRestrictions", required=true) - private Output>> ipRestrictions; + private Output>> ipRestrictions; /** * @return IP restrictions applied on artifact manager component. * */ - public Output>> ipRestrictions() { + public Output>> ipRestrictions() { return this.ipRestrictions; } @@ -94,7 +93,7 @@ public Builder(ContainerRegistryIPRestrictionsRegistryArgs defaults) { * @return builder * */ - public Builder ipRestrictions(Output>> ipRestrictions) { + public Builder ipRestrictions(Output>> ipRestrictions) { $.ipRestrictions = ipRestrictions; return this; } @@ -105,7 +104,7 @@ public Builder ipRestrictions(Output>> ipRestrictions) { * @return builder * */ - public Builder ipRestrictions(List> ipRestrictions) { + public Builder ipRestrictions(List> ipRestrictions) { return ipRestrictions(Output.of(ipRestrictions)); } @@ -115,7 +114,7 @@ public Builder ipRestrictions(List> ipRestrictions) { * @return builder * */ - public Builder ipRestrictions(Map... ipRestrictions) { + public Builder ipRestrictions(Map... ipRestrictions) { return ipRestrictions(List.of(ipRestrictions)); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/User.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/User.java index dda78924..972546e6 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/User.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/User.java @@ -11,7 +11,6 @@ import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; import com.pulumi.core.internal.Codegen; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -92,15 +91,15 @@ public Output> description() { * Note: no password nor sensitive token is set in this map. * */ - @Export(name="openstackRc", refs={Map.class,String.class,Object.class}, tree="[0,1,2]") - private Output> openstackRc; + @Export(name="openstackRc", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> openstackRc; /** * @return a convenient map representing an openstack_rc file. * Note: no password nor sensitive token is set in this map. * */ - public Output> openstackRc() { + public Output> openstackRc() { return this.openstackRc; } /** diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/UserArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/UserArgs.java index 1bbd0d93..2d84b0fd 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/UserArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/UserArgs.java @@ -6,7 +6,6 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -40,14 +39,14 @@ public Optional> description() { * */ @Import(name="openstackRc") - private @Nullable Output> openstackRc; + private @Nullable Output> openstackRc; /** * @return a convenient map representing an openstack_rc file. * Note: no password nor sensitive token is set in this map. * */ - public Optional>> openstackRc() { + public Optional>> openstackRc() { return Optional.ofNullable(this.openstackRc); } @@ -178,7 +177,7 @@ public Builder description(String description) { * @return builder * */ - public Builder openstackRc(@Nullable Output> openstackRc) { + public Builder openstackRc(@Nullable Output> openstackRc) { $.openstackRc = openstackRc; return this; } @@ -190,7 +189,7 @@ public Builder openstackRc(@Nullable Output> openstackRc) { * @return builder * */ - public Builder openstackRc(Map openstackRc) { + public Builder openstackRc(Map openstackRc) { return openstackRc(Output.of(openstackRc)); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/ContainerRegistryIPRestrictionsManagementState.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/ContainerRegistryIPRestrictionsManagementState.java index db2f83c7..9567da3c 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/ContainerRegistryIPRestrictionsManagementState.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/ContainerRegistryIPRestrictionsManagementState.java @@ -5,7 +5,6 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -23,13 +22,13 @@ public final class ContainerRegistryIPRestrictionsManagementState extends com.pu * */ @Import(name="ipRestrictions") - private @Nullable Output>> ipRestrictions; + private @Nullable Output>> ipRestrictions; /** * @return IP restrictions applied on Harbor UI and API. * */ - public Optional>>> ipRestrictions() { + public Optional>>> ipRestrictions() { return Optional.ofNullable(this.ipRestrictions); } @@ -95,7 +94,7 @@ public Builder(ContainerRegistryIPRestrictionsManagementState defaults) { * @return builder * */ - public Builder ipRestrictions(@Nullable Output>> ipRestrictions) { + public Builder ipRestrictions(@Nullable Output>> ipRestrictions) { $.ipRestrictions = ipRestrictions; return this; } @@ -106,7 +105,7 @@ public Builder ipRestrictions(@Nullable Output>> ipRestr * @return builder * */ - public Builder ipRestrictions(List> ipRestrictions) { + public Builder ipRestrictions(List> ipRestrictions) { return ipRestrictions(Output.of(ipRestrictions)); } @@ -116,7 +115,7 @@ public Builder ipRestrictions(List> ipRestrictions) { * @return builder * */ - public Builder ipRestrictions(Map... ipRestrictions) { + public Builder ipRestrictions(Map... ipRestrictions) { return ipRestrictions(List.of(ipRestrictions)); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/ContainerRegistryIPRestrictionsRegistryState.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/ContainerRegistryIPRestrictionsRegistryState.java index ce9a631a..bc76c5a4 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/ContainerRegistryIPRestrictionsRegistryState.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/ContainerRegistryIPRestrictionsRegistryState.java @@ -5,7 +5,6 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -23,13 +22,13 @@ public final class ContainerRegistryIPRestrictionsRegistryState extends com.pulu * */ @Import(name="ipRestrictions") - private @Nullable Output>> ipRestrictions; + private @Nullable Output>> ipRestrictions; /** * @return IP restrictions applied on artifact manager component. * */ - public Optional>>> ipRestrictions() { + public Optional>>> ipRestrictions() { return Optional.ofNullable(this.ipRestrictions); } @@ -95,7 +94,7 @@ public Builder(ContainerRegistryIPRestrictionsRegistryState defaults) { * @return builder * */ - public Builder ipRestrictions(@Nullable Output>> ipRestrictions) { + public Builder ipRestrictions(@Nullable Output>> ipRestrictions) { $.ipRestrictions = ipRestrictions; return this; } @@ -106,7 +105,7 @@ public Builder ipRestrictions(@Nullable Output>> ipRestr * @return builder * */ - public Builder ipRestrictions(List> ipRestrictions) { + public Builder ipRestrictions(List> ipRestrictions) { return ipRestrictions(Output.of(ipRestrictions)); } @@ -116,7 +115,7 @@ public Builder ipRestrictions(List> ipRestrictions) { * @return builder * */ - public Builder ipRestrictions(Map... ipRestrictions) { + public Builder ipRestrictions(Map... ipRestrictions) { return ipRestrictions(List.of(ipRestrictions)); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/GetKubeNodePoolTemplateSpec.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/GetKubeNodePoolTemplateSpec.java index c86ac4d4..8f2dcfc2 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/GetKubeNodePoolTemplateSpec.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/GetKubeNodePoolTemplateSpec.java @@ -5,7 +5,6 @@ import com.pulumi.core.annotations.Import; import java.lang.Boolean; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -23,13 +22,13 @@ public final class GetKubeNodePoolTemplateSpec extends com.pulumi.resources.Invo * */ @Import(name="taints") - private @Nullable List> taints; + private @Nullable List> taints; /** * @return taints * */ - public Optional>> taints() { + public Optional>> taints() { return Optional.ofNullable(this.taints); } @@ -79,7 +78,7 @@ public Builder(GetKubeNodePoolTemplateSpec defaults) { * @return builder * */ - public Builder taints(@Nullable List> taints) { + public Builder taints(@Nullable List> taints) { $.taints = taints; return this; } @@ -90,7 +89,7 @@ public Builder taints(@Nullable List> taints) { * @return builder * */ - public Builder taints(Map... taints) { + public Builder taints(Map... taints) { return taints(List.of(taints)); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/GetKubeNodePoolTemplateSpecArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/GetKubeNodePoolTemplateSpecArgs.java index 3507143d..9b133a12 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/GetKubeNodePoolTemplateSpecArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/GetKubeNodePoolTemplateSpecArgs.java @@ -6,7 +6,6 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.Boolean; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -24,13 +23,13 @@ public final class GetKubeNodePoolTemplateSpecArgs extends com.pulumi.resources. * */ @Import(name="taints") - private @Nullable Output>> taints; + private @Nullable Output>> taints; /** * @return taints * */ - public Optional>>> taints() { + public Optional>>> taints() { return Optional.ofNullable(this.taints); } @@ -80,7 +79,7 @@ public Builder(GetKubeNodePoolTemplateSpecArgs defaults) { * @return builder * */ - public Builder taints(@Nullable Output>> taints) { + public Builder taints(@Nullable Output>> taints) { $.taints = taints; return this; } @@ -91,7 +90,7 @@ public Builder taints(@Nullable Output>> taints) { * @return builder * */ - public Builder taints(List> taints) { + public Builder taints(List> taints) { return taints(Output.of(taints)); } @@ -101,7 +100,7 @@ public Builder taints(List> taints) { * @return builder * */ - public Builder taints(Map... taints) { + public Builder taints(Map... taints) { return taints(List.of(taints)); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/KubeNodePoolTemplateSpecArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/KubeNodePoolTemplateSpecArgs.java index fd4cc542..ef4032b7 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/KubeNodePoolTemplateSpecArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/KubeNodePoolTemplateSpecArgs.java @@ -7,7 +7,6 @@ import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -23,13 +22,13 @@ public final class KubeNodePoolTemplateSpecArgs extends com.pulumi.resources.Res * */ @Import(name="taints", required=true) - private Output>> taints; + private Output>> taints; /** * @return taints * */ - public Output>> taints() { + public Output>> taints() { return this.taints; } @@ -79,7 +78,7 @@ public Builder(KubeNodePoolTemplateSpecArgs defaults) { * @return builder * */ - public Builder taints(Output>> taints) { + public Builder taints(Output>> taints) { $.taints = taints; return this; } @@ -90,7 +89,7 @@ public Builder taints(Output>> taints) { * @return builder * */ - public Builder taints(List> taints) { + public Builder taints(List> taints) { return taints(Output.of(taints)); } @@ -100,7 +99,7 @@ public Builder taints(List> taints) { * @return builder * */ - public Builder taints(Map... taints) { + public Builder taints(Map... taints) { return taints(List.of(taints)); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/UserState.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/UserState.java index 6470b3fd..aeec1cc5 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/UserState.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/inputs/UserState.java @@ -6,7 +6,6 @@ import com.ovhcloud.pulumi.ovh.CloudProject.inputs.UserRoleArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -55,14 +54,14 @@ public Optional> description() { * */ @Import(name="openstackRc") - private @Nullable Output> openstackRc; + private @Nullable Output> openstackRc; /** * @return a convenient map representing an openstack_rc file. * Note: no password nor sensitive token is set in this map. * */ - public Optional>> openstackRc() { + public Optional>> openstackRc() { return Optional.ofNullable(this.openstackRc); } @@ -285,7 +284,7 @@ public Builder description(String description) { * @return builder * */ - public Builder openstackRc(@Nullable Output> openstackRc) { + public Builder openstackRc(@Nullable Output> openstackRc) { $.openstackRc = openstackRc; return this; } @@ -297,7 +296,7 @@ public Builder openstackRc(@Nullable Output> openstackRc) { * @return builder * */ - public Builder openstackRc(Map openstackRc) { + public Builder openstackRc(Map openstackRc) { return openstackRc(Output.of(openstackRc)); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetContainerRegistryIPRestrictionsManagementResult.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetContainerRegistryIPRestrictionsManagementResult.java index 0487d207..6bfb2176 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetContainerRegistryIPRestrictionsManagementResult.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetContainerRegistryIPRestrictionsManagementResult.java @@ -5,7 +5,6 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -22,7 +21,7 @@ public final class GetContainerRegistryIPRestrictionsManagementResult { * @return IP restrictions applied on Harbor UI and API. * */ - private List> ipRestrictions; + private List> ipRestrictions; /** * @return The ID of the Managed Private Registry. * @@ -46,7 +45,7 @@ public String id() { * @return IP restrictions applied on Harbor UI and API. * */ - public List> ipRestrictions() { + public List> ipRestrictions() { return this.ipRestrictions; } /** @@ -74,7 +73,7 @@ public static Builder builder(GetContainerRegistryIPRestrictionsManagementResult @CustomType.Builder public static final class Builder { private String id; - private List> ipRestrictions; + private List> ipRestrictions; private String registryId; private String serviceName; public Builder() {} @@ -95,7 +94,7 @@ public Builder id(String id) { return this; } @CustomType.Setter - public Builder ipRestrictions(List> ipRestrictions) { + public Builder ipRestrictions(List> ipRestrictions) { if (ipRestrictions == null) { throw new MissingRequiredPropertyException("GetContainerRegistryIPRestrictionsManagementResult", "ipRestrictions"); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetContainerRegistryIPRestrictionsRegistryResult.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetContainerRegistryIPRestrictionsRegistryResult.java index 050b65da..246b0b89 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetContainerRegistryIPRestrictionsRegistryResult.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetContainerRegistryIPRestrictionsRegistryResult.java @@ -5,7 +5,6 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -22,7 +21,7 @@ public final class GetContainerRegistryIPRestrictionsRegistryResult { * @return IP restrictions applied on artifact manager component. * */ - private List> ipRestrictions; + private List> ipRestrictions; /** * @return The ID of the Managed Private Registry. * @@ -46,7 +45,7 @@ public String id() { * @return IP restrictions applied on artifact manager component. * */ - public List> ipRestrictions() { + public List> ipRestrictions() { return this.ipRestrictions; } /** @@ -74,7 +73,7 @@ public static Builder builder(GetContainerRegistryIPRestrictionsRegistryResult d @CustomType.Builder public static final class Builder { private String id; - private List> ipRestrictions; + private List> ipRestrictions; private String registryId; private String serviceName; public Builder() {} @@ -95,7 +94,7 @@ public Builder id(String id) { return this; } @CustomType.Setter - public Builder ipRestrictions(List> ipRestrictions) { + public Builder ipRestrictions(List> ipRestrictions) { if (ipRestrictions == null) { throw new MissingRequiredPropertyException("GetContainerRegistryIPRestrictionsRegistryResult", "ipRestrictions"); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetKubeNodePoolTemplateSpec.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetKubeNodePoolTemplateSpec.java index 8479285d..f8e5e6e1 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetKubeNodePoolTemplateSpec.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/GetKubeNodePoolTemplateSpec.java @@ -5,7 +5,6 @@ import com.pulumi.core.annotations.CustomType; import java.lang.Boolean; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -19,7 +18,7 @@ public final class GetKubeNodePoolTemplateSpec { * @return taints * */ - private @Nullable List> taints; + private @Nullable List> taints; /** * @return unschedulable * @@ -31,7 +30,7 @@ private GetKubeNodePoolTemplateSpec() {} * @return taints * */ - public List> taints() { + public List> taints() { return this.taints == null ? List.of() : this.taints; } /** @@ -51,7 +50,7 @@ public static Builder builder(GetKubeNodePoolTemplateSpec defaults) { } @CustomType.Builder public static final class Builder { - private @Nullable List> taints; + private @Nullable List> taints; private @Nullable Boolean unschedulable; public Builder() {} public Builder(GetKubeNodePoolTemplateSpec defaults) { @@ -61,7 +60,7 @@ public Builder(GetKubeNodePoolTemplateSpec defaults) { } @CustomType.Setter - public Builder taints(@Nullable List> taints) { + public Builder taints(@Nullable List> taints) { this.taints = taints; return this; diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/KubeNodePoolTemplateSpec.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/KubeNodePoolTemplateSpec.java index 03910eae..edb6bfa5 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/KubeNodePoolTemplateSpec.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/CloudProject/outputs/KubeNodePoolTemplateSpec.java @@ -6,7 +6,6 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -18,7 +17,7 @@ public final class KubeNodePoolTemplateSpec { * @return taints * */ - private List> taints; + private List> taints; /** * @return unschedulable * @@ -30,7 +29,7 @@ private KubeNodePoolTemplateSpec() {} * @return taints * */ - public List> taints() { + public List> taints() { return this.taints; } /** @@ -50,7 +49,7 @@ public static Builder builder(KubeNodePoolTemplateSpec defaults) { } @CustomType.Builder public static final class Builder { - private List> taints; + private List> taints; private Boolean unschedulable; public Builder() {} public Builder(KubeNodePoolTemplateSpec defaults) { @@ -60,7 +59,7 @@ public Builder(KubeNodePoolTemplateSpec defaults) { } @CustomType.Setter - public Builder taints(List> taints) { + public Builder taints(List> taints) { if (taints == null) { throw new MissingRequiredPropertyException("KubeNodePoolTemplateSpec", "taints"); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/LogsInput.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/LogsInput.java index c11da117..504c5aed 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/LogsInput.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/LogsInput.java @@ -15,6 +15,7 @@ import java.lang.Integer; import java.lang.String; import java.util.List; +import java.util.Optional; import javax.annotation.Nullable; /** @@ -108,6 +109,20 @@ public class LogsInput extends com.pulumi.resources.CustomResource { public Output> allowedNetworks() { return this.allowedNetworks; } + /** + * Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + * + */ + @Export(name="autoscale", refs={Boolean.class}, tree="[0]") + private Output autoscale; + + /** + * @return Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + * + */ + public Output> autoscale() { + return Codegen.optional(this.autoscale); + } /** * Input configuration * @@ -136,6 +151,20 @@ public Output configuration() { public Output createdAt() { return this.createdAt; } + /** + * Number of instance running (returned by the API) + * + */ + @Export(name="currentNbInstance", refs={Integer.class}, tree="[0]") + private Output currentNbInstance; + + /** + * @return Number of instance running (returned by the API) + * + */ + public Output currentNbInstance() { + return this.currentNbInstance; + } /** * Input description * @@ -221,18 +250,46 @@ public Output isRestartRequired() { return this.isRestartRequired; } /** - * Number of instance running + * Maximum number of instances in auto-scaled mode + * + */ + @Export(name="maxScaleInstance", refs={Integer.class}, tree="[0]") + private Output maxScaleInstance; + + /** + * @return Maximum number of instances in auto-scaled mode + * + */ + public Output> maxScaleInstance() { + return Codegen.optional(this.maxScaleInstance); + } + /** + * Minimum number of instances in auto-scaled mode + * + */ + @Export(name="minScaleInstance", refs={Integer.class}, tree="[0]") + private Output minScaleInstance; + + /** + * @return Minimum number of instances in auto-scaled mode + * + */ + public Output> minScaleInstance() { + return Codegen.optional(this.minScaleInstance); + } + /** + * Number of instance running (input, mutually exclusive with parameter `autoscale`) * */ @Export(name="nbInstance", refs={Integer.class}, tree="[0]") - private Output nbInstance; + private Output nbInstance; /** - * @return Number of instance running + * @return Number of instance running (input, mutually exclusive with parameter `autoscale`) * */ - public Output nbInstance() { - return this.nbInstance; + public Output> nbInstance() { + return Codegen.optional(this.nbInstance); } /** * Input IP address diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/LogsInputArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/LogsInputArgs.java index 84722fe8..20fb5e67 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/LogsInputArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/LogsInputArgs.java @@ -7,6 +7,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; import java.lang.Integer; import java.lang.String; import java.util.List; @@ -34,6 +35,21 @@ public Optional>> allowedNetworks() { return Optional.ofNullable(this.allowedNetworks); } + /** + * Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + * + */ + @Import(name="autoscale") + private @Nullable Output autoscale; + + /** + * @return Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + * + */ + public Optional> autoscale() { + return Optional.ofNullable(this.autoscale); + } + /** * Input configuration * @@ -95,14 +111,44 @@ public Optional> exposedPort() { } /** - * Number of instance running + * Maximum number of instances in auto-scaled mode + * + */ + @Import(name="maxScaleInstance") + private @Nullable Output maxScaleInstance; + + /** + * @return Maximum number of instances in auto-scaled mode + * + */ + public Optional> maxScaleInstance() { + return Optional.ofNullable(this.maxScaleInstance); + } + + /** + * Minimum number of instances in auto-scaled mode + * + */ + @Import(name="minScaleInstance") + private @Nullable Output minScaleInstance; + + /** + * @return Minimum number of instances in auto-scaled mode + * + */ + public Optional> minScaleInstance() { + return Optional.ofNullable(this.minScaleInstance); + } + + /** + * Number of instance running (input, mutually exclusive with parameter `autoscale`) * */ @Import(name="nbInstance") private @Nullable Output nbInstance; /** - * @return Number of instance running + * @return Number of instance running (input, mutually exclusive with parameter `autoscale`) * */ public Optional> nbInstance() { @@ -158,10 +204,13 @@ private LogsInputArgs() {} private LogsInputArgs(LogsInputArgs $) { this.allowedNetworks = $.allowedNetworks; + this.autoscale = $.autoscale; this.configuration = $.configuration; this.description = $.description; this.engineId = $.engineId; this.exposedPort = $.exposedPort; + this.maxScaleInstance = $.maxScaleInstance; + this.minScaleInstance = $.minScaleInstance; this.nbInstance = $.nbInstance; this.serviceName = $.serviceName; this.streamId = $.streamId; @@ -217,6 +266,27 @@ public Builder allowedNetworks(String... allowedNetworks) { return allowedNetworks(List.of(allowedNetworks)); } + /** + * @param autoscale Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + * + * @return builder + * + */ + public Builder autoscale(@Nullable Output autoscale) { + $.autoscale = autoscale; + return this; + } + + /** + * @param autoscale Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + * + * @return builder + * + */ + public Builder autoscale(Boolean autoscale) { + return autoscale(Output.of(autoscale)); + } + /** * @param configuration Input configuration * @@ -302,7 +372,49 @@ public Builder exposedPort(String exposedPort) { } /** - * @param nbInstance Number of instance running + * @param maxScaleInstance Maximum number of instances in auto-scaled mode + * + * @return builder + * + */ + public Builder maxScaleInstance(@Nullable Output maxScaleInstance) { + $.maxScaleInstance = maxScaleInstance; + return this; + } + + /** + * @param maxScaleInstance Maximum number of instances in auto-scaled mode + * + * @return builder + * + */ + public Builder maxScaleInstance(Integer maxScaleInstance) { + return maxScaleInstance(Output.of(maxScaleInstance)); + } + + /** + * @param minScaleInstance Minimum number of instances in auto-scaled mode + * + * @return builder + * + */ + public Builder minScaleInstance(@Nullable Output minScaleInstance) { + $.minScaleInstance = minScaleInstance; + return this; + } + + /** + * @param minScaleInstance Minimum number of instances in auto-scaled mode + * + * @return builder + * + */ + public Builder minScaleInstance(Integer minScaleInstance) { + return minScaleInstance(Output.of(minScaleInstance)); + } + + /** + * @param nbInstance Number of instance running (input, mutually exclusive with parameter `autoscale`) * * @return builder * @@ -313,7 +425,7 @@ public Builder nbInstance(@Nullable Output nbInstance) { } /** - * @param nbInstance Number of instance running + * @param nbInstance Number of instance running (input, mutually exclusive with parameter `autoscale`) * * @return builder * diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/inputs/LogsInputState.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/inputs/LogsInputState.java index a2992bee..1261469c 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/inputs/LogsInputState.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dbaas/inputs/LogsInputState.java @@ -34,6 +34,21 @@ public Optional>> allowedNetworks() { return Optional.ofNullable(this.allowedNetworks); } + /** + * Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + * + */ + @Import(name="autoscale") + private @Nullable Output autoscale; + + /** + * @return Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + * + */ + public Optional> autoscale() { + return Optional.ofNullable(this.autoscale); + } + /** * Input configuration * @@ -64,6 +79,21 @@ public Optional> createdAt() { return Optional.ofNullable(this.createdAt); } + /** + * Number of instance running (returned by the API) + * + */ + @Import(name="currentNbInstance") + private @Nullable Output currentNbInstance; + + /** + * @return Number of instance running (returned by the API) + * + */ + public Optional> currentNbInstance() { + return Optional.ofNullable(this.currentNbInstance); + } + /** * Input description * @@ -155,14 +185,44 @@ public Optional> isRestartRequired() { } /** - * Number of instance running + * Maximum number of instances in auto-scaled mode + * + */ + @Import(name="maxScaleInstance") + private @Nullable Output maxScaleInstance; + + /** + * @return Maximum number of instances in auto-scaled mode + * + */ + public Optional> maxScaleInstance() { + return Optional.ofNullable(this.maxScaleInstance); + } + + /** + * Minimum number of instances in auto-scaled mode + * + */ + @Import(name="minScaleInstance") + private @Nullable Output minScaleInstance; + + /** + * @return Minimum number of instances in auto-scaled mode + * + */ + public Optional> minScaleInstance() { + return Optional.ofNullable(this.minScaleInstance); + } + + /** + * Number of instance running (input, mutually exclusive with parameter `autoscale`) * */ @Import(name="nbInstance") private @Nullable Output nbInstance; /** - * @return Number of instance running + * @return Number of instance running (input, mutually exclusive with parameter `autoscale`) * */ public Optional> nbInstance() { @@ -278,14 +338,18 @@ private LogsInputState() {} private LogsInputState(LogsInputState $) { this.allowedNetworks = $.allowedNetworks; + this.autoscale = $.autoscale; this.configuration = $.configuration; this.createdAt = $.createdAt; + this.currentNbInstance = $.currentNbInstance; this.description = $.description; this.engineId = $.engineId; this.exposedPort = $.exposedPort; this.hostname = $.hostname; this.inputId = $.inputId; this.isRestartRequired = $.isRestartRequired; + this.maxScaleInstance = $.maxScaleInstance; + this.minScaleInstance = $.minScaleInstance; this.nbInstance = $.nbInstance; this.publicAddress = $.publicAddress; this.serviceName = $.serviceName; @@ -345,6 +409,27 @@ public Builder allowedNetworks(String... allowedNetworks) { return allowedNetworks(List.of(allowedNetworks)); } + /** + * @param autoscale Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + * + * @return builder + * + */ + public Builder autoscale(@Nullable Output autoscale) { + $.autoscale = autoscale; + return this; + } + + /** + * @param autoscale Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + * + * @return builder + * + */ + public Builder autoscale(Boolean autoscale) { + return autoscale(Output.of(autoscale)); + } + /** * @param configuration Input configuration * @@ -387,6 +472,27 @@ public Builder createdAt(String createdAt) { return createdAt(Output.of(createdAt)); } + /** + * @param currentNbInstance Number of instance running (returned by the API) + * + * @return builder + * + */ + public Builder currentNbInstance(@Nullable Output currentNbInstance) { + $.currentNbInstance = currentNbInstance; + return this; + } + + /** + * @param currentNbInstance Number of instance running (returned by the API) + * + * @return builder + * + */ + public Builder currentNbInstance(Integer currentNbInstance) { + return currentNbInstance(Output.of(currentNbInstance)); + } + /** * @param description Input description * @@ -514,7 +620,49 @@ public Builder isRestartRequired(Boolean isRestartRequired) { } /** - * @param nbInstance Number of instance running + * @param maxScaleInstance Maximum number of instances in auto-scaled mode + * + * @return builder + * + */ + public Builder maxScaleInstance(@Nullable Output maxScaleInstance) { + $.maxScaleInstance = maxScaleInstance; + return this; + } + + /** + * @param maxScaleInstance Maximum number of instances in auto-scaled mode + * + * @return builder + * + */ + public Builder maxScaleInstance(Integer maxScaleInstance) { + return maxScaleInstance(Output.of(maxScaleInstance)); + } + + /** + * @param minScaleInstance Minimum number of instances in auto-scaled mode + * + * @return builder + * + */ + public Builder minScaleInstance(@Nullable Output minScaleInstance) { + $.minScaleInstance = minScaleInstance; + return this; + } + + /** + * @param minScaleInstance Minimum number of instances in auto-scaled mode + * + * @return builder + * + */ + public Builder minScaleInstance(Integer minScaleInstance) { + return minScaleInstance(Output.of(minScaleInstance)); + } + + /** + * @param nbInstance Number of instance running (input, mutually exclusive with parameter `autoscale`) * * @return builder * @@ -525,7 +673,7 @@ public Builder nbInstance(@Nullable Output nbInstance) { } /** - * @param nbInstance Number of instance running + * @param nbInstance Number of instance running (input, mutually exclusive with parameter `autoscale`) * * @return builder * diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/Server.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/Server.java new file mode 100644 index 00000000..09ccdff7 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/Server.java @@ -0,0 +1,548 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated; + +import com.ovhcloud.pulumi.ovh.Dedicated.ServerArgs; +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerState; +import com.ovhcloud.pulumi.ovh.Dedicated.outputs.ServerDetails; +import com.ovhcloud.pulumi.ovh.Dedicated.outputs.ServerIam; +import com.ovhcloud.pulumi.ovh.Dedicated.outputs.ServerOrder; +import com.ovhcloud.pulumi.ovh.Dedicated.outputs.ServerPlan; +import com.ovhcloud.pulumi.ovh.Dedicated.outputs.ServerPlanOption; +import com.ovhcloud.pulumi.ovh.Dedicated.outputs.ServerUserMetadata; +import com.ovhcloud.pulumi.ovh.Utilities; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.Boolean; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * ## Import + * + * Dedicated servers can be imported using the `service_name`, e.g.: + * + * bash + * + * ```sh + * $ pulumi import ovh:Dedicated/server:Server server service_name + * ``` + * + */ +@ResourceType(type="ovh:Dedicated/server:Server") +public class Server extends com.pulumi.resources.CustomResource { + /** + * Dedicated AZ localisation + * + */ + @Export(name="availabilityZone", refs={String.class}, tree="[0]") + private Output availabilityZone; + + /** + * @return Dedicated AZ localisation + * + */ + public Output availabilityZone() { + return this.availabilityZone; + } + /** + * Boot id of the server + * + */ + @Export(name="bootId", refs={Double.class}, tree="[0]") + private Output bootId; + + /** + * @return Boot id of the server + * + */ + public Output bootId() { + return this.bootId; + } + /** + * Boot script of the server + * + */ + @Export(name="bootScript", refs={String.class}, tree="[0]") + private Output bootScript; + + /** + * @return Boot script of the server + * + */ + public Output bootScript() { + return this.bootScript; + } + /** + * Dedicated server commercial range + * + */ + @Export(name="commercialRange", refs={String.class}, tree="[0]") + private Output commercialRange; + + /** + * @return Dedicated server commercial range + * + */ + public Output commercialRange() { + return this.commercialRange; + } + /** + * Dedicated datacenter localisation (bhs1,bhs2,...) + * + */ + @Export(name="datacenter", refs={String.class}, tree="[0]") + private Output datacenter; + + /** + * @return Dedicated datacenter localisation (bhs1,bhs2,...) + * + */ + public Output datacenter() { + return this.datacenter; + } + /** + * A structure describing informations about installation custom + * + */ + @Export(name="details", refs={ServerDetails.class}, tree="[0]") + private Output details; + + /** + * @return A structure describing informations about installation custom + * + */ + public Output> details() { + return Codegen.optional(this.details); + } + /** + * Resource display name + * + */ + @Export(name="displayName", refs={String.class}, tree="[0]") + private Output displayName; + + /** + * @return Resource display name + * + */ + public Output displayName() { + return this.displayName; + } + /** + * IAM resource information + * + */ + @Export(name="iam", refs={ServerIam.class}, tree="[0]") + private Output iam; + + /** + * @return IAM resource information + * + */ + public Output iam() { + return this.iam; + } + /** + * Dedicated server ip (IPv4) + * + */ + @Export(name="ip", refs={String.class}, tree="[0]") + private Output ip; + + /** + * @return Dedicated server ip (IPv4) + * + */ + public Output ip() { + return this.ip; + } + /** + * Link speed of the server + * + */ + @Export(name="linkSpeed", refs={Double.class}, tree="[0]") + private Output linkSpeed; + + /** + * @return Link speed of the server + * + */ + public Output linkSpeed() { + return this.linkSpeed; + } + /** + * Icmp monitoring state + * + */ + @Export(name="monitoring", refs={Boolean.class}, tree="[0]") + private Output monitoring; + + /** + * @return Icmp monitoring state + * + */ + public Output monitoring() { + return this.monitoring; + } + /** + * Dedicated server name + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Dedicated server name + * + */ + public Output name() { + return this.name; + } + @Export(name="newUpgradeSystem", refs={Boolean.class}, tree="[0]") + private Output newUpgradeSystem; + + public Output newUpgradeSystem() { + return this.newUpgradeSystem; + } + /** + * Prevent datacenter intervention + * + */ + @Export(name="noIntervention", refs={Boolean.class}, tree="[0]") + private Output noIntervention; + + /** + * @return Prevent datacenter intervention + * + */ + public Output noIntervention() { + return this.noIntervention; + } + /** + * Details about an Order + * + */ + @Export(name="order", refs={ServerOrder.class}, tree="[0]") + private Output order; + + /** + * @return Details about an Order + * + */ + public Output order() { + return this.order; + } + /** + * Operating system + * + */ + @Export(name="os", refs={String.class}, tree="[0]") + private Output os; + + /** + * @return Operating system + * + */ + public Output os() { + return this.os; + } + /** + * OVH subsidiaries + * + */ + @Export(name="ovhSubsidiary", refs={String.class}, tree="[0]") + private Output ovhSubsidiary; + + /** + * @return OVH subsidiaries + * + */ + public Output ovhSubsidiary() { + return this.ovhSubsidiary; + } + /** + * Partition scheme name + * + */ + @Export(name="partitionSchemeName", refs={String.class}, tree="[0]") + private Output partitionSchemeName; + + /** + * @return Partition scheme name + * + */ + public Output> partitionSchemeName() { + return Codegen.optional(this.partitionSchemeName); + } + @Export(name="planOptions", refs={List.class,ServerPlanOption.class}, tree="[0,1]") + private Output> planOptions; + + public Output> planOptions() { + return this.planOptions; + } + @Export(name="plans", refs={List.class,ServerPlan.class}, tree="[0,1]") + private Output> plans; + + public Output> plans() { + return this.plans; + } + /** + * Power state of the server (poweron, poweroff) + * + */ + @Export(name="powerState", refs={String.class}, tree="[0]") + private Output powerState; + + /** + * @return Power state of the server (poweron, poweroff) + * + */ + public Output powerState() { + return this.powerState; + } + /** + * Does this server have professional use option + * + */ + @Export(name="professionalUse", refs={Boolean.class}, tree="[0]") + private Output professionalUse; + + /** + * @return Does this server have professional use option + * + */ + public Output professionalUse() { + return this.professionalUse; + } + /** + * Rack id of the server + * + */ + @Export(name="rack", refs={String.class}, tree="[0]") + private Output rack; + + /** + * @return Rack id of the server + * + */ + public Output rack() { + return this.rack; + } + /** + * Dedicated region localisation + * + */ + @Export(name="region", refs={String.class}, tree="[0]") + private Output region; + + /** + * @return Dedicated region localisation + * + */ + public Output region() { + return this.region; + } + /** + * Rescue mail of the server + * + */ + @Export(name="rescueMail", refs={String.class}, tree="[0]") + private Output rescueMail; + + /** + * @return Rescue mail of the server + * + */ + public Output rescueMail() { + return this.rescueMail; + } + /** + * Public SSH Key used in the rescue mode + * + */ + @Export(name="rescueSshKey", refs={String.class}, tree="[0]") + private Output rescueSshKey; + + /** + * @return Public SSH Key used in the rescue mode + * + */ + public Output rescueSshKey() { + return this.rescueSshKey; + } + /** + * Dedicated server reverse + * + */ + @Export(name="reverse", refs={String.class}, tree="[0]") + private Output reverse; + + /** + * @return Dedicated server reverse + * + */ + public Output reverse() { + return this.reverse; + } + /** + * Root device of the server + * + */ + @Export(name="rootDevice", refs={String.class}, tree="[0]") + private Output rootDevice; + + /** + * @return Root device of the server + * + */ + public Output rootDevice() { + return this.rootDevice; + } + /** + * Server id + * + */ + @Export(name="serverId", refs={Double.class}, tree="[0]") + private Output serverId; + + /** + * @return Server id + * + */ + public Output serverId() { + return this.serverId; + } + /** + * The service_name of your dedicated server + * + */ + @Export(name="serviceName", refs={String.class}, tree="[0]") + private Output serviceName; + + /** + * @return The service_name of your dedicated server + * + */ + public Output serviceName() { + return this.serviceName; + } + /** + * All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + * + */ + @Export(name="state", refs={String.class}, tree="[0]") + private Output state; + + /** + * @return All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + * + */ + public Output state() { + return this.state; + } + /** + * Dedicated server support level (critical, fastpath, gs, pro) + * + */ + @Export(name="supportLevel", refs={String.class}, tree="[0]") + private Output supportLevel; + + /** + * @return Dedicated server support level (critical, fastpath, gs, pro) + * + */ + public Output supportLevel() { + return this.supportLevel; + } + /** + * Template name + * + */ + @Export(name="templateName", refs={String.class}, tree="[0]") + private Output templateName; + + /** + * @return Template name + * + */ + public Output> templateName() { + return Codegen.optional(this.templateName); + } + /** + * Metadata + * + */ + @Export(name="userMetadatas", refs={List.class,ServerUserMetadata.class}, tree="[0,1]") + private Output> userMetadatas; + + /** + * @return Metadata + * + */ + public Output>> userMetadatas() { + return Codegen.optional(this.userMetadatas); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Server(java.lang.String name) { + this(name, ServerArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Server(java.lang.String name, ServerArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public Server(java.lang.String name, ServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("ovh:Dedicated/server:Server", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private Server(java.lang.String name, Output id, @Nullable ServerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("ovh:Dedicated/server:Server", name, state, makeResourceOptions(options, id), false); + } + + private static ServerArgs makeArgs(ServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServerArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static Server get(java.lang.String name, Output id, @Nullable ServerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Server(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/ServerArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/ServerArgs.java new file mode 100644 index 00000000..43fbe8bf --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/ServerArgs.java @@ -0,0 +1,627 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated; + +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerDetailsArgs; +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerPlanArgs; +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerPlanOptionArgs; +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerUserMetadataArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ServerArgs extends com.pulumi.resources.ResourceArgs { + + public static final ServerArgs Empty = new ServerArgs(); + + /** + * Boot id of the server + * + */ + @Import(name="bootId") + private @Nullable Output bootId; + + /** + * @return Boot id of the server + * + */ + public Optional> bootId() { + return Optional.ofNullable(this.bootId); + } + + /** + * Boot script of the server + * + */ + @Import(name="bootScript") + private @Nullable Output bootScript; + + /** + * @return Boot script of the server + * + */ + public Optional> bootScript() { + return Optional.ofNullable(this.bootScript); + } + + /** + * A structure describing informations about installation custom + * + */ + @Import(name="details") + private @Nullable Output details; + + /** + * @return A structure describing informations about installation custom + * + */ + public Optional> details() { + return Optional.ofNullable(this.details); + } + + /** + * Resource display name + * + */ + @Import(name="displayName") + private @Nullable Output displayName; + + /** + * @return Resource display name + * + */ + public Optional> displayName() { + return Optional.ofNullable(this.displayName); + } + + /** + * Icmp monitoring state + * + */ + @Import(name="monitoring") + private @Nullable Output monitoring; + + /** + * @return Icmp monitoring state + * + */ + public Optional> monitoring() { + return Optional.ofNullable(this.monitoring); + } + + /** + * Prevent datacenter intervention + * + */ + @Import(name="noIntervention") + private @Nullable Output noIntervention; + + /** + * @return Prevent datacenter intervention + * + */ + public Optional> noIntervention() { + return Optional.ofNullable(this.noIntervention); + } + + /** + * OVH subsidiaries + * + */ + @Import(name="ovhSubsidiary", required=true) + private Output ovhSubsidiary; + + /** + * @return OVH subsidiaries + * + */ + public Output ovhSubsidiary() { + return this.ovhSubsidiary; + } + + /** + * Partition scheme name + * + */ + @Import(name="partitionSchemeName") + private @Nullable Output partitionSchemeName; + + /** + * @return Partition scheme name + * + */ + public Optional> partitionSchemeName() { + return Optional.ofNullable(this.partitionSchemeName); + } + + @Import(name="planOptions") + private @Nullable Output> planOptions; + + public Optional>> planOptions() { + return Optional.ofNullable(this.planOptions); + } + + @Import(name="plans") + private @Nullable Output> plans; + + public Optional>> plans() { + return Optional.ofNullable(this.plans); + } + + /** + * Rescue mail of the server + * + */ + @Import(name="rescueMail") + private @Nullable Output rescueMail; + + /** + * @return Rescue mail of the server + * + */ + public Optional> rescueMail() { + return Optional.ofNullable(this.rescueMail); + } + + /** + * Public SSH Key used in the rescue mode + * + */ + @Import(name="rescueSshKey") + private @Nullable Output rescueSshKey; + + /** + * @return Public SSH Key used in the rescue mode + * + */ + public Optional> rescueSshKey() { + return Optional.ofNullable(this.rescueSshKey); + } + + /** + * Root device of the server + * + */ + @Import(name="rootDevice") + private @Nullable Output rootDevice; + + /** + * @return Root device of the server + * + */ + public Optional> rootDevice() { + return Optional.ofNullable(this.rootDevice); + } + + /** + * All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + * + */ + @Import(name="state") + private @Nullable Output state; + + /** + * @return All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + * + */ + public Optional> state() { + return Optional.ofNullable(this.state); + } + + /** + * Template name + * + */ + @Import(name="templateName") + private @Nullable Output templateName; + + /** + * @return Template name + * + */ + public Optional> templateName() { + return Optional.ofNullable(this.templateName); + } + + /** + * Metadata + * + */ + @Import(name="userMetadatas") + private @Nullable Output> userMetadatas; + + /** + * @return Metadata + * + */ + public Optional>> userMetadatas() { + return Optional.ofNullable(this.userMetadatas); + } + + private ServerArgs() {} + + private ServerArgs(ServerArgs $) { + this.bootId = $.bootId; + this.bootScript = $.bootScript; + this.details = $.details; + this.displayName = $.displayName; + this.monitoring = $.monitoring; + this.noIntervention = $.noIntervention; + this.ovhSubsidiary = $.ovhSubsidiary; + this.partitionSchemeName = $.partitionSchemeName; + this.planOptions = $.planOptions; + this.plans = $.plans; + this.rescueMail = $.rescueMail; + this.rescueSshKey = $.rescueSshKey; + this.rootDevice = $.rootDevice; + this.state = $.state; + this.templateName = $.templateName; + this.userMetadatas = $.userMetadatas; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ServerArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ServerArgs $; + + public Builder() { + $ = new ServerArgs(); + } + + public Builder(ServerArgs defaults) { + $ = new ServerArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param bootId Boot id of the server + * + * @return builder + * + */ + public Builder bootId(@Nullable Output bootId) { + $.bootId = bootId; + return this; + } + + /** + * @param bootId Boot id of the server + * + * @return builder + * + */ + public Builder bootId(Double bootId) { + return bootId(Output.of(bootId)); + } + + /** + * @param bootScript Boot script of the server + * + * @return builder + * + */ + public Builder bootScript(@Nullable Output bootScript) { + $.bootScript = bootScript; + return this; + } + + /** + * @param bootScript Boot script of the server + * + * @return builder + * + */ + public Builder bootScript(String bootScript) { + return bootScript(Output.of(bootScript)); + } + + /** + * @param details A structure describing informations about installation custom + * + * @return builder + * + */ + public Builder details(@Nullable Output details) { + $.details = details; + return this; + } + + /** + * @param details A structure describing informations about installation custom + * + * @return builder + * + */ + public Builder details(ServerDetailsArgs details) { + return details(Output.of(details)); + } + + /** + * @param displayName Resource display name + * + * @return builder + * + */ + public Builder displayName(@Nullable Output displayName) { + $.displayName = displayName; + return this; + } + + /** + * @param displayName Resource display name + * + * @return builder + * + */ + public Builder displayName(String displayName) { + return displayName(Output.of(displayName)); + } + + /** + * @param monitoring Icmp monitoring state + * + * @return builder + * + */ + public Builder monitoring(@Nullable Output monitoring) { + $.monitoring = monitoring; + return this; + } + + /** + * @param monitoring Icmp monitoring state + * + * @return builder + * + */ + public Builder monitoring(Boolean monitoring) { + return monitoring(Output.of(monitoring)); + } + + /** + * @param noIntervention Prevent datacenter intervention + * + * @return builder + * + */ + public Builder noIntervention(@Nullable Output noIntervention) { + $.noIntervention = noIntervention; + return this; + } + + /** + * @param noIntervention Prevent datacenter intervention + * + * @return builder + * + */ + public Builder noIntervention(Boolean noIntervention) { + return noIntervention(Output.of(noIntervention)); + } + + /** + * @param ovhSubsidiary OVH subsidiaries + * + * @return builder + * + */ + public Builder ovhSubsidiary(Output ovhSubsidiary) { + $.ovhSubsidiary = ovhSubsidiary; + return this; + } + + /** + * @param ovhSubsidiary OVH subsidiaries + * + * @return builder + * + */ + public Builder ovhSubsidiary(String ovhSubsidiary) { + return ovhSubsidiary(Output.of(ovhSubsidiary)); + } + + /** + * @param partitionSchemeName Partition scheme name + * + * @return builder + * + */ + public Builder partitionSchemeName(@Nullable Output partitionSchemeName) { + $.partitionSchemeName = partitionSchemeName; + return this; + } + + /** + * @param partitionSchemeName Partition scheme name + * + * @return builder + * + */ + public Builder partitionSchemeName(String partitionSchemeName) { + return partitionSchemeName(Output.of(partitionSchemeName)); + } + + public Builder planOptions(@Nullable Output> planOptions) { + $.planOptions = planOptions; + return this; + } + + public Builder planOptions(List planOptions) { + return planOptions(Output.of(planOptions)); + } + + public Builder planOptions(ServerPlanOptionArgs... planOptions) { + return planOptions(List.of(planOptions)); + } + + public Builder plans(@Nullable Output> plans) { + $.plans = plans; + return this; + } + + public Builder plans(List plans) { + return plans(Output.of(plans)); + } + + public Builder plans(ServerPlanArgs... plans) { + return plans(List.of(plans)); + } + + /** + * @param rescueMail Rescue mail of the server + * + * @return builder + * + */ + public Builder rescueMail(@Nullable Output rescueMail) { + $.rescueMail = rescueMail; + return this; + } + + /** + * @param rescueMail Rescue mail of the server + * + * @return builder + * + */ + public Builder rescueMail(String rescueMail) { + return rescueMail(Output.of(rescueMail)); + } + + /** + * @param rescueSshKey Public SSH Key used in the rescue mode + * + * @return builder + * + */ + public Builder rescueSshKey(@Nullable Output rescueSshKey) { + $.rescueSshKey = rescueSshKey; + return this; + } + + /** + * @param rescueSshKey Public SSH Key used in the rescue mode + * + * @return builder + * + */ + public Builder rescueSshKey(String rescueSshKey) { + return rescueSshKey(Output.of(rescueSshKey)); + } + + /** + * @param rootDevice Root device of the server + * + * @return builder + * + */ + public Builder rootDevice(@Nullable Output rootDevice) { + $.rootDevice = rootDevice; + return this; + } + + /** + * @param rootDevice Root device of the server + * + * @return builder + * + */ + public Builder rootDevice(String rootDevice) { + return rootDevice(Output.of(rootDevice)); + } + + /** + * @param state All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + * + * @return builder + * + */ + public Builder state(@Nullable Output state) { + $.state = state; + return this; + } + + /** + * @param state All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + * + * @return builder + * + */ + public Builder state(String state) { + return state(Output.of(state)); + } + + /** + * @param templateName Template name + * + * @return builder + * + */ + public Builder templateName(@Nullable Output templateName) { + $.templateName = templateName; + return this; + } + + /** + * @param templateName Template name + * + * @return builder + * + */ + public Builder templateName(String templateName) { + return templateName(Output.of(templateName)); + } + + /** + * @param userMetadatas Metadata + * + * @return builder + * + */ + public Builder userMetadatas(@Nullable Output> userMetadatas) { + $.userMetadatas = userMetadatas; + return this; + } + + /** + * @param userMetadatas Metadata + * + * @return builder + * + */ + public Builder userMetadatas(List userMetadatas) { + return userMetadatas(Output.of(userMetadatas)); + } + + /** + * @param userMetadatas Metadata + * + * @return builder + * + */ + public Builder userMetadatas(ServerUserMetadataArgs... userMetadatas) { + return userMetadatas(List.of(userMetadatas)); + } + + public ServerArgs build() { + if ($.ovhSubsidiary == null) { + throw new MissingRequiredPropertyException("ServerArgs", "ovhSubsidiary"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/ServerInstallTask.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/ServerInstallTask.java index 828e572d..9afbbb9b 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/ServerInstallTask.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/ServerInstallTask.java @@ -61,8 +61,7 @@ * .baseTemplateName("debian12_64") * .templateName("mydebian12") * .customization(InstallationTemplateCustomizationArgs.builder() - * .postInstallationScriptLink("http://test") - * .postInstallationScriptReturn("ok") + * .customHostname("mytest") * .build()) * .build()); * @@ -73,10 +72,20 @@ * .details(ServerInstallTaskDetailsArgs.builder() * .customHostname("mytest") * .build()) - * .userMetadatas(ServerInstallTaskUserMetadataArgs.builder() - * .key("sshKey") - * .value("ssh-ed25519 AAAAC3...") - * .build()) + * .userMetadatas( + * ServerInstallTaskUserMetadataArgs.builder() + * .key("sshKey") + * .value("ssh-ed25519 AAAAC3...") + * .build(), + * ServerInstallTaskUserMetadataArgs.builder() + * .key("postInstallationScript") + * .value(""" + * #!/bin/bash + * echo "coucou postInstallationScript" > /opt/coucou + * cat /etc/machine-id >> /opt/coucou + * date "+%Y-%m-%d %H:%M:%S" --utc >> /opt/coucou + * """) + * .build()) * .build()); * * } @@ -234,10 +243,19 @@ * .details(ServerInstallTaskDetailsArgs.builder() * .customHostname("mytest") * .build()) - * .userMetadatas(ServerInstallTaskUserMetadataArgs.builder() - * .key("language") - * .value("fr-fr") - * .build()) + * .userMetadatas( + * ServerInstallTaskUserMetadataArgs.builder() + * .key("language") + * .value("fr-fr") + * .build(), + * ServerInstallTaskUserMetadataArgs.builder() + * .key("postInstallationScript") + * .value(""" + * coucou postInstallationScriptPowerShell" | Out-File -FilePath "c:\ovhupd\script\coucou.txt" + * (Get-ItemProperty -LiteralPath "Registry::HKLM\SOFTWARE\Microsoft\Cryptography" -Name "MachineGuid").MachineGuid | Out-File -FilePath "c:\ovhupd\script\coucou.txt" -Append + * (Get-Date).ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss") | Out-File -FilePath "c:\ovhupd\script\coucou.txt" -Append + * """) + * .build()) * .build()); * * } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/GetServerBootsArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/GetServerBootsArgs.java index 6ee13ba6..fcfca38b 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/GetServerBootsArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/GetServerBootsArgs.java @@ -17,14 +17,14 @@ public final class GetServerBootsArgs extends com.pulumi.resources.InvokeArgs { public static final GetServerBootsArgs Empty = new GetServerBootsArgs(); /** - * Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + * Filter the value of bootType property (harddisk, rescue, internal, network) * */ @Import(name="bootType") private @Nullable Output bootType; /** - * @return Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + * @return Filter the value of bootType property (harddisk, rescue, internal, network) * */ public Optional> bootType() { @@ -88,7 +88,7 @@ public Builder(GetServerBootsArgs defaults) { } /** - * @param bootType Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + * @param bootType Filter the value of bootType property (harddisk, rescue, internal, network) * * @return builder * @@ -99,7 +99,7 @@ public Builder bootType(@Nullable Output bootType) { } /** - * @param bootType Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + * @param bootType Filter the value of bootType property (harddisk, rescue, internal, network) * * @return builder * diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/GetServerBootsPlainArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/GetServerBootsPlainArgs.java index 3ae03c8f..e3e09b8a 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/GetServerBootsPlainArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/GetServerBootsPlainArgs.java @@ -16,14 +16,14 @@ public final class GetServerBootsPlainArgs extends com.pulumi.resources.InvokeAr public static final GetServerBootsPlainArgs Empty = new GetServerBootsPlainArgs(); /** - * Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + * Filter the value of bootType property (harddisk, rescue, internal, network) * */ @Import(name="bootType") private @Nullable String bootType; /** - * @return Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + * @return Filter the value of bootType property (harddisk, rescue, internal, network) * */ public Optional bootType() { @@ -87,7 +87,7 @@ public Builder(GetServerBootsPlainArgs defaults) { } /** - * @param bootType Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + * @param bootType Filter the value of bootType property (harddisk, rescue, internal, network) * * @return builder * diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerDetailsArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerDetailsArgs.java new file mode 100644 index 00000000..212115d7 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerDetailsArgs.java @@ -0,0 +1,196 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ServerDetailsArgs extends com.pulumi.resources.ResourceArgs { + + public static final ServerDetailsArgs Empty = new ServerDetailsArgs(); + + /** + * Personnal hostname to use in server reinstallation + * + */ + @Import(name="customHostname") + private @Nullable Output customHostname; + + /** + * @return Personnal hostname to use in server reinstallation + * + */ + public Optional> customHostname() { + return Optional.ofNullable(this.customHostname); + } + + /** + * Disk group id to process install on (only available for some templates) + * + */ + @Import(name="diskGroupId") + private @Nullable Output diskGroupId; + + /** + * @return Disk group id to process install on (only available for some templates) + * + */ + public Optional> diskGroupId() { + return Optional.ofNullable(this.diskGroupId); + } + + /** + * true if you want to install only on the first disk + * + */ + @Import(name="noRaid") + private @Nullable Output noRaid; + + /** + * @return true if you want to install only on the first disk + * + */ + public Optional> noRaid() { + return Optional.ofNullable(this.noRaid); + } + + /** + * Number of devices to use for system's software RAID + * + */ + @Import(name="softRaidDevices") + private @Nullable Output softRaidDevices; + + /** + * @return Number of devices to use for system's software RAID + * + */ + public Optional> softRaidDevices() { + return Optional.ofNullable(this.softRaidDevices); + } + + private ServerDetailsArgs() {} + + private ServerDetailsArgs(ServerDetailsArgs $) { + this.customHostname = $.customHostname; + this.diskGroupId = $.diskGroupId; + this.noRaid = $.noRaid; + this.softRaidDevices = $.softRaidDevices; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ServerDetailsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ServerDetailsArgs $; + + public Builder() { + $ = new ServerDetailsArgs(); + } + + public Builder(ServerDetailsArgs defaults) { + $ = new ServerDetailsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param customHostname Personnal hostname to use in server reinstallation + * + * @return builder + * + */ + public Builder customHostname(@Nullable Output customHostname) { + $.customHostname = customHostname; + return this; + } + + /** + * @param customHostname Personnal hostname to use in server reinstallation + * + * @return builder + * + */ + public Builder customHostname(String customHostname) { + return customHostname(Output.of(customHostname)); + } + + /** + * @param diskGroupId Disk group id to process install on (only available for some templates) + * + * @return builder + * + */ + public Builder diskGroupId(@Nullable Output diskGroupId) { + $.diskGroupId = diskGroupId; + return this; + } + + /** + * @param diskGroupId Disk group id to process install on (only available for some templates) + * + * @return builder + * + */ + public Builder diskGroupId(Double diskGroupId) { + return diskGroupId(Output.of(diskGroupId)); + } + + /** + * @param noRaid true if you want to install only on the first disk + * + * @return builder + * + */ + public Builder noRaid(@Nullable Output noRaid) { + $.noRaid = noRaid; + return this; + } + + /** + * @param noRaid true if you want to install only on the first disk + * + * @return builder + * + */ + public Builder noRaid(Boolean noRaid) { + return noRaid(Output.of(noRaid)); + } + + /** + * @param softRaidDevices Number of devices to use for system's software RAID + * + * @return builder + * + */ + public Builder softRaidDevices(@Nullable Output softRaidDevices) { + $.softRaidDevices = softRaidDevices; + return this; + } + + /** + * @param softRaidDevices Number of devices to use for system's software RAID + * + * @return builder + * + */ + public Builder softRaidDevices(Double softRaidDevices) { + return softRaidDevices(Output.of(softRaidDevices)); + } + + public ServerDetailsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerIamArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerIamArgs.java new file mode 100644 index 00000000..7902eabf --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerIamArgs.java @@ -0,0 +1,195 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ServerIamArgs extends com.pulumi.resources.ResourceArgs { + + public static final ServerIamArgs Empty = new ServerIamArgs(); + + /** + * Resource display name + * + */ + @Import(name="displayName") + private @Nullable Output displayName; + + /** + * @return Resource display name + * + */ + public Optional> displayName() { + return Optional.ofNullable(this.displayName); + } + + /** + * Unique identifier of the resource in the IAM + * + */ + @Import(name="id") + private @Nullable Output id; + + /** + * @return Unique identifier of the resource in the IAM + * + */ + public Optional> id() { + return Optional.ofNullable(this.id); + } + + /** + * Resource tags. Tags that were internally computed are prefixed with `ovh:` + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return Resource tags. Tags that were internally computed are prefixed with `ovh:` + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * URN of the private database, used when writing IAM policies + * + */ + @Import(name="urn") + private @Nullable Output urn; + + /** + * @return URN of the private database, used when writing IAM policies + * + */ + public Optional> urn() { + return Optional.ofNullable(this.urn); + } + + private ServerIamArgs() {} + + private ServerIamArgs(ServerIamArgs $) { + this.displayName = $.displayName; + this.id = $.id; + this.tags = $.tags; + this.urn = $.urn; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ServerIamArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ServerIamArgs $; + + public Builder() { + $ = new ServerIamArgs(); + } + + public Builder(ServerIamArgs defaults) { + $ = new ServerIamArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param displayName Resource display name + * + * @return builder + * + */ + public Builder displayName(@Nullable Output displayName) { + $.displayName = displayName; + return this; + } + + /** + * @param displayName Resource display name + * + * @return builder + * + */ + public Builder displayName(String displayName) { + return displayName(Output.of(displayName)); + } + + /** + * @param id Unique identifier of the resource in the IAM + * + * @return builder + * + */ + public Builder id(@Nullable Output id) { + $.id = id; + return this; + } + + /** + * @param id Unique identifier of the resource in the IAM + * + * @return builder + * + */ + public Builder id(String id) { + return id(Output.of(id)); + } + + /** + * @param tags Resource tags. Tags that were internally computed are prefixed with `ovh:` + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags Resource tags. Tags that were internally computed are prefixed with `ovh:` + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param urn URN of the private database, used when writing IAM policies + * + * @return builder + * + */ + public Builder urn(@Nullable Output urn) { + $.urn = urn; + return this; + } + + /** + * @param urn URN of the private database, used when writing IAM policies + * + * @return builder + * + */ + public Builder urn(String urn) { + return urn(Output.of(urn)); + } + + public ServerIamArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerInstallTaskDetailsArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerInstallTaskDetailsArgs.java index 3a66b03e..9911e533 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerInstallTaskDetailsArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerInstallTaskDetailsArgs.java @@ -62,36 +62,6 @@ public Optional> noRaid() { return Optional.ofNullable(this.noRaid); } - /** - * Indicate the URL where your postinstall customisation script is located. - * - */ - @Import(name="postInstallationScriptLink") - private @Nullable Output postInstallationScriptLink; - - /** - * @return Indicate the URL where your postinstall customisation script is located. - * - */ - public Optional> postInstallationScriptLink() { - return Optional.ofNullable(this.postInstallationScriptLink); - } - - /** - * Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - */ - @Import(name="postInstallationScriptReturn") - private @Nullable Output postInstallationScriptReturn; - - /** - * @return Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - */ - public Optional> postInstallationScriptReturn() { - return Optional.ofNullable(this.postInstallationScriptReturn); - } - /** * soft raid devices. * @@ -113,8 +83,6 @@ private ServerInstallTaskDetailsArgs(ServerInstallTaskDetailsArgs $) { this.customHostname = $.customHostname; this.diskGroupId = $.diskGroupId; this.noRaid = $.noRaid; - this.postInstallationScriptLink = $.postInstallationScriptLink; - this.postInstallationScriptReturn = $.postInstallationScriptReturn; this.softRaidDevices = $.softRaidDevices; } @@ -199,48 +167,6 @@ public Builder noRaid(Boolean noRaid) { return noRaid(Output.of(noRaid)); } - /** - * @param postInstallationScriptLink Indicate the URL where your postinstall customisation script is located. - * - * @return builder - * - */ - public Builder postInstallationScriptLink(@Nullable Output postInstallationScriptLink) { - $.postInstallationScriptLink = postInstallationScriptLink; - return this; - } - - /** - * @param postInstallationScriptLink Indicate the URL where your postinstall customisation script is located. - * - * @return builder - * - */ - public Builder postInstallationScriptLink(String postInstallationScriptLink) { - return postInstallationScriptLink(Output.of(postInstallationScriptLink)); - } - - /** - * @param postInstallationScriptReturn Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - * @return builder - * - */ - public Builder postInstallationScriptReturn(@Nullable Output postInstallationScriptReturn) { - $.postInstallationScriptReturn = postInstallationScriptReturn; - return this; - } - - /** - * @param postInstallationScriptReturn Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - * @return builder - * - */ - public Builder postInstallationScriptReturn(String postInstallationScriptReturn) { - return postInstallationScriptReturn(Output.of(postInstallationScriptReturn)); - } - /** * @param softRaidDevices soft raid devices. * diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerOrderArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerOrderArgs.java new file mode 100644 index 00000000..10a0c0d8 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerOrderArgs.java @@ -0,0 +1,147 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.inputs; + +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerOrderDetailArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ServerOrderArgs extends com.pulumi.resources.ResourceArgs { + + public static final ServerOrderArgs Empty = new ServerOrderArgs(); + + @Import(name="date") + private @Nullable Output date; + + public Optional> date() { + return Optional.ofNullable(this.date); + } + + /** + * Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + * + */ + @Import(name="details") + private @Nullable Output> details; + + /** + * @return Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + * + */ + public Optional>> details() { + return Optional.ofNullable(this.details); + } + + @Import(name="expirationDate") + private @Nullable Output expirationDate; + + public Optional> expirationDate() { + return Optional.ofNullable(this.expirationDate); + } + + @Import(name="orderId") + private @Nullable Output orderId; + + public Optional> orderId() { + return Optional.ofNullable(this.orderId); + } + + private ServerOrderArgs() {} + + private ServerOrderArgs(ServerOrderArgs $) { + this.date = $.date; + this.details = $.details; + this.expirationDate = $.expirationDate; + this.orderId = $.orderId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ServerOrderArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ServerOrderArgs $; + + public Builder() { + $ = new ServerOrderArgs(); + } + + public Builder(ServerOrderArgs defaults) { + $ = new ServerOrderArgs(Objects.requireNonNull(defaults)); + } + + public Builder date(@Nullable Output date) { + $.date = date; + return this; + } + + public Builder date(String date) { + return date(Output.of(date)); + } + + /** + * @param details Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + * + * @return builder + * + */ + public Builder details(@Nullable Output> details) { + $.details = details; + return this; + } + + /** + * @param details Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + * + * @return builder + * + */ + public Builder details(List details) { + return details(Output.of(details)); + } + + /** + * @param details Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + * + * @return builder + * + */ + public Builder details(ServerOrderDetailArgs... details) { + return details(List.of(details)); + } + + public Builder expirationDate(@Nullable Output expirationDate) { + $.expirationDate = expirationDate; + return this; + } + + public Builder expirationDate(String expirationDate) { + return expirationDate(Output.of(expirationDate)); + } + + public Builder orderId(@Nullable Output orderId) { + $.orderId = orderId; + return this; + } + + public Builder orderId(Double orderId) { + return orderId(Output.of(orderId)); + } + + public ServerOrderArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerOrderDetailArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerOrderDetailArgs.java new file mode 100644 index 00000000..7a0e66d3 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerOrderDetailArgs.java @@ -0,0 +1,152 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ServerOrderDetailArgs extends com.pulumi.resources.ResourceArgs { + + public static final ServerOrderDetailArgs Empty = new ServerOrderDetailArgs(); + + @Import(name="description") + private @Nullable Output description; + + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Product type of item in order + * + */ + @Import(name="detailType") + private @Nullable Output detailType; + + /** + * @return Product type of item in order + * + */ + public Optional> detailType() { + return Optional.ofNullable(this.detailType); + } + + @Import(name="domain") + private @Nullable Output domain; + + public Optional> domain() { + return Optional.ofNullable(this.domain); + } + + @Import(name="orderDetailId") + private @Nullable Output orderDetailId; + + public Optional> orderDetailId() { + return Optional.ofNullable(this.orderDetailId); + } + + @Import(name="quantity") + private @Nullable Output quantity; + + public Optional> quantity() { + return Optional.ofNullable(this.quantity); + } + + private ServerOrderDetailArgs() {} + + private ServerOrderDetailArgs(ServerOrderDetailArgs $) { + this.description = $.description; + this.detailType = $.detailType; + this.domain = $.domain; + this.orderDetailId = $.orderDetailId; + this.quantity = $.quantity; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ServerOrderDetailArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ServerOrderDetailArgs $; + + public Builder() { + $ = new ServerOrderDetailArgs(); + } + + public Builder(ServerOrderDetailArgs defaults) { + $ = new ServerOrderDetailArgs(Objects.requireNonNull(defaults)); + } + + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param detailType Product type of item in order + * + * @return builder + * + */ + public Builder detailType(@Nullable Output detailType) { + $.detailType = detailType; + return this; + } + + /** + * @param detailType Product type of item in order + * + * @return builder + * + */ + public Builder detailType(String detailType) { + return detailType(Output.of(detailType)); + } + + public Builder domain(@Nullable Output domain) { + $.domain = domain; + return this; + } + + public Builder domain(String domain) { + return domain(Output.of(domain)); + } + + public Builder orderDetailId(@Nullable Output orderDetailId) { + $.orderDetailId = orderDetailId; + return this; + } + + public Builder orderDetailId(Double orderDetailId) { + return orderDetailId(Output.of(orderDetailId)); + } + + public Builder quantity(@Nullable Output quantity) { + $.quantity = quantity; + return this; + } + + public Builder quantity(String quantity) { + return quantity(Output.of(quantity)); + } + + public ServerOrderDetailArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanArgs.java new file mode 100644 index 00000000..7df2439b --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanArgs.java @@ -0,0 +1,265 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.inputs; + +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerPlanConfigurationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ServerPlanArgs extends com.pulumi.resources.ResourceArgs { + + public static final ServerPlanArgs Empty = new ServerPlanArgs(); + + @Import(name="configurations") + private @Nullable Output> configurations; + + public Optional>> configurations() { + return Optional.ofNullable(this.configurations); + } + + /** + * Duration selected for the purchase of the product + * + */ + @Import(name="duration", required=true) + private Output duration; + + /** + * @return Duration selected for the purchase of the product + * + */ + public Output duration() { + return this.duration; + } + + /** + * Cart item to be linked + * + */ + @Import(name="itemId") + private @Nullable Output itemId; + + /** + * @return Cart item to be linked + * + */ + public Optional> itemId() { + return Optional.ofNullable(this.itemId); + } + + /** + * Identifier of the option offer + * + */ + @Import(name="planCode", required=true) + private Output planCode; + + /** + * @return Identifier of the option offer + * + */ + public Output planCode() { + return this.planCode; + } + + /** + * Pricing mode selected for the purchase of the product + * + */ + @Import(name="pricingMode", required=true) + private Output pricingMode; + + /** + * @return Pricing mode selected for the purchase of the product + * + */ + public Output pricingMode() { + return this.pricingMode; + } + + /** + * Quantity of product desired + * + */ + @Import(name="quantity") + private @Nullable Output quantity; + + /** + * @return Quantity of product desired + * + */ + public Optional> quantity() { + return Optional.ofNullable(this.quantity); + } + + private ServerPlanArgs() {} + + private ServerPlanArgs(ServerPlanArgs $) { + this.configurations = $.configurations; + this.duration = $.duration; + this.itemId = $.itemId; + this.planCode = $.planCode; + this.pricingMode = $.pricingMode; + this.quantity = $.quantity; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ServerPlanArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ServerPlanArgs $; + + public Builder() { + $ = new ServerPlanArgs(); + } + + public Builder(ServerPlanArgs defaults) { + $ = new ServerPlanArgs(Objects.requireNonNull(defaults)); + } + + public Builder configurations(@Nullable Output> configurations) { + $.configurations = configurations; + return this; + } + + public Builder configurations(List configurations) { + return configurations(Output.of(configurations)); + } + + public Builder configurations(ServerPlanConfigurationArgs... configurations) { + return configurations(List.of(configurations)); + } + + /** + * @param duration Duration selected for the purchase of the product + * + * @return builder + * + */ + public Builder duration(Output duration) { + $.duration = duration; + return this; + } + + /** + * @param duration Duration selected for the purchase of the product + * + * @return builder + * + */ + public Builder duration(String duration) { + return duration(Output.of(duration)); + } + + /** + * @param itemId Cart item to be linked + * + * @return builder + * + */ + public Builder itemId(@Nullable Output itemId) { + $.itemId = itemId; + return this; + } + + /** + * @param itemId Cart item to be linked + * + * @return builder + * + */ + public Builder itemId(Double itemId) { + return itemId(Output.of(itemId)); + } + + /** + * @param planCode Identifier of the option offer + * + * @return builder + * + */ + public Builder planCode(Output planCode) { + $.planCode = planCode; + return this; + } + + /** + * @param planCode Identifier of the option offer + * + * @return builder + * + */ + public Builder planCode(String planCode) { + return planCode(Output.of(planCode)); + } + + /** + * @param pricingMode Pricing mode selected for the purchase of the product + * + * @return builder + * + */ + public Builder pricingMode(Output pricingMode) { + $.pricingMode = pricingMode; + return this; + } + + /** + * @param pricingMode Pricing mode selected for the purchase of the product + * + * @return builder + * + */ + public Builder pricingMode(String pricingMode) { + return pricingMode(Output.of(pricingMode)); + } + + /** + * @param quantity Quantity of product desired + * + * @return builder + * + */ + public Builder quantity(@Nullable Output quantity) { + $.quantity = quantity; + return this; + } + + /** + * @param quantity Quantity of product desired + * + * @return builder + * + */ + public Builder quantity(Double quantity) { + return quantity(Output.of(quantity)); + } + + public ServerPlanArgs build() { + if ($.duration == null) { + throw new MissingRequiredPropertyException("ServerPlanArgs", "duration"); + } + if ($.planCode == null) { + throw new MissingRequiredPropertyException("ServerPlanArgs", "planCode"); + } + if ($.pricingMode == null) { + throw new MissingRequiredPropertyException("ServerPlanArgs", "pricingMode"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanConfigurationArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanConfigurationArgs.java new file mode 100644 index 00000000..76b9059f --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanConfigurationArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class ServerPlanConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final ServerPlanConfigurationArgs Empty = new ServerPlanConfigurationArgs(); + + /** + * Label for your configuration item + * + */ + @Import(name="label", required=true) + private Output label; + + /** + * @return Label for your configuration item + * + */ + public Output label() { + return this.label; + } + + /** + * Value or resource URL on API.OVH.COM of your configuration item + * + */ + @Import(name="value", required=true) + private Output value; + + /** + * @return Value or resource URL on API.OVH.COM of your configuration item + * + */ + public Output value() { + return this.value; + } + + private ServerPlanConfigurationArgs() {} + + private ServerPlanConfigurationArgs(ServerPlanConfigurationArgs $) { + this.label = $.label; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ServerPlanConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ServerPlanConfigurationArgs $; + + public Builder() { + $ = new ServerPlanConfigurationArgs(); + } + + public Builder(ServerPlanConfigurationArgs defaults) { + $ = new ServerPlanConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param label Label for your configuration item + * + * @return builder + * + */ + public Builder label(Output label) { + $.label = label; + return this; + } + + /** + * @param label Label for your configuration item + * + * @return builder + * + */ + public Builder label(String label) { + return label(Output.of(label)); + } + + /** + * @param value Value or resource URL on API.OVH.COM of your configuration item + * + * @return builder + * + */ + public Builder value(Output value) { + $.value = value; + return this; + } + + /** + * @param value Value or resource URL on API.OVH.COM of your configuration item + * + * @return builder + * + */ + public Builder value(String value) { + return value(Output.of(value)); + } + + public ServerPlanConfigurationArgs build() { + if ($.label == null) { + throw new MissingRequiredPropertyException("ServerPlanConfigurationArgs", "label"); + } + if ($.value == null) { + throw new MissingRequiredPropertyException("ServerPlanConfigurationArgs", "value"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanOptionArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanOptionArgs.java new file mode 100644 index 00000000..6502ce36 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanOptionArgs.java @@ -0,0 +1,231 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.inputs; + +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerPlanOptionConfigurationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ServerPlanOptionArgs extends com.pulumi.resources.ResourceArgs { + + public static final ServerPlanOptionArgs Empty = new ServerPlanOptionArgs(); + + @Import(name="configurations") + private @Nullable Output> configurations; + + public Optional>> configurations() { + return Optional.ofNullable(this.configurations); + } + + /** + * Duration selected for the purchase of the product + * + */ + @Import(name="duration", required=true) + private Output duration; + + /** + * @return Duration selected for the purchase of the product + * + */ + public Output duration() { + return this.duration; + } + + /** + * Identifier of the option offer + * + */ + @Import(name="planCode", required=true) + private Output planCode; + + /** + * @return Identifier of the option offer + * + */ + public Output planCode() { + return this.planCode; + } + + /** + * Pricing mode selected for the purchase of the product + * + */ + @Import(name="pricingMode", required=true) + private Output pricingMode; + + /** + * @return Pricing mode selected for the purchase of the product + * + */ + public Output pricingMode() { + return this.pricingMode; + } + + /** + * Quantity of product desired + * + */ + @Import(name="quantity", required=true) + private Output quantity; + + /** + * @return Quantity of product desired + * + */ + public Output quantity() { + return this.quantity; + } + + private ServerPlanOptionArgs() {} + + private ServerPlanOptionArgs(ServerPlanOptionArgs $) { + this.configurations = $.configurations; + this.duration = $.duration; + this.planCode = $.planCode; + this.pricingMode = $.pricingMode; + this.quantity = $.quantity; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ServerPlanOptionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ServerPlanOptionArgs $; + + public Builder() { + $ = new ServerPlanOptionArgs(); + } + + public Builder(ServerPlanOptionArgs defaults) { + $ = new ServerPlanOptionArgs(Objects.requireNonNull(defaults)); + } + + public Builder configurations(@Nullable Output> configurations) { + $.configurations = configurations; + return this; + } + + public Builder configurations(List configurations) { + return configurations(Output.of(configurations)); + } + + public Builder configurations(ServerPlanOptionConfigurationArgs... configurations) { + return configurations(List.of(configurations)); + } + + /** + * @param duration Duration selected for the purchase of the product + * + * @return builder + * + */ + public Builder duration(Output duration) { + $.duration = duration; + return this; + } + + /** + * @param duration Duration selected for the purchase of the product + * + * @return builder + * + */ + public Builder duration(String duration) { + return duration(Output.of(duration)); + } + + /** + * @param planCode Identifier of the option offer + * + * @return builder + * + */ + public Builder planCode(Output planCode) { + $.planCode = planCode; + return this; + } + + /** + * @param planCode Identifier of the option offer + * + * @return builder + * + */ + public Builder planCode(String planCode) { + return planCode(Output.of(planCode)); + } + + /** + * @param pricingMode Pricing mode selected for the purchase of the product + * + * @return builder + * + */ + public Builder pricingMode(Output pricingMode) { + $.pricingMode = pricingMode; + return this; + } + + /** + * @param pricingMode Pricing mode selected for the purchase of the product + * + * @return builder + * + */ + public Builder pricingMode(String pricingMode) { + return pricingMode(Output.of(pricingMode)); + } + + /** + * @param quantity Quantity of product desired + * + * @return builder + * + */ + public Builder quantity(Output quantity) { + $.quantity = quantity; + return this; + } + + /** + * @param quantity Quantity of product desired + * + * @return builder + * + */ + public Builder quantity(Double quantity) { + return quantity(Output.of(quantity)); + } + + public ServerPlanOptionArgs build() { + if ($.duration == null) { + throw new MissingRequiredPropertyException("ServerPlanOptionArgs", "duration"); + } + if ($.planCode == null) { + throw new MissingRequiredPropertyException("ServerPlanOptionArgs", "planCode"); + } + if ($.pricingMode == null) { + throw new MissingRequiredPropertyException("ServerPlanOptionArgs", "pricingMode"); + } + if ($.quantity == null) { + throw new MissingRequiredPropertyException("ServerPlanOptionArgs", "quantity"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanOptionConfigurationArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanOptionConfigurationArgs.java new file mode 100644 index 00000000..00953901 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerPlanOptionConfigurationArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class ServerPlanOptionConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final ServerPlanOptionConfigurationArgs Empty = new ServerPlanOptionConfigurationArgs(); + + /** + * Label for your configuration item + * + */ + @Import(name="label", required=true) + private Output label; + + /** + * @return Label for your configuration item + * + */ + public Output label() { + return this.label; + } + + /** + * Value or resource URL on API.OVH.COM of your configuration item + * + */ + @Import(name="value", required=true) + private Output value; + + /** + * @return Value or resource URL on API.OVH.COM of your configuration item + * + */ + public Output value() { + return this.value; + } + + private ServerPlanOptionConfigurationArgs() {} + + private ServerPlanOptionConfigurationArgs(ServerPlanOptionConfigurationArgs $) { + this.label = $.label; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ServerPlanOptionConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ServerPlanOptionConfigurationArgs $; + + public Builder() { + $ = new ServerPlanOptionConfigurationArgs(); + } + + public Builder(ServerPlanOptionConfigurationArgs defaults) { + $ = new ServerPlanOptionConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param label Label for your configuration item + * + * @return builder + * + */ + public Builder label(Output label) { + $.label = label; + return this; + } + + /** + * @param label Label for your configuration item + * + * @return builder + * + */ + public Builder label(String label) { + return label(Output.of(label)); + } + + /** + * @param value Value or resource URL on API.OVH.COM of your configuration item + * + * @return builder + * + */ + public Builder value(Output value) { + $.value = value; + return this; + } + + /** + * @param value Value or resource URL on API.OVH.COM of your configuration item + * + * @return builder + * + */ + public Builder value(String value) { + return value(Output.of(value)); + } + + public ServerPlanOptionConfigurationArgs build() { + if ($.label == null) { + throw new MissingRequiredPropertyException("ServerPlanOptionConfigurationArgs", "label"); + } + if ($.value == null) { + throw new MissingRequiredPropertyException("ServerPlanOptionConfigurationArgs", "value"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerState.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerState.java new file mode 100644 index 00000000..11aa66b6 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerState.java @@ -0,0 +1,1271 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.inputs; + +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerDetailsArgs; +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerIamArgs; +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerOrderArgs; +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerPlanArgs; +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerPlanOptionArgs; +import com.ovhcloud.pulumi.ovh.Dedicated.inputs.ServerUserMetadataArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ServerState extends com.pulumi.resources.ResourceArgs { + + public static final ServerState Empty = new ServerState(); + + /** + * Dedicated AZ localisation + * + */ + @Import(name="availabilityZone") + private @Nullable Output availabilityZone; + + /** + * @return Dedicated AZ localisation + * + */ + public Optional> availabilityZone() { + return Optional.ofNullable(this.availabilityZone); + } + + /** + * Boot id of the server + * + */ + @Import(name="bootId") + private @Nullable Output bootId; + + /** + * @return Boot id of the server + * + */ + public Optional> bootId() { + return Optional.ofNullable(this.bootId); + } + + /** + * Boot script of the server + * + */ + @Import(name="bootScript") + private @Nullable Output bootScript; + + /** + * @return Boot script of the server + * + */ + public Optional> bootScript() { + return Optional.ofNullable(this.bootScript); + } + + /** + * Dedicated server commercial range + * + */ + @Import(name="commercialRange") + private @Nullable Output commercialRange; + + /** + * @return Dedicated server commercial range + * + */ + public Optional> commercialRange() { + return Optional.ofNullable(this.commercialRange); + } + + /** + * Dedicated datacenter localisation (bhs1,bhs2,...) + * + */ + @Import(name="datacenter") + private @Nullable Output datacenter; + + /** + * @return Dedicated datacenter localisation (bhs1,bhs2,...) + * + */ + public Optional> datacenter() { + return Optional.ofNullable(this.datacenter); + } + + /** + * A structure describing informations about installation custom + * + */ + @Import(name="details") + private @Nullable Output details; + + /** + * @return A structure describing informations about installation custom + * + */ + public Optional> details() { + return Optional.ofNullable(this.details); + } + + /** + * Resource display name + * + */ + @Import(name="displayName") + private @Nullable Output displayName; + + /** + * @return Resource display name + * + */ + public Optional> displayName() { + return Optional.ofNullable(this.displayName); + } + + /** + * IAM resource information + * + */ + @Import(name="iam") + private @Nullable Output iam; + + /** + * @return IAM resource information + * + */ + public Optional> iam() { + return Optional.ofNullable(this.iam); + } + + /** + * Dedicated server ip (IPv4) + * + */ + @Import(name="ip") + private @Nullable Output ip; + + /** + * @return Dedicated server ip (IPv4) + * + */ + public Optional> ip() { + return Optional.ofNullable(this.ip); + } + + /** + * Link speed of the server + * + */ + @Import(name="linkSpeed") + private @Nullable Output linkSpeed; + + /** + * @return Link speed of the server + * + */ + public Optional> linkSpeed() { + return Optional.ofNullable(this.linkSpeed); + } + + /** + * Icmp monitoring state + * + */ + @Import(name="monitoring") + private @Nullable Output monitoring; + + /** + * @return Icmp monitoring state + * + */ + public Optional> monitoring() { + return Optional.ofNullable(this.monitoring); + } + + /** + * Dedicated server name + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Dedicated server name + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + @Import(name="newUpgradeSystem") + private @Nullable Output newUpgradeSystem; + + public Optional> newUpgradeSystem() { + return Optional.ofNullable(this.newUpgradeSystem); + } + + /** + * Prevent datacenter intervention + * + */ + @Import(name="noIntervention") + private @Nullable Output noIntervention; + + /** + * @return Prevent datacenter intervention + * + */ + public Optional> noIntervention() { + return Optional.ofNullable(this.noIntervention); + } + + /** + * Details about an Order + * + */ + @Import(name="order") + private @Nullable Output order; + + /** + * @return Details about an Order + * + */ + public Optional> order() { + return Optional.ofNullable(this.order); + } + + /** + * Operating system + * + */ + @Import(name="os") + private @Nullable Output os; + + /** + * @return Operating system + * + */ + public Optional> os() { + return Optional.ofNullable(this.os); + } + + /** + * OVH subsidiaries + * + */ + @Import(name="ovhSubsidiary") + private @Nullable Output ovhSubsidiary; + + /** + * @return OVH subsidiaries + * + */ + public Optional> ovhSubsidiary() { + return Optional.ofNullable(this.ovhSubsidiary); + } + + /** + * Partition scheme name + * + */ + @Import(name="partitionSchemeName") + private @Nullable Output partitionSchemeName; + + /** + * @return Partition scheme name + * + */ + public Optional> partitionSchemeName() { + return Optional.ofNullable(this.partitionSchemeName); + } + + @Import(name="planOptions") + private @Nullable Output> planOptions; + + public Optional>> planOptions() { + return Optional.ofNullable(this.planOptions); + } + + @Import(name="plans") + private @Nullable Output> plans; + + public Optional>> plans() { + return Optional.ofNullable(this.plans); + } + + /** + * Power state of the server (poweron, poweroff) + * + */ + @Import(name="powerState") + private @Nullable Output powerState; + + /** + * @return Power state of the server (poweron, poweroff) + * + */ + public Optional> powerState() { + return Optional.ofNullable(this.powerState); + } + + /** + * Does this server have professional use option + * + */ + @Import(name="professionalUse") + private @Nullable Output professionalUse; + + /** + * @return Does this server have professional use option + * + */ + public Optional> professionalUse() { + return Optional.ofNullable(this.professionalUse); + } + + /** + * Rack id of the server + * + */ + @Import(name="rack") + private @Nullable Output rack; + + /** + * @return Rack id of the server + * + */ + public Optional> rack() { + return Optional.ofNullable(this.rack); + } + + /** + * Dedicated region localisation + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Dedicated region localisation + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + + /** + * Rescue mail of the server + * + */ + @Import(name="rescueMail") + private @Nullable Output rescueMail; + + /** + * @return Rescue mail of the server + * + */ + public Optional> rescueMail() { + return Optional.ofNullable(this.rescueMail); + } + + /** + * Public SSH Key used in the rescue mode + * + */ + @Import(name="rescueSshKey") + private @Nullable Output rescueSshKey; + + /** + * @return Public SSH Key used in the rescue mode + * + */ + public Optional> rescueSshKey() { + return Optional.ofNullable(this.rescueSshKey); + } + + /** + * Dedicated server reverse + * + */ + @Import(name="reverse") + private @Nullable Output reverse; + + /** + * @return Dedicated server reverse + * + */ + public Optional> reverse() { + return Optional.ofNullable(this.reverse); + } + + /** + * Root device of the server + * + */ + @Import(name="rootDevice") + private @Nullable Output rootDevice; + + /** + * @return Root device of the server + * + */ + public Optional> rootDevice() { + return Optional.ofNullable(this.rootDevice); + } + + /** + * Server id + * + */ + @Import(name="serverId") + private @Nullable Output serverId; + + /** + * @return Server id + * + */ + public Optional> serverId() { + return Optional.ofNullable(this.serverId); + } + + /** + * The service_name of your dedicated server + * + */ + @Import(name="serviceName") + private @Nullable Output serviceName; + + /** + * @return The service_name of your dedicated server + * + */ + public Optional> serviceName() { + return Optional.ofNullable(this.serviceName); + } + + /** + * All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + * + */ + @Import(name="state") + private @Nullable Output state; + + /** + * @return All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + * + */ + public Optional> state() { + return Optional.ofNullable(this.state); + } + + /** + * Dedicated server support level (critical, fastpath, gs, pro) + * + */ + @Import(name="supportLevel") + private @Nullable Output supportLevel; + + /** + * @return Dedicated server support level (critical, fastpath, gs, pro) + * + */ + public Optional> supportLevel() { + return Optional.ofNullable(this.supportLevel); + } + + /** + * Template name + * + */ + @Import(name="templateName") + private @Nullable Output templateName; + + /** + * @return Template name + * + */ + public Optional> templateName() { + return Optional.ofNullable(this.templateName); + } + + /** + * Metadata + * + */ + @Import(name="userMetadatas") + private @Nullable Output> userMetadatas; + + /** + * @return Metadata + * + */ + public Optional>> userMetadatas() { + return Optional.ofNullable(this.userMetadatas); + } + + private ServerState() {} + + private ServerState(ServerState $) { + this.availabilityZone = $.availabilityZone; + this.bootId = $.bootId; + this.bootScript = $.bootScript; + this.commercialRange = $.commercialRange; + this.datacenter = $.datacenter; + this.details = $.details; + this.displayName = $.displayName; + this.iam = $.iam; + this.ip = $.ip; + this.linkSpeed = $.linkSpeed; + this.monitoring = $.monitoring; + this.name = $.name; + this.newUpgradeSystem = $.newUpgradeSystem; + this.noIntervention = $.noIntervention; + this.order = $.order; + this.os = $.os; + this.ovhSubsidiary = $.ovhSubsidiary; + this.partitionSchemeName = $.partitionSchemeName; + this.planOptions = $.planOptions; + this.plans = $.plans; + this.powerState = $.powerState; + this.professionalUse = $.professionalUse; + this.rack = $.rack; + this.region = $.region; + this.rescueMail = $.rescueMail; + this.rescueSshKey = $.rescueSshKey; + this.reverse = $.reverse; + this.rootDevice = $.rootDevice; + this.serverId = $.serverId; + this.serviceName = $.serviceName; + this.state = $.state; + this.supportLevel = $.supportLevel; + this.templateName = $.templateName; + this.userMetadatas = $.userMetadatas; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ServerState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ServerState $; + + public Builder() { + $ = new ServerState(); + } + + public Builder(ServerState defaults) { + $ = new ServerState(Objects.requireNonNull(defaults)); + } + + /** + * @param availabilityZone Dedicated AZ localisation + * + * @return builder + * + */ + public Builder availabilityZone(@Nullable Output availabilityZone) { + $.availabilityZone = availabilityZone; + return this; + } + + /** + * @param availabilityZone Dedicated AZ localisation + * + * @return builder + * + */ + public Builder availabilityZone(String availabilityZone) { + return availabilityZone(Output.of(availabilityZone)); + } + + /** + * @param bootId Boot id of the server + * + * @return builder + * + */ + public Builder bootId(@Nullable Output bootId) { + $.bootId = bootId; + return this; + } + + /** + * @param bootId Boot id of the server + * + * @return builder + * + */ + public Builder bootId(Double bootId) { + return bootId(Output.of(bootId)); + } + + /** + * @param bootScript Boot script of the server + * + * @return builder + * + */ + public Builder bootScript(@Nullable Output bootScript) { + $.bootScript = bootScript; + return this; + } + + /** + * @param bootScript Boot script of the server + * + * @return builder + * + */ + public Builder bootScript(String bootScript) { + return bootScript(Output.of(bootScript)); + } + + /** + * @param commercialRange Dedicated server commercial range + * + * @return builder + * + */ + public Builder commercialRange(@Nullable Output commercialRange) { + $.commercialRange = commercialRange; + return this; + } + + /** + * @param commercialRange Dedicated server commercial range + * + * @return builder + * + */ + public Builder commercialRange(String commercialRange) { + return commercialRange(Output.of(commercialRange)); + } + + /** + * @param datacenter Dedicated datacenter localisation (bhs1,bhs2,...) + * + * @return builder + * + */ + public Builder datacenter(@Nullable Output datacenter) { + $.datacenter = datacenter; + return this; + } + + /** + * @param datacenter Dedicated datacenter localisation (bhs1,bhs2,...) + * + * @return builder + * + */ + public Builder datacenter(String datacenter) { + return datacenter(Output.of(datacenter)); + } + + /** + * @param details A structure describing informations about installation custom + * + * @return builder + * + */ + public Builder details(@Nullable Output details) { + $.details = details; + return this; + } + + /** + * @param details A structure describing informations about installation custom + * + * @return builder + * + */ + public Builder details(ServerDetailsArgs details) { + return details(Output.of(details)); + } + + /** + * @param displayName Resource display name + * + * @return builder + * + */ + public Builder displayName(@Nullable Output displayName) { + $.displayName = displayName; + return this; + } + + /** + * @param displayName Resource display name + * + * @return builder + * + */ + public Builder displayName(String displayName) { + return displayName(Output.of(displayName)); + } + + /** + * @param iam IAM resource information + * + * @return builder + * + */ + public Builder iam(@Nullable Output iam) { + $.iam = iam; + return this; + } + + /** + * @param iam IAM resource information + * + * @return builder + * + */ + public Builder iam(ServerIamArgs iam) { + return iam(Output.of(iam)); + } + + /** + * @param ip Dedicated server ip (IPv4) + * + * @return builder + * + */ + public Builder ip(@Nullable Output ip) { + $.ip = ip; + return this; + } + + /** + * @param ip Dedicated server ip (IPv4) + * + * @return builder + * + */ + public Builder ip(String ip) { + return ip(Output.of(ip)); + } + + /** + * @param linkSpeed Link speed of the server + * + * @return builder + * + */ + public Builder linkSpeed(@Nullable Output linkSpeed) { + $.linkSpeed = linkSpeed; + return this; + } + + /** + * @param linkSpeed Link speed of the server + * + * @return builder + * + */ + public Builder linkSpeed(Double linkSpeed) { + return linkSpeed(Output.of(linkSpeed)); + } + + /** + * @param monitoring Icmp monitoring state + * + * @return builder + * + */ + public Builder monitoring(@Nullable Output monitoring) { + $.monitoring = monitoring; + return this; + } + + /** + * @param monitoring Icmp monitoring state + * + * @return builder + * + */ + public Builder monitoring(Boolean monitoring) { + return monitoring(Output.of(monitoring)); + } + + /** + * @param name Dedicated server name + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Dedicated server name + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public Builder newUpgradeSystem(@Nullable Output newUpgradeSystem) { + $.newUpgradeSystem = newUpgradeSystem; + return this; + } + + public Builder newUpgradeSystem(Boolean newUpgradeSystem) { + return newUpgradeSystem(Output.of(newUpgradeSystem)); + } + + /** + * @param noIntervention Prevent datacenter intervention + * + * @return builder + * + */ + public Builder noIntervention(@Nullable Output noIntervention) { + $.noIntervention = noIntervention; + return this; + } + + /** + * @param noIntervention Prevent datacenter intervention + * + * @return builder + * + */ + public Builder noIntervention(Boolean noIntervention) { + return noIntervention(Output.of(noIntervention)); + } + + /** + * @param order Details about an Order + * + * @return builder + * + */ + public Builder order(@Nullable Output order) { + $.order = order; + return this; + } + + /** + * @param order Details about an Order + * + * @return builder + * + */ + public Builder order(ServerOrderArgs order) { + return order(Output.of(order)); + } + + /** + * @param os Operating system + * + * @return builder + * + */ + public Builder os(@Nullable Output os) { + $.os = os; + return this; + } + + /** + * @param os Operating system + * + * @return builder + * + */ + public Builder os(String os) { + return os(Output.of(os)); + } + + /** + * @param ovhSubsidiary OVH subsidiaries + * + * @return builder + * + */ + public Builder ovhSubsidiary(@Nullable Output ovhSubsidiary) { + $.ovhSubsidiary = ovhSubsidiary; + return this; + } + + /** + * @param ovhSubsidiary OVH subsidiaries + * + * @return builder + * + */ + public Builder ovhSubsidiary(String ovhSubsidiary) { + return ovhSubsidiary(Output.of(ovhSubsidiary)); + } + + /** + * @param partitionSchemeName Partition scheme name + * + * @return builder + * + */ + public Builder partitionSchemeName(@Nullable Output partitionSchemeName) { + $.partitionSchemeName = partitionSchemeName; + return this; + } + + /** + * @param partitionSchemeName Partition scheme name + * + * @return builder + * + */ + public Builder partitionSchemeName(String partitionSchemeName) { + return partitionSchemeName(Output.of(partitionSchemeName)); + } + + public Builder planOptions(@Nullable Output> planOptions) { + $.planOptions = planOptions; + return this; + } + + public Builder planOptions(List planOptions) { + return planOptions(Output.of(planOptions)); + } + + public Builder planOptions(ServerPlanOptionArgs... planOptions) { + return planOptions(List.of(planOptions)); + } + + public Builder plans(@Nullable Output> plans) { + $.plans = plans; + return this; + } + + public Builder plans(List plans) { + return plans(Output.of(plans)); + } + + public Builder plans(ServerPlanArgs... plans) { + return plans(List.of(plans)); + } + + /** + * @param powerState Power state of the server (poweron, poweroff) + * + * @return builder + * + */ + public Builder powerState(@Nullable Output powerState) { + $.powerState = powerState; + return this; + } + + /** + * @param powerState Power state of the server (poweron, poweroff) + * + * @return builder + * + */ + public Builder powerState(String powerState) { + return powerState(Output.of(powerState)); + } + + /** + * @param professionalUse Does this server have professional use option + * + * @return builder + * + */ + public Builder professionalUse(@Nullable Output professionalUse) { + $.professionalUse = professionalUse; + return this; + } + + /** + * @param professionalUse Does this server have professional use option + * + * @return builder + * + */ + public Builder professionalUse(Boolean professionalUse) { + return professionalUse(Output.of(professionalUse)); + } + + /** + * @param rack Rack id of the server + * + * @return builder + * + */ + public Builder rack(@Nullable Output rack) { + $.rack = rack; + return this; + } + + /** + * @param rack Rack id of the server + * + * @return builder + * + */ + public Builder rack(String rack) { + return rack(Output.of(rack)); + } + + /** + * @param region Dedicated region localisation + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Dedicated region localisation + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + + /** + * @param rescueMail Rescue mail of the server + * + * @return builder + * + */ + public Builder rescueMail(@Nullable Output rescueMail) { + $.rescueMail = rescueMail; + return this; + } + + /** + * @param rescueMail Rescue mail of the server + * + * @return builder + * + */ + public Builder rescueMail(String rescueMail) { + return rescueMail(Output.of(rescueMail)); + } + + /** + * @param rescueSshKey Public SSH Key used in the rescue mode + * + * @return builder + * + */ + public Builder rescueSshKey(@Nullable Output rescueSshKey) { + $.rescueSshKey = rescueSshKey; + return this; + } + + /** + * @param rescueSshKey Public SSH Key used in the rescue mode + * + * @return builder + * + */ + public Builder rescueSshKey(String rescueSshKey) { + return rescueSshKey(Output.of(rescueSshKey)); + } + + /** + * @param reverse Dedicated server reverse + * + * @return builder + * + */ + public Builder reverse(@Nullable Output reverse) { + $.reverse = reverse; + return this; + } + + /** + * @param reverse Dedicated server reverse + * + * @return builder + * + */ + public Builder reverse(String reverse) { + return reverse(Output.of(reverse)); + } + + /** + * @param rootDevice Root device of the server + * + * @return builder + * + */ + public Builder rootDevice(@Nullable Output rootDevice) { + $.rootDevice = rootDevice; + return this; + } + + /** + * @param rootDevice Root device of the server + * + * @return builder + * + */ + public Builder rootDevice(String rootDevice) { + return rootDevice(Output.of(rootDevice)); + } + + /** + * @param serverId Server id + * + * @return builder + * + */ + public Builder serverId(@Nullable Output serverId) { + $.serverId = serverId; + return this; + } + + /** + * @param serverId Server id + * + * @return builder + * + */ + public Builder serverId(Double serverId) { + return serverId(Output.of(serverId)); + } + + /** + * @param serviceName The service_name of your dedicated server + * + * @return builder + * + */ + public Builder serviceName(@Nullable Output serviceName) { + $.serviceName = serviceName; + return this; + } + + /** + * @param serviceName The service_name of your dedicated server + * + * @return builder + * + */ + public Builder serviceName(String serviceName) { + return serviceName(Output.of(serviceName)); + } + + /** + * @param state All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + * + * @return builder + * + */ + public Builder state(@Nullable Output state) { + $.state = state; + return this; + } + + /** + * @param state All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + * + * @return builder + * + */ + public Builder state(String state) { + return state(Output.of(state)); + } + + /** + * @param supportLevel Dedicated server support level (critical, fastpath, gs, pro) + * + * @return builder + * + */ + public Builder supportLevel(@Nullable Output supportLevel) { + $.supportLevel = supportLevel; + return this; + } + + /** + * @param supportLevel Dedicated server support level (critical, fastpath, gs, pro) + * + * @return builder + * + */ + public Builder supportLevel(String supportLevel) { + return supportLevel(Output.of(supportLevel)); + } + + /** + * @param templateName Template name + * + * @return builder + * + */ + public Builder templateName(@Nullable Output templateName) { + $.templateName = templateName; + return this; + } + + /** + * @param templateName Template name + * + * @return builder + * + */ + public Builder templateName(String templateName) { + return templateName(Output.of(templateName)); + } + + /** + * @param userMetadatas Metadata + * + * @return builder + * + */ + public Builder userMetadatas(@Nullable Output> userMetadatas) { + $.userMetadatas = userMetadatas; + return this; + } + + /** + * @param userMetadatas Metadata + * + * @return builder + * + */ + public Builder userMetadatas(List userMetadatas) { + return userMetadatas(Output.of(userMetadatas)); + } + + /** + * @param userMetadatas Metadata + * + * @return builder + * + */ + public Builder userMetadatas(ServerUserMetadataArgs... userMetadatas) { + return userMetadatas(List.of(userMetadatas)); + } + + public ServerState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerUserMetadataArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerUserMetadataArgs.java new file mode 100644 index 00000000..1811a85e --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/inputs/ServerUserMetadataArgs.java @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ServerUserMetadataArgs extends com.pulumi.resources.ResourceArgs { + + public static final ServerUserMetadataArgs Empty = new ServerUserMetadataArgs(); + + @Import(name="key") + private @Nullable Output key; + + public Optional> key() { + return Optional.ofNullable(this.key); + } + + @Import(name="value") + private @Nullable Output value; + + public Optional> value() { + return Optional.ofNullable(this.value); + } + + private ServerUserMetadataArgs() {} + + private ServerUserMetadataArgs(ServerUserMetadataArgs $) { + this.key = $.key; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ServerUserMetadataArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ServerUserMetadataArgs $; + + public Builder() { + $ = new ServerUserMetadataArgs(); + } + + public Builder(ServerUserMetadataArgs defaults) { + $ = new ServerUserMetadataArgs(Objects.requireNonNull(defaults)); + } + + public Builder key(@Nullable Output key) { + $.key = key; + return this; + } + + public Builder key(String key) { + return key(Output.of(key)); + } + + public Builder value(@Nullable Output value) { + $.value = value; + return this; + } + + public Builder value(String value) { + return value(Output.of(value)); + } + + public ServerUserMetadataArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerDetails.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerDetails.java new file mode 100644 index 00000000..5867da93 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerDetails.java @@ -0,0 +1,122 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ServerDetails { + /** + * @return Personnal hostname to use in server reinstallation + * + */ + private @Nullable String customHostname; + /** + * @return Disk group id to process install on (only available for some templates) + * + */ + private @Nullable Double diskGroupId; + /** + * @return true if you want to install only on the first disk + * + */ + private @Nullable Boolean noRaid; + /** + * @return Number of devices to use for system's software RAID + * + */ + private @Nullable Double softRaidDevices; + + private ServerDetails() {} + /** + * @return Personnal hostname to use in server reinstallation + * + */ + public Optional customHostname() { + return Optional.ofNullable(this.customHostname); + } + /** + * @return Disk group id to process install on (only available for some templates) + * + */ + public Optional diskGroupId() { + return Optional.ofNullable(this.diskGroupId); + } + /** + * @return true if you want to install only on the first disk + * + */ + public Optional noRaid() { + return Optional.ofNullable(this.noRaid); + } + /** + * @return Number of devices to use for system's software RAID + * + */ + public Optional softRaidDevices() { + return Optional.ofNullable(this.softRaidDevices); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ServerDetails defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String customHostname; + private @Nullable Double diskGroupId; + private @Nullable Boolean noRaid; + private @Nullable Double softRaidDevices; + public Builder() {} + public Builder(ServerDetails defaults) { + Objects.requireNonNull(defaults); + this.customHostname = defaults.customHostname; + this.diskGroupId = defaults.diskGroupId; + this.noRaid = defaults.noRaid; + this.softRaidDevices = defaults.softRaidDevices; + } + + @CustomType.Setter + public Builder customHostname(@Nullable String customHostname) { + + this.customHostname = customHostname; + return this; + } + @CustomType.Setter + public Builder diskGroupId(@Nullable Double diskGroupId) { + + this.diskGroupId = diskGroupId; + return this; + } + @CustomType.Setter + public Builder noRaid(@Nullable Boolean noRaid) { + + this.noRaid = noRaid; + return this; + } + @CustomType.Setter + public Builder softRaidDevices(@Nullable Double softRaidDevices) { + + this.softRaidDevices = softRaidDevices; + return this; + } + public ServerDetails build() { + final var _resultValue = new ServerDetails(); + _resultValue.customHostname = customHostname; + _resultValue.diskGroupId = diskGroupId; + _resultValue.noRaid = noRaid; + _resultValue.softRaidDevices = softRaidDevices; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerIam.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerIam.java new file mode 100644 index 00000000..8b2d16d8 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerIam.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ServerIam { + /** + * @return Resource display name + * + */ + private @Nullable String displayName; + /** + * @return Unique identifier of the resource in the IAM + * + */ + private @Nullable String id; + /** + * @return Resource tags. Tags that were internally computed are prefixed with `ovh:` + * + */ + private @Nullable Map tags; + /** + * @return URN of the private database, used when writing IAM policies + * + */ + private @Nullable String urn; + + private ServerIam() {} + /** + * @return Resource display name + * + */ + public Optional displayName() { + return Optional.ofNullable(this.displayName); + } + /** + * @return Unique identifier of the resource in the IAM + * + */ + public Optional id() { + return Optional.ofNullable(this.id); + } + /** + * @return Resource tags. Tags that were internally computed are prefixed with `ovh:` + * + */ + public Map tags() { + return this.tags == null ? Map.of() : this.tags; + } + /** + * @return URN of the private database, used when writing IAM policies + * + */ + public Optional urn() { + return Optional.ofNullable(this.urn); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ServerIam defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String displayName; + private @Nullable String id; + private @Nullable Map tags; + private @Nullable String urn; + public Builder() {} + public Builder(ServerIam defaults) { + Objects.requireNonNull(defaults); + this.displayName = defaults.displayName; + this.id = defaults.id; + this.tags = defaults.tags; + this.urn = defaults.urn; + } + + @CustomType.Setter + public Builder displayName(@Nullable String displayName) { + + this.displayName = displayName; + return this; + } + @CustomType.Setter + public Builder id(@Nullable String id) { + + this.id = id; + return this; + } + @CustomType.Setter + public Builder tags(@Nullable Map tags) { + + this.tags = tags; + return this; + } + @CustomType.Setter + public Builder urn(@Nullable String urn) { + + this.urn = urn; + return this; + } + public ServerIam build() { + final var _resultValue = new ServerIam(); + _resultValue.displayName = displayName; + _resultValue.id = id; + _resultValue.tags = tags; + _resultValue.urn = urn; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerInstallTaskDetails.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerInstallTaskDetails.java index 7cb95b42..4e8c3134 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerInstallTaskDetails.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerInstallTaskDetails.java @@ -28,16 +28,6 @@ public final class ServerInstallTaskDetails { * */ private @Nullable Boolean noRaid; - /** - * @return Indicate the URL where your postinstall customisation script is located. - * - */ - private @Nullable String postInstallationScriptLink; - /** - * @return Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - */ - private @Nullable String postInstallationScriptReturn; /** * @return soft raid devices. * @@ -66,20 +56,6 @@ public Optional diskGroupId() { public Optional noRaid() { return Optional.ofNullable(this.noRaid); } - /** - * @return Indicate the URL where your postinstall customisation script is located. - * - */ - public Optional postInstallationScriptLink() { - return Optional.ofNullable(this.postInstallationScriptLink); - } - /** - * @return Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - */ - public Optional postInstallationScriptReturn() { - return Optional.ofNullable(this.postInstallationScriptReturn); - } /** * @return soft raid devices. * @@ -100,8 +76,6 @@ public static final class Builder { private @Nullable String customHostname; private @Nullable Integer diskGroupId; private @Nullable Boolean noRaid; - private @Nullable String postInstallationScriptLink; - private @Nullable String postInstallationScriptReturn; private @Nullable Integer softRaidDevices; public Builder() {} public Builder(ServerInstallTaskDetails defaults) { @@ -109,8 +83,6 @@ public Builder(ServerInstallTaskDetails defaults) { this.customHostname = defaults.customHostname; this.diskGroupId = defaults.diskGroupId; this.noRaid = defaults.noRaid; - this.postInstallationScriptLink = defaults.postInstallationScriptLink; - this.postInstallationScriptReturn = defaults.postInstallationScriptReturn; this.softRaidDevices = defaults.softRaidDevices; } @@ -133,18 +105,6 @@ public Builder noRaid(@Nullable Boolean noRaid) { return this; } @CustomType.Setter - public Builder postInstallationScriptLink(@Nullable String postInstallationScriptLink) { - - this.postInstallationScriptLink = postInstallationScriptLink; - return this; - } - @CustomType.Setter - public Builder postInstallationScriptReturn(@Nullable String postInstallationScriptReturn) { - - this.postInstallationScriptReturn = postInstallationScriptReturn; - return this; - } - @CustomType.Setter public Builder softRaidDevices(@Nullable Integer softRaidDevices) { this.softRaidDevices = softRaidDevices; @@ -155,8 +115,6 @@ public ServerInstallTaskDetails build() { _resultValue.customHostname = customHostname; _resultValue.diskGroupId = diskGroupId; _resultValue.noRaid = noRaid; - _resultValue.postInstallationScriptLink = postInstallationScriptLink; - _resultValue.postInstallationScriptReturn = postInstallationScriptReturn; _resultValue.softRaidDevices = softRaidDevices; return _resultValue; } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerOrder.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerOrder.java new file mode 100644 index 00000000..91b98ebf --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerOrder.java @@ -0,0 +1,102 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.outputs; + +import com.ovhcloud.pulumi.ovh.Dedicated.outputs.ServerOrderDetail; +import com.pulumi.core.annotations.CustomType; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ServerOrder { + private @Nullable String date; + /** + * @return Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + * + */ + private @Nullable List details; + private @Nullable String expirationDate; + private @Nullable Double orderId; + + private ServerOrder() {} + public Optional date() { + return Optional.ofNullable(this.date); + } + /** + * @return Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + * + */ + public List details() { + return this.details == null ? List.of() : this.details; + } + public Optional expirationDate() { + return Optional.ofNullable(this.expirationDate); + } + public Optional orderId() { + return Optional.ofNullable(this.orderId); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ServerOrder defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String date; + private @Nullable List details; + private @Nullable String expirationDate; + private @Nullable Double orderId; + public Builder() {} + public Builder(ServerOrder defaults) { + Objects.requireNonNull(defaults); + this.date = defaults.date; + this.details = defaults.details; + this.expirationDate = defaults.expirationDate; + this.orderId = defaults.orderId; + } + + @CustomType.Setter + public Builder date(@Nullable String date) { + + this.date = date; + return this; + } + @CustomType.Setter + public Builder details(@Nullable List details) { + + this.details = details; + return this; + } + public Builder details(ServerOrderDetail... details) { + return details(List.of(details)); + } + @CustomType.Setter + public Builder expirationDate(@Nullable String expirationDate) { + + this.expirationDate = expirationDate; + return this; + } + @CustomType.Setter + public Builder orderId(@Nullable Double orderId) { + + this.orderId = orderId; + return this; + } + public ServerOrder build() { + final var _resultValue = new ServerOrder(); + _resultValue.date = date; + _resultValue.details = details; + _resultValue.expirationDate = expirationDate; + _resultValue.orderId = orderId; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerOrderDetail.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerOrderDetail.java new file mode 100644 index 00000000..5a920f7d --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerOrderDetail.java @@ -0,0 +1,110 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Double; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ServerOrderDetail { + private @Nullable String description; + /** + * @return Product type of item in order + * + */ + private @Nullable String detailType; + private @Nullable String domain; + private @Nullable Double orderDetailId; + private @Nullable String quantity; + + private ServerOrderDetail() {} + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return Product type of item in order + * + */ + public Optional detailType() { + return Optional.ofNullable(this.detailType); + } + public Optional domain() { + return Optional.ofNullable(this.domain); + } + public Optional orderDetailId() { + return Optional.ofNullable(this.orderDetailId); + } + public Optional quantity() { + return Optional.ofNullable(this.quantity); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ServerOrderDetail defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private @Nullable String detailType; + private @Nullable String domain; + private @Nullable Double orderDetailId; + private @Nullable String quantity; + public Builder() {} + public Builder(ServerOrderDetail defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.detailType = defaults.detailType; + this.domain = defaults.domain; + this.orderDetailId = defaults.orderDetailId; + this.quantity = defaults.quantity; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder detailType(@Nullable String detailType) { + + this.detailType = detailType; + return this; + } + @CustomType.Setter + public Builder domain(@Nullable String domain) { + + this.domain = domain; + return this; + } + @CustomType.Setter + public Builder orderDetailId(@Nullable Double orderDetailId) { + + this.orderDetailId = orderDetailId; + return this; + } + @CustomType.Setter + public Builder quantity(@Nullable String quantity) { + + this.quantity = quantity; + return this; + } + public ServerOrderDetail build() { + final var _resultValue = new ServerOrderDetail(); + _resultValue.description = description; + _resultValue.detailType = detailType; + _resultValue.domain = domain; + _resultValue.orderDetailId = orderDetailId; + _resultValue.quantity = quantity; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlan.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlan.java new file mode 100644 index 00000000..f31482d9 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlan.java @@ -0,0 +1,167 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.outputs; + +import com.ovhcloud.pulumi.ovh.Dedicated.outputs.ServerPlanConfiguration; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ServerPlan { + private @Nullable List configurations; + /** + * @return Duration selected for the purchase of the product + * + */ + private String duration; + /** + * @return Cart item to be linked + * + */ + private @Nullable Double itemId; + /** + * @return Identifier of the option offer + * + */ + private String planCode; + /** + * @return Pricing mode selected for the purchase of the product + * + */ + private String pricingMode; + /** + * @return Quantity of product desired + * + */ + private @Nullable Double quantity; + + private ServerPlan() {} + public List configurations() { + return this.configurations == null ? List.of() : this.configurations; + } + /** + * @return Duration selected for the purchase of the product + * + */ + public String duration() { + return this.duration; + } + /** + * @return Cart item to be linked + * + */ + public Optional itemId() { + return Optional.ofNullable(this.itemId); + } + /** + * @return Identifier of the option offer + * + */ + public String planCode() { + return this.planCode; + } + /** + * @return Pricing mode selected for the purchase of the product + * + */ + public String pricingMode() { + return this.pricingMode; + } + /** + * @return Quantity of product desired + * + */ + public Optional quantity() { + return Optional.ofNullable(this.quantity); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ServerPlan defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List configurations; + private String duration; + private @Nullable Double itemId; + private String planCode; + private String pricingMode; + private @Nullable Double quantity; + public Builder() {} + public Builder(ServerPlan defaults) { + Objects.requireNonNull(defaults); + this.configurations = defaults.configurations; + this.duration = defaults.duration; + this.itemId = defaults.itemId; + this.planCode = defaults.planCode; + this.pricingMode = defaults.pricingMode; + this.quantity = defaults.quantity; + } + + @CustomType.Setter + public Builder configurations(@Nullable List configurations) { + + this.configurations = configurations; + return this; + } + public Builder configurations(ServerPlanConfiguration... configurations) { + return configurations(List.of(configurations)); + } + @CustomType.Setter + public Builder duration(String duration) { + if (duration == null) { + throw new MissingRequiredPropertyException("ServerPlan", "duration"); + } + this.duration = duration; + return this; + } + @CustomType.Setter + public Builder itemId(@Nullable Double itemId) { + + this.itemId = itemId; + return this; + } + @CustomType.Setter + public Builder planCode(String planCode) { + if (planCode == null) { + throw new MissingRequiredPropertyException("ServerPlan", "planCode"); + } + this.planCode = planCode; + return this; + } + @CustomType.Setter + public Builder pricingMode(String pricingMode) { + if (pricingMode == null) { + throw new MissingRequiredPropertyException("ServerPlan", "pricingMode"); + } + this.pricingMode = pricingMode; + return this; + } + @CustomType.Setter + public Builder quantity(@Nullable Double quantity) { + + this.quantity = quantity; + return this; + } + public ServerPlan build() { + final var _resultValue = new ServerPlan(); + _resultValue.configurations = configurations; + _resultValue.duration = duration; + _resultValue.itemId = itemId; + _resultValue.planCode = planCode; + _resultValue.pricingMode = pricingMode; + _resultValue.quantity = quantity; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlanConfiguration.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlanConfiguration.java new file mode 100644 index 00000000..b7b17614 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlanConfiguration.java @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class ServerPlanConfiguration { + /** + * @return Label for your configuration item + * + */ + private String label; + /** + * @return Value or resource URL on API.OVH.COM of your configuration item + * + */ + private String value; + + private ServerPlanConfiguration() {} + /** + * @return Label for your configuration item + * + */ + public String label() { + return this.label; + } + /** + * @return Value or resource URL on API.OVH.COM of your configuration item + * + */ + public String value() { + return this.value; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ServerPlanConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String label; + private String value; + public Builder() {} + public Builder(ServerPlanConfiguration defaults) { + Objects.requireNonNull(defaults); + this.label = defaults.label; + this.value = defaults.value; + } + + @CustomType.Setter + public Builder label(String label) { + if (label == null) { + throw new MissingRequiredPropertyException("ServerPlanConfiguration", "label"); + } + this.label = label; + return this; + } + @CustomType.Setter + public Builder value(String value) { + if (value == null) { + throw new MissingRequiredPropertyException("ServerPlanConfiguration", "value"); + } + this.value = value; + return this; + } + public ServerPlanConfiguration build() { + final var _resultValue = new ServerPlanConfiguration(); + _resultValue.label = label; + _resultValue.value = value; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlanOption.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlanOption.java new file mode 100644 index 00000000..59581e34 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlanOption.java @@ -0,0 +1,147 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.outputs; + +import com.ovhcloud.pulumi.ovh.Dedicated.outputs.ServerPlanOptionConfiguration; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Double; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class ServerPlanOption { + private @Nullable List configurations; + /** + * @return Duration selected for the purchase of the product + * + */ + private String duration; + /** + * @return Identifier of the option offer + * + */ + private String planCode; + /** + * @return Pricing mode selected for the purchase of the product + * + */ + private String pricingMode; + /** + * @return Quantity of product desired + * + */ + private Double quantity; + + private ServerPlanOption() {} + public List configurations() { + return this.configurations == null ? List.of() : this.configurations; + } + /** + * @return Duration selected for the purchase of the product + * + */ + public String duration() { + return this.duration; + } + /** + * @return Identifier of the option offer + * + */ + public String planCode() { + return this.planCode; + } + /** + * @return Pricing mode selected for the purchase of the product + * + */ + public String pricingMode() { + return this.pricingMode; + } + /** + * @return Quantity of product desired + * + */ + public Double quantity() { + return this.quantity; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ServerPlanOption defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List configurations; + private String duration; + private String planCode; + private String pricingMode; + private Double quantity; + public Builder() {} + public Builder(ServerPlanOption defaults) { + Objects.requireNonNull(defaults); + this.configurations = defaults.configurations; + this.duration = defaults.duration; + this.planCode = defaults.planCode; + this.pricingMode = defaults.pricingMode; + this.quantity = defaults.quantity; + } + + @CustomType.Setter + public Builder configurations(@Nullable List configurations) { + + this.configurations = configurations; + return this; + } + public Builder configurations(ServerPlanOptionConfiguration... configurations) { + return configurations(List.of(configurations)); + } + @CustomType.Setter + public Builder duration(String duration) { + if (duration == null) { + throw new MissingRequiredPropertyException("ServerPlanOption", "duration"); + } + this.duration = duration; + return this; + } + @CustomType.Setter + public Builder planCode(String planCode) { + if (planCode == null) { + throw new MissingRequiredPropertyException("ServerPlanOption", "planCode"); + } + this.planCode = planCode; + return this; + } + @CustomType.Setter + public Builder pricingMode(String pricingMode) { + if (pricingMode == null) { + throw new MissingRequiredPropertyException("ServerPlanOption", "pricingMode"); + } + this.pricingMode = pricingMode; + return this; + } + @CustomType.Setter + public Builder quantity(Double quantity) { + if (quantity == null) { + throw new MissingRequiredPropertyException("ServerPlanOption", "quantity"); + } + this.quantity = quantity; + return this; + } + public ServerPlanOption build() { + final var _resultValue = new ServerPlanOption(); + _resultValue.configurations = configurations; + _resultValue.duration = duration; + _resultValue.planCode = planCode; + _resultValue.pricingMode = pricingMode; + _resultValue.quantity = quantity; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlanOptionConfiguration.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlanOptionConfiguration.java new file mode 100644 index 00000000..24c51402 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerPlanOptionConfiguration.java @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class ServerPlanOptionConfiguration { + /** + * @return Label for your configuration item + * + */ + private String label; + /** + * @return Value or resource URL on API.OVH.COM of your configuration item + * + */ + private String value; + + private ServerPlanOptionConfiguration() {} + /** + * @return Label for your configuration item + * + */ + public String label() { + return this.label; + } + /** + * @return Value or resource URL on API.OVH.COM of your configuration item + * + */ + public String value() { + return this.value; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ServerPlanOptionConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String label; + private String value; + public Builder() {} + public Builder(ServerPlanOptionConfiguration defaults) { + Objects.requireNonNull(defaults); + this.label = defaults.label; + this.value = defaults.value; + } + + @CustomType.Setter + public Builder label(String label) { + if (label == null) { + throw new MissingRequiredPropertyException("ServerPlanOptionConfiguration", "label"); + } + this.label = label; + return this; + } + @CustomType.Setter + public Builder value(String value) { + if (value == null) { + throw new MissingRequiredPropertyException("ServerPlanOptionConfiguration", "value"); + } + this.value = value; + return this; + } + public ServerPlanOptionConfiguration build() { + final var _resultValue = new ServerPlanOptionConfiguration(); + _resultValue.label = label; + _resultValue.value = value; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerUserMetadata.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerUserMetadata.java new file mode 100644 index 00000000..c0f574b7 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Dedicated/outputs/ServerUserMetadata.java @@ -0,0 +1,62 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Dedicated.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ServerUserMetadata { + private @Nullable String key; + private @Nullable String value; + + private ServerUserMetadata() {} + public Optional key() { + return Optional.ofNullable(this.key); + } + public Optional value() { + return Optional.ofNullable(this.value); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ServerUserMetadata defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String key; + private @Nullable String value; + public Builder() {} + public Builder(ServerUserMetadata defaults) { + Objects.requireNonNull(defaults); + this.key = defaults.key; + this.value = defaults.value; + } + + @CustomType.Setter + public Builder key(@Nullable String key) { + + this.key = key; + return this; + } + @CustomType.Setter + public Builder value(@Nullable String value) { + + this.value = value; + return this; + } + public ServerUserMetadata build() { + final var _resultValue = new ServerUserMetadata(); + _resultValue.key = key; + _resultValue.value = value; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Domain/ZoneImport.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Domain/ZoneImport.java new file mode 100644 index 00000000..a07587e3 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Domain/ZoneImport.java @@ -0,0 +1,158 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Domain; + +import com.ovhcloud.pulumi.ovh.Domain.ZoneImportArgs; +import com.ovhcloud.pulumi.ovh.Domain.inputs.ZoneImportState; +import com.ovhcloud.pulumi.ovh.Utilities; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * Handle a whole DNS zone using a zone file. + * + * > __WARNING__ This resource and resource `ovh.Domain.ZoneRecord` should not be used together as `ovh.Domain.ZoneImport` controls the whole DNS zone at once. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.ovh.Domain.ZoneImport;
+ * import com.pulumi.ovh.Domain.ZoneImportArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var import_ = new ZoneImport("import", ZoneImportArgs.builder()
+ *             .zoneName("mysite.ovh")
+ *             .zoneFile(Files.readString(Paths.get("./example.zone")))
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + */ +@ResourceType(type="ovh:Domain/zoneImport:ZoneImport") +public class ZoneImport extends com.pulumi.resources.CustomResource { + /** + * Zone file exported from the API + * + */ + @Export(name="exportedContent", refs={String.class}, tree="[0]") + private Output exportedContent; + + /** + * @return Zone file exported from the API + * + */ + public Output exportedContent() { + return this.exportedContent; + } + /** + * Content of the zone file to import + * + */ + @Export(name="zoneFile", refs={String.class}, tree="[0]") + private Output zoneFile; + + /** + * @return Content of the zone file to import + * + */ + public Output zoneFile() { + return this.zoneFile; + } + /** + * The name of the domain zone + * + */ + @Export(name="zoneName", refs={String.class}, tree="[0]") + private Output zoneName; + + /** + * @return The name of the domain zone + * + */ + public Output zoneName() { + return this.zoneName; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ZoneImport(java.lang.String name) { + this(name, ZoneImportArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ZoneImport(java.lang.String name, ZoneImportArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ZoneImport(java.lang.String name, ZoneImportArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("ovh:Domain/zoneImport:ZoneImport", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private ZoneImport(java.lang.String name, Output id, @Nullable ZoneImportState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("ovh:Domain/zoneImport:ZoneImport", name, state, makeResourceOptions(options, id), false); + } + + private static ZoneImportArgs makeArgs(ZoneImportArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ZoneImportArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ZoneImport get(java.lang.String name, Output id, @Nullable ZoneImportState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ZoneImport(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Domain/ZoneImportArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Domain/ZoneImportArgs.java new file mode 100644 index 00000000..90b5c7e4 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Domain/ZoneImportArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Domain; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class ZoneImportArgs extends com.pulumi.resources.ResourceArgs { + + public static final ZoneImportArgs Empty = new ZoneImportArgs(); + + /** + * Content of the zone file to import + * + */ + @Import(name="zoneFile", required=true) + private Output zoneFile; + + /** + * @return Content of the zone file to import + * + */ + public Output zoneFile() { + return this.zoneFile; + } + + /** + * The name of the domain zone + * + */ + @Import(name="zoneName", required=true) + private Output zoneName; + + /** + * @return The name of the domain zone + * + */ + public Output zoneName() { + return this.zoneName; + } + + private ZoneImportArgs() {} + + private ZoneImportArgs(ZoneImportArgs $) { + this.zoneFile = $.zoneFile; + this.zoneName = $.zoneName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ZoneImportArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ZoneImportArgs $; + + public Builder() { + $ = new ZoneImportArgs(); + } + + public Builder(ZoneImportArgs defaults) { + $ = new ZoneImportArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param zoneFile Content of the zone file to import + * + * @return builder + * + */ + public Builder zoneFile(Output zoneFile) { + $.zoneFile = zoneFile; + return this; + } + + /** + * @param zoneFile Content of the zone file to import + * + * @return builder + * + */ + public Builder zoneFile(String zoneFile) { + return zoneFile(Output.of(zoneFile)); + } + + /** + * @param zoneName The name of the domain zone + * + * @return builder + * + */ + public Builder zoneName(Output zoneName) { + $.zoneName = zoneName; + return this; + } + + /** + * @param zoneName The name of the domain zone + * + * @return builder + * + */ + public Builder zoneName(String zoneName) { + return zoneName(Output.of(zoneName)); + } + + public ZoneImportArgs build() { + if ($.zoneFile == null) { + throw new MissingRequiredPropertyException("ZoneImportArgs", "zoneFile"); + } + if ($.zoneName == null) { + throw new MissingRequiredPropertyException("ZoneImportArgs", "zoneName"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Domain/inputs/ZoneImportState.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Domain/inputs/ZoneImportState.java new file mode 100644 index 00000000..4578d6b9 --- /dev/null +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Domain/inputs/ZoneImportState.java @@ -0,0 +1,157 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.ovhcloud.pulumi.ovh.Domain.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ZoneImportState extends com.pulumi.resources.ResourceArgs { + + public static final ZoneImportState Empty = new ZoneImportState(); + + /** + * Zone file exported from the API + * + */ + @Import(name="exportedContent") + private @Nullable Output exportedContent; + + /** + * @return Zone file exported from the API + * + */ + public Optional> exportedContent() { + return Optional.ofNullable(this.exportedContent); + } + + /** + * Content of the zone file to import + * + */ + @Import(name="zoneFile") + private @Nullable Output zoneFile; + + /** + * @return Content of the zone file to import + * + */ + public Optional> zoneFile() { + return Optional.ofNullable(this.zoneFile); + } + + /** + * The name of the domain zone + * + */ + @Import(name="zoneName") + private @Nullable Output zoneName; + + /** + * @return The name of the domain zone + * + */ + public Optional> zoneName() { + return Optional.ofNullable(this.zoneName); + } + + private ZoneImportState() {} + + private ZoneImportState(ZoneImportState $) { + this.exportedContent = $.exportedContent; + this.zoneFile = $.zoneFile; + this.zoneName = $.zoneName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ZoneImportState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ZoneImportState $; + + public Builder() { + $ = new ZoneImportState(); + } + + public Builder(ZoneImportState defaults) { + $ = new ZoneImportState(Objects.requireNonNull(defaults)); + } + + /** + * @param exportedContent Zone file exported from the API + * + * @return builder + * + */ + public Builder exportedContent(@Nullable Output exportedContent) { + $.exportedContent = exportedContent; + return this; + } + + /** + * @param exportedContent Zone file exported from the API + * + * @return builder + * + */ + public Builder exportedContent(String exportedContent) { + return exportedContent(Output.of(exportedContent)); + } + + /** + * @param zoneFile Content of the zone file to import + * + * @return builder + * + */ + public Builder zoneFile(@Nullable Output zoneFile) { + $.zoneFile = zoneFile; + return this; + } + + /** + * @param zoneFile Content of the zone file to import + * + * @return builder + * + */ + public Builder zoneFile(String zoneFile) { + return zoneFile(Output.of(zoneFile)); + } + + /** + * @param zoneName The name of the domain zone + * + * @return builder + * + */ + public Builder zoneName(@Nullable Output zoneName) { + $.zoneName = zoneName; + return this; + } + + /** + * @param zoneName The name of the domain zone + * + * @return builder + * + */ + public Builder zoneName(String zoneName) { + return zoneName(Output.of(zoneName)); + } + + public ZoneImportState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/HttpFarm.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/HttpFarm.java index 12a0b74d..fafb277e 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/HttpFarm.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/HttpFarm.java @@ -71,14 +71,14 @@ @ResourceType(type="ovh:IpLoadBalancing/httpFarm:HttpFarm") public class HttpFarm extends com.pulumi.resources.CustomResource { /** - * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) * */ @Export(name="balance", refs={String.class}, tree="[0]") private Output balance; /** - * @return Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * @return Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) * */ public Output> balance() { diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/HttpFarmArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/HttpFarmArgs.java index 2fb14616..c7fccd75 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/HttpFarmArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/HttpFarmArgs.java @@ -19,14 +19,14 @@ public final class HttpFarmArgs extends com.pulumi.resources.ResourceArgs { public static final HttpFarmArgs Empty = new HttpFarmArgs(); /** - * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) * */ @Import(name="balance") private @Nullable Output balance; /** - * @return Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * @return Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) * */ public Optional> balance() { @@ -170,7 +170,7 @@ public Builder(HttpFarmArgs defaults) { } /** - * @param balance Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * @param balance Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) * * @return builder * @@ -181,7 +181,7 @@ public Builder balance(@Nullable Output balance) { } /** - * @param balance Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * @param balance Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) * * @return builder * diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/inputs/HttpFarmState.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/inputs/HttpFarmState.java index ca7d649f..b5684f82 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/inputs/HttpFarmState.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/IpLoadBalancing/inputs/HttpFarmState.java @@ -18,14 +18,14 @@ public final class HttpFarmState extends com.pulumi.resources.ResourceArgs { public static final HttpFarmState Empty = new HttpFarmState(); /** - * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) * */ @Import(name="balance") private @Nullable Output balance; /** - * @return Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * @return Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) * */ public Optional> balance() { @@ -169,7 +169,7 @@ public Builder(HttpFarmState defaults) { } /** - * @param balance Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * @param balance Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) * * @return builder * @@ -180,7 +180,7 @@ public Builder balance(@Nullable Output balance) { } /** - * @param balance Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * @param balance Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) * * @return builder * diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/inputs/InstallationTemplateCustomizationArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/inputs/InstallationTemplateCustomizationArgs.java index 2ed5a396..0a9dab1a 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/inputs/InstallationTemplateCustomizationArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/inputs/InstallationTemplateCustomizationArgs.java @@ -30,42 +30,10 @@ public Optional> customHostname() { return Optional.ofNullable(this.customHostname); } - /** - * Indicate the URL where your postinstall customisation script is located. - * - */ - @Import(name="postInstallationScriptLink") - private @Nullable Output postInstallationScriptLink; - - /** - * @return Indicate the URL where your postinstall customisation script is located. - * - */ - public Optional> postInstallationScriptLink() { - return Optional.ofNullable(this.postInstallationScriptLink); - } - - /** - * indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - */ - @Import(name="postInstallationScriptReturn") - private @Nullable Output postInstallationScriptReturn; - - /** - * @return indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - */ - public Optional> postInstallationScriptReturn() { - return Optional.ofNullable(this.postInstallationScriptReturn); - } - private InstallationTemplateCustomizationArgs() {} private InstallationTemplateCustomizationArgs(InstallationTemplateCustomizationArgs $) { this.customHostname = $.customHostname; - this.postInstallationScriptLink = $.postInstallationScriptLink; - this.postInstallationScriptReturn = $.postInstallationScriptReturn; } public static Builder builder() { @@ -107,48 +75,6 @@ public Builder customHostname(String customHostname) { return customHostname(Output.of(customHostname)); } - /** - * @param postInstallationScriptLink Indicate the URL where your postinstall customisation script is located. - * - * @return builder - * - */ - public Builder postInstallationScriptLink(@Nullable Output postInstallationScriptLink) { - $.postInstallationScriptLink = postInstallationScriptLink; - return this; - } - - /** - * @param postInstallationScriptLink Indicate the URL where your postinstall customisation script is located. - * - * @return builder - * - */ - public Builder postInstallationScriptLink(String postInstallationScriptLink) { - return postInstallationScriptLink(Output.of(postInstallationScriptLink)); - } - - /** - * @param postInstallationScriptReturn indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - * @return builder - * - */ - public Builder postInstallationScriptReturn(@Nullable Output postInstallationScriptReturn) { - $.postInstallationScriptReturn = postInstallationScriptReturn; - return this; - } - - /** - * @param postInstallationScriptReturn indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - * @return builder - * - */ - public Builder postInstallationScriptReturn(String postInstallationScriptReturn) { - return postInstallationScriptReturn(Output.of(postInstallationScriptReturn)); - } - public InstallationTemplateCustomizationArgs build() { return $; } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/outputs/GetInstallationTemplateCustomization.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/outputs/GetInstallationTemplateCustomization.java index b04d4e10..dfc7507f 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/outputs/GetInstallationTemplateCustomization.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/outputs/GetInstallationTemplateCustomization.java @@ -15,16 +15,6 @@ public final class GetInstallationTemplateCustomization { * */ private String customHostname; - /** - * @return Indicate the URL where your postinstall customisation script is located. - * - */ - private String postInstallationScriptLink; - /** - * @return Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - */ - private String postInstallationScriptReturn; private GetInstallationTemplateCustomization() {} /** @@ -34,20 +24,6 @@ private GetInstallationTemplateCustomization() {} public String customHostname() { return this.customHostname; } - /** - * @return Indicate the URL where your postinstall customisation script is located. - * - */ - public String postInstallationScriptLink() { - return this.postInstallationScriptLink; - } - /** - * @return Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - */ - public String postInstallationScriptReturn() { - return this.postInstallationScriptReturn; - } public static Builder builder() { return new Builder(); @@ -59,14 +35,10 @@ public static Builder builder(GetInstallationTemplateCustomization defaults) { @CustomType.Builder public static final class Builder { private String customHostname; - private String postInstallationScriptLink; - private String postInstallationScriptReturn; public Builder() {} public Builder(GetInstallationTemplateCustomization defaults) { Objects.requireNonNull(defaults); this.customHostname = defaults.customHostname; - this.postInstallationScriptLink = defaults.postInstallationScriptLink; - this.postInstallationScriptReturn = defaults.postInstallationScriptReturn; } @CustomType.Setter @@ -77,27 +49,9 @@ public Builder customHostname(String customHostname) { this.customHostname = customHostname; return this; } - @CustomType.Setter - public Builder postInstallationScriptLink(String postInstallationScriptLink) { - if (postInstallationScriptLink == null) { - throw new MissingRequiredPropertyException("GetInstallationTemplateCustomization", "postInstallationScriptLink"); - } - this.postInstallationScriptLink = postInstallationScriptLink; - return this; - } - @CustomType.Setter - public Builder postInstallationScriptReturn(String postInstallationScriptReturn) { - if (postInstallationScriptReturn == null) { - throw new MissingRequiredPropertyException("GetInstallationTemplateCustomization", "postInstallationScriptReturn"); - } - this.postInstallationScriptReturn = postInstallationScriptReturn; - return this; - } public GetInstallationTemplateCustomization build() { final var _resultValue = new GetInstallationTemplateCustomization(); _resultValue.customHostname = customHostname; - _resultValue.postInstallationScriptLink = postInstallationScriptLink; - _resultValue.postInstallationScriptReturn = postInstallationScriptReturn; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/outputs/InstallationTemplateCustomization.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/outputs/InstallationTemplateCustomization.java index 31d97772..b52ae80c 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/outputs/InstallationTemplateCustomization.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Me/outputs/InstallationTemplateCustomization.java @@ -16,16 +16,6 @@ public final class InstallationTemplateCustomization { * */ private @Nullable String customHostname; - /** - * @return Indicate the URL where your postinstall customisation script is located. - * - */ - private @Nullable String postInstallationScriptLink; - /** - * @return indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - */ - private @Nullable String postInstallationScriptReturn; private InstallationTemplateCustomization() {} /** @@ -35,20 +25,6 @@ private InstallationTemplateCustomization() {} public Optional customHostname() { return Optional.ofNullable(this.customHostname); } - /** - * @return Indicate the URL where your postinstall customisation script is located. - * - */ - public Optional postInstallationScriptLink() { - return Optional.ofNullable(this.postInstallationScriptLink); - } - /** - * @return indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - * - */ - public Optional postInstallationScriptReturn() { - return Optional.ofNullable(this.postInstallationScriptReturn); - } public static Builder builder() { return new Builder(); @@ -60,14 +36,10 @@ public static Builder builder(InstallationTemplateCustomization defaults) { @CustomType.Builder public static final class Builder { private @Nullable String customHostname; - private @Nullable String postInstallationScriptLink; - private @Nullable String postInstallationScriptReturn; public Builder() {} public Builder(InstallationTemplateCustomization defaults) { Objects.requireNonNull(defaults); this.customHostname = defaults.customHostname; - this.postInstallationScriptLink = defaults.postInstallationScriptLink; - this.postInstallationScriptReturn = defaults.postInstallationScriptReturn; } @CustomType.Setter @@ -76,23 +48,9 @@ public Builder customHostname(@Nullable String customHostname) { this.customHostname = customHostname; return this; } - @CustomType.Setter - public Builder postInstallationScriptLink(@Nullable String postInstallationScriptLink) { - - this.postInstallationScriptLink = postInstallationScriptLink; - return this; - } - @CustomType.Setter - public Builder postInstallationScriptReturn(@Nullable String postInstallationScriptReturn) { - - this.postInstallationScriptReturn = postInstallationScriptReturn; - return this; - } public InstallationTemplateCustomization build() { final var _resultValue = new InstallationTemplateCustomization(); _resultValue.customHostname = customHostname; - _resultValue.postInstallationScriptLink = postInstallationScriptLink; - _resultValue.postInstallationScriptReturn = postInstallationScriptReturn; return _resultValue; } } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Vps/inputs/VpsPlanOptionArgs.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Vps/inputs/VpsPlanOptionArgs.java index 83310860..d92bfa6f 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Vps/inputs/VpsPlanOptionArgs.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Vps/inputs/VpsPlanOptionArgs.java @@ -49,21 +49,6 @@ public Output duration() { return this.duration; } - /** - * Cart item to be linked - * - */ - @Import(name="itemId", required=true) - private Output itemId; - - /** - * @return Cart item to be linked - * - */ - public Output itemId() { - return this.itemId; - } - /** * Plan code * @@ -114,7 +99,6 @@ private VpsPlanOptionArgs() {} private VpsPlanOptionArgs(VpsPlanOptionArgs $) { this.configurations = $.configurations; this.duration = $.duration; - this.itemId = $.itemId; this.planCode = $.planCode; this.pricingMode = $.pricingMode; this.quantity = $.quantity; @@ -190,27 +174,6 @@ public Builder duration(String duration) { return duration(Output.of(duration)); } - /** - * @param itemId Cart item to be linked - * - * @return builder - * - */ - public Builder itemId(Output itemId) { - $.itemId = itemId; - return this; - } - - /** - * @param itemId Cart item to be linked - * - * @return builder - * - */ - public Builder itemId(Double itemId) { - return itemId(Output.of(itemId)); - } - /** * @param planCode Plan code * @@ -278,9 +241,6 @@ public VpsPlanOptionArgs build() { if ($.duration == null) { throw new MissingRequiredPropertyException("VpsPlanOptionArgs", "duration"); } - if ($.itemId == null) { - throw new MissingRequiredPropertyException("VpsPlanOptionArgs", "itemId"); - } if ($.planCode == null) { throw new MissingRequiredPropertyException("VpsPlanOptionArgs", "planCode"); } diff --git a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Vps/outputs/VpsPlanOption.java b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Vps/outputs/VpsPlanOption.java index 62a5932a..0de1c25a 100644 --- a/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Vps/outputs/VpsPlanOption.java +++ b/sdk/java/src/main/java/com/ovhcloud/pulumi/ovh/Vps/outputs/VpsPlanOption.java @@ -24,11 +24,6 @@ public final class VpsPlanOption { * */ private String duration; - /** - * @return Cart item to be linked - * - */ - private Double itemId; /** * @return Plan code * @@ -60,13 +55,6 @@ public List configurations() { public String duration() { return this.duration; } - /** - * @return Cart item to be linked - * - */ - public Double itemId() { - return this.itemId; - } /** * @return Plan code * @@ -100,7 +88,6 @@ public static Builder builder(VpsPlanOption defaults) { public static final class Builder { private @Nullable List configurations; private String duration; - private Double itemId; private String planCode; private String pricingMode; private Double quantity; @@ -109,7 +96,6 @@ public Builder(VpsPlanOption defaults) { Objects.requireNonNull(defaults); this.configurations = defaults.configurations; this.duration = defaults.duration; - this.itemId = defaults.itemId; this.planCode = defaults.planCode; this.pricingMode = defaults.pricingMode; this.quantity = defaults.quantity; @@ -133,14 +119,6 @@ public Builder duration(String duration) { return this; } @CustomType.Setter - public Builder itemId(Double itemId) { - if (itemId == null) { - throw new MissingRequiredPropertyException("VpsPlanOption", "itemId"); - } - this.itemId = itemId; - return this; - } - @CustomType.Setter public Builder planCode(String planCode) { if (planCode == null) { throw new MissingRequiredPropertyException("VpsPlanOption", "planCode"); @@ -168,7 +146,6 @@ public VpsPlanOption build() { final var _resultValue = new VpsPlanOption(); _resultValue.configurations = configurations; _resultValue.duration = duration; - _resultValue.itemId = itemId; _resultValue.planCode = planCode; _resultValue.pricingMode = pricingMode; _resultValue.quantity = quantity; diff --git a/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsManagement.ts b/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsManagement.ts index c7ea4871..d391945b 100644 --- a/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsManagement.ts +++ b/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsManagement.ts @@ -59,7 +59,7 @@ export class ContainerRegistryIPRestrictionsManagement extends pulumi.CustomReso /** * IP restrictions applied on Harbor UI and API. */ - public readonly ipRestrictions!: pulumi.Output<{[key: string]: any}[]>; + public readonly ipRestrictions!: pulumi.Output<{[key: string]: string}[]>; /** * The id of the Managed Private Registry. */ @@ -112,7 +112,7 @@ export interface ContainerRegistryIPRestrictionsManagementState { /** * IP restrictions applied on Harbor UI and API. */ - ipRestrictions?: pulumi.Input[]>; + ipRestrictions?: pulumi.Input}>[]>; /** * The id of the Managed Private Registry. */ @@ -130,7 +130,7 @@ export interface ContainerRegistryIPRestrictionsManagementArgs { /** * IP restrictions applied on Harbor UI and API. */ - ipRestrictions: pulumi.Input[]>; + ipRestrictions: pulumi.Input}>[]>; /** * The id of the Managed Private Registry. */ diff --git a/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsRegistry.ts b/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsRegistry.ts index 27c50066..a83e962a 100644 --- a/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsRegistry.ts +++ b/sdk/nodejs/cloudproject/containerRegistryIPRestrictionsRegistry.ts @@ -59,7 +59,7 @@ export class ContainerRegistryIPRestrictionsRegistry extends pulumi.CustomResour /** * IP restrictions applied on artifact manager component. */ - public readonly ipRestrictions!: pulumi.Output<{[key: string]: any}[]>; + public readonly ipRestrictions!: pulumi.Output<{[key: string]: string}[]>; /** * The id of the Managed Private Registry. */ @@ -112,7 +112,7 @@ export interface ContainerRegistryIPRestrictionsRegistryState { /** * IP restrictions applied on artifact manager component. */ - ipRestrictions?: pulumi.Input[]>; + ipRestrictions?: pulumi.Input}>[]>; /** * The id of the Managed Private Registry. */ @@ -130,7 +130,7 @@ export interface ContainerRegistryIPRestrictionsRegistryArgs { /** * IP restrictions applied on artifact manager component. */ - ipRestrictions: pulumi.Input[]>; + ipRestrictions: pulumi.Input}>[]>; /** * The id of the Managed Private Registry. */ diff --git a/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsManagement.ts b/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsManagement.ts index 2e5a38aa..f769ac7f 100644 --- a/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsManagement.ts +++ b/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsManagement.ts @@ -41,7 +41,7 @@ export interface GetContainerRegistryIPRestrictionsManagementResult { /** * IP restrictions applied on Harbor UI and API. */ - readonly ipRestrictions: {[key: string]: any}[]; + readonly ipRestrictions: {[key: string]: string}[]; /** * The ID of the Managed Private Registry. */ diff --git a/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsRegistry.ts b/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsRegistry.ts index 5b0051d1..9776eaf0 100644 --- a/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsRegistry.ts +++ b/sdk/nodejs/cloudproject/getContainerRegistryIPRestrictionsRegistry.ts @@ -41,7 +41,7 @@ export interface GetContainerRegistryIPRestrictionsRegistryResult { /** * IP restrictions applied on artifact manager component. */ - readonly ipRestrictions: {[key: string]: any}[]; + readonly ipRestrictions: {[key: string]: string}[]; /** * The ID of the Managed Private Registry. */ diff --git a/sdk/nodejs/cloudproject/user.ts b/sdk/nodejs/cloudproject/user.ts index 3398b79d..e6613867 100644 --- a/sdk/nodejs/cloudproject/user.ts +++ b/sdk/nodejs/cloudproject/user.ts @@ -58,7 +58,7 @@ export class User extends pulumi.CustomResource { * a convenient map representing an openstackRc file. * Note: no password nor sensitive token is set in this map. */ - public readonly openstackRc!: pulumi.Output<{[key: string]: any}>; + public readonly openstackRc!: pulumi.Output<{[key: string]: string}>; /** * (Sensitive) the password generated for the user. The password can * be used with the Openstack API. This attribute is sensitive and will only be @@ -166,7 +166,7 @@ export interface UserState { * a convenient map representing an openstackRc file. * Note: no password nor sensitive token is set in this map. */ - openstackRc?: pulumi.Input<{[key: string]: any}>; + openstackRc?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * (Sensitive) the password generated for the user. The password can * be used with the Openstack API. This attribute is sensitive and will only be @@ -225,7 +225,7 @@ export interface UserArgs { * a convenient map representing an openstackRc file. * Note: no password nor sensitive token is set in this map. */ - openstackRc?: pulumi.Input<{[key: string]: any}>; + openstackRc?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * The name of a role. See `roleNames`. */ diff --git a/sdk/nodejs/dbaas/logsInput.ts b/sdk/nodejs/dbaas/logsInput.ts index 40a658f4..87fdd53a 100644 --- a/sdk/nodejs/dbaas/logsInput.ts +++ b/sdk/nodejs/dbaas/logsInput.ts @@ -80,6 +80,10 @@ export class LogsInput extends pulumi.CustomResource { * List of IP blocks */ public readonly allowedNetworks!: pulumi.Output; + /** + * Whether the workload is auto-scaled (mutually exclusive with parameter `nbInstance`) + */ + public readonly autoscale!: pulumi.Output; /** * Input configuration */ @@ -88,6 +92,10 @@ export class LogsInput extends pulumi.CustomResource { * Input creation */ public /*out*/ readonly createdAt!: pulumi.Output; + /** + * Number of instance running (returned by the API) + */ + public /*out*/ readonly currentNbInstance!: pulumi.Output; /** * Input description */ @@ -113,9 +121,17 @@ export class LogsInput extends pulumi.CustomResource { */ public /*out*/ readonly isRestartRequired!: pulumi.Output; /** - * Number of instance running + * Maximum number of instances in auto-scaled mode + */ + public readonly maxScaleInstance!: pulumi.Output; + /** + * Minimum number of instances in auto-scaled mode */ - public readonly nbInstance!: pulumi.Output; + public readonly minScaleInstance!: pulumi.Output; + /** + * Number of instance running (input, mutually exclusive with parameter `autoscale`) + */ + public readonly nbInstance!: pulumi.Output; /** * Input IP address */ @@ -159,14 +175,18 @@ export class LogsInput extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as LogsInputState | undefined; resourceInputs["allowedNetworks"] = state ? state.allowedNetworks : undefined; + resourceInputs["autoscale"] = state ? state.autoscale : undefined; resourceInputs["configuration"] = state ? state.configuration : undefined; resourceInputs["createdAt"] = state ? state.createdAt : undefined; + resourceInputs["currentNbInstance"] = state ? state.currentNbInstance : undefined; resourceInputs["description"] = state ? state.description : undefined; resourceInputs["engineId"] = state ? state.engineId : undefined; resourceInputs["exposedPort"] = state ? state.exposedPort : undefined; resourceInputs["hostname"] = state ? state.hostname : undefined; resourceInputs["inputId"] = state ? state.inputId : undefined; resourceInputs["isRestartRequired"] = state ? state.isRestartRequired : undefined; + resourceInputs["maxScaleInstance"] = state ? state.maxScaleInstance : undefined; + resourceInputs["minScaleInstance"] = state ? state.minScaleInstance : undefined; resourceInputs["nbInstance"] = state ? state.nbInstance : undefined; resourceInputs["publicAddress"] = state ? state.publicAddress : undefined; resourceInputs["serviceName"] = state ? state.serviceName : undefined; @@ -196,15 +216,19 @@ export class LogsInput extends pulumi.CustomResource { throw new Error("Missing required property 'title'"); } resourceInputs["allowedNetworks"] = args ? args.allowedNetworks : undefined; + resourceInputs["autoscale"] = args ? args.autoscale : undefined; resourceInputs["configuration"] = args ? args.configuration : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["engineId"] = args ? args.engineId : undefined; resourceInputs["exposedPort"] = args ? args.exposedPort : undefined; + resourceInputs["maxScaleInstance"] = args ? args.maxScaleInstance : undefined; + resourceInputs["minScaleInstance"] = args ? args.minScaleInstance : undefined; resourceInputs["nbInstance"] = args ? args.nbInstance : undefined; resourceInputs["serviceName"] = args ? args.serviceName : undefined; resourceInputs["streamId"] = args ? args.streamId : undefined; resourceInputs["title"] = args ? args.title : undefined; resourceInputs["createdAt"] = undefined /*out*/; + resourceInputs["currentNbInstance"] = undefined /*out*/; resourceInputs["hostname"] = undefined /*out*/; resourceInputs["inputId"] = undefined /*out*/; resourceInputs["isRestartRequired"] = undefined /*out*/; @@ -228,6 +252,10 @@ export interface LogsInputState { * List of IP blocks */ allowedNetworks?: pulumi.Input[]>; + /** + * Whether the workload is auto-scaled (mutually exclusive with parameter `nbInstance`) + */ + autoscale?: pulumi.Input; /** * Input configuration */ @@ -236,6 +264,10 @@ export interface LogsInputState { * Input creation */ createdAt?: pulumi.Input; + /** + * Number of instance running (returned by the API) + */ + currentNbInstance?: pulumi.Input; /** * Input description */ @@ -261,7 +293,15 @@ export interface LogsInputState { */ isRestartRequired?: pulumi.Input; /** - * Number of instance running + * Maximum number of instances in auto-scaled mode + */ + maxScaleInstance?: pulumi.Input; + /** + * Minimum number of instances in auto-scaled mode + */ + minScaleInstance?: pulumi.Input; + /** + * Number of instance running (input, mutually exclusive with parameter `autoscale`) */ nbInstance?: pulumi.Input; /** @@ -302,6 +342,10 @@ export interface LogsInputArgs { * List of IP blocks */ allowedNetworks?: pulumi.Input[]>; + /** + * Whether the workload is auto-scaled (mutually exclusive with parameter `nbInstance`) + */ + autoscale?: pulumi.Input; /** * Input configuration */ @@ -319,7 +363,15 @@ export interface LogsInputArgs { */ exposedPort?: pulumi.Input; /** - * Number of instance running + * Maximum number of instances in auto-scaled mode + */ + maxScaleInstance?: pulumi.Input; + /** + * Minimum number of instances in auto-scaled mode + */ + minScaleInstance?: pulumi.Input; + /** + * Number of instance running (input, mutually exclusive with parameter `autoscale`) */ nbInstance?: pulumi.Input; /** diff --git a/sdk/nodejs/dedicated/getServerBoots.ts b/sdk/nodejs/dedicated/getServerBoots.ts index 386e3335..9a2b4429 100644 --- a/sdk/nodejs/dedicated/getServerBoots.ts +++ b/sdk/nodejs/dedicated/getServerBoots.ts @@ -34,7 +34,7 @@ export function getServerBoots(args: GetServerBootsArgs, opts?: pulumi.InvokeOpt */ export interface GetServerBootsArgs { /** - * Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + * Filter the value of bootType property (harddisk, rescue, internal, network) */ bootType?: string; /** @@ -87,7 +87,7 @@ export function getServerBootsOutput(args: GetServerBootsOutputArgs, opts?: pulu */ export interface GetServerBootsOutputArgs { /** - * Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + * Filter the value of bootType property (harddisk, rescue, internal, network) */ bootType?: pulumi.Input; /** diff --git a/sdk/nodejs/dedicated/index.ts b/sdk/nodejs/dedicated/index.ts index ffb63d65..5f2f1fa6 100644 --- a/sdk/nodejs/dedicated/index.ts +++ b/sdk/nodejs/dedicated/index.ts @@ -50,6 +50,11 @@ export type NasHAPartitionSnapshot = import("./nasHAPartitionSnapshot").NasHAPar export const NasHAPartitionSnapshot: typeof import("./nasHAPartitionSnapshot").NasHAPartitionSnapshot = null as any; utilities.lazyLoad(exports, ["NasHAPartitionSnapshot"], () => require("./nasHAPartitionSnapshot")); +export { ServerArgs, ServerState } from "./server"; +export type Server = import("./server").Server; +export const Server: typeof import("./server").Server = null as any; +utilities.lazyLoad(exports, ["Server"], () => require("./server")); + export { ServerInstallTaskArgs, ServerInstallTaskState } from "./serverInstallTask"; export type ServerInstallTask = import("./serverInstallTask").ServerInstallTask; export const ServerInstallTask: typeof import("./serverInstallTask").ServerInstallTask = null as any; @@ -83,6 +88,8 @@ const _module = { return new NasHAPartitionAccess(name, undefined, { urn }) case "ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot": return new NasHAPartitionSnapshot(name, undefined, { urn }) + case "ovh:Dedicated/server:Server": + return new Server(name, undefined, { urn }) case "ovh:Dedicated/serverInstallTask:ServerInstallTask": return new ServerInstallTask(name, undefined, { urn }) case "ovh:Dedicated/serverNetworking:ServerNetworking": @@ -100,6 +107,7 @@ pulumi.runtime.registerResourceModule("ovh", "Dedicated/cephAcl", _module) pulumi.runtime.registerResourceModule("ovh", "Dedicated/nasHAPartition", _module) pulumi.runtime.registerResourceModule("ovh", "Dedicated/nasHAPartitionAccess", _module) pulumi.runtime.registerResourceModule("ovh", "Dedicated/nasHAPartitionSnapshot", _module) +pulumi.runtime.registerResourceModule("ovh", "Dedicated/server", _module) pulumi.runtime.registerResourceModule("ovh", "Dedicated/serverInstallTask", _module) pulumi.runtime.registerResourceModule("ovh", "Dedicated/serverNetworking", _module) pulumi.runtime.registerResourceModule("ovh", "Dedicated/serverRebootTask", _module) diff --git a/sdk/nodejs/dedicated/server.ts b/sdk/nodejs/dedicated/server.ts new file mode 100644 index 00000000..0b213330 --- /dev/null +++ b/sdk/nodejs/dedicated/server.ts @@ -0,0 +1,463 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * ## Import + * + * Dedicated servers can be imported using the `service_name`, e.g.: + * + * bash + * + * ```sh + * $ pulumi import ovh:Dedicated/server:Server server service_name + * ``` + */ +export class Server extends pulumi.CustomResource { + /** + * Get an existing Server resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ServerState, opts?: pulumi.CustomResourceOptions): Server { + return new Server(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'ovh:Dedicated/server:Server'; + + /** + * Returns true if the given object is an instance of Server. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Server { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Server.__pulumiType; + } + + /** + * Dedicated AZ localisation + */ + public /*out*/ readonly availabilityZone!: pulumi.Output; + /** + * Boot id of the server + */ + public readonly bootId!: pulumi.Output; + /** + * Boot script of the server + */ + public readonly bootScript!: pulumi.Output; + /** + * Dedicated server commercial range + */ + public /*out*/ readonly commercialRange!: pulumi.Output; + /** + * Dedicated datacenter localisation (bhs1,bhs2,...) + */ + public /*out*/ readonly datacenter!: pulumi.Output; + /** + * A structure describing informations about installation custom + */ + public readonly details!: pulumi.Output; + /** + * Resource display name + */ + public readonly displayName!: pulumi.Output; + /** + * IAM resource information + */ + public /*out*/ readonly iam!: pulumi.Output; + /** + * Dedicated server ip (IPv4) + */ + public /*out*/ readonly ip!: pulumi.Output; + /** + * Link speed of the server + */ + public /*out*/ readonly linkSpeed!: pulumi.Output; + /** + * Icmp monitoring state + */ + public readonly monitoring!: pulumi.Output; + /** + * Dedicated server name + */ + public /*out*/ readonly name!: pulumi.Output; + public /*out*/ readonly newUpgradeSystem!: pulumi.Output; + /** + * Prevent datacenter intervention + */ + public readonly noIntervention!: pulumi.Output; + /** + * Details about an Order + */ + public /*out*/ readonly order!: pulumi.Output; + /** + * Operating system + */ + public /*out*/ readonly os!: pulumi.Output; + /** + * OVH subsidiaries + */ + public readonly ovhSubsidiary!: pulumi.Output; + /** + * Partition scheme name + */ + public readonly partitionSchemeName!: pulumi.Output; + public readonly planOptions!: pulumi.Output; + public readonly plans!: pulumi.Output; + /** + * Power state of the server (poweron, poweroff) + */ + public /*out*/ readonly powerState!: pulumi.Output; + /** + * Does this server have professional use option + */ + public /*out*/ readonly professionalUse!: pulumi.Output; + /** + * Rack id of the server + */ + public /*out*/ readonly rack!: pulumi.Output; + /** + * Dedicated region localisation + */ + public /*out*/ readonly region!: pulumi.Output; + /** + * Rescue mail of the server + */ + public readonly rescueMail!: pulumi.Output; + /** + * Public SSH Key used in the rescue mode + */ + public readonly rescueSshKey!: pulumi.Output; + /** + * Dedicated server reverse + */ + public /*out*/ readonly reverse!: pulumi.Output; + /** + * Root device of the server + */ + public readonly rootDevice!: pulumi.Output; + /** + * Server id + */ + public /*out*/ readonly serverId!: pulumi.Output; + /** + * The serviceName of your dedicated server + */ + public /*out*/ readonly serviceName!: pulumi.Output; + /** + * All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + */ + public readonly state!: pulumi.Output; + /** + * Dedicated server support level (critical, fastpath, gs, pro) + */ + public /*out*/ readonly supportLevel!: pulumi.Output; + /** + * Template name + */ + public readonly templateName!: pulumi.Output; + /** + * Metadata + */ + public readonly userMetadatas!: pulumi.Output; + + /** + * Create a Server resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ServerArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ServerArgs | ServerState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ServerState | undefined; + resourceInputs["availabilityZone"] = state ? state.availabilityZone : undefined; + resourceInputs["bootId"] = state ? state.bootId : undefined; + resourceInputs["bootScript"] = state ? state.bootScript : undefined; + resourceInputs["commercialRange"] = state ? state.commercialRange : undefined; + resourceInputs["datacenter"] = state ? state.datacenter : undefined; + resourceInputs["details"] = state ? state.details : undefined; + resourceInputs["displayName"] = state ? state.displayName : undefined; + resourceInputs["iam"] = state ? state.iam : undefined; + resourceInputs["ip"] = state ? state.ip : undefined; + resourceInputs["linkSpeed"] = state ? state.linkSpeed : undefined; + resourceInputs["monitoring"] = state ? state.monitoring : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["newUpgradeSystem"] = state ? state.newUpgradeSystem : undefined; + resourceInputs["noIntervention"] = state ? state.noIntervention : undefined; + resourceInputs["order"] = state ? state.order : undefined; + resourceInputs["os"] = state ? state.os : undefined; + resourceInputs["ovhSubsidiary"] = state ? state.ovhSubsidiary : undefined; + resourceInputs["partitionSchemeName"] = state ? state.partitionSchemeName : undefined; + resourceInputs["planOptions"] = state ? state.planOptions : undefined; + resourceInputs["plans"] = state ? state.plans : undefined; + resourceInputs["powerState"] = state ? state.powerState : undefined; + resourceInputs["professionalUse"] = state ? state.professionalUse : undefined; + resourceInputs["rack"] = state ? state.rack : undefined; + resourceInputs["region"] = state ? state.region : undefined; + resourceInputs["rescueMail"] = state ? state.rescueMail : undefined; + resourceInputs["rescueSshKey"] = state ? state.rescueSshKey : undefined; + resourceInputs["reverse"] = state ? state.reverse : undefined; + resourceInputs["rootDevice"] = state ? state.rootDevice : undefined; + resourceInputs["serverId"] = state ? state.serverId : undefined; + resourceInputs["serviceName"] = state ? state.serviceName : undefined; + resourceInputs["state"] = state ? state.state : undefined; + resourceInputs["supportLevel"] = state ? state.supportLevel : undefined; + resourceInputs["templateName"] = state ? state.templateName : undefined; + resourceInputs["userMetadatas"] = state ? state.userMetadatas : undefined; + } else { + const args = argsOrState as ServerArgs | undefined; + if ((!args || args.ovhSubsidiary === undefined) && !opts.urn) { + throw new Error("Missing required property 'ovhSubsidiary'"); + } + resourceInputs["bootId"] = args ? args.bootId : undefined; + resourceInputs["bootScript"] = args ? args.bootScript : undefined; + resourceInputs["details"] = args ? args.details : undefined; + resourceInputs["displayName"] = args ? args.displayName : undefined; + resourceInputs["monitoring"] = args ? args.monitoring : undefined; + resourceInputs["noIntervention"] = args ? args.noIntervention : undefined; + resourceInputs["ovhSubsidiary"] = args ? args.ovhSubsidiary : undefined; + resourceInputs["partitionSchemeName"] = args ? args.partitionSchemeName : undefined; + resourceInputs["planOptions"] = args ? args.planOptions : undefined; + resourceInputs["plans"] = args ? args.plans : undefined; + resourceInputs["rescueMail"] = args ? args.rescueMail : undefined; + resourceInputs["rescueSshKey"] = args ? args.rescueSshKey : undefined; + resourceInputs["rootDevice"] = args ? args.rootDevice : undefined; + resourceInputs["state"] = args ? args.state : undefined; + resourceInputs["templateName"] = args ? args.templateName : undefined; + resourceInputs["userMetadatas"] = args ? args.userMetadatas : undefined; + resourceInputs["availabilityZone"] = undefined /*out*/; + resourceInputs["commercialRange"] = undefined /*out*/; + resourceInputs["datacenter"] = undefined /*out*/; + resourceInputs["iam"] = undefined /*out*/; + resourceInputs["ip"] = undefined /*out*/; + resourceInputs["linkSpeed"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["newUpgradeSystem"] = undefined /*out*/; + resourceInputs["order"] = undefined /*out*/; + resourceInputs["os"] = undefined /*out*/; + resourceInputs["powerState"] = undefined /*out*/; + resourceInputs["professionalUse"] = undefined /*out*/; + resourceInputs["rack"] = undefined /*out*/; + resourceInputs["region"] = undefined /*out*/; + resourceInputs["reverse"] = undefined /*out*/; + resourceInputs["serverId"] = undefined /*out*/; + resourceInputs["serviceName"] = undefined /*out*/; + resourceInputs["supportLevel"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Server.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Server resources. + */ +export interface ServerState { + /** + * Dedicated AZ localisation + */ + availabilityZone?: pulumi.Input; + /** + * Boot id of the server + */ + bootId?: pulumi.Input; + /** + * Boot script of the server + */ + bootScript?: pulumi.Input; + /** + * Dedicated server commercial range + */ + commercialRange?: pulumi.Input; + /** + * Dedicated datacenter localisation (bhs1,bhs2,...) + */ + datacenter?: pulumi.Input; + /** + * A structure describing informations about installation custom + */ + details?: pulumi.Input; + /** + * Resource display name + */ + displayName?: pulumi.Input; + /** + * IAM resource information + */ + iam?: pulumi.Input; + /** + * Dedicated server ip (IPv4) + */ + ip?: pulumi.Input; + /** + * Link speed of the server + */ + linkSpeed?: pulumi.Input; + /** + * Icmp monitoring state + */ + monitoring?: pulumi.Input; + /** + * Dedicated server name + */ + name?: pulumi.Input; + newUpgradeSystem?: pulumi.Input; + /** + * Prevent datacenter intervention + */ + noIntervention?: pulumi.Input; + /** + * Details about an Order + */ + order?: pulumi.Input; + /** + * Operating system + */ + os?: pulumi.Input; + /** + * OVH subsidiaries + */ + ovhSubsidiary?: pulumi.Input; + /** + * Partition scheme name + */ + partitionSchemeName?: pulumi.Input; + planOptions?: pulumi.Input[]>; + plans?: pulumi.Input[]>; + /** + * Power state of the server (poweron, poweroff) + */ + powerState?: pulumi.Input; + /** + * Does this server have professional use option + */ + professionalUse?: pulumi.Input; + /** + * Rack id of the server + */ + rack?: pulumi.Input; + /** + * Dedicated region localisation + */ + region?: pulumi.Input; + /** + * Rescue mail of the server + */ + rescueMail?: pulumi.Input; + /** + * Public SSH Key used in the rescue mode + */ + rescueSshKey?: pulumi.Input; + /** + * Dedicated server reverse + */ + reverse?: pulumi.Input; + /** + * Root device of the server + */ + rootDevice?: pulumi.Input; + /** + * Server id + */ + serverId?: pulumi.Input; + /** + * The serviceName of your dedicated server + */ + serviceName?: pulumi.Input; + /** + * All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + */ + state?: pulumi.Input; + /** + * Dedicated server support level (critical, fastpath, gs, pro) + */ + supportLevel?: pulumi.Input; + /** + * Template name + */ + templateName?: pulumi.Input; + /** + * Metadata + */ + userMetadatas?: pulumi.Input[]>; +} + +/** + * The set of arguments for constructing a Server resource. + */ +export interface ServerArgs { + /** + * Boot id of the server + */ + bootId?: pulumi.Input; + /** + * Boot script of the server + */ + bootScript?: pulumi.Input; + /** + * A structure describing informations about installation custom + */ + details?: pulumi.Input; + /** + * Resource display name + */ + displayName?: pulumi.Input; + /** + * Icmp monitoring state + */ + monitoring?: pulumi.Input; + /** + * Prevent datacenter intervention + */ + noIntervention?: pulumi.Input; + /** + * OVH subsidiaries + */ + ovhSubsidiary: pulumi.Input; + /** + * Partition scheme name + */ + partitionSchemeName?: pulumi.Input; + planOptions?: pulumi.Input[]>; + plans?: pulumi.Input[]>; + /** + * Rescue mail of the server + */ + rescueMail?: pulumi.Input; + /** + * Public SSH Key used in the rescue mode + */ + rescueSshKey?: pulumi.Input; + /** + * Root device of the server + */ + rootDevice?: pulumi.Input; + /** + * All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + */ + state?: pulumi.Input; + /** + * Template name + */ + templateName?: pulumi.Input; + /** + * Metadata + */ + userMetadatas?: pulumi.Input[]>; +} diff --git a/sdk/nodejs/dedicated/serverInstallTask.ts b/sdk/nodejs/dedicated/serverInstallTask.ts index 94d03a20..76b5f438 100644 --- a/sdk/nodejs/dedicated/serverInstallTask.ts +++ b/sdk/nodejs/dedicated/serverInstallTask.ts @@ -23,8 +23,7 @@ import * as utilities from "../utilities"; * baseTemplateName: "debian12_64", * templateName: "mydebian12", * customization: { - * postInstallationScriptLink: "http://test", - * postInstallationScriptReturn: "ok", + * customHostname: "mytest", * }, * }); * const serverInstall = new ovh.dedicated.ServerInstallTask("serverInstall", { @@ -34,10 +33,20 @@ import * as utilities from "../utilities"; * details: { * customHostname: "mytest", * }, - * userMetadatas: [{ - * key: "sshKey", - * value: "ssh-ed25519 AAAAC3...", - * }], + * userMetadatas: [ + * { + * key: "sshKey", + * value: "ssh-ed25519 AAAAC3...", + * }, + * { + * key: "postInstallationScript", + * value: `#!/bin/bash + * echo "coucou postInstallationScript" > /opt/coucou + * cat /etc/machine-id >> /opt/coucou + * date "+%Y-%m-%d %H:%M:%S" --utc >> /opt/coucou + * `, + * }, + * ], * }); * ``` * @@ -133,10 +142,19 @@ import * as utilities from "../utilities"; * details: { * customHostname: "mytest", * }, - * userMetadatas: [{ - * key: "language", - * value: "fr-fr", - * }], + * userMetadatas: [ + * { + * key: "language", + * value: "fr-fr", + * }, + * { + * key: "postInstallationScript", + * value: `coucou postInstallationScriptPowerShell" | Out-File -FilePath "c:\\ovhupd\\script\\coucou.txt" + * (Get-ItemProperty -LiteralPath "Registry::HKLM\\SOFTWARE\\Microsoft\\Cryptography" -Name "MachineGuid").MachineGuid | Out-File -FilePath "c:\\ovhupd\\script\\coucou.txt" -Append + * (Get-Date).ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss") | Out-File -FilePath "c:\\ovhupd\\script\\coucou.txt" -Append + * `, + * }, + * ], * }); * ``` * diff --git a/sdk/nodejs/domain/index.ts b/sdk/nodejs/domain/index.ts index 89f95999..f60edf4b 100644 --- a/sdk/nodejs/domain/index.ts +++ b/sdk/nodejs/domain/index.ts @@ -25,6 +25,11 @@ export type ZoneDNSSec = import("./zoneDNSSec").ZoneDNSSec; export const ZoneDNSSec: typeof import("./zoneDNSSec").ZoneDNSSec = null as any; utilities.lazyLoad(exports, ["ZoneDNSSec"], () => require("./zoneDNSSec")); +export { ZoneImportArgs, ZoneImportState } from "./zoneImport"; +export type ZoneImport = import("./zoneImport").ZoneImport; +export const ZoneImport: typeof import("./zoneImport").ZoneImport = null as any; +utilities.lazyLoad(exports, ["ZoneImport"], () => require("./zoneImport")); + export { ZoneRecordArgs, ZoneRecordState } from "./zoneRecord"; export type ZoneRecord = import("./zoneRecord").ZoneRecord; export const ZoneRecord: typeof import("./zoneRecord").ZoneRecord = null as any; @@ -44,6 +49,8 @@ const _module = { return new Zone(name, undefined, { urn }) case "ovh:Domain/zoneDNSSec:ZoneDNSSec": return new ZoneDNSSec(name, undefined, { urn }) + case "ovh:Domain/zoneImport:ZoneImport": + return new ZoneImport(name, undefined, { urn }) case "ovh:Domain/zoneRecord:ZoneRecord": return new ZoneRecord(name, undefined, { urn }) case "ovh:Domain/zoneRedirection:ZoneRedirection": @@ -55,5 +62,6 @@ const _module = { }; pulumi.runtime.registerResourceModule("ovh", "Domain/zone", _module) pulumi.runtime.registerResourceModule("ovh", "Domain/zoneDNSSec", _module) +pulumi.runtime.registerResourceModule("ovh", "Domain/zoneImport", _module) pulumi.runtime.registerResourceModule("ovh", "Domain/zoneRecord", _module) pulumi.runtime.registerResourceModule("ovh", "Domain/zoneRedirection", _module) diff --git a/sdk/nodejs/domain/zoneImport.ts b/sdk/nodejs/domain/zoneImport.ts new file mode 100644 index 00000000..27f082b0 --- /dev/null +++ b/sdk/nodejs/domain/zoneImport.ts @@ -0,0 +1,129 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Handle a whole DNS zone using a zone file. + * + * > __WARNING__ This resource and resource `ovh.Domain.ZoneRecord` should not be used together as `ovh.Domain.ZoneImport` controls the whole DNS zone at once. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as fs from "fs"; + * import * as ovh from "@ovhcloud/pulumi-ovh"; + * + * const _import = new ovh.domain.ZoneImport("import", { + * zoneName: "mysite.ovh", + * zoneFile: fs.readFileSync("./example.zone", "utf8"), + * }); + * ``` + */ +export class ZoneImport extends pulumi.CustomResource { + /** + * Get an existing ZoneImport resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ZoneImportState, opts?: pulumi.CustomResourceOptions): ZoneImport { + return new ZoneImport(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'ovh:Domain/zoneImport:ZoneImport'; + + /** + * Returns true if the given object is an instance of ZoneImport. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ZoneImport { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ZoneImport.__pulumiType; + } + + /** + * Zone file exported from the API + */ + public /*out*/ readonly exportedContent!: pulumi.Output; + /** + * Content of the zone file to import + */ + public readonly zoneFile!: pulumi.Output; + /** + * The name of the domain zone + */ + public readonly zoneName!: pulumi.Output; + + /** + * Create a ZoneImport resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ZoneImportArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ZoneImportArgs | ZoneImportState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ZoneImportState | undefined; + resourceInputs["exportedContent"] = state ? state.exportedContent : undefined; + resourceInputs["zoneFile"] = state ? state.zoneFile : undefined; + resourceInputs["zoneName"] = state ? state.zoneName : undefined; + } else { + const args = argsOrState as ZoneImportArgs | undefined; + if ((!args || args.zoneFile === undefined) && !opts.urn) { + throw new Error("Missing required property 'zoneFile'"); + } + if ((!args || args.zoneName === undefined) && !opts.urn) { + throw new Error("Missing required property 'zoneName'"); + } + resourceInputs["zoneFile"] = args ? args.zoneFile : undefined; + resourceInputs["zoneName"] = args ? args.zoneName : undefined; + resourceInputs["exportedContent"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ZoneImport.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ZoneImport resources. + */ +export interface ZoneImportState { + /** + * Zone file exported from the API + */ + exportedContent?: pulumi.Input; + /** + * Content of the zone file to import + */ + zoneFile?: pulumi.Input; + /** + * The name of the domain zone + */ + zoneName?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ZoneImport resource. + */ +export interface ZoneImportArgs { + /** + * Content of the zone file to import + */ + zoneFile: pulumi.Input; + /** + * The name of the domain zone + */ + zoneName: pulumi.Input; +} diff --git a/sdk/nodejs/iploadbalancing/httpFarm.ts b/sdk/nodejs/iploadbalancing/httpFarm.ts index 82699938..8ec81b9e 100644 --- a/sdk/nodejs/iploadbalancing/httpFarm.ts +++ b/sdk/nodejs/iploadbalancing/httpFarm.ts @@ -60,7 +60,7 @@ export class HttpFarm extends pulumi.CustomResource { } /** - * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) */ public readonly balance!: pulumi.Output; /** @@ -140,7 +140,7 @@ export class HttpFarm extends pulumi.CustomResource { */ export interface HttpFarmState { /** - * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) */ balance?: pulumi.Input; /** @@ -178,7 +178,7 @@ export interface HttpFarmState { */ export interface HttpFarmArgs { /** - * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + * Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) */ balance?: pulumi.Input; /** diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index f83b06a3..0ad7afd5 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -138,6 +138,7 @@ "dedicated/nasHAPartition.ts", "dedicated/nasHAPartitionAccess.ts", "dedicated/nasHAPartitionSnapshot.ts", + "dedicated/server.ts", "dedicated/serverInstallTask.ts", "dedicated/serverNetworking.ts", "dedicated/serverRebootTask.ts", @@ -147,6 +148,7 @@ "domain/index.ts", "domain/zone.ts", "domain/zoneDNSSec.ts", + "domain/zoneImport.ts", "domain/zoneRecord.ts", "domain/zoneRedirection.ts", "getInstallationTemplate.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index c77858b8..49e27ece 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -388,7 +388,7 @@ export namespace CloudProject { /** * taints */ - taints?: {[key: string]: any}[]; + taints?: {[key: string]: string}[]; /** * unschedulable */ @@ -399,7 +399,7 @@ export namespace CloudProject { /** * taints */ - taints?: pulumi.Input[]>; + taints?: pulumi.Input}>[]>; /** * unschedulable */ @@ -531,7 +531,7 @@ export namespace CloudProject { /** * taints */ - taints: pulumi.Input[]>; + taints: pulumi.Input}>[]>; /** * unschedulable */ @@ -780,27 +780,57 @@ export namespace Dbaas { } export namespace Dedicated { - export interface ServerInstallTaskDetails { + export interface ServerDetails { /** - * Set up the server using the provided hostname instead of the default hostname. + * Personnal hostname to use in server reinstallation */ customHostname?: pulumi.Input; /** - * Disk group id. + * Disk group id to process install on (only available for some templates) */ diskGroupId?: pulumi.Input; /** - * Set to true to disable RAID. + * true if you want to install only on the first disk */ noRaid?: pulumi.Input; /** - * Indicate the URL where your postinstall customisation script is located. + * Number of devices to use for system's software RAID + */ + softRaidDevices?: pulumi.Input; + } + + export interface ServerIam { + /** + * Resource display name + */ + displayName?: pulumi.Input; + /** + * Unique identifier of the resource in the IAM + */ + id?: pulumi.Input; + /** + * Resource tags. Tags that were internally computed are prefixed with `ovh:` + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * URN of the private database, used when writing IAM policies + */ + urn?: pulumi.Input; + } + + export interface ServerInstallTaskDetails { + /** + * Set up the server using the provided hostname instead of the default hostname. + */ + customHostname?: pulumi.Input; + /** + * Disk group id. */ - postInstallationScriptLink?: pulumi.Input; + diskGroupId?: pulumi.Input; /** - * Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. + * Set to true to disable RAID. */ - postInstallationScriptReturn?: pulumi.Input; + noRaid?: pulumi.Input; /** * soft raid devices. */ @@ -828,6 +858,98 @@ export namespace Dedicated { */ type: pulumi.Input; } + + export interface ServerOrder { + date?: pulumi.Input; + /** + * Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + */ + details?: pulumi.Input[]>; + expirationDate?: pulumi.Input; + orderId?: pulumi.Input; + } + + export interface ServerOrderDetail { + description?: pulumi.Input; + /** + * Product type of item in order + */ + detailType?: pulumi.Input; + domain?: pulumi.Input; + orderDetailId?: pulumi.Input; + quantity?: pulumi.Input; + } + + export interface ServerPlan { + configurations?: pulumi.Input[]>; + /** + * Duration selected for the purchase of the product + */ + duration: pulumi.Input; + /** + * Cart item to be linked + */ + itemId?: pulumi.Input; + /** + * Identifier of the option offer + */ + planCode: pulumi.Input; + /** + * Pricing mode selected for the purchase of the product + */ + pricingMode: pulumi.Input; + /** + * Quantity of product desired + */ + quantity?: pulumi.Input; + } + + export interface ServerPlanConfiguration { + /** + * Label for your configuration item + */ + label: pulumi.Input; + /** + * Value or resource URL on API.OVH.COM of your configuration item + */ + value: pulumi.Input; + } + + export interface ServerPlanOption { + configurations?: pulumi.Input[]>; + /** + * Duration selected for the purchase of the product + */ + duration: pulumi.Input; + /** + * Identifier of the option offer + */ + planCode: pulumi.Input; + /** + * Pricing mode selected for the purchase of the product + */ + pricingMode: pulumi.Input; + /** + * Quantity of product desired + */ + quantity: pulumi.Input; + } + + export interface ServerPlanOptionConfiguration { + /** + * Label for your configuration item + */ + label: pulumi.Input; + /** + * Value or resource URL on API.OVH.COM of your configuration item + */ + value: pulumi.Input; + } + + export interface ServerUserMetadata { + key?: pulumi.Input; + value?: pulumi.Input; + } } export namespace Domain { @@ -1456,14 +1578,6 @@ export namespace Me { * Set up the server using the provided hostname instead of the default hostname. */ customHostname?: pulumi.Input; - /** - * Indicate the URL where your postinstall customisation script is located. - */ - postInstallationScriptLink?: pulumi.Input; - /** - * indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - */ - postInstallationScriptReturn?: pulumi.Input; } export interface InstallationTemplateInput { @@ -1606,10 +1720,6 @@ export namespace Vps { * duration */ duration: pulumi.Input; - /** - * Cart item to be linked - */ - itemId: pulumi.Input; /** * Plan code */ diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 4df76701..cd9a9a46 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -678,7 +678,7 @@ export namespace CloudProject { /** * taints */ - taints?: {[key: string]: any}[]; + taints?: {[key: string]: string}[]; /** * unschedulable */ @@ -1023,7 +1023,7 @@ export namespace CloudProject { /** * taints */ - taints: {[key: string]: any}[]; + taints: {[key: string]: string}[]; /** * unschedulable */ @@ -1681,27 +1681,57 @@ export namespace Dedicated { value: number; } - export interface ServerInstallTaskDetails { + export interface ServerDetails { /** - * Set up the server using the provided hostname instead of the default hostname. + * Personnal hostname to use in server reinstallation */ customHostname?: string; /** - * Disk group id. + * Disk group id to process install on (only available for some templates) */ diskGroupId?: number; /** - * Set to true to disable RAID. + * true if you want to install only on the first disk */ noRaid?: boolean; /** - * Indicate the URL where your postinstall customisation script is located. + * Number of devices to use for system's software RAID + */ + softRaidDevices?: number; + } + + export interface ServerIam { + /** + * Resource display name + */ + displayName: string; + /** + * Unique identifier of the resource in the IAM + */ + id: string; + /** + * Resource tags. Tags that were internally computed are prefixed with `ovh:` + */ + tags: {[key: string]: string}; + /** + * URN of the private database, used when writing IAM policies + */ + urn: string; + } + + export interface ServerInstallTaskDetails { + /** + * Set up the server using the provided hostname instead of the default hostname. + */ + customHostname?: string; + /** + * Disk group id. */ - postInstallationScriptLink?: string; + diskGroupId?: number; /** - * Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. + * Set to true to disable RAID. */ - postInstallationScriptReturn?: string; + noRaid?: boolean; /** * soft raid devices. */ @@ -1730,6 +1760,98 @@ export namespace Dedicated { type: string; } + export interface ServerOrder { + date: string; + /** + * Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + */ + details: outputs.Dedicated.ServerOrderDetail[]; + expirationDate: string; + orderId: number; + } + + export interface ServerOrderDetail { + description: string; + /** + * Product type of item in order + */ + detailType: string; + domain: string; + orderDetailId: number; + quantity: string; + } + + export interface ServerPlan { + configurations: outputs.Dedicated.ServerPlanConfiguration[]; + /** + * Duration selected for the purchase of the product + */ + duration: string; + /** + * Cart item to be linked + */ + itemId?: number; + /** + * Identifier of the option offer + */ + planCode: string; + /** + * Pricing mode selected for the purchase of the product + */ + pricingMode: string; + /** + * Quantity of product desired + */ + quantity?: number; + } + + export interface ServerPlanConfiguration { + /** + * Label for your configuration item + */ + label: string; + /** + * Value or resource URL on API.OVH.COM of your configuration item + */ + value: string; + } + + export interface ServerPlanOption { + configurations?: outputs.Dedicated.ServerPlanOptionConfiguration[]; + /** + * Duration selected for the purchase of the product + */ + duration: string; + /** + * Identifier of the option offer + */ + planCode: string; + /** + * Pricing mode selected for the purchase of the product + */ + pricingMode: string; + /** + * Quantity of product desired + */ + quantity: number; + } + + export interface ServerPlanOptionConfiguration { + /** + * Label for your configuration item + */ + label: string; + /** + * Value or resource URL on API.OVH.COM of your configuration item + */ + value: string; + } + + export interface ServerUserMetadata { + key?: string; + value?: string; + } + } export namespace Domain { @@ -2421,14 +2543,6 @@ export namespace Me { * Set up the server using the provided hostname instead of the default hostname. */ customHostname: string; - /** - * Indicate the URL where your postinstall customisation script is located. - */ - postInstallationScriptLink: string; - /** - * Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - */ - postInstallationScriptReturn: string; } export interface GetInstallationTemplateInput { @@ -2528,14 +2642,6 @@ export namespace Me { * Set up the server using the provided hostname instead of the default hostname. */ customHostname?: string; - /** - * Indicate the URL where your postinstall customisation script is located. - */ - postInstallationScriptLink?: string; - /** - * indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - */ - postInstallationScriptReturn?: string; } export interface InstallationTemplateInput { @@ -3120,15 +3226,11 @@ export namespace Vps { /** * Representation of a configuration item for personalizing product */ - configurations: outputs.Vps.VpsPlanOptionConfiguration[]; + configurations?: outputs.Vps.VpsPlanOptionConfiguration[]; /** * duration */ duration: string; - /** - * Cart item to be linked - */ - itemId: number; /** * Plan code */ diff --git a/sdk/python/README.md b/sdk/python/README.md index d41b5775..a0676f2e 100644 --- a/sdk/python/README.md +++ b/sdk/python/README.md @@ -7,6 +7,7 @@ The OVH Resource Provider lets you manage [OVHcloud](https://www.ovhcloud.com/en [![NPM version](https://badge.fury.io/js/@ovhcloud%2Fpulumi-ovh.svg)](https://badge.fury.io/js/@ovhcloud%2Fpulumi-ovh) [![PyPI version](https://badge.fury.io/py/pulumi-ovh.svg)](https://badge.fury.io/py/pulumi-ovh) [![NuGet version](https://badge.fury.io/nu/Pulumi.Ovh.svg)](https://badge.fury.io/nu/Pulumi.Ovh) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.ovhcloud.pulumi.ovh/pulumi-ovh/badge.svg)](https://s01.oss.sonatype.org/#nexus-search;quick~com.ovhcloud.pulumi.ovh) Contribute with Gitpod ## Usage @@ -51,6 +52,32 @@ To use from .NET, install using `dotnet add package`: dotnet add package Pulumi.Ovh ``` +### Java + +To use from Java, add the dependency below to your `pom.xml` file: + +```bash + + com.ovhcloud.pulumi.ovh + pulumi-ovh + [0.48.9,) + +``` + +## Configuration + +The following configuration points are available for the `Ovh` provider: + +- `ovh:endpoint` (environment: `OVH_ENDPOINT`) - the Ovh endpoint, such `ovh-eu` +- `ovh:applicationKey` (environment: `OVH_APPLICATION_KEY`) - the Ovh application key +- `ovh:applicationSecret` (environment: `OVH_APPLICATION_SECRET`) - the Ovh application secret +- `ovh:consumerKey` (environment: `OVH_CONSUMER_KEY`) - the Ovh consumer key + +## Reference + +For detailed reference documentation, please visit [the Pulumi registry](https://www.pulumi.com/registry/packages/ovh/api-docs/). + + ## Configuration The following configuration points are available for the `Ovh` provider: diff --git a/sdk/python/pulumi_ovh/__init__.py b/sdk/python/pulumi_ovh/__init__.py index f31c31d9..1d11d264 100644 --- a/sdk/python/pulumi_ovh/__init__.py +++ b/sdk/python/pulumi_ovh/__init__.py @@ -441,6 +441,14 @@ "ovh:Dedicated/nasHAPartitionSnapshot:NasHAPartitionSnapshot": "NasHAPartitionSnapshot" } }, + { + "pkg": "ovh", + "mod": "Dedicated/server", + "fqn": "pulumi_ovh.dedicated", + "classes": { + "ovh:Dedicated/server:Server": "Server" + } + }, { "pkg": "ovh", "mod": "Dedicated/serverInstallTask", @@ -489,6 +497,14 @@ "ovh:Domain/zoneDNSSec:ZoneDNSSec": "ZoneDNSSec" } }, + { + "pkg": "ovh", + "mod": "Domain/zoneImport", + "fqn": "pulumi_ovh.domain", + "classes": { + "ovh:Domain/zoneImport:ZoneImport": "ZoneImport" + } + }, { "pkg": "ovh", "mod": "Domain/zoneRecord", diff --git a/sdk/python/pulumi_ovh/cloudproject/_inputs.py b/sdk/python/pulumi_ovh/cloudproject/_inputs.py index 5a44017c..70a485f7 100644 --- a/sdk/python/pulumi_ovh/cloudproject/_inputs.py +++ b/sdk/python/pulumi_ovh/cloudproject/_inputs.py @@ -1116,10 +1116,10 @@ def labels(self, value: pulumi.Input[Mapping[str, pulumi.Input[str]]]): @pulumi.input_type class KubeNodePoolTemplateSpecArgs: def __init__(__self__, *, - taints: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]], + taints: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]], unschedulable: pulumi.Input[bool]): """ - :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] taints: taints + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]] taints: taints :param pulumi.Input[bool] unschedulable: unschedulable """ pulumi.set(__self__, "taints", taints) @@ -1127,14 +1127,14 @@ def __init__(__self__, *, @property @pulumi.getter - def taints(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]: + def taints(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]: """ taints """ return pulumi.get(self, "taints") @taints.setter - def taints(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]): + def taints(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]): pulumi.set(self, "taints", value) @property @@ -2194,10 +2194,10 @@ def labels(self, value: Optional[Mapping[str, str]]): @pulumi.input_type class GetKubeNodePoolTemplateSpecArgs: def __init__(__self__, *, - taints: Optional[Sequence[Mapping[str, Any]]] = None, + taints: Optional[Sequence[Mapping[str, str]]] = None, unschedulable: Optional[bool] = None): """ - :param Sequence[Mapping[str, Any]] taints: taints + :param Sequence[Mapping[str, str]] taints: taints :param bool unschedulable: unschedulable """ if taints is not None: @@ -2207,14 +2207,14 @@ def __init__(__self__, *, @property @pulumi.getter - def taints(self) -> Optional[Sequence[Mapping[str, Any]]]: + def taints(self) -> Optional[Sequence[Mapping[str, str]]]: """ taints """ return pulumi.get(self, "taints") @taints.setter - def taints(self, value: Optional[Sequence[Mapping[str, Any]]]): + def taints(self, value: Optional[Sequence[Mapping[str, str]]]): pulumi.set(self, "taints", value) @property diff --git a/sdk/python/pulumi_ovh/cloudproject/alerting.py b/sdk/python/pulumi_ovh/cloudproject/alerting.py index 81054493..c08cc5ec 100644 --- a/sdk/python/pulumi_ovh/cloudproject/alerting.py +++ b/sdk/python/pulumi_ovh/cloudproject/alerting.py @@ -300,7 +300,7 @@ def get(resource_name: str, creation_date: Optional[pulumi.Input[str]] = None, delay: Optional[pulumi.Input[float]] = None, email: Optional[pulumi.Input[str]] = None, - formatted_monthly_threshold: Optional[pulumi.Input[pulumi.InputType['AlertingFormattedMonthlyThresholdArgs']]] = None, + formatted_monthly_threshold: Optional[pulumi.Input[Union['AlertingFormattedMonthlyThresholdArgs', 'AlertingFormattedMonthlyThresholdArgsDict']]] = None, monthly_threshold: Optional[pulumi.Input[float]] = None, service_name: Optional[pulumi.Input[str]] = None) -> 'Alerting': """ @@ -313,7 +313,7 @@ def get(resource_name: str, :param pulumi.Input[str] creation_date: Alerting creation date :param pulumi.Input[float] delay: Delay between two alerts in seconds :param pulumi.Input[str] email: Email to contact - :param pulumi.Input[pulumi.InputType['AlertingFormattedMonthlyThresholdArgs']] formatted_monthly_threshold: Formatted monthly threshold for this alerting + :param pulumi.Input[Union['AlertingFormattedMonthlyThresholdArgs', 'AlertingFormattedMonthlyThresholdArgsDict']] formatted_monthly_threshold: Formatted monthly threshold for this alerting :param pulumi.Input[float] monthly_threshold: Monthly threshold for this alerting in currency :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. diff --git a/sdk/python/pulumi_ovh/cloudproject/container_registry.py b/sdk/python/pulumi_ovh/cloudproject/container_registry.py index db7973c4..8c45f07d 100644 --- a/sdk/python/pulumi_ovh/cloudproject/container_registry.py +++ b/sdk/python/pulumi_ovh/cloudproject/container_registry.py @@ -408,7 +408,7 @@ def get(resource_name: str, created_at: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, plan_id: Optional[pulumi.Input[str]] = None, - plans: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerRegistryPlanArgs']]]]] = None, + plans: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ContainerRegistryPlanArgs', 'ContainerRegistryPlanArgsDict']]]]] = None, project_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -427,7 +427,7 @@ def get(resource_name: str, :param pulumi.Input[str] created_at: Plan creation date :param pulumi.Input[str] name: Registry name :param pulumi.Input[str] plan_id: Plan ID of the registry - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ContainerRegistryPlanArgs']]]] plans: Plan of the registry + :param pulumi.Input[Sequence[pulumi.Input[Union['ContainerRegistryPlanArgs', 'ContainerRegistryPlanArgsDict']]]] plans: Plan of the registry :param pulumi.Input[str] project_id: Project ID of your registry :param pulumi.Input[str] region: Region of the registry :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, diff --git a/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_management.py b/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_management.py index 0c2b2e87..761b94df 100644 --- a/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_management.py +++ b/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_management.py @@ -14,12 +14,12 @@ @pulumi.input_type class ContainerRegistryIPRestrictionsManagementArgs: def __init__(__self__, *, - ip_restrictions: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]], + ip_restrictions: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]], registry_id: pulumi.Input[str], service_name: pulumi.Input[str]): """ The set of arguments for constructing a ContainerRegistryIPRestrictionsManagement resource. - :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. """ @@ -29,14 +29,14 @@ def __init__(__self__, *, @property @pulumi.getter(name="ipRestrictions") - def ip_restrictions(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]: + def ip_restrictions(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]: """ IP restrictions applied on Harbor UI and API. """ return pulumi.get(self, "ip_restrictions") @ip_restrictions.setter - def ip_restrictions(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]): + def ip_restrictions(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]): pulumi.set(self, "ip_restrictions", value) @property @@ -67,12 +67,12 @@ def service_name(self, value: pulumi.Input[str]): @pulumi.input_type class _ContainerRegistryIPRestrictionsManagementState: def __init__(__self__, *, - ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]] = None, registry_id: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering ContainerRegistryIPRestrictionsManagement resources. - :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. """ @@ -85,14 +85,14 @@ def __init__(__self__, *, @property @pulumi.getter(name="ipRestrictions") - def ip_restrictions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]]: + def ip_restrictions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]]: """ IP restrictions applied on Harbor UI and API. """ return pulumi.get(self, "ip_restrictions") @ip_restrictions.setter - def ip_restrictions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]]): + def ip_restrictions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]]): pulumi.set(self, "ip_restrictions", value) @property @@ -125,7 +125,7 @@ class ContainerRegistryIPRestrictionsManagement(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]] = None, registry_id: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, __props__=None): @@ -151,7 +151,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. """ @@ -196,7 +196,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]] = None, registry_id: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, __props__=None): @@ -227,7 +227,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, - ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]] = None, registry_id: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None) -> 'ContainerRegistryIPRestrictionsManagement': """ @@ -237,7 +237,7 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]] ip_restrictions: IP restrictions applied on Harbor UI and API. :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. """ @@ -252,7 +252,7 @@ def get(resource_name: str, @property @pulumi.getter(name="ipRestrictions") - def ip_restrictions(self) -> pulumi.Output[Sequence[Mapping[str, Any]]]: + def ip_restrictions(self) -> pulumi.Output[Sequence[Mapping[str, str]]]: """ IP restrictions applied on Harbor UI and API. """ diff --git a/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_registry.py b/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_registry.py index 0780376a..bb839dc1 100644 --- a/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_registry.py +++ b/sdk/python/pulumi_ovh/cloudproject/container_registry_ip_restrictions_registry.py @@ -14,12 +14,12 @@ @pulumi.input_type class ContainerRegistryIPRestrictionsRegistryArgs: def __init__(__self__, *, - ip_restrictions: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]], + ip_restrictions: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]], registry_id: pulumi.Input[str], service_name: pulumi.Input[str]): """ The set of arguments for constructing a ContainerRegistryIPRestrictionsRegistry resource. - :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on artifact manager component. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]] ip_restrictions: IP restrictions applied on artifact manager component. :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. """ @@ -29,14 +29,14 @@ def __init__(__self__, *, @property @pulumi.getter(name="ipRestrictions") - def ip_restrictions(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]: + def ip_restrictions(self) -> pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]: """ IP restrictions applied on artifact manager component. """ return pulumi.get(self, "ip_restrictions") @ip_restrictions.setter - def ip_restrictions(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]): + def ip_restrictions(self, value: pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]): pulumi.set(self, "ip_restrictions", value) @property @@ -67,12 +67,12 @@ def service_name(self, value: pulumi.Input[str]): @pulumi.input_type class _ContainerRegistryIPRestrictionsRegistryState: def __init__(__self__, *, - ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]] = None, registry_id: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering ContainerRegistryIPRestrictionsRegistry resources. - :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on artifact manager component. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]] ip_restrictions: IP restrictions applied on artifact manager component. :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. """ @@ -85,14 +85,14 @@ def __init__(__self__, *, @property @pulumi.getter(name="ipRestrictions") - def ip_restrictions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]]: + def ip_restrictions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]]: """ IP restrictions applied on artifact manager component. """ return pulumi.get(self, "ip_restrictions") @ip_restrictions.setter - def ip_restrictions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]]): + def ip_restrictions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]]): pulumi.set(self, "ip_restrictions", value) @property @@ -125,7 +125,7 @@ class ContainerRegistryIPRestrictionsRegistry(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]] = None, registry_id: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, __props__=None): @@ -151,7 +151,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on artifact manager component. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]] ip_restrictions: IP restrictions applied on artifact manager component. :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. """ @@ -196,7 +196,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]] = None, registry_id: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, __props__=None): @@ -227,7 +227,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, - ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]]] = None, registry_id: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None) -> 'ContainerRegistryIPRestrictionsRegistry': """ @@ -237,7 +237,7 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]] ip_restrictions: IP restrictions applied on artifact manager component. + :param pulumi.Input[Sequence[pulumi.Input[Mapping[str, pulumi.Input[str]]]]] ip_restrictions: IP restrictions applied on artifact manager component. :param pulumi.Input[str] registry_id: The id of the Managed Private Registry. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. """ @@ -252,7 +252,7 @@ def get(resource_name: str, @property @pulumi.getter(name="ipRestrictions") - def ip_restrictions(self) -> pulumi.Output[Sequence[Mapping[str, Any]]]: + def ip_restrictions(self) -> pulumi.Output[Sequence[Mapping[str, str]]]: """ IP restrictions applied on artifact manager component. """ diff --git a/sdk/python/pulumi_ovh/cloudproject/database.py b/sdk/python/pulumi_ovh/cloudproject/database.py index e09130da..11947961 100644 --- a/sdk/python/pulumi_ovh/cloudproject/database.py +++ b/sdk/python/pulumi_ovh/cloudproject/database.py @@ -647,10 +647,10 @@ def __init__(__self__, disk_size: Optional[pulumi.Input[int]] = None, engine: Optional[pulumi.Input[str]] = None, flavor: Optional[pulumi.Input[str]] = None, - ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseIpRestrictionArgs']]]]] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseIpRestrictionArgs', 'DatabaseIpRestrictionArgsDict']]]]] = None, kafka_rest_api: Optional[pulumi.Input[bool]] = None, kafka_schema_registry: Optional[pulumi.Input[bool]] = None, - nodes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseNodeArgs']]]]] = None, + nodes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseNodeArgs', 'DatabaseNodeArgsDict']]]]] = None, opensearch_acls_enabled: Optional[pulumi.Input[bool]] = None, plan: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -672,15 +672,15 @@ def __init__(__self__, version="4.0", plan="essential", nodes=[ - ovh.cloud_project.DatabaseNodeArgs( - region="BHS", - ), - ovh.cloud_project.DatabaseNodeArgs( - region="BHS", - ), - ovh.cloud_project.DatabaseNodeArgs( - region="BHS", - ), + { + "region": "BHS", + }, + { + "region": "BHS", + }, + { + "region": "BHS", + }, ], flavor="db1-4") kafkadb = ovh.cloud_project.Database("kafkadb", @@ -692,15 +692,15 @@ def __init__(__self__, kafka_rest_api=True, kafka_schema_registry=True, nodes=[ - ovh.cloud_project.DatabaseNodeArgs( - region="DE", - ), - ovh.cloud_project.DatabaseNodeArgs( - region="DE", - ), - ovh.cloud_project.DatabaseNodeArgs( - region="DE", - ), + { + "region": "DE", + }, + { + "region": "DE", + }, + { + "region": "DE", + }, ], flavor="db1-4") m3db = ovh.cloud_project.Database("m3db", @@ -709,9 +709,9 @@ def __init__(__self__, engine="m3db", version="1.2", plan="essential", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="BHS", - )], + nodes=[{ + "region": "BHS", + }], flavor="db1-7") mongodb = ovh.cloud_project.Database("mongodb", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -719,9 +719,9 @@ def __init__(__self__, engine="mongodb", version="5.0", plan="discovery", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="GRA", - )], + nodes=[{ + "region": "GRA", + }], flavor="db1-2") mysqldb = ovh.cloud_project.Database("mysqldb", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -729,9 +729,9 @@ def __init__(__self__, engine="mysql", version="8", plan="essential", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="SBG", - )], + nodes=[{ + "region": "SBG", + }], flavor="db1-4", advanced_configuration={ "mysql.sql_mode": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES", @@ -744,9 +744,9 @@ def __init__(__self__, version="1", plan="essential", opensearch_acls_enabled=True, - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="UK", - )], + nodes=[{ + "region": "UK", + }], flavor="db1-4") pgsqldb = ovh.cloud_project.Database("pgsqldb", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -754,19 +754,19 @@ def __init__(__self__, engine="postgresql", version="14", plan="essential", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="WAW", - )], + nodes=[{ + "region": "WAW", + }], flavor="db1-4", ip_restrictions=[ - ovh.cloud_project.DatabaseIpRestrictionArgs( - description="ip 1", - ip="178.97.6.0/24", - ), - ovh.cloud_project.DatabaseIpRestrictionArgs( - description="ip 2", - ip="178.97.7.0/24", - ), + { + "description": "ip 1", + "ip": "178.97.6.0/24", + }, + { + "description": "ip 2", + "ip": "178.97.7.0/24", + }, ]) redisdb = ovh.cloud_project.Database("redisdb", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -774,9 +774,9 @@ def __init__(__self__, engine="redis", version="6.2", plan="essential", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="BHS", - )], + nodes=[{ + "region": "BHS", + }], flavor="db1-4") grafana = ovh.cloud_project.Database("grafana", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -784,9 +784,9 @@ def __init__(__self__, engine="grafana", version="9.1", plan="essential", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="GRA", - )], + nodes=[{ + "region": "GRA", + }], flavor="db1-4") ``` @@ -801,12 +801,12 @@ def __init__(__self__, engine="postgresql", flavor="db1-15", nodes=[ - ovh.cloud_project.DatabaseNodeArgs( - region="GRA", - ), - ovh.cloud_project.DatabaseNodeArgs( - region="GRA", - ), + { + "region": "GRA", + }, + { + "region": "GRA", + }, ], plan="business", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -824,21 +824,21 @@ def __init__(__self__, engine="mongodb", flavor="db1-30", nodes=[ - ovh.cloud_project.DatabaseNodeArgs( - network_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - region="SBG", - subnet_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - ), - ovh.cloud_project.DatabaseNodeArgs( - network_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - region="SBG", - subnet_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - ), - ovh.cloud_project.DatabaseNodeArgs( - network_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - region="SBG", - subnet_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - ), + { + "network_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + "region": "SBG", + "subnet_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + }, + { + "network_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + "region": "SBG", + "subnet_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + }, + { + "network_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + "region": "SBG", + "subnet_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + }, ], plan="production", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -867,10 +867,10 @@ def __init__(__self__, :param pulumi.Input[str] flavor: A valid OVHcloud public cloud database flavor name in which the nodes will be started. Ex: "db1-7". Changing this value upgrade the nodes with the new flavor. You can find the list of flavor names: https://www.ovhcloud.com/fr/public-cloud/prices/ - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseIpRestrictionArgs']]]] ip_restrictions: IP Blocks authorized to access to the cluster. + :param pulumi.Input[Sequence[pulumi.Input[Union['DatabaseIpRestrictionArgs', 'DatabaseIpRestrictionArgsDict']]]] ip_restrictions: IP Blocks authorized to access to the cluster. :param pulumi.Input[bool] kafka_rest_api: Defines whether the REST API is enabled on a kafka cluster :param pulumi.Input[bool] kafka_schema_registry: Defines whether the schema registry is enabled on a Kafka cluster - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseNodeArgs']]]] nodes: List of nodes object. + :param pulumi.Input[Sequence[pulumi.Input[Union['DatabaseNodeArgs', 'DatabaseNodeArgsDict']]]] nodes: List of nodes object. Multi region cluster are not yet available, all node should be identical. :param pulumi.Input[bool] opensearch_acls_enabled: Defines whether the ACLs are enabled on an OpenSearch cluster :param pulumi.Input[str] plan: Plan of the cluster. @@ -904,15 +904,15 @@ def __init__(__self__, version="4.0", plan="essential", nodes=[ - ovh.cloud_project.DatabaseNodeArgs( - region="BHS", - ), - ovh.cloud_project.DatabaseNodeArgs( - region="BHS", - ), - ovh.cloud_project.DatabaseNodeArgs( - region="BHS", - ), + { + "region": "BHS", + }, + { + "region": "BHS", + }, + { + "region": "BHS", + }, ], flavor="db1-4") kafkadb = ovh.cloud_project.Database("kafkadb", @@ -924,15 +924,15 @@ def __init__(__self__, kafka_rest_api=True, kafka_schema_registry=True, nodes=[ - ovh.cloud_project.DatabaseNodeArgs( - region="DE", - ), - ovh.cloud_project.DatabaseNodeArgs( - region="DE", - ), - ovh.cloud_project.DatabaseNodeArgs( - region="DE", - ), + { + "region": "DE", + }, + { + "region": "DE", + }, + { + "region": "DE", + }, ], flavor="db1-4") m3db = ovh.cloud_project.Database("m3db", @@ -941,9 +941,9 @@ def __init__(__self__, engine="m3db", version="1.2", plan="essential", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="BHS", - )], + nodes=[{ + "region": "BHS", + }], flavor="db1-7") mongodb = ovh.cloud_project.Database("mongodb", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -951,9 +951,9 @@ def __init__(__self__, engine="mongodb", version="5.0", plan="discovery", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="GRA", - )], + nodes=[{ + "region": "GRA", + }], flavor="db1-2") mysqldb = ovh.cloud_project.Database("mysqldb", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -961,9 +961,9 @@ def __init__(__self__, engine="mysql", version="8", plan="essential", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="SBG", - )], + nodes=[{ + "region": "SBG", + }], flavor="db1-4", advanced_configuration={ "mysql.sql_mode": "ANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES", @@ -976,9 +976,9 @@ def __init__(__self__, version="1", plan="essential", opensearch_acls_enabled=True, - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="UK", - )], + nodes=[{ + "region": "UK", + }], flavor="db1-4") pgsqldb = ovh.cloud_project.Database("pgsqldb", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -986,19 +986,19 @@ def __init__(__self__, engine="postgresql", version="14", plan="essential", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="WAW", - )], + nodes=[{ + "region": "WAW", + }], flavor="db1-4", ip_restrictions=[ - ovh.cloud_project.DatabaseIpRestrictionArgs( - description="ip 1", - ip="178.97.6.0/24", - ), - ovh.cloud_project.DatabaseIpRestrictionArgs( - description="ip 2", - ip="178.97.7.0/24", - ), + { + "description": "ip 1", + "ip": "178.97.6.0/24", + }, + { + "description": "ip 2", + "ip": "178.97.7.0/24", + }, ]) redisdb = ovh.cloud_project.Database("redisdb", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -1006,9 +1006,9 @@ def __init__(__self__, engine="redis", version="6.2", plan="essential", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="BHS", - )], + nodes=[{ + "region": "BHS", + }], flavor="db1-4") grafana = ovh.cloud_project.Database("grafana", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -1016,9 +1016,9 @@ def __init__(__self__, engine="grafana", version="9.1", plan="essential", - nodes=[ovh.cloud_project.DatabaseNodeArgs( - region="GRA", - )], + nodes=[{ + "region": "GRA", + }], flavor="db1-4") ``` @@ -1033,12 +1033,12 @@ def __init__(__self__, engine="postgresql", flavor="db1-15", nodes=[ - ovh.cloud_project.DatabaseNodeArgs( - region="GRA", - ), - ovh.cloud_project.DatabaseNodeArgs( - region="GRA", - ), + { + "region": "GRA", + }, + { + "region": "GRA", + }, ], plan="business", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -1056,21 +1056,21 @@ def __init__(__self__, engine="mongodb", flavor="db1-30", nodes=[ - ovh.cloud_project.DatabaseNodeArgs( - network_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - region="SBG", - subnet_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - ), - ovh.cloud_project.DatabaseNodeArgs( - network_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - region="SBG", - subnet_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - ), - ovh.cloud_project.DatabaseNodeArgs( - network_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - region="SBG", - subnet_id="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", - ), + { + "network_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + "region": "SBG", + "subnet_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + }, + { + "network_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + "region": "SBG", + "subnet_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + }, + { + "network_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + "region": "SBG", + "subnet_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", + }, ], plan="production", service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", @@ -1109,10 +1109,10 @@ def _internal_init(__self__, disk_size: Optional[pulumi.Input[int]] = None, engine: Optional[pulumi.Input[str]] = None, flavor: Optional[pulumi.Input[str]] = None, - ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseIpRestrictionArgs']]]]] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseIpRestrictionArgs', 'DatabaseIpRestrictionArgsDict']]]]] = None, kafka_rest_api: Optional[pulumi.Input[bool]] = None, kafka_schema_registry: Optional[pulumi.Input[bool]] = None, - nodes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseNodeArgs']]]]] = None, + nodes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseNodeArgs', 'DatabaseNodeArgsDict']]]]] = None, opensearch_acls_enabled: Optional[pulumi.Input[bool]] = None, plan: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -1176,15 +1176,15 @@ def get(resource_name: str, description: Optional[pulumi.Input[str]] = None, disk_size: Optional[pulumi.Input[int]] = None, disk_type: Optional[pulumi.Input[str]] = None, - endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseEndpointArgs']]]]] = None, + endpoints: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseEndpointArgs', 'DatabaseEndpointArgsDict']]]]] = None, engine: Optional[pulumi.Input[str]] = None, flavor: Optional[pulumi.Input[str]] = None, - ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseIpRestrictionArgs']]]]] = None, + ip_restrictions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseIpRestrictionArgs', 'DatabaseIpRestrictionArgsDict']]]]] = None, kafka_rest_api: Optional[pulumi.Input[bool]] = None, kafka_schema_registry: Optional[pulumi.Input[bool]] = None, maintenance_time: Optional[pulumi.Input[str]] = None, network_type: Optional[pulumi.Input[str]] = None, - nodes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseNodeArgs']]]]] = None, + nodes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DatabaseNodeArgs', 'DatabaseNodeArgsDict']]]]] = None, opensearch_acls_enabled: Optional[pulumi.Input[bool]] = None, plan: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -1204,18 +1204,18 @@ def get(resource_name: str, :param pulumi.Input[str] description: Small description of the database service. :param pulumi.Input[int] disk_size: The disk size (in GB) of the database service. :param pulumi.Input[str] disk_type: Defines the disk type of the database service. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseEndpointArgs']]]] endpoints: List of all endpoints objects of the service. + :param pulumi.Input[Sequence[pulumi.Input[Union['DatabaseEndpointArgs', 'DatabaseEndpointArgsDict']]]] endpoints: List of all endpoints objects of the service. :param pulumi.Input[str] engine: The database engine you want to deploy. To get a full list of available engine visit. [public documentation](https://docs.ovh.com/gb/en/publiccloud/databases). :param pulumi.Input[str] flavor: A valid OVHcloud public cloud database flavor name in which the nodes will be started. Ex: "db1-7". Changing this value upgrade the nodes with the new flavor. You can find the list of flavor names: https://www.ovhcloud.com/fr/public-cloud/prices/ - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseIpRestrictionArgs']]]] ip_restrictions: IP Blocks authorized to access to the cluster. + :param pulumi.Input[Sequence[pulumi.Input[Union['DatabaseIpRestrictionArgs', 'DatabaseIpRestrictionArgsDict']]]] ip_restrictions: IP Blocks authorized to access to the cluster. :param pulumi.Input[bool] kafka_rest_api: Defines whether the REST API is enabled on a kafka cluster :param pulumi.Input[bool] kafka_schema_registry: Defines whether the schema registry is enabled on a Kafka cluster :param pulumi.Input[str] maintenance_time: Time on which maintenances can start every day. :param pulumi.Input[str] network_type: Type of network of the cluster. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['DatabaseNodeArgs']]]] nodes: List of nodes object. + :param pulumi.Input[Sequence[pulumi.Input[Union['DatabaseNodeArgs', 'DatabaseNodeArgsDict']]]] nodes: List of nodes object. Multi region cluster are not yet available, all node should be identical. :param pulumi.Input[bool] opensearch_acls_enabled: Defines whether the ACLs are enabled on an OpenSearch cluster :param pulumi.Input[str] plan: Plan of the cluster. diff --git a/sdk/python/pulumi_ovh/cloudproject/gateway.py b/sdk/python/pulumi_ovh/cloudproject/gateway.py index fad8b541..6f4ba55a 100644 --- a/sdk/python/pulumi_ovh/cloudproject/gateway.py +++ b/sdk/python/pulumi_ovh/cloudproject/gateway.py @@ -376,8 +376,8 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, - external_informations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['GatewayExternalInformationArgs']]]]] = None, - interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['GatewayInterfaceArgs']]]]] = None, + external_informations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['GatewayExternalInformationArgs', 'GatewayExternalInformationArgsDict']]]]] = None, + interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[Union['GatewayInterfaceArgs', 'GatewayInterfaceArgsDict']]]]] = None, model: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, network_id: Optional[pulumi.Input[str]] = None, @@ -392,8 +392,8 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['GatewayExternalInformationArgs']]]] external_informations: List of External Information of the gateway. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['GatewayInterfaceArgs']]]] interfaces: Interfaces list of the gateway. + :param pulumi.Input[Sequence[pulumi.Input[Union['GatewayExternalInformationArgs', 'GatewayExternalInformationArgsDict']]]] external_informations: List of External Information of the gateway. + :param pulumi.Input[Sequence[pulumi.Input[Union['GatewayInterfaceArgs', 'GatewayInterfaceArgsDict']]]] interfaces: Interfaces list of the gateway. :param pulumi.Input[str] model: Model of the gateway. :param pulumi.Input[str] name: Name of the gateway. :param pulumi.Input[str] network_id: ID of the private network. diff --git a/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_management.py b/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_management.py index ef16feca..e6fad674 100644 --- a/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_management.py +++ b/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_management.py @@ -45,7 +45,7 @@ def id(self) -> str: @property @pulumi.getter(name="ipRestrictions") - def ip_restrictions(self) -> Sequence[Mapping[str, Any]]: + def ip_restrictions(self) -> Sequence[Mapping[str, str]]: """ IP restrictions applied on Harbor UI and API. """ diff --git a/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_registry.py b/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_registry.py index e90ba7fd..92a92f87 100644 --- a/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_registry.py +++ b/sdk/python/pulumi_ovh/cloudproject/get_container_registry_ip_restrictions_registry.py @@ -45,7 +45,7 @@ def id(self) -> str: @property @pulumi.getter(name="ipRestrictions") - def ip_restrictions(self) -> Sequence[Mapping[str, Any]]: + def ip_restrictions(self) -> Sequence[Mapping[str, str]]: """ IP restrictions applied on artifact manager component. """ diff --git a/sdk/python/pulumi_ovh/cloudproject/get_kube.py b/sdk/python/pulumi_ovh/cloudproject/get_kube.py index 211d46b9..aae2221c 100644 --- a/sdk/python/pulumi_ovh/cloudproject/get_kube.py +++ b/sdk/python/pulumi_ovh/cloudproject/get_kube.py @@ -275,9 +275,9 @@ def __await__(self): version=self.version) -def get_kube(customization_apiservers: Optional[Sequence[pulumi.InputType['GetKubeCustomizationApiserverArgs']]] = None, - customization_kube_proxy: Optional[pulumi.InputType['GetKubeCustomizationKubeProxyArgs']] = None, - customizations: Optional[Sequence[pulumi.InputType['GetKubeCustomizationArgs']]] = None, +def get_kube(customization_apiservers: Optional[Sequence[Union['GetKubeCustomizationApiserverArgs', 'GetKubeCustomizationApiserverArgsDict']]] = None, + customization_kube_proxy: Optional[Union['GetKubeCustomizationKubeProxyArgs', 'GetKubeCustomizationKubeProxyArgsDict']] = None, + customizations: Optional[Sequence[Union['GetKubeCustomizationArgs', 'GetKubeCustomizationArgsDict']]] = None, kube_id: Optional[str] = None, kube_proxy_mode: Optional[str] = None, name: Optional[str] = None, @@ -301,9 +301,9 @@ def get_kube(customization_apiservers: Optional[Sequence[pulumi.InputType['GetKu ``` - :param Sequence[pulumi.InputType['GetKubeCustomizationApiserverArgs']] customization_apiservers: Kubernetes API server customization - :param pulumi.InputType['GetKubeCustomizationKubeProxyArgs'] customization_kube_proxy: Kubernetes kube-proxy customization - :param Sequence[pulumi.InputType['GetKubeCustomizationArgs']] customizations: **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization + :param Sequence[Union['GetKubeCustomizationApiserverArgs', 'GetKubeCustomizationApiserverArgsDict']] customization_apiservers: Kubernetes API server customization + :param Union['GetKubeCustomizationKubeProxyArgs', 'GetKubeCustomizationKubeProxyArgsDict'] customization_kube_proxy: Kubernetes kube-proxy customization + :param Sequence[Union['GetKubeCustomizationArgs', 'GetKubeCustomizationArgsDict']] customizations: **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization :param str kube_id: The id of the managed kubernetes cluster. :param str kube_proxy_mode: Selected mode for kube-proxy. :param str name: The name of the managed kubernetes cluster. @@ -350,9 +350,9 @@ def get_kube(customization_apiservers: Optional[Sequence[pulumi.InputType['GetKu @_utilities.lift_output_func(get_kube) -def get_kube_output(customization_apiservers: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['GetKubeCustomizationApiserverArgs']]]]] = None, - customization_kube_proxy: Optional[pulumi.Input[Optional[pulumi.InputType['GetKubeCustomizationKubeProxyArgs']]]] = None, - customizations: Optional[pulumi.Input[Optional[Sequence[pulumi.InputType['GetKubeCustomizationArgs']]]]] = None, +def get_kube_output(customization_apiservers: Optional[pulumi.Input[Optional[Sequence[Union['GetKubeCustomizationApiserverArgs', 'GetKubeCustomizationApiserverArgsDict']]]]] = None, + customization_kube_proxy: Optional[pulumi.Input[Optional[Union['GetKubeCustomizationKubeProxyArgs', 'GetKubeCustomizationKubeProxyArgsDict']]]] = None, + customizations: Optional[pulumi.Input[Optional[Sequence[Union['GetKubeCustomizationArgs', 'GetKubeCustomizationArgsDict']]]]] = None, kube_id: Optional[pulumi.Input[str]] = None, kube_proxy_mode: Optional[pulumi.Input[Optional[str]]] = None, name: Optional[pulumi.Input[Optional[str]]] = None, @@ -376,9 +376,9 @@ def get_kube_output(customization_apiservers: Optional[pulumi.Input[Optional[Seq ``` - :param Sequence[pulumi.InputType['GetKubeCustomizationApiserverArgs']] customization_apiservers: Kubernetes API server customization - :param pulumi.InputType['GetKubeCustomizationKubeProxyArgs'] customization_kube_proxy: Kubernetes kube-proxy customization - :param Sequence[pulumi.InputType['GetKubeCustomizationArgs']] customizations: **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization + :param Sequence[Union['GetKubeCustomizationApiserverArgs', 'GetKubeCustomizationApiserverArgsDict']] customization_apiservers: Kubernetes API server customization + :param Union['GetKubeCustomizationKubeProxyArgs', 'GetKubeCustomizationKubeProxyArgsDict'] customization_kube_proxy: Kubernetes kube-proxy customization + :param Sequence[Union['GetKubeCustomizationArgs', 'GetKubeCustomizationArgsDict']] customizations: **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization :param str kube_id: The id of the managed kubernetes cluster. :param str kube_proxy_mode: Selected mode for kube-proxy. :param str name: The name of the managed kubernetes cluster. diff --git a/sdk/python/pulumi_ovh/cloudproject/get_kube_node_pool.py b/sdk/python/pulumi_ovh/cloudproject/get_kube_node_pool.py index 7f354f8d..b27343a5 100644 --- a/sdk/python/pulumi_ovh/cloudproject/get_kube_node_pool.py +++ b/sdk/python/pulumi_ovh/cloudproject/get_kube_node_pool.py @@ -331,7 +331,7 @@ def __await__(self): def get_kube_node_pool(kube_id: Optional[str] = None, name: Optional[str] = None, service_name: Optional[str] = None, - template: Optional[pulumi.InputType['GetKubeNodePoolTemplateArgs']] = None, + template: Optional[Union['GetKubeNodePoolTemplateArgs', 'GetKubeNodePoolTemplateArgsDict']] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetKubeNodePoolResult: """ Use this data source to get a OVHcloud Managed Kubernetes node pool. @@ -393,7 +393,7 @@ def get_kube_node_pool(kube_id: Optional[str] = None, def get_kube_node_pool_output(kube_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, - template: Optional[pulumi.Input[Optional[pulumi.InputType['GetKubeNodePoolTemplateArgs']]]] = None, + template: Optional[pulumi.Input[Optional[Union['GetKubeNodePoolTemplateArgs', 'GetKubeNodePoolTemplateArgsDict']]]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetKubeNodePoolResult]: """ Use this data source to get a OVHcloud Managed Kubernetes node pool. diff --git a/sdk/python/pulumi_ovh/cloudproject/kube.py b/sdk/python/pulumi_ovh/cloudproject/kube.py index 2bf4663b..070875d6 100644 --- a/sdk/python/pulumi_ovh/cloudproject/kube.py +++ b/sdk/python/pulumi_ovh/cloudproject/kube.py @@ -592,14 +592,14 @@ class Kube(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - customization_apiservers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeCustomizationApiserverArgs']]]]] = None, - customization_kube_proxy: Optional[pulumi.Input[pulumi.InputType['KubeCustomizationKubeProxyArgs']]] = None, - customizations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeCustomizationArgs']]]]] = None, + customization_apiservers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['KubeCustomizationApiserverArgs', 'KubeCustomizationApiserverArgsDict']]]]] = None, + customization_kube_proxy: Optional[pulumi.Input[Union['KubeCustomizationKubeProxyArgs', 'KubeCustomizationKubeProxyArgsDict']]] = None, + customizations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['KubeCustomizationArgs', 'KubeCustomizationArgsDict']]]]] = None, kube_proxy_mode: Optional[pulumi.Input[str]] = None, load_balancers_subnet_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, nodes_subnet_id: Optional[pulumi.Input[str]] = None, - private_network_configuration: Optional[pulumi.Input[pulumi.InputType['KubePrivateNetworkConfigurationArgs']]] = None, + private_network_configuration: Optional[pulumi.Input[Union['KubePrivateNetworkConfigurationArgs', 'KubePrivateNetworkConfigurationArgsDict']]] = None, private_network_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -619,14 +619,14 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeCustomizationApiserverArgs']]]] customization_apiservers: Kubernetes API server customization - :param pulumi.Input[pulumi.InputType['KubeCustomizationKubeProxyArgs']] customization_kube_proxy: Kubernetes kube-proxy customization - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeCustomizationArgs']]]] customizations: **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization + :param pulumi.Input[Sequence[pulumi.Input[Union['KubeCustomizationApiserverArgs', 'KubeCustomizationApiserverArgsDict']]]] customization_apiservers: Kubernetes API server customization + :param pulumi.Input[Union['KubeCustomizationKubeProxyArgs', 'KubeCustomizationKubeProxyArgsDict']] customization_kube_proxy: Kubernetes kube-proxy customization + :param pulumi.Input[Sequence[pulumi.Input[Union['KubeCustomizationArgs', 'KubeCustomizationArgsDict']]]] customizations: **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization :param pulumi.Input[str] kube_proxy_mode: Selected mode for kube-proxy. **Changing this value recreates the resource, including ETCD user data.** Defaults to `iptables`. :param pulumi.Input[str] load_balancers_subnet_id: Openstack private network (or vRack) ID to use for load balancers. :param pulumi.Input[str] name: The name of the kubernetes cluster. :param pulumi.Input[str] nodes_subnet_id: Openstack private network (or vRack) ID to use for nodes. **Cannot be updated, it can only be used at cluster creation or reset.** - :param pulumi.Input[pulumi.InputType['KubePrivateNetworkConfigurationArgs']] private_network_configuration: The private network configuration. If this is set then the 2 parameters below shall be defined. + :param pulumi.Input[Union['KubePrivateNetworkConfigurationArgs', 'KubePrivateNetworkConfigurationArgsDict']] private_network_configuration: The private network configuration. If this is set then the 2 parameters below shall be defined. :param pulumi.Input[str] private_network_id: OpenStack private network (or vRack) ID to use. **Changing this value recreates the resource, including ETCD user data.** Defaults - not use private network. > __WARNING__ Updating the private network ID resets the cluster so that all user data is deleted. @@ -667,14 +667,14 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - customization_apiservers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeCustomizationApiserverArgs']]]]] = None, - customization_kube_proxy: Optional[pulumi.Input[pulumi.InputType['KubeCustomizationKubeProxyArgs']]] = None, - customizations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeCustomizationArgs']]]]] = None, + customization_apiservers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['KubeCustomizationApiserverArgs', 'KubeCustomizationApiserverArgsDict']]]]] = None, + customization_kube_proxy: Optional[pulumi.Input[Union['KubeCustomizationKubeProxyArgs', 'KubeCustomizationKubeProxyArgsDict']]] = None, + customizations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['KubeCustomizationArgs', 'KubeCustomizationArgsDict']]]]] = None, kube_proxy_mode: Optional[pulumi.Input[str]] = None, load_balancers_subnet_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, nodes_subnet_id: Optional[pulumi.Input[str]] = None, - private_network_configuration: Optional[pulumi.Input[pulumi.InputType['KubePrivateNetworkConfigurationArgs']]] = None, + private_network_configuration: Optional[pulumi.Input[Union['KubePrivateNetworkConfigurationArgs', 'KubePrivateNetworkConfigurationArgsDict']]] = None, private_network_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -727,19 +727,19 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, control_plane_is_up_to_date: Optional[pulumi.Input[bool]] = None, - customization_apiservers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeCustomizationApiserverArgs']]]]] = None, - customization_kube_proxy: Optional[pulumi.Input[pulumi.InputType['KubeCustomizationKubeProxyArgs']]] = None, - customizations: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeCustomizationArgs']]]]] = None, + customization_apiservers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['KubeCustomizationApiserverArgs', 'KubeCustomizationApiserverArgsDict']]]]] = None, + customization_kube_proxy: Optional[pulumi.Input[Union['KubeCustomizationKubeProxyArgs', 'KubeCustomizationKubeProxyArgsDict']]] = None, + customizations: Optional[pulumi.Input[Sequence[pulumi.Input[Union['KubeCustomizationArgs', 'KubeCustomizationArgsDict']]]]] = None, is_up_to_date: Optional[pulumi.Input[bool]] = None, kube_proxy_mode: Optional[pulumi.Input[str]] = None, kubeconfig: Optional[pulumi.Input[str]] = None, - kubeconfig_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeKubeconfigAttributeArgs']]]]] = None, + kubeconfig_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['KubeKubeconfigAttributeArgs', 'KubeKubeconfigAttributeArgsDict']]]]] = None, load_balancers_subnet_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, next_upgrade_versions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, nodes_subnet_id: Optional[pulumi.Input[str]] = None, nodes_url: Optional[pulumi.Input[str]] = None, - private_network_configuration: Optional[pulumi.Input[pulumi.InputType['KubePrivateNetworkConfigurationArgs']]] = None, + private_network_configuration: Optional[pulumi.Input[Union['KubePrivateNetworkConfigurationArgs', 'KubePrivateNetworkConfigurationArgsDict']]] = None, private_network_id: Optional[pulumi.Input[str]] = None, region: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -755,19 +755,19 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[bool] control_plane_is_up_to_date: True if control-plane is up-to-date. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeCustomizationApiserverArgs']]]] customization_apiservers: Kubernetes API server customization - :param pulumi.Input[pulumi.InputType['KubeCustomizationKubeProxyArgs']] customization_kube_proxy: Kubernetes kube-proxy customization - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeCustomizationArgs']]]] customizations: **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization + :param pulumi.Input[Sequence[pulumi.Input[Union['KubeCustomizationApiserverArgs', 'KubeCustomizationApiserverArgsDict']]]] customization_apiservers: Kubernetes API server customization + :param pulumi.Input[Union['KubeCustomizationKubeProxyArgs', 'KubeCustomizationKubeProxyArgsDict']] customization_kube_proxy: Kubernetes kube-proxy customization + :param pulumi.Input[Sequence[pulumi.Input[Union['KubeCustomizationArgs', 'KubeCustomizationArgsDict']]]] customizations: **Deprecated** (Optional) Use `customization_apiserver` and `customization_kube_proxy` instead. Kubernetes cluster customization :param pulumi.Input[bool] is_up_to_date: True if all nodes and control-plane are up-to-date. :param pulumi.Input[str] kube_proxy_mode: Selected mode for kube-proxy. **Changing this value recreates the resource, including ETCD user data.** Defaults to `iptables`. :param pulumi.Input[str] kubeconfig: The kubeconfig file. Use this file to connect to your kubernetes cluster. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['KubeKubeconfigAttributeArgs']]]] kubeconfig_attributes: The kubeconfig file attributes. + :param pulumi.Input[Sequence[pulumi.Input[Union['KubeKubeconfigAttributeArgs', 'KubeKubeconfigAttributeArgsDict']]]] kubeconfig_attributes: The kubeconfig file attributes. :param pulumi.Input[str] load_balancers_subnet_id: Openstack private network (or vRack) ID to use for load balancers. :param pulumi.Input[str] name: The name of the kubernetes cluster. :param pulumi.Input[Sequence[pulumi.Input[str]]] next_upgrade_versions: Kubernetes versions available for upgrade. :param pulumi.Input[str] nodes_subnet_id: Openstack private network (or vRack) ID to use for nodes. **Cannot be updated, it can only be used at cluster creation or reset.** :param pulumi.Input[str] nodes_url: Cluster nodes URL. - :param pulumi.Input[pulumi.InputType['KubePrivateNetworkConfigurationArgs']] private_network_configuration: The private network configuration. If this is set then the 2 parameters below shall be defined. + :param pulumi.Input[Union['KubePrivateNetworkConfigurationArgs', 'KubePrivateNetworkConfigurationArgsDict']] private_network_configuration: The private network configuration. If this is set then the 2 parameters below shall be defined. :param pulumi.Input[str] private_network_id: OpenStack private network (or vRack) ID to use. **Changing this value recreates the resource, including ETCD user data.** Defaults - not use private network. > __WARNING__ Updating the private network ID resets the cluster so that all user data is deleted. diff --git a/sdk/python/pulumi_ovh/cloudproject/kube_node_pool.py b/sdk/python/pulumi_ovh/cloudproject/kube_node_pool.py index d35a20fc..3638de48 100644 --- a/sdk/python/pulumi_ovh/cloudproject/kube_node_pool.py +++ b/sdk/python/pulumi_ovh/cloudproject/kube_node_pool.py @@ -656,7 +656,7 @@ def __init__(__self__, monthly_billed: Optional[pulumi.Input[bool]] = None, name: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, - template: Optional[pulumi.Input[pulumi.InputType['KubeNodePoolTemplateArgs']]] = None, + template: Optional[pulumi.Input[Union['KubeNodePoolTemplateArgs', 'KubeNodePoolTemplateArgsDict']]] = None, __props__=None): """ Creates a nodepool in a OVHcloud Managed Kubernetes Service cluster. @@ -691,27 +691,27 @@ def __init__(__self__, max_nodes=3, min_nodes=3, service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", - template=ovh.cloud_project.KubeNodePoolTemplateArgs( - metadata=ovh.cloud_project.KubeNodePoolTemplateMetadataArgs( - annotations={ + template={ + "metadata": { + "annotations": { "k1": "v1", "k2": "v2", }, - finalizers=[], - labels={ + "finalizers": [], + "labels": { "k3": "v3", "k4": "v4", }, - ), - spec=ovh.cloud_project.KubeNodePoolTemplateSpecArgs( - taints=[{ + }, + "spec": { + "taints": [{ "effect": "PreferNoSchedule", "key": "k", "value": "v", }], - unschedulable=False, - ), - )) + "unschedulable": False, + }, + }) ``` ## Import @@ -744,7 +744,7 @@ def __init__(__self__, :param pulumi.Input[bool] monthly_billed: should the nodes be billed on a monthly basis. Default to `false`. **Changing this value recreates the resource.** :param pulumi.Input[str] name: The name of the nodepool. Warning: `_` char is not allowed! **Changing this value recreates the resource.** :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** - :param pulumi.Input[pulumi.InputType['KubeNodePoolTemplateArgs']] template: Node pool template + :param pulumi.Input[Union['KubeNodePoolTemplateArgs', 'KubeNodePoolTemplateArgsDict']] template: Node pool template """ ... @overload @@ -785,27 +785,27 @@ def __init__(__self__, max_nodes=3, min_nodes=3, service_name="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", - template=ovh.cloud_project.KubeNodePoolTemplateArgs( - metadata=ovh.cloud_project.KubeNodePoolTemplateMetadataArgs( - annotations={ + template={ + "metadata": { + "annotations": { "k1": "v1", "k2": "v2", }, - finalizers=[], - labels={ + "finalizers": [], + "labels": { "k3": "v3", "k4": "v4", }, - ), - spec=ovh.cloud_project.KubeNodePoolTemplateSpecArgs( - taints=[{ + }, + "spec": { + "taints": [{ "effect": "PreferNoSchedule", "key": "k", "value": "v", }], - unschedulable=False, - ), - )) + "unschedulable": False, + }, + }) ``` ## Import @@ -846,7 +846,7 @@ def _internal_init(__self__, monthly_billed: Optional[pulumi.Input[bool]] = None, name: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, - template: Optional[pulumi.Input[pulumi.InputType['KubeNodePoolTemplateArgs']]] = None, + template: Optional[pulumi.Input[Union['KubeNodePoolTemplateArgs', 'KubeNodePoolTemplateArgsDict']]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -915,7 +915,7 @@ def get(resource_name: str, service_name: Optional[pulumi.Input[str]] = None, size_status: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None, - template: Optional[pulumi.Input[pulumi.InputType['KubeNodePoolTemplateArgs']]] = None, + template: Optional[pulumi.Input[Union['KubeNodePoolTemplateArgs', 'KubeNodePoolTemplateArgsDict']]] = None, up_to_date_nodes: Optional[pulumi.Input[int]] = None, updated_at: Optional[pulumi.Input[str]] = None) -> 'KubeNodePool': """ @@ -950,7 +950,7 @@ def get(resource_name: str, :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. **Changing this value recreates the resource.** :param pulumi.Input[str] size_status: Status describing the state between number of nodes wanted and available ones :param pulumi.Input[str] status: Current status - :param pulumi.Input[pulumi.InputType['KubeNodePoolTemplateArgs']] template: Node pool template + :param pulumi.Input[Union['KubeNodePoolTemplateArgs', 'KubeNodePoolTemplateArgsDict']] template: Node pool template :param pulumi.Input[int] up_to_date_nodes: Number of nodes with the latest version installed in the pool :param pulumi.Input[str] updated_at: Last update date """ diff --git a/sdk/python/pulumi_ovh/cloudproject/network_private.py b/sdk/python/pulumi_ovh/cloudproject/network_private.py index cb6e1c61..6d353012 100644 --- a/sdk/python/pulumi_ovh/cloudproject/network_private.py +++ b/sdk/python/pulumi_ovh/cloudproject/network_private.py @@ -376,8 +376,8 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, name: Optional[pulumi.Input[str]] = None, regions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - regions_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['NetworkPrivateRegionsAttributeArgs']]]]] = None, - regions_statuses: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['NetworkPrivateRegionsStatusArgs']]]]] = None, + regions_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NetworkPrivateRegionsAttributeArgs', 'NetworkPrivateRegionsAttributeArgsDict']]]]] = None, + regions_statuses: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NetworkPrivateRegionsStatusArgs', 'NetworkPrivateRegionsStatusArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None, @@ -392,11 +392,11 @@ def get(resource_name: str, :param pulumi.Input[str] name: The name of the network. :param pulumi.Input[Sequence[pulumi.Input[str]]] regions: an array of valid OVHcloud public cloud region ID in which the network will be available. Ex.: "GRA1". Defaults to all public cloud regions. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['NetworkPrivateRegionsAttributeArgs']]]] regions_attributes: A map representing information about the region. + :param pulumi.Input[Sequence[pulumi.Input[Union['NetworkPrivateRegionsAttributeArgs', 'NetworkPrivateRegionsAttributeArgsDict']]]] regions_attributes: A map representing information about the region. * `regions_attributes/region` - The id of the region. * `regions_attributes/status` - The status of the network in the region. * `regions_attributes/openstackid` - The private network id in the region. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['NetworkPrivateRegionsStatusArgs']]]] regions_statuses: (Deprecated) A map representing the status of the network per region. + :param pulumi.Input[Sequence[pulumi.Input[Union['NetworkPrivateRegionsStatusArgs', 'NetworkPrivateRegionsStatusArgsDict']]]] regions_statuses: (Deprecated) A map representing the status of the network per region. * `regions_status/region` - (Deprecated) The id of the region. * `regions_status/status` - (Deprecated) The status of the network in the region. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, diff --git a/sdk/python/pulumi_ovh/cloudproject/network_private_subnet.py b/sdk/python/pulumi_ovh/cloudproject/network_private_subnet.py index c931e3d2..88ba35b3 100644 --- a/sdk/python/pulumi_ovh/cloudproject/network_private_subnet.py +++ b/sdk/python/pulumi_ovh/cloudproject/network_private_subnet.py @@ -542,7 +542,7 @@ def get(resource_name: str, dhcp: Optional[pulumi.Input[bool]] = None, end: Optional[pulumi.Input[str]] = None, gateway_ip: Optional[pulumi.Input[str]] = None, - ip_pools: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['NetworkPrivateSubnetIpPoolArgs']]]]] = None, + ip_pools: Optional[pulumi.Input[Sequence[pulumi.Input[Union['NetworkPrivateSubnetIpPoolArgs', 'NetworkPrivateSubnetIpPoolArgsDict']]]]] = None, network: Optional[pulumi.Input[str]] = None, network_id: Optional[pulumi.Input[str]] = None, no_gateway: Optional[pulumi.Input[bool]] = None, @@ -563,7 +563,7 @@ def get(resource_name: str, :param pulumi.Input[str] end: Last ip for this region. Changing this value recreates the subnet. :param pulumi.Input[str] gateway_ip: The IP of the gateway - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['NetworkPrivateSubnetIpPoolArgs']]]] ip_pools: List of ip pools allocated in the subnet. + :param pulumi.Input[Sequence[pulumi.Input[Union['NetworkPrivateSubnetIpPoolArgs', 'NetworkPrivateSubnetIpPoolArgsDict']]]] ip_pools: List of ip pools allocated in the subnet. * `ip_pools/network` - Global network with cidr. * `ip_pools/region` - Region where this subnet is created. * `ip_pools/dhcp` - DHCP enabled. diff --git a/sdk/python/pulumi_ovh/cloudproject/outputs.py b/sdk/python/pulumi_ovh/cloudproject/outputs.py index 1a5a43e9..cf0a20b3 100644 --- a/sdk/python/pulumi_ovh/cloudproject/outputs.py +++ b/sdk/python/pulumi_ovh/cloudproject/outputs.py @@ -1111,10 +1111,10 @@ def labels(self) -> Mapping[str, str]: @pulumi.output_type class KubeNodePoolTemplateSpec(dict): def __init__(__self__, *, - taints: Sequence[Mapping[str, Any]], + taints: Sequence[Mapping[str, str]], unschedulable: bool): """ - :param Sequence[Mapping[str, Any]] taints: taints + :param Sequence[Mapping[str, str]] taints: taints :param bool unschedulable: unschedulable """ pulumi.set(__self__, "taints", taints) @@ -1122,7 +1122,7 @@ def __init__(__self__, *, @property @pulumi.getter - def taints(self) -> Sequence[Mapping[str, Any]]: + def taints(self) -> Sequence[Mapping[str, str]]: """ taints """ @@ -2550,10 +2550,10 @@ def labels(self) -> Optional[Mapping[str, str]]: @pulumi.output_type class GetKubeNodePoolTemplateSpecResult(dict): def __init__(__self__, *, - taints: Optional[Sequence[Mapping[str, Any]]] = None, + taints: Optional[Sequence[Mapping[str, str]]] = None, unschedulable: Optional[bool] = None): """ - :param Sequence[Mapping[str, Any]] taints: taints + :param Sequence[Mapping[str, str]] taints: taints :param bool unschedulable: unschedulable """ if taints is not None: @@ -2563,7 +2563,7 @@ def __init__(__self__, *, @property @pulumi.getter - def taints(self) -> Optional[Sequence[Mapping[str, Any]]]: + def taints(self) -> Optional[Sequence[Mapping[str, str]]]: """ taints """ diff --git a/sdk/python/pulumi_ovh/cloudproject/project.py b/sdk/python/pulumi_ovh/cloudproject/project.py index b1f741cc..d5992ceb 100644 --- a/sdk/python/pulumi_ovh/cloudproject/project.py +++ b/sdk/python/pulumi_ovh/cloudproject/project.py @@ -309,11 +309,11 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ProjectOrderArgs', 'ProjectOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['ProjectPlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectPlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['ProjectPlanArgs', 'ProjectPlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ProjectPlanOptionArgs', 'ProjectPlanOptionArgsDict']]]]] = None, __props__=None): """ ## Import @@ -329,11 +329,11 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: A description associated with the user. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectOrderArgs']]]] orders: Details about the order that was used to create the public cloud project + :param pulumi.Input[Sequence[pulumi.Input[Union['ProjectOrderArgs', 'ProjectOrderArgsDict']]]] orders: Details about the order that was used to create the public cloud project :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['ProjectPlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectPlanOptionArgs']]]] plan_options: Product Plan to order + :param pulumi.Input[Union['ProjectPlanArgs', 'ProjectPlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['ProjectPlanOptionArgs', 'ProjectPlanOptionArgsDict']]]] plan_options: Product Plan to order """ ... @overload @@ -368,11 +368,11 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ProjectOrderArgs', 'ProjectOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['ProjectPlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectPlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['ProjectPlanArgs', 'ProjectPlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ProjectPlanOptionArgs', 'ProjectPlanOptionArgsDict']]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -410,11 +410,11 @@ def get(resource_name: str, project_urn: Optional[pulumi.Input[str]] = None, access: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ProjectOrderArgs', 'ProjectOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['ProjectPlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectPlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['ProjectPlanArgs', 'ProjectPlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ProjectPlanOptionArgs', 'ProjectPlanOptionArgsDict']]]]] = None, project_id: Optional[pulumi.Input[str]] = None, project_name: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None) -> 'Project': @@ -427,11 +427,11 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] project_urn: The URN of the cloud project :param pulumi.Input[str] description: A description associated with the user. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectOrderArgs']]]] orders: Details about the order that was used to create the public cloud project + :param pulumi.Input[Sequence[pulumi.Input[Union['ProjectOrderArgs', 'ProjectOrderArgsDict']]]] orders: Details about the order that was used to create the public cloud project :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['ProjectPlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ProjectPlanOptionArgs']]]] plan_options: Product Plan to order + :param pulumi.Input[Union['ProjectPlanArgs', 'ProjectPlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['ProjectPlanOptionArgs', 'ProjectPlanOptionArgsDict']]]] plan_options: Product Plan to order :param pulumi.Input[str] project_id: openstack project id :param pulumi.Input[str] project_name: openstack project name :param pulumi.Input[str] status: project status diff --git a/sdk/python/pulumi_ovh/cloudproject/user.py b/sdk/python/pulumi_ovh/cloudproject/user.py index 65938dff..01422d7b 100644 --- a/sdk/python/pulumi_ovh/cloudproject/user.py +++ b/sdk/python/pulumi_ovh/cloudproject/user.py @@ -18,7 +18,7 @@ class UserArgs: def __init__(__self__, *, service_name: pulumi.Input[str], description: Optional[pulumi.Input[str]] = None, - openstack_rc: Optional[pulumi.Input[Mapping[str, Any]]] = None, + openstack_rc: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, role_name: Optional[pulumi.Input[str]] = None, role_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ @@ -26,7 +26,7 @@ def __init__(__self__, *, :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. :param pulumi.Input[str] description: A description associated with the user. - :param pulumi.Input[Mapping[str, Any]] openstack_rc: a convenient map representing an openstack_rc file. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] openstack_rc: a convenient map representing an openstack_rc file. Note: no password nor sensitive token is set in this map. :param pulumi.Input[str] role_name: The name of a role. See `role_names`. :param pulumi.Input[Sequence[pulumi.Input[str]]] role_names: A list of role names. Values can be: @@ -80,7 +80,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="openstackRc") - def openstack_rc(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: + def openstack_rc(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ a convenient map representing an openstack_rc file. Note: no password nor sensitive token is set in this map. @@ -88,7 +88,7 @@ def openstack_rc(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: return pulumi.get(self, "openstack_rc") @openstack_rc.setter - def openstack_rc(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): + def openstack_rc(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "openstack_rc", value) @property @@ -133,7 +133,7 @@ class _UserState: def __init__(__self__, *, creation_date: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, - openstack_rc: Optional[pulumi.Input[Mapping[str, Any]]] = None, + openstack_rc: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, password: Optional[pulumi.Input[str]] = None, role_name: Optional[pulumi.Input[str]] = None, role_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -145,7 +145,7 @@ def __init__(__self__, *, Input properties used for looking up and filtering User resources. :param pulumi.Input[str] creation_date: the date the user was created. :param pulumi.Input[str] description: A description associated with the user. - :param pulumi.Input[Mapping[str, Any]] openstack_rc: a convenient map representing an openstack_rc file. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] openstack_rc: a convenient map representing an openstack_rc file. Note: no password nor sensitive token is set in this map. :param pulumi.Input[str] password: (Sensitive) the password generated for the user. The password can be used with the Openstack API. This attribute is sensitive and will only be @@ -218,7 +218,7 @@ def description(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="openstackRc") - def openstack_rc(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: + def openstack_rc(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ a convenient map representing an openstack_rc file. Note: no password nor sensitive token is set in this map. @@ -226,7 +226,7 @@ def openstack_rc(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: return pulumi.get(self, "openstack_rc") @openstack_rc.setter - def openstack_rc(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): + def openstack_rc(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "openstack_rc", value) @property @@ -336,7 +336,7 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, - openstack_rc: Optional[pulumi.Input[Mapping[str, Any]]] = None, + openstack_rc: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, role_name: Optional[pulumi.Input[str]] = None, role_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -356,7 +356,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: A description associated with the user. - :param pulumi.Input[Mapping[str, Any]] openstack_rc: a convenient map representing an openstack_rc file. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] openstack_rc: a convenient map representing an openstack_rc file. Note: no password nor sensitive token is set in this map. :param pulumi.Input[str] role_name: The name of a role. See `role_names`. :param pulumi.Input[Sequence[pulumi.Input[str]]] role_names: A list of role names. Values can be: @@ -409,7 +409,7 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, - openstack_rc: Optional[pulumi.Input[Mapping[str, Any]]] = None, + openstack_rc: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, role_name: Optional[pulumi.Input[str]] = None, role_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -448,11 +448,11 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, creation_date: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, - openstack_rc: Optional[pulumi.Input[Mapping[str, Any]]] = None, + openstack_rc: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, password: Optional[pulumi.Input[str]] = None, role_name: Optional[pulumi.Input[str]] = None, role_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - roles: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['UserRoleArgs']]]]] = None, + roles: Optional[pulumi.Input[Sequence[pulumi.Input[Union['UserRoleArgs', 'UserRoleArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None, username: Optional[pulumi.Input[str]] = None) -> 'User': @@ -465,7 +465,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] creation_date: the date the user was created. :param pulumi.Input[str] description: A description associated with the user. - :param pulumi.Input[Mapping[str, Any]] openstack_rc: a convenient map representing an openstack_rc file. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] openstack_rc: a convenient map representing an openstack_rc file. Note: no password nor sensitive token is set in this map. :param pulumi.Input[str] password: (Sensitive) the password generated for the user. The password can be used with the Openstack API. This attribute is sensitive and will only be @@ -484,7 +484,7 @@ def get(resource_name: str, - network_security_operator - objectstore_operator - volume_operator - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['UserRoleArgs']]]] roles: A list of roles associated with the user. + :param pulumi.Input[Sequence[pulumi.Input[Union['UserRoleArgs', 'UserRoleArgsDict']]]] roles: A list of roles associated with the user. :param pulumi.Input[str] service_name: The id of the public cloud project. If omitted, the `OVH_CLOUD_PROJECT_SERVICE` environment variable is used. :param pulumi.Input[str] status: the status of the user. should be normally set to 'ok'. @@ -525,7 +525,7 @@ def description(self) -> pulumi.Output[Optional[str]]: @property @pulumi.getter(name="openstackRc") - def openstack_rc(self) -> pulumi.Output[Mapping[str, Any]]: + def openstack_rc(self) -> pulumi.Output[Mapping[str, str]]: """ a convenient map representing an openstack_rc file. Note: no password nor sensitive token is set in this map. diff --git a/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py b/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py index 74edad27..48d98018 100644 --- a/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py +++ b/sdk/python/pulumi_ovh/cloudprojectdatabase/opensearch_user.py @@ -244,7 +244,7 @@ class OpensearchUser(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - acls: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OpensearchUserAclArgs']]]]] = None, + acls: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OpensearchUserAclArgs', 'OpensearchUserAclArgsDict']]]]] = None, cluster_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, password_reset: Optional[pulumi.Input[str]] = None, @@ -263,7 +263,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OpensearchUserAclArgs']]]] acls: Acls of the user. + :param pulumi.Input[Sequence[pulumi.Input[Union['OpensearchUserAclArgs', 'OpensearchUserAclArgsDict']]]] acls: Acls of the user. :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] name: Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. :param pulumi.Input[str] password_reset: Arbitrary string to change to trigger a password update @@ -302,7 +302,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - acls: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OpensearchUserAclArgs']]]]] = None, + acls: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OpensearchUserAclArgs', 'OpensearchUserAclArgsDict']]]]] = None, cluster_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, password_reset: Optional[pulumi.Input[str]] = None, @@ -340,7 +340,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, - acls: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OpensearchUserAclArgs']]]]] = None, + acls: Optional[pulumi.Input[Sequence[pulumi.Input[Union['OpensearchUserAclArgs', 'OpensearchUserAclArgsDict']]]]] = None, cluster_id: Optional[pulumi.Input[str]] = None, created_at: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -355,7 +355,7 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['OpensearchUserAclArgs']]]] acls: Acls of the user. + :param pulumi.Input[Sequence[pulumi.Input[Union['OpensearchUserAclArgs', 'OpensearchUserAclArgsDict']]]] acls: Acls of the user. :param pulumi.Input[str] cluster_id: Cluster ID. :param pulumi.Input[str] created_at: Date of the creation of the user. :param pulumi.Input[str] name: Username affected by this acl. A user named "avnadmin" is mapped with already created admin user and reset his password instead of creating a new user. diff --git a/sdk/python/pulumi_ovh/dbaas/logs_input.py b/sdk/python/pulumi_ovh/dbaas/logs_input.py index 25715583..5f338cc4 100644 --- a/sdk/python/pulumi_ovh/dbaas/logs_input.py +++ b/sdk/python/pulumi_ovh/dbaas/logs_input.py @@ -23,7 +23,10 @@ def __init__(__self__, *, stream_id: pulumi.Input[str], title: pulumi.Input[str], allowed_networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + autoscale: Optional[pulumi.Input[bool]] = None, exposed_port: Optional[pulumi.Input[str]] = None, + max_scale_instance: Optional[pulumi.Input[int]] = None, + min_scale_instance: Optional[pulumi.Input[int]] = None, nb_instance: Optional[pulumi.Input[int]] = None): """ The set of arguments for constructing a LogsInput resource. @@ -34,8 +37,11 @@ def __init__(__self__, *, :param pulumi.Input[str] stream_id: Associated Graylog stream :param pulumi.Input[str] title: Input title :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_networks: List of IP blocks + :param pulumi.Input[bool] autoscale: Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) :param pulumi.Input[str] exposed_port: Port - :param pulumi.Input[int] nb_instance: Number of instance running + :param pulumi.Input[int] max_scale_instance: Maximum number of instances in auto-scaled mode + :param pulumi.Input[int] min_scale_instance: Minimum number of instances in auto-scaled mode + :param pulumi.Input[int] nb_instance: Number of instance running (input, mutually exclusive with parameter `autoscale`) """ pulumi.set(__self__, "configuration", configuration) pulumi.set(__self__, "description", description) @@ -45,8 +51,14 @@ def __init__(__self__, *, pulumi.set(__self__, "title", title) if allowed_networks is not None: pulumi.set(__self__, "allowed_networks", allowed_networks) + if autoscale is not None: + pulumi.set(__self__, "autoscale", autoscale) if exposed_port is not None: pulumi.set(__self__, "exposed_port", exposed_port) + if max_scale_instance is not None: + pulumi.set(__self__, "max_scale_instance", max_scale_instance) + if min_scale_instance is not None: + pulumi.set(__self__, "min_scale_instance", min_scale_instance) if nb_instance is not None: pulumi.set(__self__, "nb_instance", nb_instance) @@ -134,6 +146,18 @@ def allowed_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]] def allowed_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "allowed_networks", value) + @property + @pulumi.getter + def autoscale(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + """ + return pulumi.get(self, "autoscale") + + @autoscale.setter + def autoscale(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "autoscale", value) + @property @pulumi.getter(name="exposedPort") def exposed_port(self) -> Optional[pulumi.Input[str]]: @@ -146,11 +170,35 @@ def exposed_port(self) -> Optional[pulumi.Input[str]]: def exposed_port(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "exposed_port", value) + @property + @pulumi.getter(name="maxScaleInstance") + def max_scale_instance(self) -> Optional[pulumi.Input[int]]: + """ + Maximum number of instances in auto-scaled mode + """ + return pulumi.get(self, "max_scale_instance") + + @max_scale_instance.setter + def max_scale_instance(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_scale_instance", value) + + @property + @pulumi.getter(name="minScaleInstance") + def min_scale_instance(self) -> Optional[pulumi.Input[int]]: + """ + Minimum number of instances in auto-scaled mode + """ + return pulumi.get(self, "min_scale_instance") + + @min_scale_instance.setter + def min_scale_instance(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_scale_instance", value) + @property @pulumi.getter(name="nbInstance") def nb_instance(self) -> Optional[pulumi.Input[int]]: """ - Number of instance running + Number of instance running (input, mutually exclusive with parameter `autoscale`) """ return pulumi.get(self, "nb_instance") @@ -163,14 +211,18 @@ def nb_instance(self, value: Optional[pulumi.Input[int]]): class _LogsInputState: def __init__(__self__, *, allowed_networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + autoscale: Optional[pulumi.Input[bool]] = None, configuration: Optional[pulumi.Input['LogsInputConfigurationArgs']] = None, created_at: Optional[pulumi.Input[str]] = None, + current_nb_instance: Optional[pulumi.Input[int]] = None, description: Optional[pulumi.Input[str]] = None, engine_id: Optional[pulumi.Input[str]] = None, exposed_port: Optional[pulumi.Input[str]] = None, hostname: Optional[pulumi.Input[str]] = None, input_id: Optional[pulumi.Input[str]] = None, is_restart_required: Optional[pulumi.Input[bool]] = None, + max_scale_instance: Optional[pulumi.Input[int]] = None, + min_scale_instance: Optional[pulumi.Input[int]] = None, nb_instance: Optional[pulumi.Input[int]] = None, public_address: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -182,15 +234,19 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering LogsInput resources. :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_networks: List of IP blocks + :param pulumi.Input[bool] autoscale: Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) :param pulumi.Input['LogsInputConfigurationArgs'] configuration: Input configuration :param pulumi.Input[str] created_at: Input creation + :param pulumi.Input[int] current_nb_instance: Number of instance running (returned by the API) :param pulumi.Input[str] description: Input description :param pulumi.Input[str] engine_id: Input engine ID :param pulumi.Input[str] exposed_port: Port :param pulumi.Input[str] hostname: Hostname :param pulumi.Input[str] input_id: Input ID :param pulumi.Input[bool] is_restart_required: Indicate if input need to be restarted - :param pulumi.Input[int] nb_instance: Number of instance running + :param pulumi.Input[int] max_scale_instance: Maximum number of instances in auto-scaled mode + :param pulumi.Input[int] min_scale_instance: Minimum number of instances in auto-scaled mode + :param pulumi.Input[int] nb_instance: Number of instance running (input, mutually exclusive with parameter `autoscale`) :param pulumi.Input[str] public_address: Input IP address :param pulumi.Input[str] service_name: service name :param pulumi.Input[str] ssl_certificate: Input SSL certificate @@ -201,10 +257,14 @@ def __init__(__self__, *, """ if allowed_networks is not None: pulumi.set(__self__, "allowed_networks", allowed_networks) + if autoscale is not None: + pulumi.set(__self__, "autoscale", autoscale) if configuration is not None: pulumi.set(__self__, "configuration", configuration) if created_at is not None: pulumi.set(__self__, "created_at", created_at) + if current_nb_instance is not None: + pulumi.set(__self__, "current_nb_instance", current_nb_instance) if description is not None: pulumi.set(__self__, "description", description) if engine_id is not None: @@ -217,6 +277,10 @@ def __init__(__self__, *, pulumi.set(__self__, "input_id", input_id) if is_restart_required is not None: pulumi.set(__self__, "is_restart_required", is_restart_required) + if max_scale_instance is not None: + pulumi.set(__self__, "max_scale_instance", max_scale_instance) + if min_scale_instance is not None: + pulumi.set(__self__, "min_scale_instance", min_scale_instance) if nb_instance is not None: pulumi.set(__self__, "nb_instance", nb_instance) if public_address is not None: @@ -246,6 +310,18 @@ def allowed_networks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]] def allowed_networks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "allowed_networks", value) + @property + @pulumi.getter + def autoscale(self) -> Optional[pulumi.Input[bool]]: + """ + Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + """ + return pulumi.get(self, "autoscale") + + @autoscale.setter + def autoscale(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "autoscale", value) + @property @pulumi.getter def configuration(self) -> Optional[pulumi.Input['LogsInputConfigurationArgs']]: @@ -270,6 +346,18 @@ def created_at(self) -> Optional[pulumi.Input[str]]: def created_at(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "created_at", value) + @property + @pulumi.getter(name="currentNbInstance") + def current_nb_instance(self) -> Optional[pulumi.Input[int]]: + """ + Number of instance running (returned by the API) + """ + return pulumi.get(self, "current_nb_instance") + + @current_nb_instance.setter + def current_nb_instance(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "current_nb_instance", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -342,11 +430,35 @@ def is_restart_required(self) -> Optional[pulumi.Input[bool]]: def is_restart_required(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "is_restart_required", value) + @property + @pulumi.getter(name="maxScaleInstance") + def max_scale_instance(self) -> Optional[pulumi.Input[int]]: + """ + Maximum number of instances in auto-scaled mode + """ + return pulumi.get(self, "max_scale_instance") + + @max_scale_instance.setter + def max_scale_instance(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_scale_instance", value) + + @property + @pulumi.getter(name="minScaleInstance") + def min_scale_instance(self) -> Optional[pulumi.Input[int]]: + """ + Minimum number of instances in auto-scaled mode + """ + return pulumi.get(self, "min_scale_instance") + + @min_scale_instance.setter + def min_scale_instance(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "min_scale_instance", value) + @property @pulumi.getter(name="nbInstance") def nb_instance(self) -> Optional[pulumi.Input[int]]: """ - Number of instance running + Number of instance running (input, mutually exclusive with parameter `autoscale`) """ return pulumi.get(self, "nb_instance") @@ -445,10 +557,13 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, allowed_networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - configuration: Optional[pulumi.Input[pulumi.InputType['LogsInputConfigurationArgs']]] = None, + autoscale: Optional[pulumi.Input[bool]] = None, + configuration: Optional[pulumi.Input[Union['LogsInputConfigurationArgs', 'LogsInputConfigurationArgsDict']]] = None, description: Optional[pulumi.Input[str]] = None, engine_id: Optional[pulumi.Input[str]] = None, exposed_port: Optional[pulumi.Input[str]] = None, + max_scale_instance: Optional[pulumi.Input[int]] = None, + min_scale_instance: Optional[pulumi.Input[int]] = None, nb_instance: Optional[pulumi.Input[int]] = None, service_name: Optional[pulumi.Input[str]] = None, stream_id: Optional[pulumi.Input[str]] = None, @@ -478,27 +593,30 @@ def __init__(__self__, allowed_networks=["10.0.0.0/16"], exposed_port="6154", nb_instance=2, - configuration=ovh.dbaas.LogsInputConfigurationArgs( - logstash=ovh.dbaas.LogsInputConfigurationLogstashArgs( - input_section=\"\"\" beats { + configuration={ + "logstash": { + "input_section": \"\"\" beats { port => 6514 ssl => true ssl_certificate => "/etc/ssl/private/server.crt" ssl_key => "/etc/ssl/private/server.key" } \"\"\", - ), - )) + }, + }) ``` :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_networks: List of IP blocks - :param pulumi.Input[pulumi.InputType['LogsInputConfigurationArgs']] configuration: Input configuration + :param pulumi.Input[bool] autoscale: Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + :param pulumi.Input[Union['LogsInputConfigurationArgs', 'LogsInputConfigurationArgsDict']] configuration: Input configuration :param pulumi.Input[str] description: Input description :param pulumi.Input[str] engine_id: Input engine ID :param pulumi.Input[str] exposed_port: Port - :param pulumi.Input[int] nb_instance: Number of instance running + :param pulumi.Input[int] max_scale_instance: Maximum number of instances in auto-scaled mode + :param pulumi.Input[int] min_scale_instance: Minimum number of instances in auto-scaled mode + :param pulumi.Input[int] nb_instance: Number of instance running (input, mutually exclusive with parameter `autoscale`) :param pulumi.Input[str] service_name: service name :param pulumi.Input[str] stream_id: Associated Graylog stream :param pulumi.Input[str] title: Input title @@ -533,17 +651,17 @@ def __init__(__self__, allowed_networks=["10.0.0.0/16"], exposed_port="6154", nb_instance=2, - configuration=ovh.dbaas.LogsInputConfigurationArgs( - logstash=ovh.dbaas.LogsInputConfigurationLogstashArgs( - input_section=\"\"\" beats { + configuration={ + "logstash": { + "input_section": \"\"\" beats { port => 6514 ssl => true ssl_certificate => "/etc/ssl/private/server.crt" ssl_key => "/etc/ssl/private/server.key" } \"\"\", - ), - )) + }, + }) ``` :param str resource_name: The name of the resource. @@ -562,10 +680,13 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, allowed_networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - configuration: Optional[pulumi.Input[pulumi.InputType['LogsInputConfigurationArgs']]] = None, + autoscale: Optional[pulumi.Input[bool]] = None, + configuration: Optional[pulumi.Input[Union['LogsInputConfigurationArgs', 'LogsInputConfigurationArgsDict']]] = None, description: Optional[pulumi.Input[str]] = None, engine_id: Optional[pulumi.Input[str]] = None, exposed_port: Optional[pulumi.Input[str]] = None, + max_scale_instance: Optional[pulumi.Input[int]] = None, + min_scale_instance: Optional[pulumi.Input[int]] = None, nb_instance: Optional[pulumi.Input[int]] = None, service_name: Optional[pulumi.Input[str]] = None, stream_id: Optional[pulumi.Input[str]] = None, @@ -580,6 +701,7 @@ def _internal_init(__self__, __props__ = LogsInputArgs.__new__(LogsInputArgs) __props__.__dict__["allowed_networks"] = allowed_networks + __props__.__dict__["autoscale"] = autoscale if configuration is None and not opts.urn: raise TypeError("Missing required property 'configuration'") __props__.__dict__["configuration"] = configuration @@ -590,6 +712,8 @@ def _internal_init(__self__, raise TypeError("Missing required property 'engine_id'") __props__.__dict__["engine_id"] = engine_id __props__.__dict__["exposed_port"] = exposed_port + __props__.__dict__["max_scale_instance"] = max_scale_instance + __props__.__dict__["min_scale_instance"] = min_scale_instance __props__.__dict__["nb_instance"] = nb_instance if service_name is None and not opts.urn: raise TypeError("Missing required property 'service_name'") @@ -601,6 +725,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'title'") __props__.__dict__["title"] = title __props__.__dict__["created_at"] = None + __props__.__dict__["current_nb_instance"] = None __props__.__dict__["hostname"] = None __props__.__dict__["input_id"] = None __props__.__dict__["is_restart_required"] = None @@ -621,14 +746,18 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, allowed_networks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - configuration: Optional[pulumi.Input[pulumi.InputType['LogsInputConfigurationArgs']]] = None, + autoscale: Optional[pulumi.Input[bool]] = None, + configuration: Optional[pulumi.Input[Union['LogsInputConfigurationArgs', 'LogsInputConfigurationArgsDict']]] = None, created_at: Optional[pulumi.Input[str]] = None, + current_nb_instance: Optional[pulumi.Input[int]] = None, description: Optional[pulumi.Input[str]] = None, engine_id: Optional[pulumi.Input[str]] = None, exposed_port: Optional[pulumi.Input[str]] = None, hostname: Optional[pulumi.Input[str]] = None, input_id: Optional[pulumi.Input[str]] = None, is_restart_required: Optional[pulumi.Input[bool]] = None, + max_scale_instance: Optional[pulumi.Input[int]] = None, + min_scale_instance: Optional[pulumi.Input[int]] = None, nb_instance: Optional[pulumi.Input[int]] = None, public_address: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -645,15 +774,19 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_networks: List of IP blocks - :param pulumi.Input[pulumi.InputType['LogsInputConfigurationArgs']] configuration: Input configuration + :param pulumi.Input[bool] autoscale: Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + :param pulumi.Input[Union['LogsInputConfigurationArgs', 'LogsInputConfigurationArgsDict']] configuration: Input configuration :param pulumi.Input[str] created_at: Input creation + :param pulumi.Input[int] current_nb_instance: Number of instance running (returned by the API) :param pulumi.Input[str] description: Input description :param pulumi.Input[str] engine_id: Input engine ID :param pulumi.Input[str] exposed_port: Port :param pulumi.Input[str] hostname: Hostname :param pulumi.Input[str] input_id: Input ID :param pulumi.Input[bool] is_restart_required: Indicate if input need to be restarted - :param pulumi.Input[int] nb_instance: Number of instance running + :param pulumi.Input[int] max_scale_instance: Maximum number of instances in auto-scaled mode + :param pulumi.Input[int] min_scale_instance: Minimum number of instances in auto-scaled mode + :param pulumi.Input[int] nb_instance: Number of instance running (input, mutually exclusive with parameter `autoscale`) :param pulumi.Input[str] public_address: Input IP address :param pulumi.Input[str] service_name: service name :param pulumi.Input[str] ssl_certificate: Input SSL certificate @@ -667,14 +800,18 @@ def get(resource_name: str, __props__ = _LogsInputState.__new__(_LogsInputState) __props__.__dict__["allowed_networks"] = allowed_networks + __props__.__dict__["autoscale"] = autoscale __props__.__dict__["configuration"] = configuration __props__.__dict__["created_at"] = created_at + __props__.__dict__["current_nb_instance"] = current_nb_instance __props__.__dict__["description"] = description __props__.__dict__["engine_id"] = engine_id __props__.__dict__["exposed_port"] = exposed_port __props__.__dict__["hostname"] = hostname __props__.__dict__["input_id"] = input_id __props__.__dict__["is_restart_required"] = is_restart_required + __props__.__dict__["max_scale_instance"] = max_scale_instance + __props__.__dict__["min_scale_instance"] = min_scale_instance __props__.__dict__["nb_instance"] = nb_instance __props__.__dict__["public_address"] = public_address __props__.__dict__["service_name"] = service_name @@ -693,6 +830,14 @@ def allowed_networks(self) -> pulumi.Output[Sequence[str]]: """ return pulumi.get(self, "allowed_networks") + @property + @pulumi.getter + def autoscale(self) -> pulumi.Output[Optional[bool]]: + """ + Whether the workload is auto-scaled (mutually exclusive with parameter `nb_instance`) + """ + return pulumi.get(self, "autoscale") + @property @pulumi.getter def configuration(self) -> pulumi.Output['outputs.LogsInputConfiguration']: @@ -709,6 +854,14 @@ def created_at(self) -> pulumi.Output[str]: """ return pulumi.get(self, "created_at") + @property + @pulumi.getter(name="currentNbInstance") + def current_nb_instance(self) -> pulumi.Output[int]: + """ + Number of instance running (returned by the API) + """ + return pulumi.get(self, "current_nb_instance") + @property @pulumi.getter def description(self) -> pulumi.Output[str]: @@ -757,11 +910,27 @@ def is_restart_required(self) -> pulumi.Output[bool]: """ return pulumi.get(self, "is_restart_required") + @property + @pulumi.getter(name="maxScaleInstance") + def max_scale_instance(self) -> pulumi.Output[Optional[int]]: + """ + Maximum number of instances in auto-scaled mode + """ + return pulumi.get(self, "max_scale_instance") + + @property + @pulumi.getter(name="minScaleInstance") + def min_scale_instance(self) -> pulumi.Output[Optional[int]]: + """ + Minimum number of instances in auto-scaled mode + """ + return pulumi.get(self, "min_scale_instance") + @property @pulumi.getter(name="nbInstance") - def nb_instance(self) -> pulumi.Output[int]: + def nb_instance(self) -> pulumi.Output[Optional[int]]: """ - Number of instance running + Number of instance running (input, mutually exclusive with parameter `autoscale`) """ return pulumi.get(self, "nb_instance") diff --git a/sdk/python/pulumi_ovh/dedicated/__init__.py b/sdk/python/pulumi_ovh/dedicated/__init__.py index 7d2eacb1..301f4938 100644 --- a/sdk/python/pulumi_ovh/dedicated/__init__.py +++ b/sdk/python/pulumi_ovh/dedicated/__init__.py @@ -14,6 +14,7 @@ from .nas_ha_partition import * from .nas_ha_partition_access import * from .nas_ha_partition_snapshot import * +from .server import * from .server_install_task import * from .server_networking import * from .server_reboot_task import * diff --git a/sdk/python/pulumi_ovh/dedicated/_inputs.py b/sdk/python/pulumi_ovh/dedicated/_inputs.py index d72069e4..9c2be491 100644 --- a/sdk/python/pulumi_ovh/dedicated/_inputs.py +++ b/sdk/python/pulumi_ovh/dedicated/_inputs.py @@ -10,26 +10,173 @@ from .. import _utilities __all__ = [ + 'ServerDetailsArgs', + 'ServerIamArgs', 'ServerInstallTaskDetailsArgs', 'ServerInstallTaskUserMetadataArgs', 'ServerNetworkingInterfaceArgs', + 'ServerOrderArgs', + 'ServerOrderDetailArgs', + 'ServerPlanArgs', + 'ServerPlanConfigurationArgs', + 'ServerPlanOptionArgs', + 'ServerPlanOptionConfigurationArgs', + 'ServerUserMetadataArgs', ] +@pulumi.input_type +class ServerDetailsArgs: + def __init__(__self__, *, + custom_hostname: Optional[pulumi.Input[str]] = None, + disk_group_id: Optional[pulumi.Input[float]] = None, + no_raid: Optional[pulumi.Input[bool]] = None, + soft_raid_devices: Optional[pulumi.Input[float]] = None): + """ + :param pulumi.Input[str] custom_hostname: Personnal hostname to use in server reinstallation + :param pulumi.Input[float] disk_group_id: Disk group id to process install on (only available for some templates) + :param pulumi.Input[bool] no_raid: true if you want to install only on the first disk + :param pulumi.Input[float] soft_raid_devices: Number of devices to use for system's software RAID + """ + if custom_hostname is not None: + pulumi.set(__self__, "custom_hostname", custom_hostname) + if disk_group_id is not None: + pulumi.set(__self__, "disk_group_id", disk_group_id) + if no_raid is not None: + pulumi.set(__self__, "no_raid", no_raid) + if soft_raid_devices is not None: + pulumi.set(__self__, "soft_raid_devices", soft_raid_devices) + + @property + @pulumi.getter(name="customHostname") + def custom_hostname(self) -> Optional[pulumi.Input[str]]: + """ + Personnal hostname to use in server reinstallation + """ + return pulumi.get(self, "custom_hostname") + + @custom_hostname.setter + def custom_hostname(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "custom_hostname", value) + + @property + @pulumi.getter(name="diskGroupId") + def disk_group_id(self) -> Optional[pulumi.Input[float]]: + """ + Disk group id to process install on (only available for some templates) + """ + return pulumi.get(self, "disk_group_id") + + @disk_group_id.setter + def disk_group_id(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "disk_group_id", value) + + @property + @pulumi.getter(name="noRaid") + def no_raid(self) -> Optional[pulumi.Input[bool]]: + """ + true if you want to install only on the first disk + """ + return pulumi.get(self, "no_raid") + + @no_raid.setter + def no_raid(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "no_raid", value) + + @property + @pulumi.getter(name="softRaidDevices") + def soft_raid_devices(self) -> Optional[pulumi.Input[float]]: + """ + Number of devices to use for system's software RAID + """ + return pulumi.get(self, "soft_raid_devices") + + @soft_raid_devices.setter + def soft_raid_devices(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "soft_raid_devices", value) + + +@pulumi.input_type +class ServerIamArgs: + def __init__(__self__, *, + display_name: Optional[pulumi.Input[str]] = None, + id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + urn: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] display_name: Resource display name + :param pulumi.Input[str] id: Unique identifier of the resource in the IAM + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Resource tags. Tags that were internally computed are prefixed with `ovh:` + :param pulumi.Input[str] urn: URN of the private database, used when writing IAM policies + """ + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if id is not None: + pulumi.set(__self__, "id", id) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if urn is not None: + pulumi.set(__self__, "urn", urn) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[str]]: + """ + Resource display name + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter + def id(self) -> Optional[pulumi.Input[str]]: + """ + Unique identifier of the resource in the IAM + """ + return pulumi.get(self, "id") + + @id.setter + def id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "id", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Resource tags. Tags that were internally computed are prefixed with `ovh:` + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def urn(self) -> Optional[pulumi.Input[str]]: + """ + URN of the private database, used when writing IAM policies + """ + return pulumi.get(self, "urn") + + @urn.setter + def urn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "urn", value) + + @pulumi.input_type class ServerInstallTaskDetailsArgs: def __init__(__self__, *, custom_hostname: Optional[pulumi.Input[str]] = None, disk_group_id: Optional[pulumi.Input[int]] = None, no_raid: Optional[pulumi.Input[bool]] = None, - post_installation_script_link: Optional[pulumi.Input[str]] = None, - post_installation_script_return: Optional[pulumi.Input[str]] = None, soft_raid_devices: Optional[pulumi.Input[int]] = None): """ :param pulumi.Input[str] custom_hostname: Set up the server using the provided hostname instead of the default hostname. :param pulumi.Input[int] disk_group_id: Disk group id. :param pulumi.Input[bool] no_raid: Set to true to disable RAID. - :param pulumi.Input[str] post_installation_script_link: Indicate the URL where your postinstall customisation script is located. - :param pulumi.Input[str] post_installation_script_return: Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. :param pulumi.Input[int] soft_raid_devices: soft raid devices. """ if custom_hostname is not None: @@ -38,10 +185,6 @@ def __init__(__self__, *, pulumi.set(__self__, "disk_group_id", disk_group_id) if no_raid is not None: pulumi.set(__self__, "no_raid", no_raid) - if post_installation_script_link is not None: - pulumi.set(__self__, "post_installation_script_link", post_installation_script_link) - if post_installation_script_return is not None: - pulumi.set(__self__, "post_installation_script_return", post_installation_script_return) if soft_raid_devices is not None: pulumi.set(__self__, "soft_raid_devices", soft_raid_devices) @@ -81,30 +224,6 @@ def no_raid(self) -> Optional[pulumi.Input[bool]]: def no_raid(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "no_raid", value) - @property - @pulumi.getter(name="postInstallationScriptLink") - def post_installation_script_link(self) -> Optional[pulumi.Input[str]]: - """ - Indicate the URL where your postinstall customisation script is located. - """ - return pulumi.get(self, "post_installation_script_link") - - @post_installation_script_link.setter - def post_installation_script_link(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "post_installation_script_link", value) - - @property - @pulumi.getter(name="postInstallationScriptReturn") - def post_installation_script_return(self) -> Optional[pulumi.Input[str]]: - """ - Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - """ - return pulumi.get(self, "post_installation_script_return") - - @post_installation_script_return.setter - def post_installation_script_return(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "post_installation_script_return", value) - @property @pulumi.getter(name="softRaidDevices") def soft_raid_devices(self) -> Optional[pulumi.Input[int]]: @@ -192,3 +311,411 @@ def type(self, value: pulumi.Input[str]): pulumi.set(self, "type", value) +@pulumi.input_type +class ServerOrderArgs: + def __init__(__self__, *, + date: Optional[pulumi.Input[str]] = None, + details: Optional[pulumi.Input[Sequence[pulumi.Input['ServerOrderDetailArgs']]]] = None, + expiration_date: Optional[pulumi.Input[str]] = None, + order_id: Optional[pulumi.Input[float]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['ServerOrderDetailArgs']]] details: Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + """ + if date is not None: + pulumi.set(__self__, "date", date) + if details is not None: + pulumi.set(__self__, "details", details) + if expiration_date is not None: + pulumi.set(__self__, "expiration_date", expiration_date) + if order_id is not None: + pulumi.set(__self__, "order_id", order_id) + + @property + @pulumi.getter + def date(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "date") + + @date.setter + def date(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "date", value) + + @property + @pulumi.getter + def details(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerOrderDetailArgs']]]]: + """ + Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + """ + return pulumi.get(self, "details") + + @details.setter + def details(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerOrderDetailArgs']]]]): + pulumi.set(self, "details", value) + + @property + @pulumi.getter(name="expirationDate") + def expiration_date(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "expiration_date") + + @expiration_date.setter + def expiration_date(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expiration_date", value) + + @property + @pulumi.getter(name="orderId") + def order_id(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "order_id") + + @order_id.setter + def order_id(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "order_id", value) + + +@pulumi.input_type +class ServerOrderDetailArgs: + def __init__(__self__, *, + description: Optional[pulumi.Input[str]] = None, + detail_type: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, + order_detail_id: Optional[pulumi.Input[float]] = None, + quantity: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] detail_type: Product type of item in order + """ + if description is not None: + pulumi.set(__self__, "description", description) + if detail_type is not None: + pulumi.set(__self__, "detail_type", detail_type) + if domain is not None: + pulumi.set(__self__, "domain", domain) + if order_detail_id is not None: + pulumi.set(__self__, "order_detail_id", order_detail_id) + if quantity is not None: + pulumi.set(__self__, "quantity", quantity) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="detailType") + def detail_type(self) -> Optional[pulumi.Input[str]]: + """ + Product type of item in order + """ + return pulumi.get(self, "detail_type") + + @detail_type.setter + def detail_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "detail_type", value) + + @property + @pulumi.getter + def domain(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "domain") + + @domain.setter + def domain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain", value) + + @property + @pulumi.getter(name="orderDetailId") + def order_detail_id(self) -> Optional[pulumi.Input[float]]: + return pulumi.get(self, "order_detail_id") + + @order_detail_id.setter + def order_detail_id(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "order_detail_id", value) + + @property + @pulumi.getter + def quantity(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "quantity") + + @quantity.setter + def quantity(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "quantity", value) + + +@pulumi.input_type +class ServerPlanArgs: + def __init__(__self__, *, + duration: pulumi.Input[str], + plan_code: pulumi.Input[str], + pricing_mode: pulumi.Input[str], + configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanConfigurationArgs']]]] = None, + item_id: Optional[pulumi.Input[float]] = None, + quantity: Optional[pulumi.Input[float]] = None): + """ + :param pulumi.Input[str] duration: Duration selected for the purchase of the product + :param pulumi.Input[str] plan_code: Identifier of the option offer + :param pulumi.Input[str] pricing_mode: Pricing mode selected for the purchase of the product + :param pulumi.Input[float] item_id: Cart item to be linked + :param pulumi.Input[float] quantity: Quantity of product desired + """ + pulumi.set(__self__, "duration", duration) + pulumi.set(__self__, "plan_code", plan_code) + pulumi.set(__self__, "pricing_mode", pricing_mode) + if configurations is not None: + pulumi.set(__self__, "configurations", configurations) + if item_id is not None: + pulumi.set(__self__, "item_id", item_id) + if quantity is not None: + pulumi.set(__self__, "quantity", quantity) + + @property + @pulumi.getter + def duration(self) -> pulumi.Input[str]: + """ + Duration selected for the purchase of the product + """ + return pulumi.get(self, "duration") + + @duration.setter + def duration(self, value: pulumi.Input[str]): + pulumi.set(self, "duration", value) + + @property + @pulumi.getter(name="planCode") + def plan_code(self) -> pulumi.Input[str]: + """ + Identifier of the option offer + """ + return pulumi.get(self, "plan_code") + + @plan_code.setter + def plan_code(self, value: pulumi.Input[str]): + pulumi.set(self, "plan_code", value) + + @property + @pulumi.getter(name="pricingMode") + def pricing_mode(self) -> pulumi.Input[str]: + """ + Pricing mode selected for the purchase of the product + """ + return pulumi.get(self, "pricing_mode") + + @pricing_mode.setter + def pricing_mode(self, value: pulumi.Input[str]): + pulumi.set(self, "pricing_mode", value) + + @property + @pulumi.getter + def configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanConfigurationArgs']]]]: + return pulumi.get(self, "configurations") + + @configurations.setter + def configurations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanConfigurationArgs']]]]): + pulumi.set(self, "configurations", value) + + @property + @pulumi.getter(name="itemId") + def item_id(self) -> Optional[pulumi.Input[float]]: + """ + Cart item to be linked + """ + return pulumi.get(self, "item_id") + + @item_id.setter + def item_id(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "item_id", value) + + @property + @pulumi.getter + def quantity(self) -> Optional[pulumi.Input[float]]: + """ + Quantity of product desired + """ + return pulumi.get(self, "quantity") + + @quantity.setter + def quantity(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "quantity", value) + + +@pulumi.input_type +class ServerPlanConfigurationArgs: + def __init__(__self__, *, + label: pulumi.Input[str], + value: pulumi.Input[str]): + """ + :param pulumi.Input[str] label: Label for your configuration item + :param pulumi.Input[str] value: Value or resource URL on API.OVH.COM of your configuration item + """ + pulumi.set(__self__, "label", label) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def label(self) -> pulumi.Input[str]: + """ + Label for your configuration item + """ + return pulumi.get(self, "label") + + @label.setter + def label(self, value: pulumi.Input[str]): + pulumi.set(self, "label", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + Value or resource URL on API.OVH.COM of your configuration item + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class ServerPlanOptionArgs: + def __init__(__self__, *, + duration: pulumi.Input[str], + plan_code: pulumi.Input[str], + pricing_mode: pulumi.Input[str], + quantity: pulumi.Input[float], + configurations: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanOptionConfigurationArgs']]]] = None): + """ + :param pulumi.Input[str] duration: Duration selected for the purchase of the product + :param pulumi.Input[str] plan_code: Identifier of the option offer + :param pulumi.Input[str] pricing_mode: Pricing mode selected for the purchase of the product + :param pulumi.Input[float] quantity: Quantity of product desired + """ + pulumi.set(__self__, "duration", duration) + pulumi.set(__self__, "plan_code", plan_code) + pulumi.set(__self__, "pricing_mode", pricing_mode) + pulumi.set(__self__, "quantity", quantity) + if configurations is not None: + pulumi.set(__self__, "configurations", configurations) + + @property + @pulumi.getter + def duration(self) -> pulumi.Input[str]: + """ + Duration selected for the purchase of the product + """ + return pulumi.get(self, "duration") + + @duration.setter + def duration(self, value: pulumi.Input[str]): + pulumi.set(self, "duration", value) + + @property + @pulumi.getter(name="planCode") + def plan_code(self) -> pulumi.Input[str]: + """ + Identifier of the option offer + """ + return pulumi.get(self, "plan_code") + + @plan_code.setter + def plan_code(self, value: pulumi.Input[str]): + pulumi.set(self, "plan_code", value) + + @property + @pulumi.getter(name="pricingMode") + def pricing_mode(self) -> pulumi.Input[str]: + """ + Pricing mode selected for the purchase of the product + """ + return pulumi.get(self, "pricing_mode") + + @pricing_mode.setter + def pricing_mode(self, value: pulumi.Input[str]): + pulumi.set(self, "pricing_mode", value) + + @property + @pulumi.getter + def quantity(self) -> pulumi.Input[float]: + """ + Quantity of product desired + """ + return pulumi.get(self, "quantity") + + @quantity.setter + def quantity(self, value: pulumi.Input[float]): + pulumi.set(self, "quantity", value) + + @property + @pulumi.getter + def configurations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanOptionConfigurationArgs']]]]: + return pulumi.get(self, "configurations") + + @configurations.setter + def configurations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanOptionConfigurationArgs']]]]): + pulumi.set(self, "configurations", value) + + +@pulumi.input_type +class ServerPlanOptionConfigurationArgs: + def __init__(__self__, *, + label: pulumi.Input[str], + value: pulumi.Input[str]): + """ + :param pulumi.Input[str] label: Label for your configuration item + :param pulumi.Input[str] value: Value or resource URL on API.OVH.COM of your configuration item + """ + pulumi.set(__self__, "label", label) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def label(self) -> pulumi.Input[str]: + """ + Label for your configuration item + """ + return pulumi.get(self, "label") + + @label.setter + def label(self, value: pulumi.Input[str]): + pulumi.set(self, "label", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + Value or resource URL on API.OVH.COM of your configuration item + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class ServerUserMetadataArgs: + def __init__(__self__, *, + key: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None): + if key is not None: + pulumi.set(__self__, "key", key) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def key(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "key") + + @key.setter + def key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + diff --git a/sdk/python/pulumi_ovh/dedicated/get_server_boots.py b/sdk/python/pulumi_ovh/dedicated/get_server_boots.py index b87cfbb0..f1114ebe 100644 --- a/sdk/python/pulumi_ovh/dedicated/get_server_boots.py +++ b/sdk/python/pulumi_ovh/dedicated/get_server_boots.py @@ -101,7 +101,7 @@ def get_server_boots(boot_type: Optional[str] = None, ``` - :param str boot_type: Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + :param str boot_type: Filter the value of bootType property (harddisk, rescue, internal, network) :param str kernel: Filter the value of kernel property (iPXE script name) :param str service_name: The internal name of your dedicated server. """ @@ -139,7 +139,7 @@ def get_server_boots_output(boot_type: Optional[pulumi.Input[Optional[str]]] = N ``` - :param str boot_type: Filter the value of bootType property (harddisk, rescue, ipxeCustomerScript, internal, network) + :param str boot_type: Filter the value of bootType property (harddisk, rescue, internal, network) :param str kernel: Filter the value of kernel property (iPXE script name) :param str service_name: The internal name of your dedicated server. """ diff --git a/sdk/python/pulumi_ovh/dedicated/outputs.py b/sdk/python/pulumi_ovh/dedicated/outputs.py index 84175130..b566173d 100644 --- a/sdk/python/pulumi_ovh/dedicated/outputs.py +++ b/sdk/python/pulumi_ovh/dedicated/outputs.py @@ -11,9 +11,18 @@ from . import outputs __all__ = [ + 'ServerDetails', + 'ServerIam', 'ServerInstallTaskDetails', 'ServerInstallTaskUserMetadata', 'ServerNetworkingInterface', + 'ServerOrder', + 'ServerOrderDetail', + 'ServerPlan', + 'ServerPlanConfiguration', + 'ServerPlanOption', + 'ServerPlanOptionConfiguration', + 'ServerUserMetadata', 'GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult', 'GetServerSpecificationsHardwareDiskGroupResult', 'GetServerSpecificationsHardwareDiskGroupDefaultHardwareRaidSizeResult', @@ -43,6 +52,156 @@ 'GetServerSpecificationsNetworkVrackBandwidthResult', ] +@pulumi.output_type +class ServerDetails(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "customHostname": + suggest = "custom_hostname" + elif key == "diskGroupId": + suggest = "disk_group_id" + elif key == "noRaid": + suggest = "no_raid" + elif key == "softRaidDevices": + suggest = "soft_raid_devices" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ServerDetails. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ServerDetails.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ServerDetails.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + custom_hostname: Optional[str] = None, + disk_group_id: Optional[float] = None, + no_raid: Optional[bool] = None, + soft_raid_devices: Optional[float] = None): + """ + :param str custom_hostname: Personnal hostname to use in server reinstallation + :param float disk_group_id: Disk group id to process install on (only available for some templates) + :param bool no_raid: true if you want to install only on the first disk + :param float soft_raid_devices: Number of devices to use for system's software RAID + """ + if custom_hostname is not None: + pulumi.set(__self__, "custom_hostname", custom_hostname) + if disk_group_id is not None: + pulumi.set(__self__, "disk_group_id", disk_group_id) + if no_raid is not None: + pulumi.set(__self__, "no_raid", no_raid) + if soft_raid_devices is not None: + pulumi.set(__self__, "soft_raid_devices", soft_raid_devices) + + @property + @pulumi.getter(name="customHostname") + def custom_hostname(self) -> Optional[str]: + """ + Personnal hostname to use in server reinstallation + """ + return pulumi.get(self, "custom_hostname") + + @property + @pulumi.getter(name="diskGroupId") + def disk_group_id(self) -> Optional[float]: + """ + Disk group id to process install on (only available for some templates) + """ + return pulumi.get(self, "disk_group_id") + + @property + @pulumi.getter(name="noRaid") + def no_raid(self) -> Optional[bool]: + """ + true if you want to install only on the first disk + """ + return pulumi.get(self, "no_raid") + + @property + @pulumi.getter(name="softRaidDevices") + def soft_raid_devices(self) -> Optional[float]: + """ + Number of devices to use for system's software RAID + """ + return pulumi.get(self, "soft_raid_devices") + + +@pulumi.output_type +class ServerIam(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "displayName": + suggest = "display_name" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ServerIam. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ServerIam.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ServerIam.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + display_name: Optional[str] = None, + id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + urn: Optional[str] = None): + """ + :param str display_name: Resource display name + :param str id: Unique identifier of the resource in the IAM + :param Mapping[str, str] tags: Resource tags. Tags that were internally computed are prefixed with `ovh:` + :param str urn: URN of the private database, used when writing IAM policies + """ + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if id is not None: + pulumi.set(__self__, "id", id) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if urn is not None: + pulumi.set(__self__, "urn", urn) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[str]: + """ + Resource display name + """ + return pulumi.get(self, "display_name") + + @property + @pulumi.getter + def id(self) -> Optional[str]: + """ + Unique identifier of the resource in the IAM + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def tags(self) -> Optional[Mapping[str, str]]: + """ + Resource tags. Tags that were internally computed are prefixed with `ovh:` + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter + def urn(self) -> Optional[str]: + """ + URN of the private database, used when writing IAM policies + """ + return pulumi.get(self, "urn") + + @pulumi.output_type class ServerInstallTaskDetails(dict): @staticmethod @@ -54,10 +213,6 @@ def __key_warning(key: str): suggest = "disk_group_id" elif key == "noRaid": suggest = "no_raid" - elif key == "postInstallationScriptLink": - suggest = "post_installation_script_link" - elif key == "postInstallationScriptReturn": - suggest = "post_installation_script_return" elif key == "softRaidDevices": suggest = "soft_raid_devices" @@ -76,15 +231,11 @@ def __init__(__self__, *, custom_hostname: Optional[str] = None, disk_group_id: Optional[int] = None, no_raid: Optional[bool] = None, - post_installation_script_link: Optional[str] = None, - post_installation_script_return: Optional[str] = None, soft_raid_devices: Optional[int] = None): """ :param str custom_hostname: Set up the server using the provided hostname instead of the default hostname. :param int disk_group_id: Disk group id. :param bool no_raid: Set to true to disable RAID. - :param str post_installation_script_link: Indicate the URL where your postinstall customisation script is located. - :param str post_installation_script_return: Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. :param int soft_raid_devices: soft raid devices. """ if custom_hostname is not None: @@ -93,10 +244,6 @@ def __init__(__self__, *, pulumi.set(__self__, "disk_group_id", disk_group_id) if no_raid is not None: pulumi.set(__self__, "no_raid", no_raid) - if post_installation_script_link is not None: - pulumi.set(__self__, "post_installation_script_link", post_installation_script_link) - if post_installation_script_return is not None: - pulumi.set(__self__, "post_installation_script_return", post_installation_script_return) if soft_raid_devices is not None: pulumi.set(__self__, "soft_raid_devices", soft_raid_devices) @@ -124,22 +271,6 @@ def no_raid(self) -> Optional[bool]: """ return pulumi.get(self, "no_raid") - @property - @pulumi.getter(name="postInstallationScriptLink") - def post_installation_script_link(self) -> Optional[str]: - """ - Indicate the URL where your postinstall customisation script is located. - """ - return pulumi.get(self, "post_installation_script_link") - - @property - @pulumi.getter(name="postInstallationScriptReturn") - def post_installation_script_return(self) -> Optional[str]: - """ - Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - """ - return pulumi.get(self, "post_installation_script_return") - @property @pulumi.getter(name="softRaidDevices") def soft_raid_devices(self) -> Optional[int]: @@ -207,6 +338,388 @@ def type(self) -> str: return pulumi.get(self, "type") +@pulumi.output_type +class ServerOrder(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "expirationDate": + suggest = "expiration_date" + elif key == "orderId": + suggest = "order_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ServerOrder. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ServerOrder.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ServerOrder.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + date: Optional[str] = None, + details: Optional[Sequence['outputs.ServerOrderDetail']] = None, + expiration_date: Optional[str] = None, + order_id: Optional[float] = None): + """ + :param Sequence['ServerOrderDetailArgs'] details: Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + """ + if date is not None: + pulumi.set(__self__, "date", date) + if details is not None: + pulumi.set(__self__, "details", details) + if expiration_date is not None: + pulumi.set(__self__, "expiration_date", expiration_date) + if order_id is not None: + pulumi.set(__self__, "order_id", order_id) + + @property + @pulumi.getter + def date(self) -> Optional[str]: + return pulumi.get(self, "date") + + @property + @pulumi.getter + def details(self) -> Optional[Sequence['outputs.ServerOrderDetail']]: + """ + Details object when reinstalling server (see https://eu.api.ovh.com/console/?section=%2Fdedicated%2Fserver&branch=v1#post-/dedicated/server/-serviceName-/install/start) + """ + return pulumi.get(self, "details") + + @property + @pulumi.getter(name="expirationDate") + def expiration_date(self) -> Optional[str]: + return pulumi.get(self, "expiration_date") + + @property + @pulumi.getter(name="orderId") + def order_id(self) -> Optional[float]: + return pulumi.get(self, "order_id") + + +@pulumi.output_type +class ServerOrderDetail(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "detailType": + suggest = "detail_type" + elif key == "orderDetailId": + suggest = "order_detail_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ServerOrderDetail. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ServerOrderDetail.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ServerOrderDetail.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + description: Optional[str] = None, + detail_type: Optional[str] = None, + domain: Optional[str] = None, + order_detail_id: Optional[float] = None, + quantity: Optional[str] = None): + """ + :param str detail_type: Product type of item in order + """ + if description is not None: + pulumi.set(__self__, "description", description) + if detail_type is not None: + pulumi.set(__self__, "detail_type", detail_type) + if domain is not None: + pulumi.set(__self__, "domain", domain) + if order_detail_id is not None: + pulumi.set(__self__, "order_detail_id", order_detail_id) + if quantity is not None: + pulumi.set(__self__, "quantity", quantity) + + @property + @pulumi.getter + def description(self) -> Optional[str]: + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="detailType") + def detail_type(self) -> Optional[str]: + """ + Product type of item in order + """ + return pulumi.get(self, "detail_type") + + @property + @pulumi.getter + def domain(self) -> Optional[str]: + return pulumi.get(self, "domain") + + @property + @pulumi.getter(name="orderDetailId") + def order_detail_id(self) -> Optional[float]: + return pulumi.get(self, "order_detail_id") + + @property + @pulumi.getter + def quantity(self) -> Optional[str]: + return pulumi.get(self, "quantity") + + +@pulumi.output_type +class ServerPlan(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "planCode": + suggest = "plan_code" + elif key == "pricingMode": + suggest = "pricing_mode" + elif key == "itemId": + suggest = "item_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ServerPlan. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ServerPlan.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ServerPlan.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + duration: str, + plan_code: str, + pricing_mode: str, + configurations: Optional[Sequence['outputs.ServerPlanConfiguration']] = None, + item_id: Optional[float] = None, + quantity: Optional[float] = None): + """ + :param str duration: Duration selected for the purchase of the product + :param str plan_code: Identifier of the option offer + :param str pricing_mode: Pricing mode selected for the purchase of the product + :param float item_id: Cart item to be linked + :param float quantity: Quantity of product desired + """ + pulumi.set(__self__, "duration", duration) + pulumi.set(__self__, "plan_code", plan_code) + pulumi.set(__self__, "pricing_mode", pricing_mode) + if configurations is not None: + pulumi.set(__self__, "configurations", configurations) + if item_id is not None: + pulumi.set(__self__, "item_id", item_id) + if quantity is not None: + pulumi.set(__self__, "quantity", quantity) + + @property + @pulumi.getter + def duration(self) -> str: + """ + Duration selected for the purchase of the product + """ + return pulumi.get(self, "duration") + + @property + @pulumi.getter(name="planCode") + def plan_code(self) -> str: + """ + Identifier of the option offer + """ + return pulumi.get(self, "plan_code") + + @property + @pulumi.getter(name="pricingMode") + def pricing_mode(self) -> str: + """ + Pricing mode selected for the purchase of the product + """ + return pulumi.get(self, "pricing_mode") + + @property + @pulumi.getter + def configurations(self) -> Optional[Sequence['outputs.ServerPlanConfiguration']]: + return pulumi.get(self, "configurations") + + @property + @pulumi.getter(name="itemId") + def item_id(self) -> Optional[float]: + """ + Cart item to be linked + """ + return pulumi.get(self, "item_id") + + @property + @pulumi.getter + def quantity(self) -> Optional[float]: + """ + Quantity of product desired + """ + return pulumi.get(self, "quantity") + + +@pulumi.output_type +class ServerPlanConfiguration(dict): + def __init__(__self__, *, + label: str, + value: str): + """ + :param str label: Label for your configuration item + :param str value: Value or resource URL on API.OVH.COM of your configuration item + """ + pulumi.set(__self__, "label", label) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def label(self) -> str: + """ + Label for your configuration item + """ + return pulumi.get(self, "label") + + @property + @pulumi.getter + def value(self) -> str: + """ + Value or resource URL on API.OVH.COM of your configuration item + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class ServerPlanOption(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "planCode": + suggest = "plan_code" + elif key == "pricingMode": + suggest = "pricing_mode" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ServerPlanOption. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ServerPlanOption.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ServerPlanOption.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + duration: str, + plan_code: str, + pricing_mode: str, + quantity: float, + configurations: Optional[Sequence['outputs.ServerPlanOptionConfiguration']] = None): + """ + :param str duration: Duration selected for the purchase of the product + :param str plan_code: Identifier of the option offer + :param str pricing_mode: Pricing mode selected for the purchase of the product + :param float quantity: Quantity of product desired + """ + pulumi.set(__self__, "duration", duration) + pulumi.set(__self__, "plan_code", plan_code) + pulumi.set(__self__, "pricing_mode", pricing_mode) + pulumi.set(__self__, "quantity", quantity) + if configurations is not None: + pulumi.set(__self__, "configurations", configurations) + + @property + @pulumi.getter + def duration(self) -> str: + """ + Duration selected for the purchase of the product + """ + return pulumi.get(self, "duration") + + @property + @pulumi.getter(name="planCode") + def plan_code(self) -> str: + """ + Identifier of the option offer + """ + return pulumi.get(self, "plan_code") + + @property + @pulumi.getter(name="pricingMode") + def pricing_mode(self) -> str: + """ + Pricing mode selected for the purchase of the product + """ + return pulumi.get(self, "pricing_mode") + + @property + @pulumi.getter + def quantity(self) -> float: + """ + Quantity of product desired + """ + return pulumi.get(self, "quantity") + + @property + @pulumi.getter + def configurations(self) -> Optional[Sequence['outputs.ServerPlanOptionConfiguration']]: + return pulumi.get(self, "configurations") + + +@pulumi.output_type +class ServerPlanOptionConfiguration(dict): + def __init__(__self__, *, + label: str, + value: str): + """ + :param str label: Label for your configuration item + :param str value: Value or resource URL on API.OVH.COM of your configuration item + """ + pulumi.set(__self__, "label", label) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def label(self) -> str: + """ + Label for your configuration item + """ + return pulumi.get(self, "label") + + @property + @pulumi.getter + def value(self) -> str: + """ + Value or resource URL on API.OVH.COM of your configuration item + """ + return pulumi.get(self, "value") + + +@pulumi.output_type +class ServerUserMetadata(dict): + def __init__(__self__, *, + key: Optional[str] = None, + value: Optional[str] = None): + if key is not None: + pulumi.set(__self__, "key", key) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def key(self) -> Optional[str]: + return pulumi.get(self, "key") + + @property + @pulumi.getter + def value(self) -> Optional[str]: + return pulumi.get(self, "value") + + @pulumi.output_type class GetServerSpecificationsHardwareDefaultHardwareRaidSizeResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_ovh/dedicated/server.py b/sdk/python/pulumi_ovh/dedicated/server.py new file mode 100644 index 00000000..f10fc2df --- /dev/null +++ b/sdk/python/pulumi_ovh/dedicated/server.py @@ -0,0 +1,1339 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['ServerArgs', 'Server'] + +@pulumi.input_type +class ServerArgs: + def __init__(__self__, *, + ovh_subsidiary: pulumi.Input[str], + boot_id: Optional[pulumi.Input[float]] = None, + boot_script: Optional[pulumi.Input[str]] = None, + details: Optional[pulumi.Input['ServerDetailsArgs']] = None, + display_name: Optional[pulumi.Input[str]] = None, + monitoring: Optional[pulumi.Input[bool]] = None, + no_intervention: Optional[pulumi.Input[bool]] = None, + partition_scheme_name: Optional[pulumi.Input[str]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanOptionArgs']]]] = None, + plans: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanArgs']]]] = None, + rescue_mail: Optional[pulumi.Input[str]] = None, + rescue_ssh_key: Optional[pulumi.Input[str]] = None, + root_device: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + template_name: Optional[pulumi.Input[str]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input['ServerUserMetadataArgs']]]] = None): + """ + The set of arguments for constructing a Server resource. + :param pulumi.Input[str] ovh_subsidiary: OVH subsidiaries + :param pulumi.Input[float] boot_id: Boot id of the server + :param pulumi.Input[str] boot_script: Boot script of the server + :param pulumi.Input['ServerDetailsArgs'] details: A structure describing informations about installation custom + :param pulumi.Input[str] display_name: Resource display name + :param pulumi.Input[bool] monitoring: Icmp monitoring state + :param pulumi.Input[bool] no_intervention: Prevent datacenter intervention + :param pulumi.Input[str] partition_scheme_name: Partition scheme name + :param pulumi.Input[str] rescue_mail: Rescue mail of the server + :param pulumi.Input[str] rescue_ssh_key: Public SSH Key used in the rescue mode + :param pulumi.Input[str] root_device: Root device of the server + :param pulumi.Input[str] state: All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + :param pulumi.Input[str] template_name: Template name + :param pulumi.Input[Sequence[pulumi.Input['ServerUserMetadataArgs']]] user_metadatas: Metadata + """ + pulumi.set(__self__, "ovh_subsidiary", ovh_subsidiary) + if boot_id is not None: + pulumi.set(__self__, "boot_id", boot_id) + if boot_script is not None: + pulumi.set(__self__, "boot_script", boot_script) + if details is not None: + pulumi.set(__self__, "details", details) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if monitoring is not None: + pulumi.set(__self__, "monitoring", monitoring) + if no_intervention is not None: + pulumi.set(__self__, "no_intervention", no_intervention) + if partition_scheme_name is not None: + pulumi.set(__self__, "partition_scheme_name", partition_scheme_name) + if plan_options is not None: + pulumi.set(__self__, "plan_options", plan_options) + if plans is not None: + pulumi.set(__self__, "plans", plans) + if rescue_mail is not None: + pulumi.set(__self__, "rescue_mail", rescue_mail) + if rescue_ssh_key is not None: + pulumi.set(__self__, "rescue_ssh_key", rescue_ssh_key) + if root_device is not None: + pulumi.set(__self__, "root_device", root_device) + if state is not None: + pulumi.set(__self__, "state", state) + if template_name is not None: + pulumi.set(__self__, "template_name", template_name) + if user_metadatas is not None: + pulumi.set(__self__, "user_metadatas", user_metadatas) + + @property + @pulumi.getter(name="ovhSubsidiary") + def ovh_subsidiary(self) -> pulumi.Input[str]: + """ + OVH subsidiaries + """ + return pulumi.get(self, "ovh_subsidiary") + + @ovh_subsidiary.setter + def ovh_subsidiary(self, value: pulumi.Input[str]): + pulumi.set(self, "ovh_subsidiary", value) + + @property + @pulumi.getter(name="bootId") + def boot_id(self) -> Optional[pulumi.Input[float]]: + """ + Boot id of the server + """ + return pulumi.get(self, "boot_id") + + @boot_id.setter + def boot_id(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "boot_id", value) + + @property + @pulumi.getter(name="bootScript") + def boot_script(self) -> Optional[pulumi.Input[str]]: + """ + Boot script of the server + """ + return pulumi.get(self, "boot_script") + + @boot_script.setter + def boot_script(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "boot_script", value) + + @property + @pulumi.getter + def details(self) -> Optional[pulumi.Input['ServerDetailsArgs']]: + """ + A structure describing informations about installation custom + """ + return pulumi.get(self, "details") + + @details.setter + def details(self, value: Optional[pulumi.Input['ServerDetailsArgs']]): + pulumi.set(self, "details", value) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[str]]: + """ + Resource display name + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter + def monitoring(self) -> Optional[pulumi.Input[bool]]: + """ + Icmp monitoring state + """ + return pulumi.get(self, "monitoring") + + @monitoring.setter + def monitoring(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "monitoring", value) + + @property + @pulumi.getter(name="noIntervention") + def no_intervention(self) -> Optional[pulumi.Input[bool]]: + """ + Prevent datacenter intervention + """ + return pulumi.get(self, "no_intervention") + + @no_intervention.setter + def no_intervention(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "no_intervention", value) + + @property + @pulumi.getter(name="partitionSchemeName") + def partition_scheme_name(self) -> Optional[pulumi.Input[str]]: + """ + Partition scheme name + """ + return pulumi.get(self, "partition_scheme_name") + + @partition_scheme_name.setter + def partition_scheme_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "partition_scheme_name", value) + + @property + @pulumi.getter(name="planOptions") + def plan_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanOptionArgs']]]]: + return pulumi.get(self, "plan_options") + + @plan_options.setter + def plan_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanOptionArgs']]]]): + pulumi.set(self, "plan_options", value) + + @property + @pulumi.getter + def plans(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanArgs']]]]: + return pulumi.get(self, "plans") + + @plans.setter + def plans(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanArgs']]]]): + pulumi.set(self, "plans", value) + + @property + @pulumi.getter(name="rescueMail") + def rescue_mail(self) -> Optional[pulumi.Input[str]]: + """ + Rescue mail of the server + """ + return pulumi.get(self, "rescue_mail") + + @rescue_mail.setter + def rescue_mail(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rescue_mail", value) + + @property + @pulumi.getter(name="rescueSshKey") + def rescue_ssh_key(self) -> Optional[pulumi.Input[str]]: + """ + Public SSH Key used in the rescue mode + """ + return pulumi.get(self, "rescue_ssh_key") + + @rescue_ssh_key.setter + def rescue_ssh_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rescue_ssh_key", value) + + @property + @pulumi.getter(name="rootDevice") + def root_device(self) -> Optional[pulumi.Input[str]]: + """ + Root device of the server + """ + return pulumi.get(self, "root_device") + + @root_device.setter + def root_device(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "root_device", value) + + @property + @pulumi.getter + def state(self) -> Optional[pulumi.Input[str]]: + """ + All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + """ + return pulumi.get(self, "state") + + @state.setter + def state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state", value) + + @property + @pulumi.getter(name="templateName") + def template_name(self) -> Optional[pulumi.Input[str]]: + """ + Template name + """ + return pulumi.get(self, "template_name") + + @template_name.setter + def template_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "template_name", value) + + @property + @pulumi.getter(name="userMetadatas") + def user_metadatas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerUserMetadataArgs']]]]: + """ + Metadata + """ + return pulumi.get(self, "user_metadatas") + + @user_metadatas.setter + def user_metadatas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerUserMetadataArgs']]]]): + pulumi.set(self, "user_metadatas", value) + + +@pulumi.input_type +class _ServerState: + def __init__(__self__, *, + availability_zone: Optional[pulumi.Input[str]] = None, + boot_id: Optional[pulumi.Input[float]] = None, + boot_script: Optional[pulumi.Input[str]] = None, + commercial_range: Optional[pulumi.Input[str]] = None, + datacenter: Optional[pulumi.Input[str]] = None, + details: Optional[pulumi.Input['ServerDetailsArgs']] = None, + display_name: Optional[pulumi.Input[str]] = None, + iam: Optional[pulumi.Input['ServerIamArgs']] = None, + ip: Optional[pulumi.Input[str]] = None, + link_speed: Optional[pulumi.Input[float]] = None, + monitoring: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + new_upgrade_system: Optional[pulumi.Input[bool]] = None, + no_intervention: Optional[pulumi.Input[bool]] = None, + order: Optional[pulumi.Input['ServerOrderArgs']] = None, + os: Optional[pulumi.Input[str]] = None, + ovh_subsidiary: Optional[pulumi.Input[str]] = None, + partition_scheme_name: Optional[pulumi.Input[str]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanOptionArgs']]]] = None, + plans: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanArgs']]]] = None, + power_state: Optional[pulumi.Input[str]] = None, + professional_use: Optional[pulumi.Input[bool]] = None, + rack: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + rescue_mail: Optional[pulumi.Input[str]] = None, + rescue_ssh_key: Optional[pulumi.Input[str]] = None, + reverse: Optional[pulumi.Input[str]] = None, + root_device: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[float]] = None, + service_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + support_level: Optional[pulumi.Input[str]] = None, + template_name: Optional[pulumi.Input[str]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input['ServerUserMetadataArgs']]]] = None): + """ + Input properties used for looking up and filtering Server resources. + :param pulumi.Input[str] availability_zone: Dedicated AZ localisation + :param pulumi.Input[float] boot_id: Boot id of the server + :param pulumi.Input[str] boot_script: Boot script of the server + :param pulumi.Input[str] commercial_range: Dedicated server commercial range + :param pulumi.Input[str] datacenter: Dedicated datacenter localisation (bhs1,bhs2,...) + :param pulumi.Input['ServerDetailsArgs'] details: A structure describing informations about installation custom + :param pulumi.Input[str] display_name: Resource display name + :param pulumi.Input['ServerIamArgs'] iam: IAM resource information + :param pulumi.Input[str] ip: Dedicated server ip (IPv4) + :param pulumi.Input[float] link_speed: Link speed of the server + :param pulumi.Input[bool] monitoring: Icmp monitoring state + :param pulumi.Input[str] name: Dedicated server name + :param pulumi.Input[bool] no_intervention: Prevent datacenter intervention + :param pulumi.Input['ServerOrderArgs'] order: Details about an Order + :param pulumi.Input[str] os: Operating system + :param pulumi.Input[str] ovh_subsidiary: OVH subsidiaries + :param pulumi.Input[str] partition_scheme_name: Partition scheme name + :param pulumi.Input[str] power_state: Power state of the server (poweron, poweroff) + :param pulumi.Input[bool] professional_use: Does this server have professional use option + :param pulumi.Input[str] rack: Rack id of the server + :param pulumi.Input[str] region: Dedicated region localisation + :param pulumi.Input[str] rescue_mail: Rescue mail of the server + :param pulumi.Input[str] rescue_ssh_key: Public SSH Key used in the rescue mode + :param pulumi.Input[str] reverse: Dedicated server reverse + :param pulumi.Input[str] root_device: Root device of the server + :param pulumi.Input[float] server_id: Server id + :param pulumi.Input[str] service_name: The service_name of your dedicated server + :param pulumi.Input[str] state: All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + :param pulumi.Input[str] support_level: Dedicated server support level (critical, fastpath, gs, pro) + :param pulumi.Input[str] template_name: Template name + :param pulumi.Input[Sequence[pulumi.Input['ServerUserMetadataArgs']]] user_metadatas: Metadata + """ + if availability_zone is not None: + pulumi.set(__self__, "availability_zone", availability_zone) + if boot_id is not None: + pulumi.set(__self__, "boot_id", boot_id) + if boot_script is not None: + pulumi.set(__self__, "boot_script", boot_script) + if commercial_range is not None: + pulumi.set(__self__, "commercial_range", commercial_range) + if datacenter is not None: + pulumi.set(__self__, "datacenter", datacenter) + if details is not None: + pulumi.set(__self__, "details", details) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + if iam is not None: + pulumi.set(__self__, "iam", iam) + if ip is not None: + pulumi.set(__self__, "ip", ip) + if link_speed is not None: + pulumi.set(__self__, "link_speed", link_speed) + if monitoring is not None: + pulumi.set(__self__, "monitoring", monitoring) + if name is not None: + pulumi.set(__self__, "name", name) + if new_upgrade_system is not None: + pulumi.set(__self__, "new_upgrade_system", new_upgrade_system) + if no_intervention is not None: + pulumi.set(__self__, "no_intervention", no_intervention) + if order is not None: + pulumi.set(__self__, "order", order) + if os is not None: + pulumi.set(__self__, "os", os) + if ovh_subsidiary is not None: + pulumi.set(__self__, "ovh_subsidiary", ovh_subsidiary) + if partition_scheme_name is not None: + pulumi.set(__self__, "partition_scheme_name", partition_scheme_name) + if plan_options is not None: + pulumi.set(__self__, "plan_options", plan_options) + if plans is not None: + pulumi.set(__self__, "plans", plans) + if power_state is not None: + pulumi.set(__self__, "power_state", power_state) + if professional_use is not None: + pulumi.set(__self__, "professional_use", professional_use) + if rack is not None: + pulumi.set(__self__, "rack", rack) + if region is not None: + pulumi.set(__self__, "region", region) + if rescue_mail is not None: + pulumi.set(__self__, "rescue_mail", rescue_mail) + if rescue_ssh_key is not None: + pulumi.set(__self__, "rescue_ssh_key", rescue_ssh_key) + if reverse is not None: + pulumi.set(__self__, "reverse", reverse) + if root_device is not None: + pulumi.set(__self__, "root_device", root_device) + if server_id is not None: + pulumi.set(__self__, "server_id", server_id) + if service_name is not None: + pulumi.set(__self__, "service_name", service_name) + if state is not None: + pulumi.set(__self__, "state", state) + if support_level is not None: + pulumi.set(__self__, "support_level", support_level) + if template_name is not None: + pulumi.set(__self__, "template_name", template_name) + if user_metadatas is not None: + pulumi.set(__self__, "user_metadatas", user_metadatas) + + @property + @pulumi.getter(name="availabilityZone") + def availability_zone(self) -> Optional[pulumi.Input[str]]: + """ + Dedicated AZ localisation + """ + return pulumi.get(self, "availability_zone") + + @availability_zone.setter + def availability_zone(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "availability_zone", value) + + @property + @pulumi.getter(name="bootId") + def boot_id(self) -> Optional[pulumi.Input[float]]: + """ + Boot id of the server + """ + return pulumi.get(self, "boot_id") + + @boot_id.setter + def boot_id(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "boot_id", value) + + @property + @pulumi.getter(name="bootScript") + def boot_script(self) -> Optional[pulumi.Input[str]]: + """ + Boot script of the server + """ + return pulumi.get(self, "boot_script") + + @boot_script.setter + def boot_script(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "boot_script", value) + + @property + @pulumi.getter(name="commercialRange") + def commercial_range(self) -> Optional[pulumi.Input[str]]: + """ + Dedicated server commercial range + """ + return pulumi.get(self, "commercial_range") + + @commercial_range.setter + def commercial_range(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "commercial_range", value) + + @property + @pulumi.getter + def datacenter(self) -> Optional[pulumi.Input[str]]: + """ + Dedicated datacenter localisation (bhs1,bhs2,...) + """ + return pulumi.get(self, "datacenter") + + @datacenter.setter + def datacenter(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "datacenter", value) + + @property + @pulumi.getter + def details(self) -> Optional[pulumi.Input['ServerDetailsArgs']]: + """ + A structure describing informations about installation custom + """ + return pulumi.get(self, "details") + + @details.setter + def details(self, value: Optional[pulumi.Input['ServerDetailsArgs']]): + pulumi.set(self, "details", value) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[str]]: + """ + Resource display name + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "display_name", value) + + @property + @pulumi.getter + def iam(self) -> Optional[pulumi.Input['ServerIamArgs']]: + """ + IAM resource information + """ + return pulumi.get(self, "iam") + + @iam.setter + def iam(self, value: Optional[pulumi.Input['ServerIamArgs']]): + pulumi.set(self, "iam", value) + + @property + @pulumi.getter + def ip(self) -> Optional[pulumi.Input[str]]: + """ + Dedicated server ip (IPv4) + """ + return pulumi.get(self, "ip") + + @ip.setter + def ip(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ip", value) + + @property + @pulumi.getter(name="linkSpeed") + def link_speed(self) -> Optional[pulumi.Input[float]]: + """ + Link speed of the server + """ + return pulumi.get(self, "link_speed") + + @link_speed.setter + def link_speed(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "link_speed", value) + + @property + @pulumi.getter + def monitoring(self) -> Optional[pulumi.Input[bool]]: + """ + Icmp monitoring state + """ + return pulumi.get(self, "monitoring") + + @monitoring.setter + def monitoring(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "monitoring", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Dedicated server name + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="newUpgradeSystem") + def new_upgrade_system(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "new_upgrade_system") + + @new_upgrade_system.setter + def new_upgrade_system(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "new_upgrade_system", value) + + @property + @pulumi.getter(name="noIntervention") + def no_intervention(self) -> Optional[pulumi.Input[bool]]: + """ + Prevent datacenter intervention + """ + return pulumi.get(self, "no_intervention") + + @no_intervention.setter + def no_intervention(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "no_intervention", value) + + @property + @pulumi.getter + def order(self) -> Optional[pulumi.Input['ServerOrderArgs']]: + """ + Details about an Order + """ + return pulumi.get(self, "order") + + @order.setter + def order(self, value: Optional[pulumi.Input['ServerOrderArgs']]): + pulumi.set(self, "order", value) + + @property + @pulumi.getter + def os(self) -> Optional[pulumi.Input[str]]: + """ + Operating system + """ + return pulumi.get(self, "os") + + @os.setter + def os(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "os", value) + + @property + @pulumi.getter(name="ovhSubsidiary") + def ovh_subsidiary(self) -> Optional[pulumi.Input[str]]: + """ + OVH subsidiaries + """ + return pulumi.get(self, "ovh_subsidiary") + + @ovh_subsidiary.setter + def ovh_subsidiary(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "ovh_subsidiary", value) + + @property + @pulumi.getter(name="partitionSchemeName") + def partition_scheme_name(self) -> Optional[pulumi.Input[str]]: + """ + Partition scheme name + """ + return pulumi.get(self, "partition_scheme_name") + + @partition_scheme_name.setter + def partition_scheme_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "partition_scheme_name", value) + + @property + @pulumi.getter(name="planOptions") + def plan_options(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanOptionArgs']]]]: + return pulumi.get(self, "plan_options") + + @plan_options.setter + def plan_options(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanOptionArgs']]]]): + pulumi.set(self, "plan_options", value) + + @property + @pulumi.getter + def plans(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanArgs']]]]: + return pulumi.get(self, "plans") + + @plans.setter + def plans(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerPlanArgs']]]]): + pulumi.set(self, "plans", value) + + @property + @pulumi.getter(name="powerState") + def power_state(self) -> Optional[pulumi.Input[str]]: + """ + Power state of the server (poweron, poweroff) + """ + return pulumi.get(self, "power_state") + + @power_state.setter + def power_state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "power_state", value) + + @property + @pulumi.getter(name="professionalUse") + def professional_use(self) -> Optional[pulumi.Input[bool]]: + """ + Does this server have professional use option + """ + return pulumi.get(self, "professional_use") + + @professional_use.setter + def professional_use(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "professional_use", value) + + @property + @pulumi.getter + def rack(self) -> Optional[pulumi.Input[str]]: + """ + Rack id of the server + """ + return pulumi.get(self, "rack") + + @rack.setter + def rack(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rack", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + Dedicated region localisation + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter(name="rescueMail") + def rescue_mail(self) -> Optional[pulumi.Input[str]]: + """ + Rescue mail of the server + """ + return pulumi.get(self, "rescue_mail") + + @rescue_mail.setter + def rescue_mail(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rescue_mail", value) + + @property + @pulumi.getter(name="rescueSshKey") + def rescue_ssh_key(self) -> Optional[pulumi.Input[str]]: + """ + Public SSH Key used in the rescue mode + """ + return pulumi.get(self, "rescue_ssh_key") + + @rescue_ssh_key.setter + def rescue_ssh_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rescue_ssh_key", value) + + @property + @pulumi.getter + def reverse(self) -> Optional[pulumi.Input[str]]: + """ + Dedicated server reverse + """ + return pulumi.get(self, "reverse") + + @reverse.setter + def reverse(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "reverse", value) + + @property + @pulumi.getter(name="rootDevice") + def root_device(self) -> Optional[pulumi.Input[str]]: + """ + Root device of the server + """ + return pulumi.get(self, "root_device") + + @root_device.setter + def root_device(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "root_device", value) + + @property + @pulumi.getter(name="serverId") + def server_id(self) -> Optional[pulumi.Input[float]]: + """ + Server id + """ + return pulumi.get(self, "server_id") + + @server_id.setter + def server_id(self, value: Optional[pulumi.Input[float]]): + pulumi.set(self, "server_id", value) + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> Optional[pulumi.Input[str]]: + """ + The service_name of your dedicated server + """ + return pulumi.get(self, "service_name") + + @service_name.setter + def service_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_name", value) + + @property + @pulumi.getter + def state(self) -> Optional[pulumi.Input[str]]: + """ + All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + """ + return pulumi.get(self, "state") + + @state.setter + def state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state", value) + + @property + @pulumi.getter(name="supportLevel") + def support_level(self) -> Optional[pulumi.Input[str]]: + """ + Dedicated server support level (critical, fastpath, gs, pro) + """ + return pulumi.get(self, "support_level") + + @support_level.setter + def support_level(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "support_level", value) + + @property + @pulumi.getter(name="templateName") + def template_name(self) -> Optional[pulumi.Input[str]]: + """ + Template name + """ + return pulumi.get(self, "template_name") + + @template_name.setter + def template_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "template_name", value) + + @property + @pulumi.getter(name="userMetadatas") + def user_metadatas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServerUserMetadataArgs']]]]: + """ + Metadata + """ + return pulumi.get(self, "user_metadatas") + + @user_metadatas.setter + def user_metadatas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServerUserMetadataArgs']]]]): + pulumi.set(self, "user_metadatas", value) + + +class Server(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + boot_id: Optional[pulumi.Input[float]] = None, + boot_script: Optional[pulumi.Input[str]] = None, + details: Optional[pulumi.Input[Union['ServerDetailsArgs', 'ServerDetailsArgsDict']]] = None, + display_name: Optional[pulumi.Input[str]] = None, + monitoring: Optional[pulumi.Input[bool]] = None, + no_intervention: Optional[pulumi.Input[bool]] = None, + ovh_subsidiary: Optional[pulumi.Input[str]] = None, + partition_scheme_name: Optional[pulumi.Input[str]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPlanOptionArgs', 'ServerPlanOptionArgsDict']]]]] = None, + plans: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPlanArgs', 'ServerPlanArgsDict']]]]] = None, + rescue_mail: Optional[pulumi.Input[str]] = None, + rescue_ssh_key: Optional[pulumi.Input[str]] = None, + root_device: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + template_name: Optional[pulumi.Input[str]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerUserMetadataArgs', 'ServerUserMetadataArgsDict']]]]] = None, + __props__=None): + """ + ## Import + + Dedicated servers can be imported using the `service_name`, e.g.: + + bash + + ```sh + $ pulumi import ovh:Dedicated/server:Server server service_name + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[float] boot_id: Boot id of the server + :param pulumi.Input[str] boot_script: Boot script of the server + :param pulumi.Input[Union['ServerDetailsArgs', 'ServerDetailsArgsDict']] details: A structure describing informations about installation custom + :param pulumi.Input[str] display_name: Resource display name + :param pulumi.Input[bool] monitoring: Icmp monitoring state + :param pulumi.Input[bool] no_intervention: Prevent datacenter intervention + :param pulumi.Input[str] ovh_subsidiary: OVH subsidiaries + :param pulumi.Input[str] partition_scheme_name: Partition scheme name + :param pulumi.Input[str] rescue_mail: Rescue mail of the server + :param pulumi.Input[str] rescue_ssh_key: Public SSH Key used in the rescue mode + :param pulumi.Input[str] root_device: Root device of the server + :param pulumi.Input[str] state: All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + :param pulumi.Input[str] template_name: Template name + :param pulumi.Input[Sequence[pulumi.Input[Union['ServerUserMetadataArgs', 'ServerUserMetadataArgsDict']]]] user_metadatas: Metadata + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ServerArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Import + + Dedicated servers can be imported using the `service_name`, e.g.: + + bash + + ```sh + $ pulumi import ovh:Dedicated/server:Server server service_name + ``` + + :param str resource_name: The name of the resource. + :param ServerArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ServerArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + boot_id: Optional[pulumi.Input[float]] = None, + boot_script: Optional[pulumi.Input[str]] = None, + details: Optional[pulumi.Input[Union['ServerDetailsArgs', 'ServerDetailsArgsDict']]] = None, + display_name: Optional[pulumi.Input[str]] = None, + monitoring: Optional[pulumi.Input[bool]] = None, + no_intervention: Optional[pulumi.Input[bool]] = None, + ovh_subsidiary: Optional[pulumi.Input[str]] = None, + partition_scheme_name: Optional[pulumi.Input[str]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPlanOptionArgs', 'ServerPlanOptionArgsDict']]]]] = None, + plans: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPlanArgs', 'ServerPlanArgsDict']]]]] = None, + rescue_mail: Optional[pulumi.Input[str]] = None, + rescue_ssh_key: Optional[pulumi.Input[str]] = None, + root_device: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + template_name: Optional[pulumi.Input[str]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerUserMetadataArgs', 'ServerUserMetadataArgsDict']]]]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ServerArgs.__new__(ServerArgs) + + __props__.__dict__["boot_id"] = boot_id + __props__.__dict__["boot_script"] = boot_script + __props__.__dict__["details"] = details + __props__.__dict__["display_name"] = display_name + __props__.__dict__["monitoring"] = monitoring + __props__.__dict__["no_intervention"] = no_intervention + if ovh_subsidiary is None and not opts.urn: + raise TypeError("Missing required property 'ovh_subsidiary'") + __props__.__dict__["ovh_subsidiary"] = ovh_subsidiary + __props__.__dict__["partition_scheme_name"] = partition_scheme_name + __props__.__dict__["plan_options"] = plan_options + __props__.__dict__["plans"] = plans + __props__.__dict__["rescue_mail"] = rescue_mail + __props__.__dict__["rescue_ssh_key"] = rescue_ssh_key + __props__.__dict__["root_device"] = root_device + __props__.__dict__["state"] = state + __props__.__dict__["template_name"] = template_name + __props__.__dict__["user_metadatas"] = user_metadatas + __props__.__dict__["availability_zone"] = None + __props__.__dict__["commercial_range"] = None + __props__.__dict__["datacenter"] = None + __props__.__dict__["iam"] = None + __props__.__dict__["ip"] = None + __props__.__dict__["link_speed"] = None + __props__.__dict__["name"] = None + __props__.__dict__["new_upgrade_system"] = None + __props__.__dict__["order"] = None + __props__.__dict__["os"] = None + __props__.__dict__["power_state"] = None + __props__.__dict__["professional_use"] = None + __props__.__dict__["rack"] = None + __props__.__dict__["region"] = None + __props__.__dict__["reverse"] = None + __props__.__dict__["server_id"] = None + __props__.__dict__["service_name"] = None + __props__.__dict__["support_level"] = None + super(Server, __self__).__init__( + 'ovh:Dedicated/server:Server', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + availability_zone: Optional[pulumi.Input[str]] = None, + boot_id: Optional[pulumi.Input[float]] = None, + boot_script: Optional[pulumi.Input[str]] = None, + commercial_range: Optional[pulumi.Input[str]] = None, + datacenter: Optional[pulumi.Input[str]] = None, + details: Optional[pulumi.Input[Union['ServerDetailsArgs', 'ServerDetailsArgsDict']]] = None, + display_name: Optional[pulumi.Input[str]] = None, + iam: Optional[pulumi.Input[Union['ServerIamArgs', 'ServerIamArgsDict']]] = None, + ip: Optional[pulumi.Input[str]] = None, + link_speed: Optional[pulumi.Input[float]] = None, + monitoring: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + new_upgrade_system: Optional[pulumi.Input[bool]] = None, + no_intervention: Optional[pulumi.Input[bool]] = None, + order: Optional[pulumi.Input[Union['ServerOrderArgs', 'ServerOrderArgsDict']]] = None, + os: Optional[pulumi.Input[str]] = None, + ovh_subsidiary: Optional[pulumi.Input[str]] = None, + partition_scheme_name: Optional[pulumi.Input[str]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPlanOptionArgs', 'ServerPlanOptionArgsDict']]]]] = None, + plans: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerPlanArgs', 'ServerPlanArgsDict']]]]] = None, + power_state: Optional[pulumi.Input[str]] = None, + professional_use: Optional[pulumi.Input[bool]] = None, + rack: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + rescue_mail: Optional[pulumi.Input[str]] = None, + rescue_ssh_key: Optional[pulumi.Input[str]] = None, + reverse: Optional[pulumi.Input[str]] = None, + root_device: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[float]] = None, + service_name: Optional[pulumi.Input[str]] = None, + state: Optional[pulumi.Input[str]] = None, + support_level: Optional[pulumi.Input[str]] = None, + template_name: Optional[pulumi.Input[str]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerUserMetadataArgs', 'ServerUserMetadataArgsDict']]]]] = None) -> 'Server': + """ + Get an existing Server resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] availability_zone: Dedicated AZ localisation + :param pulumi.Input[float] boot_id: Boot id of the server + :param pulumi.Input[str] boot_script: Boot script of the server + :param pulumi.Input[str] commercial_range: Dedicated server commercial range + :param pulumi.Input[str] datacenter: Dedicated datacenter localisation (bhs1,bhs2,...) + :param pulumi.Input[Union['ServerDetailsArgs', 'ServerDetailsArgsDict']] details: A structure describing informations about installation custom + :param pulumi.Input[str] display_name: Resource display name + :param pulumi.Input[Union['ServerIamArgs', 'ServerIamArgsDict']] iam: IAM resource information + :param pulumi.Input[str] ip: Dedicated server ip (IPv4) + :param pulumi.Input[float] link_speed: Link speed of the server + :param pulumi.Input[bool] monitoring: Icmp monitoring state + :param pulumi.Input[str] name: Dedicated server name + :param pulumi.Input[bool] no_intervention: Prevent datacenter intervention + :param pulumi.Input[Union['ServerOrderArgs', 'ServerOrderArgsDict']] order: Details about an Order + :param pulumi.Input[str] os: Operating system + :param pulumi.Input[str] ovh_subsidiary: OVH subsidiaries + :param pulumi.Input[str] partition_scheme_name: Partition scheme name + :param pulumi.Input[str] power_state: Power state of the server (poweron, poweroff) + :param pulumi.Input[bool] professional_use: Does this server have professional use option + :param pulumi.Input[str] rack: Rack id of the server + :param pulumi.Input[str] region: Dedicated region localisation + :param pulumi.Input[str] rescue_mail: Rescue mail of the server + :param pulumi.Input[str] rescue_ssh_key: Public SSH Key used in the rescue mode + :param pulumi.Input[str] reverse: Dedicated server reverse + :param pulumi.Input[str] root_device: Root device of the server + :param pulumi.Input[float] server_id: Server id + :param pulumi.Input[str] service_name: The service_name of your dedicated server + :param pulumi.Input[str] state: All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + :param pulumi.Input[str] support_level: Dedicated server support level (critical, fastpath, gs, pro) + :param pulumi.Input[str] template_name: Template name + :param pulumi.Input[Sequence[pulumi.Input[Union['ServerUserMetadataArgs', 'ServerUserMetadataArgsDict']]]] user_metadatas: Metadata + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ServerState.__new__(_ServerState) + + __props__.__dict__["availability_zone"] = availability_zone + __props__.__dict__["boot_id"] = boot_id + __props__.__dict__["boot_script"] = boot_script + __props__.__dict__["commercial_range"] = commercial_range + __props__.__dict__["datacenter"] = datacenter + __props__.__dict__["details"] = details + __props__.__dict__["display_name"] = display_name + __props__.__dict__["iam"] = iam + __props__.__dict__["ip"] = ip + __props__.__dict__["link_speed"] = link_speed + __props__.__dict__["monitoring"] = monitoring + __props__.__dict__["name"] = name + __props__.__dict__["new_upgrade_system"] = new_upgrade_system + __props__.__dict__["no_intervention"] = no_intervention + __props__.__dict__["order"] = order + __props__.__dict__["os"] = os + __props__.__dict__["ovh_subsidiary"] = ovh_subsidiary + __props__.__dict__["partition_scheme_name"] = partition_scheme_name + __props__.__dict__["plan_options"] = plan_options + __props__.__dict__["plans"] = plans + __props__.__dict__["power_state"] = power_state + __props__.__dict__["professional_use"] = professional_use + __props__.__dict__["rack"] = rack + __props__.__dict__["region"] = region + __props__.__dict__["rescue_mail"] = rescue_mail + __props__.__dict__["rescue_ssh_key"] = rescue_ssh_key + __props__.__dict__["reverse"] = reverse + __props__.__dict__["root_device"] = root_device + __props__.__dict__["server_id"] = server_id + __props__.__dict__["service_name"] = service_name + __props__.__dict__["state"] = state + __props__.__dict__["support_level"] = support_level + __props__.__dict__["template_name"] = template_name + __props__.__dict__["user_metadatas"] = user_metadatas + return Server(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="availabilityZone") + def availability_zone(self) -> pulumi.Output[str]: + """ + Dedicated AZ localisation + """ + return pulumi.get(self, "availability_zone") + + @property + @pulumi.getter(name="bootId") + def boot_id(self) -> pulumi.Output[float]: + """ + Boot id of the server + """ + return pulumi.get(self, "boot_id") + + @property + @pulumi.getter(name="bootScript") + def boot_script(self) -> pulumi.Output[str]: + """ + Boot script of the server + """ + return pulumi.get(self, "boot_script") + + @property + @pulumi.getter(name="commercialRange") + def commercial_range(self) -> pulumi.Output[str]: + """ + Dedicated server commercial range + """ + return pulumi.get(self, "commercial_range") + + @property + @pulumi.getter + def datacenter(self) -> pulumi.Output[str]: + """ + Dedicated datacenter localisation (bhs1,bhs2,...) + """ + return pulumi.get(self, "datacenter") + + @property + @pulumi.getter + def details(self) -> pulumi.Output[Optional['outputs.ServerDetails']]: + """ + A structure describing informations about installation custom + """ + return pulumi.get(self, "details") + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> pulumi.Output[str]: + """ + Resource display name + """ + return pulumi.get(self, "display_name") + + @property + @pulumi.getter + def iam(self) -> pulumi.Output['outputs.ServerIam']: + """ + IAM resource information + """ + return pulumi.get(self, "iam") + + @property + @pulumi.getter + def ip(self) -> pulumi.Output[str]: + """ + Dedicated server ip (IPv4) + """ + return pulumi.get(self, "ip") + + @property + @pulumi.getter(name="linkSpeed") + def link_speed(self) -> pulumi.Output[float]: + """ + Link speed of the server + """ + return pulumi.get(self, "link_speed") + + @property + @pulumi.getter + def monitoring(self) -> pulumi.Output[bool]: + """ + Icmp monitoring state + """ + return pulumi.get(self, "monitoring") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Dedicated server name + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="newUpgradeSystem") + def new_upgrade_system(self) -> pulumi.Output[bool]: + return pulumi.get(self, "new_upgrade_system") + + @property + @pulumi.getter(name="noIntervention") + def no_intervention(self) -> pulumi.Output[bool]: + """ + Prevent datacenter intervention + """ + return pulumi.get(self, "no_intervention") + + @property + @pulumi.getter + def order(self) -> pulumi.Output['outputs.ServerOrder']: + """ + Details about an Order + """ + return pulumi.get(self, "order") + + @property + @pulumi.getter + def os(self) -> pulumi.Output[str]: + """ + Operating system + """ + return pulumi.get(self, "os") + + @property + @pulumi.getter(name="ovhSubsidiary") + def ovh_subsidiary(self) -> pulumi.Output[str]: + """ + OVH subsidiaries + """ + return pulumi.get(self, "ovh_subsidiary") + + @property + @pulumi.getter(name="partitionSchemeName") + def partition_scheme_name(self) -> pulumi.Output[Optional[str]]: + """ + Partition scheme name + """ + return pulumi.get(self, "partition_scheme_name") + + @property + @pulumi.getter(name="planOptions") + def plan_options(self) -> pulumi.Output[Sequence['outputs.ServerPlanOption']]: + return pulumi.get(self, "plan_options") + + @property + @pulumi.getter + def plans(self) -> pulumi.Output[Sequence['outputs.ServerPlan']]: + return pulumi.get(self, "plans") + + @property + @pulumi.getter(name="powerState") + def power_state(self) -> pulumi.Output[str]: + """ + Power state of the server (poweron, poweroff) + """ + return pulumi.get(self, "power_state") + + @property + @pulumi.getter(name="professionalUse") + def professional_use(self) -> pulumi.Output[bool]: + """ + Does this server have professional use option + """ + return pulumi.get(self, "professional_use") + + @property + @pulumi.getter + def rack(self) -> pulumi.Output[str]: + """ + Rack id of the server + """ + return pulumi.get(self, "rack") + + @property + @pulumi.getter + def region(self) -> pulumi.Output[str]: + """ + Dedicated region localisation + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter(name="rescueMail") + def rescue_mail(self) -> pulumi.Output[str]: + """ + Rescue mail of the server + """ + return pulumi.get(self, "rescue_mail") + + @property + @pulumi.getter(name="rescueSshKey") + def rescue_ssh_key(self) -> pulumi.Output[str]: + """ + Public SSH Key used in the rescue mode + """ + return pulumi.get(self, "rescue_ssh_key") + + @property + @pulumi.getter + def reverse(self) -> pulumi.Output[str]: + """ + Dedicated server reverse + """ + return pulumi.get(self, "reverse") + + @property + @pulumi.getter(name="rootDevice") + def root_device(self) -> pulumi.Output[str]: + """ + Root device of the server + """ + return pulumi.get(self, "root_device") + + @property + @pulumi.getter(name="serverId") + def server_id(self) -> pulumi.Output[float]: + """ + Server id + """ + return pulumi.get(self, "server_id") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Output[str]: + """ + The service_name of your dedicated server + """ + return pulumi.get(self, "service_name") + + @property + @pulumi.getter + def state(self) -> pulumi.Output[str]: + """ + All states a Dedicated can be in (error, hacked, hackedBlocked, ok) + """ + return pulumi.get(self, "state") + + @property + @pulumi.getter(name="supportLevel") + def support_level(self) -> pulumi.Output[str]: + """ + Dedicated server support level (critical, fastpath, gs, pro) + """ + return pulumi.get(self, "support_level") + + @property + @pulumi.getter(name="templateName") + def template_name(self) -> pulumi.Output[Optional[str]]: + """ + Template name + """ + return pulumi.get(self, "template_name") + + @property + @pulumi.getter(name="userMetadatas") + def user_metadatas(self) -> pulumi.Output[Optional[Sequence['outputs.ServerUserMetadata']]]: + """ + Metadata + """ + return pulumi.get(self, "user_metadatas") + diff --git a/sdk/python/pulumi_ovh/dedicated/server_install_task.py b/sdk/python/pulumi_ovh/dedicated/server_install_task.py index 622edc34..5b42eb5a 100644 --- a/sdk/python/pulumi_ovh/dedicated/server_install_task.py +++ b/sdk/python/pulumi_ovh/dedicated/server_install_task.py @@ -321,11 +321,11 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, bootid_on_destroy: Optional[pulumi.Input[int]] = None, - details: Optional[pulumi.Input[pulumi.InputType['ServerInstallTaskDetailsArgs']]] = None, + details: Optional[pulumi.Input[Union['ServerInstallTaskDetailsArgs', 'ServerInstallTaskDetailsArgsDict']]] = None, partition_scheme_name: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, template_name: Optional[pulumi.Input[str]] = None, - user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerInstallTaskUserMetadataArgs']]]]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerInstallTaskUserMetadataArgs', 'ServerInstallTaskUserMetadataArgsDict']]]]] = None, __props__=None): """ ## Example Usage @@ -340,21 +340,30 @@ def __init__(__self__, debian = ovh.me.InstallationTemplate("debian", base_template_name="debian12_64", template_name="mydebian12", - customization=ovh.me.InstallationTemplateCustomizationArgs( - post_installation_script_link="http://test", - post_installation_script_return="ok", - )) + customization={ + "custom_hostname": "mytest", + }) server_install = ovh.dedicated.ServerInstallTask("serverInstall", service_name="nsxxxxxxx.ip-xx-xx-xx.eu", template_name=debian.template_name, bootid_on_destroy=rescue.results[0], - details=ovh.dedicated.ServerInstallTaskDetailsArgs( - custom_hostname="mytest", - ), - user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="sshKey", - value="ssh-ed25519 AAAAC3...", - )]) + details={ + "custom_hostname": "mytest", + }, + user_metadatas=[ + { + "key": "sshKey", + "value": "ssh-ed25519 AAAAC3...", + }, + { + "key": "postInstallationScript", + "value": \"\"\"#!/bin/bash + echo "coucou postInstallationScript" > /opt/coucou + cat /etc/machine-id >> /opt/coucou + date "+%Y-%m-%d %H:%M:%S" --utc >> /opt/coucou + \"\"\", + }, + ]) ``` Using a BringYourOwnLinux (BYOLinux) template (with userMetadata) @@ -370,37 +379,37 @@ def __init__(__self__, service_name=server.service_name, template_name="byolinux_64", bootid_on_destroy=rescue.results[0], - details=ovh.dedicated.ServerInstallTaskDetailsArgs( - custom_hostname="mytest", - ), + details={ + "custom_hostname": "mytest", + }, user_metadatas=[ - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="imageURL", - value="https://myimage.qcow2", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="imageType", - value="qcow2", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="httpHeaders0Key", - value="Authorization", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="httpHeaders0Value", - value="Basic bG9naW46xxxxxxx=", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="imageChecksumType", - value="sha512", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="imageCheckSum", - value="047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="configDriveUserData", - value=f\"\"\"#cloud-config + { + "key": "imageURL", + "value": "https://myimage.qcow2", + }, + { + "key": "imageType", + "value": "qcow2", + }, + { + "key": "httpHeaders0Key", + "value": "Authorization", + }, + { + "key": "httpHeaders0Value", + "value": "Basic bG9naW46xxxxxxx=", + }, + { + "key": "imageChecksumType", + "value": "sha512", + }, + { + "key": "imageCheckSum", + "value": "047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225", + }, + { + "key": "configDriveUserData", + "value": f\"\"\"#cloud-config ssh_authorized_keys: - {data["ovh_me_ssh_key"]["mykey"]["key"]} @@ -418,7 +427,7 @@ def __init__(__self__, - tree final_message: The system is finally up, after $UPTIME seconds \"\"\", - ), + }, ]) ``` @@ -435,13 +444,22 @@ def __init__(__self__, service_name=server.service_name, template_name="win2019-std_64", bootid_on_destroy=rescue.results[0], - details=ovh.dedicated.ServerInstallTaskDetailsArgs( - custom_hostname="mytest", - ), - user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="language", - value="fr-fr", - )]) + details={ + "custom_hostname": "mytest", + }, + user_metadatas=[ + { + "key": "language", + "value": "fr-fr", + }, + { + "key": "postInstallationScript", + "value": \"\"\"coucou postInstallationScriptPowerShell" | Out-File -FilePath "c:\\ovhupd\\script\\coucou.txt" + (Get-ItemProperty -LiteralPath "Registry::HKLM\\SOFTWARE\\Microsoft\\Cryptography" -Name "MachineGuid").MachineGuid | Out-File -FilePath "c:\\ovhupd\\script\\coucou.txt" -Append + (Get-Date).ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss") | Out-File -FilePath "c:\\ovhupd\\script\\coucou.txt" -Append + \"\"\", + }, + ]) ``` ## Import @@ -457,11 +475,11 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[int] bootid_on_destroy: If set, reboot the server on the specified boot id during destroy phase. - :param pulumi.Input[pulumi.InputType['ServerInstallTaskDetailsArgs']] details: see `details` block below. + :param pulumi.Input[Union['ServerInstallTaskDetailsArgs', 'ServerInstallTaskDetailsArgsDict']] details: see `details` block below. :param pulumi.Input[str] partition_scheme_name: Partition scheme name. :param pulumi.Input[str] service_name: The service_name of your dedicated server. :param pulumi.Input[str] template_name: Template name. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerInstallTaskUserMetadataArgs']]]] user_metadatas: see `user_metadata` block below. + :param pulumi.Input[Sequence[pulumi.Input[Union['ServerInstallTaskUserMetadataArgs', 'ServerInstallTaskUserMetadataArgsDict']]]] user_metadatas: see `user_metadata` block below. """ ... @overload @@ -482,21 +500,30 @@ def __init__(__self__, debian = ovh.me.InstallationTemplate("debian", base_template_name="debian12_64", template_name="mydebian12", - customization=ovh.me.InstallationTemplateCustomizationArgs( - post_installation_script_link="http://test", - post_installation_script_return="ok", - )) + customization={ + "custom_hostname": "mytest", + }) server_install = ovh.dedicated.ServerInstallTask("serverInstall", service_name="nsxxxxxxx.ip-xx-xx-xx.eu", template_name=debian.template_name, bootid_on_destroy=rescue.results[0], - details=ovh.dedicated.ServerInstallTaskDetailsArgs( - custom_hostname="mytest", - ), - user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="sshKey", - value="ssh-ed25519 AAAAC3...", - )]) + details={ + "custom_hostname": "mytest", + }, + user_metadatas=[ + { + "key": "sshKey", + "value": "ssh-ed25519 AAAAC3...", + }, + { + "key": "postInstallationScript", + "value": \"\"\"#!/bin/bash + echo "coucou postInstallationScript" > /opt/coucou + cat /etc/machine-id >> /opt/coucou + date "+%Y-%m-%d %H:%M:%S" --utc >> /opt/coucou + \"\"\", + }, + ]) ``` Using a BringYourOwnLinux (BYOLinux) template (with userMetadata) @@ -512,37 +539,37 @@ def __init__(__self__, service_name=server.service_name, template_name="byolinux_64", bootid_on_destroy=rescue.results[0], - details=ovh.dedicated.ServerInstallTaskDetailsArgs( - custom_hostname="mytest", - ), + details={ + "custom_hostname": "mytest", + }, user_metadatas=[ - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="imageURL", - value="https://myimage.qcow2", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="imageType", - value="qcow2", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="httpHeaders0Key", - value="Authorization", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="httpHeaders0Value", - value="Basic bG9naW46xxxxxxx=", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="imageChecksumType", - value="sha512", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="imageCheckSum", - value="047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225", - ), - ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="configDriveUserData", - value=f\"\"\"#cloud-config + { + "key": "imageURL", + "value": "https://myimage.qcow2", + }, + { + "key": "imageType", + "value": "qcow2", + }, + { + "key": "httpHeaders0Key", + "value": "Authorization", + }, + { + "key": "httpHeaders0Value", + "value": "Basic bG9naW46xxxxxxx=", + }, + { + "key": "imageChecksumType", + "value": "sha512", + }, + { + "key": "imageCheckSum", + "value": "047122c9ff4d2a69512212104b06c678f5a9cdb22b75467353613ff87ccd03b57b38967e56d810e61366f9d22d6bd39ac0addf4e00a4c6445112a2416af8f225", + }, + { + "key": "configDriveUserData", + "value": f\"\"\"#cloud-config ssh_authorized_keys: - {data["ovh_me_ssh_key"]["mykey"]["key"]} @@ -560,7 +587,7 @@ def __init__(__self__, - tree final_message: The system is finally up, after $UPTIME seconds \"\"\", - ), + }, ]) ``` @@ -577,13 +604,22 @@ def __init__(__self__, service_name=server.service_name, template_name="win2019-std_64", bootid_on_destroy=rescue.results[0], - details=ovh.dedicated.ServerInstallTaskDetailsArgs( - custom_hostname="mytest", - ), - user_metadatas=[ovh.dedicated.ServerInstallTaskUserMetadataArgs( - key="language", - value="fr-fr", - )]) + details={ + "custom_hostname": "mytest", + }, + user_metadatas=[ + { + "key": "language", + "value": "fr-fr", + }, + { + "key": "postInstallationScript", + "value": \"\"\"coucou postInstallationScriptPowerShell" | Out-File -FilePath "c:\\ovhupd\\script\\coucou.txt" + (Get-ItemProperty -LiteralPath "Registry::HKLM\\SOFTWARE\\Microsoft\\Cryptography" -Name "MachineGuid").MachineGuid | Out-File -FilePath "c:\\ovhupd\\script\\coucou.txt" -Append + (Get-Date).ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss") | Out-File -FilePath "c:\\ovhupd\\script\\coucou.txt" -Append + \"\"\", + }, + ]) ``` ## Import @@ -612,11 +648,11 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, bootid_on_destroy: Optional[pulumi.Input[int]] = None, - details: Optional[pulumi.Input[pulumi.InputType['ServerInstallTaskDetailsArgs']]] = None, + details: Optional[pulumi.Input[Union['ServerInstallTaskDetailsArgs', 'ServerInstallTaskDetailsArgsDict']]] = None, partition_scheme_name: Optional[pulumi.Input[str]] = None, service_name: Optional[pulumi.Input[str]] = None, template_name: Optional[pulumi.Input[str]] = None, - user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerInstallTaskUserMetadataArgs']]]]] = None, + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerInstallTaskUserMetadataArgs', 'ServerInstallTaskUserMetadataArgsDict']]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -654,7 +690,7 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, bootid_on_destroy: Optional[pulumi.Input[int]] = None, comment: Optional[pulumi.Input[str]] = None, - details: Optional[pulumi.Input[pulumi.InputType['ServerInstallTaskDetailsArgs']]] = None, + details: Optional[pulumi.Input[Union['ServerInstallTaskDetailsArgs', 'ServerInstallTaskDetailsArgsDict']]] = None, done_date: Optional[pulumi.Input[str]] = None, function: Optional[pulumi.Input[str]] = None, last_update: Optional[pulumi.Input[str]] = None, @@ -663,7 +699,7 @@ def get(resource_name: str, start_date: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None, template_name: Optional[pulumi.Input[str]] = None, - user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerInstallTaskUserMetadataArgs']]]]] = None) -> 'ServerInstallTask': + user_metadatas: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerInstallTaskUserMetadataArgs', 'ServerInstallTaskUserMetadataArgsDict']]]]] = None) -> 'ServerInstallTask': """ Get an existing ServerInstallTask resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -673,7 +709,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[int] bootid_on_destroy: If set, reboot the server on the specified boot id during destroy phase. :param pulumi.Input[str] comment: Details of this task. (should be `Install asked`) - :param pulumi.Input[pulumi.InputType['ServerInstallTaskDetailsArgs']] details: see `details` block below. + :param pulumi.Input[Union['ServerInstallTaskDetailsArgs', 'ServerInstallTaskDetailsArgsDict']] details: see `details` block below. :param pulumi.Input[str] done_date: Completion date in RFC3339 format. :param pulumi.Input[str] function: Function name (should be `hardInstall`). :param pulumi.Input[str] last_update: Last update in RFC3339 format. @@ -682,7 +718,7 @@ def get(resource_name: str, :param pulumi.Input[str] start_date: Task creation date in RFC3339 format. :param pulumi.Input[str] status: Task status (should be `done`) :param pulumi.Input[str] template_name: Template name. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerInstallTaskUserMetadataArgs']]]] user_metadatas: see `user_metadata` block below. + :param pulumi.Input[Sequence[pulumi.Input[Union['ServerInstallTaskUserMetadataArgs', 'ServerInstallTaskUserMetadataArgsDict']]]] user_metadatas: see `user_metadata` block below. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) diff --git a/sdk/python/pulumi_ovh/dedicated/server_networking.py b/sdk/python/pulumi_ovh/dedicated/server_networking.py index e1d14b11..ade5cf50 100644 --- a/sdk/python/pulumi_ovh/dedicated/server_networking.py +++ b/sdk/python/pulumi_ovh/dedicated/server_networking.py @@ -128,14 +128,14 @@ class ServerNetworking(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerNetworkingInterfaceArgs']]]]] = None, + interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerNetworkingInterfaceArgs', 'ServerNetworkingInterfaceArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, __props__=None): """ Create a ServerNetworking resource with the given unique name, props, and options. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerNetworkingInterfaceArgs']]]] interfaces: Interface or interfaces aggregation. + :param pulumi.Input[Sequence[pulumi.Input[Union['ServerNetworkingInterfaceArgs', 'ServerNetworkingInterfaceArgsDict']]]] interfaces: Interface or interfaces aggregation. :param pulumi.Input[str] service_name: The internal name of your dedicated server. """ ... @@ -161,7 +161,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerNetworkingInterfaceArgs']]]]] = None, + interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerNetworkingInterfaceArgs', 'ServerNetworkingInterfaceArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -191,7 +191,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, - interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerNetworkingInterfaceArgs']]]]] = None, + interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ServerNetworkingInterfaceArgs', 'ServerNetworkingInterfaceArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None) -> 'ServerNetworking': """ @@ -202,7 +202,7 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: Operation description - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ServerNetworkingInterfaceArgs']]]] interfaces: Interface or interfaces aggregation. + :param pulumi.Input[Sequence[pulumi.Input[Union['ServerNetworkingInterfaceArgs', 'ServerNetworkingInterfaceArgsDict']]]] interfaces: Interface or interfaces aggregation. :param pulumi.Input[str] service_name: The internal name of your dedicated server. :param pulumi.Input[str] status: Operation status """ diff --git a/sdk/python/pulumi_ovh/domain/__init__.py b/sdk/python/pulumi_ovh/domain/__init__.py index a37f53f8..c90c062d 100644 --- a/sdk/python/pulumi_ovh/domain/__init__.py +++ b/sdk/python/pulumi_ovh/domain/__init__.py @@ -9,6 +9,7 @@ from .get_zone_dns_sec import * from .zone import * from .zone_dns_sec import * +from .zone_import import * from .zone_record import * from .zone_redirection import * from ._inputs import * diff --git a/sdk/python/pulumi_ovh/domain/zone.py b/sdk/python/pulumi_ovh/domain/zone.py index c211370b..30a2781f 100644 --- a/sdk/python/pulumi_ovh/domain/zone.py +++ b/sdk/python/pulumi_ovh/domain/zone.py @@ -292,11 +292,11 @@ class Zone(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ZoneOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ZoneOrderArgs', 'ZoneOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['ZonePlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ZonePlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['ZonePlanArgs', 'ZonePlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ZonePlanOptionArgs', 'ZonePlanOptionArgsDict']]]]] = None, __props__=None): """ ## Example Usage @@ -313,21 +313,21 @@ def __init__(__self__, plan_code="zone") zone_zone = ovh.domain.Zone("zoneZone", ovh_subsidiary=mycart.ovh_subsidiary, - plan=ovh.domain.ZonePlanArgs( - duration=zone_cart_product_plan.selected_prices[0].duration, - plan_code=zone_cart_product_plan.plan_code, - pricing_mode=zone_cart_product_plan.selected_prices[0].pricing_mode, - configurations=[ - ovh.domain.ZonePlanConfigurationArgs( - label="zone", - value="myzone.mydomain.com", - ), - ovh.domain.ZonePlanConfigurationArgs( - label="template", - value="minimized", - ), + plan={ + "duration": zone_cart_product_plan.selected_prices[0].duration, + "plan_code": zone_cart_product_plan.plan_code, + "pricing_mode": zone_cart_product_plan.selected_prices[0].pricing_mode, + "configurations": [ + { + "label": "zone", + "value": "myzone.mydomain.com", + }, + { + "label": "template", + "value": "minimized", + }, ], - )) + }) ``` ## Import @@ -342,11 +342,11 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ZoneOrderArgs']]]] orders: Details about an Order + :param pulumi.Input[Sequence[pulumi.Input[Union['ZoneOrderArgs', 'ZoneOrderArgsDict']]]] orders: Details about an Order :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['ZonePlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ZonePlanOptionArgs']]]] plan_options: Product Plan to order + :param pulumi.Input[Union['ZonePlanArgs', 'ZonePlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['ZonePlanOptionArgs', 'ZonePlanOptionArgsDict']]]] plan_options: Product Plan to order """ ... @overload @@ -369,21 +369,21 @@ def __init__(__self__, plan_code="zone") zone_zone = ovh.domain.Zone("zoneZone", ovh_subsidiary=mycart.ovh_subsidiary, - plan=ovh.domain.ZonePlanArgs( - duration=zone_cart_product_plan.selected_prices[0].duration, - plan_code=zone_cart_product_plan.plan_code, - pricing_mode=zone_cart_product_plan.selected_prices[0].pricing_mode, - configurations=[ - ovh.domain.ZonePlanConfigurationArgs( - label="zone", - value="myzone.mydomain.com", - ), - ovh.domain.ZonePlanConfigurationArgs( - label="template", - value="minimized", - ), + plan={ + "duration": zone_cart_product_plan.selected_prices[0].duration, + "plan_code": zone_cart_product_plan.plan_code, + "pricing_mode": zone_cart_product_plan.selected_prices[0].pricing_mode, + "configurations": [ + { + "label": "zone", + "value": "myzone.mydomain.com", + }, + { + "label": "template", + "value": "minimized", + }, ], - )) + }) ``` ## Import @@ -411,11 +411,11 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ZoneOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ZoneOrderArgs', 'ZoneOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['ZonePlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ZonePlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['ZonePlanArgs', 'ZonePlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ZonePlanOptionArgs', 'ZonePlanOptionArgsDict']]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -456,11 +456,11 @@ def get(resource_name: str, last_update: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, name_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ZoneOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ZoneOrderArgs', 'ZoneOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['ZonePlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ZonePlanOptionArgs']]]]] = None) -> 'Zone': + plan: Optional[pulumi.Input[Union['ZonePlanArgs', 'ZonePlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ZonePlanOptionArgs', 'ZonePlanOptionArgsDict']]]]] = None) -> 'Zone': """ Get an existing Zone resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -473,11 +473,11 @@ def get(resource_name: str, :param pulumi.Input[str] last_update: Last update date of the DNS zone :param pulumi.Input[str] name: Zone name :param pulumi.Input[Sequence[pulumi.Input[str]]] name_servers: Name servers that host the DNS zone - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ZoneOrderArgs']]]] orders: Details about an Order + :param pulumi.Input[Sequence[pulumi.Input[Union['ZoneOrderArgs', 'ZoneOrderArgsDict']]]] orders: Details about an Order :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['ZonePlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ZonePlanOptionArgs']]]] plan_options: Product Plan to order + :param pulumi.Input[Union['ZonePlanArgs', 'ZonePlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['ZonePlanOptionArgs', 'ZonePlanOptionArgsDict']]]] plan_options: Product Plan to order """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) diff --git a/sdk/python/pulumi_ovh/domain/zone_import.py b/sdk/python/pulumi_ovh/domain/zone_import.py new file mode 100644 index 00000000..f8f89187 --- /dev/null +++ b/sdk/python/pulumi_ovh/domain/zone_import.py @@ -0,0 +1,248 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['ZoneImportArgs', 'ZoneImport'] + +@pulumi.input_type +class ZoneImportArgs: + def __init__(__self__, *, + zone_file: pulumi.Input[str], + zone_name: pulumi.Input[str]): + """ + The set of arguments for constructing a ZoneImport resource. + :param pulumi.Input[str] zone_file: Content of the zone file to import + :param pulumi.Input[str] zone_name: The name of the domain zone + """ + pulumi.set(__self__, "zone_file", zone_file) + pulumi.set(__self__, "zone_name", zone_name) + + @property + @pulumi.getter(name="zoneFile") + def zone_file(self) -> pulumi.Input[str]: + """ + Content of the zone file to import + """ + return pulumi.get(self, "zone_file") + + @zone_file.setter + def zone_file(self, value: pulumi.Input[str]): + pulumi.set(self, "zone_file", value) + + @property + @pulumi.getter(name="zoneName") + def zone_name(self) -> pulumi.Input[str]: + """ + The name of the domain zone + """ + return pulumi.get(self, "zone_name") + + @zone_name.setter + def zone_name(self, value: pulumi.Input[str]): + pulumi.set(self, "zone_name", value) + + +@pulumi.input_type +class _ZoneImportState: + def __init__(__self__, *, + exported_content: Optional[pulumi.Input[str]] = None, + zone_file: Optional[pulumi.Input[str]] = None, + zone_name: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ZoneImport resources. + :param pulumi.Input[str] exported_content: Zone file exported from the API + :param pulumi.Input[str] zone_file: Content of the zone file to import + :param pulumi.Input[str] zone_name: The name of the domain zone + """ + if exported_content is not None: + pulumi.set(__self__, "exported_content", exported_content) + if zone_file is not None: + pulumi.set(__self__, "zone_file", zone_file) + if zone_name is not None: + pulumi.set(__self__, "zone_name", zone_name) + + @property + @pulumi.getter(name="exportedContent") + def exported_content(self) -> Optional[pulumi.Input[str]]: + """ + Zone file exported from the API + """ + return pulumi.get(self, "exported_content") + + @exported_content.setter + def exported_content(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "exported_content", value) + + @property + @pulumi.getter(name="zoneFile") + def zone_file(self) -> Optional[pulumi.Input[str]]: + """ + Content of the zone file to import + """ + return pulumi.get(self, "zone_file") + + @zone_file.setter + def zone_file(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "zone_file", value) + + @property + @pulumi.getter(name="zoneName") + def zone_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the domain zone + """ + return pulumi.get(self, "zone_name") + + @zone_name.setter + def zone_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "zone_name", value) + + +class ZoneImport(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + zone_file: Optional[pulumi.Input[str]] = None, + zone_name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Handle a whole DNS zone using a zone file. + + > __WARNING__ This resource and resource `Domain.ZoneRecord` should not be used together as `Domain.ZoneImport` controls the whole DNS zone at once. + + ## Example Usage + + ```python + import pulumi + import pulumi_ovh as ovh + + import_ = ovh.domain.ZoneImport("import", + zone_name="mysite.ovh", + zone_file=(lambda path: open(path).read())("./example.zone")) + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] zone_file: Content of the zone file to import + :param pulumi.Input[str] zone_name: The name of the domain zone + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ZoneImportArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Handle a whole DNS zone using a zone file. + + > __WARNING__ This resource and resource `Domain.ZoneRecord` should not be used together as `Domain.ZoneImport` controls the whole DNS zone at once. + + ## Example Usage + + ```python + import pulumi + import pulumi_ovh as ovh + + import_ = ovh.domain.ZoneImport("import", + zone_name="mysite.ovh", + zone_file=(lambda path: open(path).read())("./example.zone")) + ``` + + :param str resource_name: The name of the resource. + :param ZoneImportArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ZoneImportArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + zone_file: Optional[pulumi.Input[str]] = None, + zone_name: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ZoneImportArgs.__new__(ZoneImportArgs) + + if zone_file is None and not opts.urn: + raise TypeError("Missing required property 'zone_file'") + __props__.__dict__["zone_file"] = zone_file + if zone_name is None and not opts.urn: + raise TypeError("Missing required property 'zone_name'") + __props__.__dict__["zone_name"] = zone_name + __props__.__dict__["exported_content"] = None + super(ZoneImport, __self__).__init__( + 'ovh:Domain/zoneImport:ZoneImport', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + exported_content: Optional[pulumi.Input[str]] = None, + zone_file: Optional[pulumi.Input[str]] = None, + zone_name: Optional[pulumi.Input[str]] = None) -> 'ZoneImport': + """ + Get an existing ZoneImport resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] exported_content: Zone file exported from the API + :param pulumi.Input[str] zone_file: Content of the zone file to import + :param pulumi.Input[str] zone_name: The name of the domain zone + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ZoneImportState.__new__(_ZoneImportState) + + __props__.__dict__["exported_content"] = exported_content + __props__.__dict__["zone_file"] = zone_file + __props__.__dict__["zone_name"] = zone_name + return ZoneImport(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="exportedContent") + def exported_content(self) -> pulumi.Output[str]: + """ + Zone file exported from the API + """ + return pulumi.get(self, "exported_content") + + @property + @pulumi.getter(name="zoneFile") + def zone_file(self) -> pulumi.Output[str]: + """ + Content of the zone file to import + """ + return pulumi.get(self, "zone_file") + + @property + @pulumi.getter(name="zoneName") + def zone_name(self) -> pulumi.Output[str]: + """ + The name of the domain zone + """ + return pulumi.get(self, "zone_name") + diff --git a/sdk/python/pulumi_ovh/hosting/private_database.py b/sdk/python/pulumi_ovh/hosting/private_database.py index 5a2c31bc..61720394 100644 --- a/sdk/python/pulumi_ovh/hosting/private_database.py +++ b/sdk/python/pulumi_ovh/hosting/private_database.py @@ -553,11 +553,11 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, display_name: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PrivateDatabaseOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PrivateDatabaseOrderArgs', 'PrivateDatabaseOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['PrivateDatabasePlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PrivateDatabasePlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['PrivateDatabasePlanArgs', 'PrivateDatabasePlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PrivateDatabasePlanOptionArgs', 'PrivateDatabasePlanOptionArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, __props__=None): """ @@ -576,21 +576,21 @@ def __init__(__self__, database_private_database = ovh.hosting.PrivateDatabase("databasePrivateDatabase", ovh_subsidiary=mycart.ovh_subsidiary, display_name="Postgresql-12", - plan=ovh.hosting.PrivateDatabasePlanArgs( - duration=database_cart_product_plan.prices[3].duration, - plan_code=database_cart_product_plan.plan_code, - pricing_mode=database_cart_product_plan.selected_prices[0].pricing_mode, - configurations=[ - ovh.hosting.PrivateDatabasePlanConfigurationArgs( - label="dc", - value="gra3", - ), - ovh.hosting.PrivateDatabasePlanConfigurationArgs( - label="engine", - value="postgresql_12", - ), + plan={ + "duration": database_cart_product_plan.prices[3].duration, + "plan_code": database_cart_product_plan.plan_code, + "pricing_mode": database_cart_product_plan.selected_prices[0].pricing_mode, + "configurations": [ + { + "label": "dc", + "value": "gra3", + }, + { + "label": "engine", + "value": "postgresql_12", + }, ], - )) + }) pulumi.export("privatedatabaseServiceName", database_private_database.service_name) ``` @@ -605,11 +605,11 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] display_name: Name displayed in customer panel for your private database - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PrivateDatabaseOrderArgs']]]] orders: Details about your Order + :param pulumi.Input[Sequence[pulumi.Input[Union['PrivateDatabaseOrderArgs', 'PrivateDatabaseOrderArgsDict']]]] orders: Details about your Order :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['PrivateDatabasePlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PrivateDatabasePlanOptionArgs']]]] plan_options: Product Plan to order + :param pulumi.Input[Union['PrivateDatabasePlanArgs', 'PrivateDatabasePlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['PrivateDatabasePlanOptionArgs', 'PrivateDatabasePlanOptionArgsDict']]]] plan_options: Product Plan to order :param pulumi.Input[str] service_name: Service name """ ... @@ -634,21 +634,21 @@ def __init__(__self__, database_private_database = ovh.hosting.PrivateDatabase("databasePrivateDatabase", ovh_subsidiary=mycart.ovh_subsidiary, display_name="Postgresql-12", - plan=ovh.hosting.PrivateDatabasePlanArgs( - duration=database_cart_product_plan.prices[3].duration, - plan_code=database_cart_product_plan.plan_code, - pricing_mode=database_cart_product_plan.selected_prices[0].pricing_mode, - configurations=[ - ovh.hosting.PrivateDatabasePlanConfigurationArgs( - label="dc", - value="gra3", - ), - ovh.hosting.PrivateDatabasePlanConfigurationArgs( - label="engine", - value="postgresql_12", - ), + plan={ + "duration": database_cart_product_plan.prices[3].duration, + "plan_code": database_cart_product_plan.plan_code, + "pricing_mode": database_cart_product_plan.selected_prices[0].pricing_mode, + "configurations": [ + { + "label": "dc", + "value": "gra3", + }, + { + "label": "engine", + "value": "postgresql_12", + }, ], - )) + }) pulumi.export("privatedatabaseServiceName", database_private_database.service_name) ``` @@ -676,11 +676,11 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, display_name: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PrivateDatabaseOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PrivateDatabaseOrderArgs', 'PrivateDatabaseOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['PrivateDatabasePlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PrivateDatabasePlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['PrivateDatabasePlanArgs', 'PrivateDatabasePlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PrivateDatabasePlanOptionArgs', 'PrivateDatabasePlanOptionArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -738,11 +738,11 @@ def get(resource_name: str, hostname_ftp: Optional[pulumi.Input[str]] = None, infrastructure: Optional[pulumi.Input[str]] = None, offer: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PrivateDatabaseOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PrivateDatabaseOrderArgs', 'PrivateDatabaseOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['PrivateDatabasePlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PrivateDatabasePlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['PrivateDatabasePlanArgs', 'PrivateDatabasePlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PrivateDatabasePlanOptionArgs', 'PrivateDatabasePlanOptionArgsDict']]]]] = None, port: Optional[pulumi.Input[int]] = None, port_ftp: Optional[pulumi.Input[int]] = None, quota_size: Optional[pulumi.Input[int]] = None, @@ -770,11 +770,11 @@ def get(resource_name: str, :param pulumi.Input[str] hostname_ftp: Private database FTP hostname :param pulumi.Input[str] infrastructure: Infrastructure where service was stored :param pulumi.Input[str] offer: Type of the private database offer - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PrivateDatabaseOrderArgs']]]] orders: Details about your Order + :param pulumi.Input[Sequence[pulumi.Input[Union['PrivateDatabaseOrderArgs', 'PrivateDatabaseOrderArgsDict']]]] orders: Details about your Order :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['PrivateDatabasePlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PrivateDatabasePlanOptionArgs']]]] plan_options: Product Plan to order + :param pulumi.Input[Union['PrivateDatabasePlanArgs', 'PrivateDatabasePlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['PrivateDatabasePlanOptionArgs', 'PrivateDatabasePlanOptionArgsDict']]]] plan_options: Product Plan to order :param pulumi.Input[int] port: Private database service port :param pulumi.Input[int] port_ftp: Private database FTP port :param pulumi.Input[int] quota_size: Space allowed (in MB) on your private database diff --git a/sdk/python/pulumi_ovh/ip/ip_service.py b/sdk/python/pulumi_ovh/ip/ip_service.py index b484f3ed..1787868f 100644 --- a/sdk/python/pulumi_ovh/ip/ip_service.py +++ b/sdk/python/pulumi_ovh/ip/ip_service.py @@ -345,11 +345,11 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServiceOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IpServiceOrderArgs', 'IpServiceOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['IpServicePlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServicePlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['IpServicePlanArgs', 'IpServicePlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IpServicePlanOptionArgs', 'IpServicePlanOptionArgsDict']]]]] = None, __props__=None): """ ## Example Usage @@ -367,25 +367,25 @@ def __init__(__self__, ipblock_ip_service = ovh.ip.IpService("ipblockIpService", ovh_subsidiary=mycart.ovh_subsidiary, description="my ip block", - plan=ovh.ip.IpServicePlanArgs( - duration=ipblock_cart_product_plan.selected_prices[0].duration, - plan_code=ipblock_cart_product_plan.plan_code, - pricing_mode=ipblock_cart_product_plan.selected_prices[0].pricing_mode, - configurations=[ovh.ip.IpServicePlanConfigurationArgs( - label="country", - value="FR", - )], - )) + plan={ + "duration": ipblock_cart_product_plan.selected_prices[0].duration, + "plan_code": ipblock_cart_product_plan.plan_code, + "pricing_mode": ipblock_cart_product_plan.selected_prices[0].pricing_mode, + "configurations": [{ + "label": "country", + "value": "FR", + }], + }) ``` :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: Custom description on your ip. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServiceOrderArgs']]]] orders: Details about an Order + :param pulumi.Input[Sequence[pulumi.Input[Union['IpServiceOrderArgs', 'IpServiceOrderArgsDict']]]] orders: Details about an Order :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['IpServicePlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServicePlanOptionArgs']]]] plan_options: Product Plan to order + :param pulumi.Input[Union['IpServicePlanArgs', 'IpServicePlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['IpServicePlanOptionArgs', 'IpServicePlanOptionArgsDict']]]] plan_options: Product Plan to order """ ... @overload @@ -409,15 +409,15 @@ def __init__(__self__, ipblock_ip_service = ovh.ip.IpService("ipblockIpService", ovh_subsidiary=mycart.ovh_subsidiary, description="my ip block", - plan=ovh.ip.IpServicePlanArgs( - duration=ipblock_cart_product_plan.selected_prices[0].duration, - plan_code=ipblock_cart_product_plan.plan_code, - pricing_mode=ipblock_cart_product_plan.selected_prices[0].pricing_mode, - configurations=[ovh.ip.IpServicePlanConfigurationArgs( - label="country", - value="FR", - )], - )) + plan={ + "duration": ipblock_cart_product_plan.selected_prices[0].duration, + "plan_code": ipblock_cart_product_plan.plan_code, + "pricing_mode": ipblock_cart_product_plan.selected_prices[0].pricing_mode, + "configurations": [{ + "label": "country", + "value": "FR", + }], + }) ``` :param str resource_name: The name of the resource. @@ -436,11 +436,11 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServiceOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IpServiceOrderArgs', 'IpServiceOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['IpServicePlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServicePlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['IpServicePlanArgs', 'IpServicePlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IpServicePlanOptionArgs', 'IpServicePlanOptionArgsDict']]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -481,13 +481,13 @@ def get(resource_name: str, country: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, ip: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServiceOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IpServiceOrderArgs', 'IpServiceOrderArgsDict']]]]] = None, organisation_id: Optional[pulumi.Input[str]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['IpServicePlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServicePlanOptionArgs']]]]] = None, - routed_tos: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServiceRoutedToArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['IpServicePlanArgs', 'IpServicePlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IpServicePlanOptionArgs', 'IpServicePlanOptionArgsDict']]]]] = None, + routed_tos: Optional[pulumi.Input[Sequence[pulumi.Input[Union['IpServiceRoutedToArgs', 'IpServiceRoutedToArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None) -> 'IpService': """ @@ -501,13 +501,13 @@ def get(resource_name: str, :param pulumi.Input[str] country: country :param pulumi.Input[str] description: Custom description on your ip. :param pulumi.Input[str] ip: ip block - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServiceOrderArgs']]]] orders: Details about an Order + :param pulumi.Input[Sequence[pulumi.Input[Union['IpServiceOrderArgs', 'IpServiceOrderArgsDict']]]] orders: Details about an Order :param pulumi.Input[str] organisation_id: IP block organisation Id :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['IpServicePlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServicePlanOptionArgs']]]] plan_options: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IpServiceRoutedToArgs']]]] routed_tos: Routage information + :param pulumi.Input[Union['IpServicePlanArgs', 'IpServicePlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['IpServicePlanOptionArgs', 'IpServicePlanOptionArgsDict']]]] plan_options: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['IpServiceRoutedToArgs', 'IpServiceRoutedToArgsDict']]]] routed_tos: Routage information :param pulumi.Input[str] service_name: service name :param pulumi.Input[str] type: Possible values for ip type """ diff --git a/sdk/python/pulumi_ovh/ip/move.py b/sdk/python/pulumi_ovh/ip/move.py index f92905d0..5fde7280 100644 --- a/sdk/python/pulumi_ovh/ip/move.py +++ b/sdk/python/pulumi_ovh/ip/move.py @@ -246,7 +246,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, ip: Optional[pulumi.Input[str]] = None, - routed_to: Optional[pulumi.Input[pulumi.InputType['MoveRoutedToArgs']]] = None, + routed_to: Optional[pulumi.Input[Union['MoveRoutedToArgs', 'MoveRoutedToArgsDict']]] = None, __props__=None): """ Moves a given IP to a different service, or inversely, parks it if empty service is given @@ -259,9 +259,9 @@ def __init__(__self__, move_ip_to_load_balancer_xxxxx = ovh.ip.Move("moveIpToLoadBalancerXxxxx", ip="1.2.3.4", - routed_to=ovh.ip.MoveRoutedToArgs( - service_name="loadbalancer-XXXXX", - )) + routed_to={ + "service_name": "loadbalancer-XXXXX", + }) ``` ## Park IP/Detach IP `1.2.3.4` from any service @@ -272,16 +272,16 @@ def __init__(__self__, park_ip = ovh.ip.Move("parkIp", ip="1.2.3.4", - routed_to=ovh.ip.MoveRoutedToArgs( - service_name="", - )) + routed_to={ + "service_name": "", + }) ``` :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: Description attached to the IP :param pulumi.Input[str] ip: IP block that we want to attach to a different service - :param pulumi.Input[pulumi.InputType['MoveRoutedToArgs']] routed_to: Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%7Bip%7D/park~POST) + :param pulumi.Input[Union['MoveRoutedToArgs', 'MoveRoutedToArgsDict']] routed_to: Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%7Bip%7D/park~POST) instead of [moved](https://api.ovh.com/console/#/ip/%7Bip%7D/move~POST) """ ... @@ -301,9 +301,9 @@ def __init__(__self__, move_ip_to_load_balancer_xxxxx = ovh.ip.Move("moveIpToLoadBalancerXxxxx", ip="1.2.3.4", - routed_to=ovh.ip.MoveRoutedToArgs( - service_name="loadbalancer-XXXXX", - )) + routed_to={ + "service_name": "loadbalancer-XXXXX", + }) ``` ## Park IP/Detach IP `1.2.3.4` from any service @@ -314,9 +314,9 @@ def __init__(__self__, park_ip = ovh.ip.Move("parkIp", ip="1.2.3.4", - routed_to=ovh.ip.MoveRoutedToArgs( - service_name="", - )) + routed_to={ + "service_name": "", + }) ``` :param str resource_name: The name of the resource. @@ -336,7 +336,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, ip: Optional[pulumi.Input[str]] = None, - routed_to: Optional[pulumi.Input[pulumi.InputType['MoveRoutedToArgs']]] = None, + routed_to: Optional[pulumi.Input[Union['MoveRoutedToArgs', 'MoveRoutedToArgsDict']]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -375,7 +375,7 @@ def get(resource_name: str, description: Optional[pulumi.Input[str]] = None, ip: Optional[pulumi.Input[str]] = None, organisation_id: Optional[pulumi.Input[str]] = None, - routed_to: Optional[pulumi.Input[pulumi.InputType['MoveRoutedToArgs']]] = None, + routed_to: Optional[pulumi.Input[Union['MoveRoutedToArgs', 'MoveRoutedToArgsDict']]] = None, service_name: Optional[pulumi.Input[str]] = None, task_start_date: Optional[pulumi.Input[str]] = None, task_status: Optional[pulumi.Input[str]] = None, @@ -392,7 +392,7 @@ def get(resource_name: str, :param pulumi.Input[str] description: Description attached to the IP :param pulumi.Input[str] ip: IP block that we want to attach to a different service :param pulumi.Input[str] organisation_id: IP block organisation Id - :param pulumi.Input[pulumi.InputType['MoveRoutedToArgs']] routed_to: Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%7Bip%7D/park~POST) + :param pulumi.Input[Union['MoveRoutedToArgs', 'MoveRoutedToArgsDict']] routed_to: Service to route the IP to. If null, the IP will be [parked](https://api.ovh.com/console/#/ip/%7Bip%7D/park~POST) instead of [moved](https://api.ovh.com/console/#/ip/%7Bip%7D/move~POST) :param pulumi.Input[str] service_name: Service name in the form of `ip-...` :param pulumi.Input[str] task_start_date: Starting date and time field of the current IP task that is in charge of changing the service the IP is attached to diff --git a/sdk/python/pulumi_ovh/iploadbalancing/http_farm.py b/sdk/python/pulumi_ovh/iploadbalancing/http_farm.py index 034e991f..f81ef410 100644 --- a/sdk/python/pulumi_ovh/iploadbalancing/http_farm.py +++ b/sdk/python/pulumi_ovh/iploadbalancing/http_farm.py @@ -28,7 +28,7 @@ def __init__(__self__, *, The set of arguments for constructing a HttpFarm resource. :param pulumi.Input[str] service_name: The internal name of your IP load balancing :param pulumi.Input[str] zone: Zone where the farm will be defined (ie. `GRA`, `BHS` also supports `ALL`) - :param pulumi.Input[str] balance: Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + :param pulumi.Input[str] balance: Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) :param pulumi.Input[str] display_name: Readable label for loadbalancer farm :param pulumi.Input[int] port: Port attached to your farm ([1..49151]). Inherited from frontend if null :param pulumi.Input['HttpFarmProbeArgs'] probe: define a backend healthcheck probe @@ -78,7 +78,7 @@ def zone(self, value: pulumi.Input[str]): @pulumi.getter def balance(self) -> Optional[pulumi.Input[str]]: """ - Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) """ return pulumi.get(self, "balance") @@ -160,7 +160,7 @@ def __init__(__self__, *, zone: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering HttpFarm resources. - :param pulumi.Input[str] balance: Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + :param pulumi.Input[str] balance: Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) :param pulumi.Input[str] display_name: Readable label for loadbalancer farm :param pulumi.Input[int] port: Port attached to your farm ([1..49151]). Inherited from frontend if null :param pulumi.Input['HttpFarmProbeArgs'] probe: define a backend healthcheck probe @@ -190,7 +190,7 @@ def __init__(__self__, *, @pulumi.getter def balance(self) -> Optional[pulumi.Input[str]]: """ - Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) """ return pulumi.get(self, "balance") @@ -291,7 +291,7 @@ def __init__(__self__, balance: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, port: Optional[pulumi.Input[int]] = None, - probe: Optional[pulumi.Input[pulumi.InputType['HttpFarmProbeArgs']]] = None, + probe: Optional[pulumi.Input[Union['HttpFarmProbeArgs', 'HttpFarmProbeArgsDict']]] = None, service_name: Optional[pulumi.Input[str]] = None, stickiness: Optional[pulumi.Input[str]] = None, vrack_network_id: Optional[pulumi.Input[int]] = None, @@ -320,10 +320,10 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] balance: Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + :param pulumi.Input[str] balance: Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) :param pulumi.Input[str] display_name: Readable label for loadbalancer farm :param pulumi.Input[int] port: Port attached to your farm ([1..49151]). Inherited from frontend if null - :param pulumi.Input[pulumi.InputType['HttpFarmProbeArgs']] probe: define a backend healthcheck probe + :param pulumi.Input[Union['HttpFarmProbeArgs', 'HttpFarmProbeArgsDict']] probe: define a backend healthcheck probe :param pulumi.Input[str] service_name: The internal name of your IP load balancing :param pulumi.Input[str] stickiness: Stickiness type. No stickiness if null (`sourceIp`, `cookie`) :param pulumi.Input[int] vrack_network_id: Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack @@ -374,7 +374,7 @@ def _internal_init(__self__, balance: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, port: Optional[pulumi.Input[int]] = None, - probe: Optional[pulumi.Input[pulumi.InputType['HttpFarmProbeArgs']]] = None, + probe: Optional[pulumi.Input[Union['HttpFarmProbeArgs', 'HttpFarmProbeArgsDict']]] = None, service_name: Optional[pulumi.Input[str]] = None, stickiness: Optional[pulumi.Input[str]] = None, vrack_network_id: Optional[pulumi.Input[int]] = None, @@ -413,7 +413,7 @@ def get(resource_name: str, balance: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, port: Optional[pulumi.Input[int]] = None, - probe: Optional[pulumi.Input[pulumi.InputType['HttpFarmProbeArgs']]] = None, + probe: Optional[pulumi.Input[Union['HttpFarmProbeArgs', 'HttpFarmProbeArgsDict']]] = None, service_name: Optional[pulumi.Input[str]] = None, stickiness: Optional[pulumi.Input[str]] = None, vrack_network_id: Optional[pulumi.Input[int]] = None, @@ -425,10 +425,10 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] balance: Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + :param pulumi.Input[str] balance: Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) :param pulumi.Input[str] display_name: Readable label for loadbalancer farm :param pulumi.Input[int] port: Port attached to your farm ([1..49151]). Inherited from frontend if null - :param pulumi.Input[pulumi.InputType['HttpFarmProbeArgs']] probe: define a backend healthcheck probe + :param pulumi.Input[Union['HttpFarmProbeArgs', 'HttpFarmProbeArgsDict']] probe: define a backend healthcheck probe :param pulumi.Input[str] service_name: The internal name of your IP load balancing :param pulumi.Input[str] stickiness: Stickiness type. No stickiness if null (`sourceIp`, `cookie`) :param pulumi.Input[int] vrack_network_id: Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack @@ -452,7 +452,7 @@ def get(resource_name: str, @pulumi.getter def balance(self) -> pulumi.Output[Optional[str]]: """ - Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) + Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`, `uri`) """ return pulumi.get(self, "balance") diff --git a/sdk/python/pulumi_ovh/iploadbalancing/http_route.py b/sdk/python/pulumi_ovh/iploadbalancing/http_route.py index a07677ba..daf42d82 100644 --- a/sdk/python/pulumi_ovh/iploadbalancing/http_route.py +++ b/sdk/python/pulumi_ovh/iploadbalancing/http_route.py @@ -224,7 +224,7 @@ class HttpRoute(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - action: Optional[pulumi.Input[pulumi.InputType['HttpRouteActionArgs']]] = None, + action: Optional[pulumi.Input[Union['HttpRouteActionArgs', 'HttpRouteActionArgsDict']]] = None, display_name: Optional[pulumi.Input[str]] = None, frontend_id: Optional[pulumi.Input[int]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -242,11 +242,11 @@ def __init__(__self__, import pulumi_ovh as ovh httpsredirect = ovh.ip_load_balancing.HttpRoute("httpsredirect", - action=ovh.ip_load_balancing.HttpRouteActionArgs( - status=302, - target="https://${host}${path}${arguments}", - type="redirect", - ), + action={ + "status": 302, + "target": "https://${host}${path}${arguments}", + "type": "redirect", + }, display_name="Redirect to HTTPS", service_name="loadbalancer-xxxxxxxxxxxxxxxxxx", weight=1) @@ -258,7 +258,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[pulumi.InputType['HttpRouteActionArgs']] action: Action triggered when all rules match + :param pulumi.Input[Union['HttpRouteActionArgs', 'HttpRouteActionArgsDict']] action: Action triggered when all rules match :param pulumi.Input[str] display_name: Human readable name for your route, this field is for you :param pulumi.Input[int] frontend_id: Route traffic for this frontend :param pulumi.Input[str] service_name: The internal name of your IP load balancing @@ -282,11 +282,11 @@ def __init__(__self__, import pulumi_ovh as ovh httpsredirect = ovh.ip_load_balancing.HttpRoute("httpsredirect", - action=ovh.ip_load_balancing.HttpRouteActionArgs( - status=302, - target="https://${host}${path}${arguments}", - type="redirect", - ), + action={ + "status": 302, + "target": "https://${host}${path}${arguments}", + "type": "redirect", + }, display_name="Redirect to HTTPS", service_name="loadbalancer-xxxxxxxxxxxxxxxxxx", weight=1) @@ -311,7 +311,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - action: Optional[pulumi.Input[pulumi.InputType['HttpRouteActionArgs']]] = None, + action: Optional[pulumi.Input[Union['HttpRouteActionArgs', 'HttpRouteActionArgsDict']]] = None, display_name: Optional[pulumi.Input[str]] = None, frontend_id: Optional[pulumi.Input[int]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -346,10 +346,10 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, - action: Optional[pulumi.Input[pulumi.InputType['HttpRouteActionArgs']]] = None, + action: Optional[pulumi.Input[Union['HttpRouteActionArgs', 'HttpRouteActionArgsDict']]] = None, display_name: Optional[pulumi.Input[str]] = None, frontend_id: Optional[pulumi.Input[int]] = None, - rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['HttpRouteRuleArgs']]]]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['HttpRouteRuleArgs', 'HttpRouteRuleArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None, weight: Optional[pulumi.Input[int]] = None) -> 'HttpRoute': @@ -360,10 +360,10 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[pulumi.InputType['HttpRouteActionArgs']] action: Action triggered when all rules match + :param pulumi.Input[Union['HttpRouteActionArgs', 'HttpRouteActionArgsDict']] action: Action triggered when all rules match :param pulumi.Input[str] display_name: Human readable name for your route, this field is for you :param pulumi.Input[int] frontend_id: Route traffic for this frontend - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['HttpRouteRuleArgs']]]] rules: List of rules to match to trigger action + :param pulumi.Input[Sequence[pulumi.Input[Union['HttpRouteRuleArgs', 'HttpRouteRuleArgsDict']]]] rules: List of rules to match to trigger action :param pulumi.Input[str] service_name: The internal name of your IP load balancing :param pulumi.Input[str] status: Route status. Routes in "ok" state are ready to operate :param pulumi.Input[int] weight: Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action diff --git a/sdk/python/pulumi_ovh/iploadbalancing/http_route_rule.py b/sdk/python/pulumi_ovh/iploadbalancing/http_route_rule.py index 601fdfbd..76b7ec1b 100644 --- a/sdk/python/pulumi_ovh/iploadbalancing/http_route_rule.py +++ b/sdk/python/pulumi_ovh/iploadbalancing/http_route_rule.py @@ -305,11 +305,11 @@ def __init__(__self__, import pulumi_ovh as ovh httpsredirect = ovh.ip_load_balancing.HttpRoute("httpsredirect", - action=ovh.ip_load_balancing.HttpRouteActionArgs( - status=302, - target="https://${host}${path}${arguments}", - type="redirect", - ), + action={ + "status": 302, + "target": "https://${host}${path}${arguments}", + "type": "redirect", + }, display_name="Redirect to HTTPS", frontend_id=11111, service_name="loadbalancer-xxxxxxxxxxxxxxxxxx", @@ -374,11 +374,11 @@ def __init__(__self__, import pulumi_ovh as ovh httpsredirect = ovh.ip_load_balancing.HttpRoute("httpsredirect", - action=ovh.ip_load_balancing.HttpRouteActionArgs( - status=302, - target="https://${host}${path}${arguments}", - type="redirect", - ), + action={ + "status": 302, + "target": "https://${host}${path}${arguments}", + "type": "redirect", + }, display_name="Redirect to HTTPS", frontend_id=11111, service_name="loadbalancer-xxxxxxxxxxxxxxxxxx", diff --git a/sdk/python/pulumi_ovh/iploadbalancing/load_balancer.py b/sdk/python/pulumi_ovh/iploadbalancing/load_balancer.py index c4f863ff..416d527e 100644 --- a/sdk/python/pulumi_ovh/iploadbalancing/load_balancer.py +++ b/sdk/python/pulumi_ovh/iploadbalancing/load_balancer.py @@ -457,11 +457,11 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, display_name: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerOrderArgs', 'LoadBalancerOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['LoadBalancerPlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerPlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['LoadBalancerPlanArgs', 'LoadBalancerPlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerPlanOptionArgs', 'LoadBalancerPlanOptionArgsDict']]]]] = None, ssl_configuration: Optional[pulumi.Input[str]] = None, __props__=None): """ @@ -485,26 +485,26 @@ def __init__(__self__, iplb_lb1 = ovh.ip_load_balancing.LoadBalancer("iplb-lb1", ovh_subsidiary=mycart.ovh_subsidiary, display_name="my ip loadbalancing", - plan=ovh.ip_load_balancing.LoadBalancerPlanArgs( - duration=iplb.selected_prices[0].duration, - plan_code=iplb.plan_code, - pricing_mode=iplb.selected_prices[0].pricing_mode, - ), - plan_options=[ovh.ip_load_balancing.LoadBalancerPlanOptionArgs( - duration=bhs.selected_prices[0].duration, - plan_code=bhs.plan_code, - pricing_mode=bhs.selected_prices[0].pricing_mode, - )]) + plan={ + "duration": iplb.selected_prices[0].duration, + "plan_code": iplb.plan_code, + "pricing_mode": iplb.selected_prices[0].pricing_mode, + }, + plan_options=[{ + "duration": bhs.selected_prices[0].duration, + "plan_code": bhs.plan_code, + "pricing_mode": bhs.selected_prices[0].pricing_mode, + }]) ``` :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] display_name: Set the name displayed in ManagerV6 for your iplb (max 50 chars) - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerOrderArgs']]]] orders: Details about an Order + :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerOrderArgs', 'LoadBalancerOrderArgsDict']]]] orders: Details about an Order :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['LoadBalancerPlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerPlanOptionArgs']]]] plan_options: Product Plan to order + :param pulumi.Input[Union['LoadBalancerPlanArgs', 'LoadBalancerPlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerPlanOptionArgs', 'LoadBalancerPlanOptionArgsDict']]]] plan_options: Product Plan to order :param pulumi.Input[str] ssl_configuration: Modern oldest compatible clients : Firefox 27, Chrome 30, IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, and Java 8. Intermediate oldest compatible clients : Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7. Intermediate if null. one of "intermediate", "modern". """ ... @@ -534,16 +534,16 @@ def __init__(__self__, iplb_lb1 = ovh.ip_load_balancing.LoadBalancer("iplb-lb1", ovh_subsidiary=mycart.ovh_subsidiary, display_name="my ip loadbalancing", - plan=ovh.ip_load_balancing.LoadBalancerPlanArgs( - duration=iplb.selected_prices[0].duration, - plan_code=iplb.plan_code, - pricing_mode=iplb.selected_prices[0].pricing_mode, - ), - plan_options=[ovh.ip_load_balancing.LoadBalancerPlanOptionArgs( - duration=bhs.selected_prices[0].duration, - plan_code=bhs.plan_code, - pricing_mode=bhs.selected_prices[0].pricing_mode, - )]) + plan={ + "duration": iplb.selected_prices[0].duration, + "plan_code": iplb.plan_code, + "pricing_mode": iplb.selected_prices[0].pricing_mode, + }, + plan_options=[{ + "duration": bhs.selected_prices[0].duration, + "plan_code": bhs.plan_code, + "pricing_mode": bhs.selected_prices[0].pricing_mode, + }]) ``` :param str resource_name: The name of the resource. @@ -562,11 +562,11 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, display_name: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerOrderArgs', 'LoadBalancerOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['LoadBalancerPlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerPlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['LoadBalancerPlanArgs', 'LoadBalancerPlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerPlanOptionArgs', 'LoadBalancerPlanOptionArgsDict']]]]] = None, ssl_configuration: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -619,12 +619,12 @@ def get(resource_name: str, ipv6: Optional[pulumi.Input[str]] = None, metrics_token: Optional[pulumi.Input[str]] = None, offer: Optional[pulumi.Input[str]] = None, - orderable_zones: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerOrderableZoneArgs']]]]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerOrderArgs']]]]] = None, + orderable_zones: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerOrderableZoneArgs', 'LoadBalancerOrderableZoneArgsDict']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerOrderArgs', 'LoadBalancerOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['LoadBalancerPlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerPlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['LoadBalancerPlanArgs', 'LoadBalancerPlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerPlanOptionArgs', 'LoadBalancerPlanOptionArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, ssl_configuration: Optional[pulumi.Input[str]] = None, state: Optional[pulumi.Input[str]] = None, @@ -645,12 +645,12 @@ def get(resource_name: str, :param pulumi.Input[str] ipv6: The IPV6 associated to your IP load balancing. DEPRECATED. :param pulumi.Input[str] metrics_token: The metrics token associated with your IP load balancing :param pulumi.Input[str] offer: The offer of your IP load balancing - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerOrderableZoneArgs']]]] orderable_zones: Available additional zone for your Load Balancer - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerOrderArgs']]]] orders: Details about an Order + :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerOrderableZoneArgs', 'LoadBalancerOrderableZoneArgsDict']]]] orderable_zones: Available additional zone for your Load Balancer + :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerOrderArgs', 'LoadBalancerOrderArgsDict']]]] orders: Details about an Order :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['LoadBalancerPlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['LoadBalancerPlanOptionArgs']]]] plan_options: Product Plan to order + :param pulumi.Input[Union['LoadBalancerPlanArgs', 'LoadBalancerPlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['LoadBalancerPlanOptionArgs', 'LoadBalancerPlanOptionArgsDict']]]] plan_options: Product Plan to order :param pulumi.Input[str] service_name: The internal name of your IP load balancing :param pulumi.Input[str] ssl_configuration: Modern oldest compatible clients : Firefox 27, Chrome 30, IE 11 on Windows 7, Edge, Opera 17, Safari 9, Android 5.0, and Java 8. Intermediate oldest compatible clients : Firefox 1, Chrome 1, IE 7, Opera 5, Safari 1, Windows XP IE8, Android 2.3, Java 7. Intermediate if null. one of "intermediate", "modern". :param pulumi.Input[str] state: Current state of your IP diff --git a/sdk/python/pulumi_ovh/iploadbalancing/tcp_farm.py b/sdk/python/pulumi_ovh/iploadbalancing/tcp_farm.py index 41f99d16..4e44e4bd 100644 --- a/sdk/python/pulumi_ovh/iploadbalancing/tcp_farm.py +++ b/sdk/python/pulumi_ovh/iploadbalancing/tcp_farm.py @@ -291,7 +291,7 @@ def __init__(__self__, balance: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, port: Optional[pulumi.Input[int]] = None, - probe: Optional[pulumi.Input[pulumi.InputType['TcpFarmProbeArgs']]] = None, + probe: Optional[pulumi.Input[Union['TcpFarmProbeArgs', 'TcpFarmProbeArgsDict']]] = None, service_name: Optional[pulumi.Input[str]] = None, stickiness: Optional[pulumi.Input[str]] = None, vrack_network_id: Optional[pulumi.Input[int]] = None, @@ -323,7 +323,7 @@ def __init__(__self__, :param pulumi.Input[str] balance: Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) :param pulumi.Input[str] display_name: Readable label for loadbalancer farm :param pulumi.Input[int] port: Port attached to your farm ([1..49151]). Inherited from frontend if null - :param pulumi.Input[pulumi.InputType['TcpFarmProbeArgs']] probe: define a backend healthcheck probe + :param pulumi.Input[Union['TcpFarmProbeArgs', 'TcpFarmProbeArgsDict']] probe: define a backend healthcheck probe :param pulumi.Input[str] service_name: The internal name of your IP load balancing :param pulumi.Input[str] stickiness: Stickiness type. No stickiness if null (`sourceIp`) :param pulumi.Input[int] vrack_network_id: Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack @@ -374,7 +374,7 @@ def _internal_init(__self__, balance: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, port: Optional[pulumi.Input[int]] = None, - probe: Optional[pulumi.Input[pulumi.InputType['TcpFarmProbeArgs']]] = None, + probe: Optional[pulumi.Input[Union['TcpFarmProbeArgs', 'TcpFarmProbeArgsDict']]] = None, service_name: Optional[pulumi.Input[str]] = None, stickiness: Optional[pulumi.Input[str]] = None, vrack_network_id: Optional[pulumi.Input[int]] = None, @@ -413,7 +413,7 @@ def get(resource_name: str, balance: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, port: Optional[pulumi.Input[int]] = None, - probe: Optional[pulumi.Input[pulumi.InputType['TcpFarmProbeArgs']]] = None, + probe: Optional[pulumi.Input[Union['TcpFarmProbeArgs', 'TcpFarmProbeArgsDict']]] = None, service_name: Optional[pulumi.Input[str]] = None, stickiness: Optional[pulumi.Input[str]] = None, vrack_network_id: Optional[pulumi.Input[int]] = None, @@ -428,7 +428,7 @@ def get(resource_name: str, :param pulumi.Input[str] balance: Load balancing algorithm. `roundrobin` if null (`first`, `leastconn`, `roundrobin`, `source`) :param pulumi.Input[str] display_name: Readable label for loadbalancer farm :param pulumi.Input[int] port: Port attached to your farm ([1..49151]). Inherited from frontend if null - :param pulumi.Input[pulumi.InputType['TcpFarmProbeArgs']] probe: define a backend healthcheck probe + :param pulumi.Input[Union['TcpFarmProbeArgs', 'TcpFarmProbeArgsDict']] probe: define a backend healthcheck probe :param pulumi.Input[str] service_name: The internal name of your IP load balancing :param pulumi.Input[str] stickiness: Stickiness type. No stickiness if null (`sourceIp`) :param pulumi.Input[int] vrack_network_id: Internal Load Balancer identifier of the vRack private network to attach to your farm, mandatory when your Load Balancer is attached to a vRack diff --git a/sdk/python/pulumi_ovh/iploadbalancing/tcp_route.py b/sdk/python/pulumi_ovh/iploadbalancing/tcp_route.py index 21420f12..21d151a4 100644 --- a/sdk/python/pulumi_ovh/iploadbalancing/tcp_route.py +++ b/sdk/python/pulumi_ovh/iploadbalancing/tcp_route.py @@ -224,7 +224,7 @@ class TcpRoute(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - action: Optional[pulumi.Input[pulumi.InputType['TcpRouteActionArgs']]] = None, + action: Optional[pulumi.Input[Union['TcpRouteActionArgs', 'TcpRouteActionArgsDict']]] = None, display_name: Optional[pulumi.Input[str]] = None, frontend_id: Optional[pulumi.Input[int]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -240,9 +240,9 @@ def __init__(__self__, import pulumi_ovh as ovh tcpreject = ovh.ip_load_balancing.TcpRoute("tcpreject", - action=ovh.ip_load_balancing.TcpRouteActionArgs( - type="reject", - ), + action={ + "type": "reject", + }, service_name="loadbalancer-xxxxxxxxxxxxxxxxxx", weight=1) ``` @@ -253,7 +253,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[pulumi.InputType['TcpRouteActionArgs']] action: Action triggered when all rules match + :param pulumi.Input[Union['TcpRouteActionArgs', 'TcpRouteActionArgsDict']] action: Action triggered when all rules match :param pulumi.Input[str] display_name: Human readable name for your route, this field is for you :param pulumi.Input[int] frontend_id: Route traffic for this frontend :param pulumi.Input[str] service_name: The internal name of your IP load balancing @@ -275,9 +275,9 @@ def __init__(__self__, import pulumi_ovh as ovh tcpreject = ovh.ip_load_balancing.TcpRoute("tcpreject", - action=ovh.ip_load_balancing.TcpRouteActionArgs( - type="reject", - ), + action={ + "type": "reject", + }, service_name="loadbalancer-xxxxxxxxxxxxxxxxxx", weight=1) ``` @@ -301,7 +301,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, - action: Optional[pulumi.Input[pulumi.InputType['TcpRouteActionArgs']]] = None, + action: Optional[pulumi.Input[Union['TcpRouteActionArgs', 'TcpRouteActionArgsDict']]] = None, display_name: Optional[pulumi.Input[str]] = None, frontend_id: Optional[pulumi.Input[int]] = None, service_name: Optional[pulumi.Input[str]] = None, @@ -336,10 +336,10 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, - action: Optional[pulumi.Input[pulumi.InputType['TcpRouteActionArgs']]] = None, + action: Optional[pulumi.Input[Union['TcpRouteActionArgs', 'TcpRouteActionArgsDict']]] = None, display_name: Optional[pulumi.Input[str]] = None, frontend_id: Optional[pulumi.Input[int]] = None, - rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TcpRouteRuleArgs']]]]] = None, + rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TcpRouteRuleArgs', 'TcpRouteRuleArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, status: Optional[pulumi.Input[str]] = None, weight: Optional[pulumi.Input[int]] = None) -> 'TcpRoute': @@ -350,10 +350,10 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[pulumi.InputType['TcpRouteActionArgs']] action: Action triggered when all rules match + :param pulumi.Input[Union['TcpRouteActionArgs', 'TcpRouteActionArgsDict']] action: Action triggered when all rules match :param pulumi.Input[str] display_name: Human readable name for your route, this field is for you :param pulumi.Input[int] frontend_id: Route traffic for this frontend - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['TcpRouteRuleArgs']]]] rules: List of rules to match to trigger action + :param pulumi.Input[Sequence[pulumi.Input[Union['TcpRouteRuleArgs', 'TcpRouteRuleArgsDict']]]] rules: List of rules to match to trigger action :param pulumi.Input[str] service_name: The internal name of your IP load balancing :param pulumi.Input[str] status: Route status. Routes in "ok" state are ready to operate :param pulumi.Input[int] weight: Route priority ([0..255]). 0 if null. Highest priority routes are evaluated first. Only the first matching route will trigger an action diff --git a/sdk/python/pulumi_ovh/iploadbalancing/tcp_route_rule.py b/sdk/python/pulumi_ovh/iploadbalancing/tcp_route_rule.py index f7df7864..2b868025 100644 --- a/sdk/python/pulumi_ovh/iploadbalancing/tcp_route_rule.py +++ b/sdk/python/pulumi_ovh/iploadbalancing/tcp_route_rule.py @@ -306,9 +306,9 @@ def __init__(__self__, service_name="loadbalancer-xxxxxxxxxxxxxxxxxx", weight=1, frontend_id=11111, - action=ovh.ip_load_balancing.TcpRouteActionArgs( - type="reject", - )) + action={ + "type": "reject", + }) examplerule = ovh.ip_load_balancing.TcpRouteRule("examplerule", service_name="loadbalancer-xxxxxxxxxxxxxxxxxx", route_id=reject.id, @@ -353,9 +353,9 @@ def __init__(__self__, service_name="loadbalancer-xxxxxxxxxxxxxxxxxx", weight=1, frontend_id=11111, - action=ovh.ip_load_balancing.TcpRouteActionArgs( - type="reject", - )) + action={ + "type": "reject", + }) examplerule = ovh.ip_load_balancing.TcpRouteRule("examplerule", service_name="loadbalancer-xxxxxxxxxxxxxxxxxx", route_id=reject.id, diff --git a/sdk/python/pulumi_ovh/me/_inputs.py b/sdk/python/pulumi_ovh/me/_inputs.py index fc032dbd..ffc5a169 100644 --- a/sdk/python/pulumi_ovh/me/_inputs.py +++ b/sdk/python/pulumi_ovh/me/_inputs.py @@ -17,20 +17,12 @@ @pulumi.input_type class InstallationTemplateCustomizationArgs: def __init__(__self__, *, - custom_hostname: Optional[pulumi.Input[str]] = None, - post_installation_script_link: Optional[pulumi.Input[str]] = None, - post_installation_script_return: Optional[pulumi.Input[str]] = None): + custom_hostname: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] custom_hostname: Set up the server using the provided hostname instead of the default hostname. - :param pulumi.Input[str] post_installation_script_link: Indicate the URL where your postinstall customisation script is located. - :param pulumi.Input[str] post_installation_script_return: indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. """ if custom_hostname is not None: pulumi.set(__self__, "custom_hostname", custom_hostname) - if post_installation_script_link is not None: - pulumi.set(__self__, "post_installation_script_link", post_installation_script_link) - if post_installation_script_return is not None: - pulumi.set(__self__, "post_installation_script_return", post_installation_script_return) @property @pulumi.getter(name="customHostname") @@ -44,30 +36,6 @@ def custom_hostname(self) -> Optional[pulumi.Input[str]]: def custom_hostname(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "custom_hostname", value) - @property - @pulumi.getter(name="postInstallationScriptLink") - def post_installation_script_link(self) -> Optional[pulumi.Input[str]]: - """ - Indicate the URL where your postinstall customisation script is located. - """ - return pulumi.get(self, "post_installation_script_link") - - @post_installation_script_link.setter - def post_installation_script_link(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "post_installation_script_link", value) - - @property - @pulumi.getter(name="postInstallationScriptReturn") - def post_installation_script_return(self) -> Optional[pulumi.Input[str]]: - """ - indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - """ - return pulumi.get(self, "post_installation_script_return") - - @post_installation_script_return.setter - def post_installation_script_return(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "post_installation_script_return", value) - @pulumi.input_type class InstallationTemplateInputArgs: diff --git a/sdk/python/pulumi_ovh/me/installation_template.py b/sdk/python/pulumi_ovh/me/installation_template.py index 6133ad64..a511e3a6 100644 --- a/sdk/python/pulumi_ovh/me/installation_template.py +++ b/sdk/python/pulumi_ovh/me/installation_template.py @@ -361,7 +361,7 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, base_template_name: Optional[pulumi.Input[str]] = None, - customization: Optional[pulumi.Input[pulumi.InputType['InstallationTemplateCustomizationArgs']]] = None, + customization: Optional[pulumi.Input[Union['InstallationTemplateCustomizationArgs', 'InstallationTemplateCustomizationArgsDict']]] = None, remove_default_partition_schemes: Optional[pulumi.Input[bool]] = None, template_name: Optional[pulumi.Input[str]] = None, __props__=None): @@ -419,7 +419,7 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, base_template_name: Optional[pulumi.Input[str]] = None, - customization: Optional[pulumi.Input[pulumi.InputType['InstallationTemplateCustomizationArgs']]] = None, + customization: Optional[pulumi.Input[Union['InstallationTemplateCustomizationArgs', 'InstallationTemplateCustomizationArgsDict']]] = None, remove_default_partition_schemes: Optional[pulumi.Input[bool]] = None, template_name: Optional[pulumi.Input[str]] = None, __props__=None): @@ -465,14 +465,14 @@ def get(resource_name: str, base_template_name: Optional[pulumi.Input[str]] = None, bit_format: Optional[pulumi.Input[int]] = None, category: Optional[pulumi.Input[str]] = None, - customization: Optional[pulumi.Input[pulumi.InputType['InstallationTemplateCustomizationArgs']]] = None, + customization: Optional[pulumi.Input[Union['InstallationTemplateCustomizationArgs', 'InstallationTemplateCustomizationArgsDict']]] = None, description: Optional[pulumi.Input[str]] = None, distribution: Optional[pulumi.Input[str]] = None, end_of_install: Optional[pulumi.Input[str]] = None, family: Optional[pulumi.Input[str]] = None, filesystems: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, hard_raid_configuration: Optional[pulumi.Input[bool]] = None, - inputs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstallationTemplateInputArgs']]]]] = None, + inputs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstallationTemplateInputArgs', 'InstallationTemplateInputArgsDict']]]]] = None, lvm_ready: Optional[pulumi.Input[bool]] = None, no_partitioning: Optional[pulumi.Input[bool]] = None, remove_default_partition_schemes: Optional[pulumi.Input[bool]] = None, diff --git a/sdk/python/pulumi_ovh/me/outputs.py b/sdk/python/pulumi_ovh/me/outputs.py index e51613e7..ae99fb0d 100644 --- a/sdk/python/pulumi_ovh/me/outputs.py +++ b/sdk/python/pulumi_ovh/me/outputs.py @@ -28,10 +28,6 @@ def __key_warning(key: str): suggest = None if key == "customHostname": suggest = "custom_hostname" - elif key == "postInstallationScriptLink": - suggest = "post_installation_script_link" - elif key == "postInstallationScriptReturn": - suggest = "post_installation_script_return" if suggest: pulumi.log.warn(f"Key '{key}' not found in InstallationTemplateCustomization. Access the value via the '{suggest}' property getter instead.") @@ -45,20 +41,12 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - custom_hostname: Optional[str] = None, - post_installation_script_link: Optional[str] = None, - post_installation_script_return: Optional[str] = None): + custom_hostname: Optional[str] = None): """ :param str custom_hostname: Set up the server using the provided hostname instead of the default hostname. - :param str post_installation_script_link: Indicate the URL where your postinstall customisation script is located. - :param str post_installation_script_return: indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. """ if custom_hostname is not None: pulumi.set(__self__, "custom_hostname", custom_hostname) - if post_installation_script_link is not None: - pulumi.set(__self__, "post_installation_script_link", post_installation_script_link) - if post_installation_script_return is not None: - pulumi.set(__self__, "post_installation_script_return", post_installation_script_return) @property @pulumi.getter(name="customHostname") @@ -68,22 +56,6 @@ def custom_hostname(self) -> Optional[str]: """ return pulumi.get(self, "custom_hostname") - @property - @pulumi.getter(name="postInstallationScriptLink") - def post_installation_script_link(self) -> Optional[str]: - """ - Indicate the URL where your postinstall customisation script is located. - """ - return pulumi.get(self, "post_installation_script_link") - - @property - @pulumi.getter(name="postInstallationScriptReturn") - def post_installation_script_return(self) -> Optional[str]: - """ - indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - """ - return pulumi.get(self, "post_installation_script_return") - @pulumi.output_type class InstallationTemplateInput(dict): @@ -147,17 +119,11 @@ def type(self) -> Optional[str]: @pulumi.output_type class GetInstallationTemplateCustomizationResult(dict): def __init__(__self__, *, - custom_hostname: str, - post_installation_script_link: str, - post_installation_script_return: str): + custom_hostname: str): """ :param str custom_hostname: Set up the server using the provided hostname instead of the default hostname. - :param str post_installation_script_link: Indicate the URL where your postinstall customisation script is located. - :param str post_installation_script_return: Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. """ pulumi.set(__self__, "custom_hostname", custom_hostname) - pulumi.set(__self__, "post_installation_script_link", post_installation_script_link) - pulumi.set(__self__, "post_installation_script_return", post_installation_script_return) @property @pulumi.getter(name="customHostname") @@ -167,22 +133,6 @@ def custom_hostname(self) -> str: """ return pulumi.get(self, "custom_hostname") - @property - @pulumi.getter(name="postInstallationScriptLink") - def post_installation_script_link(self) -> str: - """ - Indicate the URL where your postinstall customisation script is located. - """ - return pulumi.get(self, "post_installation_script_link") - - @property - @pulumi.getter(name="postInstallationScriptReturn") - def post_installation_script_return(self) -> str: - """ - Indicate the string returned by your postinstall customisation script on successful execution. Advice: your script should return a unique validation string in case of succes. A good example is 'loh1Xee7eo OK OK OK UGh8Ang1Gu'. - """ - return pulumi.get(self, "post_installation_script_return") - @pulumi.output_type class GetInstallationTemplateInputResult(dict): diff --git a/sdk/python/pulumi_ovh/vps/_inputs.py b/sdk/python/pulumi_ovh/vps/_inputs.py index b67ccbe2..eb5a149b 100644 --- a/sdk/python/pulumi_ovh/vps/_inputs.py +++ b/sdk/python/pulumi_ovh/vps/_inputs.py @@ -507,21 +507,18 @@ def value(self, value: pulumi.Input[str]): class VpsPlanOptionArgs: def __init__(__self__, *, duration: pulumi.Input[str], - item_id: pulumi.Input[float], plan_code: pulumi.Input[str], pricing_mode: pulumi.Input[str], quantity: pulumi.Input[float], configurations: Optional[pulumi.Input[Sequence[pulumi.Input['VpsPlanOptionConfigurationArgs']]]] = None): """ :param pulumi.Input[str] duration: duration - :param pulumi.Input[float] item_id: Cart item to be linked :param pulumi.Input[str] plan_code: Plan code :param pulumi.Input[str] pricing_mode: Pricing model identifier :param pulumi.Input[float] quantity: Quantity of product desired :param pulumi.Input[Sequence[pulumi.Input['VpsPlanOptionConfigurationArgs']]] configurations: Representation of a configuration item for personalizing product """ pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "item_id", item_id) pulumi.set(__self__, "plan_code", plan_code) pulumi.set(__self__, "pricing_mode", pricing_mode) pulumi.set(__self__, "quantity", quantity) @@ -540,18 +537,6 @@ def duration(self) -> pulumi.Input[str]: def duration(self, value: pulumi.Input[str]): pulumi.set(self, "duration", value) - @property - @pulumi.getter(name="itemId") - def item_id(self) -> pulumi.Input[float]: - """ - Cart item to be linked - """ - return pulumi.get(self, "item_id") - - @item_id.setter - def item_id(self, value: pulumi.Input[float]): - pulumi.set(self, "item_id", value) - @property @pulumi.getter(name="planCode") def plan_code(self) -> pulumi.Input[str]: diff --git a/sdk/python/pulumi_ovh/vps/outputs.py b/sdk/python/pulumi_ovh/vps/outputs.py index ec8c6b35..c3cbcf1a 100644 --- a/sdk/python/pulumi_ovh/vps/outputs.py +++ b/sdk/python/pulumi_ovh/vps/outputs.py @@ -484,9 +484,7 @@ class VpsPlanOption(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "itemId": - suggest = "item_id" - elif key == "planCode": + if key == "planCode": suggest = "plan_code" elif key == "pricingMode": suggest = "pricing_mode" @@ -504,21 +502,18 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, duration: str, - item_id: float, plan_code: str, pricing_mode: str, quantity: float, configurations: Optional[Sequence['outputs.VpsPlanOptionConfiguration']] = None): """ :param str duration: duration - :param float item_id: Cart item to be linked :param str plan_code: Plan code :param str pricing_mode: Pricing model identifier :param float quantity: Quantity of product desired :param Sequence['VpsPlanOptionConfigurationArgs'] configurations: Representation of a configuration item for personalizing product """ pulumi.set(__self__, "duration", duration) - pulumi.set(__self__, "item_id", item_id) pulumi.set(__self__, "plan_code", plan_code) pulumi.set(__self__, "pricing_mode", pricing_mode) pulumi.set(__self__, "quantity", quantity) @@ -533,14 +528,6 @@ def duration(self) -> str: """ return pulumi.get(self, "duration") - @property - @pulumi.getter(name="itemId") - def item_id(self) -> float: - """ - Cart item to be linked - """ - return pulumi.get(self, "item_id") - @property @pulumi.getter(name="planCode") def plan_code(self) -> str: diff --git a/sdk/python/pulumi_ovh/vps/vps.py b/sdk/python/pulumi_ovh/vps/vps.py index 4aa31101..2f41d691 100644 --- a/sdk/python/pulumi_ovh/vps/vps.py +++ b/sdk/python/pulumi_ovh/vps/vps.py @@ -572,14 +572,14 @@ def __init__(__self__, display_name: Optional[pulumi.Input[str]] = None, keymap: Optional[pulumi.Input[str]] = None, memory_limit: Optional[pulumi.Input[float]] = None, - model: Optional[pulumi.Input[pulumi.InputType['VpsModelArgs']]] = None, + model: Optional[pulumi.Input[Union['VpsModelArgs', 'VpsModelArgsDict']]] = None, monitoring_ip_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, netboot_mode: Optional[pulumi.Input[str]] = None, offer_type: Optional[pulumi.Input[str]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpsPlanOptionArgs']]]]] = None, - plans: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpsPlanArgs']]]]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VpsPlanOptionArgs', 'VpsPlanOptionArgsDict']]]]] = None, + plans: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VpsPlanArgs', 'VpsPlanArgsDict']]]]] = None, sla_monitoring: Optional[pulumi.Input[bool]] = None, state: Optional[pulumi.Input[str]] = None, vcore: Optional[pulumi.Input[float]] = None, @@ -593,14 +593,14 @@ def __init__(__self__, :param pulumi.Input[str] display_name: Custom display name :param pulumi.Input[str] keymap: KVM keyboard layout on VPS Cloud :param pulumi.Input[float] memory_limit: RAM of this VPS - :param pulumi.Input[pulumi.InputType['VpsModelArgs']] model: Structure describing characteristics of a VPS model + :param pulumi.Input[Union['VpsModelArgs', 'VpsModelArgsDict']] model: Structure describing characteristics of a VPS model :param pulumi.Input[Sequence[pulumi.Input[str]]] monitoring_ip_blocks: IP blocks for OVH monitoring servers :param pulumi.Input[str] name: Name of the VPS :param pulumi.Input[str] netboot_mode: VPS netboot mode (local┃rescue) :param pulumi.Input[str] offer_type: All offers a VPS can have (beta-classic┃classic┃cloud┃cloudram┃game-classic┃lowlat┃ssd) :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json](https://eu.api.ovh.com/console-preview/?section=%2Fme&branch=v1#get-/me) - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpsPlanOptionArgs']]]] plan_options: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpsPlanArgs']]]] plans: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['VpsPlanOptionArgs', 'VpsPlanOptionArgsDict']]]] plan_options: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['VpsPlanArgs', 'VpsPlanArgsDict']]]] plans: Product Plan to order :param pulumi.Input[str] state: State of the VPS (backuping┃installing┃maintenance┃rebooting┃rescued┃running┃stopped┃stopping┃upgrading) :param pulumi.Input[float] vcore: Number of vcores :param pulumi.Input[str] zone: OpenStask region where the VPS is located @@ -632,14 +632,14 @@ def _internal_init(__self__, display_name: Optional[pulumi.Input[str]] = None, keymap: Optional[pulumi.Input[str]] = None, memory_limit: Optional[pulumi.Input[float]] = None, - model: Optional[pulumi.Input[pulumi.InputType['VpsModelArgs']]] = None, + model: Optional[pulumi.Input[Union['VpsModelArgs', 'VpsModelArgsDict']]] = None, monitoring_ip_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, netboot_mode: Optional[pulumi.Input[str]] = None, offer_type: Optional[pulumi.Input[str]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpsPlanOptionArgs']]]]] = None, - plans: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpsPlanArgs']]]]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VpsPlanOptionArgs', 'VpsPlanOptionArgsDict']]]]] = None, + plans: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VpsPlanArgs', 'VpsPlanArgsDict']]]]] = None, sla_monitoring: Optional[pulumi.Input[bool]] = None, state: Optional[pulumi.Input[str]] = None, vcore: Optional[pulumi.Input[float]] = None, @@ -686,18 +686,18 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, cluster: Optional[pulumi.Input[str]] = None, display_name: Optional[pulumi.Input[str]] = None, - iam: Optional[pulumi.Input[pulumi.InputType['VpsIamArgs']]] = None, + iam: Optional[pulumi.Input[Union['VpsIamArgs', 'VpsIamArgsDict']]] = None, keymap: Optional[pulumi.Input[str]] = None, memory_limit: Optional[pulumi.Input[float]] = None, - model: Optional[pulumi.Input[pulumi.InputType['VpsModelArgs']]] = None, + model: Optional[pulumi.Input[Union['VpsModelArgs', 'VpsModelArgsDict']]] = None, monitoring_ip_blocks: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, netboot_mode: Optional[pulumi.Input[str]] = None, offer_type: Optional[pulumi.Input[str]] = None, - order: Optional[pulumi.Input[pulumi.InputType['VpsOrderArgs']]] = None, + order: Optional[pulumi.Input[Union['VpsOrderArgs', 'VpsOrderArgsDict']]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpsPlanOptionArgs']]]]] = None, - plans: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpsPlanArgs']]]]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VpsPlanOptionArgs', 'VpsPlanOptionArgsDict']]]]] = None, + plans: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VpsPlanArgs', 'VpsPlanArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None, sla_monitoring: Optional[pulumi.Input[bool]] = None, state: Optional[pulumi.Input[str]] = None, @@ -712,18 +712,18 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] cluster: VPS cluster :param pulumi.Input[str] display_name: Custom display name - :param pulumi.Input[pulumi.InputType['VpsIamArgs']] iam: IAM resource information + :param pulumi.Input[Union['VpsIamArgs', 'VpsIamArgsDict']] iam: IAM resource information :param pulumi.Input[str] keymap: KVM keyboard layout on VPS Cloud :param pulumi.Input[float] memory_limit: RAM of this VPS - :param pulumi.Input[pulumi.InputType['VpsModelArgs']] model: Structure describing characteristics of a VPS model + :param pulumi.Input[Union['VpsModelArgs', 'VpsModelArgsDict']] model: Structure describing characteristics of a VPS model :param pulumi.Input[Sequence[pulumi.Input[str]]] monitoring_ip_blocks: IP blocks for OVH monitoring servers :param pulumi.Input[str] name: Name of the VPS :param pulumi.Input[str] netboot_mode: VPS netboot mode (local┃rescue) :param pulumi.Input[str] offer_type: All offers a VPS can have (beta-classic┃classic┃cloud┃cloudram┃game-classic┃lowlat┃ssd) - :param pulumi.Input[pulumi.InputType['VpsOrderArgs']] order: Details about an Order + :param pulumi.Input[Union['VpsOrderArgs', 'VpsOrderArgsDict']] order: Details about an Order :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json](https://eu.api.ovh.com/console-preview/?section=%2Fme&branch=v1#get-/me) - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpsPlanOptionArgs']]]] plan_options: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VpsPlanArgs']]]] plans: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['VpsPlanOptionArgs', 'VpsPlanOptionArgsDict']]]] plan_options: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['VpsPlanArgs', 'VpsPlanArgsDict']]]] plans: Product Plan to order :param pulumi.Input[str] service_name: The internal name of your VPS offer :param pulumi.Input[str] state: State of the VPS (backuping┃installing┃maintenance┃rebooting┃rescued┃running┃stopped┃stopping┃upgrading) :param pulumi.Input[float] vcore: Number of vcores diff --git a/sdk/python/pulumi_ovh/vrack/ip_address.py b/sdk/python/pulumi_ovh/vrack/ip_address.py index 1b3a0ff0..7d2c4e6d 100644 --- a/sdk/python/pulumi_ovh/vrack/ip_address.py +++ b/sdk/python/pulumi_ovh/vrack/ip_address.py @@ -163,11 +163,11 @@ def __init__(__self__, vrack_vrack = ovh.vrack.Vrack("vrackVrack", description=mycart.description, ovh_subsidiary=mycart.ovh_subsidiary, - plan=ovh.vrack.VrackPlanArgs( - duration=vrack_cart_product_plan.selected_prices[0].duration, - plan_code=vrack_cart_product_plan.plan_code, - pricing_mode=vrack_cart_product_plan.selected_prices[0].pricing_mode, - )) + plan={ + "duration": vrack_cart_product_plan.selected_prices[0].duration, + "plan_code": vrack_cart_product_plan.plan_code, + "pricing_mode": vrack_cart_product_plan.selected_prices[0].pricing_mode, + }) ipblock_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id, price_capacity="renew", product="ip", @@ -175,15 +175,15 @@ def __init__(__self__, ipblock_ip_service = ovh.ip.IpService("ipblockIpService", ovh_subsidiary=mycart.ovh_subsidiary, description=mycart.description, - plan=ovh.ip.IpServicePlanArgs( - duration=ipblock_cart_product_plan.selected_prices[0].duration, - plan_code=ipblock_cart_product_plan.plan_code, - pricing_mode=ipblock_cart_product_plan.selected_prices[0].pricing_mode, - configurations=[ovh.ip.IpServicePlanConfigurationArgs( - label="country", - value="FR", - )], - )) + plan={ + "duration": ipblock_cart_product_plan.selected_prices[0].duration, + "plan_code": ipblock_cart_product_plan.plan_code, + "pricing_mode": ipblock_cart_product_plan.selected_prices[0].pricing_mode, + "configurations": [{ + "label": "country", + "value": "FR", + }], + }) vrackblock = ovh.vrack.IpAddress("vrackblock", service_name=vrack_vrack.service_name, block=ipblock_ip_service.ip) @@ -218,11 +218,11 @@ def __init__(__self__, vrack_vrack = ovh.vrack.Vrack("vrackVrack", description=mycart.description, ovh_subsidiary=mycart.ovh_subsidiary, - plan=ovh.vrack.VrackPlanArgs( - duration=vrack_cart_product_plan.selected_prices[0].duration, - plan_code=vrack_cart_product_plan.plan_code, - pricing_mode=vrack_cart_product_plan.selected_prices[0].pricing_mode, - )) + plan={ + "duration": vrack_cart_product_plan.selected_prices[0].duration, + "plan_code": vrack_cart_product_plan.plan_code, + "pricing_mode": vrack_cart_product_plan.selected_prices[0].pricing_mode, + }) ipblock_cart_product_plan = ovh.Order.get_cart_product_plan(cart_id=mycart.id, price_capacity="renew", product="ip", @@ -230,15 +230,15 @@ def __init__(__self__, ipblock_ip_service = ovh.ip.IpService("ipblockIpService", ovh_subsidiary=mycart.ovh_subsidiary, description=mycart.description, - plan=ovh.ip.IpServicePlanArgs( - duration=ipblock_cart_product_plan.selected_prices[0].duration, - plan_code=ipblock_cart_product_plan.plan_code, - pricing_mode=ipblock_cart_product_plan.selected_prices[0].pricing_mode, - configurations=[ovh.ip.IpServicePlanConfigurationArgs( - label="country", - value="FR", - )], - )) + plan={ + "duration": ipblock_cart_product_plan.selected_prices[0].duration, + "plan_code": ipblock_cart_product_plan.plan_code, + "pricing_mode": ipblock_cart_product_plan.selected_prices[0].pricing_mode, + "configurations": [{ + "label": "country", + "value": "FR", + }], + }) vrackblock = ovh.vrack.IpAddress("vrackblock", service_name=vrack_vrack.service_name, block=ipblock_ip_service.ip) diff --git a/sdk/python/pulumi_ovh/vrack/vrack.py b/sdk/python/pulumi_ovh/vrack/vrack.py index 83fde009..13b29f44 100644 --- a/sdk/python/pulumi_ovh/vrack/vrack.py +++ b/sdk/python/pulumi_ovh/vrack/vrack.py @@ -298,11 +298,11 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VrackOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VrackOrderArgs', 'VrackOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['VrackPlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VrackPlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['VrackPlanArgs', 'VrackPlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VrackPlanOptionArgs', 'VrackPlanOptionArgsDict']]]]] = None, __props__=None): """ ## Example Usage @@ -320,11 +320,11 @@ def __init__(__self__, vrack_vrack = ovh.vrack.Vrack("vrackVrack", ovh_subsidiary=mycart.ovh_subsidiary, description="my vrack", - plan=ovh.vrack.VrackPlanArgs( - duration=vrack_cart_product_plan.selected_prices[0].duration, - plan_code=vrack_cart_product_plan.plan_code, - pricing_mode=vrack_cart_product_plan.selected_prices[0].pricing_mode, - )) + plan={ + "duration": vrack_cart_product_plan.selected_prices[0].duration, + "plan_code": vrack_cart_product_plan.plan_code, + "pricing_mode": vrack_cart_product_plan.selected_prices[0].pricing_mode, + }) ``` ## Import @@ -341,11 +341,11 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: yourvrackdescription :param pulumi.Input[str] name: yourvrackname - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VrackOrderArgs']]]] orders: Details about an Order + :param pulumi.Input[Sequence[pulumi.Input[Union['VrackOrderArgs', 'VrackOrderArgsDict']]]] orders: Details about an Order :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['VrackPlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VrackPlanOptionArgs']]]] plan_options: Product Plan to order + :param pulumi.Input[Union['VrackPlanArgs', 'VrackPlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['VrackPlanOptionArgs', 'VrackPlanOptionArgsDict']]]] plan_options: Product Plan to order """ ... @overload @@ -369,11 +369,11 @@ def __init__(__self__, vrack_vrack = ovh.vrack.Vrack("vrackVrack", ovh_subsidiary=mycart.ovh_subsidiary, description="my vrack", - plan=ovh.vrack.VrackPlanArgs( - duration=vrack_cart_product_plan.selected_prices[0].duration, - plan_code=vrack_cart_product_plan.plan_code, - pricing_mode=vrack_cart_product_plan.selected_prices[0].pricing_mode, - )) + plan={ + "duration": vrack_cart_product_plan.selected_prices[0].duration, + "plan_code": vrack_cart_product_plan.plan_code, + "pricing_mode": vrack_cart_product_plan.selected_prices[0].pricing_mode, + }) ``` ## Import @@ -403,11 +403,11 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, description: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VrackOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VrackOrderArgs', 'VrackOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['VrackPlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VrackPlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['VrackPlanArgs', 'VrackPlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VrackPlanOptionArgs', 'VrackPlanOptionArgsDict']]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -443,11 +443,11 @@ def get(resource_name: str, vrack_urn: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, - orders: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VrackOrderArgs']]]]] = None, + orders: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VrackOrderArgs', 'VrackOrderArgsDict']]]]] = None, ovh_subsidiary: Optional[pulumi.Input[str]] = None, payment_mean: Optional[pulumi.Input[str]] = None, - plan: Optional[pulumi.Input[pulumi.InputType['VrackPlanArgs']]] = None, - plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VrackPlanOptionArgs']]]]] = None, + plan: Optional[pulumi.Input[Union['VrackPlanArgs', 'VrackPlanArgsDict']]] = None, + plan_options: Optional[pulumi.Input[Sequence[pulumi.Input[Union['VrackPlanOptionArgs', 'VrackPlanOptionArgsDict']]]]] = None, service_name: Optional[pulumi.Input[str]] = None) -> 'Vrack': """ Get an existing Vrack resource's state with the given name, id, and optional extra @@ -459,11 +459,11 @@ def get(resource_name: str, :param pulumi.Input[str] vrack_urn: The URN of the vrack, used with IAM permissions :param pulumi.Input[str] description: yourvrackdescription :param pulumi.Input[str] name: yourvrackname - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VrackOrderArgs']]]] orders: Details about an Order + :param pulumi.Input[Sequence[pulumi.Input[Union['VrackOrderArgs', 'VrackOrderArgsDict']]]] orders: Details about an Order :param pulumi.Input[str] ovh_subsidiary: OVHcloud Subsidiary. Country of OVHcloud legal entity you'll be billed by. List of supported subsidiaries available on API at [/1.0/me.json under `models.nichandle.OvhSubsidiaryEnum`](https://eu.api.ovh.com/1.0/me.json) :param pulumi.Input[str] payment_mean: Ovh payment mode - :param pulumi.Input[pulumi.InputType['VrackPlanArgs']] plan: Product Plan to order - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['VrackPlanOptionArgs']]]] plan_options: Product Plan to order + :param pulumi.Input[Union['VrackPlanArgs', 'VrackPlanArgsDict']] plan: Product Plan to order + :param pulumi.Input[Sequence[pulumi.Input[Union['VrackPlanOptionArgs', 'VrackPlanOptionArgsDict']]]] plan_options: Product Plan to order :param pulumi.Input[str] service_name: The internal name of your vrack """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))